源码索引
阅读契约: 只有在叙事已经清楚后再用本页。打开 pinned links 是为了核对 owner、boundary 和 evidence class,不是从源码里重新发现故事。
这个索引用于审计全书的源码依据。所有 Codex 链接都指向公开 GitHub 代码,并固定到 commit 569ff6a1c400bd514ff79f5f1050a684dc3afde3。正文应该可以独立阅读;源码索引用于验证,而不是要求读者自己补课。
审计规则:使用 anchor 是为了确认 claim class。直接展示 type、function、constant、workflow 或 test 行为的,算 verified source;从多个 anchor 组合出来的边界,算 surrounding contract inference,在正文和图中都应保持抽象。任何依赖 private service internals 的内容都是 not visible,因此不会进入本索引。
章节锚点
第 1 章:架构赌注:作为有边界操作系统的 Agent
- 运行时词汇:
codex-rs/protocol/src/protocol.rs - 操作枚举:
codex-rs/protocol/src/protocol.rs - 事件流:
codex-rs/protocol/src/protocol.rs - 会话门面:
codex-rs/core/src/session/mod.rs
第 2 章:从分发包装器到 Rust Router
- npm 启动包装器:
codex-cli/bin/codex.js - Rust 命令路由:
codex-rs/cli/src/main.rs - App 命令边界:
codex-rs/cli/src/app_cmd.rs - App-server daemon 命令:
codex-rs/cli/src/main.rs
第 3 章:配置、认证与 Managed Requirements
- 解析后的权限:
codex-rs/core/src/config/mod.rs - 权限编译:
codex-rs/core/src/config/permissions.rs - 托管 feature gate:
codex-rs/core/src/config/managed_features.rs - 公开权限 profile:
codex-rs/app-server-protocol/src/protocol/v2/permissions.rs
第 4 章:协议边界
- Core submission 与 event:
codex-rs/protocol/src/protocol.rs - App-server JSON-RPC envelope:
codex-rs/app-server-protocol/src/jsonrpc_lite.rs - V2 协议族:
codex-rs/app-server-protocol/src/protocol/v2/mod.rs - Event 到 item 映射:
codex-rs/app-server-protocol/src/protocol/event_mapping.rs - Schema 导出:
codex-rs/app-server-protocol/src/export.rs
第 5 章:线程、会话与持久状态
- Thread manager boundary:
codex-rs/core/src/thread_manager.rs - Client-facing thread handle:
codex-rs/core/src/codex_thread.rs - Queue-pair runtime facade:
codex-rs/core/src/session/mod.rs - Model-visible history:
codex-rs/core/src/context_manager/history.rs - Accepted prompt recording:
codex-rs/core/src/session/mod.rs
第 6 章:Turn Loop:Agent 真正发生的地方
- Turn loop implementation:
codex-rs/core/src/session/turn.rs - Prompt hook ordering:
codex-rs/core/src/session/turn.rs - Accepted prompt recording:
codex-rs/core/src/session/turn.rs - Model client session:
codex-rs/core/src/client.rs - Context manager:
codex-rs/core/src/context_manager/history.rs
第 7 章:模型 Provider、流式传输与 Backend Task
- Model client:
codex-rs/core/src/client.rs - Provider prompt shape:
codex-rs/core/src/client_common.rs - Model client session:
codex-rs/core/src/client.rs - WebSocket behavior tests:
codex-rs/core/tests/suite/agent_websocket.rs - Backend task API contrast:
codex-rs/cloud-tasks-client/src/api.rs
第 8 章:可观测性:先捕获事实,再解释运行
- Trace session model:
codex-rs/rollout-trace/src/model/session.rs - Codex turn trace model:
codex-rs/rollout-trace/src/model/session.rs - Runtime trace payloads:
codex-rs/rollout-trace/src/protocol_event.rs - Core event mapping:
codex-rs/core/src/event_mapping.rs
第 9 章:工具规格、路由与分发
- Tool spec enum:
codex-rs/tools/src/tool_spec.rs - Public planning entry:
codex-rs/core/src/tools/spec.rs - Tool spec planner:
codex-rs/core/src/tools/spec_plan.rs - Deferred MCP handler registration:
codex-rs/core/src/tools/spec_plan.rs - Tool router:
codex-rs/core/src/tools/router.rs - Tool payloads and outputs:
codex-rs/core/src/tools/context.rs - Tool registry:
codex-rs/core/src/tools/registry.rs - Parallel dispatch rules:
codex-rs/core/src/tools/parallel.rs - Dispatch trace adapter:
codex-rs/core/src/tools/tool_dispatch_trace.rs
第 10 章:Shell、Exec Server 与文件系统工具
- Shell handler request shaping:
codex-rs/core/src/tools/handlers/shell/shell_handler.rs - Shared shell execution path:
codex-rs/core/src/tools/handlers/shell.rs - Exec policy approval conversion:
codex-rs/core/src/exec_policy.rs - Unmatched command fallback:
codex-rs/core/src/exec_policy.rs - Tool orchestrator approval and attempt flow:
codex-rs/core/src/tools/orchestrator.rs - Sandbox denial retry branch:
codex-rs/core/src/tools/orchestrator.rs - Sandbox attempt transform:
codex-rs/core/src/tools/sandboxing.rs - Unified exec handler request binding:
codex-rs/core/src/tools/handlers/unified_exec/exec_command.rs - Unified exec request shape:
codex-rs/core/src/unified_exec/mod.rs - Unified exec process manager:
codex-rs/core/src/unified_exec/process_manager.rs - Unified exec runtime adapter:
codex-rs/core/src/tools/runtimes/unified_exec.rs - Exec-server protocol methods and process output:
codex-rs/exec-server/src/protocol.rs - Exec-server client calls:
codex-rs/exec-server/src/client.rs - Remote process adapter:
codex-rs/exec-server/src/remote_process.rs - Executor filesystem handler:
codex-rs/exec-server/src/server/file_system_handler.rs - Remote filesystem sandbox forwarding:
codex-rs/exec-server/src/remote_file_system.rs
第 11 章:把 Patch 作为一等编辑协议
- Patch handler struct 与 tool surface:
ApplyPatchHandler,ToolHandlerimpl - Handler verification and orchestration:
ApplyPatchHandler::handle - Shell interception path:
intercept_apply_patch - Patch grammar 与 hunk model:
codex-rs/apply-patch/src/parser.rs - Invocation verifier:
maybe_parse_apply_patch_verified - Patch safety assessment:
assess_patch_safety - Patch runtime:
ApplyPatchRuntime::run - Hunk application and committed delta:
apply_hunks_to_files - Turn diff tracker:
codex-rs/core/src/turn_diff_tracker.rs
第 12 章:Hooks 与人工审批
Hook surfaces
- Legacy hook payload 对照:
codex-rs/hooks/src/types.rs - Protocol hook event names 与 run summaries:
codex-rs/protocol/src/protocol.rs - Hook list 与 runnable handler model:
codex-rs/hooks/src/engine/mod.rs - Discovery、normalized hashes 与 trust filtering:
codex-rs/hooks/src/engine/discovery.rs
Runtime hook outcomes
- Pre-tool hook request、preview、block 与 context recording:
codex-rs/core/src/hook_runtime.rs - Pre-tool outcome parser 的 block/context 语义:
codex-rs/hooks/src/events/pre_tool_use.rs - User-prompt hook 与 additional-context recording:
codex-rs/core/src/hook_runtime.rs - Permission-request hook contract 与 decision fold:
codex-rs/hooks/src/events/permission_request.rs
Approval、sandbox 与 Guardian 边界
- Approval protocol inputs 与 requests:
UserInput,EventMsg - Approval policy 与 decision enum:
AskForApproval,ReviewDecision - Permission hook before Guardian/user approval:
ToolOrchestrator::request_approval - Approval requirement before first sandbox attempt:
ToolOrchestrator::run - Sandbox-denial retry branch:
ToolOrchestrator::run - Guardian routing、fail-closed review 与 constrained review session:
codex-rs/core/src/guardian/review.rs
第 13 章:Sandboxes、网络策略与平台边界
- Built-in 与 custom permission profile compilation:
codex-rs/core/src/config/permissions.rs,compile_permission_profile - Runtime filesystem 与 network policy vocabulary:
codex-rs/protocol/src/permissions.rs - Additional permissions 与 effective profile merge:
codex-rs/sandboxing/src/policy_transforms.rs,effective_permission_profile - Sandbox attempt handoff into transform:
codex-rs/core/src/tools/sandboxing.rs - Sandbox type selection 与 platform choice:
codex-rs/sandboxing/src/manager.rs,select_initial - Platform command transform:
SandboxManager::transform - macOS Seatbelt generation 与 restricted managed-network policy:
codex-rs/sandboxing/src/seatbelt.rs,create_seatbelt_command_args - Linux bwrap/seccomp execution 与 proxy routing:
codex-rs/linux-sandbox/src/linux_run_main.rs,proxy_routing.rs - Windows elevated setup、legacy limitation 与 runner backend:
setup.rs,legacy.rs,elevated.rs - Windows identity、ACL、firewall 与 WFP enforcement anchors:
spawn_prep.rs,acl.rs,firewall.rs,wfp_setup.rs,wfp.rs,filter_specs.rs - Network proxy environment、domain rules 与 limited methods:
proxy.rs,policy.rs,limited methods
第 14 章:App-Server 契约
- JSON-RPC-lite envelope 与 request/notification/response/error decoding:
jsonrpc_lite.rs - Transport mode parsing 与 connection normalization:
transport/mod.rs,stdio.rs - Generated client request scopes 与
serialization_scope():common.rs - Request conversion、initialize gate、experimental gate 与 scoped dispatch:
message_processor.rs - Queue key mapping、FIFO draining 与 shared-read batching:
request_serialization.rs - Thread state、listener commands 与 server-request resolution command routing:
thread_state.rs - Listener task select loop 与 projection 前的 event tracking:
thread_lifecycle.rs - Running-thread resume order、可选 history/token replay、pending request replay 与条件化 goal continuation:
thread_lifecycle.rs - Stateless event-to-notification projection boundary 与代表性 item event cases:
event_mapping.rs,event cases - Generated server requests 与 typed response constructors,包括 dynamic tool call requests:
common.rs,server request definitions - Outgoing sender pending callbacks、response matching、unresolved request replay 与 thread cancellation cleanup:
outgoing_message.rs,send_request_to_connections,pending_requests_for_thread,cancel_requests_for_thread
第 15 章:SDK、Daemon 与远程控制
把这一组锚点当作 surface map 使用,不要读成“每种 client 都暴露同一份 contract”。Transport、Python SDK、TypeScript process wrapper、daemon lifecycle 和 remote control 分别拥有 app-server boundary 的不同边缘。
- Transport modes、listen URL parsing、transport events 与 connection origin:
transport/mod.rs - Python SDK public facade、initialize metadata normalization 与 generated
thread_start:api.py - Python SDK one-reader routing、response waiters、turn queues、pending turn replay 与
fail_all:_message_router.py - Python SDK run-result projection from stream notifications:
_run.py - TypeScript SDK
Codexpublic API:codex.ts - TypeScript SDK event parsing 与
run()collection:thread.ts - TypeScript SDK process wrapper、
resume、stdin input、stdout lines 与 exit errors:exec.ts - Daemon constants、lifecycle commands、start/restart/stop/version、bootstrap、readiness polling 与 operation lock:
app-server-daemon/src/lib.rs - Daemon control-socket probe 与 app-server version extraction:
client.rs - PID backend reservation lock、process start、pid-file state reads、stale cleanup 与 reservation lock acquisition:
backend/pid.rs - Remote-control start config、handle、initial status 与 websocket runner:
remote_control/mod.rs - Remote-control client/server envelopes、chunk events、ack cursor 与 URL normalization:
protocol.rs - Remote-control client tracker、stream-id fallback、remote-control connection origin 与 outbound task:
client_tracker.rs - Remote-control websocket state、outbound buffer、connect/reconnect、writer replay、sequence assignment、chunk splitting 与 sequence/segment ack handling:
websocket.rs - Remote-control segment limits、reassembly、out-of-order rejection 与 invalid chunk drops:
segment.rs
第 16 章:TUI 作为事件渲染器
- TUI ownership surface 覆盖 app state、select loop、terminal event handling、draw/resize、cursor 与 external-editor handoff:
app.rs、App::run、handle_tui_event - Internal routing surface 覆盖 app event bus、dispatcher 与 runtime command boundary:
app_event.rs、event_dispatch.rs、app_command.rs - Runtime crossing surface 覆盖 app-server session facade、turn start/steer、active-thread command routing 与 request resolution:
app_server_session.rs、turn_start、thread_routing.rs - Conversation projection surface 覆盖 chat widget ownership、protocol notification projection、outbound command submission 与 assistant streaming:
chatwidget.rs、chatwidget/protocol.rs、submit_op、flush_answer_stream_with_separator - Focus and decision surface 覆盖 bottom pane focus model、active views 与 approval overlay:
bottom_pane/mod.rs、as_renderable、approval_overlay.rs - Pending request and scrollback surface 覆盖 app-server request ledger、server-event routing、source-backed message consolidation 与 resize reflow:
app_server_requests.rs、app_server_events.rs、agent_message_consolidation.rs、resize_reflow.rs - Rendering 与 consolidation tests:
status_and_layout.rs、exec_flow.rs
第 17 章:MCP:没有运行时耦合的外部工具
- MCP configuration:
codex-rs/codex-mcp/src/mcp/mod.rs - Connection manager:
codex-rs/codex-mcp/src/connection_manager.rs - MCP tool info:
codex-rs/codex-mcp/src/tools.rs - Core tool exposure:
codex-rs/core/src/mcp_tool_exposure.rs - Outbound Codex MCP server:
codex-rs/mcp-server/src/message_processor.rs
第 18 章:Skills、Plugins、Connectors 与类型化扩展
- Skills manager:
codex-rs/core-skills/src/manager.rs - Skill metadata model:
codex-rs/core-skills/src/model.rs - Plugin manifest:
codex-rs/core-plugins/src/manifest.rs - Plugin manager:
codex-rs/core-plugins/src/manager.rs - Connector directory model:
codex-rs/connectors/src/lib.rs - Typed prompt extension API:
codex-rs/ext/extension-api/src/contributors/prompt.rs
第 19 章:外部迁移与向后兼容
- External config model:
codex-rs/app-server/src/config/external_agent_config.rs - Migration request processor:
codex-rs/app-server/src/request_processors/external_agent_config_processor.rs - TUI migration startup:
codex-rs/tui/src/external_agent_config_migration_startup.rs - Protocol compatibility surface:
codex-rs/app-server-protocol/src/protocol/mod.rs - Thread store:
codex-rs/thread-store/src
第 20 章:多 Agent 协作
- Graph edge status:
codex-rs/agent-graph-store/src/types.rs - Local graph store:
codex-rs/agent-graph-store/src/local.rs - Agent trace reducer:
codex-rs/rollout-trace/src/reducer/tool/agents.rs - Session multi-agent integration:
codex-rs/core/src/session/multi_agents.rs - Multi-agent tool handlers:
codex-rs/core/src/tools/handlers/multi_agents.rs
第 21 章:云端任务、身份与远程工作
- Cloud task API:
codex-rs/cloud-tasks-client/src/api.rs - HTTP backend client:
codex-rs/cloud-tasks-client/src/http.rs - Mock backend:
codex-rs/cloud-tasks-mock-client/src/mock.rs - Agent identity material:
codex-rs/agent-identity/src/lib.rs - Local diff discipline:
codex-rs/core/src/turn_diff_tracker.rs
第 22 章:Memories 与用户级状态
- Memory usage kinds:
codex-rs/memories/read/src/usage.rs - Citation parser:
codex-rs/memories/read/src/citations.rs - Read-only MCP memory service:
codex-rs/memories/mcp/src - Stage 1 extraction:
codex-rs/memories/write/src/phase1.rs - Stage 2 consolidation:
codex-rs/memories/write/src/phase2.rs
第 23 章:构建系统与生成契约
- Cargo workspace:
codex-rs/Cargo.toml - Bazel module:
MODULE.bazel - Bazel crate macros:
defs.bzl - Bazel release-build verification:
.github/workflows/bazel.yml - App-server schema export:
codex-rs/app-server-protocol/src/bin/export.rs
第 24 章:打包、发布与原生依赖
- npm wrapper package:
codex-cli/package.json - npm package builder:
codex-cli/scripts/build_npm_package.py - Native dependency installer:
codex-cli/scripts/install_native_deps.py - Cargo release build workflow:
.github/workflows/rust-release.yml - Release artifact staging:
.github/workflows/rust-release.yml - npm package staging:
.github/workflows/rust-release.yml - V8 dependency release surface:
third_party/v8/README.md
第 25 章:CI、策略与架构治理
- Main CI workflow:
.github/workflows/rust-ci.yml - Full CI matrix:
.github/workflows/rust-ci-full.yml - Bazel verification workflow:
.github/workflows/bazel.yml - Blob-size policy:
scripts/check_blob_size.py - TUI/core boundary check:
.github/scripts/verify_tui_core_boundary.py - Cargo workspace governance:
.github/scripts/verify_cargo_workspace_manifests.py
结语:真正值得带走的东西
protocol:protocolcore session runtime:core session runtimeapp-server:app-servertool execution:tool executionrollout trace:rollout trace- repository governance: repository governance
审计顺序
- 先读
Submission、Op、Event和EventMsg,理解 runtime 词汇。 - 再读
Codex、CodexThread和ThreadManager,理解 ownership。 - 读
session/turn.rs,看 turn loop、hook 顺序、sampling、continuation 和 completion。 - 读 tool planning / routing / registry / orchestration,理解为什么工具是受治理的副作用,而不是 callback。
- 读 app-server message processing 和 TUI rendering,理解多个客户端如何共享 runtime。
- 最后读 sandbox manager、cloud tasks、memory write phases 和 release workflows。
审计规则
当章节内容和源码索引不一致时,应该视为书稿问题。源码索引不是章节叙事的替代品,而是让叙事保持源码支撑的压缩地图。