pi monorepo 分层 · 仓库 HEAD be26e32(0.85.1)
分带依据:packages/*/package.json 里 @earendil-works/* 的真实依赖边算拓扑深度
行数口径:src/ 下全部 .ts(含测试支撑文件)
D4 ┌──────────────────────────────────────────────────────────
│ evals pi-evals 1 413
│ 真 AgentSession 端到端评测 · vitest-evals
│ deps → ai(dev) coding-agent(dev)
└──────────────────────────────────────────────────────────
D3 ┌──────────────────────────────────────────────────────────
│ coding-agent pi-coding-agent 70 002 pi 命令本体
│ core/ tools session-manager extensions
│ system-prompt compaction agent-session
│ modes/ interactive · print-mode · rpc
│ cli/ bun/ experimental/ main.ts
│ deps → chord agent ai tui
│ + client protocol server(dev,跑 rpc 用)
├──────────────────────────────────────────────────────────
│ server pi-server 1 966
│ session-router · listener · connection · transports
│ deps → chord agent protocol
├──────────────────────────────────────────────────────────
│ session-backends/sqlite-node 1 973
│ pi-session-backend-sqlite-node
│ node:sqlite 会话仓库 · migrations · benchmark
│ deps → ai agent
│ 工作区内无任何包依赖它,对外单独发版
└──────────────────────────────────────────────────────────
D2 ┌──────────────────────────────────────────────────────────
│ agent pi-agent-core 25 291
│ 顶层 2 444 行
│ agent-loop.ts 803 runLoop 双层控制流
│ agent.ts 592 有状态包装 + 事件 reducer
│ types.ts 446 AgentEvent 13 变体 · 8 个钩子
│ proxy · index · stream-fn · node · search
│ harness/ 20 131 行(另 testing 2 716 行)
│ runtime 7 499 compaction 1 297 tools 1 209
│ session 4 391 env 924 utils 822 execution 449
│ 顶层 3 540 子目录合计 16 591,均不含 testing
│ deps → chord ai telemetry
├──────────────────────────────────────────────────────────
│ client pi-client 1 135
│ connection · transport · unix · errors
│ deps → chord protocol
└──────────────────────────────────────────────────────────
D1 ┌──────────────────────────────────────────────────────────
│ ai pi-ai 24 363
│ api/ anthropic-messages · openai-completions
│ openai-responses · openai-codex-responses
│ azure-openai-responses · google-generative-ai
│ google-vertex · bedrock-converse-stream
│ mistral-conversations · pi-messages(各带 .lazy)
│ models.ts streamSimple · calculateCost
│ auth/ oauth/ providers/ models.generated.ts
│ images*.ts types.ts(Context · Usage)
│ utils/event-stream.ts
│ deps → telemetry
├──────────────────────────────────────────────────────────
│ protocol pi-protocol 869
│ cbor/ · framing.ts · codec.ts
│ deps → chord
└──────────────────────────────────────────────────────────
D0 ┌──────────────────────────────────────────────────────────
│ tui pi-tui 18 107
│ components/ 18 个 · tui.ts · tui-main-screen
│ tui-alt-screen · layout · keys · keybindings
│ autocomplete · kill-ring · editor-component
│ deps → 无
├──────────────────────────────────────────────────────────
│ chord chord 5 822
│ services/ · delta/ · facets/ · context/
│ bundler · api · json · node
│ deps → 无
├──────────────────────────────────────────────────────────
│ telemetry pi-telemetry 935
│ 供应商中立遥测契约 · schema 工具 · memory · noop
│ deps → 无
└──────────────────────────────────────────────────────────
依赖边全集(11 个包,21 条内部边)
telemetry ← ai ← agent ← coding-agent
telemetry ← agent
chord ← agent · client · protocol · server · coding-agent
ai ← agent · coding-agent · evals(dev) · sqlite-node
tui ← coding-agent
agent ← coding-agent · server · sqlite-node
protocol ← client · server · coding-agent(dev)
client ← coding-agent(dev)
server ← coding-agent(dev)
coding-agent ← evals(dev)
根 package.json 的 build 顺序(一条链,与上面的深度一致)
chord → tui → telemetry → ai → agent → session-backends/sqlite-node
→ protocol → client → server → coding-agent