总体架构
hotpot-agent 是 pnpm monorepo,Node >= 22 + TypeScript(erasable-syntax-only,Node strip-only 直跑),vitest 测试,biome 检查。
分层
依赖方向严格自上而下(server → orchestrator → core → ai;cli 与 server 同为 orchestrator 之上的入口,web 不引 workspace 包、构建产物由 server 托管),禁止反向依赖。
旁路包:
packages/telemetry:cli/server→telemetry→core,只做匿名指标上报,不进入 agent 主链路。benchmarks/(根级,与packages/并列):复用 core/orchestrator/telemetry 跑批,不被cli/server引用,也不进入工具产物。packages/hotpot-agent:唯一 npm 发布包(hotpot命令 + Web 产物),tsup 把 workspace 源码打进单文件 CLI。
一次用户消息的数据流
要点:模型历史不是内存状态,而是从 JSONL 日志现算出来的。这意味着进程重启、会话恢复、token 统计都天然一致,没有第二份状态需要同步。
各包职责
工程原则
- md 即代码:每个文件夹带
README.md(做了什么)与AGENTS.md(怎么改),细节下沉。 - 特性目录化:
core与orchestrator的src/下每个特性独立成子文件夹,以index.ts作为对外出口。 - 可测试:适配器用录制回放 mock,不依赖真实 API;测试随功能走。
- 类型严格:no
any;只用可被 Node strip-only 擦除的 TS 语法。
