用途:指导开发者创建、调试和迭代 GSD 扩展。GSD 扩展是以 TypeScript 编写的模块,挂载到基于 pi 的 GSD 运行时,通过导出默认函数接收 ExtensionAPI,用于订阅事件、注册工具/命令/快捷键并与会话交互。
主要能力:涵盖三类基本原语——事件(pi.on 监听并响应,可阻止工具调用、修改消息、注入上下文)、工具(pi.registerTool 赋予 LLM 新能力)、命令(pi.registerCommand 提供斜杠命令)。技能按意图分为三条工作流:从零创建扩展、为现有扩展添加能力、调试扩展,并配套核心架构、API 参考、自定义工具/命令/UI/渲染、状态管理等参考资料。
使用方式与位置:全局扩展放 ~/.pi/agent/extensions/*.ts 或 /index.ts;项目本地放 .gsd/extensions/.ts 或 */index.ts。注意 ~/.gsd/agent/extensions/ 为内置扩展保留,社区扩展放入会被静默忽略。常用导入包括 @gsd/pi-coding-agent、@sinclair/typebox、@gsd/pi-ai、@gsd/pi-tui 及 Node.js 内置模块。
限制与规则:字符串枚举须用 StringEnum;工具输出截断至 50KB/2000 行;用 pi.exec() 而非 child_process;调用对话框前检查 ctx.hasUI;会话控制方法仅在命令处理器可用;路径参数去掉前导 @。完成标准包括 manifest 准确、编译通过、加载无错、工具可调用、命令可响应、事件按预期触发、UI 在终端宽度内渲染、状态可持久化。未提供费用、平台与效果等信息。