40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# 源码目录
|
||
|
||
项目保持一个 TypeScript package:
|
||
|
||
```text
|
||
llm-to-agent/
|
||
├── src/
|
||
│ ├── kernel/
|
||
│ ├── extensions/
|
||
│ │ ├── shared/
|
||
│ │ ├── cli/
|
||
│ │ ├── web/
|
||
│ │ └── desktop/
|
||
│ ├── products/
|
||
│ └── main.ts
|
||
├── docs/
|
||
├── tests/
|
||
├── tooling/
|
||
├── package.json
|
||
└── tsconfig.json
|
||
```
|
||
|
||
## 目录职责
|
||
|
||
- `kernel/`:只保存 Extension 运行机制。
|
||
- `extensions/shared/`:跨产品使用的具体能力。
|
||
- `extensions/cli|web|desktop/`:三条产品线各自的输入、展示和平台集成。
|
||
- `products/`:静态选择每个产品启用哪些 Extension,不写业务逻辑。
|
||
- `tests/`:只保存跨 Extension、跨进程或跨版本测试;普通测试跟随源码。
|
||
- `tooling/`:构建、开发和发布辅助。
|
||
|
||
Extension 的具体划分见 [Extension 目录](extensions.md)。
|
||
|
||
## 放置规则
|
||
|
||
- 业务概念和流程进入 Extension,不为了复用方便放进 Kernel。
|
||
- 产品私有实现不能互相依赖,真实复用出现后再提升到 `shared/`。
|
||
- 目录和文件只在真实代码出现时创建,不预建占位层级。
|
||
- 当前保持单包;只有构建、平台依赖、独立分发或进程隔离造成实际问题时才拆包。
|