pi 仓库 11 个包的分层图

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