45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
# 源码目录
|
||
|
||
项目保持一个 TypeScript package:
|
||
|
||
```text
|
||
llm-to-agent/
|
||
├── src/
|
||
│ ├── kernel/
|
||
│ ├── extensions/
|
||
│ │ ├── catalog.ts
|
||
│ │ ├── shared/
|
||
│ │ ├── cli/
|
||
│ │ ├── web/
|
||
│ │ └── desktop/
|
||
│ ├── products/
|
||
│ └── main.ts
|
||
├── docs/
|
||
├── tests/
|
||
├── tooling/
|
||
├── package.json
|
||
└── tsconfig.json
|
||
```
|
||
|
||
## 目录职责
|
||
|
||
- `kernel/`:Extension 生命周期、能力注册和事实事件;
|
||
- `extensions/catalog.ts`:已经实现的跨 Extension ID、Hook 和 Event;
|
||
- `extensions/shared/`:跨产品使用的能力和 Provider;
|
||
- `extensions/cli|web|desktop/`:产品输入、展示和平台集成;
|
||
- `products/`:静态选择产品启用的 Extension,不写业务逻辑;
|
||
- `tests/`:跨 Extension、跨进程或跨版本测试;
|
||
- `tooling/`:构建、开发和发布辅助。
|
||
|
||
Extension 的最终职责见 [Extension 规划](extensions.md)。
|
||
|
||
## 放置规则
|
||
|
||
- 源码目录只在对应能力开始实现时创建;
|
||
- Extension 内部文件和目录不设统一模板;
|
||
- 业务概念和流程进入 Extension,不进入 Kernel;
|
||
- 产品私有实现不能互相依赖;
|
||
- Provider 只通过公开契约和扩展点接入能力所有者;
|
||
- 普通复用代码不因此升级为 Extension;
|
||
- 当前保持单包,只有独立构建、发布或进程隔离时才拆包。
|