1.8 KiB
1.8 KiB
Extension 目录
具体能力全部由 Extension 实现。Tool、页面、命令和事件监听器只是 Extension 内部组成,不是新的架构类型。
第一版
src/extensions/
├── catalog.ts
├── shared/
│ ├── workspace/
│ ├── agent/
│ └── deepseek/
└── cli/
workspace:Workspace、Conversation 和消息。agent:Run、上下文和 Agent 执行。deepseek:DeepSeek 模型接入。cli:终端输入、命令和展示。
第一版只静态装配这四个 Extension。
catalog.ts 集中列出所有跨 Extension 使用的 Extension ID、能力抓手和事实事件;它只保存字符串,不保存类型或运行逻辑。
当前协作链路:
workspace -> 提供 workspace
deepseek -> 添加 model.providers
agent -> 使用二者并提供 agent
cli -> 调用 agent
协作
- 一个明确能力由 Extension 提供,调用方取得后直接调用。
- 模型、Tool 等多个实现通过同一扩展点汇集,由业务拥有者选择。
- 状态真正发生后再发布事件,监听器只做展示、日志或派生处理。
- Extension 只引用其他 Extension 的公开契约。
后续方向
后续公共能力大致包括:
项目操作与 Git
自身进化
计划与多 Agent
记忆与知识
浏览器与本机控制
自动化
CLI、Web、Desktop 各自先保持一个产品 Extension。远程仓库、外部 Tool 协议、Keychain 等在实际接入时再决定是否独立。
何时拆分
只有出现以下真实边界时才创建新 Extension:
- 需要独立启停;
- 拥有独立的长期资源或数据;
- 存在可替换实现;
- 有明确产品或平台边界。
否则继续留在现有 Extension 内。目录只在能力开始实现时创建,不预建占位代码。