CHAPTER 12 · SOURCE MAP 79 个 Workspace 成员如何组成产品 根 Cargo.toml 列出 79 个成员,其中 crates/codegen/ 占 62 个。理解这套系统,要沿组合入口、交互界面、Agent 宿主、领域能力、推理状态五条主轴阅读。 一句话速览 按入口、Agent 运行时、工具和基础设施还原 Cargo Workspace 的真实分层
课程目标 能从根 workspace 清单定位产品主轴,并区分二进制组合入口、TUI 库、Shell Agent 宿主与会话状态组件。
核心视觉 · 教学化结构图
pager-bin 组合入口
xai-grok-pager TUI 与交互 xai-grok-shell Agent 宿主
agent / tools workspace 领域
xai-grok-sampler 模型请求与流式事件 xai-chat-state conversation / token / persistence
compaction 横跨 Agent 策略、Shell 会话流程与 token estimation
79 Workspace members 根清单的实际成员数。根文件首行注明它是自动生成的 workspace root。 62 Codegen members 主体集中在 crates/codegen/ ,另有 build、common、prod 与 third_party。 5 阅读主轴 组合入口、TUI、Shell 宿主、领域能力、推理与状态,避免套用虚构的四层目录。
真实源码证据
Cargo.toml
Auto-generated workspace root. [workspace] resolver = "2" members = [ "crates/build/xai-proto-build" , "crates/codegen/xai-grok-pager-bin" , "crates/codegen/xai-grok-shell" , ... ]
crates/codegen/xai-grok-pager-bin/Cargo.toml
Composition-root binary for the Grok Build TUI. [[bin]] name = "xai-grok-pager" path = "src/main.rs" # Agent runtime + leader/stdio/headless entry points. xai-grok-shell = { workspace = true }
源码快照说明 :本页依据本地同步副本核对。该副本没有 .git 元数据,因此不声称对应某个 commit 版本。
课堂练习
01 沿依赖定位职责 从 xai-grok-pager-bin/Cargo.toml 出发,分别找出 TUI 库与 Agent 宿主依赖。再到 xai-grok-sampler/src/actor/mod.rs 和 xai-chat-state/src/actor/mod.rs 写下二者各自拥有的状态。
Takeaway :79 个成员是 workspace 事实,62 个 codegen 成员是数量事实。产品运行主轴从 pager-bin 组合入口延伸到 pager、shell、领域 crate、sampler 与 chat-state。