术语、证据目录与源码索引
从概念和 claim 反向定位固定基线源码
结论:固定基线之上的反向导航层
本章是索引,而不是第二套叙事。你可以从术语、目录 ID、Package 路径、已文档化符号或事件名出发,回到精确的固定源码。以下每个数字都由当前 Manifest、双语 Fragment、证据目录、Package Inventory 与上游结构化模型生成。
1. 阅读方法与范围
目录触达率统计合格第 00–34 章引用过的稳定证据 ID。中英文引用序列必须完全一致,每个双语章节只计一次。第 35 章始终排除,因此渲染目录不会抬高自身覆盖数据。
目录触达只衡量被引用的目录 ID;它不是 Claim、架构、Package、源码文件或证明质量覆盖。
2. 双语术语表 · 48
| 符号 | 定义 | 导航 |
|---|---|---|
激活activation | 已校验贡献在某个 Scope 中变为可见的转折;激活必须具有明确所有权和释放路径。 别名: 动态激活 | 首次定义: 23 相关章节: 04, 05, 24 证据记录: CODEMODE-ACTIVATION, MULTIAGENT-ACTIVATION-OWNERSHIP |
Agentagent | 具备身份、Scope、Inbox、状态和 Session 支撑的执行生命周期的运行时对象;只有准备成功后才会发布。 别名: Agent 句柄 | 首次定义: 05 相关章节: 06, 24, 26 证据记录: AGENT-PUBLIC-INTERFACE, AGENT-PREPARE-PUBLISH |
审批approval | 请求作用域内、具有封闭结果词汇的人类决定;一次审批不是可复用的环境权限。 别名: 一次性审批 | 首次定义: 19 相关章节: 20, 21, 23, 29 证据记录: APPROVAL-OUTCOMES, APPROVAL-REQUEST-SHAPE |
Bundlebundle | 组装一组相互协调的插件与默认值、可复用的产品级配置层。 别名: 产品 Bundle | 首次定义: 04 相关章节: 03, 17, 30 证据记录: ARCH-LAYERS, BASE-BUNDLE-SPINE |
Code Modecode-mode | 向模型暴露生成式 SDK Binding 的呈现与派发模式;它不会创建第二套不受权限约束的工具引擎。 别名: 代码呈现模式 | 首次定义: 23 相关章节: 16, 18, 24 证据记录: CODEMODE-MODES, CODEMODE-SEAM |
提交点commit-point | 候选值转为权威事实的精确转折点;此前失败可否决发布,此后观察者失败不能撤销该事实。 别名: 权威提交点 | 首次定义: 09 相关章节: 11, 15, 16, 27 证据记录: SESSION-APPEND-COMMIT, DESIGN-PACKAGE-RULES |
上下文压缩compaction | 把合格前缀总结为一条已记录的 Surface 替换,以降低后续模型上下文成本,但不删除规范历史。 别名: Compaction | 首次定义: 13 相关章节: 09, 10, 28 证据记录: COMPACT-TRANSACTION, COMPACT-COMMIT |
连接代次connection-generation | 客户端单调递增的 Epoch,用于防止旧传输上的过期工作修改当前连接状态。 别名: 重连代次 | 首次定义: 30 相关章节: 27, 29 证据记录: WEBUI-CONNECTION-GENERATION, API-CONNECTION-LOOP |
可续跑子 Agentcontinuable-child | 依靠稳定 Descriptor 与 Session 支持后续 Follow-up Epoch 的子 Agent;仅在准备和 Inbox 接受成功后发布。 别名: Continuable | 首次定义: 24 相关章节: 26, 27 证据记录: MULTIAGENT-CONTINUABLE-START, MULTIAGENT-FOLLOWUP |
目录触达率coverage-reach | 合格章节语料引用过的目录 ID 占比;双语章节只计一次。它不是 Claim 覆盖、源码文件覆盖或证明质量。 别名: 证据目录触达 | 首次定义: 35 相关章节: 01, 32, 34 证据记录: — |
释放函数disposer | 注册操作返回的可调用清理句柄;所有权和逆序拆卸使它成为运行时契约的一部分,而非可选的收尾工作。 别名: 清理句柄 | 首次定义: 02 相关章节: 04, 05, 27 证据记录: ROOT-EFFECTS, DESIGN-SCOPE-TEST |
持久化屏障durability-barrier | 在模型请求、顶层工具主体或其他指定副作用继续前,等待所需日志前缀完成持久化的边界。 别名: Checkpoint 屏障, Flush 屏障 | 首次定义: 10 相关章节: 11, 15, 27 证据记录: LOG-CHECKPOINT-POLICY, LLM-CHECKPOINT-BARRIER |
可逆 Effecteffect | 与 Disposer 配对并由当前生命周期 Fiber 持有的副作用注册,使替换过程能够撤回自身发布的内容。 别名: 副作用注册 | 首次定义: 02 相关章节: 04, 05, 23 证据记录: ROOT-EFFECTS, DESIGN-SCOPED-LAYERS |
证据记录evidence-record | 绑定到固定仓库路径与行号范围的稳定目录 ID,并以双语说明该摘录支持什么。 别名: 目录条目 | 首次定义: 01 相关章节: 00, 33, 34, 35 证据记录: ROOT-BOUNDARIES |
Fiberfiber | 持有插件激活及其 Effect 的运行时生命周期节点;释放它会撤回其拥有的贡献图。 别名: 插件 Fiber | 首次定义: 02 相关章节: 04, 05, 23 证据记录: DESIGN-SCOPED-LAYERS, ROOT-EFFECTS |
Goalgoal | 带修订号和阶段的目标;更新时先校验精确引用并完成持久化 Session 提交,再实时发布。 别名: 目标状态 | 首次定义: 15 相关章节: 24, 29, 30 证据记录: PLANSTATE-GOAL-COMMIT, PLANSTATE-GOAL-TYPES |
Inbox 认领inbox-claim | 把排队输入分配给执行边界的持久化转折,跨取消或重启保留顺序与恢复语义。 别名: 认领边界 | 首次定义: 26 相关章节: 05, 06, 24, 27 证据记录: INBOX-CLAIM-REPLAY, AGENT-INBOX-COMMIT |
JSON-RPCjson-rpc | API 与 ACP 表面使用的类型化请求、响应和通知载体;信封校验本身不建立用户身份。 别名: RPC 信封 | 首次定义: 29 相关章节: 24, 30, 31 证据记录: API-RPC-SCHEMAS, API-TRUST-FENCE |
单调 Guardmonotonic-guard | 只能拒绝或弃权、不能授予权限的策略 Hook,因此后续 Guard 无法推翻先前否决。 别名: 工具 Guard | 首次定义: 19 相关章节: 16, 20, 23 证据记录: APPROVAL-GUARD-CONTRACT, TOOL-DECISIONS |
文件系统观察observation | 由特定文件系统工具记录、归 Session 所有的新鲜度元数据;它不等同于证明每个字节均被读取或所有文件访问均被观察。 别名: 读取观察 | 首次定义: 20 相关章节: 16, 31 证据记录: SANDBOX-OBSERVATION, SANDBOX-OBSERVATION-LIMITS |
Patchpatch | 组合层叠加时按稳定身份添加、替换或删除配置行的配置树操作。 别名: Cordis Patch | 首次定义: 04 相关章节: 03, 23 证据记录: BASE-BUNDLE-SEMANTICS, PROFILE-COMPOSE |
固定基线pinned-baseline | 本研究中每个路径、行号范围、生成索引和架构陈述共同依赖的精确上游提交。 别名: 源码基线 | 首次定义: 01 相关章节: 00, 35 证据记录: ROOT-PREVIEW |
Planplan | 一种交互模式选择;空闲时立即提交,Turn 进行中则在下一个被接受的 pre-Step 边界提交。 别名: 计划模式 | 首次定义: 15 相关章节: 06, 19, 30 证据记录: PLANSTATE-PLAN-BOUNDARY, PLANSTATE-PLAN-STATE |
插件plugin | 挂载到 Context、由生命周期 Scope 持有的可组合运行时贡献;它可以发布 Service、监听器和可逆 Effect。 别名: Cordis 插件 | 首次定义: 02 相关章节: 03, 04, 23, 30 证据记录: ARCH-PLUGIN-CORE, DESIGN-CORDIS-SEMANTICS |
Profileprofile | 选择并叠加 Bundle 与 Patch、形成有效插件树的命名启动组合。 别名: 启动 Profile | 首次定义: 04 相关章节: 03, 23, 31 证据记录: PROFILE-COMPOSE, PROFILE-LOAD |
Projectionprojection | 基于权威记录折叠或查询得到的视图;Projection 可以加速读取,但不会因此成为事实来源。 别名: 派生视图 | 首次定义: 12 相关章节: 09, 10, 15, 30 证据记录: PROJ-AUTHORITY-LAYERS, PROJ-REGISTRY-DRIVE |
重放replay | 按序折叠持久化事实来重建派生运行时状态或模型可见状态,而不是信任驻留缓存。 别名: 日志重放 | 首次定义: 10 相关章节: 09, 12, 13, 27 证据记录: SESSION-DERIVED-ORACLE-TEST, LOG-HISTORY-CUT |
请求头快照request-header | 用于重建并比较模型请求的、规范化记录下来的请求塑形上下文快照。 别名: request-header 事件 | 首次定义: 07 相关章节: 08, 09, 27, 28 证据记录: PROMPT-HEADER-CANONICAL, LOOP-REQUEST-INVARIANT |
配置行身份row-identity | 用于判断后续配置层替换哪一行的稳定键;文本位置本身不是身份。 别名: 稳定行身份 | 首次定义: 04 相关章节: 23, 27 证据记录: BASE-BUNDLE-SEMANTICS, PROFILE-LIVE |
运行时不变量runtime-invariant | 由 Package 持有、在运行时检查语义性质的可执行规则;它补充静态类型和测试,而不是替代它们。 别名: Invariant | 首次定义: 32 相关章节: 06, 09, 13, 16 证据记录: DESIGN-INVARIANT-REGISTRY, PKG-INVARIANTS |
Sandbox 策略sandbox-policy | 针对声明的进程文件副作用与可写根目录逐调用解析的策略;其文档边界不是通用网络、系统调用、设备或凭据隔离。 别名: 文件副作用约束 | 首次定义: 20 相关章节: 19, 21, 23, 31 证据记录: SANDBOX-DOC-BOUNDARY, SANDBOX-POLICY |
作用域scope | 同时界定可见性和所有权的边界,决定哪些贡献可被观察,以及由哪个生命周期撤回。 别名: Context 作用域 | 首次定义: 02 相关章节: 05, 16, 23, 30 证据记录: DESIGN-SCOPED-LAYERS, DESIGN-SCOPE-TEST |
服务service | 发布在 Context 键下、通过 Scope 感知查找使用的类型化能力,而不是由全局对象直接持有。 别名: Context 服务 | 首次定义: 02 相关章节: 03, 16, 22, 23 证据记录: DESIGN-CORDIS-SEMANTICS, DESIGN-SCOPED-LAYERS |
Session 事件session-event | Session 日志中带序号、时间、负载及可选 Surface 元数据的追加式类型记录;它不是实时 Cordis 事件。 别名: 持久化日志记录 | 首次定义: 09 相关章节: 10, 11, 12, 35 证据记录: SESSION-EVENT-ENVELOPE, SESSION-CORE-EVENTS |
Slotslot | 由 Scope 持有的浏览器贡献点;其递归释放会移除某个 Entry 声明的整个子树。 别名: UI 插槽 | 首次定义: 30 相关章节: 02, 23 证据记录: WEBUI-SLOT-CASCADE, DESIGN-SCOPED-LAYERS |
Stepstep | Turn 内的一次提示词组装与模型请求尝试,随后进入完成或工具续跑边界。 别名: 模型步骤 | 首次定义: 06 相关章节: 07, 08, 18 证据记录: LOOP-STEP-STATE, LOOP-REQUEST-BUILD |
子 Agentsubagent | 通过 Provider Seam 创建、具有明确父级所有权、运行身份、结算、预算和可选续跑能力的子执行。 别名: 子智能体 | 首次定义: 24 相关章节: 25, 26, 29 证据记录: MULTIAGENT-SEAM, MULTIAGENT-LIFECYCLE |
Surfacesurface | 从合格 Session 事件派生的有序模型可见消息投影;它是日志之上的视图,而不是规范日志本身。 别名: 模型可见 Surface | 首次定义: 09 相关章节: 10, 12, 13 证据记录: SESSION-SURFACE-PROJECTION, ROOT-MODEL-LOGGED |
Surface 操作surface-op | 由 Surface 合格事件携带的追加、替换或删除操作,用于确定性折叠模型可见历史。 别名: surfaceOp | 首次定义: 09 相关章节: 10, 13 证据记录: SESSION-SURFACE-REPLACE, SESSION-EVENT-ENVELOPE |
Todotodo | 具有独立校验和 Projection 契约的整值列表状态;它不继承 Goal 或 Plan 的权威语义。 别名: 待办列表 | 首次定义: 15 相关章节: 16, 17, 30 证据记录: PLANSTATE-TODO-TOOL, PLANSTATE-TODO-INVARIANT |
工具运行时tool-runtime | 覆盖输入物化、策略、Guard、Around 派发、主体执行、后置策略、最终化和不可变结果的有序执行事务。 别名: 工具事务 | 首次定义: 16 相关章节: 17, 18, 19, 23 证据记录: TOOL-PIPELINE, TOOL-RUNTIME-INVARIANT |
信任边界trust-boundary | 身份、权限、数据来源或副作用能力发生变化、因而需要显式校验或策略的命名转折。 别名: 权限边界 | 首次定义: 31 相关章节: 19, 20, 29 证据记录: ROOT-TYPED-TRUST, API-TRUST-FENCE |
Turnturn | 由用户或系统触发、可包含多个 Step,并以明确原因结束的执行区间。 别名: Agent 轮次 | 首次定义: 06 相关章节: 09, 15, 26 证据记录: LOOP-TURN-STATE, ARCH-TURN |
类型化事件typed-event | 由 TypeScript 签名和派发模式约束生产者与监听器的命名实时总线契约;它不同于持久化 Session 日志记录。 别名: Cordis 事件 | 首次定义: 02 相关章节: 06, 09, 35 证据记录: DESIGN-CORDIS-SEMANTICS, SESSION-CORE-EVENTS |
Waterfallwaterfall | 监听器可变换值并委托给下一个监听器的有序实时事件模式;逻辑位于 next 前后具有语义差异。 别名: 瀑布式事件 | 首次定义: 02 相关章节: 06, 07, 16, 19 证据记录: DESIGN-CORDIS-SEMANTICS, PROMPT-ASSEMBLY-PIPELINE |
水位标记watermark | 界定缓存 Projection 已折叠到何处、以及尾部重放是否安全的日志位置与身份元数据。 别名: Projection 水位 | 首次定义: 12 相关章节: 10, 30 证据记录: PROJ-CACHE-LADDER, PROJ-CACHE-SCHEMA |
Workflowworkflow | 在明确的并发、子任务总量、同步 Slice 与释放时限下组合子运行和 Combinator 的已校验编排程序。 别名: 工作流运行 | 首次定义: 25 相关章节: 24, 27, 29 证据记录: WORKFLOW-LIFECYCLE, WORKFLOW-CAPS |
延后写入write-behind | 按 Session 维持追加顺序的异步持久化;在特定外部副作用前需要显式 Flush Barrier。 别名: 延后写入队列 | 首次定义: 10 相关章节: 11, 27 证据记录: LOG-WRITE-BEHIND, PERSIST-WRITE-BEHIND |
3. 证据目录触达
| 语料集 | 章节数 | 引用次数 | 已引用唯一 ID | 未引用 ID | 目录触达率 | 目录路径触达率 |
|---|---|---|---|---|---|---|
published-substantive | 35 | 1350 | 1092 | 2 | 99.8% | 100.0% |
verified | 35 | 1350 | 1092 | 2 | 99.8% | 100.0% |
按目录类型统计的已发布实质内容触达
| 类型 | 目录 ID | 已引用唯一 ID | 目录触达率 |
|---|---|---|---|
| design-note | 4 | 4 | 100.0% |
| generated-doc | 4 | 4 | 100.0% |
| generated-source | 1 | 1 | 100.0% |
| official-doc | 79 | 78 | 98.7% |
| production-config | 57 | 57 | 100.0% |
| production-source | 805 | 805 | 100.0% |
| production-test | 137 | 137 | 100.0% |
| repository-policy | 7 | 6 | 85.7% |
重复使用 ID: 201; 重复引用次数: 258.
4. 完整证据目录 · 1094
全集:evidence/catalog.json 的每条记录。各行使用普通链接而非引用标签,因此不会进入覆盖统计。“首次”和“全部章节”基于已发布实质内容语料。
design-note · 4
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
INBOX-WAKE-LATCH-NOTE取消收敛 latch 决策与剩余缺口 | .agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.md:9-29 | 记录 latch 的原因、只区分 post-abort wake 的设计,以及 final hasPending 后 sub-microtask gap 仍可能停放输入。 | 26 | 26 |
PARALLEL-NOTE-DRIFTImplemented note 中已过时的取消与 Code Mode 描述 | .agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.md:43-51 | 旧 note 仍称未启动调用没有 audit event、Code Mode queue 保持串行;当前源码已经使用 synthetic call/result 与 parallel per-run scheduler。 | 18 | 18 |
PARALLEL-SAFETY-NOTEUnary classifier 的保守安全约定 | .agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.md:17-25 | 设计只允许分类器查看当前调用参数;scheduler 不比较 sibling 或证明资源兼容性,依赖关系型安全条件的调用必须保持 exclusive。 | 18 | 18 |
TOOLCAT-PARALLEL-OPTINSShipped 工具的保守并行声明清单 | .agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.md:53-65 | 实现说明把 Web search/fetch、filesystem read、Session Query trace/read 与 subagent delegation 列为 opt-in,并明确写/edit、shell、query search、workflow、human、todo、Code 与 Cordis 保持 exclusive。 | 17 | 17 |
generated-doc · 4
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
TOOL-PIPELINE工具执行管线 | docs/tool-execution-pipeline.md:4-60 | pre、单调 guard、around execute、post、normalization、finalize 和 immutable result 的完整顺序。 | 16 | 16, 33 |
TOOLCAT-GENERATED生成工具目录的口径与完整 package map | docs/tool-catalog.md:1-41 | 目录说明真实启动工具插件以收集动态 schema、默认与 required 分支、可配置名称和 examples 排除,并列出固定基线全部 shipped 工具包及其名称、依赖、副作用和别名。 | 17 | 17 |
TOOLCAT-PACKAGE-MAP24 个 shipped 工具包的名称与能力 seam | docs/tool-catalog.md:16-41 | Package map 逐包列出模型可见名称、requires、writes/affects、shipped aliases 和 deployment note,包括 opt-in Cordis、条件 read_image、可配置 subagent 与 child-only report。 | 17 | 17 |
TURN-SEQUENCEAgent turn/step 时序 | docs/agent-lifecycle.md:19-80 | 输入认领、durable events、并行工具结算、停止点和 SDK 事件面的时序。 | 01 | 01, 06 |
generated-source · 1
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
SESSION-KNOWN-EVENTS本构建识别的 44 种事件 | packages/core/session/src/known-event-types.ts:9-64 | 生成 catalog 列出全仓库声明的 44 个事件类型;持久化读路径用它拒绝未知 required vocabulary。 | 09 | 09 |
official-doc · 79
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
APPROVAL-DOC-API-DRIFTAPI proxy README 的审批能力漂移 | packages/host/apiproxy/README.md:75-81 | README 仍声称 pending interaction 表只处理 question,且没有 approval 项。 | 19 | 19 |
APPROVAL-DOC-PRESET-DRIFT权限 README 的标识符漂移 | packages/interaction/permission-presets/README.md:5-17 | README 仍把持久事件写作 permissionPresets/preset,并把命令写作 /permissionPresets。 | 19 | 19 |
ARCH-LAYERSProfile、Bundle 与 patch 叠层 | docs/architecture.md:15-37 | 运行时插件树按 bundle、profile patch、home patch、CLI overlay 的顺序组合。 | 该语料未引用 | — |
ARCH-LOGSession log 与 capability seam | docs/architecture.md:92-102 | 日志是模型上下文事实源;model-visible 必须可从日志重建;seam 包含定义、提供者与消费者。 | 00 | 00, 02, 12 |
ARCH-PLUGIN-CORECordis 与无特权核心 | docs/architecture.md:9-13 | 全部产品部件都是插件;通过共享 context 的 service、typed event 和 reversible effect 组合。 | 00 | 00, 02 |
ARCH-TURNTurn / Step 主流程 | docs/architecture.md:63-90 | turn、step、prompt、LLM、工具与 live waterfall 的关系。 | 02 | 02, 06 |
CAP-MCP-DEFAULT-OFFMCP memory 示例默认关闭 | examples/mcp-memory/README.md:1-33 | 三个第三方 MCP memory 配置仅为默认关闭的互操作示例;默认组合没有 server,安装、运行与 provider 行为由 operator/第三方拥有。 | 22 | 22 |
CAP-MCP-LIMITSMCP bridge 的已知限制 | packages/mcp/mcp-client/README.md:109-115 | README 明确只桥接 Tools,startup timeout 继承 SDK,HTTP recovery 不同,Native 非文本有损且不支持的 output schema 不执行约束。 | 22 | 22, 33 |
CODEMODE-README-DRIFTtool-cordis README 仍描述旧五工具与旧配置 | packages/extensions/tool-cordis/README.md:5-27 | README 仍列出旧 cordis_inspect 五工具接口,并声称 runner 有 ackTimeoutMs;生产源码已拆成七工具,runner 当前配置只有 vmTimeoutMs。 | 23 | 23 |
DESIGN-CORDIS-SEMANTICSCordis 的服务、事件、waterfall 与 effect 语义 | docs/cordis-primer.md:7-44 | 插件通过 service key 解耦实现,通过声明式 inject 等待依赖,通过 typed event 协作,并由可逆 effect 绑定注册与卸载。 | 02 | 02 |
FAILURE-RETRY-DOC-DRIFTRetry README 的新 Turn 描述漂移 | packages/llm/llm-retry/README.md:1-13 | README 声称每次 retry 关闭失败 Turn 并打开新编号 Turn,与当前 Step 内循环和测试冲突。 | 27 | 27 |
INBOX-JSONL-DURABILITYJSONL fsync、write-behind 与 flush | packages/session/session-persistence-jsonl/README.md:40-52 | 首批与后续 batch 都 fsync,失败回滚;live event 用固定窗口合批,flush 与 teardown 会 drain。 | 26 | 26 |
INBOX-README-DRIFTApiProxy README 的 next-step projection 漂移 | packages/host/apiproxy/README.md:41-41 | README 声称 next-step steering 不进入 Web projection,而当前 queueItems 与 ChatView 明确投影并呈现它。 | 26 | 26 |
LLM-RETRY-DOC-DRIFTRetry README 与当前 loop 的边界漂移 | packages/llm/llm-retry/README.md:1-53 | README 多处称 retry 会关闭旧 Turn 并开启新编号 Turn;生产源码和测试实际在同一 while loop、同一 turn/step 内 continue。 | 08 | 08 |
MEMORY-MCP-BOUNDARY默认关闭的第三方 Memory MCP 责任边界 | examples/mcp-memory/README.md:5-82 | 三个示例只提供 opt-in overlay;Harness 管理 MCP transport/tool discovery,不负责 server 安装、数据库、模型/embedding、provider 数据与语义。README 分别说明 provider 存储,并要求人工验证跨 Session recall。 | 14 | 14, 33 |
MEMORY-QUERY-TOOL-CONTRACT默认未挂载的 model-facing Session query tools | packages/session-query/tool-session-query/README.md:5-20 | Opt-in 包声明五个模型工具,发布 Host 默认不挂载;README 同时定义 exact-cwd authority、隐藏未授权 lineage,并说明包自身不截断输出。 | 14 | 14 |
MEMORY-REFERENCE-DOC-DRIFTREADME 所宣称的 standard TUI 注入集成 | packages/context/session-reference/README.md:13-18 | README 声称 standard TUI 在 idle 时安装 one-shot pre-step wrapper,并在 running 时 inject 后 steer;固定提交的发布 composition 与生产消费方没有对应挂载。 | 14 | 14 |
MEMORY-REFERENCE-OPT-INContext 包总览将 session-reference 标为 opt-in | packages/context/README.md:5-14 | Context package overview 只称 agent-instructions 属于默认 bundle,并把 time-context、tmux-context 与 session-reference 明确列为 opt-in。 | 14 | 14 |
MEMORY-REFERENCE-TRUSTSession reference 的 trusted-caller 与 snapshot 限制 | packages/context/session-reference/README.md:45-50 | README 明确声明 service 假定 Host 已获准读取 sessionQuery 暴露的全部 Session,且引用是 text-only snapshot,不是 live link、fork、resume 或 subscription。 | 14 | 14 |
MEMORY-SKILL-CLIENT-UIWeb Skill 候选缓存、字面量 gesture 与失败降级 | packages/client/ui-skill/README.md:5-9 | 客户端按普通 Session 缓存 user-invocable catalog,/ 菜单选择写入字面量 /name,Host pre-step 统一解释;skill.list 失败会被折叠成静默菜单分组缺失。 | 14 | 14 |
MEMORY-WEB-SEARCHWorkspace Browser 的本地优先与远端内容搜索 UX | packages/client/ui-workspace/README.md:5-11 | 非空查询立即匹配 title/workspace,250ms 后合并 Host current-conversation content hits;远端失败保留本地结果并警告,最终去重并限制 20 条。 | 14 | 14 |
OBS-PRIVACY-BOUNDARY离开机器的数据与 lineage 说明 | packages/session/session-telemetry-otel/README.md:36-42 | 枚举上传的消息、工具、文件、prompt、todo、compaction、feedback 与 cwd;无内置 redaction,credential 结构性缺席。 | 28 | 28, 33 |
OBS-QUERY-TOOLS五个模型侧 session-query 工具 | packages/session-query/tool-session-query/README.md:5-76 | 说明五个 opt-in 工具默认不随 host 挂载、exact read 不删节,以及通用 spill policy 的职责。 | 28 | 28 |
OBS-TRAJECTORY-CONTRACTTrajectory 浏览器视图契约 | packages/client/ui-trajectory/README.md:5-17 | 定义 window-scoped ledger、分页、虚拟化、timeline、inspector、空白 in-flight duration,以及对模型无影响。 | 28 | 28 |
OPEN-API-BODY-BOUNDAPI bridge 的 resident body bound | packages/client/connection/README.md:23-26 | 每个 request body 被全量缓存在内存,默认 maxRequestBodyBytes 为 160 MiB;降低 resident bound 需要 streaming path 或缩小 image limits。 | 34 | 34 |
OPEN-ATOMIC-DURABILITYAtomic write 的 durability 与 orphan-lock 边界 | packages/util/atomic-write/README.md:23-45 | 同目录 rename 提供完整值的可见原子性,但无 file/directory fsync;崩溃可留下需要 operator 确认后清理的 orphan lock。 | 34 | 34 |
OPEN-ATTACHMENT-LOCAL-RETENTION本地 attachment 的无限期 retention | packages/attachment/attachment-local/README.md:17-20 | 本地 backend 明确无限期保留对象,并把 reference-aware garbage collection 列为 deferred。 | 34 | 34 |
OPEN-ATTACHMENT-RETENTIONAttachment retention 与 GC 缺口 | packages/attachment/attachment/README.md:17-21 | 不可变对象可被 resume/fork 共享,因此 retention 与 garbage collection 被 deferred;其他媒体与持久 draft 也需要独立 lifecycle。 | 34 | 34 |
OPEN-CHECKPOINT-UNKNOWNCheckpoint 后的外部结果未知 | packages/session/session-checkpoint-policy/README.md:5-45 | policy 在 top-level tool body 前 checkpoint execution intent;恢复把已持久 call、缺失 result 的情况标为 TOOL_OUTCOME_UNKNOWN,不自动重试,且不提供通用 exactly-once effect。 | 34 | 34 |
OPEN-CLIENT-UNLOAD客户端通用 unload chain 缺口 | packages/client/runtime/README.md:89-93 | loader.unload 是会抛 not-implemented 的 stub,没有从 fiber disposal 到 registration 与 style removal 的通用链。 | 34 | 34 |
OPEN-FEEDBACK-CONSISTENCYFeedback 的跨进程一致性与 retention 限制 | packages/feedback/message-feedback/README.md:76-84 | CAS 只在单进程 queue 内成立;多个 Host process 可能 silent lost update,并且没有 durable deletion cascade、item-count 或 aggregate-row byte cap。 | 34 | 34 |
OPEN-NATIVE-OUTPUT-BOUNDNative command 的无界输出缓存 | packages/util/native-command/README.md:25-27 | stdout 与 stderr 都无界缓存在内存;当前合理性只依赖 caller 运行的小输出原生工具。 | 34 | 34 |
OPEN-OTEL-BOUNDARYOTel SDK 与 live collector 边界 | packages/session/session-telemetry-otel/README.md:30-38 | 认证、TLS、重试、queue 与 throttling 属于 SDK;shutdown outer deadline 不能取消 transport,完整 event data 可按当前 redaction 结果离机。 | 34 | 34 |
OPEN-PROCESS-PLATFORM-LIMITS本地 process observation 的平台限制 | packages/subprocess/subprocess-local/README.md:26-33 | Windows tree 支持是 best-effort,terminal inspector 只支持 Linux/macOS;reparent 或 setsid 可让 daemonized child 逃离观察范围。 | 34 | 34 |
OPEN-RALPH-VERIFICATIONRalph 的自报完成与 effort 上限 | packages/workflow/tool-ralph/README.md:86-93 | 完成由 worker 自报且无独立 evaluator;aggregate effort 只有 round count,token、price 与 elapsed-time budget 均 deferred。 | 34 | 34 |
OPEN-REPLAY-CONCURRENCYReplay 的并发 delegation 与 failure 表达缺口 | packages/test-support/llm-replay/README.md:77-80 | first-call-order script binding 假设 sequential delegation;并发 sibling 会非确定绑定,部分 throw/hang/summarizer 情况需 sidecar。 | 34 | 34 |
OPEN-SANDBOX-DOC-OMISSIONSandbox 父 README 的 Windows 摘要遗漏 | packages/sandbox/sandbox/README.md:5-26 | 实现摘要括注只列 Linux 与 macOS,但同页 fail-closed error 文案包含 Windows ACL runner。 | 34 | 34 |
OPEN-SANDBOX-PLATFORM-LADDERSandbox provider 的实际平台 ladder | packages/sandbox/sandbox-local/README.md:1-15 | provider README 明确列出 Linux bwrap/Landlock、macOS Seatbelt 与 Windows ACL restricted-token runner。 | 34 | 34 |
OPEN-SANDBOX-PLATFORM-LIMITS各平台 sandbox enforcement 限制 | packages/sandbox/sandbox-local/README.md:34-40 | Windows ACL 和旧 Landlock ABI 可为 partial,Seatbelt 依赖 deprecated sandbox-exec,runner 选择会缓存,自定义 runner 属于 operator assertion。 | 34 | 34 |
OPEN-SANDBOX-SCOPESandbox seam 的明确范围 | packages/sandbox/sandbox/README.md:37-43 | 合同只描述文件 effect,不限制网络、进程、syscall、device 或 credential;same-world、stderr denial 与带内 runner diagnostic 各有明示边界。 | 34 | 34 |
OPEN-SETTINGS-CROSS-PROCESSSettings 的跨进程一致性边界 | packages/settings/settings/README.md:41-45 | settings seam 只在进程内按 namespace 串行;跨进程收敛由 provider 决定,本地文件 provider 对同 namespace 冲突采用 last-write-wins。 | 34 | 34 |
OPEN-SETTINGS-REDACTION-DOCSettings wire redaction 的公开限制 | packages/settings/settings/README.md:41-45 | 公开文档同时记录 walker 盲区与 schema default 外发路径,并把 fail-closed describeForWire 列为 deferred work。 | 34 | 34 |
OPEN-SNAPSHOT-BACKEND-GAPSnapshot harvest 的 backend 缺口 | packages/test-support/acp-snapshot/README.md:74-78 | session harvest 只支持 raw JSONL;compressed JSONL 与 SQLite composition 没有 snapshot harvest path。 | 34 | 34 |
OPEN-TELEMETRY-HANDOFFTelemetry handoff cursor 的精确语义 | packages/session/session-telemetry/README.md:13-35 | disclosure 不声称 delivery;cursor 标记 handed-off 而非 delivered,旧进程未交付记录不会在 resume 时 backfill,receiver 仍需 dedupe。 | 34 | 34 |
OPEN-TELEMETRY-LIMITSTelemetry delivery 与 redaction 限制 | packages/session/session-telemetry/README.md:45-49 | backend queue 可在 crash 时丢失;seam 不随附 redaction rule;on-demand replay 使用触发时的当前 policy。 | 34 | 34 |
OPEN-WEB-SSRFHTTP fetch 的 SSRF 缺口 | packages/web/web-fetch-http/README.md:17-51 | provider 有协议、大小、超时、内容与同源重定向约束,但没有私网目的地阻断、DNS resolve 后验证或逐 hop 重验,并明确禁止在可达敏感内网时启用。 | 34 | 34 |
OPEN-WORKFLOW-DURABILITYWorkflow 的持久化与预算缺口 | packages/workflow/workflow/README.md:53-59 | 只支持 foreground collection,没有 journaling/resume、saved/nested workflow、跨 child token budget 或 service-level live-run tracking。 | 34 | 34 |
OPEN-WORKFLOW-ISOLATIONWorkflow worker/vm 的非安全边界 | packages/workflow/workflow-worker-thread/README.md:5-22 | worker 隔离同步执行和提供终止,但 node:vm 仅做 API shaping;逃逸脚本可获得 host process 权限,不受信脚本需要不同 engine。 | 34 | 34 |
PARALLEL-AGENT-READMEAgent-loop README 的当前并发语义 | packages/core/agent-loop/README.md:68-74 | README 准确说明 exclusive barriers、bounded rolling pool、仅 body overlap、有序 policy/results/context,以及取消和 scheduler failure 的 drain。 | 18 | 18 |
PARALLEL-READMETools README 的 Native 与 Code Mode 并发说明 | packages/core/tools/README.md:119-130 | README 描述 Code Mode 独立 per-run pool、默认 cap 10、exclusive barrier、有序 contexts 与 settlement drain,并与 Native scheduler 的相同分类原则区分。 | 18 | 18 |
PERSIST-ATTACH-DECODE-DOCAttachment README 声称 read 完整 decode | packages/attachment/attachment-local/README.md:1-7 | README 明确写道 write admission 与 reads 都会在接受 format 与 dimensions 前完整 decode raster。 | 11 | 11 |
PERSIST-ATTACH-LIMITSAttachment 无限期保留限制 | packages/attachment/attachment-local/README.md:17-21 | 已知限制明确说明对象无限期保留,reference-aware garbage collection 尚未实现。 | 11 | 11 |
PERSIST-WORKSPACE-OWNERSHIPWorkspace 删除与所有权边界 | packages/workspace/workspace/README.md:11-23 | Workspace 删除只移除 registration、durable order entry 与 Session account;目录、用户文件、live Sessions 与 persisted logs 均不触碰。 | 11 | 11 |
PERSIST-WORKSPACE-REFRESH-DOCWorkspace README 的 refresh 表述 | packages/workspace/workspace/README.md:41-44 | README 声称外部 Session deletion 或 cwd damage 会在下次 refresh 或 restart 后被观察。 | 11 | 11 |
PKG-HIERARCHY包分组与依赖方向 | packages/README.md:5-67 | 49 个 package group 的职责、发布预期以及 extension 只依赖 service definition 的方向规则。 | 03 | 03 |
PLANSTATE-DOC-GOAL-COMMANDcommand-goal README 的旧 status-widget 限制 | packages/goal/command-goal/README.md:53-58 | README 仍称没有 continuous status widget,但当前 Web 已有 projection-driven GoalBar。 | 15 | 15 |
PLANSTATE-DOC-GOAL-TOOLtool-goal README 的旧 concludeTurn 表述 | packages/goal/tool-goal/README.md:13-18 | README 声称自动 complete/blocked 调用 concludeTurn,与当前 deferContext 源码及测试不一致。 | 15 | 15 |
PLANSTATE-DOC-GOAL-UIui-goal README 的旧 inbox/context 架构 | packages/client/ui-goal/README.md:5-21 | README 的 Model Experience 仍称 Remote mutation 写 agent/inbox/spliced 并排队 goal context,同时也记录 projection 不含 activation。 | 15 | 15 |
PLANSTATE-PLAN-LIMITATIONPlan 已记录的恢复与呈现限制 | packages/plan/plan-mode/README.md:92-98 | README 明确记录最后 accepted pre-step 后的选择可能在进程退出时丢失、Fork/新 spawn 差异、live child 评审限制与 Web-only 专用 renderer。 | 15 | 15 |
SANDBOX-DOC-BACKENDSSandbox README 的 backend 与 consumer 漂移 | packages/sandbox/sandbox/README.md:11-13 | README 的实现摘要只列 Linux/macOS local backends,consumer 只列 Bash;当前生产代码还包含 Windows ACL 与 filesystem sandbox consumer。 | 20 | 20 |
SANDBOX-DOC-BOUNDARY沙箱官方边界与带内诊断限制 | packages/sandbox/sandbox/README.md:37-43 | README 明确把策略范围限制为文件副作用,排除网络、进程、系统调用、设备与凭据,并记录 stderr denial/runner attribution 的带内限制。 | 20 | 20, 33 |
SANDBOX-DOC-ERROR-CODEFilesystem README 的错误码遗漏 | packages/fs/fs/README.md:49-51 | README 的 stable FsErrorCode 枚举列出多种错误但遗漏源码类型已定义的 FS_SANDBOX_DENIED,形成具体文档漂移。 | 20 | 20 |
SANDBOX-E2B-LIMITSE2B Filesystem 的同步、锁与 reopen 限制 | packages/e2b/fs-e2b/README.md:26-32 | README 明确没有 host 同步,mutation coordination 仅限 host process,replacement 可与外部写入竞态,且 canonical path 到 stream open 之间仍有 reopen race。 | 20 | 20 |
SANDBOX-FS-LOCAL-LIMITS本地 Filesystem 的并发与清理限制 | packages/fs/fs-local/README.md:40-45 | README 明确 mutation lock 仅限进程内、guarded create 才有跨进程 no-replace,replacement 仍可竞态,且 commit 后 staging 清理失败会留下 residue。 | 20 | 20 |
SANDBOX-OBSERVATION-DOCObservation gate 的 first-wins 与可卸载语义 | packages/fs/fs-observation-policy/README.md:30-50 | README 定义三种 fs event 决策,说明 intent slot 按注册顺序 first-wins;移除 plugin 后工具会回落到 bare provider 的 unconditional write/edit。 | 20 | 20 |
SANDBOX-OBSERVATION-LIMITSObservation policy 的已知保证边界 | packages/fs/fs-observation-policy/README.md:68-73 | 官方限制说明状态不随 resume 持久化、无 Session actor 无法满足 policy、直接 ctx.fs read 不记录,以及 window read 只授权同版本而不证明完整阅读。 | 20 | 20, 33 |
SANDBOX-WINDOWS-CAPSWindows ACL 的 partial 能力与清理边界 | packages/sandbox/sandbox-windows-acl/README.md:73-82 | 官方边界记录 Everyone 与 hard-link 旁路、standing workspace ACE、可撤销的 per-Session temp capability,以及崩溃或 cleanup failure 后的惰性残留。 | 20 | 20 |
SDK-WIRE-LIMITSSDK wire 的公开限制 | packages/sdk/protocol/README.md:35-39 | 协议没有版本协商、prompt cancel 或 session close;serverInfo.version 为 0.0.1 且客户端不比较预期版本,服务端到客户端 request 当前是 dead capability。 | 29 | 29 |
SEC-DYNAMIC-ROOT-SCOPE动态包的 Session ownership 与 process-wide effect scope | packages/extensions/tool-cordis/README.md:11-23 | 公开工具契约说明各 verb 仅由 defining Session 控制,但 active package 可影响同一 process 中的其他 Session,并明确 sandbox 不是 security boundary。 | 31 | 31 |
SEC-E2B-LIMITSE2B filesystem 的同步与竞态限制 | packages/e2b/fs-e2b/README.md:26-32 | 远端文件系统不自动与 Host 同步,协调只在 Host 进程内,close/reopen 存在 documented race。 | 31 | 31 |
SEC-FS-LOCAL-LIMITS本地文件系统的边界与竞态 | packages/fs/fs-local/README.md:36-45 | cwd 不是 sandbox;absolute path 与 .. 可逃逸,mutation lock 仅进程内,跨进程 guarded replacement 和 metadata version token 存在竞态,清理失败可留 staging residue。 | 31 | 31 |
SEC-OBSERVATION-LIMITSObservation policy 的明示限制 | packages/fs/fs-observation-policy/README.md:68-73 | 观察状态不跨 resume,直接 ctx.fs 读取不计观察,windowed read 在版本未变时授权完整 overwrite;该机制是 freshness gate 而非授权边界。 | 31 | 31 |
SEC-SANDBOX-SCOPESandbox 明示的不覆盖范围 | packages/sandbox/sandbox/README.md:37-43 | 文档明确排除 syscall、device、credential 限制,并说明 same-world confinement、stderr 分类与可伪造 in-band 诊断的局限。 | 31 | 31 |
SHELL-JOBS-UI只读 Web Job 镜像与重启语义 | packages/client/ui-jobs/README.md:5-24 | Web 从 Host mirror 渲染只读 live/settled rows;进程重启清空列表而 transcript 保留启动卡,unowned Job 对所有 Session 可见。 | 21 | 21 |
SHELL-PWSH-DOC-DRIFTPowerShell README 中过时的 inject 名称 | packages/shell/tool-pwsh/README.md:5-9 | README 声明 tool-pwsh 的 inject 是 tools/bash/systemPrompt/bashEnv。 | 21 | 21 |
TINV-POLICY分层测试策略 | docs/testing.md:7-15 | 定义单元、逐文件覆盖、真实 API、无密钥快照与浏览器快照各自的证明边界。 | 32 | 32, 33 |
WEBUI-DETAILS-LIMITTool details 入口缺口 | packages/client/ui-conversation/README.md:57-64 | conversation 文档记录 openDetails 已存在但当前 assembly 没有 caller,因此 selected call 的原始详情不可达。 | 30 | 30 |
WEBUI-DEVELOPER-PREVIEWDeveloper Preview 状态 | README.md:9-11 | 根 README 将项目标为 Developer Preview,并警告当前版本可能出现 breaking changes。 | 30 | 30 |
WEBUI-UNLOAD-LIMIT通用客户端 unload chain 缺口 | packages/client/runtime/README.md:89-92 | runtime 的公开 Known Limitations 明确记录 loader.unload 仍是 stub,尚无通用的 fiber disposal 到 registration/style removal 链。 | 30 | 30 |
production-config · 57
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
ACP-PACKAGEACP adapter 的发布版本与标准 SDK pin | packages/acp/acp/package.json:1-36 | 公开 adapter 包版本为 0.1.0-rc.5,并固定依赖 @agentclientprotocol/sdk 0.25.1。 | 29 | 29 |
APPROVAL-SHIPPED-PRESETS发布的三档权限组合 | packages/bundle/base/cordis.patch.yml:166-205 | base bundle 组合 read-only+ask、workspace-write+ask 与 danger-full-access+never,并由环境变量决定部署默认值。 | 19 | 19 |
BASE-BUNDLE-SEMANTICSBase bundle 的 patch 与激活语义 | packages/bundle/base/cordis.patch.yml:1-24 | base 是空根上的一次 insert;后层按 id 最后写入;config 整体替换;行顺序不承载加载语义。 | 04 | 04 |
BASE-BUNDLE-SPINEBase bundle 的运行时骨架 | packages/bundle/base/cordis.patch.yml:24-100 | base 直接装配 LLM、session、API、agent、jobs、retry、settings、credentials、adapter 与 JSONL persistence 等共享服务。 | 04 | 04 |
CAP-LSP-OPTIONAL可选 E2B 组合中的 LSP | examples/headless-agent/e2b.cordis.yml:35-57 | 示例显式挂载 lsp、stdio provider、固定 TypeScript server command/extension map 与 tool-lsp,证明该能力依赖可选部署组合。 | 22 | 22 |
CAP-SKILL-BASEBase 的 Skill service 与默认工具行 | packages/bundle/base/cordis.patch.yml:232-248 | Base 组合挂载 agent instructions、Skill registry、filesystem provider 与 tool-skill;badge 保持关闭。 | 22 | 22 |
CAP-SKILL-SHIPPEDStandard preset 的 scoped Skill discovery 与 loader | apps/cli/config/agent-presets/standard/agent.cordis.yml:76-87 | Standard preset 把 filesystem provider 和 tool-skill 注册到自身分层 registry 视图,同时合并部署级 global contribution。 | 22 | 22 |
CAP-WEB-SHIPPED发布组合只启用 DeepSeek Search | packages/bundle/base/cordis.patch.yml:396-418 | Base 固定 deepseek-official search,挂载 DeepSeek provider,以 60 秒暴露 web_search,并因缺少 SSRF 保护关闭 fetch 且不挂载 fetch provider。 | 22 | 22 |
CODEMODE-HEADLESS-COMPOSITIONHeadless bundle 挂载 CodeRuntime,但默认仍由 mode 控制 | packages/bundle/headless/cordis.patch.yml:17-26 | Headless bundle 把 tools.mode 接到 DSH_TOOLS_MODE,并始终挂载 worker-thread CodeRuntime;未设置 mode 时 schema 默认仍是 native。 | 23 | 23 |
CODEMODE-SELF-MOD-OPTIN模型自修改工具是显式 opt-in overlay | examples/headless-agent/advanced.cordis.yml:28-34 | 高级 headless 示例额外挂载 CodeRuntime、Cordis Host runner 和 tool-cordis;基础 bundle 并不自动把模型自修改工具加入每个 agent。 | 23 | 23 |
CODEMODE-WEB-COMPOSITIONWeb bundle 的临时进程级 Code Mode 开关 | packages/bundle/web-app/cordis.patch.yml:35-50 | Web bundle 同样通过 DSH_TOOLS_MODE 选择 native/code/both,并将该环境变量标记为 per-session UI 尚未完成前的临时进程级方案。 | 23 | 23 |
HEADLESS-BUNDLEHeadless 产品面 | packages/bundle/headless/cordis.patch.yml:1-35 | headless 不挂载 Host、HTTP、Web 或浏览器插件,只增加代码运行时、启动参数 provider 与一次性 Agent driver。 | 04 | 04 |
MEMORY-DEFAULT-COMPOSITION默认 JSONL 持久化与关闭的全文索引 | packages/bundle/base/cordis.patch.yml:98-121 | Base 把 Session 日志写入 DSH home 下的 sessions,并挂载 SQLite sessionQuery;openAt: never 保留 exact read、title 与 lineage,却让全文搜索失败且不打开 SQLite。 | 14 | 14 |
MEMORY-MINIMAL-PRESETMinimal preset 明确省略 runtime context、compaction 与 Skills | apps/cli/config/agent-presets/minimal/agent.cordis.yml:1-62 | Minimal 是 fixed-prompt 两工具组合,关闭 runtime-context snapshot,只挂载 persistent bash 与 str_replace_editor,并在配置注释中明确没有 context compaction。 | 14 | 14 |
MEMORY-STANDARD-PRESETStandard preset 的 Skills 与 compaction 组合 | apps/cli/config/agent-presets/standard/agent.cordis.yml:76-155 | Standard 挂载 filesystem skill provider、model-facing skill tool,以及 basic compaction、manual command 和 tool-result pruner。 | 14 | 14 |
MULTIAGENT-BASE-COMPOSITIONBase bundle 的多 Agent 装配 | packages/bundle/base/cordis.patch.yml:292-338 | Base 注册 subagent service、spawn/fork provider、控制/列表工具和 report setup,并将 spawn 配为 continuable、fork 配为 one-shot。 | 24 | 24 |
MULTIAGENT-CODE-PRESETCode preset 的 continuable fork 与禁用外部工具 | apps/cli/config/agent-presets/code/agent.cordis.yml:164-220 | Code preset 把 spawn/fork 都配置为 continuable,并保留 disabled 的 Codex/Claude Code 工具行。 | 24 | 24 |
MULTIAGENT-CORDIS-PRESETCordis preset 的 continuable fork | apps/cli/config/agent-presets/cordis/agent.cordis.yml:155-220 | Cordis preset 把 spawn 与 fork 工具都设为 continuable,并将外部产品工具保持 disabled。 | 24 | 24 |
MULTIAGENT-STANDARD-PRESETStandard preset 的完整 delegation 配置 | apps/cli/config/agent-presets/standard/agent.cordis.yml:1-251 | Standard preset 挂载控制/列表工具,把 spawn 与 fork 都配成 continuable,并将 Codex/Claude Code 工具行设为 disabled;文件中未装载对应外部 provider。 | 24 | 24 |
MULTIAGENT-WEB-PLANEWeb host plane 与 Agent plane 的 subagent 分界 | packages/bundle/web-app/cordis.patch.yml:367-390 | Web 保留跨 Session 的 registry/backend 在 host plane,并禁用 base 的模型控制/委派工具以交给 Session preset。 | 24 | 24 |
OBS-BASE-DEFAULT随包 telemetry 默认配置 | packages/bundle/base/cordis.patch.yml:129-161 | Base bundle 默认 DISABLED,未挂载 redaction,并明确 endpoint、gzip、batch、queue 与 shutdown 参数。 | 28 | 28 |
OBS-OTEL-DEPENDENCIESTelemetry backend 的 OTel 依赖面 | packages/session/session-telemetry-otel/package.json:33-41 | Manifest 声明通用 OTel API、Logs API/SDK、resources、OTLP exporter base 与 OTLP log exporter,不声明 trace 或 metrics SDK。 | 28 | 28 |
OPEN-CI-SERIAL-LANESHosted 与 self-hosted serial lanes 的当前状态 | .github/workflows/ci.yml:491-696 | hosted Linux/macOS serial reference jobs 被 if:false 禁用;self-hosted Linux/Windows serial lanes 仅在 master push 运行并不阻塞 PR。 | 34 | 34 |
OPEN-CI-VERDICTall-checks-passed 的依赖边界 | .github/workflows/ci.yml:904-935 | all-checks-passed 聚合列明的同 workflow jobs 并明确排除 windows-native;该依赖图本身不证明仓库实时 ruleset 或 required-status 配置。 | 34 | 34 |
OPEN-CI-WINDOWS-SIGNALSWine 聚合输入与 native Windows 独立信号 | .github/workflows/ci.yml:328-489 | Pull request 的 windows job 在 hosted Linux 上调用 Wine runner;真实 Windows kernel job 跑 complete inventory,但明确不进入 all-checks-passed.needs。 | 34 | 34 |
OPEN-CLI-VERSION当前 CLI package version | apps/cli/package.json:1-12 | 固定提交上的 apps/cli package version 是 0.1.0-rc.5,与 host.describe 占位值不同。 | 34 | 34 |
OPEN-REAL-API-CIReal-API E2E 的 secret 与 skip 边界 | .github/workflows/e2e.yml:1-65 | 独立 workflow 对 fork 与 Dependabot PR 跳过整个 job;注释明确 job-level skip 会成为 successful check。 | 34 | 34 |
OPEN-SANDBOX-CIReal-kernel sandbox workflow 的聚合边界与运行守卫 | .github/workflows/sandbox.yml:1-113 | workflow 只在 master push 运行;matrix 覆盖 bwrap、x64/arm64 Landlock 与 Seatbelt,命令断言两个 platform file 均实际运行以拒绝 self-skip false green。 | 34 | 34 |
PLANSTATE-SHIPPED-PLAN-POLICYBase profile 的 Plan policy | packages/bundle/base/cordis.patch.yml:265-279 | 发布配置要求只做非变更探索、提交 decision-complete 计划、保持稳定工具目录,并禁止用 todo_write 代替 Plan。 | 15 | 15 |
PLANSTATE-SHIPPED-TODO-POLICYBase profile 的 Todo 并行策略 | packages/bundle/base/cordis.patch.yml:367-375 | 发布的 base profile 挂载 tool-todo 并显式设置 allowParallelInProgress: true。 | 15 | 15 |
PROJ-SHIPPED-COMPOSITION发布组合显式挂载持久化、Projection 与 checkpoint policy | packages/bundle/base/cordis.patch.yml:98-356 | Base patch 在独立 rows 中挂载 JSONL Session persistence、共享 projection registry 和模型请求/顶层工具前的 semantic checkpoint policy;三者不是一个隐式服务。 | 12 | 12 |
SANDBOX-E2B-COMPOSITIONHeadless E2B 的 same-world 组合 | examples/headless-agent/e2b.cordis.yml:1-41 | 示例禁用 local subprocess/fs,同时插入 E2B owner、remote subprocess/fs 与 full sandbox policy,并注释要求 cwd、policy root 与 Bash/PTY workdir 指向同一远端目录。 | 20 | 20 |
SANDBOX-SHIPPED-FS发布基线的 Filesystem policy 与工具层 | packages/bundle/base/cordis.patch.yml:210-230 | Base bundle 同时装配 tool-fs、tool-fs-search 与 fs-observation-policy,使模型 mutation 在默认组合中经过 observation gate。 | 20 | 20 |
SANDBOX-SHIPPED-FS-PROVIDER发布基线的沙箱化 Filesystem provider | packages/bundle/base/cordis.patch.yml:441-445 | Base bundle 的 provider 行明确安装 @deepseek-ai/dsh-fs-sandbox,而不是 bare local filesystem。 | 20 | 20 |
SANDBOX-SHIPPED-POLICY发布基线的沙箱与审批默认值 | packages/bundle/base/cordis.patch.yml:166-205 | Base bundle 安装 local sandbox 与共享 policy,缺省把 mode 设为 workspace-write;approval 随之为 ask,并发布 read-only、workspace-write 与 danger-full-access presets。 | 20 | 20 |
SEC-SELF-MOD-OPTIN自修改能力的显式 opt-in | examples/headless-agent/advanced.cordis.yml:28-34 | advanced headless example 通过显式配置插入动态 Host runner,证明 self-modification 不是无条件核心能力。 | 31 | 31 |
SEC-SHIPPED-PERMISSION随附权限模式与启动默认值 | packages/bundle/base/cordis.patch.yml:163-205 | base composition 提供 read-only + ask、workspace-write + ask、danger-full-access + never,并默认使用 workspace-write,允许 DSH_PERMISSION_MODE 覆盖。 | 31 | 31 |
SHELL-MINIMAL-COMPOSITIONMinimal 隔离持久 Shell 组合 | apps/cli/config/agent-presets/minimal/agent.cordis.yml:1-60 | Minimal 只组合持久 Bash 与编辑器,使用隔离 Terminal service、Bash backend 和 persistent wrapper,不暴露原始 Terminal tools。 | 21 | 21 |
SHELL-STANDARD-COMPOSITIONStandard 一次性 Shell 与 Job 组合 | apps/cli/config/agent-presets/standard/agent.cordis.yml:35-74 | Standard 按平台选择 tool-bash 或 tool-pwsh,并将模型 Job controls 置于 Agent preset、registry 留在 Host。 | 21 | 21 |
TINV-CI-LINUXLinux 静态、覆盖与消费者门禁 | .github/workflows/ci.yml:63-257 | 定义 Linux 上相互独立的静态检查、覆盖率与消费方验证作业及其依赖。 | 32 | 32 |
TINV-COVERAGE-BAR逐文件满覆盖门槛 | vitest.config.ts:264-283 | 启用 per-file 阈值,并把 statements、branches、functions 与 lines 全部设为 100%。 | 32 | 32 |
TINV-COVERAGE-EXEMPT重型测试并行清单 | scripts/coverage-exempt.ts:1-41 | 说明哪些 suite 从 instrumentation 排除、为何仍以普通 Vitest 运行,以及清单项的维护前提。 | 32 | 32 |
TINV-COVERAGE-SCOPE覆盖率纳入与排除面 | vitest.config.ts:160-268 | 把 coverage include 限定到 package src glob;examples/vendor 位于 glob 外,并在 glob 内显式排除类型、自执行入口和记录在案的 GUI/组合等特殊路径。 | 32 | 32 |
TINV-NODE-MATRIXNode 版本矩阵 | .github/workflows/ci.yml:260-296 | 在 Node 22.19 与 26 的独立 matrix jobs 中安装依赖并运行同一个 check:node-compat compatibility-smoke 命令。 | 32 | 32 |
TINV-PLATFORM-COVERAGE平台条件覆盖面 | vitest.config.ts:21-84 | 按 Windows、POSIX 与 pwsh 可用性调整 suite 和 source exclusion,使报告的实际范围具有平台语义。 | 32 | 32 |
TINV-REQUIRED-VERDICTall-checks-passed 结果汇总 | .github/workflows/ci.yml:904-935 | 列出 aggregate 依赖、排除原生 Windows,并把跳过、取消或失败都判为汇总失败;该 YAML 本身不证明实时 ruleset。 | 32 | 32 |
TINV-SNAPSHOT-MODE无密钥快照模式 | vitest.snapshot.config.ts:19-67 | 将 replay 设为默认无凭据模式,record 才加载环境,refresh 复用脚本,并区分并发与串行执行。 | 32 | 32 |
TINV-WINDOWSWine 与原生 Windows 作业 | .github/workflows/ci.yml:328-489 | 定义 pull-request Wine job 与真实 Windows kernel 的完整作业;后者明确不进入 all-checks-passed.needs。 | 32 | 32 |
TOOLCAT-ATTACHMENTBase host 的 JSONL、local attachment 与关闭 FTS 组合 | packages/bundle/base/cordis.patch.yml:98-115 | 基线 Host 装载 local attachment service,使 standard fs package 能注册 read_image;同一片段也显示 Session Query service 存在但全文搜索默认 openAt never。 | 17 | 17 |
TOOLCAT-MINIMALMinimal preset 的完整两工具 composition | apps/cli/config/agent-presets/minimal/agent.cordis.yml:1-62 | Minimal 用 complete fixed persona、关闭 runtime context、无 compaction,并在 isolated PTY 与 filesystem realms 中只暴露 persistent bash 和 str_replace_editor。 | 17 | 17 |
TOOLCAT-STANDARD-BASEStandard preset 的 shell、filesystem、jobs、skill、goal 与 plan 工具 | apps/cli/config/agent-presets/standard/agent.cordis.yml:35-124 | 配置按平台二选一 shell,装载 fs/search、job controls、Skill、Goal 与固定存在的 exit_plan_mode,并明确计划模式保持 tool catalog 不变以稳定 request cache。 | 17 | 17 |
TOOLCAT-STANDARD-ORCHESTRATIONStandard preset 的 delegation、workflow、interaction 与 Web 工具 | apps/cli/config/agent-presets/standard/agent.cordis.yml:157-251 | 配置装载三项 child control、spawn/fork 两个 continuable 名称、workflow、Ralph、ask、todo 与仅 search 的 Web 工具,并把 Codex/Claude Code delegation 和 fetch 显式关闭。 | 17 | 17 |
WEB-AGENT-PLANEWeb 的 host plane 与 agent plane 分界 | packages/bundle/web-app/cordis.patch.yml:276-408 | Web 禁用 base 中每 Agent 能力行,由每会话 preset 挂载;跨会话 registry 与 host API 依赖服务保留在 host plane。 | 04 | 04 |
WEBUI-DUAL-ROSTERHost 与浏览器插件 roster | packages/bundle/web-app/cordis.patch.yml:97-203 | Web bundle 同时配置 Host 服务与带 dsh.client 的 modules、connection、runtime 及各 UI 客户端插件。 | 30 | 30 |
WORKFLOW-SHIPPED-BASEBase 中的 Workflow 与 Ralph 发行组合 | packages/bundle/base/cordis.patch.yml:315-382 | Base 以 spawn 挂载 worker engine 与 workflow tool,并挂载使用 spawn、64 轮 ceiling 的 Ralph。 | 25 | 25 |
WORKFLOW-SHIPPED-PRESETStandard preset 的 per-Agent Workflow isolation | apps/cli/config/agent-presets/standard/agent.cordis.yml:165-233 | Delegation group 隔离 workflowEngine,并在同一 entry-local realm 挂载 worker、generic tool 与 64 轮 Ralph。 | 25 | 25 |
WORKFLOW-WEB-ISOLATIONWeb host plane 禁用 base Workflow rows | packages/bundle/web-app/cordis.patch.yml:380-410 | Web overlay 禁用 base 的 subagent、workflow engine、workflow tool 与 Ralph rows,让 session preset 决定 Agent capability。 | 25 | 25 |
production-source · 805
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
ACP-CHILD-CANCELACP child 取消、部分输出与权威回收 | packages/subagent/subagent-acp/src/run.ts:94-367 | caller abort 可立即以已收集部分文本结算 aborted,并 best-effort 发送一次 session/cancel;dispose 仍是权威边界,仅在尚未请求时补发 cancel,再执行共享 EOF→terminate→whole-tree exit 回收。 | 29 | 29 |
ACP-CHILD-CAPABILITIESACP child backend 的 capability 与 cwd 边界 | packages/subagent/subagent-acp/src/index.ts:124-169 | 每个进程外 child 使用配置 cwd 或 parent session cwd,拒绝无 workspace 的隐式 process-cwd 回退;provider 宣告不支持 output schema、depth、tool filter、persona,且不继承 parent context。 | 29 | 29 |
ACP-CHILD-ENV-MERGELocal subprocess 的显式 env merge | packages/subprocess/subprocess-local/src/spawn.ts:17-352 | Local spawn 以 scrubbedParentEnv 为基底,按目标平台语义 merge 显式 env/tombstone,并把结果交给 process spawn。 | 29 | 29 |
ACP-CHILD-ENV-POLICY共享 subprocess 环境清洗策略 | packages/subprocess/subprocess/src/index.ts:37-65 | 共享 scrub 从 ambient parent env 移除 credential-shaped 与 DSH_* 名称,保留普通运行环境;显式 env 在其后另行合并。 | 29 | 29 |
ACP-CHILD-STARTACP child 的启动事务 | packages/subagent/subagent-acp/src/run.ts:190-367 | 每次 run 启动 fresh process,parent 另生成全局 lifecycle id;initialize 和 session/new 全部成功后才发布 handle,spawn/握手/cancel 任一失败都会先回收私有 child。 | 29 | 29 |
ACP-CODECACP 内容与 stop reason 映射 | packages/acp/acp/src/codec.ts:9-65 | baseline text 原样拼接,resource_link 变成明确方括号引用,其他块拒绝;completed、interrupted、max-token 等 turn ending 映射到 ACP vocabulary,其中 max-token 在 codec 层为 max_tokens。 | 29 | 29 |
ACP-HANDSHAKEACP initialize、认证与 fresh session | packages/acp/acp/src/index.ts:231-436 | server 总是返回标准 SDK 的 PROTOCOL_VERSION、最小 prompt capability 与空 authMethods,authenticate 为 no-op;session/new 只接受绝对主 cwd、空 additionalDirectories 与空 MCP server 列表,并生成 fresh session。 | 29 | 29 |
ACP-OUTPUT-PERMISSIONACP committed output 与权限请求 | packages/acp/acp/src/index.ts:130-229 | bridge 只发送已提交 assistant/message 的文本或 image placeholder;sessionUpdate transport/write rejection 被捕获并告警,client handler failure 无法通过无 response 的 notification 反馈;自有 tool-call approval 是 one-shot allow/reject,取消或未知选择 fail closed。 | 29 | 29 |
ACP-PROMPT-CANCELACP prompt 相关性、错误与 cancel | packages/acp/acp/src/index.ts:145-345 | 每 session 一个在途 prompt;captured turn 的 turn/end 精确关联,但 turn 未捕获或不同的 agent/error fallback 无 message causality,可误归因;输出/结算覆盖 whole-agent-to-idle,max-token wrapper 降为 end_turn;cancel 只影响目标。 | 29 | 29 |
ACP-QUIESCEACP connection-owned quiescence | packages/acp/acp/src/index.ts:348-415 | connection close 与 plugin disposal 共享 memoized quiesce:先封闭 admission、清 map、cancel 并结算 prompts;自有 descendant drain 失败只 warning,之后 handle disposal failures 才 allSettled 聚合抛出。 | 29 | 29 |
ACP-SDK-CONNECTIONACP standard stream 与 connection wiring | packages/acp/acp/src/index.ts:348-353 | Adapter 以 SDK 的 ndJsonStream 包装 stdio,再构造 SDK AgentSideConnection。 | 29 | 29 |
ACP-SDK-IMPORTSACP adapter 的标准 SDK 导入 | packages/acp/acp/src/index.ts:18-35 | Adapter 直接从 @agentclientprotocol/sdk 导入 PROTOCOL_VERSION、ndJsonStream、AgentSideConnection 与相关 ACP 类型。 | 29 | 29 |
AGENT-CREATE-RESUMECreate、setupAndPublish 与 resume 控制流 | packages/core/agent-loop/src/index.ts:606-709 | 新 session 与持久化 session 汇合到同一 prepare/setup/commit/publish 路径;resume load 也受 owner、caller 和 factory 取消约束。 | 05 | 05 |
AGENT-FACTORY-SEAMRegistry 与具体 loop 之间的 factory seam | packages/core/agent/src/index.ts:360-430 | Registry effect-scoped 注册唯一 factory,并通过调用者 context 重新 trace create/resume,使所有权跟随真正消费者。 | 05 | 05 |
AGENT-INBOX-COMMITInbox splice 的耐久提交与身份不变量 | packages/core/agent/src/inbox.ts:128-219 | 先 append agent/inbox/spliced 再改 live projection;删除可标 canceled;MessageId 在两个 pending 列表上全局唯一。 | 05 | 05 |
AGENT-INBOX-REPLAYInbox 的事件重建与 claim 顺序 | packages/core/agent/src/inbox.ts:24-78 | Inbox 从 seed boundary 之后的 durable splice 重建;claim 总是先取全部 next-step,再按需取一个 next-turn,并逐消息通知。 | 05 | 05 |
AGENT-INITIATOR-API进程内 initiator 归因 API | packages/core/agent/src/index.ts:300-358 | current/require/with/withoutInitiator 用 AsyncLocalStorage 传递当前 driver 的因果 Agent,但不把 ambient identity 当作授权。 | 05 | 05 |
AGENT-INITIATOR-DRAINInitiator teardown 的 drain 语义 | packages/core/agent/src/index.ts:619-703 | 服务关闭后拒绝新 boundary,等待已返回的 Promise boundary 结算,排除启动自身卸载的嵌套链以避免自锁,最后 disable storage。 | 05 | 05 |
AGENT-PREPARE-PUBLISHAgent 准备、发布与反向 teardown | packages/core/agent-loop/src/index.ts:453-578 | 在资源创建前融合 caller/factory/owner 取消;发布顺序为 session enter、agent enter、session announce、agent announce、session-start;dispose 共享同一 quiescence。 | 05 | 05 |
AGENT-PUBLIC-INTERFACEAgent 公共接口与状态语义 | packages/core/agent/src/runtime-types.ts:23-143 | 定义 provider/model/maxTokens、idle/running、session/inbox/scoped context,以及 cancel、idle、maintenance 和四种输入操作。 | 05 | 05 |
AGENT-REGISTRY-LIFECYCLEAgentRegistry enter、announce 与精确 detach | packages/core/agent/src/index.ts:450-617 | enter 验证共享身份并仲裁冲突,announce 单次发布;重入 detach 延迟到 dispatch 结束,陈旧 closure 不能删除同 ID replacement。 | 05 | 05 |
AGENT-RUNTIME-SCOPE具体 Agent 的 scope、phase 与输入映射 | packages/core/agent-loop/src/agent.ts:63-140 | ReactLoopAgent 从日志恢复 turn 与 inbox,创建 agent scope,idle/maintenance 映射为 idle,followup/steer/inject 映射到两级 inbox,cancel 默认清空。 | 05 | 05 |
AGENT-SETUP-CONTRACT不可见 setup、commit 与 owned handle 合同 | packages/core/agent/src/index.ts:52-174 | create/resume setup 在对象未发布时构建 scoped world,可返回同步 commit;AgentHandle 是拥有 teardown 权限的 capability。 | 05 | 05 |
API-CONNECTION-LOOP双流 connection generation 与重连 | packages/client/connection/src/client/connection.ts:3-201 | 每代同时打开 mux、host 与 host.describe;describe/handshake 收敛后,流结束才进入共享退避并重建两流。stream-open 有 3 秒 guard,但 describe 没有 generation signal/timeout,故可在已 abort 后挂住重连;sink 异常被隔离。 | 29 | 29 |
API-HOST-VERSION-CONTRACTHost API 明确没有协议版本 | packages/host/apiproxy/src/api/host.ts:1-53 | 接口注释说明客户端与宿主共同发布,因此暂不引入 protocolVersion;host.describe 的 version 被定义为宿主应用包版本。 | 29 | 29 |
API-HOST-VERSION-PLACEHOLDERhost.describe 仍返回占位版本 | packages/host/apiproxy/src/api-proxy.ts:2923-2938 | 实现中的 TODO 说明 version 尚未读取 CLI package.json,当前固定返回 0.0.1。 | 29 | 29 |
API-HTTP-BRIDGEHTTP bridge 的容量、取消与背压 | packages/client/connection/src/http-bridge.ts:8-99 | 请求体在内存中缓冲,默认上限 160 MiB;浏览器断开会 abort Fetch signal,响应流按 drain 施加背压。 | 29 | 29 |
API-HTTP-CLIENT浏览器 HTTP carrier 的 transport failure | packages/client/connection/src/client/rpc.ts:24-46 | 浏览器把非 2xx HTTP response 直接抛为 transport failure,再校验 response envelope 与 rpcId。 | 29 | 29 |
API-HTTP-HANDLERHTTP RPC 分派与错误边界 | packages/client/connection/src/rpc-host.ts:144-223 | 通用 Remote/Connection RPC handler 仅接受 POST application/json;校验外层信封和 URL 方法一致性;无效请求得到 typed bad-request,而未预期的 handler 抛错成为 HTTP 500。 | 29 | 29 |
API-PRIVILEGED-LOOPBACKPrivileged Browser API 的 loopback fence | packages/client/connection/src/index.ts:69-195 | Settings、credentials、native dialog、preset management 与 draft-credential model discovery 另锁 loopback authority,并经过共享 Fetch Metadata/Origin-authority 检查;Origin 可缺省,存在时只比较 authority,因此不是完整 same-origin 判定。 | 29 | 29 |
API-RPC-MODEL浏览器 API 的四象限 RPC 消息模型 | packages/host/apiproxy/src/api/rpc.ts:1-193 | 逻辑消息与 HTTP、WebSocket、进程内载体解耦;请求方生成 rpcId,响应方回显;客户端请求、服务端响应、服务端请求与客户端响应构成封闭联合,并以 RpcResult 承载业务错误。 | 29 | 29 |
API-RPC-SCHEMAS两阶段 wire 校验 | packages/host/apiproxy/src/api/rpc.schema.ts:1-140 | 外层 Zod schema 只验证消息信封并保留 unknown payload/value;业务方法再做第二次解析,错误体按 code 判别且 details 必填。 | 29 | 29, 33 |
API-TRUST-FENCE浏览器 trust fence 不是认证层 | packages/client/connection/src/api-request-trust.ts:1-123 | 所有 /api 请求都校验 Host authority,并拒绝 cross-site Fetch Metadata 或不匹配 Origin;源码明确把网络可达性与身份认证排除在该 fence 之外。 | 29 | 29, 33 |
API-WS-CLIENT浏览器端 WebSocket 解析策略 | packages/client/connection/src/client/web-api-client.ts:34-90 | 二进制、非法 JSON、非法信封或业务 frame 被记录并丢弃;只有 socket 关闭结束流,AbortSignal 负责关闭 socket。 | 29 | 29 |
API-WS-HOST只下行 WebSocket 载体 | packages/client/connection/src/websocket-downlink.ts:46-137 | mux 与 host 使用独立只下行 socket;客户端发送消息会以 1008 关闭,source 失败尝试先发 stream/error,teardown 等待 pump 清理。 | 29 | 29 |
APPROVAL-ACP-ANSWERERACP 单次机器回答器 | packages/acp/acp/src/index.ts:212-229 | ACP 只认领自己拥有且带 callId 的 Agent 请求,只提供 allow-once/reject-once,并把未知非允许结果收敛为拒绝。 | 19 | 19 |
APPROVAL-ASK-MAPPINGToolRuntime 的 ask 结果映射 | packages/core/tools/src/index.ts:1678-1728 | 缺少审批服务或 Agent 时拒绝;只有 allowed-once 放行,其余三种结果映射为不同拒绝原因。 | 19 | 19 |
APPROVAL-AUDIT-EVENTS审批审计与策略事件 | packages/interaction/user-approval/src/index.ts:34-72 | approval/asked 与 approval/decided 以同一 ID 配对;approval/policy 是 log-only 的 Session 覆盖事件。 | 19 | 19 |
APPROVAL-AUDIT-REQUESTTurn 内的审批审计事务 | packages/interaction/user-approval/src/index.ts:239-276 | request 要求开放 turn,先写 asked,再等待决策并写 matching decided;任一提交失败都会拒绝调用。 | 19 | 19 |
APPROVAL-BASH-EXECUTIONBash 扩权与启动顺序 | packages/shell/tool-bash/src/index.ts:190-390 | Bash 解析常驻策略、在任何进程启动前完成单次审批并标记模式,同时在无沙箱能力的组合中拒绝扩权字段。 | 19 | 19 |
APPROVAL-CANCEL-DISPATCH策略竞态与工具体取消 | packages/core/tools/src/index.ts:1459-1559 | 准备阶段多次重查 caller 取消;已启动工具体达到静止点后才把成功结果转为 aborted。 | 19 | 19 |
APPROVAL-CHILD-PIN委派 child 的权限固定 | packages/subagent/subagent/src/child-agent.ts:130-224 | child 只继承 parent 显式沙箱覆盖,不继承部署默认或单次授权;其审批策略固定为 never,并在 fork seed 后写入自身日志。 | 19 | 19 |
APPROVAL-DECIDE-WATERFALL回答器 waterfall 的 fail-closed 决策 | packages/interaction/user-approval/src/index.ts:298-344 | never 在分派前拒绝;无回答器、异常或非法结果变为 unavailable;取消胜出后丢弃迟到答案。 | 19 | 19 |
APPROVAL-ESCALATION-FLOW单次扩权的 fail-closed 流程 | packages/sandbox/sandbox/src/escalation.ts:143-188 | 运行时先检查严格更宽,再检查审批服务与 Agent,只有 allowed-once 返回仅供本调用使用的目标模式。 | 19 | 19 |
APPROVAL-ESCALATION-LADDER严格扩权阶梯与参数配对 | packages/sandbox/sandbox/src/escalation.ts:22-61 | read-only 只能升到 workspace-write/full,workspace-write 只能升到 full;权限与理由字段必须成对且理由非空。 | 19 | 19 |
APPROVAL-EXEC-SNAPSHOT执行身份与冻结参数 | packages/core/tools/src/index.ts:1364-1423 | ToolRuntime 在策略前生成 token、解析 rootCallId,并对可无损 JSON 化的参数做脱离快照与深冻结。 | 19 | 19 |
APPROVAL-FS-ESCALATION文件系统扩权 controller | packages/fs/tool-fs/src/sandbox.ts:37-130 | 共享 controller 负责能力公布、参数配对、逐调用策略、审批与单次模式,并把沙箱拒绝映射为结构化重试提示。 | 19 | 19 |
APPROVAL-GUARD-CONTRACT单调 guard 合同 | packages/core/tools/src/index.ts:703-753 | guard 只能返回拒绝原因或不表态,没有允许结果;运行时遇到第一条拒绝即短路。 | 19 | 19, 33 |
APPROVAL-GUARD-REGISTRY全局与 scoped guard 注册表 | packages/core/tools/src/index.ts:1100-1127 | guard 可按全局或 Agent scope 注册;执行时先查全局,再从远到近遍历 scope 链并取第一条拒绝。 | 19 | 19 |
APPROVAL-INVARIANT审批流的重放 invariant | packages/interaction/user-approval/src/invariant.ts:17-102 | invariant 重放并检查开放 turn、未匹配请求、重复 ID、孤立 decision 与封闭词表;turn 结束时不会强制清空未匹配 asked。 | 19 | 19 |
APPROVAL-OUTCOMES审批 ID 与封闭结果词表 | packages/interaction/user-approval/src/types.ts:10-29 | 每次请求使用品牌化 ID;结果仅允许 allowed-once、rejected、cancelled 与 unavailable。 | 19 | 19, 33 |
APPROVAL-PERMISSION-COMPOSERComposer 权限选择器与风险确认 | packages/client/ui-conversation/src/client/skeleton/PermissionSelect.tsx:10-170 | 选择器过滤 custom、提交 /permission,并仅对机器 key danger-full-access 弹出需勾选的风险确认。 | 19 | 19 |
APPROVAL-PERMISSION-DECORATION权限命令弹窗装饰 | packages/client/ui-permission-presets/src/client/index.ts:55-169 | 命令弹窗从 projection 构建选项,只对 FULL_ACCESS_PRESET 附加确认,并最终执行 /permission。 | 19 | 19 |
APPROVAL-PERMISSION-SETTINGS默认权限 Settings 风险确认 | packages/client/ui-permission-presets/src/client/PermissionRow.tsx:15-126 | 未来 Session 默认值 UI 同样只对 FULL_ACCESS_PRESET 触发确认,确认后调用选择写入。 | 19 | 19 |
APPROVAL-PERMISSION-SETTINGS-WRITE未来 Session 默认预设写入 | packages/client/ui-permission-presets/src/client/settings-store.ts:128-155 | Settings controller 用 expected revision 更新 defaultPreset,该值明确只供随后创建的 Session 使用。 | 19 | 19 |
APPROVAL-PRE-DECISIONPre 决策的封闭权限 | packages/core/tools/src/index.ts:582-592 | pre-execute 只能允许、拒绝或询问;参数重写被明确排除。 | 19 | 19 |
APPROVAL-PREPARE-ORDER审批与 guard 的实际顺序 | packages/core/tools/src/index.ts:1453-1506 | 准备阶段依次检查取消、运行 pre waterfall、解析 ask、运行单调 guard,并在最终取消检查后才分派。 | 19 | 19 |
APPROVAL-PRESET-CONFIG可配置权限预设与加载期校验 | packages/interaction/permission-presets/src/index.ts:139-225 | 预设把 sandbox 与 approval 打包;custom 保留为派生值,非约束 shell、无效默认值和不匹配默认组合会加载失败。 | 19 | 19 |
APPROVAL-PRESET-DERIVE从真实 knob 派生当前预设 | packages/interaction/permission-presets/src/index.ts:280-338 | 仍匹配的最后选择优先,其次是表中第一个匹配项,否则派生 custom。 | 19 | 19 |
APPROVAL-PRESET-PIN新 Session 权限固定 | packages/interaction/permission-presets/src/index.ts:394-430 | 全新 Session 在同步 session/created 发布期间固定三项事实;seed、resume 或部分初始化 Session 保留有效状态,只补缺失事实。 | 19 | 19 |
APPROVAL-PRESET-PROJECTION权限 projection 与命令面 | packages/interaction/permission-presets/src/index.ts:227-277 | 服务注册 permissions projection,并以 /permission 作为报告与切换当前 Session 预设的统一命令。 | 19 | 19 |
APPROVAL-PRESET-WRITE预设的统一写入路径 | packages/interaction/permission-presets/src/index.ts:369-392 | 选择变更时先记录 permission/preset,再仅写入实际变化的 sandbox 与 approval knob;净零选择不写事件。 | 19 | 19 |
APPROVAL-PWSH-EXECUTIONPowerShell 扩权与启动顺序 | packages/shell/tool-pwsh/src/index.ts:209-406 | PowerShell 在无沙箱能力时拒绝扩权字段;在执行路径中校验参数、解析常驻策略、等待单次审批并标记模式,之后才提交后台 starter 或运行前台进程。 | 19 | 19 |
APPROVAL-REQUEST-SHAPE不复制参数的审批请求 | packages/interaction/user-approval/src/index.ts:149-174 | 请求携带 Agent、工具名、可选 callId、理由和 signal;参数通过既有工具调用关联而不重复存储。 | 19 | 19 |
APPROVAL-SANDBOX-PRECEDENCE沙箱策略解析优先级 | packages/sandbox/sandbox-policy/src/index.ts:126-150 | 已批准的显式模式优先于 Session 日志覆盖值,后者优先于部署默认值;Session cwd 决定 workspace root。 | 19 | 19 |
APPROVAL-UI-PANEL一次性审批面板 | packages/client/ui-conversation/src/client/skeleton/ApprovalPanel.tsx:22-87 | 面板从配对 root call 解析可选 shell 命令,展示理由,并用单次 latch 处理允许/拒绝与传输失败重试。 | 19 | 19 |
APPROVAL-WEB-REGISTRYHost 审批 pending registry | packages/host/apiproxy/src/api-proxy.ts:1407-1488 | proxy 将请求与未决定、未认领且 callId 匹配的审计事件配对;abort 与 teardown 取消,断线不删除 pending 项。 | 19 | 19 |
APPROVAL-WEB-REPLAY重连时重放 pending 审批 | packages/host/apiproxy/src/api-proxy.ts:3429-3447 | 新 mux 订阅会以同一稳定 rpcId 重放仍未结算的审批请求。 | 19 | 19 |
APPROVAL-WEB-RESPOND审批响应的精确关联 | packages/host/apiproxy/src/api-proxy.ts:3696-3742 | 响应按 rpcId 路由,并校验 payload、Session 与 approval ID;首次合法响应结算,迟到 ID 返回 not-pending。 | 19 | 19 |
APPROVAL-WEB-TRUST浏览器请求信任围栏及其边界 | packages/client/connection/src/api-request-trust.ts:1-122 | Host、Fetch Metadata 与 Origin 检查防御 DNS rebinding/跨站请求;源码明确说明这不是身份认证层。 | 19 | 19 |
APPROVAL-WIRE-CONTRACTWeb 审批 wire 合同 | packages/host/apiproxy/src/api/approvals.ts:1-20 | 审批是带稳定 rpcId 的 server request;客户端仅能回传 allowed-once/rejected,并精确回显 Session 与 approval ID。 | 19 | 19 |
BOOT-HMR事务化用户配置刷新 | packages/boot/app-boot/src/index.ts:225-265 | HMR 精确监听用户 patch,重新生成完整 patch 列表并通过 entry.update 事务化替换;退出竞态返回空 disposer。 | 04 | 04 |
BOOT-TRANSACTION事务化启动与失败清理 | packages/boot/app-boot/src/index.ts:757-801 | host prepare 先于树挂载,Loader settle 后检查激活;任意失败先处置部分根并保留最深层错误栈。 | 04 | 04, 33 |
CAP-LSP-HOST-FSLSP workspace containment 与有界源码读取 | packages/lsp/lsp-stdio/src/host.ts:25-120 | Workspace 和 source 均经 ctx.fs 规范化;source 必须被 workspace 包含,并以完整 UTF-8 文本和显式字节上限读取。 | 22 | 22 |
CAP-LSP-REGISTRY封闭、按扩展名路由的 LSP seam | packages/lsp/lsp/src/index.ts:1-158 | LSP 只暴露四种归一化操作,原子校验并保留 provider ID 与扩展名集合,按最终扩展名确定路由且无 JSON-RPC 逃生口。 | 22 | 22 |
CAP-LSP-STDIO-LOADLSP stdio 的全有或全无激活 | packages/lsp/lsp-stdio/src/index.ts:119-215 | 插件先验证全部 server 配置并解析全部 executable,之后才注册 provider;冲突回滚,teardown 先移除路由再并行结算所有进程。 | 22 | 22 |
CAP-LSP-STDIO-POOL每 workspace 的 LSP 进程池与串行查询 | packages/lsp/lsp-stdio/src/index.ts:216-369 | 每个 canonical workspace 懒创建一个 server,并串行 source-read/open/query/close;transport failure 可替换一次,dispose drain lookup、queue 与 instance。 | 22 | 22 |
CAP-LSP-TOOL模型可见 LSP 精确导航工具 | packages/lsp/tool-lsp/src/index.ts:1-243 | 单一只读 lsp 工具使用四操作 enum、从 1 开始的 UTF-16 position、Session workspace、结果上限与 60 秒 timeout,并建议普通导航优先 search/read。 | 22 | 22 |
CAP-MCP-CONFIG一 server 一实例的 MCP 配置与 namespace | packages/mcp/mcp-client/src/index.ts:1-128 | MCP client 支持 stdio/Streamable HTTP;每实例连接一个 server,以受限且唯一的 serverName 生成公开工具 namespace。 | 22 | 22 |
CAP-MCP-GENERATIONMCP client generation 的连接、close 与 dispose | packages/mcp/mcp-client/src/connection.ts:227-350 | 每次尝试创建新 Client/transport,connect 后同步;无法在 barrier 内 close 会停止重连以避免进程重叠;dispose drain attempt 与 sync 后注销。 | 22 | 22 |
CAP-MCP-NAMING确定性的 MCP 公开工具名 | packages/mcp/mcp-client/src/tools.ts:82-102 | 公开名称由 serverName/rawName 纯函数生成;非法字符或长度变化会附加由身份确定的 hash 后缀,使不同 wire identity 的归一化碰撞极不可能。 | 22 | 22 |
CAP-MCP-RECONNECTMCP 同步串行化与有界重连预算 | packages/mcp/mcp-client/src/connection.ts:123-224 | 所有 generation 的 sync 串行;连接丢失后按指数退避重连,稳定窗口重置预算,耗尽后注销工具;故障期不提前删除最后有效代。 | 22 | 22 |
CAP-MCP-RESULTMCP canonical result 与有损 Native projection | packages/mcp/mcp-client/src/tools.ts:176-317 | Bridge 保留完整 JSON content/structuredContent,拒绝 task-required 与 isError;Native 渲染连接文本并把 image/audio/resource 替成丢弃占位符。 | 22 | 22 |
CAP-MCP-STARTUPMCP 初始发现与激活策略 | packages/mcp/mcp-client/src/index.ts:132-180 | 插件先保留 namespace,再启动 supervisor,并等待首次连接与工具同步;failOnStartupError 决定失败是否拒绝整个 activation。 | 22 | 22 |
CAP-MCP-SYNCMCP 工具代际的两阶段同步 | packages/mcp/mcp-client/src/tools.ts:104-174 | 先完整抓取并构建下一代而不改 registry;成功后 dispose 旧代再注册新代;冲突回滚部分新代到零。 | 22 | 22 |
CAP-MCP-TRANSPORTMCP transport 绕过 subprocess spawn seam | packages/mcp/mcp-client/src/transport.ts:15-50 | Stdio 共享 scrubbedParentEnv 定义但由 MCP SDK 自己 spawn;Streamable HTTP 也由 SDK transport 按配置 URL/header 建立。 | 22 | 22 |
CAP-SKILL-CATALOG可见性匹配的耐久 Skill replacement catalog | packages/skill/tool-skill/src/index.ts:206-335 | 插件按精确 tool identity 发布 name/description source entry;完整 digest 变化追加 whole-list replacement,空列表废止旧名,不完整 snapshot 不发布。 | 22 | 22 |
CAP-SKILL-COLLECTSkill catalog 收集、缓存与不完整观察 | packages/skill/skill/src/index.ts:463-625 | Registry 按 cwd/scope/revision 收集并缓存完整目录,revision race 有界重试;provider failure/incomplete observation 不缓存,层按近端顺序覆盖。 | 22 | 22 |
CAP-SKILL-FS-ROOTSFilesystem Skill root、rank 与 provider 生命周期 | packages/skill/skill-filesystem/src/index.ts:36-260 | Provider 定义 project/custom/user/bundled rank,按 cwd 建根,观察 watcher 完整度,经 locator 加载正文并对模型文件 mutation 主动 invalidation。 | 22 | 22 |
CAP-SKILL-FS-TRUSTSkill 目录与正文的 filesystem/host 分流 | packages/skill/skill-filesystem/src/index.ts:749-885 | 普通 root 在 ctx.fs 存在时经该 seam 列举读取;trusted bundled root 可用 Node host FS;解析 frontmatter 并把非文本/缺失项作为不可用。 | 22 | 22 |
CAP-SKILL-LAYERS分层 Skill registry 与 runtime contribution | packages/skill/skill/src/index.ts:346-461 | 注册落入调用 context 的 global/scoped layer;近层同名直接覆盖,rank 只决定单层 winner;provider 和 runtime skill 都随 effect 生命周期撤销。 | 22 | 22 |
CAP-SKILL-RENDERCanonical Skill wrapper 与受信正文 | packages/skill/skill/src/index.ts:140-228 | 显式用户调用带 durable source;统一 skill_content wrapper 转义 framing metadata,却因正文是受信本地内容而逐字嵌入 instruction body。 | 22 | 22 |
CAP-SKILL-TOOL-LOADSkill loader 的可见性与双重重新验证 | packages/skill/tool-skill/src/index.ts:71-161 | 模型工具按 Agent cwd/scope 先 list 检查 summary,再 get 并复查 loaded definition 的 modelInvocable,最后返回正文与 resource base。 | 22 | 22 |
CAP-SKILL-TYPESSkill summary、candidate、definition 与调用策略 | packages/skill/skill/src/index.ts:20-109 | Skill 类型分离路由摘要、带 rank/locator 的 candidate 与完整正文,并独立表达 model/user invocation 和三种 resource base。 | 22 | 22 |
CAP-SKILL-USER-INVOKE用户显式 Skill gesture 与 instructions 注入 | packages/skill/tool-skill/src/index.ts:163-430 | 只有直接 user source 的空白边界 /name token 会被扫描;loaded definition 必须 userInvocable,随后以统一 wrapper 作为最后的 instructions context 注入。 | 22 | 22 |
CAP-WEB-DEEPSEEK-MAPDeepSeek 原生搜索结果归一化 | packages/web/web-search-deepseek/src/provider.ts:112-174 | Adapter 要求 web_search_tool_result,按 URL 连接 citation excerpt、去重来源,并把最终数量截断留给 Web seam。 | 22 | 22 |
CAP-WEB-DEEPSEEK-REQUESTDeepSeek Search 请求、取消与凭证解析 | packages/web/web-search-deepseek/src/provider.ts:176-300 | 每次搜索快照配置,dispatch 前记录请求,拒绝 redirect,发送兼容认证 header,区分取消/HTTP/解析错误,并按操作解析凭证。 | 22 | 22 |
CAP-WEB-DEEPSEEK-SETTINGSSearch Settings 的逐操作投影与日志挂接 | packages/web/web-search-deepseek/src/index.ts:95-138 | Provider 从当前 Settings section 与 credential/environment seam 解析下一操作,并把 secret-free 请求追加到当前 initiator Session。 | 22 | 22 |
CAP-WEB-DEEPSEEK-WIREDeepSeek Search 的 provider-private wire | packages/web/web-search-deepseek/src/provider.ts:1-109 | Search 使用独立 Anthropic-compatible Messages endpoint、原生 web_search server tool 与 secret-free 辅助请求结构,不经过 ctx.llm。 | 22 | 22 |
CAP-WEB-FETCH-CAPSFetch 字节上限与截断语义 | packages/web/web-fetch-http/src/provider.ts:149-207 | 声明长度超限会拒绝;流超过上限时只保留有界前缀并标记截断;完成读取后组合精确字节数组。 | 22 | 22 |
CAP-WEB-FETCH-POLICYHTTP fetch URL 与内容类型策略 | packages/web/web-fetch-http/src/policy.ts:14-105 | 可选 fetcher 仅接受 HTTP(S)、禁止内嵌凭证、限制 URL、只允许同源重定向语义并归类/解码支持的文本类型;明确延后 SSRF 阻断。 | 22 | 22 |
CAP-WEB-FETCH-TRANSPORT匿名、有界、同源的 HTTP fetch | packages/web/web-fetch-http/src/provider.ts:1-147 | Fetcher 不带 cookie 或环境凭证,统一取消与超时,手工处理同源重定向,拒绝不支持内容,并返回状态及解码正文。 | 22 | 22 |
CAP-WEB-SELECTIONWeb provider 的执行时确定性选择 | packages/web/web/src/index.ts:49-200 | Web seam 分离 search/fetch registry,拒绝重复 ID,并按显式配置或唯一可用 provider 在调用时选择;歧义和不可用均结构化失败。 | 22 | 22 |
CAP-WEB-TOOLWeb 工具注册与 provider 可用性解耦 | packages/web/tool-web/src/index.ts:1-91 | tool-web 拥有 schema、开关、上限和超时;启用工具即使 provider 不可用仍保持可见,并在执行时结构化失败。 | 22 | 22 |
CAP-WEB-TYPES归一化 Web 请求与结果词汇 | packages/web/web/src/types.ts:15-129 | Search 输出可选内容与引用来源;fetch 输出最终 URL、状态、封闭 HTML/text 正文联合与截断标志;非 2xx 作为结果。 | 22 | 22 |
CLI-PROFILE-DISPATCHCLI 启动模式分派 | apps/cli/src/bin.ts:27-52 | CLI 解析后仅分派 profile、plugin 与 dump-config;profile 路径传入环境快照、profile、patch 与内部参数。 | 04 | 04 |
CODEMODE-ACTIVATION更新先撤旧 run,成功后才提交 current pointer | packages/extensions/cordis-host-runner/src/index.ts:810-992 | 新的 activation 先 await retract 旧 run,再启动 Host/Client;Client-bearing run 在 client-pending 停留,只有完整成功的 commitActivation 才设置 currentPackageId 并清空 next。失败只撤销自己拥有的新 run。 | 23 | 23 |
CODEMODE-APPROVAL-SETTLEapproval response 的 first-answer 与 exact-run 校验 | packages/extensions/cordis-host-runner/src/index.ts:406-428 | resolveRequestRun 只接受仍 pending 且指向 exact active pluginRunId 的响应,claim 后完成 activation、广播 resolution 并把结果 steer 回 Agent;未知、陈旧或重复响应返回 accepted:false。 | 23 | 23 |
CODEMODE-BINDINGS绑定快照、递归排除与收敛 | packages/core/tools/src/code-mode.ts:596-640 | 每次 run 从调用 agent 当前可见 schema 构造一个不含 run_code 的 null-prototype tools namespace;runtime 结束后先取消并排空全部嵌套调用,再把失败变为 CODE_RUN_FAILED 或返回 curated logs/result。 | 23 | 23 |
CODEMODE-CLIENT-EVAL浏览器 half 的 closure symbol surface | packages/extensions/cordis-client-runner/src/client/evaluator.ts:157-222 | Client source 在浏览器 new Function async body 中执行,参数显式注入 React、console、styles、host.call 与 teaching traps,并把 process/Buffer 设为 undefined;返回值必须是 Plugin。 | 23 | 23 |
CODEMODE-CLIENT-GUARD浏览器 Context façade 与声明式 service gate | packages/extensions/cordis-client-runner/src/client/guard.ts:180-233 | Client half 的 ctx 同样只暴露 lifecycle verbs、optional get 与已声明 services;slots/theme 走专用 guard,赋值与 framework internals 被拒绝。 | 23 | 23 |
CODEMODE-CLIENT-LIFECYCLE浏览器 package 操作按 Plugin 串行且可恢复 | packages/extensions/cordis-client-runner/src/client/runtime.ts:176-341 | Client runner 对每个 pluginId 串行 load/unload,替换旧 activation,retract 只移除 exact run,dispose 卸载全部;queue tail 吞掉单次失败以免后续操作永久卡住。 | 23 | 23 |
CODEMODE-CLIENT-ORCHESTRATION浏览器按 Host→source→Client→settle 顺序激活 | packages/extensions/cordis-client-runner/src/client/orchestrator.ts:312-381 | 页面按 Plugin 串接激活:先启动 Host half,再获取 exact active run 的 Client source,加载 browser half,最后回答 approval 或 direct run;任一步失败都返回分阶段诊断。 | 23 | 23 |
CODEMODE-CONTEXT-GUARD动态 Host Context 是 capability façade | packages/extensions/cordis-host-runner/src/guard.ts:680-819 | Host half 只可使用 lifecycle-safe verbs、ctx.get 与声明的 injected services;framework internals、Context-valued service returns 和未声明 property access 被拒绝,apply 始终接收 façade。 | 23 | 23 |
CODEMODE-CORDIS-DEFINEcordis_define 只记录不可变 Package | packages/extensions/tool-cordis/src/index.ts:148-238 | cordis_define 为新 Plugin 或既有 Plugin 记录至少一个 Host/Client plain-JavaScript half,返回 pluginId/packageId,并明确不执行、不审批、不改变 currentPackageId。 | 23 | 23 |
CODEMODE-CORDIS-INSPECT三个分层 inspect 工具 | packages/extensions/tool-cordis/src/index.ts:34-146 | tool-cordis 注册 provider list、schema-validated query 与 session-owned self inspection;精确 Package source 只有同时提供 pluginId 和 packageId 才返回。 | 23 | 23 |
CODEMODE-CORDIS-LIFECYCLE-TOOLSrun、stop 与 undefine 的模型契约 | packages/extensions/tool-cordis/src/index.ts:240-379 | cordis_run 返回 awaiting-approval、starting 或 running;stop 保留 definitions、grants 与 version pointers,undefine 则停止并永久删除整个 Plugin。 | 23 | 23 |
CODEMODE-CORDIS-PROMPT动态 Plugin 的生命周期、版本与信任说明 | packages/extensions/tool-cordis/src/prompt.ts:3-54 | 系统提示把动态 Plugin 定义为当前进程的临时扩展,明确不是安全边界;列出七工具流程、三种 identity、不可变版本、审批 grant,以及 update 失败不自动重启旧版本。 | 23 | 23 |
CODEMODE-DEFINE-RUNNERdefine-time 校验与 Package 追加 | packages/extensions/cordis-host-runner/src/index.ts:146-202 | runner 校验 metadata、至少一个 half、双方语法与 new/existing ownership,然后 mint 新 packageId 并 append source;define 不启动 runtime。 | 23 | 23 |
CODEMODE-DYNAMIC-TOOL-GUARD动态工具定义、JSON 归一化与执行旁路封闭 | packages/extensions/cordis-host-runner/src/guard.ts:542-655 | harness.defineTool 验证 schema/render/execute 并用 JSON clone 物化跨 realm 输出;register 只接受 marker-tagged definition,ctx.tools.get 仅返回 schema view,不能取得 execute 直接绕过 ToolRuntime。 | 23 | 23 |
CODEMODE-EXECUTION执行边界也强制 code collapse | packages/core/tools/src/index.ts:1208-1253 | code 模式下模型直调只能命名 run_code;带 parent token 的嵌套调用可执行 agent 可见工具;生成 SDK 排除 run_code 自身,关闭递归 transport。 | 23 | 23 |
CODEMODE-FLAT-JSON扁平、迭代的 worker JSON wire | packages/code-runtime/code-runtime-worker-thread/src/worker-json.ts:247-419 | lossless JSON 被编码为扁平 token stream,并以迭代方式严格解码;深层值不依赖 JavaScript 调用栈,畸形或不完整输入返回 undefined。 | 23 | 23 |
CODEMODE-HISTORY嵌套 dispatch 记录与模型历史分层 | packages/core/tools/src/code-mode.ts:1-6 | 每个 Code Mode 子调用都记录为可重建的 nested dispatch,但只有 outer run_code 的 curated result 进入模型历史。 | 23 | 23 |
CODEMODE-HOST-CODEdefine-time 语法预检与同步 VM timeout | packages/extensions/cordis-host-runner/src/sandbox.ts:196-238 | Host/Client source 在 define 时用相同 async wrapper compile-only 预检;Host evaluate 的 vmTimeoutMs 只限制同步部分,async body 会逃离该时间界限。 | 23 | 23 |
CODEMODE-HOST-SANDBOX动态 Host VM 的真实信任边界 | packages/extensions/cordis-host-runner/src/sandbox.ts:1-11 | Host half 在 fresh node:vm realm 中运行并通过 traps 引导到 ctx services,但 host-realm helper 仍构成 escape route;模块明确声明这不是恶意代码安全边界。 | 23 | 23 |
CODEMODE-INSPECT-REGISTRYInspect query 的平台路由与取消 | packages/extensions/cordis-host-runner/src/inspect-registry.ts:98-198 | Host query 本地校验输入/输出;Client query 发布带 agent identity 的请求,等待第一个同 Session 有效响应或 AbortSignal 取消,并清理 pending state。 | 23 | 23 |
CODEMODE-MODES工具展示模式与子调用并发配置 | packages/core/tools/src/index.ts:650-673 | 工具运行时定义 native、code、both 三种展示模式;code 只暴露 run_code,并为每次程序设置默认 10 的嵌套调用并发上限。 | 23 | 23, 33 |
CODEMODE-NESTED-DISPATCH嵌套调用身份、日志与上下文提交 | packages/core/tools/src/code-mode.ts:464-594 | 每个嵌套调用获得确定性 subCallId、root/parent identity、同一 agent 与取消 signal;start/settle 事件带独立参数快照,结果在有序 commit 后向程序 resolve,并把 additionalContexts 与 concludesTurn 提交到外层。 | 23 | 23 |
CODEMODE-OUTCOME-STEERING异步 activation 结果通过 steering 回到 Agent | packages/extensions/cordis-host-runner/src/index.ts:1019-1047 | 页面侧最终成功、拒绝或技术失败会转成带 exact Plugin/Package/Run identity 的 steering context;失败文本包含 current/next pointers 与同 Plugin 修复建议。 | 23 | 23 |
CODEMODE-POLICY嵌套调用复用完整 ToolRuntime pipeline | packages/core/tools/src/index.ts:1453-1599 | staged execution 依次执行 pre-execute、approval、monotonic guards、around-dispatch、真实工具 body、结果规范化与 post 阶段;取消和工具失败都物化为标准结果。 | 23 | 23 |
CODEMODE-REFERENCE@pluginId 只从用户消息注入 source-free context | packages/extensions/tool-cordis/src/index.ts:497-529 | 显式引用只从 user-source 文本按严格 ID pattern 提取;注入当前 base/version 状态但要求随后精确 inspect source,丢失或跨 Session 的引用会明确报告不可用。 | 23 | 23 |
CODEMODE-REGISTRYPlugin、Package、Run 与 approval 的状态模型 | packages/extensions/cordis-host-runner/src/registry.ts:16-82 | 一个 session-owned Plugin 保存不可变 Package map、per-package 与 future-version grants、current/next pointers、单个 active run、latest attempt;run 和 pending approval 都有独立 identity。 | 23 | 23 |
CODEMODE-RETRACT停止到 quiescence 与 Session ownership | packages/extensions/cordis-host-runner/src/index.ts:1219-1239 | retract 先移除 live run,再注销 handlers、await fiber.dispose 并发出 retract event;所有 action lookup 都要求 plugin.sessionId 等于 agent.id。 | 23 | 23 |
CODEMODE-RUN-APPROVALHost-only 快路径与 Client approval 状态机 | packages/extensions/cordis-host-runner/src/index.ts:238-374 | Host-only Package 直接 activate;带 Client half 的 Package 在没有 grant 时创建 approval request,在已有授权时进入 starting,并用 request/package/run identity 防止陈旧批准启动错误版本。 | 23 | 23 |
CODEMODE-RUN-SCHEMArun_code 输入、输出与运行期入口 | packages/core/tools/src/code-mode.ts:283-340 | run_code 要求 code 与非空 description,输出只有 logs 和可选 result;执行时解析 runtime,并把外层取消传入 run-scoped AbortController。 | 23 | 23 |
CODEMODE-RUNTIME-DESCRIPTORSlanguage 与 isolation 只是描述符 | packages/code-runtime/code-runtime/src/index.ts:95-134 | CodeRuntime 的 language 和 isolation 用于 presentation 与诊断,不构成安全声明;源码明确只有 TypeScript 有已发布后端。 | 23 | 23 |
CODEMODE-RUNTIME-READSassembly 与执行分别读取 CodeRuntime | packages/core/tools/src/index.ts:1003-1028 | CodeRuntime 在 prompt assembly 与 run_code 执行时分别动态读取,当前没有把语言绑定到单次请求;源码将第二后端出现时的语言热切换窗口列为延期工作。 | 23 | 23 |
CODEMODE-SCHEDULER每次程序独立的嵌套调度器 | packages/core/tools/src/code-mode.ts:342-457 | run_code 使用单一有序 lane 执行 start、prepare、commit,仅让标记为并发安全的 dispatch body 重叠;exclusive 调用形成覆盖 post-execute 的屏障,结束时排空日志工作。 | 23 | 23 |
CODEMODE-SCOPE按作用域选择并可撤销的 Code Mode | packages/core/tools/src/index.ts:894-973 | 展示模式按最近作用域解析;agent 或 preset 可覆盖部署默认,dispose 会恢复原展示并卸载相应 prompt section。 | 23 | 23 |
CODEMODE-SDK-LIVECode Mode SDK 在每次 prompt assembly 时重建 | packages/core/tools/src/index.ts:865-891 | tools:sdk section 在渲染时从调用作用域的当前可见工具稳定重建,而非在 ToolRuntime 构造时冻结。 | 23 | 23 |
CODEMODE-SEAMCodeRuntime 的 JSON 边界与失败分类 | packages/code-runtime/code-runtime/src/types.ts:9-127 | 绑定参数和结果必须是 lossless JSON,且中间 binding resolution 没有 seam 级字节上限;run 失败分 exception、timeout、abort、worker-exit、invalid-output、output-limit,并作为 resolved result 的 error 字段返回。 | 23 | 23 |
CODEMODE-TRANSPORTrun_code 是保留的展示 transport | packages/core/tools/src/index.ts:913-933 | run_code 不进入普通可过滤注册层,而是在可见性解析后加入,因而不能被 agent restriction 移除或被 scoped tool shadow。 | 23 | 23 |
CODEMODE-WIREwire schema 收缩与运行时语言校验 | packages/core/tools/src/index.ts:976-1028 | native 发送可见原生工具,code 只发送 run_code,both 同时发送;非 native 模式在 prompt assembly 时要求存在受支持语言的 CodeRuntime。 | 23 | 23 |
CODEMODE-WORKER-BOOT程序只获得显式 namespace 与 console | packages/code-runtime/code-runtime-worker-thread/src/bootstrap.ts:301-424 | worker 构造 null-prototype binding namespaces,用消息端口桥接 async 调用,并把程序作为 strict AsyncFunction body 执行;注入参数只有声明的 namespaces、error classes 与 console。 | 23 | 23 |
CODEMODE-WORKER-BRIDGEhostile worker 消息、预算与取消 | packages/code-runtime/code-runtime-worker-thread/src/index.ts:462-556 | Host 对 worker 消息做形状校验、own-property binding lookup 与 JSON 重验证;重复 ID、未知 binding、坏值、worker exit、busy/wall timeout 和 abort 都被收敛到受控结果。 | 23 | 23 |
CODEMODE-WORKER-LIFECYCLEfresh worker 与单一终局 | packages/code-runtime/code-runtime-worker-thread/src/index.ts:363-460 | 每次执行创建 env={}、execArgv=[]、受 heap 限制的 worker;所有完成路径只允许一个结果获胜,并在 resolve 前 terminate worker、排空 stdout/stderr。 | 23 | 23 |
CODEMODE-WORKER-LIMITSworker 默认预算与 dispose 语义 | packages/code-runtime/code-runtime-worker-thread/src/index.ts:230-317 | 默认预算为 60 秒 busy time、600 秒 wall time、64 MiB 合并外层输出和 512 MiB old generation;dispose 会 abort 并等待所有 worker 退出,类型剥离失败不启动 worker。 | 23 | 23 |
CODEMODE-WORKER-TRUSTworker-thread 是 containment 而非安全边界 | packages/code-runtime/code-runtime-worker-thread/src/index.ts:1-6 | 每次运行使用 fresh worker,但模块注释明确模型代码具有与 bash 等价的信任,即使环境为空、堆和时间受限且可强制 terminate。 | 23 | 23 |
COMPACT-AUTO-TRIGGERSPre-step pressure 与 same-step overflow recovery | packages/compaction/compaction-basic/src/index.ts:137-223 | Pre-step listener 失败只警告并继续;canonical context overflow 在独立 budget 内尝试压缩,只有 Surface generation 前进才返回 retry,prune 已落地后 summary 失败也可作为进展,取消最终优先。 | 13 | 13 |
COMPACT-COMMANDHuman-facing /compact 与失败分类 | packages/compaction/command-compact/src/index.ts:22-105 | 无参数命令把 busy/cancelled/changed/summary/commit/persistence 映射为不同用户结果,成功报告 shadowed items/tokens 并以 summary seq 关联展示;teardown drain active handlers。 | 13 | 13 |
COMPACT-COMMITSnapshot、shrink validation、稳定性与同步 commit body | packages/compaction/compaction-basic/src/region.ts:338-485 | 选中 span 以 token nodes 与消息 snapshot 定价;framed checkpoint 必须严格更小;automatic 要求 whole Surface 不变,manual 只要求 selected span 稳定;summary event 与 replacement 同步相邻 append。 | 13 | 13, 33 |
COMPACT-CONFIG按精确 Provider/Model 解析的阈值与保留预算 | packages/compaction/compaction-basic/src/config.ts:67-166 | 默认 thresholdRatio=.8、retainRatio=.16、maxTokens=8192、一次额外 summary retry 和一次 overflow retry;exact route 可部分覆盖,capacity 将 ratio 缩放为 absolute budgets。 | 13 | 13, 14 |
COMPACT-ESTIMATOR固定密度 token heuristic | packages/llm/token-meter/src/estimate.ts:12-87 | 文本/推理按每四个 JS code units 加 block overhead 估算,tool args/schema 用 JSON 长度,message 加 role overhead;它是统一启发式而非真实 tokenizer。 | 13 | 13 |
COMPACT-EVENTSCompaction 生命周期、shadow price 与结果事件词汇 | packages/compaction/compaction/src/types.ts:16-119 | start/summary/end 是 log-only bracket;summary 记录 shadowed seq/token price、route、raw output 和 usage,紧随其后的 replacement user message 才改变 Surface;prune 是 model-free shadow-price event。 | 13 | 13, 14 |
COMPACT-INVARIANTCompaction bracket、owner 与 checkpoint runtime invariant | packages/compaction/compaction/src/invariant.ts:56-217 | Companion 校验 transaction/command ID、Turn enclosure、单一 summary、shadow endpoints/token count、checkpoint source 与成功 end;它不校验 summary/prune 必须紧邻对应 replacement。 | 13 | 13 |
COMPACT-MANUALIdle maintenance 下的手动 compaction | packages/compaction/compaction-basic/src/index.ts:360-419 | compactNow 同步进入 runMaintenance,只在 idle 且无 waking work 时运行,以 retain=0 选 useful range,写 turn:null bracket,允许 span 外 append,并在返回前 flush closed attempt。 | 13 | 13 |
COMPACT-PAIRING按当前 Surface 顺序计算 tool call/result balanced cuts | packages/compaction/compaction/src/tool-pairing.ts:28-130 | Fold 以 assistant tool-call 数加一、tool result 减一,为 N nodes 计算 N+1 个 cut;replacement generation 变化时重建,普通 append 增量扩展。 | 13 | 13 |
COMPACT-POLICY-LOOPPressure、prune、retention 与 summary retry 主循环 | packages/compaction/compaction-basic/src/index.ts:248-331 | Pressure 先解析 routed capacity 并过 threshold,再可选 prune、重测、选择保留 tail 的 head range;overflow 跳过 threshold/retention 并先 prune;每次 summary 后重测直到低于阈值或耗尽 bounded retries。 | 13 | 13 |
COMPACT-PRUNERReplay-safe、model-free 的 content-only tool-result replacement | packages/compaction/compaction-tool-result-pruner/src/index.ts:63-184 | 只统计/裁剪 text blocks,中段按 code point 移除、rich blocks 原序保留;对 Surface snapshot 中每个超限 result 先写 shadow price,再用 Session 允许的 content-only replacement 引用原 seq。 | 13 | 13 |
COMPACT-PRUNER-CONFIGTool-result pruner 的 code-point budgets | packages/compaction/compaction-tool-result-pruner/src/config.ts:7-64 | 默认超过 8192 Unicode code points 才触发,保留 4096 head、1024 tail 和固定 marker;配置保证输出不超过 threshold 且可收敛。 | 13 | 13 |
COMPACT-RANGE保留近期 tail 的 head-anchored range selection | packages/compaction/compaction-basic/src/region.ts:90-134 | 从 Surface 尾部累计至少 retainTokens,再把 cut 向 head 移到 tool-pair balanced boundary;没有可压缩 head 或单个不可分割单位时返回 null。 | 13 | 13, 33 |
COMPACT-RUNTIME-ORDERPre-step candidate、waterfall 与消息 commit 顺序 | packages/core/agent-loop/src/agent.ts:225-287 | Agent 在 waterfall 前 claim 输入、组装 prompt、计算 runtime-context candidate;waterfall 返回后才写 step/start 和 user messages,因此 waterfall 内 pressure measurement 看不到本次 entering batch。 | 13 | 13 |
COMPACT-RUNTIME-PROJECTIONDynamic runtime-context retained snapshot projection | packages/core/agent-loop/src/runtime-context.ts:24-75 | Projection 记住最新仍在 Surface 的 owned snapshot;replacement 引用它时把 retained 设 null,project 只在当前 text 与 retained 不同时产生候选消息。 | 13 | 13 |
COMPACT-SEAMCompaction backend seam 与三种入口 | packages/compaction/compaction/src/index.ts:87-169 | 抽象引擎区分 pressure/overflow 自动判断、idle compactNow 与显式 compactRegion;成功都把一个平衡 Surface span 替换成带统一 checkpoint source 的 user message。 | 13 | 13 |
COMPACT-SHADOW-PRICEO(1) projection 的 adjacent shadow-price protocol | packages/llm/token-meter/src/surface-projection.ts:1-94 | Bounded projection 只保留 running total 与一个 pending claim;summary/prune 应为下一 replacement 定价,任意其他事件使 claim 过期;无 claim 的历史 replacement 以 zero delta 降级而非失败。 | 13 | 13, 33 |
COMPACT-SUMMARIZERCache-shaped one-shot summary request 与 checkpoint framing | packages/compaction/compaction-basic/src/summarizer.ts:20-223 | 摘要请求重用会话 system/tools/selected messages 并只在尾部加固定英文结构指令;target 优先显式 summary route,再最新 route/Agent options;只接受非空 text,image 或 max-token truncation 失败,raw output/usage 另存。 | 13 | 13, 14 |
COMPACT-TOKEN-ANCHORProvider usage anchor 与 chunk-source 重组 | packages/llm/token-meter/src/index.ts:188-310 | Meter 在 assistant/message 处以 step-start Surface 为 anchor,从 cited raw chunks 重组真实 Provider output;usage total 小于完整 heuristic anchor 时退回估算,避免负 delta 低估压力。 | 13 | 13 |
COMPACT-TOKEN-MEASUREReplay-aware request pressure measurement | packages/llm/token-meter/src/index.ts:100-180 | 匹配 request header 时优先复用保守 provider usage anchor,再叠加 Surface signed delta;不匹配则重估 header+surface;每次返回 immutable O(surface) positional nodes。 | 13 | 13 |
COMPACT-TRANSACTIONDurable start-lock 与 exactly-one close attempt transaction | packages/compaction/compaction-basic/src/region.ts:137-253 | 验证后同步写 start 作为锁,摘要后重验稳定性,提交 body 再写 end;任何后续失败尝试一次 error end,close 自身失败会故意留下 unmatched start;manual closed attempt 可再 flush。 | 13 | 13, 33 |
COMPACT-USAGE-PROJECTION主会话 usage 与 next-request pressure projections | packages/llm/token-meter/src/usage-projection.ts:70-205 | Usage fold 只读取 assistant usage chunk/message,按 Turn/Step last-wins 累积;context pressure 用 provider prompt sample 加 Surface shadow-price delta 推测下一请求,compaction/summary 自带 usage 不进入累计。 | 13 | 13 |
DESIGN-INVARIANT-REGISTRY包归属的运行时不变量注册器 | packages/runtime-diagnostics/invariants/src/index.ts:93-197 | 不变量按 package 选择和唯一注册,在服务自有 child fiber 中运行;失败携带 package 归属,安装失败与处置都会释放注册。 | 02 | 02, 03 |
DESIGN-SCOPED-LAYERS作用域可见性与 effect 所有权的统一实现 | packages/core/scope/src/store.ts:153-266 | ScopedLayers 把全局贡献与作用域链叠加,最近作用域覆盖同名项;注册上下文同时决定可见性和 effect 所有权,撤销后回收空层。 | 02 | 02, 07, 33 |
FAILURE-ADAPTER-BOUNDARY最终 adapter 失败边界 | packages/llm/llm/src/index.ts:838-938 | 未 prepared 的直接 stream 路径在最终边界内完成选择、解析、dispatch 与迭代;prepared 路径的 dispatch/迭代也由该边界转为 terminal finish,middleware/consumer/cleanup 错误保持抛出。 | 27 | 27 |
FAILURE-AGENT-CANCELAgent cancel、wake latch 与 Turn containment | packages/core/agent-loop/src/agent.ts:113-329 | 定义默认清 Inbox/abort、post-abort waking input 重分类与 latch、whenIdle 替换活动跟随、turn/end 平衡和下一 Turn 新 AbortController。 | 27 | 27 |
FAILURE-AGENT-DISPOSALMemoized Agent 生命周期 disposal | packages/core/agent-loop/src/index.ts:459-530 | 融合 caller/owner/factory 取消;共享 disposer 依次 cancel(disposed)、whenIdle、scope.dispose,最后 detach registries 与 ownership。 | 27 | 27 |
FAILURE-AGENT-PREPARE-BOUNDARYAgent prepared-call 与 request-error 边界 | packages/core/agent-loop/src/agent.ts:302-458 | Agent 在 buildRequest 先 prepareCall;非 NO_ADAPTER 解析错误在 stream 前抛出并直接关闭 Turn,只有 terminal failure chunk 才分派 agent/request-error。 | 27 | 27 |
FAILURE-CHECKPOINT-AGENT-ORDERAgent request 前缀与 stream 调用顺序 | packages/core/agent-loop/src/agent.ts:225-350 | Agent 记录 turn/start,claim Inbox 输入,再记录 step/start 与输入消息;构造 request 后才进入 stream,并把返回 chunk 继续记入会话。 | 27 | 27 |
FAILURE-CHECKPOINT-POLICY模型与工具副作用前的 semantic checkpoint | packages/session/session-checkpoint-policy/src/index.ts:20-82 | 有 live session 时在 downstream model stream 前 flush;顶层 tool body 前 flush,pre-step 也 flush;失败 fail-closed,checkpoint 中取消返回未 dispatch 结果。 | 27 | 27 |
FAILURE-CHECKPOINT-REQUEST-PREFIXRequest header/context 在 stream 前记录 | packages/core/agent-loop/src/agent.ts:403-494 | buildRequest 在返回带 sessionId 的冻结请求前追加 request/header 与必要的 request/context。 | 27 | 27, 33 |
FAILURE-CHECKPOINT-TOOL-INTENTTool intent 在 scheduler dispatch 前记录 | packages/core/agent-loop/src/tool-calls.ts:164-175 | 每个已启动调用先 append tool/call,再 prepare 并进入 scheduler dispatch。 | 27 | 27 |
FAILURE-CHECKPOINT-TOOL-WRAPPERScheduler dispatch 经过 tools/execute waterfall | packages/core/tools/src/index.ts:1569-1577 | scheduled dispatch 先进入 tools/execute waterfall,其最终 next 才调用 tool body。 | 27 | 27 |
FAILURE-CONFIG-RESOLUTIONDeepSeek 配置双层验证与 last-good generation | packages/llm/llm-deepseek/src/index.ts:91-256 | Schema 加显式 resolver 复核 catalog/bounds/reasoning/timeout/retry;首次失败阻止注册,live invalid snapshot 完整回落 lastGood。 | 27 | 27, 33 |
FAILURE-CRASH-REPAIRInterrupted Turn 的确定性语义修复 | packages/core/session/src/repair.ts:18-132 | 区分 TOOL_NOT_STARTED 与 TOOL_OUTCOME_UNKNOWN,先补 dangling tool result 再关闭 Step/Turn,并在恢复文本中要求副作用风险核验。 | 27 | 27, 33 |
FAILURE-CREDENTIAL-ROUTE每请求 credential 恢复与 retry-policy 原位替换 | packages/llm/llm-deepseek/src/index.ts:225-275 | 凭据从同一请求 snapshot 延迟解析,缺失抛 MISSING_CREDENTIAL;route 先注册,policy 变化用同步 replace 避免空 registry 窗口。 | 27 | 27 |
FAILURE-DEEPSEEK-HTTPDeepSeek HTTP 错误、Retry-After 与 request id | packages/llm/llm-deepseek/src/adapter.ts:117-338 | 解析秒数或 HTTP-date Retry-After、两个 request-id header,并把非 2xx status/body 映射为稳定 failure code 与事实。 | 27 | 27 |
FAILURE-DEEPSEEK-STREAM每请求配置快照、idle watchdog 与 transport 清理 | packages/llm/llm-deepseek/src/adapter.ts:214-268 | 一次 stream 固定连接与凭据;区分 TIMEOUT、ABORTED、TRANSPORT,并在 finally abort consumer、等待未耗尽 iterator.return。 | 27 | 27 |
FAILURE-HMR-WATCH用户 patch watcher 与 present-invalid fail-loud | packages/boot/app-boot/src/index.ts:225-338 | Watcher 重读完整 patch generation 并一次 entry.update;存在但不可读、不可解析或非数组的 patch 明确抛错而非静默跳过。 | 27 | 27 |
FAILURE-JSONL-ATOMICITYJSONL materialize、append rollback 与 fsync | packages/session/session-persistence-jsonl/src/index.ts:511-701 | 首次写用 synced temp 与不覆盖 publish;POSIX 通过 link 发布并 fsync 父目录;append write/sync 失败截回旧长度并 fsync,repair truncate 也 fsync。 | 27 | 27 |
FAILURE-JSONL-PREFIXJSONL/Zstd 稳定前缀与 torn-tail repair marker | packages/session/session-persistence-jsonl/src/index.ts:306-444 | Loader 使用 scanner 的 committed/torn 边界构造稳定事件前缀与 truncation/recovered-events marker,并通过 commitRepair 落修复。 | 27 | 27 |
FAILURE-JSONL-RAW-SCAN原始 JSONL 完整记录 scanner | packages/session/session-persistence-jsonl/src/format.ts:272-377 | 仅提交换行结束、可解码且 sequence 连续的事件记录;未结束 fragment 不进入 committedBytes。 | 27 | 27 |
FAILURE-JSONL-WIN32Windows write-through durable publish | packages/session/session-persistence-jsonl/src/win32.ts:109-120 | Windows 用未设置 replace 或跨卷 copy fallback flag 的 MoveFileExW MOVEFILE_WRITE_THROUGH 把 staging path 发布到 final path。 | 27 | 27 |
FAILURE-JSONL-ZSTD-SCAN完整 Zstd frame scanner | packages/session/session-persistence-jsonl/src/zstd.ts:48-103 | 逐帧校验 header/block/checksum 边界,只返回完整 frame,并把 EOF 中断的最后一帧起点标为 tornStart。 | 27 | 27 |
FAILURE-PERSISTENCE-WIRINGPersistence admission、最终 drain 与 retirement 顺序 | packages/session/session-persistence/src/coordinator.ts:1084-1161 | 逆序 teardown 先关闭 event admission,再 flush/等待 chains/close backend;session retirement 先 flush 后释放精确 lifecycle state。 | 27 | 27 |
FAILURE-REQUEST-LOOP同一 Step 内的模型请求恢复循环 | packages/core/agent-loop/src/agent.ts:332-400 | 每次 attempt 重建 request/assembler;只有 terminal error/aborted finish 进入 request-error,retry action 继续同一 Step,成功后才提交 assistant message 与工具。 | 27 | 27 |
FAILURE-RETRY-EXECUTORRetry 执行、持久化计划与 disposal drain | packages/llm/llm-retry/src/index.ts:99-225 | 按坐标/policyKey 计数,先写 retry 计划再等待,处理 provider delay 上限与 always 下游组合,并在 disposal 终止且 drain active recovery。 | 27 | 27, 33 |
FAILURE-RETRY-POLICYProvider-owned retry policy 默认值与验证 | packages/llm/llm/src/retry-policy.ts:14-191 | 定义 normal/always、默认次数/延迟/jitter/错误码,拒绝未知键、越界、空与重复 code,并返回冻结 policy。 | 27 | 27 |
FAILURE-SNAPSHOT可序列化且冻结的 failure snapshot | packages/llm/llm/src/adapter-failure.ts:16-104 | 仅当 Error 的自有 data descriptor failure/code 匹配时才信任携带快照;内部字段在 try 中读取并校验但不要求为自有属性,快照复制并冻结。 | 27 | 27 |
FAILURE-TIMEOUT-SIGNALDeadline 与 idle watchdog 的信号合同 | packages/util/timeout/src/index.ts:57-190 | Signal 只通知、调用方必须停止;first abort reason 获胜,code-scoped timeoutOf 区分外层取消,watchdog 仅在 outstanding demand 时计时。 | 27 | 27 |
FAILURE-TOOL-DRAIN并行工具 abort 与 scheduler failure drain | packages/core/agent-loop/src/tool-calls.ts:112-255 | Abort 停止新 dispatch、等待并按序提交 started calls,再为 skipped calls 合成结果;scheduler failure allSettled 已在途工作。 | 27 | 27, 33 |
FAILURE-TOOL-TIMEOUT协作式工具 timeout policy | packages/guard/timeout-policy/src/index.ts:18-80 | 只包装声明 timeoutMs 的工具,临时替换 signal,等待下游收敛,仅在本层 timer 获胜时返回 TOOL_TIMEOUT,且不 abandon Promise。 | 27 | 27 |
FAILURE-WRITE-BEHINDPer-session write-behind 与 flush barrier | packages/session/session-persistence/src/write-behind.ts:18-158 | Enqueue clone event;flush 共享 barrier 并 drain 到静止;失败 batch 原序放回队首且自动路径暂停,显式 barrier reject。 | 27 | 27 |
INBOX-ACTIVATION-MODELActivation 是 residency epoch | packages/subagent/subagent/src/continuation.ts:1-19 | Activation 明确不是 request/result/cancel/task,可执行多个 FIFO Turn;manager 管 residency,Agent Inbox 管唯一 Turn queue。 | 26 | 26 |
INBOX-ACTIVATION-STATEActivation running/waiting/settled 推导 | packages/subagent/subagent/src/continuation.ts:151-159 | 状态从 Agent 活动和 owned-child set 推导,不引入第二个独立执行状态机。 | 26 | 26 |
INBOX-ACTIVITY-CONTRACTAgent status、whenIdle、maintenance 与输入合同 | packages/core/agent/src/runtime-types.ts:43-143 | running 覆盖完整 driver drain,maintenance 对外仍 idle,whenIdle 跟随替换活动,三种输入的 wake/边界语义显式定义。 | 26 | 26 |
INBOX-AGENT-RESUME持久化 Agent resume 路径 | packages/core/agent-loop/src/index.ts:647-709 | resume 从 persistence prepare 后进入共享 setupAndPublish,并以 resume source 发布新的 Agent handle。 | 26 | 26 |
INBOX-CANCEL-CODECancel 的 clear 与 abort 实现 | packages/core/agent-loop/src/agent.ts:134-140 | 默认 cancel 清空 Inbox 并清 wake latch,keepInbox 跳过清空;只有非 idle phase 接收 abort signal。 | 26 | 26 |
INBOX-CHECKPOINT-POLICY模型与工具副作用前的语义 checkpoint | packages/session/session-checkpoint-policy/src/index.ts:20-82 | pre-step 与 llm/stream 边界 flush Session;flush 失败时不 dispatch 模型或顶层工具副作用。 | 26 | 26 |
INBOX-CHILD-CLIENTClient ordinary/child prompt 与 cancel 路由 | packages/client/runtime/src/client/sessions/session.ts:184-329 | Ordinary session 透传 queue/steer;one-shot child 只读;continuable child text-only 且忽略 mode;cancel 分派到 session.cancel 或 subagent.interrupt。 | 26 | 26 |
INBOX-CHILD-COMPOSERRunning child 的独立 Send 与 Stop | packages/client/ui-conversation/src/client/skeleton/InputBar.tsx:541-555 | Ordinary running session 的主按钮变 Stop;continuable child 保留 Send 为主按钮并单独提供 Stop,因此可继续排后续消息。 | 26 | 26 |
INBOX-CHILD-INTERRUPTContinuable child interrupt 语义 | packages/subagent/subagent/src/continuation.ts:507-568 | Interrupt 授权 live target 后调用 cancel keepInbox 并立即返回;claimed 不恢复,pending/descendants 保留,absent 为 no-op。 | 26 | 26 |
INBOX-CHILD-OFFLINE-UIParent offline 时的 child composer | packages/client/ui-subagent/src/client/index.ts:43-52 | One-shot child 永远只读;parent offline 的 continuable child 在 running 时保留默认 composer 以暴露 Stop,停止后切换只读。 | 26 | 26 |
INBOX-CHILD-REPORTExact-child report 与父调度 | packages/subagent/subagent/src/continuation.ts:583-693 | 只有 exact resident child 可报告;direct parent 从 lineage 解析;wakeup 用 followup,quiet 用 inject,报告不结束 child。 | 26 | 26 |
INBOX-CLAIM-REPLAYSeed 后回放与 claim 顺序 | packages/core/agent/src/inbox.ts:24-78 | Inbox 只回放 seedLength 后的 splice;claim 先取全部 next-step,再按目标取一条 next-turn。 | 26 | 26 |
INBOX-CLIENT-MIRRORQueue snapshot mirror 与 durable handoff | packages/client/runtime/src/client/sessions/queue-mirror.ts:23-73 | 客户端以完整 snapshot 替换 queue,并在同 MessageId 的 user/message 到达时退休一个 pending steering row。 | 26 | 26 |
INBOX-COLD-RESUMEContinuable child 冷恢复与 lineage 授权 | packages/subagent/subagent/src/continuation.ts:876-932 | 冷恢复 inspect persistence,先验证 durable direct parent,再仅折叠 seed suffix descriptor,materialize 后 submit。 | 26 | 26 |
INBOX-COMMIT-IDENTITYSplice 的 commit-first 与身份不变量 | packages/core/agent/src/inbox.ts:128-219 | 坐标先归一化并验证,Session append 成功后才改 live projection;MessageId 在两列表间唯一。 | 26 | 26 |
INBOX-CONSUMED-WORKConsumed work 的联合事件折叠 | packages/core/agent/src/consumed-work.ts:60-107 | 单遍联合 step、claim、turn/end 与 canceled splice,区分 accounted Turn 与 dropped-unrun input。 | 26 | 26 |
INBOX-CONTINUATION-ADMISSIONChild follow-up 的同步 admission fence | packages/subagent/subagent/src/continuation.ts:1125-1204 | 在 no-await 段检查 signal/drain/disposal/lineage,先登记 accepted ID,再同步调用 child Agent.followup 并标 announced。 | 26 | 26 |
INBOX-CONTINUATION-DELIVERYResident、disposal race 与 cold-resume delivery | packages/subagent/subagent/src/continuation.ts:459-505 | 每 child 锁串行化 followup;resident 直接 submit,absent cold-resume,已开始 disposal 的 delivery 等释放后重试。 | 26 | 26 |
INBOX-CONTINUATION-SEAMContinuable child 的 start/followup/interrupt/report seam | packages/subagent/subagent/src/index.ts:203-275 | Start 以 initial Inbox acceptance 为边界;later followup 是下一 FIFO Turn;interrupt 保留 pending;report 由 exact child 发给 direct parent。 | 26 | 26 |
INBOX-CONTROL-TOOLSsend_message 与 interrupt_agent 模型合同 | packages/subagent/tool-subagent-control/src/index.ts:25-119 | send_message 用 exact caller 走 child followup,明确不能 redirect 当前 Turn且不返回 child reply;interrupt 只请求取消并保留 queue。 | 26 | 26 |
INBOX-DRIVER-WAKE输入重分类、driver wake 与 latch | packages/core/agent-loop/src/agent.ts:113-220 | send 在 abort 后把 waking input 改投 next-turn;idle wake 预留 driver,活动中只在 maintenance/abort 情况 latch,并在退出时 replay。 | 26 | 26 |
INBOX-EVENT-SCHEMA两类 Inbox 与 durable splice 事件 | packages/core/agent/src/types.ts:9-25 | 只定义 next-turn/next-step 两个目标;agent/inbox/spliced 记录坐标、完整插入消息和可选 canceled outcome。 | 26 | 26 |
INBOX-HISTORY-CLASSIFICATIONDurable steering 历史分类 | packages/client/runtime/src/client/sessions/steering-history.ts:20-63 | Replay 通过 next-step 的非 canceled removal 记录 claimed identity,再仅把 user-source user/message 分类为 steering。 | 26 | 26 |
INBOX-HOST-CONTRACTSession prompt、queue mutation 与 cancel wire contract | packages/host/apiproxy/src/api/sessions.ts:315-371 | Contract 定义 queue/steer prompt、edit/remove/steer mutation,并声明 ordinary cancel 保留 pending work。 | 26 | 26 |
INBOX-HOST-PROJECTION两个 Inbox 列表的权威 Web projection | packages/host/apiproxy/src/api-proxy.ts:1326-1355 | Host 投影 next-turn 与 next-step,用 user source 区分 steering/context,并在同步 observer 中应用当前 splice 得 post-state。 | 26 | 26 |
INBOX-HOST-PROMPTOrdinary prompt admission 与模式路由 | packages/host/apiproxy/src/api-proxy.ts:2461-2517 | Host 创建带来源的 message,queue 调 followup、steer 调 steer,并在同步 enqueue 成功后返回 accepted。 | 26 | 26 |
INBOX-HOST-QUEUE-MUTATIONMessageId queue mutation 与 strict steer | packages/host/apiproxy/src/api-proxy.ts:2568-2633 | Host 重新定位 pending item,限制 text edit,strict steer 只接受 running next-turn item,并以同一消息 remove 后 steer;cancel 使用 keepInbox。 | 26 | 26 |
INBOX-INPUT-GESTURESEnter 去重与 whole-queue steer gesture | packages/client/ui-conversation/src/client/skeleton/InputBar.tsx:313-339 | 重复 Enter 被抑制;空 draft 的 accelerated Enter 可把 still-pending queue 逐项 steer,否则按 policy 提交。 | 26 | 26 |
INBOX-MESSAGE-IDENTITY统一消息身份、来源与冻结 | packages/llm/llm/src/message.ts:96-199 | 消息具有稳定 ID、角色、精确内容和可扩展来源;既有消息深冻结,新消息分配 UUID。 | 26 | 26 |
INBOX-PENDING-STEERING-UIConversation tail 的 pending steering | packages/client/ui-conversation/src/client/chat/ChatView.tsx:400-406 | ChatView 在 running indicator 之后把全部 pending steering 渲染为独立 bubble。 | 26 | 26 |
INBOX-QUEUE-DOCKQueueDock 过滤与逐项操作 | packages/client/ui-conversation/src/client/queue/QueueDock.tsx:27-205 | Dock 只显示 queued placement,并在 ordinary session 提供 text edit、remove 和仅 running 可用的 steer。 | 26 | 26 |
INBOX-RECONNECT-CLIENTClient generation queue reset | packages/client/runtime/src/client/sessions/session.ts:412-485 | 客户端在 session/subscribed 上清旧 queue mirror,再接受同 stream 后续 snapshot,正确处理 Host 省略空 baseline。 | 26 | 26 |
INBOX-RECONNECT-HOSTMux reconnect queue baseline | packages/host/apiproxy/src/api-proxy.ts:3430-3455 | 重连先为 Session 建立 subscription,再仅为仍有 pending 的 Agent 发送完整 queue baseline。 | 26 | 26 |
INBOX-SEED-BOUNDARYInbox 的 seed ownership boundary | packages/core/agent/src/inbox.ts:24-39 | 构造时明确跳过 seedLength 之前的事件,只把 Session 自己的 suffix splice 重建为 pending。 | 26 | 26 |
INBOX-SEND-MAPFollow-up、steer 与 inject 映射 | packages/core/agent-loop/src/agent.ts:113-132 | 统一 send 先插入再可选 wake;followup、steer、inject 分别映射为 next-turn+wake、next-step+wake、next-step+quiet。 | 26 | 26 |
INBOX-SETTLEMENT-NOTICESettlement notice 的时序与路由 | packages/subagent/subagent/src/continuation.ts:1363-1465 | 通知在释放父 ownership 前投递;closing parent inject、idle followup、busy steer;失败丢弃且最终 flush best effort。 | 26 | 26 |
INBOX-SUBAGENT-HOSTSubagent Host prompt 与 offline-parent interrupt | packages/host/apiproxy/src/api-proxy.ts:2737-2799 | Child prompt 要求 live parent 并调用 continuation followup;interrupt 不查 parent/catalog/persistence,而由 live Activation 授权 durable address。 | 26 | 26 |
INBOX-SUBAGENT-WIRESubagent prompt 与 interrupt receipt contract | packages/host/apiproxy/src/api/subagents.ts:38-119 | Prompt receipt 是 accepted MessageId,后续执行独立;interrupt receipt 只确认 cancel signal,保留 pending,absent/idle 也 accepted。 | 26 | 26 |
INBOX-SUBMISSION-POLICYBusy Enter 的 queue/steer 决策 | packages/client/ui-conversation/src/client/input/submission-policy.ts:17-57 | 非 running 或无 steering transport 强制 queue;busy 状态按偏好选择,accelerated gesture 取相反值,并明确 direct steer 为 best effort。 | 26 | 26 |
INBOX-TOOL-CONTEXT工具结果与 additional context 的有序提交 | packages/core/agent-loop/src/tool-calls.ts:145-158 | Finalized tool result 先按模型顺序写入,随后把该结果的 additionalContexts 逐条交给 next-step acceptor。 | 26 | 26 |
INBOX-TOOL-CONTINUATION工具结果后的同 Turn continuation | packages/core/agent-loop/src/agent.ts:287-399 | 工具未 concluded 时 Turn loop 继续后续 Step;已有 next-step 也阻止 concluded 立即关闭。 | 26 | 26 |
INBOX-TURN-MACHINETurn/Step claim、准入与关闭机器 | packages/core/agent-loop/src/agent.ts:245-329 | Turn 先记录 start 再 claim;reject 产生 blocked 无 Step,empty enter 产生 completed 无 Step,pending next-step 继续同 Turn,其他 pending 开新 Turn。 | 26 | 26 |
INBOX-WIRE-DOC-DRIFTQueue wire 注释的 durability 漂移 | packages/host/apiproxy/src/api/events.ts:36-84 | 同一文件把完整 pending message 放入 queue frame,却声称它到 claim 才 durable且没有 durable Session event,与 Inbox splice 实现冲突。 | 26 | 26 |
LLM-ADAPTER-REGISTRY一对一 provider route registry | packages/llm/llm/src/index.ts:330-413 | Adapter 必须拥有非空唯一 route;冲突 all-or-nothing 失败,effect disposal 精确释放,replace 原子交换 route 并发更新事件。 | 08 | 08, 33 |
LLM-BLOCK-ASSEMBLERChunk 到 assistant message 的规范组装器 | packages/llm/llm/src/assembler.ts:25-163 | 支持交错 index 与 delta-only 协议,首次 block-end 胜出;max-token 时丢弃不安全 tool call,并把 usage、finish、replay state 汇入最终消息。 | 08 | 08 |
LLM-CHECKPOINT-BARRIERAdapter dispatch 前的 durable checkpoint | packages/session/session-checkpoint-policy/src/index.ts:20-82 | llm/stream waterfall 在创建下游 adapter stream 前 flush 完整 request prefix;flush 失败时 fail-closed,不发生 model I/O。 | 08 | 08 |
LLM-CONTENT-PROTOCOLProvider-neutral content 与 usage 词汇 | packages/llm/llm/src/types.ts:53-141 | 核心 block 只有 text、reasoning、image、tool-call 和 tool-result;tool 参数保留原始 JSON 字符串,usage bucket 互斥。 | 08 | 08 |
LLM-DEEPSEEK-CONFIGDeepSeek 配置解析、last-good 与 route 注册 | packages/llm/llm-deepseek/src/index.ts:149-275 | 配置显式解析并验证;动态坏快照保留 last-good;凭据每次 request 解析;唯一 deepseek-official route 的 retry policy 变化用原子 replace 刷新。 | 08 | 08 |
LLM-DEEPSEEK-MODELSDeepSeek model capability 与默认值 | packages/llm/llm-deepseek/src/adapter.ts:88-211 | 默认 1M context、256K output、text-only;catalog 外 model 仍可直通;deployment thinking policy 决定 off/high/max 能力与默认 effort。 | 08 | 08 |
LLM-DEEPSEEK-SERIALIZE内部消息到 DeepSeek chat-completions 的投影 | packages/llm/llm-deepseek/src/serialize.ts:25-186 | 拒绝 image,把 tool-result user message 展开成 role=tool;tool-call turn 才回传 reasoning_content,session title 强制关闭 thinking,始终请求 streaming usage。 | 08 | 08 |
LLM-DEEPSEEK-TRANSLATEDeepSeek SSE 到内部 chunk 的有状态翻译 | packages/llm/llm-deepseek/src/translate.ts:26-184 | 按 reasoning/text/tool index 组块,延迟 block-end、usage 与 finish 到 DONE;cache hit 从 prompt total 中扣除,空 stop、坏 JSON 与无 DONE 分别失败。 | 08 | 08 |
LLM-DEEPSEEK-TRANSPORTDeepSeek request snapshot、HTTP 与 SSE 边界 | packages/llm/llm-deepseek/src/adapter.ts:214-345 | 每次 stream 固定 connection/key,发送 attribution、匿名 user/session/compaction header;状态、Retry-After 与 request id 进入结构化错误,idle timeout 与 transport 分型。 | 08 | 08 |
LLM-FAILURE-BOUNDARYAdapter failure 的归一化边界 | packages/llm/llm/src/index.ts:838-938 | Selection、dispatch、iterator 构造和 iteration failure 变成 terminal failure chunk;middleware、consumer 与 cleanup failure 保持 throw。 | 08 | 08, 33 |
LLM-MESSAGE-IDENTITYAssistant provider provenance 与 replay state | packages/llm/llm/src/message.ts:7-18 | 模型消息携带 provider、model 与可选 adapter-private lossless replay state;仅同一 adapter ownership 可安全复用。 | 08 | 08 |
LLM-MESSAGE-VALUE单一不可变 Message value | packages/llm/llm/src/message.ts:128-184 | 内部会话、投递和 provider request 共享 stable id、role、content、source 的同一表示;创建时 clone 并 deep-freeze。 | 08 | 08 |
LLM-PI-CONFIGPi AI 多 provider profile 配置形状 | packages/llm/llm-pi-ai/src/config.ts:34-178 | 默认 routes 为空;每个 profile 拥有 credential、endpoint、model catalog/override、reasoning、cache retention、transport、timeout、header 与 retry policy。 | 08 | 08 |
LLM-PI-PROVIDERPi AI catalog reuse 与手工协议表 | packages/llm/llm-pi-ai/src/provider.ts:35-191 | Catalog route 保留原 provider 的 API/auth;手工 route 只支持 openai-completions、openai-responses 与 anthropic-messages,并按配置构建。 | 08 | 08 |
LLM-PI-REPLAYPi AI 的版本化 adapter-private replay state | packages/llm/llm-pi-ai/src/replay.ts:15-215 | Durable content 保持权威,versioned state 只保存 API、响应 identity、stop reason 与 provider signature;读回时逐字段和逐 block 验证。 | 08 | 08 |
LLM-PI-STREAMPi AI exact-model 与 stream snapshot 边界 | packages/llm/llm-pi-ai/src/adapter.ts:217-357 | 未知 model 在 I/O 前失败;stop 不支持;一次调用固定 profile/model/credential,SDK retries 为零;image 需 model capability 与 durable attachment service。 | 08 | 08 |
LLM-PREPARED-CALLRegistration-bound 的一次性 PreparedLlmCall | packages/llm/llm/src/index.ts:771-814 | prepareCall 固定 resolved config、model context、adapter defaults 与 retry policy;stream 只能一次且拒绝 dispatch 前 config drift。 | 08 | 08 |
LLM-REPLAY-DERIVATIONKeyless 测试 replay script 的日志派生 | packages/test-support/llm-replay/src/index.ts:193-260 | 以每个 finish 切分 assistant chunks,同一 turn/step 可包含多次 retry call;抛错或挂起无法仅凭日志派生,必须用显式 sidecar。 | 08 | 08 |
LLM-REQUEST-INVARIANT-SCOPERequest reconstruction invariant 的字段覆盖 | packages/core/agent-loop/src/invariant.ts:35-55 | Invariant 比较 messages、model、system、temperature、maxTokens、stop 与 tools,但没有比较 provider 或 reasoningEffort。 | 08 | 08 |
LLM-RETRY-EXECUTOR耐久 retry 调度与可取消 backoff | packages/llm/llm-retry/src/index.ts:111-225 | 先写 llm/retry 再等待,等待结束写 llm/retry-started 才返回 retry;Retry-After 超 cap 时 normal 委派、always 回退本地延迟;disposal abort 并 drain。 | 08 | 08 |
LLM-RETRY-POLICYProvider-owned retry policy 默认值与校验 | packages/llm/llm/src/retry-policy.ts:14-191 | Normal 默认两次,覆盖 EMPTY_RESPONSE、RATE_LIMIT、SERVER、TIMEOUT、TRANSPORT,500ms 到 10s 指数退避和 10% jitter;always 无次数上限。 | 08 | 08 |
LLM-STREAM-PROTOCOL封闭的流式 chunk 与完整 request 协议 | packages/llm/llm/src/types.ts:283-355 | 流以 indexed block start/delta/end、usage 和唯一 terminal finish 表示;GenerateOptions 同时承载 config、system、tools、messages、session 与 auxiliary purpose。 | 08 | 08 |
LLM-TOKEN-USAGE-PROJECTION按 Turn/Step last-sample-replaces 的 usage 投影 | packages/llm/token-meter/src/usage-projection.ts:97-140 | Projection 只保留一个 last sample;同一 turn/step 的后续 usage 会从 totals 扣掉前样本再替换,设计目标是避免 chunk 与 final message 双计。 | 08 | 08 |
LOG-ATTEMPT-ASSEMBLY每次模型尝试的 raw chunk 与语义消息提交 | packages/core/agent-loop/src/agent.ts:332-400 | 每次请求从当前 Surface 派生消息;所有 chunk 先逐条入日志,成功后才追加引用这些 seq 的 assistant/message,失败并重试时不提交语义消息。 | 10 | 10 |
LOG-CHECKPOINT-POLICY模型与工具副作用前的语义 durability checkpoint | packages/session/session-checkpoint-policy/src/index.ts:20-82 | 策略在模型 stream 构造、顶层工具 body 和每个 pre-step 前 flush;checkpoint 失败时 adapter 或工具副作用体不会运行,嵌套 tool dispatch 复用外层边界。 | 10 | 10, 12, 33 |
LOG-CLIENT-ASSISTANT客户端 assistant 流、retry 与 interruption 投影 | packages/client/ui-conversation/src/client/conversation-nodes/assistant.ts:72-205 | 客户端按 chunk 增量折叠;llm/retry 隐藏并清空失败 attempt 的局部内容但保留 first-token time;有 chunk 证据却无最终消息时可在闭合边界合成 interrupted node。 | 10 | 10 |
LOG-CLIENT-STITCHHistory window、live buffer、去重与 gap repair | packages/client/runtime/src/client/sessions/session.ts:614-729 | 客户端先装 tail page,再按 seq 拼接订阅期间 buffer;重叠事件丢弃,发现 seq hole 就缓存并重新拉 tail page,避免向 conversation engine 注入不连续窗口。 | 10 | 10, 12 |
LOG-CONVERSATION-ASSEMBLER连续 raw window 上的增量 UI business-context engine | packages/client/runtime/src/client/sessions/conversation-assembler.ts:133-248 | Assembler 在 replaceWindow 时全量重建,在 append 时只处理 tail,在 prepend 时补旧页并保持已有 context/view identity;业务 Definition 决定事件如何成为 UI node。 | 10 | 10 |
LOG-CORE-FORKCore Fork 的 live-source 与平衡前缀规则 | packages/core/session/src/index.ts:1067-1153 | Core 只允许从当前 live Session 复制 inclusive prefix;边界必须存在且连续,不能落在 open turn 内,child 继承 cwd、parentSession 和精确 seedLength。 | 10 | 10 |
LOG-HISTORY-CONTRACTHistory raw-entry 与 Fork wire-level 契约 | packages/host/apiproxy/src/api/sessions.ts:59-338 | History 返回 raw event 加可选即时 tool view,分页按 append-origin message group,tail 含 partial,冷读不 resume Agent;Fork 的 atSeq 是 completed-turn anchor。 | 10 | 10 |
LOG-HISTORY-CUT历史事件与 projection baseline 的同一同步 cut | packages/host/apiproxy/src/api-proxy.ts:1533-1574 | Attached history 复制 live events,cold history 使用 inspect;所有 await 之后同步读取 events 与 projection watermark,避免一个响应混用 N 与 N+1 两个时刻。 | 10 | 10, 12 |
LOG-HISTORY-PAGINATION按 append-origin message group 的连续 raw 分页 | packages/host/apiproxy/src/api-proxy.ts:282-313 | 算法向后计数 append-origin user/assistant message,replacement 不占 quota,并用 sourceEventSeqs 把 cut 扩到 raw chunk group 起点,因此不在一个 assistant attempt 中间切页。 | 10 | 10 |
LOG-HISTORY-SCHEMAHistory 请求和响应的 wire validation | packages/host/apiproxy/src/api/sessions.schema.ts:141-242 | beforeSeq 与 maxMessages 只校验非负/正整数,maxMessages 没有上限;响应逐 entry 校验 raw event 与可选 view,但 transport schema 不声明连续窗口 invariant。 | 10 | 10 |
LOG-HISTORY-VIEWTool view 的分页时计算与跨页 soft fallback | packages/host/apiproxy/src/api-proxy.ts:804-820 | History 只在当前 raw page 内回扫 tool/call 参数,再用当前 presenter 生成 view;call 位于旧页或参数不可解析时返回 undefined,让客户端使用 generic card。 | 10 | 10 |
LOG-HOST-FORKHost Fork 的消息锚点与 composition 继承 | packages/host/apiproxy/src/api-proxy.ts:2363-2458 | atSeq 选择其所在 Turn 的首个 turn/end,再包含下一 turn/start 前的独立事件;child 继承 cwd、lineage、seedLength 与当前 composition,创建后 workspace attach 失败不会撤销已发布 child。 | 10 | 10 |
LOG-PERSISTENCE-ADMISSIONSession 创建后的异步持久化 admission | packages/session/session-persistence/src/coordinator.ts:1084-1181 | session/created listener 以 fire-and-observe 方式启动 initFor;session/event 进入 write-behind;session/flush 是显式 barrier,fork seed 的物理存储不与 child publication 构成原子事务。 | 10 | 10 |
LOG-PERSISTENCE-READ-FACESprepare、load、inspect 与 readFrom 的四种读契约 | packages/session/session-persistence/src/coordinator.ts:720-889 | prepare 预留唯一可发布 Session 并提交恢复;load 提交恢复后返回平衡视图;inspect 只做逻辑恢复不发布不写盘;readFrom 返回物理存储 suffix 且不做恢复。 | 10 | 10, 12 |
LOG-PREPARED-COMMITPrepared repair 的 revision 校验与精确提交 | packages/session/session-persistence/src/coordinator.ts:891-990 | Cold source 读取后合成 closers 并通过 Session seed 校验;commitRepair 后因 revision 已变化而重新加载,避免把旧内存图错误绑定到新 revision;live load 先 flush 且拒绝 open turn。 | 10 | 10, 12 |
LOG-QUERY-TRACESurface replacement、source 与 Session lineage 查询 | packages/session-query/session-query/src/tracing.ts:21-218 | Query 先用 canonical Surface fold 把事件标为 current/shadowed/log-only,再返回 replacement chain、直接 source/derived links;Session lineage 沿 header parent 建祖先与递归后代并显式报告缺失 parent。 | 10 | 10, 14 |
LOG-RAW-EXPORTFlush 后逐字节导出 raw artifact 与 lineage media | packages/host/apiproxy/src/session-export.ts:1-265 | 导出每个 live Session 前先过权威 flush barrier,再把后端 artifact 原文、可选后代日志与去重后的引用媒体流式写入 ZIP;导出不重新投影 UI 或 Surface。 | 10 | 10 |
LOG-REPAIR-CLOSERS崩溃尾部的确定性合成闭合事件 | packages/core/session/src/repair.ts:18-132 | 修复只扫描尾部 open turn;未记录开始的调用写 TOOL_NOT_STARTED,已记录 call 却无 result 写 TOOL_OUTCOME_UNKNOWN,随后按需补 step/end 和 interrupted turn/end,沿用最后真实时间并连续编号。 | 10 | 10 |
LOG-WRITE-BEHIND每 Session write-behind 队列与显式 quiescence barrier | packages/session/session-persistence/src/write-behind.ts:18-158 | 事件被克隆进固定 deadline 队列;稳定 batch 写失败会按原顺序放回并暂停自动重试;并发 flush 共享 barrier,显式重试直到队列和 active write 都静止。 | 10 | 10, 12 |
LOOP-DRIVER-PRESTEPDriver containment 与 pre-step 准备 | packages/core/agent-loop/src/agent.ts:195-243 | kick 把 turn 失败和取消收敛到 driver 边界;preStep 先 claim、组装 prompt、投影动态上下文,再进入 agent/pre-step waterfall。 | 06 | 06 |
LOOP-REQUEST-BUILD可重建冻结请求的构建 | packages/core/agent-loop/src/agent.ts:403-495 | request waterfall、exact-adapter prepareCall、adapter default 标记、request/header、request/context 与最终 frozen marked request 的顺序。 | 06 | 06, 07, 08 |
LOOP-REQUEST-INVARIANTLLM 请求的日志重建不变量 | packages/core/agent-loop/src/invariant.ts:18-55 | 对 loop-marked request 检查冻结、live session、step/header 存在,并独立对比 deriveMessages 与 folded header。 | 02 | 02, 06, 07, 33 |
LOOP-RUNTIME-CONTEXT动态 runtime context 投影 | packages/core/agent-loop/src/runtime-context.ts:24-75 | 从 retained surface 恢复最近 snapshot,监听 replacement,只有内容变化时生成未提交 user message,空集合用 cleared marker 覆盖旧语义。 | 06 | 06, 07 |
LOOP-STEP-STATEStep 的模型流与工具续跑 | packages/core/agent-loop/src/agent.ts:332-400 | 每次 request 从 deriveMessages 构建,chunk 逐条落日志,成功必写 assistant/message;max-tokens、无工具、工具 concluded 与继续下一步分支明确。 | 06 | 06, 08 |
LOOP-TURN-STATETurn 状态机与结束原因 | packages/core/agent-loop/src/agent.ts:245-330 | turn/start 先于 claim;reject、空首步、step 循环、turn-stopping、异常归一化、turn/end 与连续 queued turn 的全部分支。 | 02 | 02, 06, 33 |
MEMORY-AGENT-CONTEXT从 pre-step 到 Provider request 的模型上下文构造 | packages/core/agent-loop/src/agent.ts:225-494 | Agent 认领输入并组装 system/runtime context,经 waterfall 接受后把 user/context message 写入 Session;每次请求只使用 deriveMessages() 的当前 Surface,并耐久记录 route、system 与 tools header。 | 14 | 14 |
MEMORY-JSONL-PERMISSIONSJSONL 的 owner-only 与不覆盖发布路径 | packages/session/session-persistence-jsonl/src/index.ts:528-615 | POSIX materialization 以 0700 建目录、0600 建同步临时文件,通过 link 和目录 fsync 发布,并拒绝覆盖既有 Session 日志。 | 14 | 14 |
MEMORY-PERSISTENCE-FLUSHSession write-behind、flush barrier 与 disposal drain | packages/session/session-persistence/src/coordinator.ts:1117-1160 | 每个 frozen event 进入 persistence-owned bounded write queue,session/flush 是即时耐久屏障,Session disposal 会 drain 写入后再释放 lifecycle state。 | 14 | 14 |
MEMORY-PERSISTENCE-TRANSACTION耐久 append commit 与 exact prepare/load | packages/session/session-persistence/src/coordinator.ts:690-774 | Coordinator 校验 seq 连续性,只有 backend batch commit 后才推进 durable cursor;prepare/load 通过 reservation 和稳定日志取得精确恢复视图。 | 14 | 14 |
MEMORY-QUERY-CORPUSSession query 的 live-first logical corpus | packages/session-query/session-query/src/corpus.ts:53-220 | Query 列举 persistence 与 live Session 时以 live 覆盖,单目标始终优先 detached live snapshot;cold batch 有界并发、逐项隔离失败,并在 persistence read 后重查 attach race。 | 14 | 14 |
MEMORY-QUERY-DOCUMENTSRaw log 到 current/shadowed/log-only 搜索文档 | packages/session-query/session-query/src/documents.ts:15-74 | Document builder 对完整 raw log 使用 canonical Surface fold,为每个可搜索事件保留 Session、seq、type、time、surface classification 与抽取文本。 | 14 | 14 |
MEMORY-QUERY-EXTRACTION第一方 Session 搜索文本抽取规则 | packages/session-query/session-query/src/extraction.ts:13-82 | 抽取包含 user/assistant text、tool name/arguments/results、Todo 与部分 Turn error,排除 reasoning、raw chunk、request header、未知 event/block;user/message 路径不检查 source。 | 14 | 14 |
MEMORY-QUERY-SQLITE-MODEopenAt 模式与完全关闭全文搜索的分支 | packages/session-query/session-query-sqlite/src/index.ts:85-331 | openAt 可为 startup、first-search 或 never;never 保留继承的 exact read/filter/trace,但在 import/open SQLite 前确定性拒绝两个全文搜索 API。 | 14 | 14 |
MEMORY-QUERY-SQLITE-SCHEMAOwner-only 的可丢弃 SQLite FTS5 派生索引 | packages/session-query/session-query-sqlite/src/schema.ts:27-169 | 持久数据库目录/文件以 0700/0600 创建,拒绝外来数据库并可重建旧派生 schema;persistent/live 文档以 unicode61 FTS5 明文表保存。 | 14 | 14 |
MEMORY-QUERY-TOOL-AUTHSession query 模型工具的 workspace 授权与复查 | packages/session-query/tool-session-query/src/workspace-access.ts:54-233 | Caller 必须来自 exec.agent;self 可读,跨会话必须 exact cwd match,批量 ID 先过滤,读取后的 header 再校验,未经授权的 lineage 子树被折叠为 null marker。 | 14 | 14 |
MEMORY-REFERENCE-PROJECTIONSession reference 的文本投影与精确 UTF-8 retention | packages/context/session-reference/src/projection.ts:35-171 | Projection 只保留直接用户、assistant text 与 canonical checkpoint;工具和注入上下文被排除,超预算时先丢旧非 checkpoint 消息,再 head/tail 截断并记录精确遗漏字节。 | 14 | 14 |
MEMORY-REFERENCE-RESOLVER显式跨会话快照的候选、预算与注入 | packages/context/session-reference/src/index.ts:42-217 | Resolver 把来源标为 untrusted read-only,默认最多 3 个引用、50 个候选和每来源 65536 bytes;候选 cwd 只排序,prepare 按精确 ID 读取 Surface 并产生一个带来源 user context。 | 14 | 14 |
MEMORY-SKILL-FILESYSTEM-CONFIGFilesystem Skill provider 的顺序、watch 默认值与名称漂移 | packages/skill/skill-filesystem/src/index.ts:36-100 | 配置定义项目/custom/用户 rank,默认 watch、follow symlinks 和 128 个 project watchers;JSDoc 称 providerName 默认 local,而 schema 实际默认 filesystem。 | 14 | 14 |
MEMORY-SKILL-FILESYSTEM-LOADSkill 文件发现、frontmatter 解析与无 body cap 读取 | packages/skill/skill-filesystem/src/index.ts:719-885 | 扫描仅接受 flat .md 或一层目录 SKILL.md,解析 name/description/invocation 并保留完整 trimmed body;Node 与 policy filesystem read 路径都没有 Skill-level byte cap。 | 14 | 14 |
MEMORY-SKILL-FILESYSTEM-ROOTSProject、custom、user 与 bundled Skill roots | packages/skill/skill-filesystem/src/index.ts:241-260 | Provider 从最近项目的 .dsh/skills 与 .agents/skills 开始,再加入 custom roots、两个用户 roots 与可选 trusted bundled root。 | 14 | 14 |
MEMORY-SKILL-HOST-UIHost skill.list 的 Session scope 与 user-invocable 过滤 | packages/host/apiproxy/src/api-proxy.ts:3205-3257 | Host 不创建或 resume Agent,只从 attached Session header 解析 cwd,并按 live/preset scope 读取 registry,最终只返回 user-invocable Skill 的 wire projection。 | 14 | 14 |
MEMORY-SKILL-INVOCATIONSkill catalog、model load 与用户显式注入 | packages/skill/tool-skill/src/index.ts:27-430 | 每条 catalog description 默认 cap 500,但 whole catalog 无总量 cap;模型工具与 user gesture 都复查 invocation policy,完整正文按需加载,只有 direct-user 的空白边界 /name 可产生耐久 instructions context。 | 14 | 14 |
MEMORY-SKILL-REGISTRY分层 Skill registry、shadowing 与按需加载 | packages/skill/skill/src/index.ts:327-619 | Registry 合并 global 与 scope chain,最近 scope 的同名项覆盖远层、层内按 rank 去重;list/snapshot 返回摘要,get 按需向 winning provider 加载完整定义。 | 14 | 14 |
MEMORY-WEB-HOST-GATEWeb Session 可见 baseline、搜索 hit gate 与错误边界 | packages/host/apiproxy/src/api-proxy.ts:1720-2162 | Host 以 attached 与带 cwd 的可服务 cold Session 构造可见集合,搜索只接受该集合中的 current user/assistant hit;失败响应仍拼接底层错误,并注明多用户部署前应 redact。 | 14 | 14 |
MULTIAGENT-ACP-PROVIDERACP 外部 provider 边界 | packages/subagent/subagent-acp/src/index.ts:124-170 | ACP child 在外部进程启动、声明零 start capability、无父对话,并使用配置的 cwd override 或父 Session cwd 运行 one-shot。 | 24 | 24 |
MULTIAGENT-ACTIVATION-DISPOSALActivation top-down cancel 与 child-first release | packages/subagent/subagent/src/continuation.ts:1270-1380 | Disposal 先安装 admission cutoff,再同步 top-down cancel、并行 child disposal、等待 idle/flush,最后 child-first 释放 handle、通知 parent 并 release ownership。 | 24 | 24 |
MULTIAGENT-ACTIVATION-MODELContinuable Activation 数据模型 | packages/subagent/subagent/src/continuation.ts:151-240 | Activation 状态由 Agent quiescence 与 owned children 推导;每个 epoch 持有 exact handle、ancestry、accepted IDs、所有权集合与 memoized disposal。 | 24 | 24 |
MULTIAGENT-ACTIVATION-OWNERSHIPParent ownership 与 acceptance gap | packages/subagent/subagent/src/continuation.ts:1094-1174 | Continuation-managed parent 在 child 运行前 acquire ownership;accepted IDs 在同步 inbox send 前登记,阻止父/child 在 admission 微任务窗口提前 settle。 | 24 | 24 |
MULTIAGENT-ASSISTANT-OUTPUTCanonical child assistant output | packages/subagent/subagent/src/assistant-output.ts:1-74 | 统一规则选择最后一条非空 assistant message,否则使用累计 text delta;选择与 stop reason 无关。 | 24 | 24 |
MULTIAGENT-CHILD-COMPOSITIONChild-scoped composition | packages/subagent/subagent/src/child-agent.ts:130-175 | 每个 in-process child 先加入父 preset,再注入固定 delegation context,并在 child scope 叠加 persona 与工具限制。 | 24 | 24 |
MULTIAGENT-CHILD-INHERITANCEChild options 与 durable lineage | packages/subagent/subagent/src/child-agent.ts:38-120 | Child 默认继承 provider/model/maxTokens;持久 header 记录 cwd、parentSession、origin、delegationDepth,存在 seed 时记录非零 seedLength,并记录父级当前 live composed preset 的 ID。 | 24 | 24 |
MULTIAGENT-CHILD-LOCKPer-child linearization lock | packages/subagent/subagent/src/continuation.ts:319-340 | ChildLock 按 durable child ID 串行 operation,并吸收一个 critical section 的 rejection,避免污染后续调用。 | 24 | 24 |
MULTIAGENT-CLAUDE-PROVIDER固定 Claude Code one-shot provider | packages/subagent/subagent-claude-code/src/index.ts:50-112 | Claude Code provider 声明零能力、无父对话,解析 CLI executable,并在父 workspace 中通过共享 subprocess owner 执行 one-shot run。 | 24 | 24 |
MULTIAGENT-CODEX-PROVIDER固定 Codex one-shot provider | packages/subagent/subagent-codex/src/index.ts:47-100 | Codex provider 固定名称、零 start capability、无父对话;它要求父 Session cwd 并通过 subprocess service 启动每个 run。 | 24 | 24 |
MULTIAGENT-CODEX-RUNCodex app-server one-shot run lifecycle | packages/subagent/subagent-codex/src/run.ts:28-199 | 每个 run 固定 spawn app-server,在 initialize 与 ephemeral thread 成功后才发布,随后运行一个 text-only Turn;dispose 关闭协议并回收进程树。 | 24 | 24 |
MULTIAGENT-CODEX-UNATTENDEDCodex 无人值守请求与 notification 过滤 | packages/subagent/subagent-codex/src/wire.ts:294-373 | Approval 只 cancel/decline,permission/user-input 为空,MCP elicitation 拒绝;notification 绑定 exact thread/Turn,忽略 commentary 并保留最后 final answer。 | 24 | 24 |
MULTIAGENT-CODEX-WIRECodex handshake、ephemeral thread 与结果选择 | packages/subagent/subagent-codex/src/wire.ts:128-373 | Wire 执行 initialize/initialized,强制 ephemeral thread,提交一个 Turn,将 contextWindowExceeded 映射 max-tokens,并选择 last final 或 unphased answer。 | 24 | 24 |
MULTIAGENT-COLD-RESUMEProvider-independent cold resume | packages/subagent/subagent/src/continuation.ts:876-932 | Cold resume inspect 持久 Session、先验证 exact direct parent、只 fold child suffix descriptor,再直接 materialize/resume;不调用原 provider。 | 24 | 24 |
MULTIAGENT-CONTINUABLE-STARTContinuable child 的启动事务 | packages/subagent/subagent/src/continuation.ts:388-457 | Manager 预留 ID、快照 descriptor/policy、准备 seed、materialize child,并仅在初始消息被 inbox 接受后返回 childId/messageId;之前失败完全回滚。 | 24 | 24, 33 |
MULTIAGENT-CONTROL-TOOLSsend_message 与 interrupt_agent | packages/subagent/tool-subagent-control/src/index.ts:25-119 | send_message 以 exact caller Agent 作为 direct-parent authority 并只返回 messageId;interrupt_agent 以 exact ancestor authority 请求取消且立即返回。 | 24 | 24 |
MULTIAGENT-DELEGATED-POLICY委派策略的捕获与持久化 | packages/subagent/subagent/src/child-agent.ts:177-225 | 对应 service 存在时,委派捕获父 Session 显式 sandbox override,并把 approval 钉为 never;只有已定义的 override 才写入 child log。 | 24 | 24 |
MULTIAGENT-DEPTH单调 delegation depth | packages/subagent/subagent/src/depth.ts:18-50 | 有效 depth 是持久 header 与 runtime option 的较大值;cap 必须是非负安全整数,防止恢复 child 将自己降回顶层。 | 24 | 24 |
MULTIAGENT-DESCRIPTORVersioned durable subagent descriptor | packages/subagent/subagent/src/descriptor.ts:1-88 | Model-hidden v2 descriptor 区分 one-shot/continuable;continuable 保存恢复 composition,但有意省略 subagentDepth、outputSchema 与 maxTokens。 | 24 | 24 |
MULTIAGENT-DESCRIPTOR-FOLDDescriptor 的 strict parse、snapshot 与 fold | packages/subagent/subagent/src/descriptor.ts:195-314 | 当前版本 descriptor 严格验证字段,创建前做 lossless JSON snapshot;在给定 event slice 中第一个 descriptor 是 authoritative。 | 24 | 24 |
MULTIAGENT-DESCRIPTOR-PROJECTIONFork seed 中 descriptor 的 last-wins projection | packages/subagent/subagent/src/projection.ts:111-155 | Identity projection 对 descriptor last-wins,让 child 自己的 descriptor 覆盖 seed 中祖先身份;坏或未知版本重置为 null。 | 24 | 24 |
MULTIAGENT-DESCRIPTOR-SEEDContinuable descriptor 的 between-Turn seed | packages/subagent/subagent/src/descriptor-seed.ts:13-30 | Continuable child 的 creation seed 由可选继承前缀和一个 model-hidden between-Turn descriptor 组成,并通过 Session 接受规则分配 seq。 | 24 | 24 |
MULTIAGENT-DRAINManager 与 scoped forest drain | packages/subagent/subagent/src/continuation.ts:695-803 | Drain 在首个 await 前封 admission,等待 materialization 边界,按 roots 销毁 forest;scoped drain 同步打开全部取消事务并在所有分支后聚合失败。 | 24 | 24 |
MULTIAGENT-FINAL-FLUSHBest-effort final flush 与 persistence requirement | packages/subagent/subagent/src/continuation.ts:1451-1478 | Activation quiescent 后请求 final Session flush;失败只记录恢复可能 stale 的 warning,不阻止释放;新 continuable start 要求 persistence service。 | 24 | 24 |
MULTIAGENT-FOLLOWUPContinuable follow-up 路由 | packages/subagent/subagent/src/continuation.ts:459-505 | 同一 child 的消息通过锁线性化:resident 时 enqueue/wake,absent 时 cold resume;caller signal 只作用到 inbox acceptance。 | 24 | 24 |
MULTIAGENT-FORK-PROVIDERIn-process fork provider 与 continuable 注释 | packages/subagent/subagent-fork-in-process/src/index.ts:40-94 | Fork 只复制到最后 turn/end 的平衡前缀、支持全部四项能力并实现 prepareContinuable;源码注释同时称没有 shipped continuable caller。 | 24 | 24 |
MULTIAGENT-INBOX-SPLICEInbox splice 先于 live 更新耐久提交 | packages/core/agent/src/inbox.ts:128-192 | Inbox splice 先 append durable agent/inbox/spliced,成功后才更新 live inbox 并发布 inserted 通知。 | 24 | 24 |
MULTIAGENT-INTERRUPTCurrent-Turn interrupt 语义 | packages/subagent/subagent/src/continuation.ts:507-568 | 对 live target,Interrupt 在 exact parent/ancestor 授权后执行 keepInbox cancel 并立即返回;Activation、未认领消息与 descendants 保留。Absent target 是 no-op,lookup 前只检查 ancestor caller liveness。 | 24 | 24 |
MULTIAGENT-INVARIANTSSubagent registry 与 lifecycle invariants | packages/subagent/subagent/src/invariant.ts:14-84 | Invariant companion 检查 provider add/remove、没有重复的 live runId、start/end pairing,以及 provider、child id 与 local 标志一致。 | 24 | 24 |
MULTIAGENT-JOB-CAPACITY后台 Job 的 owner capacity | packages/jobs/jobs-local/src/index.ts:126-150 | Job start 按 owner 统计 active task,并在达到已配置的 per-owner 上限时拒绝新 Job。 | 24 | 24 |
MULTIAGENT-LIFECYCLEOne-shot 与 Activation epoch lifecycle | packages/subagent/subagent/src/lifecycle.ts:76-217 | Listener failure 被逐个隔离;one-shot run 与每个 continuable residency epoch 都生成配对 start/end,cold resume 使用新的 runId 并只统计 epoch suffix。 | 24 | 24, 33 |
MULTIAGENT-LIST-CONCURRENCYListing 冷读并发上限 | packages/subagent/subagent/src/list-children.ts:27-32 | 本地持久化的 read-only cold inspection 以常量 4 限制并发。 | 24 | 24, 33 |
MULTIAGENT-LIST-SERVICEDurable child/descendant enumeration | packages/subagent/subagent/src/list-children.ts:117-409 | Listing 合并 live 与 persistence corpus,通过 projection 分类,并把单 child read/fold damage 降级成 diagnostic,而不读取 Activation/provider state。 | 24 | 24 |
MULTIAGENT-LIST-TOOLlist_agents 状态与过滤 | packages/subagent/tool-subagent-control/src/list-agents.ts:52-105 | 模型状态 running/idle/ready 来自 live registry;ready 表示 storage-only resumable,one-shot 被过滤,descendant depth 限定 follow-up/interrupt 选择。 | 24 | 24 |
MULTIAGENT-ONE-SHOT-DRIVERIn-process one-shot driver | packages/subagent/subagent-in-process-driver/src/index.ts:78-205 | Driver 在未发布 setup 中应用 policy/composition 并安装 descriptor append hook;descriptor event 在发布后首个进入的 pre-step 追加,随后只提交一个 prompt、等待 idle,并以幂等 dispose 释放 handle。 | 24 | 24 |
MULTIAGENT-ONE-SHOT-RESULTOne-shot result 的 suffix 与 stop reason | packages/subagent/subagent-in-process-driver/src/index.ts:207-233 | 结果只读 child-owned suffix,保留最后输出并从实际 Turn end 映射 stop reason;请求 schema 但 completed 时无 capture 会改判 error。 | 24 | 24 |
MULTIAGENT-OUTPROCESS-SETTLEMENT外部 run 的失败归一化与幂等 teardown | packages/subagent/subagent/src/out-of-process.ts:155-215 | 发布后 attempt rejection 被归一化为 aborted/error result 并保留 partial output;Subprocess run handle 的 dispose memoize teardown 并等待实际退出。 | 24 | 24 |
MULTIAGENT-PRESET-INHERITANCEChild 加入父级 exact preset generation | packages/preset/agent-presets/src/index.ts:290-325 | composeFrom 绑定父级已存在的 standing composition,同享相同 plugin instance、工具与 prompt section,不重新读取 preset roster。 | 24 | 24 |
MULTIAGENT-REPORT-DELIVERYReport authority 与 parent scheduling | packages/subagent/subagent/src/continuation.ts:570-693 | 只有 exact resident child 可报告;recipient 从 durable direct parent 解析,wakeup 用 followup、quiet 用 inject,报告本身不改变 Activation lifetime。 | 24 | 24 |
MULTIAGENT-REPORT-TOOLContinuable child-scoped report 工具 | packages/subagent/tool-subagent-report/src/index.ts:40-142 | Report tool/prompt 只安装到 continuable in-process child scope;只发送 selected content 给 direct parent,不结束 Turn,并有事务化注册/清理。 | 24 | 24 |
MULTIAGENT-RUN-SETTLEMENTOne-shot background Job settlement | packages/subagent/subagent/src/run-settlement.ts:21-63 | Completed 才输出 final text,aborted 映射 killed,其余 reason 映射 failed;无论结果如何都会 dispose,双重失败保留两项 detail。 | 24 | 24 |
MULTIAGENT-RUNTIME-DISPATCHProvider dispatch 前的验证边界 | packages/subagent/subagent/src/index.ts:404-495 | Service 在 provider.start 前验证 provider 存在、能力、深度、schema 与 descriptor;startup reject 不发布 lifecycle,continuable capability 由 prepareContinuable 方法存在性决定。 | 24 | 24 |
MULTIAGENT-SDK-PROVIDER独立 SDK runtime provider | packages/subagent/subagent-dsh-sdk/src/index.ts:1-119 | SDK provider 启动自带 composition/model/tools 的完整外部 runtime,声明零父级可强制能力且不继承父对话。 | 24 | 24 |
MULTIAGENT-SEAMSubagent capability 与 provider seam | packages/subagent/subagent/src/types.ts:75-323 | Provider 显式声明四项启动能力、父对话继承属性、one-shot start 与可选 prepareContinuable;不同 child 可并发且 continuable 生命周期由 manager 而非 provider 拥有。 | 24 | 24 |
MULTIAGENT-SETTLEMENT-NOTICEContinuable settlement notice | packages/subagent/subagent/src/continuation.ts:1382-1448 | 每个已公布 ID 的 child 都尝试独立于 report 投递 stop summary 与 closing output;parent 不 live 时静默跳过,投递失败时记录并丢弃,均不阻塞 teardown。 | 24 | 24 |
MULTIAGENT-SPAWN-PROVIDERIn-process spawn provider | packages/subagent/subagent-spawn-in-process/src/index.ts:34-64 | Spawn 支持全部四项能力、不会 seed 父对话,同时实现 one-shot start 与 fresh continuable preparation。 | 24 | 24 |
MULTIAGENT-STRUCTURED-OUTPUTChild structured output 的两阶段提交 | packages/subagent/subagent-in-process-driver/src/structured.ts:49-141 | Child scope 安装 schema tool、prompt 与 guard;值先 staged,只有 authoritative tool result(以及 Code Mode 外层结果)成功后才提交。 | 24 | 24 |
MULTIAGENT-TOOL-CONCURRENCY委派工具的并发安全与并行提示 | packages/subagent/tool-subagent/src/index.ts:366-465 | 工具声明 concurrency-safe,因为 children 不改父 Session;continuable prompt 鼓励同一 assistant message 启动独立委派。 | 24 | 24 |
MULTIAGENT-TOOL-CONFIG委派工具配置与默认深度 | packages/subagent/tool-subagent/src/index.ts:28-99 | 工具实例配置 provider、toolName、backgroundMode、Agent options、persona/filter 与 maxDepth;loader 默认深度为 3,并允许 provider-managed。 | 24 | 24 |
MULTIAGENT-TOOL-ROUTES委派工具的三条执行路线 | packages/subagent/tool-subagent/src/index.ts:246-429 | run_in_background 与 backgroundMode 选择 foreground one-shot、Job-backed one-shot 或 continuable background;三者返回值和提交点不同。 | 24 | 24 |
OBS-ANON-IDHarness-home 匿名 UUID | packages/identity/anonymous-user-id/src/index.ts:1-100 | 随机 UUID 尝试按 home 持久并在进程内缓存;持久化收敛后后续进程复用,首次并发有窄竞态,不可写时仅当前进程稳定;它不从主机或网络派生。 | 28 | 28 |
OBS-DURABLE-FAILURELive agent error 与 durable turn closure | packages/core/agent-loop/src/agent.ts:202-323 | Agent 在重抛前发出带坐标的 live error,driver containment 后仍在 finally 中记录结构化 turn/end。 | 28 | 28 |
OBS-FEEDBACK-DISCLOSUREFeedback 记录与 sharing disclosure | packages/feedback/command-feedback/src/index.ts:1-106 | Feedback 是不启动模型、未同步 flush 的 log-only event;确认文本区分四种 sharing 状态。 | 28 | 28 |
OBS-HARD-OPTOUT最终 telemetry hard opt-out | apps/cli/src/profile-boot.ts:56-170 | 在 apps/cli profile composition 中,任何非空 DSH_TELEMETRY_DISABLED 都在 profile、home 与 CLI overlay 后 patch 固定 row id session-telemetry-otel;其他 row id/backend 不受该 patch 约束。 | 28 | 28 |
OBS-HISTORY-APIRaw history 分页契约 | packages/host/apiproxy/src/api/sessions.ts:264-283 | 页面按 message origin 对齐,包含 raw event 与 host view;只有 tail 带 partial/projection,读取不会 resume Agent。 | 28 | 28 |
OBS-HISTORY-CLIENT客户端连续窗口与 gap repair | packages/client/runtime/src/client/sessions/session.ts:376-723 | Load-older 检查相邻 sequence,live 按 seq 去重,gap 时 buffer、重拉 tail 并拼接;不连续页与 transport exception 写 console,RPC error result 静默保留窗口。 | 28 | 28, 33 |
OBS-HOST-FAILUREHost live failure frame | packages/host/apiproxy/src/api/events.ts:110-154 | 定义只有 session id/message、没有 turn position 的 transient host/agent-error,并称其为该类 live failure 的唯一出口。 | 28 | 28 |
OBS-OPS-LOGSTelemetry 故障 containment 日志 | packages/session/session-telemetry/src/coordinator.ts:112-267 | Backend shutdown 与逐步 capture 故障只写本地 warning,不影响 agent loop 或应用 teardown。 | 28 | 28 |
OBS-OTEL-PIPELINEOTel Logs 管线与字段映射 | packages/session/session-telemetry-otel/src/index.ts:197-232 | 构建 LoggerProvider、BatchLogRecordProcessor 与 OTLP log exporter,设置 resource、双 scope、时间、severity、body 与 attributes。 | 28 | 28 |
OBS-OTEL-SHUTDOWNBatch ownership 与有界 shutdown | packages/session/session-telemetry-otel/src/index.ts:265-298 | Backend 不实现 flush;provider shutdown 与外层 deadline 竞速,deadline 无法取消 SDK transport。 | 28 | 28 |
OBS-PERSISTENCE-DIAGNOSTIC后台持久化失败诊断 | packages/session/session-persistence/src/coordinator.ts:1325-1350 | 后台 write 失败写 warning,并明确 buffered events retained;显式 flush 仍传播失败。 | 28 | 28 |
OBS-PROJECTION-DEGRADEProjection fail-soft 降级 | packages/host/apiproxy/src/api-proxy.ts:847-898 | session.list 与 subagent.history 的 projection helper 会在失败时记录 warning,并返回 undefined 以继续服务不含 projection block 的响应。 | 28 | 28 |
OBS-QUERY-AUTHWorkspace 授权与 lineage 剪枝 | packages/session-query/tool-session-query/src/workspace-access.ts:54-203 | Caller 来自 Agent;self 或精确 cwd equality 才授权,observed header 再检查,未授权 subtree 变 null marker。 | 28 | 28 |
OBS-QUERY-CORPUSLive-preferred logical corpus | packages/session-query/session-query/src/corpus.ts:31-116 | 单目标 exact load 对已知 live target 不查 persistence;corpus-wide 操作不享有该保证。Persisted exact target 经 list/inspect,仍 detached 才检查 header compatibility,late live attach 则直接胜出。 | 28 | 28 |
OBS-QUERY-CURRENT-BOUNDARY当前 step 的自搜索边界 | packages/session-query/tool-session-query/src/operations.ts:116-166 | 当前 session 的 event search 把上界截到最近 step/start 之前,并对返回 header 再授权。 | 28 | 28, 33 |
OBS-QUERY-DIAGNOSTICSession-query 完整本地诊断 | packages/session-query/tool-session-query/src/service-boundary.ts:116-171 | Service boundary 尽力在本地渲染可打印的完整 stack/cause chain,不可打印值使用固定 placeholder,并防守循环 cause 与诊断自身失败。 | 28 | 28 |
OBS-QUERY-SANITIZE模型边界错误净化 | packages/session-query/tool-session-query/src/service-boundary.ts:19-171 | 保留 caller cancellation;尽力在本地记录可打印的完整诊断,不可打印时用固定 placeholder;向模型只返回 allowlisted stable code/message 或 generic failure。 | 28 | 28 |
OBS-QUERY-SERVICE统一 session-query 服务 | packages/session-query/session-query/src/index.ts:74-345 | Exact read/filter/trace 为 backend-independent;完整读取 replay-validate,并提供 surface、lineage、event trace 与 bounded raw window。 | 28 | 28 |
OBS-QUERY-TRACEEvent relationship 与 session lineage | packages/session-query/session-query/src/tracing.ts:21-213 | 计算 replacement/source/derived 关系、current/shadowed/log-only classification,以及含 unresolved/cycle 语义的 ancestry/descendants。 | 28 | 28 |
OBS-RAW-FRAMESRaw mux、transient projection 与 remote frame | packages/host/apiproxy/src/api/events.ts:65-154 | Mux 直接携带 raw session event;projection 是可重算的 transient push;allowlisted remote frame 不做 redaction。 | 28 | 28 |
OBS-REQUEST-HEADER请求头快照的组装与记录 | packages/core/agent-loop/src/agent.ts:407-470 | Agent 从有效模型配置、完整 system prompt 与工具目录组装 header,并按 initial、resume、change 记录。 | 28 | 28 |
OBS-SESSION-HISTORY-PROJECTION普通 session history 的直接 projection 路径 | packages/host/apiproxy/src/api-proxy.ts:1555-1573 | 普通 session.history cut 直接调用 live snapshot 或 detached restore,没有 list/subagent helper 的 catch。 | 28 | 28 |
OBS-SESSION-LIST-PROJECTIONSession list baseline 调用 fail-soft projection helper | packages/host/apiproxy/src/api-proxy.ts:1720-1764 | session.list 的 attached 与 cold summary baseline 都通过 listProjectionsFor 注入可选 projection block。 | 28 | 28 |
OBS-SESSION-LOGSession 事件日志契约 | packages/core/session/src/types.ts:152-309 | 定义结构化 turn 结束原因,以及只追加、无损、连续序号的原始事件事实源与主要 payload。 | 28 | 28 |
OBS-STATS-CONTRACTWhole-log stats 契约 | packages/session/session-stats/src/types.ts:15-45 | 定义与客户端分页无关的 turn、step、模型/工具时间、TTFT 与 decode 指标。 | 28 | 28 |
OBS-STATS-FOLDSession stats 纯 fold | packages/session/session-stats/src/projection.ts:1-183 | 逐事件实现 step、first token、assistant、tool pair 与 turn cleanup 的计数和时序,并防守 usage、clock skew 与 prototype key。 | 28 | 28 |
OBS-STATS-UIStats UI 的 projection 优先级 | packages/client/ui-conversation/src/client/chat/StatsLine.tsx:34-205 | UI 优先读取 whole-log sessionStats,缺失时才使用 window fold,并展示 timing、throughput、cache 与 token 信息。 | 28 | 28 |
OBS-SUBAGENT-HISTORY-PROJECTIONSubagent history 调用 fail-soft projection helper | packages/host/apiproxy/src/api-proxy.ts:2668-2696 | subagent.history 的 live 与 detached tail 都通过 fail-soft helper 计算 projection。 | 28 | 28 |
OBS-TELEMETRY-CONTRACTTelemetry record 与 sink 契约 | packages/session/session-telemetry/src/index.ts:47-130 | 定义 ledger/ops channel、最小 attributes、完整 body、同步非阻塞 emit,以及由 backend 所有的 batching 与 loss。 | 28 | 28 |
OBS-TELEMETRY-HANDOFFHandoff cursor 与 adoption | packages/session/session-telemetry/src/coordinator.ts:32-169 | Module-scope cursor 标记 handed-off 而非 delivered;live adoption、on-demand suffix 与 firstLiveSeq 起点形成 capture-side at-most-once 高水位,但不约束 downstream retry 或端到端交付语义。 | 28 | 28 |
OBS-TELEMETRY-MODESFULL、FEEDBACK_ONLY 与 DISABLED | packages/session/session-telemetry-otel/src/index.ts:43-252 | 默认 disabled;上传模式构建 SDK,FULL live capture;feedback-only 只在 canonical feedback 时释放 eligible suffix:有 cursor 时从其后起,无 cursor 时从 firstLiveSeq 起。 | 28 | 28, 33 |
OBS-TELEMETRY-PROJECTIONCapture 投影与复制 | packages/session/session-telemetry/src/coordinator.ts:179-220 | 每个 turn/step 只交付第一条 chunk,其他 event.data 深拷贝后经 redaction 交给 backend。 | 28 | 28 |
OBS-TELEMETRY-REDACTION同步 redaction waterfall | packages/session/session-telemetry/src/index.ts:24-43 | Seam 不附带规则;listener 同步组合,抛错逐条 fail-closed,只改变外发副本而不重写 canonical log。 | 28 | 28 |
OBS-TELEMETRY-SEVERITYOps error 与 severity 映射 | packages/session/session-telemetry/src/coordinator.ts:228-302 | Agent error 只保留 name/message;只有 error tool result、error turn/end 与 agent-error 映射为 error severity。 | 28 | 28 |
OBS-TRAJECTORY-BUILDERTrajectory snapshot builder | packages/client/ui-trajectory/src/client/trajectory-snapshot-builder.ts:137-266 | 按 raw seq 组合 event node、request、schema、partial、running call、compaction 与 turn error。 | 28 | 28 |
OBS-TRAJECTORY-PROMPTPrompt snapshot 与变化检测 | packages/client/ui-trajectory/src/client/trajectory-request-header-definition.ts:9-80 | 从 request/header 重建 config、完整 system 与 tools,并标注 initial/system/tools 变化。 | 28 | 28 |
OPEN-API-RESERVED-SEATSSession list 的未实现 cursor | packages/host/apiproxy/src/api/sessions.ts:231-240 | public API 接受可选 cursor,但 v1 list 返回全部 session,cursor 只是保留席位;search 也没有 continuation cursor。 | 34 | 34 |
OPEN-EVENT-RESUME-SEATMux stream 的未实现 since hook | packages/host/apiproxy/src/api/events.ts:46-56 | events.mux 接受 since map,但 v1 忽略它;重连合同是 reopen stream 加 refetch history。 | 34 | 34 |
OPEN-HOST-VERSION-CONTRACTHost version 的公开合同 | packages/host/apiproxy/src/api/host.ts:35-53 | HostApi.describe 的注释把 version 定义为 apps/cli package.json 的宿主应用版本。 | 34 | 34 |
OPEN-HOST-VERSION-IMPLHost version 的占位实现 | packages/host/apiproxy/src/api-proxy.ts:2923-2938 | 实现带 TODO,固定返回 0.0.1,而不是读取 CLI manifest。 | 34 | 34 |
OPEN-LIMITATIONS-GATEPackage 限制台账门禁 | scripts/verify-package-readme-limitations.ts:1-93 | 扫描所有两级 package manifest,要求相邻 README 使用唯一规范限制标题并至少有一个顶层 bullet;只有有理由的显式白名单可省略该节。 | 34 | 34 |
OPEN-SETTINGS-REDACTION-CODESettings secret walker 的未覆盖 schema 形状 | packages/settings/settings/src/redact.ts:50-109 | walker 只递归 object、dict、array;默认分支明确把只经 union、intersection 或 transform 可达的 secret 原样返回且不记录 miss。 | 34 | 34 |
PARALLEL-ABORT取消后的 stop-replenish 与 started-call drain | packages/core/agent-loop/src/tool-calls.ts:198-245 | pool 在补位与有序 commit 间反复检查 abort;取消后停止启动新调用、等待 in-flight settlement、提交已启动 calls,并为 group 内未启动 calls 追加合成结果。 | 18 | 18 |
PARALLEL-ABORT-RESULT未启动调用的合成 call/result 对 | packages/core/agent-loop/src/tool-calls.ts:248-259 | 取消跳过的模型调用仍追加 tool/call 与带 ABORTED_BEFORE_DISPATCH 结构化错误的 tool/result,保持 replay 配对闭合。 | 18 | 18 |
PARALLEL-AGENT-STEP批次完成后的 Agent Step 决策 | packages/core/agent-loop/src/agent.ts:393-399 | Agent 等待整个 executeToolCalls 批次后才依据聚合的 concluded 决定 Step completed;否则继续下一 Step。 | 18 | 18 |
PARALLEL-CAP-CONFIGNative parallel cap 的动态配置边界 | packages/core/agent-loop/src/index.ts:300-345 | AgentLoop 在配置 schema 中以共享默认值 10 解析 maxParallelToolCalls,并通过 Settings getter 让已提交变更从下一 group 生效。 | 18 | 18 |
PARALLEL-CLASSIFIER实时 definition 上的 fail-closed 分类 | packages/core/tools/src/index.ts:1269-1285 | executionMode 从调用者可见的当前 tool definition 分类;缺失、未知、隐藏、抛错或非严格 true 都返回 exclusive。 | 18 | 18 |
PARALLEL-CODE-BINDINGCode binding 的 staged dispatch 与 durable events | packages/core/tools/src/code-mode.ts:464-594 | 每个 nested binding 生成确定性 subCallId,通过同一 staged ToolRuntime 运行,先追加 code-dispatch-start;有序 commit 后 defer contexts、返回程序值,并异步塑形和追加 code-dispatch。 | 18 | 18 |
PARALLEL-CODE-DRAINCode Mode 的取消、commit 与 log drain | packages/core/tools/src/code-mode.ts:448-629 | outer run settle 后先 abort;run-scoped drain 放弃 queued-unstarted entries、等待 live pool 和有序 commit lane,并排空 logWork;commit 按 submission order finalize、转发 contexts,再启动非阻塞 settle-log side work。 | 18 | 18 |
PARALLEL-CODE-DRIVERCode Mode 的独立 per-run scheduler | packages/core/tools/src/code-mode.ts:328-457 | 每个 run_code 创建自己的 abort controller、pending/commit queues、in-flight set 与单一 driver lane;只有 dispatch/body 并行,exclusive barrier 持续到 ordered commit,settle/log work 在 run 结束前 drain。 | 18 | 18 |
PARALLEL-DISPATCH可并发的 around-dispatch 与 tool body | packages/core/tools/src/index.ts:1527-1599 | dispatch 融合 caller/wrapper signals,等待已启动 body 静止,通过 tools/execute wrapper 调用 body,并把 deferred contexts 合入规范化结果。 | 18 | 18, 33 |
PARALLEL-DURABLE-PAIRINGTool call/result 的 durable seq 配对 | packages/core/agent-loop/src/tool-calls.ts:164-288 | 每个 started call 在 prepare 前先追加原始 argument string 的 tool/call 并保存 seq;tool/result 通过 sourceEventSeqs 精确引用该 call。 | 18 | 18, 33 |
PARALLEL-FINALIZE有序 post、finalization 与 result notification | packages/core/tools/src/index.ts:1601-1675 | finalize 等待 post-execute,再执行 definition-owned content finalization、物化最终快照并同步分派 tools/result;observer 返回的 Promise 只被观察错误而不被等待。 | 18 | 18 |
PARALLEL-GROUPING按实时分类逐组推进 | packages/core/agent-loop/src/tool-calls.ts:82-100 | 调度器按模型顺序读取下一调用的实时 execution mode:parallel 取得剩余 suffix,exclusive 只形成 singleton;每组完成后才推进 consumed 游标。 | 18 | 18, 33 |
PARALLEL-LOOP-ENTRYAssistant message 提交后的工具调度入口 | packages/core/agent-loop/src/agent.ts:373-399 | Loop 先追加完整 assistant/message,再抽取其中全部 tool-call blocks 并调用 executeToolCalls;没有调用时直接完成该 Step。 | 18 | 18 |
PARALLEL-MODE-CONTRACT并发安全是不可见于模型的严格 opt-in 元数据 | packages/core/tools/src/index.ts:257-269 | ToolDefinition 的 isConcurrencySafe 是纯同步分类器;仅 true opt in,且该 metadata 不发送给模型。声明者负责不修改 parent-owned state 并使共享状态竞态可交换或 fail closed。 | 18 | 18 |
PARALLEL-PIPELINE-SPLITScheduler-only staged ToolRuntime view | packages/core/tools/src/index.ts:426-466 | 私有 symbol-keyed scheduler view 将完整工具管线拆为 prepare、dispatch、finalize 与 finish,使 policy 保持有序而仅重叠 body;普通调用仍使用 execute。 | 18 | 18 |
PARALLEL-PREPARE有序 prepare、approval 与 guards | packages/core/tools/src/index.ts:1453-1507 | prepare 创建 execution,处理 pre-dispatch cancel,依次等待 pre-execute、approval 与 monotonic guards,再返回 dispatch、post-result 或 final-result。 | 18 | 18, 33 |
PARALLEL-RESULT-OBSERVER非 await 的 tools/result observer | packages/core/tools/src/index.ts:1656-1675 | 结果 observer 在 final snapshot 后同步被调用;其返回 Promise 仅附加 rejection logger,不成为 scheduler 可等待的 barrier。 | 18 | 18 |
PARALLEL-ROLLING-POOL有界 rolling pool 与有序提交游标 | packages/core/agent-loop/src/tool-calls.ts:121-245 | runGroup 只并发 dispatch,按 maxParallelToolCalls 补位;settled slot 只能由连续 committed 游标按模型顺序 finalize、追加结果与接受 context。 | 18 | 18, 33 |
PARALLEL-SCHEDULER-FAILURE内部 scheduler failure 的 quiescence 边界 | packages/core/agent-loop/src/tool-calls.ts:215-245 | 内部失败停止新 dispatch,Promise.allSettled 等待所有已启动 dispatch 后抛出首个 scheduler error;该路径不伪造无法归因的 tool results。 | 18 | 18, 33 |
PARALLEL-TYPED-CLASSIFIERdefineTool 的参数验证分类包装 | packages/core/tools/src/schema.ts:545-615 | defineTool 先用同一参数 schema 验证调用;只有合法参数才进入 typed isConcurrencySafe,非法参数直接分类为 false。 | 18 | 18 |
PERSIST-ATTACH-DECODE-IMPL完整 decode 与 Header probe 的实现差异 | packages/attachment/attachment-local/src/image.ts:21-65 | probeImage 只读取 Sharp metadata;detectImage 检查 pixel limit 后调用 image.raw().toBuffer() 完整 decode。 | 11 | 11 |
PERSIST-ATTACH-DECODE-SOURCEAttachment admission 与 read 实际分支 | packages/attachment/attachment-local/src/store.ts:46-230 | admission 通过 detectImage,read 先验证 digest 再调用 probeImage,并对比 media type、bytes、width 与 height。 | 11 | 11 |
PERSIST-ATTACH-SEAMAttachment durability seam | packages/attachment/attachment/src/index.ts:28-59 | AttachmentStore 暴露 immutable binary reference;saveImage 必须在所属 Session event append 前完成验证与耐久提交,readImage 必须验证 bytes 与 reference。 | 11 | 11 |
PERSIST-ATTACH-STORE本地 Attachment 内容寻址发布 | packages/attachment/attachment-local/src/store.ts:19-194 | local store 以 SHA-256 寻址,使用 private staging、synced file、exclusive hard-link publication 与目录 fsync,并在 dedup race 中重新读取和 hash 已有对象。 | 11 | 11 |
PERSIST-BACKEND-CONTRACTSession 持久化后端合同 | packages/session/session-persistence/src/coordinator.ts:117-214 | 后端提供读前缀、revision、可选 suffix seek、原子首次 materialization、耐久 append、repair、list 与 close;协调器拥有其余协议。 | 11 | 11 |
PERSIST-COORDINATORPersistenceCoordinator 状态与提交顺序 | packages/session/session-persistence/src/coordinator.ts:575-710 | 协调器按 Session ID 管理状态、promise chain 与 preparation,按 live Session 管理生命周期,并只在 appendBatch 耐久返回后推进 materialized、cursor 与 cache invalidation。 | 11 | 11 |
PERSIST-DOMAIN-CLOSE-GAPDomain close 的单向失败状态 | packages/storage/storage-domain/src/domain.ts:148-275 | close 首先置 disposing 并 drain chain;若 unit.close 拒绝,closed 与 onClosed 均不会到达,rejected disposal 被缓存,导致写拒绝、读仍可用且名称无法重开。 | 11 | 11 |
PERSIST-DOMAIN-ORDERDomain 的耐久先行写序 | packages/storage/storage-domain/src/domain.ts:135-269 | Domain 以一个 promise chain 串行化写入,backend 成功后才更新内存并发送受控 changed notification;失败写不改变内存。 | 11 | 11 |
PERSIST-JSON-ATOMICJSON KV 原子替换协议 | packages/storage/storage-json/src/atomic.ts:1-52 | writer 在同目录创建 owner-only temp,写入并 fsync,rename 覆盖目标,再在 POSIX fsync 父目录;失败清理 temp 并传播错误。 | 11 | 11 |
PERSIST-JSON-ROOT-GAPJSON Storage 相对 root 缺口 | packages/storage/storage-json/src/index.ts:21-66 | 配置要求显式 root,但 schema 接受相对 string,backend 原样保存,并在后续 openUnit 才执行 mkdir 与 join,因此 cwd 变化可重定向新 unit。 | 11 | 11 |
PERSIST-JSON-UNIT-ROLLBACKJSON KV 失败后的内存回滚 | packages/storage/storage-json/src/unit.ts:47-140 | 每个 KV mutation 先修改 unit 内存,再发布整文件;publish 任意拒绝都会恢复旧内存,而 publish 的拒绝可能发生在 rename 之后的目录 fsync。 | 11 | 11 |
PERSIST-JSONL-FORMATJSONL Header、路径编码与 chunk packing | packages/session/session-persistence-jsonl/src/format.ts:28-223 | 格式以专用 Session Header 开头,将未验证的 branded ID 注入式转义为安全路径段,并可把 delta run 无损打包为 storage rows。 | 11 | 11 |
PERSIST-JSONL-REPAIRJSONL 读取、发布、回滚与 repair | packages/session/session-persistence-jsonl/src/index.ts:306-701 | 读取器返回 byte-offset torn marker 与可恢复完整事件;首次写经 synced temp 与无覆盖发布,append 失败回滚长度,repair 先 truncate+fsync 再经正常 append 写 recovered events 和 closers。 | 11 | 11 |
PERSIST-JSONL-ROOTJSONL 根目录与顺序介质边界 | packages/session/session-persistence-jsonl/src/index.ts:115-200 | JSONL 构造器一次解析 root、补齐程序化构造默认值、返回绝对 artifact path,并故意不实现 seek-capable loadStoredFrom。 | 11 | 11 |
PERSIST-JSONL-SCANJSONL 完整行的尾部分类 | packages/session/session-persistence-jsonl/src/format.ts:272-388 | scanner 对完整换行记录的 JSON、storage shape 与 seq 做检查;异常后若没有遇到后续 turn/end,finish 返回异常前的 committedBytes,使完整异常行也进入可截断尾部。 | 11 | 11 |
PERSIST-READ-FACESPrepare、Load、Inspect 与 ReadFrom 的分工 | packages/session/session-persistence/src/coordinator.ts:712-970 | prepare 预留精确未发布 Session,load 提交冷恢复,inspect 借用不变视图且不提交修复,readFrom 绕过 preparation cache 并保持非变更。 | 11 | 11 |
PERSIST-SEAM-APISessionPersistence 权威事实与读取面 | packages/session/session-persistence/src/index.ts:1-240 | Service Definition 将 SessionHeader 与连续 SessionEvent 定义为耐久事实,并区分 locate、create、append、prepare、load、inspect、readFrom、list 与 listSnapshots。 | 11 | 11 |
PERSIST-SESSION-SQLITE-CONSTRUCTORSession SQLite 直接构造默认值泄漏 | packages/session/session-persistence-sqlite/src/index.ts:69-146 | schema 将 journalMode 默认成 wal,但构造器只补齐 cache 与 batching 默认值,把仍可缺省的 journalMode 断言为 Required 后传给 openDb。 | 11 | 11 |
PERSIST-SQLITE-REPAIRSQLite append 与 repair 事务 | packages/session/session-persistence-sqlite/src/index.ts:278-338 | 首次 materialization 和 batch append 在一个事务内;repair 在另一个事务中删除 torn suffix、插入 synthetic closers,并一次推进 revision。 | 11 | 11 |
PERSIST-SQLITE-SCANSQLite torn suffix 判定 | packages/session/session-persistence-sqlite/src/schema.ts:220-269 | scanRows 将最后一个有效 turn/end 以内的坏 JSON 或 seq gap 视为 committed corruption,只把其后的第一个缺陷标记为可丢弃 torn tail。 | 11 | 11 |
PERSIST-SQLITE-SCHEMASession SQLite 严格 schema 与拒绝式版本策略 | packages/session/session-persistence-sqlite/src/schema.ts:15-171 | 后端使用 schema version 15、application id、store identity、sessions 与 events STRICT tables;未知、外来或非空未版本化数据库拒绝而不迁移。 | 11 | 11 |
PERSIST-SQLITE-SUFFIXSQLite 真正的 suffix seek | packages/session/session-persistence-sqlite/src/index.ts:220-237 | loadStoredFrom 以 session_id 与 seq >= fromSeq 直接查询并只扫描所选行;torn tail 只缩短返回视图,不触发修复。 | 11 | 11 |
PERSIST-STORAGE-REGISTRYStorage registry 的非拥有型注销 | packages/storage/storage/src/registry.ts:14-36 | registry disposer 仅在 identity 仍匹配时删除名称,明确不会 close backend;medium 生命周期属于 provider plugin。 | 11 | 11 |
PERSIST-STORAGE-SEAM通用 Storage backend seam | packages/storage/storage/src/backend.ts:12-104 | StorageBackend 拥有一个 medium 与生命周期;KvUnit 只承诺单次调用原子耐久,把 opaque JSON、schema 和并发写排序留给调用方。 | 11 | 11 |
PERSIST-STORAGE-SQLITE-CONSTRUCTOR通用 SQLite Storage 构造器默认值泄漏 | packages/storage/storage-sqlite/src/index.ts:23-72 | 配置 schema 承诺 WAL 默认值,但公开构造器把 optional journalMode 强制断言后直接传给异步 openDatabase。 | 11 | 11 |
PERSIST-STORAGE-SQLITE-OPEN通用 SQLite open 路径解引用 journalMode | packages/storage/storage-sqlite/src/schema.ts:52-80 | openDatabase 解析数据库路径后进入 configureDatabase,后者无防护调用 journalMode.toUpperCase()。 | 11 | 11 |
PERSIST-STORAGE-SQLITE-SCHEMA通用 SQLite Storage 物理 schema | packages/storage/storage-sqlite/src/schema.ts:15-119 | 通用 backend 使用 physical user_version 1、units 与 unit_globals STRICT tables,并为每个 unit table 生成受验证的物理表名;其他 stamped version 拒绝而不迁移。 | 11 | 11 |
PERSIST-STORAGE-SQLITE-UNIT通用 SQLite KV unit 原语 | packages/storage/storage-sqlite/src/unit.ts:23-147 | 每个声明表预编译 upsert/delete/select,global slot 单独 upsert;每次 KV mutation 是一个同步 SQLite statement,经 Promise 合同结算。 | 11 | 11 |
PERSIST-WORKSPACE-BOOTSTRAPWorkspace Header-only bootstrap | packages/workspace/workspace/src/index.ts:426-508 | bootstrap 按 canonical cwd 将 Header 分组,复用部分 record,写 Workspace rows 与 order,并把 initialized=true marker 放在最后写。 | 11 | 11 |
PERSIST-WORKSPACE-INITWorkspace 初始化顺序 | packages/workspace/workspace/src/index.ts:118-140 | 初始化先 open Domain、恢复 pending mutation 与验证 state;未初始化时 list Header、完整替换 index 并 bootstrap,已初始化时启动路径完整替换 Header index。 | 11 | 11 |
PERSIST-WORKSPACE-INVARIANTSWorkspace 跨 record 不变量 | packages/workspace/workspace/src/index.ts:510-551 | 启动验证拒绝重复 order ID、missing/orphan rows、重复 canonical path 与一个 Session 被多个 Workspace account。 | 11 | 11 |
PERSIST-WORKSPACE-MUTATIONWorkspace 两次写 mutation 与恢复 | packages/workspace/workspace/src/index.ts:285-424 | create/delete 在 record 与 order 可能分叉前写 durable pending marker,包含补偿分支;startup 只完成 marker 指定的 mutation,不猜测其他 divergence。 | 11 | 11 |
PERSIST-WORKSPACE-REFRESHWorkspace Header index 刷新路径 | packages/workspace/workspace/src/index.ts:561-630 | startup replacement 会清空三张 Header/path map;runtime uncached lookup 只增量 index list 结果,cached hit 直接返回且没有 public full-refresh path。 | 11 | 11 |
PERSIST-WORKSPACE-SCHEMAWorkspace Domain schema | packages/workspace/workspace/src/spec.ts:13-75 | Workspace domain version 2 由一张 workspaces table 与 global state 组成;ID、path、title、Session ID 与 timestamp 的运行时 shape 基本都是 plain strings。 | 11 | 11 |
PERSIST-WORKSPACE-TITLE-GAPWorkspace create-time title 遗留分支 | packages/workspace/workspace/src/index.ts:142-163 | 公开 create(path, title?) 仍接收 raw optional title,但源码 TODO 说明最后一个 production caller 已删除并要求移除该参数。 | 11 | 11 |
PERSIST-WORKSPACE-TITLE-SETTERWorkspace title setter 无语义校验 | packages/workspace/workspace/src/entity.ts:101-107 | setTitle 接受任意 string 并直接写入 record mutation,没有 nonblank、trim 或长度检查。 | 11 | 11 |
PERSIST-WRITE-BEHIND失败安全的 Session 写后队列 | packages/session/session-persistence/src/write-behind.ts:19-157 | 队列克隆事件、使用固定 deadline、共享并发 flush barrier;失败 batch 恢复到新事件之前,显式 flush 重试并排空到静止点。 | 11 | 11 |
PLANSTATE-GOAL-APIGoal Host API mutation contract | packages/host/apiproxy/src/api/goals.ts:25-53 | 公开 façade 只有 create/edit/pause/resume/complete/clear;读侧由 goal projection 提供,mutation 只返回 ref 或 cleared。 | 15 | 15 |
PLANSTATE-GOAL-API-ERRORSGoal service resolution 与 wire error mapping | packages/host/apiproxy/src/api-proxy.ts:1787-1825 | Host 按 Agent preset 解析 Session-specific GoalService;GoalError 统一映射为 wire internal,稳定 domain code 放在 details.goalCode。 | 15 | 15 |
PLANSTATE-GOAL-API-ROUTINGHost API 的 Agent 冷恢复与 subagent fence | packages/api/remotes/src/agent-lookup.ts:113-210 | resolver 复用 live Agent、按 identity 合并冷 resume,并对 live-owned 或持久 subagent identity 返回 agent-busy fence。 | 15 | 15 |
PLANSTATE-GOAL-AUTHORITY模型 Goal tool 的执行 authority | packages/goal/tool-goal/src/authority.ts:29-108 | 要求精确 live/running/current-initiator Agent 与 open Turn;direct-human 必须是 root 的 user source,自动终态只接受匹配当前 Goal round。 | 15 | 15 |
PLANSTATE-GOAL-COMMAND/goal 命令语法与状态操作 | packages/goal/command-goal/src/index.ts:14-170 | /goal 提供 show/create/edit/pause/resume/clear,直接调用 GoalService 并返回文本,不提供 complete、block 或每命令 round cap。 | 15 | 15 |
PLANSTATE-GOAL-COMMAND-UIGoal command-input projection | packages/client/ui-goal/src/client/goal-command-input.ts:26-70 | Web 从耐久 /goal command/run 构建独立可见的 command-input Chat Node,不创建 model message。 | 15 | 15 |
PLANSTATE-GOAL-COMMAND-VIEWGoal command-input 气泡 renderer | packages/client/ui-goal/src/client/GoalCommandInputView.tsx:11-30 | 专用 renderer 将 /goal 输入显示为右对齐 bubble,且不附带普通消息操作。 | 15 | 15 |
PLANSTATE-GOAL-COMMITGoal CAS、cache 与 commit 顺序 | packages/goal/goal/src/index.ts:392-577 | 要求精确 live Agent 和当前 GoalRef;冷 cache 默认 disarmed,goal/change append 与 sync 完成后才发 goal/changed。 | 15 | 15, 33 |
PLANSTATE-GOAL-DRIVERSame-session Goal round driver | packages/goal/goal-round-driver/src/index.ts:75-445 | 每 Agent 单 attempt/coalesced run、checkpoint barrier、竞争输入、reservation 双重校验、错误 disarm/block/pause 与 teardown quiescence 的完整控制流。 | 15 | 15 |
PLANSTATE-GOAL-FOLDGoal 严格状态 fold | packages/goal/goal/src/fold.ts:271-349 | 严格 fold 校验 create/transition/clear,并只在匹配当前 active revision 的顺序 goal-sourced user/message 上增加 roundsStarted。 | 15 | 15 |
PLANSTATE-GOAL-PROJECTIONGoal 轻量 last-wins projection | packages/goal/goal/src/index.ts:83-113 | 浏览器 projection 仅处理 goal/change,clear 变 null,其它事件保持同一 reference;它不会随 admitted goal-round message 更新 roundsStarted。 | 15 | 15 |
PLANSTATE-GOAL-SERVICEGoalService 生命周期 mutation | packages/goal/goal/src/index.ts:216-390 | get/disarm/create/edit/pause/resume/complete/block/clear 的 phase、revision、capacity 与 activation 规则。 | 15 | 15 |
PLANSTATE-GOAL-TOOLSget_goal、create_goal 与 update_goal | packages/goal/tool-goal/src/index.ts:186-338 | 定义三种模型工具、direct-human/action 权限、blocked round 下限,以及自动终态通过 deferContext 注入收尾指令。 | 15 | 15 |
PLANSTATE-GOAL-TYPESGoal identity、revision、phase 与 projection 类型 | packages/goal/goal/src/types.ts:15-110 | GoalRef 是 revision CAS identity;四种 durable phase 与 process-local activation 分离,浏览器 projection 明确不含 activation。 | 15 | 15 |
PLANSTATE-GOAL-UIGoalBar phase action 与 single-flight | packages/client/ui-goal/src/client/GoalBar.tsx:34-186 | GoalBar 隐藏 absent/complete,按 phase 提供 pause 或 resume、edit、clear;同步 ref 防重复点击,clear 后先本地隐藏。 | 15 | 15 |
PLANSTATE-GOAL-UI-REMOTEGoalBar Remote mutation wiring | packages/client/ui-goal/src/client/index.ts:40-99 | 每个 UI verb 在调用时从当前 goal projection 读取最新 CAS ref,再执行 edit/pause/resume/clear Remote。 | 15 | 15 |
PLANSTATE-PLAN-ASSEMBLYPlan 的 pre-step 与 prompt 组装 | packages/plan/plan-mode/src/index.ts:197-233 | accepted pre-step 才提交 pending;append 失败保留选择且不阻断 Step;plan:policy 优先读取 pending target。 | 15 | 15 |
PLANSTATE-PLAN-BOUNDARYPlan 选择的提交边界与叙述 | packages/plan/plan-mode/src/index.ts:396-473 | 空闲时立即提交,open Turn 中排队到 accepted pre-step;失败保留 pending,并仅在上一 request header 见过相反模式时叙述切换。 | 15 | 15, 33 |
PLANSTATE-PLAN-CONTROLSPlan 命令与评审退出工具 | packages/plan/plan-mode/src/index.ts:268-393 | /plan、精确小写 off、可选 steer message,以及 exit_plan_mode 的 Markdown、评审、dismiss 与延迟退出规则。 | 15 | 15 |
PLANSTATE-PLAN-PROJECTIONPlan 双事件 projection | packages/plan/plan-mode/src/index.ts:235-266 | plan projection 折叠 command/run 的 wanted target 与 plan/mode 的 committed active,导出 active/pending。 | 15 | 15 |
PLANSTATE-PLAN-REVIEW-AUTHPlan 评审的人类交互所有权 | packages/interaction/user-questions/src/index.ts:80-139 | 带 Agent 的提问要求 registry 中精确 live runtime root;live-owned child 被拒,恢复为 root 的 lineage Session 可提问。 | 15 | 15 |
PLANSTATE-PLAN-REVIEW-UIPlan 专用评审面板 | packages/client/ui-user-questions/src/client/PlanReviewPanel.tsx:36-99 | 专用面板渲染 Markdown 计划、approve、decline 与 discuss/cancel,并用 one-shot latch 防止重复提交。 | 15 | 15 |
PLANSTATE-PLAN-STATEPlan 日志状态与进程内待选状态 | packages/plan/plan-mode/src/index.ts:46-195 | plan/mode 是 log-only、非 Surface、last-write-wins 的布尔事件;Controller 另以 Session 键控 WeakMap 保存待提交选择。 | 15 | 15 |
PLANSTATE-PLAN-UIPlan Web 状态 chip | packages/client/ui-plan/src/client/PlanModeControl.tsx:15-68 | Web 从 plan projection 计算有效目标,仅在目标为 Plan 时显示 chip,并通过 /plan off 退出。 | 15 | 15 |
PLANSTATE-TODO-INVARIANTTodo durable invariant 的覆盖边界 | packages/todo/tool-todo/src/invariant.ts:15-57 | companion 校验 array、trimmed unique content 与 status enum,故意不重验 active count;它没有比较 item own keys。 | 15 | 15, 33 |
PLANSTATE-TODO-ROWtodo_write 历史 tool row | packages/client/ui-tool/src/client/tool/toolviews/todo-row.tsx:1-97 | tool row 从原始 call args 构建 done/total、首个 active 与额外 active 数摘要,并为 malformed/rejected args 保留 fallback。 | 15 | 15 |
PLANSTATE-TODO-TOOLTodo whole-value tool 与 projection | packages/todo/tool-todo/src/index.ts:28-225 | todo_write 要求完整清单,规范化 content、校验重复/状态/并行 active 策略,append todo/write;projection last-wins 并在 turn/start 清空。 | 15 | 15 |
PLANSTATE-TODO-UITodoPanel 当前清单视图 | packages/client/ui-conversation/src/client/skeleton/TodoPanel.tsx:81-153 | Web 从 todos projection 渲染可折叠清单、状态计数和全部 item;空清单不显示。 | 15 | 15 |
PLANSTATE-TOOL-EXCLUSIVETool 并发分类 fail-closed 规则 | packages/core/tools/src/index.ts:1269-1285 | 只有 isConcurrencySafe 返回严格 true 才是 parallel;缺失、异常、隐藏、未知或无效定义均为 exclusive。 | 15 | 15 |
PLANSTATE-TOOL-SCHEDULERExclusive tool ordering barrier | packages/core/agent-loop/src/tool-calls.ts:82-119 | Agent loop 按模型顺序分类 tool calls;exclusive 只形成单调用 group 并 await 完成,parallel group 遇 exclusive 重分类需先排空。 | 15 | 15 |
PROFILE-COMPOSEProfile patch 的实际组合顺序 | apps/cli/src/profile-boot.ts:121-170 | bundle、profile、home、CLI overlay、启动器 preset 与 telemetry overlay 的应用顺序以及行索引构建。 | 04 | 04, 33 |
PROFILE-LIVE用户 patch 的在线重组 | apps/cli/src/profile-boot.ts:227-299 | 每代重新读取两个用户层、克隆 patch 防止引用污染,并在缺少 HMR 时挂载只监听配置的实例。 | 04 | 04, 33 |
PROFILE-LOADBundle 解析与同构组合 | packages/boot/app-boot/src/profile.ts:357-420 | 按 manifest 顺序解析 bundle 声明,缺失 dsh.bundle 时失败,并用与启动相同的 applyEntryPatches 在空根上组合。 | 04 | 04 |
PROFILE-MODULE-FALLBACKProfile 的扁平模块 fallback | packages/boot/app-boot/src/profile.ts:204-255 | 对 dependencies 与 peerDependencies 做 BFS,从安装位置建立 profiles/node_modules 符号链接闭包。 | 04 | 04 |
PROFILE-ROOT空根配置与 Profile 准备 | apps/cli/src/profile-boot.ts:59-103 | 每次启动重写空根 cordis.yml,实际树完全由 patch 层构成,并避免 Loader write-back 烘焙组合结果。 | 04 | 04 |
PROFILE-TEMPLATESProfile 目录与内置模板 | packages/boot/app-boot/src/profile.ts:104-168 | profile 名校验、web/headless bundle 模板、默认 base bundle,以及幂等初始化的三个文件。 | 04 | 04 |
PROJ-AUTHORITY-LAYERSProjection baseline 与非权威 checkpoint 类型 | packages/session/session-projection/src/index.ts:88-118 | ProjectionSnapshot 定义共享 asOfSeq cut;ProjectionCheckpointRow 记录版本、水位与内部状态,并明确 row 只是 fold shortcut、不是 authority。 | 12 | 12, 33 |
PROJ-CACHE-DETACH-WINDOWLive checkpoint 的 log-before-cache barrier 与 detach 例外 | packages/session/session-projection-cache/src/index.ts:132-230 | 普通 write 在 registry cut 后 flush 仍 live 的 Session,再 put cache;disposed listener 异步触发 flushSoft,但此时 live-store 检查可失败而跳过显式 flush,源码注释承认 residual overreach 由 cold read 检测。 | 12 | 12 |
PROJ-CACHE-INTEGRATION发布的 list 与 detached History projection 路径 | packages/host/apiproxy/src/api-proxy.ts:841-877 | Session list 对 live row 使用 registry snapshot、对 cold row 只使用 cachedSnapshot;detached History 直接以空 checkpoint 对完整 inspected events 从零 restore。 | 12 | 12 |
PROJ-CACHE-LADDERProjection cache 的 cold tail-replay ladder | packages/session/session-projection-cache/src/index.ts:154-197 | coldSnapshot 读取 checkpoint、计算 restore floor、调用 persistence.readFrom 做 tail fold;identity 或 watermark overreach 时回退到 full read,并 fail-soft 写回刷新结果。 | 12 | 12, 33 |
PROJ-CACHE-SCHEMAVersioned row、日志生命周期 identity 与 cache domain | packages/session/session-projection-cache/src/spec.ts:16-69 | 每个 checkpoint row 包含 ver/seq/JSON val;完整 Session record 绑定 createdAt/cwd identity;session_projcache domain v3 可整体丢弃,因为它只保存派生状态。 | 12 | 12 |
PROJ-CLIENT-EQUAL-SEQEqual-seq update 拒绝与严格大于 lastSeq 的 truncate | packages/client/runtime/src/client/sessions/projection-store.ts:128-177 | apply 在 seq 小于或等于现有 row 时直接返回;seed 复用该规则;generation truncate 只删除 row.seq 大于 lastSeq 的状态,因此同水位的新 generation value 无法替换旧值。 | 12 | 12 |
PROJ-CLIENT-MANAGERList baseline、pre-instantiation push 与 subscribed repair 的收敛 | packages/client/runtime/src/client/sessions/manager.ts:438-735 | Manager 在 list pull 后 replay 并发 mutations;局部 list projection 只 apply carried keys;session/projection 在 Session 实例化前也进入 resident store,subscribed 再 truncate phantom rows 并重置 generation state。 | 12 | 12 |
PROJ-CLIENT-STOREClient projection 的 higher-seq-wins、完整 seed 与 generation truncate | packages/client/runtime/src/client/sessions/projection-store.ts:67-177 | Value store 对 baseline 与 push 都拒绝 lower/equal seq;完整 seed 会清除 cut 时缺失的旧 key,而 subscribed truncate 只删除 seq 超过 Host durable lastSeq 的 rows。 | 12 | 12 |
PROJ-COLD-RESUMEExact prepared Session 的 setup、publication 与 rollback | packages/core/agent-loop/src/index.ts:624-710 | Agent resume 需要 persistence.prepare,在融合 cancellation 下取得 exact preparation;setup 在 publish 前运行,失败会 dispose,finally 释放 reservation,不存在 resume 失败后自动 fresh-create 的分支。 | 12 | 12 |
PROJ-HISTORY-FAILUREOrdinary History 将 projection 异常折叠为 internal error | packages/host/apiproxy/src/api-proxy.ts:2242-2269 | History 在同一 try 中取得 source、composition、projection cut 与页面;除 SessionNotFound 外的任何异常都返回 history unavailable/internal,没有像 list 或 subagent History 那样省略 projection block 的降级分支。 | 12 | 12 |
PROJ-HOST-CARRIERProjection change frame 与 Host 自有 projection units | packages/host/apiproxy/src/api-proxy.ts:1273-1323 | API Proxy 把 registry change 广播为 session/projection frame,并注册 sessionListMetadata 与 per-boot imageLimits;imageLimits apply 永远返回同一 state,因此只通过 baseline 传播。 | 12 | 12 |
PROJ-HOST-COLD-OPENCold History 使用 inspect 而不取得 Agent ownership | packages/host/apiproxy/src/api-proxy.ts:1525-1573 | History 优先读取 attached Session,否则调用 servable inspection;所有 await 结束后同步取得 events 与 projection cut,整个路径不 resume 或 publish Agent。 | 12 | 12 |
PROJ-IMAGE-LIMITSPer-boot、baseline-only 的 imageLimits projection | packages/host/apiproxy/src/api-proxy.ts:1302-1323 | imageLimits unit 的 state 恒为 null,apply 永远返回同一 reference,view 直接读取当前 attachments service 配置;因此启动内不发 change frame,只由 baseline 传播。 | 12 | 12 |
PROJ-REGISTRY-DRIVEPer-Session projection cells、同步 snapshot 与 eager drive | packages/session/session-projection/src/index.ts:130-425 | Registry 以 WeakMap cell 保存 state/observedSeq,单次订阅驱动所有 unit;缺失 cell 从内存日志 lazy fold,Object.is 只让 reference 变化产生通知,而 observedSeq 对每个事件前进。 | 12 | 12 |
PROJ-REGISTRY-REGISTRATION同 key 注册的 refcount 与 version 冲突规则 | packages/session/session-projection/src/index.ts:137-220 | 同 key、同 stateVersion 的 registrant 共享第一份 unit 并增加 refs;version 不同才拒绝。最后一个 disposer 删除 registration 与全部 cells,且 runtime 无法比较函数语义。 | 12 | 12 |
PROJ-REGISTRY-RESTOREAnchored restore floor 与安全 tail fold | packages/session/session-projection/src/index.ts:284-385 | restoreFloor 选择最低可用水位前的一条事件;restore 只接受 version 匹配且位于可证明日志端点内的 row,不安全的 partial restore 会要求从 seq 0 重读。 | 12 | 12 |
PROMPT-ASSEMBLY-PIPELINE每次 assembly 的精确求值与 waterfall 顺序 | packages/core/system-prompt/src/index.ts:467-541 | 先融合 scope/variables/named entries,快照并求值 tool providers,再排序和求值 sections/contexts,canonicalize tools,最后运行 waterfall 并重施 complete/suppression 约束。 | 07 | 07, 33 |
PROMPT-CONTEXT-AGENT-INSTRUCTIONS工作区指令通过 pre-step 消息进入 | packages/context/agent-instructions/src/index.ts:322-347 | Agent instructions 在下游 decision 后计算,处理 pending projection,并把新消息插到 claimed batch 后、driver runtime-context 前。 | 07 | 07 |
PROMPT-CONTEXT-TIME时间上下文的 per-step sourced message | packages/context/time-context/src/index.ts:170-208 | Time context 在 prepend listener 的 next 返回后解析时区和刷新规则,把带 plugin snapshot source 的 user message 追加到 decision。 | 07 | 07 |
PROMPT-CONTEXT-TMUXTmux 上下文的首步与变化门控 | packages/context/tmux-context/src/index.ts:208-246 | Tmux listener 只在 step 1、shell 可用、refresh 到期且状态变化时查询,并把 sourced snapshot 放在 decision messages 之前。 | 07 | 07 |
PROMPT-DEEPSEEK-WIREDeepSeek wire request 的稳定前缀布局 | packages/llm/llm-deepseek/src/serialize.ts:143-186 | Adapter 把 system 作为首条 wire message,再序列化 durable history;始终流式并请求 usage,没有在该路径写入显式 cache-control。 | 07 | 07 |
PROMPT-HEADER-CANONICAL请求 header 的 canonicalization、比较与 fold | packages/core/session/src/request-header.ts:14-70 | 空 system/tool 字段归一为缺席;比较覆盖 config、adapter defaults、system 与有序 schema;离线 fold 取最后一份完整 snapshot。 | 07 | 07 |
PROMPT-REGISTRY-CONTRACTPrompt 五类可逆注册与默认 section | packages/core/system-prompt/src/index.ts:337-455 | SystemPrompt 以 scoped effect 注册 section、context、runtime-context suppressor、tool provider 和 variable;默认 identity 与 persona 也是普通 section。 | 07 | 07 |
PROMPT-RETRY-BOUNDARY同一 step 内 retry 不重新组装 prompt | packages/core/agent-loop/src/agent.ts:332-370 | System 在 retry loop 外从 assembly 渲染;每次 provider retry 重新 build request 与 derive messages,但复用该 step 的 assembly 与 tool schema。 | 07 | 07, 08 |
PROMPT-STEP-BOUNDARY每个拟执行 step 的 prompt 组装边界 | packages/core/agent-loop/src/agent.ts:225-243 | preStep 先 claim,再 assemble、渲染 runtime context、生成候选消息并进入 pre-step waterfall;reject 或空首步可能在已组装后仍不开 step。 | 07 | 07 |
PROMPT-STRICT-RENDERSection/context 的严格变量插值 | packages/core/system-prompt/src/index.ts:204-294 | 渲染丢弃空项并严格校验变量名、存在性和值;阻止 prototype lookup 和递归插值,对 malformed 引用快速失败。 | 07 | 07 |
PROMPT-TOOL-ORDERTool schema 的确定性排序规则 | packages/core/system-prompt/src/index.ts:139-183 | 默认按 code-unit 字典序;显式顺序必须包含唯一 rest marker,未知名失败,已知但被 scope 隐藏的工具可缺席。 | 07 | 07 |
RALPH-CONTRACTRalph 的最小模型 schema 与显式使用策略 | packages/workflow/tool-ralph/src/index.ts:404-435 | Ralph 只暴露 objective/maxRounds,固定工具名与输出 envelope;system prompt 要求人类明确提出 Ralph/fresh-agent iteration。 | 25 | 25 |
RALPH-DOUBLE-VALIDATIONRalph terminal result 的 consumer-side 再验证 | packages/workflow/tool-ralph/src/index.ts:246-333 | TypeScript 重新验证 exact key set、status、round 范围、各状态 report invariant 与 handoff size,拒绝畸形 engine boundary value。 | 25 | 25, 33 |
RALPH-EXECUTERalph 对固定 Workflow 的执行映射 | packages/workflow/tool-ralph/src/index.ts:437-474 | Tool trim objective、解析上限和 provider,向 engine 传固定脚本/provider/maxTotalAgents,桥接取消,解析结果,并在 finally dispose。 | 25 | 25 |
RALPH-FRESH-PROVIDERRalph round cap 与 fresh-provider capability gate | packages/workflow/tool-ralph/src/index.ts:207-232 | 调用轮数必须为 ceiling 内的正 safe integer;provider 必须已注册、支持 structured output 且不继承 parent context。 | 25 | 25 |
RALPH-OUTCOMESRalph terminal outcome 与 round-failure 语义 | packages/workflow/tool-ralph/src/index.ts:282-391 | Decoder 区分 complete、blocked、budget-limited 与 round-failed,限制 roundsStarted,并在 ordinary child failure 时保留上一份 continue report。 | 25 | 25 |
RALPH-RENDERRalph 的有界、非认证式结果渲染 | packages/workflow/tool-ralph/src/index.ts:351-391 | Renderer 明说 worker reported completion/blocker 或达到轮限;maxResultChars 包括 envelope 与 truncation marker,round failure 保留最后 handoff。 | 25 | 25 |
RALPH-ROUND-PROMPTRalph 每轮 prompt 与 workspace memory | packages/workflow/tool-ralph/src/index.ts:151-167 | 每轮只携带 immutable objective、轮次、workspace-as-truth 指令和前一份 bounded report,并明确无 parent conversation/previous child session。 | 25 | 25 |
RALPH-SCRIPT构建时固定的 Ralph 状态机与 report 规则 | packages/workflow/tool-ralph/src/index.ts:80-177 | 固定脚本定义 report schema/status invariant、有界 handoff、逐轮 fresh agent,以及 complete/blocked/round-failed/budget-limited 转移。 | 25 | 25 |
REMOTE-AGENT-RESOLVERemote session identity 的冷恢复策略 | packages/api/remotes/src/agent-lookup.ts:113-211 | live Agent 直接复用,普通冷 session 按 ID 合并并发 resume;入口、durable inspection 后与 resume 前多点 fence subagent ownership,resume race 失败后重查已发布 identity 并分类 agent-busy。 | 29 | 29 |
REMOTE-CLIENT-INVOKERemote 客户端调用与生命周期取消 | packages/api/gateway/src/client/index.ts:327-415 | 客户端把位置参数投影成命名 wire args,以 mount lifetime 与 caller signal 融合取消并再次校验响应;无 active Connection 在 try 外直接抛错,已有 Connection 后的 RPC rejection、abort 与坏 response 才折叠进 RemoteResult。 | 29 | 29 |
REMOTE-CLIENT-MOUNT生成 Remote contribution 的事务式挂载 | packages/api/gateway/src/client/index.ts:174-260 | 客户端只挂载严格 descriptor;预先检查重复与 namespace 冲突,部分安装失败会逆序回滚,卸载 token 同时 abort 在途调用。 | 29 | 29 |
REMOTE-EVENT-ALLOWLISTRemote event 的唯一 allowlist | packages/api/remotes/src/remote-events.ts:1-29 | 11 个可转发事件由一个常量控制,wire 使用宿主原事件名和参数列表,不投影、不重命名、不脱敏。 | 29 | 29 |
REMOTE-EVENT-FORWARDAllowlist event 的实际转发 | packages/host/apiproxy/src/api-proxy.ts:3617-3635 | 宿主为每个 allowlist 事件注册 listener,先证明参数 JSON-safe,再包装成 host/remote-event 推入 host stream。 | 29 | 29 |
REMOTE-GATEWAY-TYPESTypert Remote 的载体无关合约 | packages/api/gateway/src/types.ts:6-46 | 调用以 namespace、method、精确命名 args 与可选注入 signal 表示,并声明稳定的 gateway failure 分类。 | 29 | 29 |
REMOTE-HOST-DISPATCHRemote host 的严格 descriptor 分派 | packages/api/gateway/src/index.ts:90-235 | Gateway 每次调用重新解析当前 descriptor、校验精确参数、解析 Context/lookup、绑定真实 Service 并验证结果;已见过后撤回的严格定义禁止降级到 SRC。 | 29 | 29 |
REMOTE-HOST-ERRORSRemote 取消与 wire 错误折叠 | packages/api/gateway/src/index.ts:159-489 | 只有声明 cancellation 的方法得到 signal;业务调用在 signal 已 abort 后抛错会映射 cancelled,lookup policy 错误保留原 RpcError,其余 gateway/业务异常在 wire 上折叠为 internal。 | 29 | 29 |
SANDBOX-BASH-CONSUMER一次性 Bash 的沙箱消费路径 | packages/shell/bash-sandbox/src/index.ts:79-179 | Executor 将 exact ['bash','-c',command] 交给 provider,并直接运行返回 argv;foreground/background 分别保留 mode、enforcement、denial 与 runner-failure 结果。 | 20 | 20 |
SANDBOX-CONTAINMENTSeparator-aware containment 与文件身份 fallback | packages/fs/fs-sandbox/src/containment.ts:19-76 | containment 先做 separator-aware lexical comparison;拼写不同时沿现存祖先比较 dev/inode,保守处理缺失 root,并支持 Windows case/alias 语义。 | 20 | 20 |
SANDBOX-E2B-FSE2B Filesystem 的远端 identity、读取与 mutation | packages/e2b/fs-e2b/src/index.ts:170-454 | E2B provider 以 POSIX cwd 与远端 GNU realpath 建立 target identity,提供 whole/stream/bounded byte reads,并以 canonical target 的 host-process lock 包裹 guarded write/edit。 | 20 | 20 |
SANDBOX-E2B-OWNER单 Context 的 E2B execution-world owner | packages/e2b/e2b/src/index.ts:22-179 | E2BRuntime 创建并共享一个 sandbox handle,校验 API key、absolute Linux cwd 与 timeout,准备 0700 runtime root,用随机 HOME 隔离 SDK login shell,并在 bootstrap failure/dispose 时 kill。 | 20 | 20 |
SANDBOX-E2B-PGIDE2B 进程组身份、TERM→KILL 与静止探测 | packages/e2b/subprocess-e2b/src/process.ts:93-665 | 远端 wrapper 用 setsid 并发布实际 PGID;termination 对负 PGID 发 TERM、超时后 KILL 与 SDK kill,再以 ps 排除 zombie/dead entries 后确认 group quiescence。 | 20 | 20 |
SANDBOX-E2B-PUBLICATIONE2B 原子 publication 与取消 commit point | packages/e2b/fs-e2b/src/index.ts:510-579 | 远端写入创建随机 0700 sibling staging、上传带 version metadata 的文件并保留 mode;commit 用无 signal 的 ln -T 或 rename,之后 best-effort 清理。 | 20 | 20 |
SANDBOX-E2B-SUBPROCESSE2B 远端 executable、进程与 Terminal seam | packages/e2b/subprocess-e2b/src/index.ts:103-204 | provider 在 shared sandbox 内解析 absolute/bare executable,spawn 受管 process handle,并以 owner runtimeRoot 分配 process/terminal state;terminal setup 有取消与 disposal publication fence。 | 20 | 20 |
SANDBOX-EDIT-TOOLEdit 工具的 policy、guard 与 observation 控制流 | packages/fs/tool-fs/src/edit.ts:112-146 | edit 在 I/O 前解析 policy 与目标,在 try 内取得 version intent 并调用 provider atomic edit;失败统一映射,成功后刷新 present observation。 | 20 | 20 |
SANDBOX-ESCALATION严格单调且执行前完成的升级审批 | packages/sandbox/sandbox/src/escalation.ts:22-187 | 升级表只允许严格更宽的目标;参数必须成对且理由非空,审批在执行前携带取消 signal,只有 allowed-once 返回本次调用的更宽 mode。 | 20 | 20 |
SANDBOX-FS-ATOMIC本地原子 staging 与 publication | packages/fs/fs-local/src/fsio.ts:518-615 | 写入使用 0700 sibling staging directory、0600 exclusive file 与 sync;commit 前检查取消,然后以 hard-link no-replace、Windows ReplaceFile 或 rename 发布,commit 后清理为 best effort。 | 20 | 20 |
SANDBOX-FS-ESCALATIONFilesystem mutation 的条件升级接口 | packages/fs/tool-fs/src/sandbox.ts:20-130 | Controller 仅在 ctx.fs 暴露 sandboxMode 时发布升级字段并要求 shared policy;每次 mutation 解析 standing/approved policy,并把 FS_SANDBOX_DENIED 映射为共享 marker 与 hint。 | 20 | 20 |
SANDBOX-FS-FENCE仅约束 mutation 的进程内 Filesystem 围栏 | packages/fs/fs-sandbox/src/index.ts:1-149 | SandboxedFileSystem 原样继承读取,只在 write/edit 前按每调用 policy 检查;read-only 拒绝、workspace-write fresh resolve 后校验 writable roots、full 直接通过,并明确接受剩余 TOCTOU。 | 20 | 20 |
SANDBOX-FS-IDENTITY存在与缺失目标的 realpath 身份 | packages/fs/fs-local/src/fsio.ts:105-194 | 存在目标使用自身 realpath;缺失目标向上寻找最近存在祖先、规范化后拼回缺失 suffix,使 symlink alias 在创建前后保持目标身份。 | 20 | 20 |
SANDBOX-FS-LOCAL本地 Filesystem 的 cwd 与 canonical target | packages/fs/fs-local/src/index.ts:40-123 | LocalFileSystem 明确说明 cwd 只是相对路径默认而非 containment,provider 以 canonical targetKey 做锁与 I/O 身份,并用平台路径语义实现 contains。 | 20 | 20 |
SANDBOX-FS-LOCAL-MUTATION本地逐目标 mutation 锁与 guard | packages/fs/fs-local/src/index.ts:70-255 | 同一 provider 以 targetKey FIFO 锁串行 mutation;write/edit 在锁内 probe、验证 create/replace/version guard,再调用 atomic writer 并返回新版本。 | 20 | 20 |
SANDBOX-FS-READ-IO本地文本、字节与流式读取语义 | packages/fs/fs-local/src/fsio.ts:17-463 | whole text 读取完整文件并做 UTF-8/NUL 检查;raw-byte path 强制 maxBytes;stream path 跨 chunk 解码并仅在前 8192 bytes 做 NUL sample,且传播取消。 | 20 | 20 |
SANDBOX-FS-SEAMFilesystem provider 与事件 seam | packages/fs/fs/src/index.ts:44-249 | FileSystem 声明路径、读取、列表与原子 mutation API;fs write/edit intent 是 single-slot waterfall,observed 是同步 emit,sandboxMode 可选暴露 mutation confinement。 | 20 | 20 |
SANDBOX-FS-TYPESFilesystem 的身份、观察、guard 与错误类型 | packages/fs/fs/src/types.ts:11-203 | 类型定义把 target/version 设为 opaque identity,区分 present/absent observation,定义 guarded create/replace intent,并列出含 FS_SANDBOX_DENIED 的结构化 FsErrorCode。 | 20 | 20 |
SANDBOX-LOCAL-DIALECTS本地平台 runner 链与诊断方言 | packages/sandbox/sandbox-local/src/index.ts:150-240 | 源码定义 Linux bwrap→Landlock、macOS Seatbelt、Windows ACL 链,分别标注 full/partial enforcement、denial signatures 与 runner-failure rules。 | 20 | 20 |
SANDBOX-LOCAL-SELECTRunner 选择、缓存与关闭失败 | packages/sandbox/sandbox-local/src/index.ts:485-539 | provider 生命周期内缓存一次 chain verdict;单候选不 probe,多候选按序 probe,空链或全部 unusable 返回结构化 unavailable,而不是原 argv。 | 20 | 20 |
SANDBOX-LOCAL-WRAP自定义 runner 的验证与包装 | packages/sandbox/sandbox-local/src/index.ts:276-333 | 构造器验证 runnerCommand 与 failure signatures 必须成对;配置的 runner 跳过平台选择,用 bwrap-shaped profile 包装并由 operator 声明 full enforcement。 | 20 | 20 |
SANDBOX-MODE-EVENTSession 沙箱模式事件与 fold | packages/sandbox/sandbox-policy/src/session-mode.ts:24-71 | sandbox/mode 是 log-only Session event;effectiveSandboxMode 反向寻找最后一次写入,setSandboxMode 的唯一动作是追加该事件。 | 20 | 20 |
SANDBOX-OBSERVATION按 Session owner 隔离的 observation 状态机 | packages/fs/fs-observation-policy/src/index.ts:17-130 | plugin 用 WeakMap<owner,Map<target,observation>> 保存易失状态;unseen/absent/present 决定 create 或 version guard,dispose 重置状态,三个 listener 占据 intent slots 并同步记录 observed。 | 20 | 20 |
SANDBOX-PERMISSION-PRESETSPermission preset 的默认 bundle 与启动校验 | packages/interaction/permission-presets/src/index.ts:139-225 | service 默认提供 workspace-write+ask 与 danger-full-access+never,要求 shell 和 approval,并只用 ctx.shell.sandboxMode 验证存在 confining shell;新 Session 会被 pin 初始权限。 | 20 | 20 |
SANDBOX-PERMISSION-WRITEPermission preset 的三事件写入路径 | packages/interaction/permission-presets/src/index.ts:369-430 | 切换时先按需追加 permission/preset,再通过 canonical setters 更新 sandbox/mode 与 approval/policy;新 Session 也补齐缺失的三个 durable facts。 | 20 | 20 |
SANDBOX-POLICY共享沙箱策略的逐调用解析 | packages/sandbox/sandbox-policy/src/index.ts:60-150 | SandboxPolicyService 自身默认 read-only;每次 resolve 都按显式 mode、Session 最后 override、部署默认的顺序选 mode,并优先以 Session cwd 作为 workspace root。 | 20 | 20 |
SANDBOX-PROFILESBwrap、Landlock 与 Seatbelt profile | packages/sandbox/sandbox-local/src/profiles.ts:11-58 | Bwrap 把根只读 bind 并在 workspace mode 使用独立 /tmp;Landlock grant host /tmp 与 workspace;Seatbelt 默认 allow、拒绝文件写后再放行共享 writable roots。 | 20 | 20 |
SANDBOX-READ-TARGETRead 目标解析与 absent observation | packages/fs/tool-fs/src/read-target.ts:12-34 | 共享 helper 从 Session cwd resolve、stat 目标;确认缺失时先 emit absent observation 再抛 FS_NOT_FOUND,并拒绝非普通文件。 | 20 | 20 |
SANDBOX-READ-TOOLRead 工具的 bounded window 与 present observation | packages/fs/tool-fs/src/read.ts:134-163 | read 做一次 stat 取得类型、size 与 version,按 size 选择 whole/stream,构造 bounded window,并仅在成功后 emit present observation。 | 20 | 20 |
SANDBOX-RESULT-CLASSIFIER沙箱拒绝与 runner failure 分类器 | packages/shell/bash-sandbox/src/helpers.ts:25-116 | spawn attribution 要求可用 workdir 与精确 runner path/syscall;settled runner failure 按 exit gate、信息行排除和 fatal stderr 匹配,denial 仅在非零退出时按签名匹配。 | 20 | 20 |
SANDBOX-SEAM进程文件副作用约束的沙箱合同 | packages/sandbox/sandbox/src/index.ts:23-175 | 源码把三种 mode 定义为文件副作用策略,并要求 provider 按调用接收完整 policy、返回精确包装 argv、enforcement 与诊断规则;不可用时必须 fail closed。 | 20 | 20 |
SANDBOX-SEARCH-WORLDGlob 与 Grep 的 subprocess execution-world 假设 | packages/fs/tool-fs-search/src/index.ts:1-24 | 搜索工具通过 ctx.subprocess 运行 packaged ripgrep,刻意不注入 ctx.fs;返回路径只有在 subprocess workdir 与 filesystem root 共址时才能被 follow-up read,且运行时不验证这一点。 | 20 | 20 |
SANDBOX-SESSION-CWDFilesystem 工具的 Session cwd 解析 | packages/fs/tool-fs/src/session-cwd.ts:16-46 | 工具从调用 Agent 的 Session header 取 cwd;遇到 parent traversal 时重新 canonicalize,并让 sandbox policy root 在 mutation resolve 时优先。 | 20 | 20 |
SANDBOX-TERMINAL-FENCEPersistent Terminal 的 mode fence 与 confined spawn | packages/terminal/terminal-bash/src/index.ts:27-145 | owner-scoped listener 在 PTY open/creation 期间拒绝不同 sandbox/mode;spawn 按 Session 解析 policy、包装 argv、使用 policy root,并在 initialize failure 时 await close cleanup。 | 20 | 20 |
SANDBOX-WRITABLE-ROOTS可写根的规范化与推导 | packages/sandbox/sandbox/src/roots.ts:20-55 | canonicalPath 尽力使用 native realpath;writableRoots 在 read-only 下为空,在 workspace-write 下规范化、去重 workspace root、/tmp 与 os.tmpdir()。 | 20 | 20 |
SANDBOX-WRITE-TOOLWrite 工具的 policy、intent 与 observation 控制流 | packages/fs/tool-fs/src/write.ts:102-128 | write 在 I/O 前解析 policy 与目标,取得 single-slot intent,调用 provider mutation,映射 denial/error,并在成功后记录返回 version 的 present observation。 | 20 | 20 |
SDK-DOC-STALE-ACCEPTEDTypeScript SdkProtocolError 注释已过时 | packages/sdk/client/src/client.ts:55-290 | 类注释仍以缺少 accepted:true 的 prompt 响应为例,但当前实现和 wire 合约要求 messageId。 | 29 | 29 |
SDK-JSONL-TRANSPORTSDK 的 newline JSON transport | packages/sdk/protocol/src/transport.ts:1-268 | 出站 frame 总是写 jsonrpc:2.0;入站只按 id/method 分类,不校验该字段或完整 envelope。StringDecoder 保护拆分 UTF-8;非法行、未知 response id 被忽略,请求 handler 缺失与抛错分别映射 -32601/-32603。 | 29 | 29 |
SDK-PY-CLIENTPython SDK 的同步客户端与双向 request 面 | python/sdk/src/deepseek_harness/client.py:24-397 | Python 客户端发送相同请求并公开 future server-request API;环境从父进程复制后 merge override。close 在 shutdown response 后若进程仍活即 terminate;清空 _proc 后同一实例可 restart,但 start 不清除 close 留在 global notification/server-request queue 的 sentinel。 | 29 | 29 |
SDK-PY-MODELSPython initialize response 的宽松模型 | python/sdk/src/deepseek_harness/models.py:26-32 | Python 的 ServerInfo.name/version 与 InitializeResponse.serverInfo 都可缺省。 | 29 | 29 |
SDK-PY-READERPython SDK 的等待、解析与订阅 | python/sdk/src/deepseek_harness/client.py:228-396 | 每个请求由 UUID 和 queue 关联;超时删除 waiter 并附进程诊断,reader 忽略非法 JSON,把服务端 request、response、notification 分流,filter 抛错只终止自己的订阅。 | 29 | 29 |
SDK-PY-RESULTPython SDK 的配置与 RunResult 合约 | python/sdk/src/deepseek_harness/api.py:13-84 | Python 高层配置提供 session_root、base_url、api_key 等便利入口并合并到环境;RunResult 额外含 finish_reason 与 session_root。 | 29 | 29 |
SDK-PY-RUNPython 高层 run 的 receipt-to-idle 语义 | python/sdk/src/deepseek_harness/api.py:97-242 | Python 同样先订阅 session tree,再以 messageId receipt 为起点收集到 idle;它额外从最后一个 turn/end 提取 finish_reason,并在 reason.kind 非字符串时抛 SdkProtocolError。 | 29 | 29 |
SDK-SERVER-EVENTSSDK server 的全局通知订阅 | packages/sdk/server/src/server.ts:48-103 | 构造时订阅 context 内全部 session/event、agent/status 与 child lifecycle;只以 snapshotted local 标志报告本地 subagent 完成,不按 ID 或 lineage 猜 locality。 | 29 | 29 |
SDK-SERVER-INITSDK server initialize 与分派状态 | packages/sdk/server/src/server.ts:48-201 | 类注释称重复初始化不支持,但类没有 initialized 状态;initialize 每次改写 cwd/provider/model/maxTokens,handleRequest 也不在 session/prompt 前检查握手。 | 29 | 29 |
SDK-SERVER-SESSIONSSDK session 创建与 teardown | packages/sdk/server/src/server.ts:127-239 | sessionId 首次 prompt 时惰性创建,同 ID 并发创建被合并;prompt 验证 agent 仍是 live exact instance;shutdown 拒绝新创建、等待在途创建并 allSettled 所有 handle 与 fallback adapter。 | 29 | 29 |
SDK-SERVER-SHUTDOWNSDK runtime 的 shutdown/exit 顺序 | packages/sdk/server/src/index.ts:40-91 | shutdown result 写出后,下一事件循环 flush transport、dispose root fiber 并 exit 0;插件单独卸载的成功路径先 shutdown server 再 close transport,但前者 reject 会因缺少 finally 而跳过 close。 | 29 | 29 |
SDK-TS-CLIENTTypeScript SDK 的错误、超时与关闭 | packages/sdk/client/src/client.ts:175-401 | 客户端惰性启动子进程,initialize 只校验身份字段为字符串;timeout 只删除本地 pending,服务端工作继续;wire error 保留 code/data,transport error 添加 exit code 与 400 行 stderr tail;close 先 best-effort shutdown 后权威回收进程。 | 29 | 29 |
SDK-TS-DISPOSETypeScript SDK 的进程回收阶梯 | packages/sdk/client/src/dispose.ts:13-99 | 回收依次尝试 stdin EOF、POSIX SIGTERM、SIGKILL,并在每层清理 timer/listener;最终只有观察到 exit 才 resolve,Windows 直接走强制终止。 | 29 | 29 |
SDK-TS-RESULTTypeScript SDK 的 launch 与 RunResult 合约 | packages/sdk/client/src/types.ts:22-70 | 显式 env 会完整替换子进程环境;RunResult 只有 sessionId、finalResponse、events、notifications,没有 finish reason。 | 29 | 29 |
SDK-TS-RUNTypeScript 高层 run 的活动区间 | packages/sdk/client/src/api.ts:139-245 | 订阅先于 prompt,客户端忽略 durable inbox receipt 之前的通知,从匹配 messageId 收集到下一次 whole-agent idle;finalResponse 是该区间最后一个已提交 assistant 文本,不是 prompt-causal 结果。 | 29 | 29 |
SDK-WIRE-METHODSSDK wire 的三请求四通知 | packages/sdk/protocol/src/types.ts:15-105 | 客户端只有 initialize、session/prompt、shutdown;服务端通知 session.event、session.status、subagent.started、subagent.finished;prompt 只返回 messageId,完整 SessionEvent 进入 wire vocabulary。 | 29 | 29 |
SEC-ACP-BRIDGEACP session 与审批桥接语义 | packages/acp/acp/src/index.ts:212-274 | ACP 为 session 创建一次性 owned approval answerer;authenticate 为 no-op,方法面把 client 的 cwd 写入新 Agent metadata,没有另加用户认证。 | 31 | 31 |
SEC-ACP-CWDACP cwd 的 absolute-path 校验 | packages/acp/acp/src/index.ts:430-433 | 新 Session 请求若提供非 absolute cwd,会在创建 Agent 前被拒绝。 | 31 | 31 |
SEC-ACP-TRUSTACP 的受信程序化 stdio 边界 | packages/acp/acp/src/index.ts:1-45 | ACP adapter 自述为 trusted programmatic stdio boundary,并允许 controller 创建 Agent。 | 31 | 31 |
SEC-APPROVAL-CLOSED审批审计与 fail-closed 结算 | packages/interaction/user-approval/src/index.ts:239-343 | 审批要求 open turn,记录 asked/decided 事件;never、缺失或异常 answerer、非法答案及取消都不会执行,只有 allowed-once 构成 grant。 | 31 | 31 |
SEC-BOOT-TRANSACTION事务化启动与失败清理 | packages/boot/app-boot/src/index.ts:757-801 | prepare、mount、settle 与激活检查按序执行;任意失败都会处置部分根并保留更深错误栈。 | 31 | 31 |
SEC-BROWSER-FENCEBrowser API 的 Host/Origin request fence | packages/client/connection/src/api-request-trust.ts:1-122 | 请求按 Host、Fetch Metadata 与 Origin 做浏览器来源检查;源码明确该机制是 request fence 而非 authentication。 | 31 | 31 |
SEC-BROWSER-PRIVILEGEDBrowser API 的 privileged config plane | packages/client/connection/src/index.ts:69-159 | 配置变更方法被限制到 loopback;普通 Agent/Session 方法仍向任何通过 request fence 的可达客户端提供高权限控制面。 | 31 | 31 |
SEC-CHILD-ENV子进程环境的 heuristic scrub | packages/subprocess/subprocess/src/index.ts:37-66 | 子进程从 ambient environment 删除名称匹配 KEY/PASSWORD/SECRET/TOKEN 或 DSH_* 的变量;显式 env 层随后可恢复任意条目,因此这是名称 heuristic 而非 secret-taint tracking。 | 31 | 31 |
SEC-CREDENTIAL-FILEManaged credential 文件保护与解析 | packages/credentials/credentials-local/src/index.ts:87-185 | POSIX 上,含 group/other 权限位的现存文件会在读取前被拒绝;Windows 跳过 mode assertion,解析和错误路径避免输出 secret value。 | 31 | 31 |
SEC-CREDENTIAL-LAYERS本地凭据分层优先级 | packages/credentials/credentials-local/src/index.ts:1-34 | provider 按 inherited environment、managed store、fallback environment 的顺序解析,managed 文件不被复制进 process.env。 | 31 | 31 |
SEC-CREDENTIAL-RESOLVE凭据解析、无值描述与 shadow guard | packages/credentials/credentials-local/src/index.ts:249-380 | inherited 引用优先且只读,managed/fallback 引用按明示层解析;describe 不返回值,set/unset 在排队前和执行时都拒绝被 inherited 环境遮蔽的写入。 | 31 | 31 |
SEC-CREDENTIAL-SEAM凭据 reference/value 分离 seam | packages/credentials/credentials/src/index.ts:1-99 | 配置与 UI 只持有 CredentialRef 和不含值的 description,secret 在具体操作时由 provider resolve。 | 31 | 31 |
SEC-CUSTOM-RUNNER自定义 runner 的信任合同 | packages/sandbox/sandbox-local/src/index.ts:276-333 | 配置 custom runner 会绕过平台选择;实现只验证命令和失败签名的形状,随后把 operator 的 runner 当作 full enforcement。 | 31 | 31 |
SEC-DYNAMIC-CLIENT动态 Client code 的 evaluator 能力面 | packages/extensions/cordis-client-runner/src/client/evaluator.ts:1-222 | Client evaluator 在 page realm 用 new Function 执行代码,shadow 部分 bare global 并把 process/Buffer 设为 undefined,但 ambient page globals 仍可达。 | 31 | 31 |
SEC-DYNAMIC-GUARD动态插件 Context facade 与 tool bypass 防护 | packages/extensions/cordis-host-runner/src/guard.ts:620-819 | Property-style Service access 要求 declared inject,但 optional ctx.get 不受该 gate 限制;wrapper 只拒绝 direct Context return,tools façade 则阻止取得可绕过 ToolRuntime 的 live execute。 | 31 | 31 |
SEC-DYNAMIC-RUN动态 Host/Client package 激活分支 | packages/extensions/cordis-host-runner/src/index.ts:238-312 | Host-only package 可直接激活;含 Client code 的 package 需要 approval 或现存 grant,且 package-wide grant 可覆盖后续版本。 | 31 | 31 |
SEC-DYNAMIC-VMnode:vm 的非恶意代码边界 | packages/extensions/cordis-host-runner/src/sandbox.ts:1-11 | Host runner 明确声明 node:vm 只用于便利性隔离,不是针对 malicious code 的安全边界。 | 31 | 31 |
SEC-E2B-OWNERE2B remote context 的单一 owner | packages/e2b/e2b/src/index.ts:1-179 | 配置解析 API key 与 cwd,每个 Context 只有一个共享 sandbox handle,为内部 login shell 随机化 HOME,建立 owner-only runtime 目录;setup failure 后尝试 rollback kill,timeout/dispose 时请求 kill,并避免把 API key 注入 remote environment。 | 31 | 31 |
SEC-ENV-LAYERS启动环境分层与 bootstrap denylist | packages/boot/app-boot/src/index.ts:92-198 | 启动按 inherited、invoking-directory .env、Harness-home .env 分层;先解析两个文件,再拒绝可重定向启动、模块、VCS、代理、证书、provider 及 DSH_/XDG_/DYLD_ 前缀的变量,最后以 inherited-wins 语义物化。 | 31 | 31 |
SEC-ESCALATION单次 sandbox escalation 控制流 | packages/sandbox/sandbox/src/escalation.ts:143-188 | 升级模式必须更宽且存在 Agent 与 approval service;reason 和 call identity 被审计,只有 allowed-once 把更宽模式盖到该次调用。 | 31 | 31 |
SEC-FS-FENCE文件系统 mutation containment | packages/fs/fs-sandbox/src/index.ts:1-149 | 包装层保持 read 不变,只围住 writeText/editText;workspace-write 在 syscall 前重新 canonicalize 并检查 workspace/temp containment,源码接受最终检查后的 ancestor-symlink race。 | 31 | 31 |
SEC-LANDLOCK-PROBELandlock probe 的 enforcement 结果 | packages/sandbox/sandbox-local/src/index.ts:500-527 | Runner chain 使用 functional probe 选择可用项;Landlock probe 按 launcher/ABI 支持返回 full、partial 或 unusable。 | 31 | 31 |
SEC-LOADER-IMPORT根 Include 的模块解析与创建 | packages/boot/app-boot/src/index.ts:475-528 | 相对插件从配置文件旁解析,bare 插件从 module base 解析,随后由 Loader 创建组合树。 | 31 | 31 |
SEC-LOCAL-RUNNERS本地 sandbox runner 选择与静态保证 | packages/sandbox/sandbox-local/src/index.ts:150-240 | Linux 依次选择 bubblewrap、Landlock,macOS 使用 Seatbelt,Windows 使用 ACL runner;bubblewrap/Seatbelt 声明 full,Windows 因 ACL/hard-link 语义声明 partial,Landlock 由 probe 决定。 | 31 | 31 |
SEC-MCP-EXECMCP 调用与结果边界 | packages/mcp/mcp-client/src/tools.ts:218-277 | 桥接器不按 advertised input schema 做本地 argument 校验;它归一化 top-level result,同时分开 Native text projection 与为 Code Mode 保留的 canonical JSON content;远端 server 仍是实际执行 authority。 | 31 | 31 |
SEC-MCP-SYNCMCP 工具 discovery 与 generation swap | packages/mcp/mcp-client/src/tools.ts:128-173 | Discovery 先构造完整 candidate map;swap 时先 dispose 旧集合,再顺序注册新集合,registry conflict 只清理部分新集合并留下空 generation,不恢复旧集合。 | 31 | 31 |
SEC-MCP-TRANSPORTMCP stdio/HTTP transport 边界 | packages/mcp/mcp-client/src/transport.ts:1-49 | stdio server 由 MCP SDK 直接启动并接收 scrubbed environment;HTTP server 接收配置的 URL 与 headers。 | 31 | 31 |
SEC-MODEL-PARSE模型工具参数的解析边界 | packages/core/agent-loop/src/tool-calls.ts:59-110 | 工具块被转换为执行请求;有效 JSON 被解析,空参数成为对象,无效 JSON 保留为 raw string 交给后续工具验证。 | 31 | 31 |
SEC-PATCH-LAYERS用户 patch 解析与 fail-loud 语义 | packages/boot/app-boot/src/index.ts:267-337 | 可选与必需 patch 层可以替换配置、插入 Loader 行并使用 !!js;存在但不可读、不可解析或顶层形状错误的层会使启动失败。 | 31 | 31 |
SEC-PLUGIN-PNPM插件安装与 bundle 自动激活 | apps/cli/src/plugin.ts:55-157 | 插件命令转发给 pnpm;成功后把声明 bundle patch 的已安装依赖同步进 profile,relative spec 以调用目录为基准,git build policy 交给 pnpm。 | 31 | 31 |
SEC-PRESETS-PIN每 session 权限事实的应用与固定 | packages/interaction/permission-presets/src/index.ts:379-430 | 新 session 写入 durable preset、sandbox mode 与 approval policy 事实;已有或部分初始化 session 只补缺失事实而不重写现存选择。 | 31 | 31 |
SEC-PRESETS-VALIDATE权限 preset 的依赖与默认表校验 | packages/interaction/permission-presets/src/index.ts:155-225 | 服务要求 shell 声明 sandboxMode policy capability 并要求 approval service;内置表将 workspace-write 对应 ask、danger-full-access 对应 never,并在发布设置前验证默认项。 | 31 | 31 |
SEC-PROFILE-ORDERProfile 的实际叠层顺序 | apps/cli/src/profile-boot.ts:121-170 | 有效配置按 bundle、profile、home、CLI overlay 及 launcher-owned overlay 的顺序组合,后层可改变或插入运行时行。 | 31 | 31 |
SEC-PROVIDER-CONFIGProvider endpoint 与 credential 配置 | packages/llm/llm-deepseek/src/index.ts:149-246 | DeepSeek adapter 校验有边界的 request/model settings,快照 configured endpoint、credential ref 与请求设置,并在发起操作时解析实际 key;endpoint 本身只是 string。 | 31 | 31 |
SEC-PROVIDER-TRANSPORTProvider HTTP 传输的数据边界 | packages/llm/llm-deepseek/src/adapter.ts:214-345 | adapter 把消息、工具 schema、请求参数、API key 及请求标识发送给配置 endpoint,并处理流式响应。 | 31 | 31 |
SEC-RAW-TOOL-REGISTER底层工具注册合同 | packages/core/tools/src/index.ts:1031-1061 | register 验证输出合同、timeout 与保留名,但没有为任意 ToolDefinition.execute 注入通用输入验证包装。 | 31 | 31 |
SEC-REMOTE-CARRIERRemote 调用复用 active Connection | packages/api/gateway/src/client/index.ts:399-409 | Generated Remote 调用要求 active Connection,并经该 Connection 的 /api RPC 发送 endpoint 与 args,再以 descriptor codec 解析结果。 | 31 | 31 |
SEC-REMOTE-CODECSGenerated Remote 的 strict codec gate | packages/api/gateway/src/client/index.ts:549-575 | Client gateway 要求 result、parameter 与 context invocation 都携带 strict codec,并用其 schema 解析 wire value;缺失或 parse failure 会 fail loud。 | 31 | 31 |
SEC-REMOTE-EVENTSRemote event allowlist 与原样数据 | packages/api/remotes/src/remote-events.ts:1-29 | 转发事件使用显式 allowlist,但被允许 payload 按原内容发送,没有通用 redaction 层。 | 31 | 31 |
SEC-REMOTE-MOUNTRemote contribution 的固定挂载面 | packages/api/remotes/src/client/index.ts:97-121 | Client assembly 只挂载预定义 contribution 类别;失败时和 dispose 时都按反序清理已挂载项。 | 31 | 31 |
SEC-SANDBOX-SEAMSandbox 的 file-effect 合同 | packages/sandbox/sandbox/src/index.ts:23-175 | sandbox 只定义三种文件效果模式;provider 必须返回包装命令、enforcement level 与诊断 dialect,没有可用后端时 fail closed,合同不包含网络或进程可见性。 | 31 | 31, 33 |
SEC-SDK-CLIENTTypeScript SDK 的受信 stdio 控制器 | packages/sdk/client/src/client.ts:175-260 | SDK client 可拥有 server 子进程、继承或覆盖环境并通过 stdio RPC 控制;timeout 只从 client pending map 放弃请求,不是 server-side cancellation。 | 31 | 31 |
SEC-SDK-FILTERSession-tree client-side 过滤 | packages/sdk/client/src/client.ts:354-370 | SDK client 在收到全局 notification 后按 root Session tree 本地过滤;该 helper 不是 server-side authorization。 | 31 | 31 |
SEC-SDK-PYTHONPython SDK 的环境继承 | python/sdk/src/deepseek_harness/client.py:63-83 | Python client 复制完整 parent environment、合并 caller overrides,再启动 stdio server。 | 31 | 31 |
SEC-SDK-SERVERSDK server 初始化与全局事件面 | packages/sdk/server/src/server.ts:48-124 | stdio server 接受 initialize 参数来选择 cwd、provider 与 model,并把全局事件投影给 controller;私有管道由进程所有权而非协议 authentication 保护。 | 31 | 31 |
SEC-SKILL-INVOCATION-GATESSkill 的模型与用户调用门槛 | packages/skill/tool-skill/src/index.ts:127-227 | 模型工具在 summary 与已加载定义上都检查 model-invocable,用户显式调用只注入 user-invocable skill,模型 catalog 只保留 model-invocable 项。 | 31 | 31 |
SEC-SKILL-TRUSTSkill wrapper 与原文指令信任 | packages/skill/skill/src/index.ts:157-183 | Skill wrapper 会转义 name attribute,但 body 作为 trusted local content 原样嵌入 prompt,因此 skill provenance 属于指令供应链。 | 31 | 31 |
SEC-TOOL-ARG-SNAPSHOT策略前的参数快照与冻结 | packages/core/tools/src/index.ts:1364-1450 | 执行参数先被 lossless-JSON 快照并深度冻结;无法安全读取或序列化的值直接产生错误结果。 | 31 | 31 |
SEC-TOOL-DEFINEdefineTool 的输入输出验证 | packages/core/tools/src/schema.ts:538-617 | defineTool 编译参数和输出 schema,在执行用户函数前验证参数,并以软验证处理可能来自旧 schema 的 replay 参数。 | 31 | 31 |
SEC-TOOL-GATE工具 pre-execute、approval 与 guard 顺序 | packages/core/tools/src/index.ts:1453-1506 | pre-execute 从默认 allow 开始,只有 ask 才调用 approval;允许结果仍经过单调 guard,拒绝或取消均在函数体 dispatch 前结算。 | 31 | 31 |
SEC-WORKER-TRUSTWorker thread 的非安全边界声明 | packages/code-runtime/code-runtime-worker-thread/src/index.ts:1-6 | 源码明确 worker containment 不是 adversarial security boundary,暴露给模型的 worker code 应按 bash-equivalent authority 处理。 | 31 | 31 |
SESSION-APPEND-COMMITSession.append 的同步提交点 | packages/core/session/src/index.ts:550-654 | Append 先 snapshot JSON 与 surface metadata、freeze candidate、验证 surface、解析 precommit dispatch;log.push 是提交点,随后 observer failure 被隔离,重入 append 被拒绝。 | 09 | 09, 33 |
SESSION-CORE-EVENTS核心 SessionEvent vocabulary | packages/core/session/src/types.ts:230-332 | 核心声明 Turn/Step、user、raw assistant chunks、assembled assistant、tool call/result、todo、request header/context 与 end-seed 事件及其 payload 语义。 | 09 | 09 |
SESSION-DERIVED-CACHEDerived message 的增量 cache | packages/core/session/src/index.ts:700-747 | 无 replacement 时只投影新增 surface nodes;generation 变化则全量重建;每次返回新 array,但共享事件中已冻结 message。 | 09 | 09, 14 |
SESSION-EVENT-ENVELOPESessionEvent envelope、surface marker 与 ignorable | packages/core/session/src/types.ts:335-435 | 事件是按 type 区分的 union,含 seq/time/data;只有三类 message event 可带 surfaceOp/sourceEventSeqs,未知事件只有 ignorable=true 才可安全跳过。 | 09 | 09 |
SESSION-FORMAT-HEADERSession format version 与持久 header | packages/core/session/src/types.ts:33-99 | 格式版本固定为 0 且无兼容承诺;header 保存 identity、createdAt、cwd、fork parent/seedLength、subagent origin/depth 与 agent preset。 | 09 | 09, 12 |
SESSION-INVARIANT-COMMITInvariant 的 precommit staging 与 postcommit advance | packages/core/session/src/invariant.ts:189-250 | Companion 从现有日志建 trace,在 internal/dispatch 纯验证并暂存 transition,只有匹配的 session/event 发布后才推进;veto 不污染状态。 | 09 | 09 |
SESSION-LOSSLESS-JSON一次遍历的 lossless-JSON snapshot | packages/core/session/src/json.ts:69-178 | 迭代遍历一次读取、校验并复制 plain JSON graph;拒绝稀疏/循环/exotic object、负零、非有限数和非字符串 own key。 | 09 | 09 |
SESSION-RELATIONAL-INVARIANT可选的 Turn/Step/tool 关系 invariant | packages/core/session/src/invariant.ts:54-165 | Companion 检查 seq、Turn/Step 编号与闭合、execution event enclosure、同 Step call/result 配对;merge-extensible 事件关系交给 owner。 | 09 | 09 |
SESSION-SEED-ACCEPTANCESeed 的逐事件接纳与 end-seed 边界 | packages/core/session/src/index.ts:499-547 | Seed 事件被 snapshot/adopt、校验 envelope/header/连续 seq,并经同一 surface transition 接纳;构造后记录 firstLiveSeq,缺少 marker 时追加 end-seed。 | 09 | 09 |
SESSION-SURFACE-PROJECTIONEvent 到 model-visible message 的唯一投影 | packages/core/session/src/surface.ts:70-142 | 只有 user/message、非空 assistant/message 与 tool/result 投影,且直接复用已冻结 message;boundary、chunk 和 log-only event 不进入模型历史。 | 09 | 09, 10, 14 |
SESSION-SURFACE-PROVENANCESurface eligibility 与 source provenance 校验 | packages/core/session/src/surface.ts:184-243 | 三类 eligible event 强制 surfaceOp,其他事件禁止 surface metadata;source seq 必须唯一且更早,replacement 必须覆盖每个被遮蔽 node。 | 09 | 09 |
SESSION-SURFACE-REPLACEPositional surface replacement 的原子 fold | packages/core/session/src/surface.ts:245-379 | Replace 在当前 node list 中定位 start/end,计划后一次 splice 成新 node 并递增 generation;tool/result 只能改写一个当前 result 的 content。 | 09 | 09 |
SESSION-UNKNOWN-EVENT-GATE未知 required event 的恢复拒绝 | packages/session/session-persistence/src/coordinator.ts:1046-1065 | 持久化 load 在 normalization 后逐事件检查 known catalog;未知且未标 ignorable 的 event 使整份 session fail-closed。 | 09 | 09 |
SHELL-BACKGROUND-OUTCOME后台 Shell outcome 映射 | packages/shell/tool-bash/src/background.ts:9-27 | 被 signal kill 的进程映射为 killed;其他退出(包括非零)映射为 completed 并携带 exit code;TODO 记录无约束 spawn failure 仍可能别名为 kill。 | 21 | 21 |
SHELL-BASH-CWDBash canonical policy-root workdir 解析 | packages/shell/tool-bash/src/index.ts:138-156 | Bash 优先使用 sandbox policy workspace root,否则 canonicalize Session cwd,并以该 identity 解析相对 workdir。 | 21 | 21 |
SHELL-BASH-TOOLBash 前后台所有权移交 | packages/shell/tool-bash/src/index.ts:330-389 | 工具先解析审批、目录与 managed env;后台在 signal precheck 后由 jobs.start 原子 preflight/spawn 并发布 ID,前台则把 tool signal 交给 executor。 | 21 | 21 |
SHELL-E2B-SEAM远端 E2B 子进程与 Terminal provider | packages/e2b/subprocess-e2b/src/index.ts:51-205 | E2B 作为 SubprocessRuntime provider 实现远端 executable lookup、普通 process handle、Terminal allocation、publication fence 与 disposal cleanup,上层 consumer 不需要专用工具包。 | 21 | 21 |
SHELL-ENV-LIST-GAP受管环境列表遗漏内建变量 | packages/shell/shell-env/src/index.ts:175-192 | 源码 TODO 明确 list() 只枚举 contributor declarations,不包含 registry-owned built-ins,不能被诊断/UI 当作完整环境目录。 | 21 | 21 |
SHELL-ENV-SCRUB共享 ambient 环境清洗 | packages/subprocess/subprocess/src/index.ts:37-66 | 子进程基线按名称移除 credential-shaped 与全部 DSH_* 变量,显式 env overlay 在后续 provider 层恢复有意传递的值。 | 21 | 21 |
SHELL-EXECUTOR-CONTRACT一次性 Shell executor 结果合同 | packages/shell/shell/src/index.ts:46-100 | run 只有 infrastructure failure reject;非零、timeout、abort 是结果事实;start 无 timeout,输出递增消费,底层 composition teardown 回收后台进程。 | 21 | 21 |
SHELL-JOB-NOTICESJob 完成投递与唤醒预算 | packages/jobs/tool-jobs/src/index.ts:205-300 | 未报告完成按 owner busy/idle 选择 inject 或 followup;默认 consecutive wake cap 为 3,只有 claim 的 user source 重置 exact-Agent budget。 | 21 | 21 |
SHELL-JOB-TOOLSJob 输出、列表与取消工具 | packages/jobs/tool-jobs/src/index.ts:302-401 | 三个工具提供可选有界 wait、消费式 output、可见列表和 cancellation request;wait timeout 留下 live Job,kill snapshot 不消费输出。 | 21 | 21 |
SHELL-JOBS-CLEANUPExact-owner Job teardown 与取消失败边界 | packages/jobs/jobs-local/src/index.ts:442-528 | Owner/service disposal 请求取消并等待所有 Job settle;cancel 抛错会 force-fail 并报告可能 orphan,返回但不 settle 的 cancel 可能阻塞 teardown。 | 21 | 21 |
SHELL-JOBS-SETTLEMENTScoped Job 访问与 first-wins settlement | packages/jobs/jobs-local/src/index.ts:307-440 | Owner 访问与 listener/observer 路由按 Session/scope 隔离;settle first-wins,并依次提交 record、释放 waiters、更新 observer、再通知 completion listener。 | 21 | 21 |
SHELL-JOBS-START本地 Job 预检、分配与注册 | packages/jobs/jobs-local/src/index.ts:86-190 | Job Registry 在 producer run 前验证 scoped controller、字段、exact live owner 和每 owner 活跃上限;成功后才运行 producer、分配 kind-N 并注册 record。 | 21 | 21 |
SHELL-MANAGED-ENV逐执行受管 DSH 环境注册表 | packages/shell/shell-env/src/index.ts:81-216 | Registry 校验 contributor/key ownership,每次收集 built-ins 与可用贡献值,排序冻结,并从 persistence seam 提供可选 JSONL 位置。 | 21 | 21 |
SHELL-OUTPUT-SPILL有界尾部收集与可信 Spill 协议 | packages/subprocess/subprocess-local/src/spawn.ts:84-247 | 本地 collector 保留精确 byte tail,使用私有目录和 exclusive 0600 spill;超过完整性上限删除,offset read 显示 lossy,seal 失败停止发布路径。 | 21 | 21 |
SHELL-PERSISTENT-BASHPersistent Bash marker 协议与逐 owner 串行化 | packages/shell/tool-bash-persistent/src/index.ts:62-398 | Wrapper 用随机 markers、scrollback 和每 owner promise queue 定界命令;timeout/abort/send failure/shell exit reset PTY,非零 exit 作为 marker 结果。 | 21 | 21 |
SHELL-PROCESS-TREE本地进程树信号与平台静止边界 | packages/subprocess/subprocess-local/src/spawn.ts:253-543 | POSIX 使用 detached process group 做 TERM→KILL 并持续探测 group liveness;Windows 通过 taskkill /T /F 请求树级终止,但 waitForExit 只以 direct-child exit 为可观察代理。 | 21 | 21 |
SHELL-PTY-CLEANUP身份围栏保护的 PTY 信号与清理 | packages/subprocess/subprocess-local/src/terminal.ts:93-248 | PTY 拒绝对顶层 shell 直接 SIGKILL,用 PID+start identity 捕获后代,并以 descendants-shell-descendants 的 TERM/KILL 顺序验证静止,survivor 使 cleanup 失败。 | 21 | 21 |
SHELL-PTY-READINESSPTY readiness 推断、中断与关闭静止 | packages/terminal/terminal-bash/src/session.ts:225-564 | Readiness 组合 session exit、受控 prompt+foreground group、exact stdin wait 与 silence inference;取消发真实 SIGINT,close 等 terminate 与 completion。 | 21 | 21 |
SHELL-PWSH-CWD-GAPPowerShell 原始 Session cwd 解析 | packages/shell/tool-pwsh/src/index.ts:147-158 | PowerShell 默认直接使用 session.header.cwd 并以它解析相对 workdir,没有 Bash 的 policy-root 优先与 canonicalPath 步骤。 | 21 | 21 |
SHELL-PWSH-INJECT当前 PowerShell inject 声明 | packages/shell/tool-pwsh/src/index.ts:42-50 | 当前生产源码实际声明 tools/shell/systemPrompt/shellEnv,直接证明 README 列表漂移。 | 21 | 21 |
SHELL-SPAWN-CONTRACT显式子进程启动、输出与句柄合同 | packages/subprocess/subprocess/src/types.ts:55-193 | Spawn spec 明确 argv/cwd/stdio/grace/signal/env;done 仅 spawn failure reject,collected output 用独立 byte offset,terminate 与 wait 以进程树为边界。 | 21 | 21 |
SHELL-SUBPROCESS-SEAM子进程执行世界与生命周期 seam | packages/subprocess/subprocess/src/index.ts:37-139 | 定义统一环境清洗,以及 executable、普通进程、PTY、树级终止、输出读取和 service disposal 合同。 | 21 | 21 |
SHELL-TERMINAL-SERVICEExact-Agent PTY 发布、所有权与关闭 | packages/terminal/terminal/src/index.ts:104-405 | Terminal service 预留 name/spawn,backend 成功后复查 exact live owner 再发布;每 Session 一个 active send,所有操作做 owner fence,close 静止后才删除且失败可重试。 | 21 | 21 |
SHELL-TERMINAL-TOOLS六个 owner-scoped Terminal 工具与后台发送 | packages/terminal/tool-terminal/src/index.ts:157-399 | 定义 open/send/read/signal/close/list;每次要求 Agent,background send 通过 pty-send Job 接管 exclusive operation、取消与 bounded output。 | 21 | 21 |
TINV-BUILT-COMPANIONS构建产物 companion 验证 | scripts/verify-built-package-invariants.mjs:31-82 | 暂存 manifest 声明的 lib 文件,通过包导出用普通 Node 导入 companion,并检查 Loader 可消费的 namespace 形状。 | 32 | 32 |
TINV-CI-CONSUMERSConsumer job 的实际 gate 闭包 | scripts/run-gates.ts:374-419 | Consumer graph 组装 build、publint、built companion、snapshot、browser snapshot、docs typecheck、Node-next types 与 built-bin smoke,并编码依赖顺序。 | 32 | 32 |
TINV-COMPANION-GATE源码 companion 门禁 | scripts/package-invariants.ts:11-286 | 扫描包拓扑并检查 companion 的导出、依赖、AST 形状、owner 名称、reporter 使用与显式无运行时规则说明。 | 32 | 32 |
TINV-CONFIG-CATALOG配置目录生成契约 | scripts/gen-config-catalog.ts:1-7 | 声明目录从入口、配置类型、JSDoc 与静态 schema 生成,并要求 schema 路径存在于声明类型。 | 32 | 32 |
TINV-CONFIG-CATALOG-CHECK配置目录路径与新鲜度检查 | scripts/gen-config-catalog.ts:719-875 | 折叠组合 schema、逐路径核对配置类型、确定性渲染,并在 --check 下逐字节验证已提交目录。 | 32 | 32 |
TINV-CONFIG-CLOSURECordis 配置闭包 | scripts/verify-cordis-config.ts:72-364 | 扫描 Loader YAML,递归遍历 entries、insert 与 include patches,并校验 example/app/bundle dependency、source-plane 映射和字符串选择的 backend 闭包。 | 32 | 32 |
TINV-CONFIG-METADATA动态配置元数据校验 | scripts/verify-cordis-config.ts:1-471 | 拒绝不会被 Loader 插值的 metadata 字段中的 !!js,并对允许的 entry-level disabled 表达式做只解析语法校验。 | 32 | 32 |
TINV-CORDIS-CATALOGCordis API 投影与新鲜度 | scripts/gen-cordis-catalog.ts:701-918 | 从发现的 service/event 生成运行时 API 与双语文档区域,执行分区闭包,并逐输出检查提交内容。 | 32 | 32 |
TINV-DOC-SYNC文档同步聚合门禁 | scripts/run-gates.ts:571-615 | 把多项源码投影、目录、示例、类型和生成文档检查组合为 doc-sync 叶子门禁。 | 32 | 32 |
TINV-LOOP-REQUESTAgent-loop 请求不变量 | packages/core/agent-loop/src/invariant.ts:18-55 | 把即将发送的冻结请求、消息和头部与 Session durable log 派生的预期输入逐项比较。 | 32 | 32 |
TINV-REGISTRY运行时不变量注册表 | packages/runtime-diagnostics/invariants/src/index.ts:49-197 | 实现过滤前名称保留、每 installer 的 child fiber、包归属错误、原子回滚与有序释放。 | 32 | 32 |
TINV-REPLAY-DERIVE从持久日志派生回放脚本 | packages/test-support/llm-replay/src/index.ts:1-263 | 按终止 chunk 划分调用,重建已标记的本地压缩调用,并要求 throw 或 hang 使用显式 override。 | 32 | 32 |
TINV-RUNTIME-CLOSURE运行时依赖闭包 | scripts/verify-runtime-closure.ts:24-73 | 从部署 manifest 的根开始遍历可达的 workspace 普通与 optional dependencies,并拒绝根 manifest 未显式供应的必需 workspace peer。 | 32 | 32 |
TINV-SESSION-COMMITSession 提交后守卫 | packages/core/session/src/invariant.ts:189-242 | 从现有 durable events seed 验证基线,并且只在 session/event 成功发布后应用预先 staged 的 transition。 | 32 | 32 |
TINV-SESSION-RULESSession 预提交规则 | packages/core/session/src/invariant.ts:22-165 | 要求 precommit 保持纯净、core execution event 的阶段合法,并验证 append-mode tool result 的 prior-call 关系及 TOOL_NOT_STARTED exception。 | 32 | 32 |
TINV-SNAPSHOT-GATE快照门禁组装 | scripts/run-gates.ts:497-527 | 定义默认依赖 build 且固定 DSH_EXAMPLE_MODE=lib 的 snapshot gate;示例与 package 快照用构建产物,script 快照用真实 source entry。 | 32 | 32 |
TINV-SNAPSHOT-SCENARIO-MODEACP scenario 的 mode-aware 并发 | packages/test-support/acp-snapshot/src/suite.ts:1080-1098 | ACP snapshot suite 只在 replay mode 使用 describe.concurrent;record 与 refresh 使用串行 describe。 | 32 | 32 |
TINV-TEST-HOST全量不变量测试宿主 | scripts/test-invariants.ts:67-272 | 按 test path 选择 owner companion;专门 topology 路径选择全部 companion,并用 readiness barrier 让目标插件等待 companion 激活。 | 32 | 32 |
TINV-TYPE-EQUIV文档类型等价检查 | scripts/verify-type-equiv.ts:199-300 | 扫描全部文档块,把 paired-language copy 分为 derivatives,并要求 primary block 与 manifest 一一对应、与源码声明结构和 JSDoc 一致。 | 32 | 32 |
TINV-WINE-RUNNERWine Windows runner 的实质检查 | scripts/wine-windows-gates.sh:31-282 | Runner 校验 Windows Node archive checksum 和 win32 x64 身份,并并行执行 Host/Client build 与 VitePress production-site build 两个 surface。 | 32 | 32, 34 |
TOOL-CANCELLATIONCaller/wrapper signal fusion 与两种取消结果 | packages/core/tools/src/index.ts:1880-1944 | Dispatch-scoped relay 同时监听 caller 与 wrapper 并在 settle 清理;取消按 body 是否启动映射为 ABORTED 或 ABORTED_BEFORE_DISPATCH,并保留已有 additional contexts。 | 16 | 16 |
TOOL-CANONICAL-OUTPUTCanonical value 验证、纯 projection 与最终 materialization | packages/core/tools/src/index.ts:1783-1862 | Registry snapshot/验证 body 或 policy value,运行 render/meta,并用 execution token 标记 canonical result;未标记 wrapper success 会重新规范化,最终 snapshot 冻结且 durable projection 不含 value。 | 16 | 16 |
TOOL-CODE-RUNTIME-WINDOWCode runtime 在 assembly 与 execution 之间未绑定的动态窗口 | packages/core/tools/src/index.ts:1003-1028 | Runtime 在 prompt assembly 与 run_code 执行时分别 live-read;源码明确记录热重载跨语言可能把一种 SDK 写出的程序交给另一 runtime,并将 request binding 推迟。 | 16 | 16 |
TOOL-DECISIONSPre/post decision vocabulary 与单调 guard | packages/core/tools/src/index.ts:580-711 | Pre 只能 allow/deny/ask,刻意没有 argument rewrite;post 可 accept、替换单一 projection、追加 context 或 block;guard 只有 reason/abstain,不能 force-allow。 | 16 | 16 |
TOOL-DEFINE-HELPERdefineTool 的硬执行校验与软 replay 校验 | packages/core/tools/src/schema.ts:538-616 | Helper 编译 schema、在 body 前硬校验 arguments 并抛 INVALID_ARGS,同时让 presenter 与 concurrency classifier 对旧/非法参数 fail-soft;它还绑定 typed output projectors。 | 16 | 16 |
TOOL-DEFINITIONToolDefinition 的 canonical output、执行与展示合同 | packages/core/tools/src/index.ts:212-301 | 定义同时声明模型 schema、canonical output schema/render/meta、body、timeout/concurrency metadata、finalizer 与纯 UI presenters;成功值和持久 content 明确分层。 | 16 | 16, 17 |
TOOL-EXECUTION-IDENTITYRoot/call/token identity、nested parent 与结果控制信号 | packages/core/tools/src/index.ts:304-472 | ToolExecutionInput 区分 root call、opaque parent token、Agent 与 caller signal;Registry execution 添加不可伪造 token,ToolRunContext 只通过 deferContext/concludeTurn 把控制信号带回自身结果。 | 16 | 16 |
TOOL-HOST-PRESENTERHost 对 live/replay presenter 的配对与 fail-soft 回退 | packages/host/apiproxy/src/api-proxy.ts:735-779 | Host 用当前 scoped definition 计算 call/result view,result 需回查 args;跨页缺 call、JSON parse 或 presenter throw 都只省略 view,原 event 仍交付 generic client fallback。 | 16 | 16, 17 |
TOOL-LOOP-COMMITAgent loop 的 tool/call、ordered result 与 context commit | packages/core/agent-loop/src/tool-calls.ts:59-289 | Loop 在 prepare 前写 raw tool/call,分阶段运行 Registry,按模型顺序写 final tool/result 并引用 call seq,再接受 additional context 和 concludesTurn;取消的未启动 call 获得 synthetic pair。 | 16 | 16 |
TOOL-PIPELINE-DISPATCHAround-dispatch、caller signal fusion、body 与 deferred context | packages/core/tools/src/index.ts:1527-1599 | Registry 将 wrapper signal 与原 caller signal 融合,resolve 当前 definition、等待 body 静止、验证成功 value,并在恢复 wrapper signal 后规范化 around result 与 body-deferred contexts;pipeline throw 成为 final error。 | 16 | 16 |
TOOL-PIPELINE-FINALIZEPost 后的 captured finalizer、双 materialization 与 observer containment | packages/core/tools/src/index.ts:1601-1675 | Finalization 运行 post 后重查取消,materialize candidate,调用调用开始时捕获的 content-only finalizer,再 materialize/freeze;result observers 的同步/异步失败全部隔离。 | 16 | 16 |
TOOL-PIPELINE-PREPAREExecution 创建、参数 materialization 与 ordered pre/guard gate | packages/core/tools/src/index.ts:1328-1506 | Registry mint token、snapshot/freeze arguments、处理 code-mode collapse 与 pre-dispatch abort,再按 scope 运行 pre waterfall、approval 和 monotonic guards;普通 policy failures 规范化为 staged results。 | 16 | 16 |
TOOL-POST-POLICYPost-execute 的 value/content replacement、block 与 context 规则 | packages/core/tools/src/index.ts:1731-1781 | Post accept 可替换 value 或 content 但不能同时;value 重新走 canonical projection,failed value 不可替换;block 丢弃 body contexts,仅保留 blocker 明示 contexts。 | 16 | 16 |
TOOL-PRESENTATION-INTENTSProvider-neutral call/result render-intent vocabulary | packages/core/tools/src/presentation.ts:1-388 | Core 定义 generic/terminal/diff pending cards 与 generic/terminal/diff/search/read/web completed cards;结构化 fields 支持 follow-along、truncation、line views 和 citations,而不依赖具体 UI。 | 16 | 16, 17 |
TOOL-PRESENTATION-MODESNative、Code、Both 与 per-scope presentation | packages/core/tools/src/index.ts:650-1001 | 配置或 scoped presentAs 选择 native/code/both;code mode 添加 collapse instruction、typed SDK 与 reserved run_code,只在 code 下过滤 Provider schemas 为 transport,同时保持 SDK end-capability view。 | 16 | 16 |
TOOL-REGISTRATIONRaw ToolDefinition 的注册校验边界 | packages/core/tools/src/index.ts:1030-1061 | 注册检查 output contract、支持的 output schema、timeout 与 reserved name,并按 calling scope 插入 live definition;它没有为 raw definition 包装 per-call parameter validation。 | 16 | 16 |
TOOL-RESULT-TYPESToolExecutionResult 与 pre/post decision unions | packages/core/tools/src/index.ts:555-600 | 成功结果携带 execution-local value、content/meta/context 与可选 concludesTurn;失败没有 value;pre 为 allow/deny/ask,post 为 accept/value-or-content replacement/block。 | 16 | 16 |
TOOL-RUNTIME-INVARIANTTool pipeline 顺序、冻结与 Code dispatch lineage invariant | packages/core/tools/src/invariant.ts:17-120 | Companion 检查每个 execution 的 pre/execute/post 阶段顺序、最终 execution/result/content 冻结与非空 identity,并验证 nested code dispatch root/parent 与 open Turn enclosure。 | 16 | 16 |
TOOL-SCHEMA-PROJECTION模型 schema allowlist、Code SDK output schema 与 fail-closed classifier | packages/core/tools/src/index.ts:1228-1285 | Native schema 只投影 name/description/parameters 的 detached copy;Code SDK 另带 output schema;executionMode 只有 classifier 精确返回 true 才 parallel,缺失、invalid 或 throw 都 exclusive。 | 16 | 16, 17 |
TOOL-SCHEMA-SUBSET受执行的 JSON Schema 子集与 stack-safe validator | packages/core/tools/src/json-schema.ts:1-430 | Schema vocabulary 限定 type/oneOf/container/literal constraints 与 lossless annotations,拒绝未知关键字、循环、exotic records 与稀疏数组,并用显式 task stack 收集路径化 violations。 | 16 | 16 |
TOOL-SCOPE-VIEWScoped restriction、shadowing、guard 与统一 visibility resolver | packages/core/tools/src/index.ts:1064-1226 | Restrictions 只过滤继承能力且沿链相交,own registrations 例外并可 shadow;global/chain guards 只能拒绝;get/schema/dispatch 从同一 live view 解析。 | 16 | 16 |
TOOLCAT-GENERATOR目录 completeness guard、逐包独立 boot 与 schema 渲染 | scripts/gen-tool-catalog.ts:556-704 | 生成器拒绝遗漏磁盘 tool package 和零 schema 的 pending boot;每包使用 fresh Context 装载 ToolRuntime、收集 scoped schemas、dispose,再渲染 name、description、parameters 与 source。 | 17 | 17 |
WEBUI-BOOT-SETTLE两阶段启动与全 ACTIVE 门 | packages/client/web/src/boot.tsx:150-237 | 启动先结算 immediately prefetch barrier(单项失败留给 import 重试/报告),再创建 Loader entries,并在 settle 后逐一确认 root fiber 为 ACTIVE。 | 30 | 30 |
WEBUI-BROWSER-CONTEXT浏览器 Cordis Context 启动 | packages/client/web/src/boot.tsx:97-143 | 页面解析 boot graph、构造 ClientModuleSystem 与独立 Context,然后进入浏览器启动流程。 | 30 | 30 |
WEBUI-CHAT-STORE会话级 Chat UI store | packages/client/ui-conversation/src/client/stores.ts:1-34 | chat store handle 定义 selection、draft、view、inspect、持久化 key 与唯一 actions 集合。 | 30 | 30 |
WEBUI-COLD-SESSION-DISPATCH冷会话 frame 分发策略 | packages/client/runtime/src/client/sessions/manager.ts:675-789 | 未实例化会话不接纳普通 event;projection/jobs 落 manager 镜像,只有不可由 history 恢复的 interaction 与 queue snapshot 进入待重放 buffer。 | 30 | 30 |
WEBUI-CONNECTION-GENERATIONWebSocket generation 与退避 | packages/client/connection/src/client/connection.ts:19-201 | 一次 generation 并行建立 mux、host 与 describe;readiness 收敛后,stream 结束才进入共享退避。双 stream onOpen 等待带 3 秒 guard,但 describe 没有 generation signal/timeout,可在 stream 已结束后楔住重连;sink 异常被隔离。 | 30 | 30, 33 |
WEBUI-CONVERSATION-DEFINITIONConversation Definition contract | packages/client/runtime/src/client/contract/conversation.ts:164-227 | Definition 规定 event-only match、稳定 id、start/update fold、location data 与 target-specific view node 构造。 | 30 | 30 |
WEBUI-CONVERSATION-FOLDConversation Context fold 规则 | packages/client/runtime/src/client/sessions/conversation-assembler.ts:337-446 | 多个 Definition 可认领同一 event;Context 以 kind 和 id 分组,重复 start 与无序 update 显式失败,fallback 仅处理未认领 target。 | 30 | 30 |
WEBUI-CONVERSATION-INCREMENTALConversation 增量 append/prepend | packages/client/runtime/src/client/sessions/conversation-assembler.ts:162-257 | replaceWindow 负责完整窗口和 registry rebuild;append 只处理新 event 与受位置依赖影响的 Context,prepend 只纳入 fresh events 并重放受影响闭包。 | 30 | 30 |
WEBUI-CONVERSATION-VIEW-VALIDATIONConversation view node 稳定性校验 | packages/client/runtime/src/client/sessions/conversation-assembler.ts:707-743 | assembler 校验 buildViewNode 返回 target 正确且 key 在相同 Context/target 间保持稳定。 | 30 | 30 |
WEBUI-FOUR-SHARES四份 props share 的类型组合 | packages/client/ui-slots/src/index.ts:200-450 | 类型层从 SlotMap owner/key/scope/slot inject、父 registration children、store 与 business inject 构造 runtime、render-slots、store 和 business shares,再合成为 ComposedProps。 | 30 | 30 |
WEBUI-GENERIC-TOOLVIEW通用 Tool renderer 分派 | packages/client/ui-tool/src/client/tool/toolviews/GenericToolCard.tsx:36-77 | GenericToolCard 根据纯模型 variant 选择 terminal、read、diff、search、web 等通用 card。 | 30 | 30 |
WEBUI-HMR-HOSTHost HMR graph 与 SSE | packages/client/hmr/src/index.ts:30-190 | Host HMR 默认轮询 bundle,按内容变化更新 revision,并通过事件端点发布 graph 与 rebuilt 消息。 | 30 | 30 |
WEBUI-HMR-SWAP浏览器 HMR swap 顺序 | packages/client/hmr/src/client/index.ts:1-180 | 浏览器把 rebuilt 处理串行化,先 invalidate/prefetch,再排空旧 fiber、移除样式并 refresh entry;失败不回滚,provider fiber 替换由 Cordis activation epoch 级联。 | 30 | 30 |
WEBUI-HOST-GRAPHHost 侧客户端图发布 | packages/client/modules/src/index.ts:184-419 | ClientModuleRegistry 扫描 Loader entry,接纳有 fiber、未 disabled 且声明 web client 的条目,注册 bundle 路由并把当前 graph 注入页面。 | 30 | 30 |
WEBUI-LAZY-MODULES惰性模块 materialization | packages/client/modules/src/client/system.ts:77-195 | 客户端模块系统把脚本到达与 factory 执行分离,维护 require/import、缓存、循环检测、样式归属与 invalidation。 | 30 | 30 |
WEBUI-LAZY-SESSIONSession 惰性实例化 | packages/client/runtime/src/client/sessions/manager.ts:254-320 | SessionManager 只在解析或打开时创建 Session,并把此前缓冲的冷 interaction 应用到新实例。 | 30 | 30 |
WEBUI-LIST-REFETCH会话列表 single-flight refetch | packages/client/runtime/src/client/sessions/manager.ts:438-470 | refreshList 是 single-flight,并把请求期间观察到的 live mutations 重放到返回 baseline 之上。 | 30 | 30 |
WEBUI-LOCALE-INSTALLLocale 服务与设置行安装 | packages/client/locale/src/client/index.ts:346-391 | locale 插件把 LocaleFace 安装进 SlotRegistry,并把 Language preference row 注册到 General settings。 | 30 | 30 |
WEBUI-LOCALE-OWNERLocaleRuntime 的语言与词典所有权 | packages/client/locale/src/client/index.ts:104-207 | LocaleRuntime 管理 provisional/active locale、Host settings 同步、词典 revision 与 namespace fallback,并要求 zh/en 成对注册。 | 30 | 30 |
WEBUI-LOCATION-INDEXConversation location index | packages/client/runtime/src/client/sessions/conversation-location-index.ts:201-464 | 位置索引保持未变 Turn/Step 的对象引用,并返回 location 改变的 seq;边界 append 只重访该 Turn 拥有的 seq。 | 30 | 30 |
WEBUI-MANAGER-RECONNECTSessionManager reconnect resync | packages/client/runtime/src/client/sessions/manager.ts:878-909 | 重连会刷新会话列表和已打开 subagent catalogs,并对 resident Sessions 启动 resync。 | 30 | 30 |
WEBUI-MANIFEST-CONTRACTManifest wire contract | packages/client/modules/src/client/manifest.ts:43-143 | Manifest row 定义 id、url、rev、inject 与 immediately;解析器校验行字段形状并拆分 module 与 plugin views。 | 30 | 30, 33 |
WEBUI-REACT-BINDING裸 snapshot source 的 React binding | packages/client/web-react/src/bind.ts:1-24 | bindSnapshotSelector 把 getSnapshot/subscribe source 转成 useSyncExternalStoreWithSelector hook。 | 30 | 30 |
WEBUI-RENDER-KITSlot entry 的 React props 合成 | packages/client/web-react/src/scoped-slots.tsx:343-470 | renderer 在终端层合成 global/session hooks、projection、store、renderSlot、SessionProvider、locale 与 business props。 | 30 | 30 |
WEBUI-ROOT-DECLARATIONui-layout 声明根级 children | packages/client/ui-layout/src/client/index.ts:120-137 | ui-layout 注册 root entry,并声明 sidebar、conversation、details 与 shell.overlay 四个子位置。 | 30 | 30 |
WEBUI-RUNTIME-RECONNECT连接代际切换的 runtime 动作 | packages/client/runtime/src/client/index.ts:204-232 | 旧代死亡清除 pending interactions;新代 ready 后刷新 session/workspace baseline 并发出 connection/reset。 | 30 | 30 |
WEBUI-RUNTIME-STORE-OWNERRuntime 拥有 snapshot store engine | packages/client/runtime/src/client/index.ts:69-73 | runtime 在 React 之外构造 SnapshotStoreEngine,并作为后续对象服务的状态基础。 | 30 | 30 |
WEBUI-RUNTIME-WIRINGReact-free runtime wiring | packages/client/runtime/src/client/index.ts:182-232 | runtime 创建 Slot、Conversation、Session 与 Workspace 对象服务,并把 mux、host 与 remote frames 路由给对象层。 | 30 | 30 |
WEBUI-SELECTION-ADDRESSABILITYSelected Session 的 addressability gate | packages/client/runtime/src/client/sessions/manager.ts:1020-1075 | manager 只在 selected id 仍出现在 list items 或 retained subagent address map 时投影 current,并只为 addressable current 暴露 currentAddress。 | 30 | 30 |
WEBUI-SESSION-GAP-REPAIRSession seq window 与 gap repair | packages/client/runtime/src/client/sessions/session.ts:612-724 | Session 安装连续 history window、按 seq stitch live buffer,并在发现 hole 时缓冲后续帧和重拉 history,而不发布有洞序列。 | 30 | 30, 33 |
WEBUI-SESSION-PROVIDER严格 SessionProvider 的 keyed remount | packages/client/web-react/src/session-provider.tsx:119-159 | root provider 跟随 current;严格 provider 要求 sessionId 并以该 id 作为 key 重挂 session subtree。 | 30 | 30 |
WEBUI-SESSION-RESYNCSession reconnect resync 的 open-state gate | packages/client/runtime/src/client/sessions/session.ts:412-425 | resync 对从未打开的 cold Session 直接 no-op;已打开或正在打开的 Session 才提升 generation、清旧窗口并重新 open。 | 30 | 30 |
WEBUI-SESSION-RUNTIMESessionRuntime 选择与 provide 所有权 | packages/client/runtime/src/client/sessions/service.ts:228-365 | SessionRuntime 拥有列表、持久 selection、manager、scope map 与当前 provide bundle;provider roster 改变会重建已物化 bundle。 | 30 | 30 |
WEBUI-SESSION-SCOPE-LIFECYCLESession scope 的解析与 prune | packages/client/runtime/src/client/sessions/service.ts:599-766 | resolve 惰性创建 Cordis scope、Session、binding 与 sources;off-stage prune 统一处置,removed-while-staged 则延迟到 stage 移走。 | 30 | 30 |
WEBUI-SESSION-SELECTIONSession selection 的投影与持久化 | packages/client/runtime/src/client/sessions/service.ts:659-733 | service 持久化可寻址 current;masked gap 清除持久 cell,但 manager 的进程内选择可在条目返回后重新浮现。 | 30 | 30 |
WEBUI-SETTINGS-SCOPESettingsScope 并发与恢复语义 | packages/client/ui-settings/src/client/settings-scope.ts:35-269 | 每个 namespace 串行读写、携带 expectedRevision;stale read 可推进 revision/base/user metadata,但不发布 decoded value/status;失败或 invalidation 后重取,非 loopback 使用内存模式。 | 30 | 30 |
WEBUI-SETTINGS-SHELLGeneral settings Slot shell | packages/client/ui-settings-general/src/client/index.ts:84-177 | ui-settings-general 占据 sidebar.settings、声明其子位置,并从 Slot ledger 与 locale revision 构造导航和文案投影。 | 30 | 30 |
WEBUI-SHELL-INSTALLApp shell renderer 安装 | packages/client/web/src/app-shell.ts:29-49 | app-shell 等待 slots、sessions 与 layout,安装 React Slot renderer,并导出稳定的 renderApp closure。 | 30 | 30 |
WEBUI-SHELL-ROOT根 Slot assembly | packages/client/web/src/app.tsx:26-43 | 最终 App assembly 只订阅会话标题并调用 renderSlot('root', {}),不枚举业务 UI 包。 | 30 | 30 |
WEBUI-SINGLE-STAGE-LIMIT当前单 stage 会话模型 | packages/client/runtime/src/client/sessions/service.ts:599-766 | 一个 current 驱动单一 staged occupant;current 缺省或 masked gap 时保留上一 occupant,removed-while-staged 的 scope 冻结到下一次 stage move。 | 30 | 30 |
WEBUI-SLOT-CASCADE声明子树级联处置 | packages/client/ui-slots/src/index.ts:1123-1148 | entry disposer 从其声明的 children 递归移除后代 registration 与 declaration。 | 30 | 30, 33 |
WEBUI-SLOT-CORE-COMMITSlot registration 原子提交 | packages/client/ui-slots/src/index.ts:787-895 | SlotCore 在提交前校验声明、kind 参数、children 冲突与 store scope,并以原子方式写入 ledger。 | 30 | 30 |
WEBUI-SLOT-DECL-INJECT按声明激活的 Slot inject | packages/client/runtime/src/client/slots.ts:128-204 | inject 等待目标 declaration,随 declaration epoch 激活和逆序处置,并把等待与 callback effect 绑定到调用方 fiber。 | 30 | 30 |
WEBUI-SLOT-TYPE-CONTRACTSlotMap 与 children 类型契约 | packages/client/ui-slots/src/index.ts:90-145 | SlotMap 定义位置的 kind、scope 与 owner props;registration children 同时定义可声明、可渲染的子 Slot。 | 30 | 30 |
WEBUI-STALE-AUTHORIZATIONrenderSlot 运行时授权复核 | packages/client/web-react/src/scoped-slots.tsx:31-88 | 每次 child render 都复核 entry ledger 存活与 children 授权,拒绝 stale closure 和未声明 key。 | 30 | 30 |
WEBUI-STORE-CONTRACTSlot store 读写契约 | packages/client/ui-slots/src/store.ts:19-125 | store handle 声明状态与 actions;组件 props 暴露 selector 读取和 baked actions,而非实例 set/update。 | 30 | 30 |
WEBUI-STORE-SCOPE-LIFECYCLESlot store scope 缓存与清理 | packages/client/runtime/src/client/slots.ts:264-456 | store 实例以 handle 和 root/session scope key 缓存;session scope prune 同时删除实例与对应持久值。 | 30 | 30 |
WEBUI-THEME-DOMThemePresenter 的 DOM 写入边界 | packages/client/ui-layout/src/client/theme-presenter.ts:1-61 | ThemePresenter 仅投影 color-scheme、dark attribute、其拥有的 CSS variables 与 meta theme-color,并能清理这些写入。 | 30 | 30 |
WEBUI-THEME-OWNERThemeRuntime 的偏好与 token 所有权 | packages/client/ui-theme/src/client/index.ts:139-238 | ThemeRuntime 管理 light/dark/system、系统媒体查询、token layers 与 theme/change,但不直接写 DOM。 | 30 | 30 |
WEBUI-THEME-PRESENTERThemePresenter 的事件驱动安装 | packages/client/ui-layout/src/client/index.ts:145-155 | ui-layout 从 ThemeRuntime getter 应用初始快照、订阅 theme/change,并在 fiber disposal 时清理 presenter。 | 30 | 30 |
WEBUI-TOOL-DISPATCH递归 ToolCallTree keyed dispatch | packages/client/ui-tool/src/client/tool/ToolCallTree.tsx:13-104 | 根 call 与 subCalls 通过相同 wire-name key 递归进入 toolview Slot;未注册 key 使用 GenericToolCard fallback。 | 30 | 30 |
WEBUI-TOOL-LOCAL-STATETool row 的组件局部状态 | packages/client/ui-tool/src/client/tool/components/ToolRow.tsx:128-180 | ToolRow 用 React useState 保持 expanded,表明该瞬时呈现状态随组件生命周期存在。 | 30 | 30 |
WEBUI-TOOL-MODEL冻结 Tool block 的纯派生模型 | packages/client/ui-tool/src/client/tool/models/tool-call-model.ts:204-240 | tool-call model 从冻结 block 与 wire name 纯派生 variant、lifecycle、summary、path 及输入输出。 | 30 | 30 |
WEBUI-TOOL-REGISTRATIONTool UI Slot registration | packages/client/ui-tool/src/client/apply.ts:22-44 | ui-tool 注册 tool-call Chat node、声明 keyed toolview child,并独立装载 generic 与 specialized tool views。 | 30 | 30 |
WEBUI-TOOLVIEW-CONTRACT原子 ToolView props contract | packages/client/ui-tool/src/client/contract/slots.ts:7-49 | toolview owner props 只携带 callId、wire tool name、冻结 block、cwd、Host-bound openFile 与 local inspect callback,并以 session-scoped keyed Slot 建模。 | 30 | 30 |
WORKFLOW-AGENT-OPTIONSagent() option 的封闭集合与 schema 验证 | packages/workflow/workflow-worker-thread/src/runtime.ts:347-398 | Runtime 只接受 label/phase/schema/provider/model,明确拒绝 deferred/unknown option,并约束 object-rooted JSON Schema 子集。 | 25 | 25 |
WORKFLOW-AGENT-RESULTagent() 结果、失败与处置语义 | packages/workflow/workflow-worker-thread/src/runtime.ts:249-345 | 调用在 slot 内启动 child;completed 返回文本或 structured 值,普通失败/缺少 structured 值返回 null,基础设施 reject 为 fatal,并始终 dispose。 | 25 | 25 |
WORKFLOW-CANCEL-BOUNDARYHook 边界取消与 never-reject drive | packages/workflow/workflow-worker-thread/src/runtime.ts:116-187 | 取消使排队 slot 与之后每个 hook 抛 CANCELLED;drive 在 initial VM timeout 后做 settle 检查并把所有失败归一为结果。 | 25 | 25 |
WORKFLOW-CANCEL-RACEResult 与 cancellation 的 first-wins settlement | packages/workflow/workflow-worker-thread/src/host.ts:486-516 | Host 在 cleanup 前原子 claim terminal;先到 result 保留,已接受 cancellation 会把竞态中的非取消结果改写为 cancelled。 | 25 | 25 |
WORKFLOW-CAPSWorkflow worker 的部署上限 | packages/workflow/workflow-worker-thread/src/index.ts:31-48 | 配置分离并发 child、每 run 总 child、每 combinator item、同步 slice 与 dispose grace;并发默认按 CPU 自动解析。 | 25 | 25, 33 |
WORKFLOW-CHILD-BRIDGEHost 到 Subagent seam 的 child bridge | packages/workflow/workflow-worker-thread/src/host.ts:329-412 | Host 在 admission gate 后用 parent、共享 signal、schema 和 provider/model override 启动 child,并在发布 handle 后把快照结果传回 worker。 | 25 | 25 |
WORKFLOW-CHILD-QUIESCENCEChild disposal 去重与 quiescence | packages/workflow/workflow-worker-thread/src/host.ts:414-483 | 每个 child disposal 被 memoize;quiescence 同时等待 pending provider starts 和 published children,失败被记录并隔离。 | 25 | 25 |
WORKFLOW-CHILD-SNAPSHOTChild result 的 worker-boundary snapshot | packages/workflow/workflow-worker-thread/src/host.ts:385-412 | Host 把 output/structured/stopReason 快照成 JSON;无法无损跨界会作为 child infrastructure failure 返回。 | 25 | 25 |
WORKFLOW-COMBINATORSparallel barrier 与逐 item pipeline | packages/workflow/workflow-worker-thread/src/runtime.ts:400-466 | parallel 对全部 thunk 做 Promise.all;pipeline 让每个 item 独立穿过全部 stage,无跨 stage barrier;普通错误置 null,fatal 错误传播。 | 25 | 25 |
WORKFLOW-DISPOSEWorkflow dispose 的有界清理事务 | packages/workflow/workflow-worker-thread/src/host.ts:206-251 | Memoized dispose 立即驱动 child cleanup,在同一 grace 内等待结果与 quiescence,随后无条件终止 worker 并做最后 sweep。 | 25 | 25 |
WORKFLOW-DURABLE-RECORDRoot workflow 的耐久记录投影与降级 | packages/workflow/tool-workflow/src/index.ts:69-330 | Recorder 按 run 过滤 lifecycle,append failure 后停止该 run;execute 仅在 root transport 记录,并在 disposal/quiescence 后写 run-end。 | 25 | 25 |
WORKFLOW-ERROR-TAXONOMYWorkflowError 的机器可路由 fatal taxonomy | packages/workflow/workflow/src/index.ts:102-148 | Parse、meta、参数、option/schema、cap、child infrastructure、JSON boundary 与取消均有 code;普通 child failure 不在 fatal 分类中。 | 25 | 25 |
WORKFLOW-EVENT-PAIRING每个 published child 的 exactly-once end ledger | packages/workflow/workflow-worker-thread/src/host.ts:553-582 | Host 用 live ledger 保证每个 forwarded agent-start 恰好一个 agent-end;worker 无法发言时合成 cancelled end。 | 25 | 25 |
WORKFLOW-EVENTSObserve-only workflow 事件词汇 | packages/workflow/workflow/src/index.ts:36-100 | Seam 定义 start/phase/log/agent-start/agent-end/end;phase 无执行语义,事件不暴露控制 handle,end 不带 result value。 | 25 | 25 |
WORKFLOW-FATALITYCombinator 中不可伪造的 fatality 分流 | packages/workflow/workflow-worker-thread/src/runtime.ts:400-455 | parallel/pipeline 仅对 host realm 的 fatal WorkflowError 重新抛出,普通 script throw 才映射为单项 null。 | 25 | 25 |
WORKFLOW-HMR-HOLDER已接受 run 的 holder-bound dependency 生命周期 | packages/workflow/workflow-worker-thread/src/index.ts:164-180 | Engine 返回前捕获 subagent handle;engine HMR 卸载后,既有 run 仍可启动与清理 child。 | 25 | 25 |
WORKFLOW-JSON-BOUNDARY无损 JSON materialization 边界 | packages/workflow/workflow-worker-thread/src/realm.ts:42-151 | 跨 realm copy 拒绝 JSON 无法无损表达的值、cycle、sparse array、exotic prototype 与 symbol key,并安全保留 __proto__ 数据键。 | 25 | 25 |
WORKFLOW-LIFECYCLEWorkflowEngine 生命周期合同 | packages/workflow/workflow/src/index.ts:150-186 | 无效请求在发布前抛出;live run 由持有者拥有,取消和处置有界,listener failure 被隔离,end 随结果恰好发出一次。 | 25 | 25, 33 |
WORKFLOW-METAWorkflow metadata 的全量验证与归一化副本 | packages/workflow/workflow-worker-thread/src/meta.ts:12-82 | 验证器收集未知/缺失/类型错误的字段和 phase,并仅从通过验证的字段构造不别名 caller 的 normalized copy。 | 25 | 25 |
WORKFLOW-REALM-TRUSTVM 不是安全边界的明示 trust premise | packages/workflow/workflow-worker-thread/src/realm.ts:1-39 | 源码明确称 VM 可逃逸,仅提供 host-loop 隔离与终止;getter、proxy 和错误值渲染都可能执行脚本代码。 | 25 | 25 |
WORKFLOW-RECORD-INVARIANTWorkflow record 的冷加载与增量不变量 | packages/workflow/tool-workflow/src/invariant.ts:67-163 | Fold 拒绝无 start、重复 sequence/end、开放 member 上的 run-end 和 terminal 后更新,并同时用于已有 Session 与 live append。 | 25 | 25 |
WORKFLOW-RECORD-TYPES浏览器安全的 Workflow Session record 类型 | packages/workflow/tool-workflow/src/types.ts:13-63 | 四种 log-only event 记录 run identity/name、child sequence/label/phase/id、member outcome 和 terminal reason。 | 25 | 25 |
WORKFLOW-SEAMWorkflow 启动请求与 holder-owned run | packages/workflow/workflow/src/runtime-types.ts:14-49 | 请求包含脚本、metadata、args、provider/总量 override、parent 和 signal;live run 暴露永不 reject 的结果、取消与幂等处置。 | 25 | 25 |
WORKFLOW-SLOTSFIFO concurrency slot 与预排队总量计数 | packages/workflow/workflow-worker-thread/src/runtime.ts:222-274 | Slot 等待为 FIFO;agent 总量在 acquire 前计数并检查,取消会 reject waiter,acquire 后再次检查竞态。 | 25 | 25 |
WORKFLOW-START-VALIDATIONWorker engine 的发布前验证与启动 | packages/workflow/workflow-worker-thread/src/index.ts:53-201 | Engine 用同一 wrapper 做 parse check,解析 provider 和 run ceiling,创建 worker 后才发布 start,并把所有后续结果映射为 run settlement。 | 25 | 25 |
WORKFLOW-TOOL-CONTRACT模型可见 Workflow authoring contract | packages/workflow/tool-workflow/src/index.ts:133-270 | Tool description 完整定义 meta、script、args、hook、failure 和 foreground 约束;prompt policy 要求显式大型编排请求,schema/renderer 由 consumer 拥有。 | 25 | 25 |
WORKFLOW-TOOL-EXECUTEWorkflow 工具的执行、取消与 finally disposal | packages/workflow/tool-workflow/src/index.ts:272-330 | 工具要求 calling Agent,启动 foreground run,桥接 abort,等待永不 reject 的结果,把非 completed 映射为 error,并在 finally 中 dispose。 | 25 | 25 |
WORKFLOW-VM-GLOBALSWorkflow VM 的封闭 global surface | packages/workflow/workflow-worker-thread/src/runtime.ts:75-114 | 每个 realm 只注入 agent、parallel、pipeline、phase、log 与 args,并用相同 async wrapper 编译脚本。 | 25 | 25 |
WORKFLOW-WORKER-SPAWNFresh worker 的 scrubbed environment 与 structured clone | packages/workflow/workflow-worker-thread/src/host.ts:32-169 | 每个 run 创建新 Worker,清空 ambient env/execArgv,仅保留平台临时路径和开发加载所需 pin;init 通过 workerData clone。 | 25 | 25 |
production-test · 137
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
AGENT-ATOMIC-TEST原子发布、并发同 ID 与 creation-only signal 测试 | packages/core/agent-loop/tests/scope-lifecycle.spec.ts:242-365 | 测试证明 setup 完成前两个 registry 均不可见、发布事件有序、并发准备仅一方进入,且 creation signal 不影响已返回 handle。 | 05 | 05 |
AGENT-INBOX-TESTInbox replay、替换、唯一身份与取消测试 | packages/core/agent/tests/agent.spec.ts:41-142 | 测试覆盖非法持久化 splice、跨队列 replace、重复 MessageId 拒绝,以及 clear 生成两条 canceled durable splice。 | 05 | 05 |
AGENT-REGISTRY-TESTRegistry split publication 与陈旧 detach 测试 | packages/core/agent/tests/agent.spec.ts:258-298 | 测试证明 enter 与 announce 分离、detach 幂等、旧 capability 不删除 replacement,以及 created listener 中 detach 延迟到全部 listener 返回。 | 05 | 05 |
AGENT-TEARDOWN-TEST创建通知内重入 teardown 的顺序测试 | packages/core/agent-loop/tests/scope-lifecycle.spec.ts:623-715 | 测试证明通知 dispatch 中 registry 对所有 listener 保持稳定;rollback 依次卸载 scope、发布 agent/disposed,再发布 session/disposed。 | 05 | 05 |
APPROVAL-ESCALATION-TESTS沙箱扩权 fail-closed 测试 | packages/sandbox/sandbox/tests/escalation.spec.ts:20-111 | 测试覆盖参数配对、严格扩权、审计理由、服务/Agent 缺失,以及所有非授权结果。 | 19 | 19 |
APPROVAL-GUARD-TESTS单调 scoped guard 测试 | packages/core/tools/tests/scoped.spec.ts:284-375 | 测试证明 prepended allow 无法绕过 owner guard,并覆盖全局组合、scope 隔离、处置与在线注册行为。 | 19 | 19 |
APPROVAL-PRESET-TESTS权限预设与 Session 固定测试 | packages/interaction/permission-presets/tests/permission-presets.spec.ts:67-300 | 测试覆盖 fold、custom、同 bundle 身份、写入、配置失败、新 Session 默认、seed/resume 保留与 HMR 补齐。 | 19 | 19 |
APPROVAL-SERVICE-TESTSApprovalService 行为与策略测试 | packages/interaction/user-approval/tests/approval.spec.ts:42-503 | 测试覆盖开放 turn、审计事件对、回答器异常、取消、新 ID、never 不可绕过、Session 覆盖与模型 context。 | 19 | 19 |
APPROVAL-TOOLS-TESTSToolRuntime 审批负向测试 | packages/core/tools/tests/tools.spec.ts:676-853 | 测试覆盖 pre 拒绝、缺少审批 seam、全部 ask 结果、取消、无 Agent 与非法回答。 | 19 | 19 |
APPROVAL-WEB-TESTSWeb 审批 registry 与恢复测试 | packages/host/apiproxy/tests/api-proxy-approval.spec.ts:87-329 | 测试覆盖往返、稳定 ID 重放、畸形/外来/迟到响应、abort、teardown、并行配对与无审计事件分派。 | 19 | 19 |
CODEMODE-TEST-CLIENT-LIFECYCLEClient replace、串行、失败恢复与 dispose 测试 | packages/extensions/cordis-client-runner/tests/runner.client.spec.ts:201-344 | 测试覆盖新 revision 替换、同 Plugin 操作串行、失败后 queue 继续、activation failure teardown、exact retract 和 runner disposal。 | 23 | 23 |
CODEMODE-TEST-DYNAMIC-GUARD动态 Context escape 与 capability gate 测试 | packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts:44-246 | 测试固定 ctx.root bypass、Context-returning service、未声明 service 和 live ToolDefinition.execute 访问均被拒绝,同时允许声明或 optional get 的合法路径。 | 23 | 23 |
CODEMODE-TEST-DYNAMIC-RUNNER动态定义、ownership、approval 与异步失败测试 | packages/extensions/cordis-host-runner/tests/runner.spec.ts:98-247 | 测试覆盖 define-only、语法拒绝、跨 Session 隐藏、Host-only 快路径、Client approval/refusal、Client failure unwind 与更新失败。 | 23 | 23 |
CODEMODE-TEST-POLICY-FAILURE嵌套 policy、错误、取消与 quiescence 测试 | packages/core/tools/tests/code-mode.spec.ts:935-1206 | 测试固定工具错误向程序 reject、pre-execute deny、lossless JSON、context 保留、CODE_RUN_FAILED、外层取消,以及 runtime reject 后仍排空嵌套工作。 | 23 | 23 |
CODEMODE-TEST-PRESENTATIONCode Mode 展示矩阵回归测试 | packages/core/tools/tests/code-mode.spec.ts:118-160 | 测试固定 native/code/both 的 wire schema、SDK 与 code-only prompt rule,包含规则在普通工具指导之前出现的顺序。 | 23 | 23 |
CODEMODE-TEST-SCHEDULER嵌套调度、barrier、顺序与 drain 测试 | packages/core/tools/tests/code-mode.spec.ts:509-799 | 测试覆盖并发安全调用重叠、exclusive barrier、并发 cap、pre/post 有序、run settlement drain、context commit 与 queued-unstarted abandon。 | 23 | 23 |
CODEMODE-TEST-VERSIONING版本指针与失败 ownership 测试 | packages/extensions/cordis-host-runner/tests/versioning.spec.ts:1-106 | 测试证明失败更新保留 currentPackageId 并清理 attempt 状态、pending approval 可取消撤销,以及附着页面失败不会停止既有 Host run。 | 23 | 23 |
CODEMODE-TEST-WORKERworker failure budget 与隔离测试 | packages/code-runtime/code-runtime-worker-thread/tests/runtime.spec.ts:128-338 | 测试覆盖语法/运行异常、空环境、无损输出、busy/wall timeout、abort、晚到 binding、OOM/worker exit 和合并输出上限。 | 23 | 23 |
CODEMODE-TEST-WORKER-HOSTILEhostile worker port 与双边 JSON 校验测试 | packages/code-runtime/code-runtime-worker-thread/tests/runtime.spec.ts:442-603 | 测试注入未知 binding、重复 ID、垃圾消息、伪造 log/done 与 lossless JSON 违规,验证 Host 仍 fail closed 且不崩溃。 | 23 | 23 |
COMPACT-PRUNE-TESTPrune-first 两机制组合与 replay checkpoint 测试 | packages/compaction/compaction-basic/tests/compaction-basic.spec.ts:769-879 | 测试源码要求低压不机会式 prune、prune 足够时不调用 LLM、不足时摘要读取已裁剪 Surface,并验证 checkpoint source/token price 与 fresh Session replay 等价。 | 13 | 13 |
COMPACT-REAL-LOOP-TEST真实 Loop 中 between-step 与 same-step overflow 合同测试 | packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts:217-381 | 测试源码要求 pressure 位于上个 step/end 与下个 step/start 之间;overflow 在同一 Step 内生成 checkpoint 并重试同一请求,旧 sentinel 从 retry messages 消失。 | 13 | 13 |
DESIGN-SCOPE-TEST作用域继承、隔离和反向清理测试 | packages/core/scope/tests/scope.spec.ts:24-220 | 测试验证最近 tag、同步注册、共享 quiescence、反序 teardown、按 key 路由,以及事件只向祖先作用域可见而不向后代泄漏。 | 02 | 02 |
FAILURE-CANCEL-TESTAbort-to-idle latch 与 queued-tail 取消测试 | packages/core/agent-loop/tests/cancel.spec.ts:129-403 | 验证 latch replay/clear/removal/慢收敛/disposal 边界,并固定 mid-step 默认取消丢弃所有 queued tail。 | 27 | 27 |
FAILURE-CANCEL-TOOL-TESTAssistant message 后取消的 replay 完整性测试 | packages/core/agent-loop/tests/cancel.spec.ts:405-458 | 取消使工具 body 零执行,但记录匹配 call 与 TOOL_ABORTED_BEFORE_DISPATCH result,后续请求能回放有效 tool pair。 | 27 | 27 |
FAILURE-CHECKPOINT-TESTCheckpoint 顺序、拒绝与取消测试 | packages/session/session-checkpoint-policy/tests/session-checkpoint-policy.spec.ts:62-238 | 验证 adapter/tool dispatch 在 flush 后,checkpoint reject 阻止副作用,取消生成 canonical 未 dispatch 结果,nested tool 复用 outer checkpoint。 | 27 | 27 |
FAILURE-CRASH-CONTRACTBackend-agnostic crash-repair shared contract | packages/session/session-persistence/tests/contract.ts:118-265 | 固定 interrupted Turn 保留与关闭、未开始工具的可重试 result、已记录工具的 unknown-outcome 风险提示和可回放 transcript。 | 27 | 27 |
FAILURE-CRASH-CONTRACT-JSONLJSONL backend 实例化 shared contract | packages/session/session-persistence-jsonl/tests/jsonl.spec.ts:102-115 | 真实 JSONL backend 测试套件调用 runPersistenceContract。 | 27 | 27 |
FAILURE-CRASH-CONTRACT-MEMORY内存 backend 实例化 shared contract | packages/session/session-persistence/tests/persistence.spec.ts:240-249 | 内存 persistence 测试套件调用 runPersistenceContract。 | 27 | 27 |
FAILURE-CRASH-CONTRACT-SQLITESQLite backend 实例化 shared contract | packages/session/session-persistence-sqlite/tests/sqlite.spec.ts:51-60 | 真实 SQLite backend 测试套件调用同一个 runPersistenceContract。 | 27 | 27 |
FAILURE-CRASH-E2ESIGKILL 模型与工具边界恢复 E2E | packages/session/session-checkpoint-policy/tests/crash-recovery.e2e.ts:39-110 | 自定义硬杀子进程,证明模型 dispatch 前完整请求 durable,以及工具副作用前 call durable、缺结果恢复为 TOOL_OUTCOME_UNKNOWN。 | 27 | 27 |
FAILURE-CRASH-FIXTURE模型 dispatch 与工具副作用 failpoint | packages/session/session-checkpoint-policy/tests/fixtures/crash-child.ts:21-60 | 子进程在 adapter 收到请求或工具写出外部副作用 marker 后永久等待,为父进程 SIGKILL 提供精确边界。 | 27 | 27 |
FAILURE-DISPOSAL-TESTAgent teardown 顺序、共享静止点与 ID 复用测试 | packages/core/agent-loop/tests/scope-lifecycle.spec.ts:921-1051 | 证明 turn/end 先于 unregister、并发 disposal 等待同一边界、scope cleanup 完成前 ID 不可复用。 | 27 | 27 |
FAILURE-DYNAMIC-CONFIG-TESTDeepSeek 动态 endpoint/key/policy/last-good 测试 | packages/llm/llm-deepseek/tests/dynamic-config.spec.ts:61-186 | 验证下一请求读取新 endpoint/key、keyless 后补 key 恢复、policy 原位更新,以及 rejected generation 不泄漏 URL/key 并可后续恢复。 | 27 | 27 |
FAILURE-HMR-CONFIG-TEST无效配置 refresh 的 last-good 与后续恢复测试 | packages/boot/app-boot/tests/config-reload.spec.ts:61-84 | Parse failure 和空配置 validation failure 都保留 last-good running tree,下一次合法 edit 成功替换。 | 27 | 27 |
FAILURE-HMR-USER-PATCH-TEST用户 patch HMR 的失败、恢复与删除测试 | packages/boot/app-boot/tests/user-patches.spec.ts:315-356 | 覆盖 add、apply failure、parse failure、recovery 与 removal;失败 candidate 不替换当前 live 配置。 | 27 | 27 |
FAILURE-JSONL-TESTJSONL torn tail、append-only 与 fsync rollback 测试 | packages/session/session-persistence-jsonl/tests/jsonl.spec.ts:585-674 | 覆盖 torn partial line、开放事件保留和 closer、已提交前缀字节不变、fsync 失败回滚后无 seq gap 重试。 | 27 | 27 |
FAILURE-REQUEST-TESTRequest-error 窄接缝与取消优先测试 | packages/core/agent-loop/tests/request-error.spec.ts:30-141 | 证明 middleware 失败不进入恢复、连续失败维持 Turn 1/Step 1、取消胜过 retry action、恢复 listener 失败关闭 Turn。 | 27 | 27 |
FAILURE-RETRY-SEMANTICS-TESTRetry 调度、partial chunk 隔离与预算测试 | packages/llm/llm-retry/tests/retry.spec.ts:175-344 | 验证 retry 事件先落、同一 Step 成功、EMPTY_RESPONSE、失败 partial chunks 不形成 message/tool side effect,以及有界指数退避耗尽。 | 27 | 27 |
FAILURE-TIMEOUT-TEST工具 timeout 与 caller abort 竞态测试 | packages/guard/timeout-policy/tests/timeout-policy.spec.ts:97-193 | 覆盖合作返回、abort throw、caller-first 与 timeout-first,并证明 timeout 仍等待工具清理 gate 后才完成。 | 27 | 27 |
FAILURE-WIRE-RECOVERY-TEST真实 DeepSeek HTTP/SSE transport 恢复测试 | packages/llm/llm-retry/tests/transport-recovery.spec.ts:85-219 | 覆盖 refused connection、stream/partial disconnect、empty response、clean partial EOF 与 stalled body,固定同 request body、同 Step 与默认 retry 分类。 | 27 | 27 |
INBOX-CANCEL-BEHAVIOR-TESTClaimed work、keepInbox 与 latch 测试 | packages/core/agent-loop/tests/cancel.spec.ts:75-174 | 测试证明已 claim 工作不恢复、pre-abort queue 会停放、post-abort waking send 会 replay,默认 cancel 清除 latch。 | 26 | 26 |
INBOX-CANCEL-DROP-TEST默认取消丢弃 queued tail | packages/core/agent-loop/tests/cancel.spec.ts:384-403 | 运行中默认 cancel 使 Turn aborted,并丢弃尚未运行的 queued tail。 | 26 | 26 |
INBOX-CANCEL-LATCH-TESTAbort-to-idle wake latch 测试矩阵 | packages/core/agent-loop/tests/cancel.spec.ts:103-218 | 覆盖 pre-abort parking、post-abort replay、latch 清除/移除和慢取消收敛。 | 26 | 26 |
INBOX-CONSUMED-WORK-TESTConsumed-work 边界测试 | packages/core/agent/tests/consumed-work.spec.ts:38-158 | 覆盖无工作、失败/取消/blocked claim、empty rewrite、turn 外 claim、drop、replacement 与后续吸收。 | 26 | 26 |
INBOX-CRASH-RECOVERY模型 dispatch 硬崩溃恢复测试 | packages/session/session-checkpoint-policy/tests/crash-recovery.e2e.ts:82-110 | 硬杀子进程后,恢复日志保留完整请求前缀并补 interrupted closing;工具 intent 缺结果时补 unknown outcome。 | 26 | 26 |
INBOX-FIFO-PROPERTYFollow-up FIFO Turn 性质测试 | packages/core/agent-loop/tests/properties.spec.ts:107-190 | 同步 burst、逐条发送和混合 settle 都验证每条普通消息独占递增 Turn,顺序不变。 | 26 | 26 |
INBOX-PRESTEP-CUTOFF-TESTPre-step claim cutoff 与后到输入测试 | packages/core/agent-loop/tests/interception.spec.ts:257-363 | pre-step 中后到的 inject/steer 错过首请求并按序进入下一 Step;blocked batch 后的输入保留。 | 26 | 26 |
INBOX-TURN-STOPPING-TESTTurn-stopping steering 回归测试 | packages/core/agent-loop/tests/contract-regressions.spec.ts:317-340 | 模型本来会结束时,turn-stopping listener 中的 steer 强制同 Turn 第二个模型 Step。 | 26 | 26 |
LLM-MULTI-ATTEMPT-REPLAY-TEST同一 Turn/Step 多次 provider attempt 的 replay 测试 | packages/test-support/llm-replay/tests/llm-replay.spec.ts:119-132 | 测试明确把共享 turn/step 的失败与成功 chunk 流按各自 finish 切成两个 provider call,证明 attempt identity 不能只用 turn/step 表示。 | 08 | 08 |
LLM-PREPARED-PIN-TESTPrepared call 固定旧 route 与 retry policy 测试 | packages/llm/llm/tests/service.spec.ts:227-257 | 测试在 route replacement 后 dispatch 已准备调用,确认旧 adapter 与旧 policy 继续服务,而 registry 已暴露新 policy。 | 08 | 08 |
LLM-RETRY-SAME-STEP-TESTRetry 保持同一 Turn/Step 的测试 | packages/llm/llm-retry/tests/retry.spec.ts:175-224 | 测试让第一次 provider attempt 失败、第二次成功,只存在一个 turn/start 与一个 step/start,而 adapter 收到两次请求。 | 08 | 08 |
LLM-RETRY-WIRE-TEST真实 wire retry 的相同 body 与 partial chunk 语义 | packages/llm/llm-retry/tests/transport-recovery.spec.ts:112-198 | 测试期望失败与成功 attempt 的 request body 相同,失败 chunks 留在非 surface 日志,最终只提交一个 assistant message;STREAM_CLOSED 默认不 retry。 | 08 | 08 |
LOG-FORK-CONTRACT空 Fork、稳定边界、冻结 seed 与拒绝矩阵测试 | packages/core/session/tests/fork.spec.ts:63-318 | 测试覆盖空 child lineage、detached frozen seed、source open tail 之前的早期边界、所有 turn-end reason、turn 后 log-only 事件,以及非法、stale、open-turn 和 duplicate child 拒绝。 | 10 | 10 |
LOG-RAW-CHUNK-TESTRaw chunk 流完整留存与重组测试 | packages/core/agent-loop/tests/loop.spec.ts:529-547 | 测试要求产生文本 abc 的七个协议 chunk 全部按顺序保留,并可由规范 assembler 重组。 | 10 | 10 |
LOG-REPAIR-CONTRACTInspect 不提交而 Load 提交恢复的后端契约测试 | packages/session/session-persistence/tests/contract.ts:118-266 | 契约测试证明 inspect 返回带合成闭合事件的平衡逻辑视图但 revision 不变;load 把恢复写入后端并推进 revision,恢复后的 transcript 配对 call/result。 | 10 | 10 |
LOG-REQUEST-RECONSTRUCTION每次请求可由日志前缀字节等价重建定理测试 | packages/core/agent-loop/tests/request-reconstruction.spec.ts:566-613 | Fresh Session 从首个 chunk 之前的事件前缀重建 messages,request/header fold 重建 model、reasoning、system、tools、temperature、maxTokens 与 stop,并与实际 dispatch request deep-equal。 | 10 | 10 |
LOG-TORN-TAIL-CONTRACTTorn tail 截断与真实前缀保留测试 | packages/session/session-persistence/tests/coordinator-contract.ts:1427-1479 | 测试让后端返回有效提交前缀加 torn marker;load 截掉残片、保留全部已提交 open-turn 事件并追加确定性 closers。 | 10 | 10 |
LOOP-ERROR-CONTAINMENT-TEST错误耐久化与 loop unload 测试 | packages/core/agent-loop/tests/loop.spec.ts:1353-1398 | 模型错误同时成为 live agent/error 与 durable turn/end error;中途卸载 owner 会停止 driver 并从 registry 移除。 | 06 | 06 |
LOOP-INTERCEPTION-TEST空 continuation、blocked 与 pre-step 并发输入测试 | packages/core/agent-loop/tests/interception.spec.ts:207-363 | 测试覆盖 completed 后空 decision 不开新 step、reject 只留 turn 边界,以及 claim 之后注入的 steer/inject 保留到下一步或下一次 wake。 | 06 | 06 |
LOOP-ORDER-TEST简单 turn 与工具 round-trip 顺序测试 | packages/core/agent-loop/tests/loop.spec.ts:162-233 | 测试证明 inbox receipt 先于 turn,四个边界严格嵌套,assistant usage 持久化,工具 call/result 进入第二次派生请求。 | 06 | 06 |
LOOP-OUTCOME-TESTAbort 与 sticky max-tokens 结果测试 | packages/core/agent-loop/tests/loop.spec.ts:945-1054 | 测试确认中途取消写 aborted;max-tokens 是当前 turn 内 sticky,但不泄漏到下一 turn,且截断 step 不执行 tool call。 | 06 | 06 |
LOOP-RECONSTRUCTION-TEST每次请求仅凭日志 byte-equal 重建测试 | packages/core/agent-loop/tests/request-reconstruction.spec.ts:566-613 | 跨工具 step、后续 turn、prompt 与 request config 变化,测试用新 Session 从 dispatch 前事件重建 messages 和 folded header 并逐字段相等。 | 06 | 06 |
LOOP-REQUEST-ERROR-TESTRequest error recovery 边界测试 | packages/core/agent-loop/tests/request-error.spec.ts:30-141 | 中间件失败不进入 recovery;provider failure 可在同一步多次 retry;取消优先于 retry;recovery listener 失败使 turn error。 | 06 | 06, 07, 08 |
MEMORY-MCP-CONTRACT-TESTMemory MCP overlay 与 fixture discovery 测试边界 | apps/cli/tests/memory-mcp-configs.spec.ts:83-131 | 测试检查 row 字段、版本 pin 与明显密钥,再把真实命令替换为 keyless fixture 验证工具发现;它没有运行三个真实 memory provider。 | 14 | 14 |
MEMORY-REFERENCE-CONTRACT-TESTSession reference 快照、排除与 replay 独立性测试 | packages/context/session-reference/tests/session-reference.spec.ts:320-641 | 测试要求只投影当前对话与 checkpoint、排除嵌套注入,固定 capture metadata;来源后续 mutation、compaction 或删除不会改变目标,并可由 fresh Session replay。 | 14 | 14 |
MULTIAGENT-CODEX-WIRE-TESTCodex wire 协议选择测试 | packages/subagent/subagent-codex/tests/subagent-codex.spec.ts:363-435 | 测试验证 fixed handshake、ephemeral thread、text input、跨 thread/Turn 过滤、reasoning/commentary 排除和 last-final selection。 | 24 | 24 |
MULTIAGENT-CONTINUATION-ACCEPTANCE-TESTInbox acceptance 提交点测试 | packages/subagent/subagent/tests/continuation.spec.ts:101-191 | 测试证明 startContinuable 返回的 messageId 就是已接受 inbox 消息;acceptance 已记录为 splice,但此时尚未 claim 成 user/message,模型请求也尚未发出。 | 24 | 24 |
MULTIAGENT-FORK-OPEN-TURN-TESTFork 排除 open Turn 的集成测试 | packages/subagent/subagent-fork-in-process/tests/subagent-fork-in-process.spec.ts:134-158 | 测试让父级第二 Turn 悬挂并在期间 fork,验证 child 只 seed 第一个完整 Turn 且自己的 Turn 正常完成。 | 24 | 24 |
OBS-TEST-HANDOFFCapture、reload 与故障隔离测试 | packages/session/session-telemetry/tests/telemetry.spec.ts:161-539 | 覆盖 first-chunk-only、on-demand suffix、reload cursor、中间记录拒绝、非等待 flush、shutdown ordering 与 backend 故障 containment。 | 28 | 28 |
OBS-TEST-OTEL-COMPOSITION真实 Loader telemetry 组合测试 | packages/session/session-telemetry-otel/tests/loader-composition.e2e.ts:78-153 | 覆盖外发副本清洗而 canonical secret 保留、feedback-only prefix 与 disabled 本地行为。 | 28 | 28 |
OBS-TEST-OTEL-MODESOTel sharing mode 测试 | packages/session/session-telemetry-otel/tests/otel.spec.ts:273-489 | 覆盖 feedback suffix、non-canonical consent 拒绝、disabled 零 transport、mode disclosure、默认关闭与 fail-loud 配置。 | 28 | 28 |
OBS-TEST-OTEL-WIRE真实 SDK 管线到本地 mock collector 的 wire 测试 | packages/session/session-telemetry-otel/tests/otel.spec.ts:1-163 | 经真实 OTel SDK 管线向本地 scripted node:http mock collector 发送 OTLP/HTTP JSON,并验证 service.name/user.id、双 scope、source timestamp、severity、session.cwd/event attributes 与 shutdown marker。 | 28 | 28 |
OBS-TEST-REDACTIONRedaction 边界回归测试 | packages/session/session-telemetry/tests/redact.spec.ts:39-128 | 覆盖无规则原样通过、ledger/ops 清洗、listener 叠加、canonical log 不变及抛错扣留。 | 28 | 28 |
OBS-TEST-STATSStats 计数与时序测试 | packages/session/session-stats/tests/projection.spec.ts:58-291 | 覆盖 rejected/cancelled/max-token/retry、tool pair、无效 usage、clock skew、late mount 与 HMR。 | 28 | 28 |
OBS-TEST-STATS-PAGING分页历史 stats E2E | apps/web/tests/stats-paged-history.e2e.ts:73-135 | 长历史的 tail page 直接显示 full-session total,load-older 后数值保持不变。 | 28 | 28 |
PARALLEL-ABORT-TESTSNative scheduler 取消语义测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:459-631 | 测试覆盖 group 前取消、prepare 中取消、运行中停止补位并合成未启动结果,以及取消后不跨入后续 exclusive barrier。 | 18 | 18 |
PARALLEL-CAP-TESTSNative rolling-pool cap 测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:264-365 | 测试验证非法 cap 拒绝、默认值、cap=2 动态补位、cap=1 全串行,以及 factory-created Agents 共用配置上限。 | 18 | 18 |
PARALLEL-CODE-ORDER-TEST名为 out-of-order 的 Code Mode 顺序测试 fixture | packages/core/tools/tests/code-mode.spec.ts:731-765 | 测试断言 post 与 contexts 依 submission order,但 gate.release() 明确按 FIFO 释放 A,随后 releaseAll;因此 fixture 实际没有制造 B 先于 A 完成。 | 18 | 18 |
PARALLEL-CODE-TESTSCode Mode pool、barrier 与 drain 测试 | packages/core/tools/tests/code-mode.spec.ts:509-730 | 测试覆盖并行 overlap、exclusive barrier、maxParallelSubCalls cap、有序 prepare、barrier-through-post 以及 run settlement 等待进行中的 commit。 | 18 | 18 |
PARALLEL-CONTEXT-TEST取消后保留有序 additional contexts 的测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:523-589 | 测试证明已启动调用的 contexts 按 C1、C2 停驻 next-step inbox,取消结束时不写 user/message,并在下一次 wake 后按序进入日志。 | 18 | 18 |
PARALLEL-FAILURE-TESTScheduler invariant failure drain 测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:633-690 | 测试注入 scheduler 内部 rejection,确认不再启动第三个 body、Turn 不会提前结束、已启动 sibling 被排空,最终以首个 error 关闭。 | 18 | 18 |
PARALLEL-GROUP-TESTS并行 group、exclusive barrier 与实时替换测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:99-218 | 测试覆盖并行 siblings、parallel-exclusive-parallel 三组、barrier 后 definition 替换,以及 result observer 将待启动调用重分类为 exclusive。 | 18 | 18 |
PARALLEL-ORDER-TESTS乱序 settle 下的模型顺序结果测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:220-262 | 测试先释放第二个并行调用,确认第一个完成前没有任何 result;最终 durable results 与 deriveMessages 仍按 C1、C2 排列。 | 18 | 18 |
PARALLEL-RECLASS-TESTSQueued call 的实时重分类测试 | packages/core/agent-loop/tests/tool-calls.spec.ts:144-217 | 测试证明 exclusive barrier 内的 registry replacement 和同步 result observer replacement 都会影响未启动调用;当前 pool 先排空,再运行新的 exclusive definition。 | 18 | 18, 33 |
PERSIST-SESSION-SQLITE-CONSTRUCTOR-TESTSession SQLite 直接构造测试显式传 WAL | packages/session/session-persistence-sqlite/tests/sqlite.spec.ts:677-691 | 绕过 Schemastery 的直接构造测试验证 preparation cache 默认值,但显式传 journalMode: wal,因此未覆盖 journalMode 缺省。 | 11 | 11 |
PLANSTATE-GOAL-DRIVER-TESTGoal round cap 与 fail-closed 测试 | packages/goal/goal-round-driver/tests/goal-round-driver.spec.ts:186-260 | 测试要求只接纳 1..N、cap 后 durable block;driver 热加载需 disarm,provider/error/max-token 和 prompt rejection 都停止自动续跑。 | 15 | 15 |
PLANSTATE-GOAL-DURABILITY-TESTGoal 逐轮 durability barrier 测试 | packages/goal/goal-round-driver/tests/goal-round-driver.spec.ts:465-510 | 创建或上一轮 checkpoint 失败会 disarm 且不多发请求;成功时必须在 round 1 与 round 2 之间观察 flush。 | 15 | 15 |
PLANSTATE-GOAL-PROJECTION-TESTGoal projection fail-soft 与 same-reference 测试 | packages/goal/goal/tests/projection.spec.ts:142-187 | 测试固定 non-goal 与 malformed goal-shaped event 的 same-reference 快速路径,避免 projection drive 被异常拆除。 | 15 | 15 |
PLANSTATE-GOAL-WRAPUP-TESTGoal 自动终态收尾测试 | packages/goal/tool-goal/tests/tool-goal.spec.ts:352-415 | 测试断言自动 complete 增加一条 closing context 但 concludesTurn 为 undefined;direct-human mutation 不增加该 context。 | 15 | 15 |
PLANSTATE-PLAN-LOOP-TESTPlan 真实 loop 与 retry 测试 | packages/plan/plan-mode/tests/integration.spec.ts:66-174 | 测试证明 Plan 中写工具仍可执行、tool schema 稳定,且 same-Step retry 复用旧 assembly,模式到后续 Step 才生效。 | 15 | 15 |
PLANSTATE-TODO-PROJECTIONTodo standing projection 测试 | packages/todo/tool-todo/tests/projection.spec.ts:68-123 | 测试证明首次写前为 null、最新 whole list 胜出、turn/end 保留、下一 turn/start 清空,并覆盖卸载时 key 消失。 | 15 | 15 |
PLANSTATE-TODO-TESTTodo 写入、替换与验证测试 | packages/todo/tool-todo/tests/tool-todo.spec.ts:70-209 | 测试覆盖成功写入与 counts、trim、完整替换、parallel policy、空白/重复/未知字段/enum 拒绝及非 Agent caller。 | 15 | 15 |
PROFILE-HMR-TESTHMR 保留最后成功配置测试 | packages/boot/app-boot/tests/user-patches.spec.ts:315-371 | 测试覆盖新增、应用失败、解析失败、恢复与删除,失败候选不会替换上一棵有效插件树。 | 04 | 04 |
PROFILE-ORDER-TESTBundle 与用户层顺序测试 | packages/boot/app-boot/tests/profile.spec.ts:121-143 | 测试验证 bundle manifest 顺序、后层整块配置覆盖以及无用户层的空组合。 | 04 | 04 |
PROMPT-ASSEMBLY-MUTATION-TESTProvider membership、complete 与 assembly snapshot 测试 | packages/core/system-prompt/tests/system-prompt.spec.ts:212-333 | 测试固定 tool-provider membership 快照、complete section 恢复/冲突,以及对一次 assembly 的修改不会泄漏到下一次。 | 07 | 07 |
PROMPT-CACHE-E2E真实 DeepSeek API 前缀缓存测试 | packages/core/agent-loop/tests/request-cache.e2e.ts:71-103 | 有 API key 时的 E2E 要求首请求后的每次 assistant usage 都报告正数 cacheReadTokens,并验证工具结果进入最终回答;本研究未执行该测试。 | 07 | 07 |
PROMPT-CANCEL-TESTPrompt assembly 期间 disposal/cancel 的无 step 测试 | packages/core/agent-loop/tests/contract-regressions.spec.ts:1100-1199 | 测试证明阻塞 assembly 期间 dispose 或 cancel 后只保留 turn/start 与 aborted turn/end,不产生 step、chunk、message 或 adapter request。 | 07 | 07 |
PROMPT-HEADER-CHANGE-TEST稳定 prompt 不写 header、真实变化写完整 snapshot 测试 | packages/core/agent-loop/tests/request-reconstruction.spec.ts:433-455 | 测试证明每 step 重组装不会因值相同追加 header;真正 system prompt 变化写 reason=change 的第二份完整 header 且保留历史。 | 07 | 07 |
PROMPT-SCOPE-SHADOWScoped persona 覆盖与 provider 不求值测试 | packages/core/system-prompt/tests/scoped.spec.ts:32-79 | 测试证明同名 scoped section 只覆盖对应 scope,global view 不受影响,且 shadow 发生在 text provider 求值前。 | 07 | 07 |
PROMPT-VARIABLE-TEST变量 live iteration 与严格插值测试 | packages/core/system-prompt/tests/system-prompt.spec.ts:449-580 | 测试覆盖同一 generation 新增 variable、unknown/undefined/malformed 引用、prototype 名和替换值不递归扫描。 | 07 | 07 |
SANDBOX-FS-FENCE-TESTFilesystem 围栏 mode 与逃逸测试 | packages/fs/fs-sandbox/tests/fs-sandbox.spec.ts:59-235 | 测试覆盖 read-only mutation denial/read allowance、workspace 与 temp writes、absolute/.. 与 symlink escapes、fresh target、full mode、逐调用 override 和结构化 denial。 | 20 | 20 |
SANDBOX-LOCAL-TEST本地沙箱 profile、选择与 fail-closed 测试 | packages/sandbox/sandbox-local/tests/local.spec.ts:64-453 | 测试覆盖三种 profile 方言、custom runner、Linux fallback、单候选与多候选 probe、verdict cache、unavailable、partial Landlock、Seatbelt 与 Windows ACL chain。 | 20 | 20 |
SANDBOX-OBSERVATION-TESTObservation 决策、owner 隔离与 disposal 测试 | packages/fs/fs-observation-policy/tests/policy.spec.ts:47-235 | 测试固定 unseen/absent/present write/edit 结果、成功 mutation 后版本刷新、无 owner、多个 owner、first-wins,以及 dispose 后状态与 listeners 清空。 | 20 | 20 |
SESSION-APPEND-BOUNDARY-TESTAppend precommit veto、postcommit containment 与 surface 原子性测试 | packages/core/session/tests/session.spec.ts:1388-1507 | 测试证明 observer 在通知前已看到 committed event,observer 失败不回滚;internal dispatch 可在 commit 前 veto,失败 surface plan 不污染下一 append。 | 09 | 09 |
SESSION-DERIVED-ORACLE-TEST增量派生与 fresh replay oracle 等价测试 | packages/core/session/tests/derived-cache.spec.ts:22-86 | 测试在 append、空 assistant 与 replacement 后比较 live cache 和 fresh Session replay,并验证旧 array snapshot 不随新 append 增长。 | 09 | 09 |
SESSION-IMMUTABILITY-TEST派生消息不可改写日志与非法 JSON 源头拒绝测试 | packages/core/session/tests/session.spec.ts:437-495 | 测试尝试修改派生 message/content 均因冻结失败;BigInt、函数、Symbol、Map、undefined、Infinity、稀疏/循环 graph 在 append 前拒绝且日志不增长。 | 09 | 09 |
SESSION-SEED-REPLAY-TESTSeed replay 与 end-seed 幂等测试 | packages/core/session/tests/session.spec.ts:116-155 | 测试证明 seeded Session 派生消息等同原始日志、保留 verbatim prefix、追加一次 end-seed;再次打开已标记 seed 不继续增长。 | 09 | 09 |
SESSION-UNKNOWN-EVENT-TEST未知 required/ignorable event 的 load 测试 | packages/session/session-persistence/tests/coordinator-contract.ts:1360-1382 | 测试定义未知 required event 必须报 SessionFormatUnsupportedError,而 ignorable=true 的未知 event 保留在 loaded event log 中。 | 09 | 09 |
TEST-ACPACP handshake、session 与输入边界测试 | packages/acp/acp/tests/bridge.spec.ts:14-147 | 测试固定 capability、版本响应、no-op auth、fresh session、baseline prompt、resource link、unsupported workspace/MCP 以及 unknown cancel 行为。 | 29 | 29 |
TEST-CONNECTIONConnection generation 与重连测试 | packages/client/connection/tests/connection.client.spec.ts:1-322 | 测试覆盖 describe 加双流 readiness、stream/error、sink isolation、open-timeout 降级与状态去重;readiness 中流结束的重建 fixture 必须先手工 resolve hung describe,暴露 describe 自身无 timeout/signal 的缺口。 | 29 | 29 |
TEST-REMOTEGenerated Remote 客户端测试 | packages/api/gateway/tests/gateway.client.spec.ts:1-829 | 测试覆盖严格 boundary、mount rollback、withdraw-inflight cancellation、scope projection、carrier failure folding 与 forwarded-event listener isolation。 | 29 | 29 |
TEST-SDK-PROTOCOLJSON-RPC transport 回归测试 | packages/sdk/protocol/tests/transport.spec.ts:1-307 | 测试覆盖请求、通知、错误 code/data、非法 frame、UTF-8 拆分、abort abandonment、flush、stream end 与未知 response id。 | 29 | 29 |
TINV-CONFIG-TESTCordis 元数据聚焦测试 | scripts/verify-cordis-config.spec.ts:1-38 | 验证允许的 entry-level disabled 表达式,并覆盖静态 metadata 中 !!js、disabled 下嵌套 !!js 及 disabled 语法错误三类拒绝路径。 | 32 | 32 |
TINV-COVERAGE-EXEMPT-TEST豁免清单闭包测试 | scripts/coverage-exempt.spec.ts:13-54 | 验证 filter 与 exclude glob 的非空等价选择,并禁止 suite 在清单中重叠。 | 32 | 32 |
TINV-FIXTURE-LAYOUT-TEST会话 fixture 布局守卫 | scripts/session-fixture-layout.snapshot.ts:1-16 | 扫描快照会话 JSONL,并拒绝非规范的 packed 事件表示。 | 32 | 32 |
TINV-INVARIANT-TOPOLOGY-TEST不变量拓扑回归测试 | scripts/test-invariants.spec.ts:97-152 | 把全部 companion 经真实 Loader unwrap 后注册,并断言 package reservation 与按测试路径选择的 companion 一致。 | 32 | 32 |
TINV-REGISTRY-TEST注册表生命周期测试 | packages/runtime-diagnostics/invariants/tests/service.spec.ts:189-302 | 覆盖包归属错误、child fiber 释放、重复名和启动失败时的原子回滚。 | 32 | 32 |
TINV-REPLAY-TEST位置回放失败语义测试 | packages/test-support/llm-replay/tests/llm-replay.spec.ts:671-917 | 覆盖 positional order、throw、hang、脚本耗尽、abort 与调用不足的失败语义。 | 32 | 32 |
TINV-SESSION-TESTSession 不变量回归测试 | packages/core/session/tests/invariant.spec.ts:34-116 | 验证成功提交推进轨迹,而被 veto 的发布不推进或污染后续期望。 | 32 | 32 |
TINV-SNAPSHOT-COMPAREACP 进程与双通道快照比较 | packages/test-support/acp-snapshot/src/suite.ts:1167-1342 | 运行真实组装入口,归一化可变值,并分别比较 stdout 与收集到的主、子会话日志。 | 32 | 32, 34 |
TINV-SNAPSHOT-FIXTURES场景 fixture 闭包 | packages/test-support/acp-snapshot/src/suite.ts:1440-1480 | 拒绝孤儿目录、缺失输入或预期输出、错误 override 和不合法的 header sidecar ownership。 | 32 | 32 |
WEBUI-CONNECTION-TESTS连接 generation 测试 | packages/client/connection/tests/connection.client.spec.ts:22-183 | 现有测试覆盖双 stream readiness、generation teardown、重连退避与 sink 错误隔离。 | 30 | 30 |
WEBUI-CONVERSATION-TESTSConversation 增量投影测试 | packages/client/runtime/tests/conversation-assembler.client.spec.ts:126-262 | 现有测试覆盖 append/prepend、Context fold、受影响节点重放与未变化节点 identity 保持。 | 30 | 30 |
WEBUI-HMR-TESTSHost HMR watcher 测试 | packages/client/hmr/tests/node-half.client.spec.ts:85-203 | 现有测试覆盖 graph bundle watch、增删 row、stat/content 变化、rename race 与 fiber disposal 后取消观察。 | 30 | 30 |
WEBUI-LOCATION-TESTSConversation location replay 测试 | packages/client/runtime/tests/conversation-assembler.client.spec.ts:564-860 | 现有测试覆盖 Turn/Step location 改变、边界 append/prepend 与依赖 location 的 node 更新。 | 30 | 30 |
WEBUI-MANAGER-TESTSSessionManager list refetch 测试 | packages/client/runtime/tests/manager.client.spec.ts:78-166 | 现有测试覆盖 refreshList single-flight、Host baseline 顺序及请求期间 live mutations 的重放。 | 30 | 30 |
WEBUI-MODULE-TESTS客户端模块 loader 测试 | packages/client/modules/tests/loader.client.spec.ts:63-293 | 现有测试覆盖 factory arrival、materialization、依赖缓存、样式与 invalidation 行为。 | 30 | 30 |
WEBUI-PREFERENCE-TESTSLocale 偏好与词典测试 | packages/client/locale/tests/locale.client.spec.ts:30-239 | 现有测试覆盖浏览器 provisional locale、Host preference、fallback、成对词典注册与 revision 通知。 | 30 | 30 |
WEBUI-REACT-BINDING-TESTS真实 SlotCore 的 React binding 测试 | packages/client/web-react/tests/scoped-slots-real-core.client.spec.tsx:62-125 | 现有集成测试覆盖真实 Slot ledger 的 uSES 通知批处理、live rendering、稳定引用与 stale authorization。 | 30 | 30 |
WEBUI-SESSION-SCOPE-TESTSSession scope lifecycle 测试 | packages/client/runtime/tests/sessions-service.client.spec.ts:122-174 | 现有测试覆盖 scope 首次解析时惰性创建、稳定 binding、off-stage removal 清理,以及 staged removal 延迟到 stage 移动。 | 30 | 30 |
WEBUI-SESSION-TESTSSession window 与 gap 测试 | packages/client/runtime/tests/session.client.spec.ts:178-374 | 现有测试覆盖 history/live stitching、重复 seq、缺口检测、repair 与失败时保留旧 window。 | 30 | 30 |
WEBUI-SETTINGS-TESTSSettingsScope 状态机测试 | packages/client/ui-settings/tests/settings-scope.client.spec.ts:65-421 | 现有测试覆盖初始读取、串行写、revision、失败恢复、invalidation、stale read 与内存模式。 | 30 | 30 |
WEBUI-SLOT-TESTSSlot declaration 与 cascade 测试 | packages/client/ui-slots/tests/core.client.spec.ts:52-107 | 现有测试覆盖 root-only 初始声明、未声明目标拒绝、children declaration 与父级移除时级联清理。 | 30 | 30 |
WEBUI-THEME-PRESENTER-TESTSThemePresenter DOM projection 测试 | packages/client/ui-layout/tests/theme-presenter.client.spec.ts:44-90 | 现有测试覆盖 light/dark 投影、token 替换、单一 meta 节点,以及 dispose 仅撤销 presenter 自有写入。 | 30 | 30 |
WEBUI-THEME-TESTSThemeRuntime 偏好与 token 测试 | packages/client/ui-theme/tests/theme.client.spec.ts:24-249 | 现有测试覆盖 system resolution、Host preference、可逆 theme/token layers、revision 与 service 不触碰 DOM 的边界。 | 30 | 30 |
WEBUI-TOOL-TESTSToolView keyed dispatch 测试 | packages/client/ui-tool/tests/toolview-slot.client.spec.tsx:91-230 | 现有测试覆盖 wire-name specialized dispatch、generic fallback、递归 subcall 与原子 props 边界。 | 30 | 30 |
WEBUI-WEB-REACT-TESTSSessionProvider lifecycle 测试 | packages/client/web-react/tests/session-provider.client.spec.tsx:92-190 | 现有测试覆盖 strict provider 的 session 解析、缺失 session 快速失败与 sessionId 改变时 keyed remount。 | 30 | 30 |
repository-policy · 7
| ID | 固定源码 | 该摘录支持什么 | 首次引用 | 全部引用章节 |
|---|---|---|---|---|
DESIGN-PACKAGE-RULES所有权、提交点、边界和包级不变量规则 | packages/AGENTS.md:8-18 | 异步操作需要单一生命周期所有者;能力合同由全部消费者塑造;状态只能在提交点发布;限制必须作用于完整结果;每包拥有自己的运行时不变量。 | 02 | 02 |
PKG-INVARIANTSPackage 生命周期与不变量规则 | packages/AGENTS.md:5-18 | 插件导出、组合测试、owner、commit point、disposal 和每包 invariant 的约束。 | 02 | 02, 03 |
ROOT-BOUNDARIES显式边界与快速失败 | AGENTS.md:107-116 | 跨包默认值显式 resolve,部署参数可配置,错误配置尽早失败,外部 ID 使用 branded 类型。 | 02 | 02 |
ROOT-EFFECTS注册即 effect 与 waterfall 语义 | AGENTS.md:91-100 | 贡献通过 effect/on 注册并可处置;waterfall listener 必须调用 next。 | 02 | 02 |
ROOT-MODEL-LOGGEDModel-visible 等价于 Logged | AGENTS.md:99-104 | 任何进入模型请求的输入都需要 session event,可从日志重建。 | 02 | 02, 07 |
ROOT-PREVIEWDeveloper Preview 的兼容立场 | AGENTS.md:5-8 | 首个 tag 前优先正确基础而非兼容 shim;磁盘格式没有兼容承诺。 | 01 | 01, 02 |
ROOT-TYPED-TRUST静态边界和运行时边界的验证哲学 | AGENTS.md:115-117 | 同进程静态类型边界信任 TypeScript;解析、模型 JSON、持久化、进程、worker 与 wire 边界做运行时验证。 | 该语料未引用 | — |
5. Package 与仓库区域索引 · 219
全集:固定基线的完整 Package Inventory。证据数量只涉及按精确 Package 路径边界匹配的目录路径;未匹配路径保留在显式仓库区域中。
Packages · 219
| Package / 区域 | 目录路径 | 证据记录 | 源码文件 | 测试文件 |
|---|---|---|---|---|
packages/acp/acp@deepseek-ai/dsh-acp | 4 | 13 | 3 | 8 |
packages/api/gateway@deepseek-ai/dsh-api-gateway | 4 | 8 | 4 | 2 |
packages/api/remotes@deepseek-ai/dsh-api-remotes | 3 | 5 | 6 | 2 |
packages/attachment/attachment@deepseek-ai/dsh-attachment | 2 | 2 | 5 | 0 |
packages/attachment/attachment-local@deepseek-ai/dsh-attachment-local | 3 | 6 | 4 | 3 |
packages/boot/app-boot@deepseek-ai/dsh-app-boot | 5 | 14 | 3 | 6 |
packages/boot/cmdline@deepseek-ai/dsh-cmdline | 0 | 0 | 2 | 1 |
packages/bundle/base@deepseek-ai/dsh-base | 1 | 17 | 2 | 1 |
packages/bundle/headless@deepseek-ai/dsh-headless | 1 | 2 | 3 | 2 |
packages/bundle/web-app@deepseek-ai/dsh-web-app | 1 | 5 | 3 | 3 |
packages/client/connection@deepseek-ai/dsh-client-connection | 10 | 15 | 16 | 11 |
packages/client/hmr@deepseek-ai/dsh-client-hmr | 3 | 3 | 4 | 1 |
packages/client/locale@deepseek-ai/dsh-client-locale | 2 | 3 | 11 | 6 |
packages/client/modules@deepseek-ai/dsh-client-modules | 4 | 4 | 5 | 2 |
packages/client/runtime@deepseek-ai/dsh-client-runtime | 16 | 38 | 44 | 25 |
packages/client/schema-form@deepseek-ai/dsh-client-schema-form | 0 | 0 | 3 | 2 |
packages/client/ui-agent-preset@deepseek-ai/dsh-client-ui-agent-preset | 0 | 0 | 13 | 7 |
packages/client/ui-attachment@deepseek-ai/dsh-client-ui-attachment | 0 | 0 | 7 | 5 |
packages/client/ui-commands@deepseek-ai/dsh-client-ui-commands | 0 | 0 | 10 | 5 |
packages/client/ui-conversation@deepseek-ai/dsh-client-ui-conversation | 11 | 12 | 70 | 28 |
packages/client/ui-deliverables@deepseek-ai/dsh-client-ui-deliverables | 0 | 0 | 7 | 2 |
packages/client/ui-directory-picker-browse@deepseek-ai/dsh-client-ui-directory-picker-browse | 0 | 0 | 6 | 2 |
packages/client/ui-directory-picker-native@deepseek-ai/dsh-client-ui-directory-picker-native | 0 | 0 | 4 | 1 |
packages/client/ui-goal@deepseek-ai/dsh-client-ui-goal | 5 | 5 | 9 | 3 |
packages/client/ui-input-trigger@deepseek-ai/dsh-client-ui-input-trigger | 0 | 0 | 14 | 5 |
packages/client/ui-jobs@deepseek-ai/dsh-client-ui-jobs | 1 | 1 | 6 | 2 |
packages/client/ui-layout@deepseek-ai/dsh-client-ui-layout | 3 | 4 | 9 | 6 |
packages/client/ui-message-feedback@deepseek-ai/dsh-client-ui-message-feedback | 0 | 0 | 8 | 3 |
packages/client/ui-model-selection@deepseek-ai/dsh-client-ui-model-selection | 0 | 0 | 9 | 2 |
packages/client/ui-permission-presets@deepseek-ai/dsh-client-ui-permission-presets | 3 | 3 | 8 | 3 |
packages/client/ui-plan@deepseek-ai/dsh-client-ui-plan | 1 | 1 | 6 | 2 |
packages/client/ui-primitives@deepseek-ai/dsh-client-ui-primitives | 0 | 0 | 44 | 21 |
packages/client/ui-settings@deepseek-ai/dsh-client-ui-settings | 2 | 2 | 6 | 3 |
packages/client/ui-settings-general@deepseek-ai/dsh-client-ui-settings-general | 1 | 1 | 11 | 7 |
packages/client/ui-settings-models@deepseek-ai/dsh-client-ui-settings-models | 0 | 0 | 18 | 10 |
packages/client/ui-settings-plugin-inventory@deepseek-ai/dsh-client-ui-settings-plugin-inventory | 0 | 0 | 6 | 3 |
packages/client/ui-settings-plugins@deepseek-ai/dsh-client-ui-settings-plugins | 0 | 0 | 17 | 5 |
packages/client/ui-sidebar@deepseek-ai/dsh-client-ui-sidebar | 0 | 0 | 7 | 7 |
packages/client/ui-skill@deepseek-ai/dsh-client-ui-skill | 1 | 1 | 6 | 2 |
packages/client/ui-slots@deepseek-ai/dsh-client-ui-slots | 3 | 6 | 4 | 4 |
packages/client/ui-subagent@deepseek-ai/dsh-client-ui-subagent | 1 | 1 | 7 | 2 |
packages/client/ui-theme@deepseek-ai/dsh-client-ui-theme | 2 | 2 | 9 | 8 |
packages/client/ui-tool@deepseek-ai/dsh-client-ui-tool | 8 | 8 | 25 | 16 |
packages/client/ui-trajectory@deepseek-ai/dsh-client-ui-trajectory | 3 | 3 | 28 | 8 |
packages/client/ui-user-questions@deepseek-ai/dsh-client-ui-user-questions | 1 | 1 | 8 | 4 |
packages/client/ui-workflow-run@deepseek-ai/dsh-client-ui-workflow-run | 0 | 0 | 7 | 1 |
packages/client/ui-workspace@deepseek-ai/dsh-client-ui-workspace | 1 | 1 | 11 | 8 |
packages/client/web@deepseek-ai/dsh-client-web | 3 | 4 | 11 | 5 |
packages/client/web-react@deepseek-ai/dsh-client-web-react | 5 | 6 | 7 | 7 |
packages/code-runtime/code-runtime@deepseek-ai/dsh-code-runtime | 2 | 2 | 3 | 2 |
packages/code-runtime/code-runtime-worker-thread@deepseek-ai/dsh-code-runtime-worker-thread | 4 | 9 | 7 | 6 |
packages/compaction/command-compact@deepseek-ai/dsh-command-compact | 1 | 1 | 2 | 3 |
packages/compaction/compaction@deepseek-ai/dsh-compaction | 4 | 4 | 6 | 3 |
packages/compaction/compaction-basic@deepseek-ai/dsh-compaction-basic | 6 | 10 | 6 | 4 |
packages/compaction/compaction-tool-result-pruner@deepseek-ai/dsh-compaction-tool-result-pruner | 2 | 2 | 4 | 2 |
packages/context/agent-instructions@deepseek-ai/dsh-agent-instructions | 1 | 1 | 7 | 2 |
packages/context/session-reference@deepseek-ai/dsh-session-reference | 4 | 5 | 7 | 1 |
packages/context/time-context@deepseek-ai/dsh-time-context | 1 | 1 | 4 | 4 |
packages/context/tmux-context@deepseek-ai/dsh-tmux-context | 1 | 1 | 2 | 1 |
packages/core/agent@deepseek-ai/dsh-agent | 7 | 18 | 8 | 6 |
packages/core/agent-default-model@deepseek-ai/dsh-agent-default-model | 0 | 0 | 2 | 1 |
packages/core/agent-loop@deepseek-ai/dsh-agent-loop | 16 | 78 | 6 | 20 |
packages/core/agent-tool-presentation@deepseek-ai/dsh-agent-tool-presentation | 0 | 0 | 2 | 1 |
packages/core/scope@deepseek-ai/dsh-scope | 2 | 2 | 4 | 3 |
packages/core/session@deepseek-ai/dsh-session | 12 | 26 | 10 | 13 |
packages/core/system-prompt@deepseek-ai/dsh-system-prompt | 3 | 7 | 2 | 4 |
packages/core/tools@deepseek-ai/dsh-tools | 10 | 64 | 10 | 12 |
packages/credentials/credentials@deepseek-ai/dsh-credentials | 1 | 1 | 3 | 3 |
packages/credentials/credentials-local@deepseek-ai/dsh-credentials-local | 1 | 3 | 2 | 4 |
packages/e2b/e2b@deepseek-ai/dsh-e2b | 1 | 2 | 2 | 2 |
packages/e2b/fs-e2b@deepseek-ai/dsh-fs-e2b | 2 | 4 | 2 | 1 |
packages/e2b/subprocess-e2b@deepseek-ai/dsh-subprocess-e2b | 2 | 3 | 7 | 2 |
packages/examples/acp-demo@deepseek-ai/dsh-acp-demo | 0 | 0 | 3 | 3 |
packages/examples/agent-spine-demo@deepseek-ai/dsh-agent-spine-demo | 0 | 0 | 2 | 3 |
packages/examples/jsonrpc-demo@deepseek-ai/dsh-sdk-jsonrpc-demo | 0 | 0 | 5 | 0 |
packages/extensions/cordis-client-runner@deepseek-ai/dsh-cordis-client-runner | 5 | 6 | 12 | 5 |
packages/extensions/cordis-host-runner@deepseek-ai/dsh-cordis-host-runner | 8 | 18 | 8 | 6 |
packages/extensions/tool-cordis@deepseek-ai/dsh-tool-cordis | 3 | 7 | 8 | 1 |
packages/extensions/ui-cordis@deepseek-ai/dsh-client-ui-cordis | 0 | 0 | 16 | 3 |
packages/feedback/command-feedback@deepseek-ai/dsh-command-feedback | 1 | 1 | 2 | 2 |
packages/feedback/message-feedback@deepseek-ai/dsh-message-feedback | 1 | 1 | 4 | 4 |
packages/fs/fs@deepseek-ai/dsh-fs | 3 | 3 | 3 | 2 |
packages/fs/fs-local@deepseek-ai/dsh-fs-local | 3 | 7 | 4 | 3 |
packages/fs/fs-observation-policy@deepseek-ai/dsh-fs-observation-policy | 3 | 5 | 3 | 1 |
packages/fs/fs-sandbox@deepseek-ai/dsh-fs-sandbox | 3 | 4 | 3 | 2 |
packages/fs/tool-fs@deepseek-ai/dsh-tool-fs | 6 | 7 | 12 | 8 |
packages/fs/tool-fs-search@deepseek-ai/dsh-tool-fs-search | 1 | 1 | 8 | 5 |
packages/fs/tool-str-replace-editor@deepseek-ai/dsh-tool-str-replace-editor | 0 | 0 | 2 | 1 |
packages/goal/command-goal@deepseek-ai/dsh-command-goal | 2 | 2 | 2 | 1 |
packages/goal/goal@deepseek-ai/dsh-goal | 4 | 6 | 7 | 4 |
packages/goal/goal-round-driver@deepseek-ai/dsh-goal-round-driver | 2 | 3 | 3 | 2 |
packages/goal/tool-goal@deepseek-ai/dsh-tool-goal | 4 | 4 | 4 | 1 |
packages/guard/repeat-tool-reminder@deepseek-ai/dsh-repeat-tool-reminder | 0 | 0 | 2 | 1 |
packages/guard/timeout-policy@deepseek-ai/dsh-tool-call-timeout-policy | 2 | 2 | 2 | 1 |
packages/hooks/hook-protocol@deepseek-ai/dsh-hook-protocol | 0 | 0 | 9 | 7 |
packages/hooks/hooks-claude-code@deepseek-ai/dsh-hooks-claude-code | 0 | 0 | 3 | 7 |
packages/hooks/hooks-codex@deepseek-ai/dsh-hooks-codex | 0 | 0 | 3 | 6 |
packages/host/apiproxy@deepseek-ai/dsh-host-apiproxy | 13 | 48 | 42 | 20 |
packages/host/directory-picker@deepseek-ai/dsh-host-directory-picker | 0 | 0 | 2 | 1 |
packages/host/directory-picker-auto@deepseek-ai/dsh-host-directory-picker-auto | 0 | 0 | 4 | 2 |
packages/host/directory-picker-browse@deepseek-ai/dsh-host-directory-picker-browse | 0 | 0 | 2 | 1 |
packages/host/directory-picker-native@deepseek-ai/dsh-host-directory-picker-native | 0 | 0 | 8 | 6 |
packages/host/frontend-static@deepseek-ai/dsh-host-frontend-static | 0 | 0 | 2 | 1 |
packages/host/plugin-inventory@deepseek-ai/dsh-host-plugin-inventory | 0 | 0 | 3 | 2 |
packages/host/webserver@deepseek-ai/dsh-host-webserver | 0 | 0 | 2 | 1 |
packages/identity/anonymous-user-id@deepseek-ai/dsh-anonymous-user-id | 1 | 1 | 2 | 2 |
packages/interaction/commands@deepseek-ai/dsh-commands | 0 | 0 | 4 | 2 |
packages/interaction/permission-presets@deepseek-ai/dsh-permission-presets | 3 | 11 | 4 | 3 |
packages/interaction/tool-ask-user@deepseek-ai/dsh-tool-ask-user | 0 | 0 | 2 | 1 |
packages/interaction/user-approval@deepseek-ai/dsh-user-approval | 4 | 8 | 3 | 2 |
packages/interaction/user-questions@deepseek-ai/dsh-user-questions | 1 | 1 | 3 | 1 |
packages/jobs/jobs@deepseek-ai/dsh-jobs | 0 | 0 | 4 | 2 |
packages/jobs/jobs-local@deepseek-ai/dsh-jobs-local | 1 | 4 | 2 | 2 |
packages/jobs/tool-jobs@deepseek-ai/dsh-tool-jobs | 1 | 2 | 2 | 1 |
packages/llm/llm@deepseek-ai/dsh-llm | 7 | 14 | 14 | 11 |
packages/llm/llm-deepseek@deepseek-ai/dsh-llm-deepseek | 5 | 13 | 7 | 9 |
packages/llm/llm-pi-ai@deepseek-ai/dsh-llm-pi-ai | 4 | 4 | 10 | 13 |
packages/llm/llm-retry@deepseek-ai/dsh-llm-retry | 4 | 8 | 5 | 5 |
packages/llm/token-meter@deepseek-ai/dsh-token-meter | 4 | 6 | 10 | 3 |
packages/lsp/lsp@deepseek-ai/dsh-lsp | 1 | 1 | 4 | 1 |
packages/lsp/lsp-stdio@deepseek-ai/dsh-lsp-stdio | 2 | 3 | 9 | 10 |
packages/lsp/tool-lsp@deepseek-ai/dsh-tool-lsp | 1 | 1 | 4 | 4 |
packages/mcp/mcp-client@deepseek-ai/dsh-mcp-client | 5 | 12 | 5 | 6 |
packages/plan/plan-mode@deepseek-ai/dsh-plan-mode | 3 | 7 | 4 | 4 |
packages/preset/agent-presets@deepseek-ai/dsh-agent-presets | 1 | 1 | 9 | 8 |
packages/preset/persona@deepseek-ai/dsh-persona | 0 | 0 | 2 | 1 |
packages/runtime-diagnostics/invariants@deepseek-ai/dsh-invariants | 2 | 3 | 2 | 1 |
packages/sandbox/sandbox@deepseek-ai/dsh-sandbox | 5 | 13 | 4 | 3 |
packages/sandbox/sandbox-local@deepseek-ai/dsh-sandbox-local | 4 | 10 | 3 | 6 |
packages/sandbox/sandbox-policy@deepseek-ai/dsh-sandbox-policy | 2 | 3 | 3 | 2 |
packages/sandbox/sandbox-windows-acl@deepseek-ai/dsh-sandbox-windows-acl | 1 | 1 | 12 | 14 |
packages/schedule/schedule@deepseek-ai/dsh-schedule | 0 | 0 | 8 | 7 |
packages/sdk/client@deepseek-ai/dsh-sdk-client | 4 | 7 | 6 | 3 |
packages/sdk/protocol@deepseek-ai/dsh-sdk-protocol | 4 | 4 | 4 | 1 |
packages/sdk/server@deepseek-ai/dsh-sdk-jsonrpc-server | 2 | 5 | 3 | 4 |
packages/session-query/session-log-export@deepseek-ai/dsh-session-log-export | 0 | 0 | 8 | 7 |
packages/session-query/session-query@deepseek-ai/dsh-session-query | 5 | 7 | 11 | 4 |
packages/session-query/session-query-sqlite@deepseek-ai/dsh-session-query-sqlite | 2 | 2 | 4 | 3 |
packages/session-query/tool-session-query@deepseek-ai/dsh-tool-session-query | 4 | 7 | 7 | 2 |
packages/session/session-checkpoint-policy@deepseek-ai/dsh-session-checkpoint-policy | 5 | 9 | 2 | 3 |
packages/session/session-persistence@deepseek-ai/dsh-session-persistence | 6 | 20 | 6 | 5 |
packages/session/session-persistence-jsonl@deepseek-ai/dsh-session-persistence-jsonl | 6 | 13 | 7 | 4 |
packages/session/session-persistence-sqlite@deepseek-ai/dsh-session-persistence-sqlite | 3 | 7 | 3 | 1 |
packages/session/session-projection@deepseek-ai/dsh-session-projection | 1 | 4 | 3 | 1 |
packages/session/session-projection-cache@deepseek-ai/dsh-session-projection-cache | 2 | 3 | 3 | 1 |
packages/session/session-stats@deepseek-ai/dsh-session-stats | 3 | 3 | 5 | 2 |
packages/session/session-telemetry@deepseek-ai/dsh-session-telemetry | 5 | 10 | 3 | 2 |
packages/session/session-telemetry-otel@deepseek-ai/dsh-session-telemetry-otel | 5 | 9 | 2 | 2 |
packages/session/session-title@deepseek-ai/dsh-session-title | 0 | 0 | 5 | 7 |
packages/session/session-title-all-prompts-llm@deepseek-ai/dsh-session-title-all-prompts-llm | 0 | 0 | 2 | 1 |
packages/session/session-title-first-prompt-llm@deepseek-ai/dsh-session-title-first-prompt-llm | 0 | 0 | 2 | 3 |
packages/session/session-title-llm@deepseek-ai/dsh-session-title-llm | 0 | 0 | 2 | 1 |
packages/settings/settings@deepseek-ai/dsh-settings | 2 | 3 | 4 | 4 |
packages/settings/settings-file@deepseek-ai/dsh-settings-file | 0 | 0 | 2 | 5 |
packages/shell/bash-local@deepseek-ai/dsh-bash-local | 0 | 0 | 2 | 2 |
packages/shell/bash-sandbox@deepseek-ai/dsh-bash-sandbox | 2 | 2 | 3 | 5 |
packages/shell/pwsh-local@deepseek-ai/dsh-pwsh-local | 0 | 0 | 3 | 2 |
packages/shell/pwsh-sandbox@deepseek-ai/dsh-pwsh-sandbox | 0 | 0 | 3 | 2 |
packages/shell/shell@deepseek-ai/dsh-shell | 1 | 1 | 4 | 2 |
packages/shell/shell-env@deepseek-ai/dsh-shell-env | 1 | 2 | 2 | 1 |
packages/shell/tool-bash@deepseek-ai/dsh-tool-bash | 2 | 4 | 4 | 2 |
packages/shell/tool-bash-persistent@deepseek-ai/dsh-tool-bash-persistent | 1 | 1 | 2 | 2 |
packages/shell/tool-pwsh@deepseek-ai/dsh-tool-pwsh | 2 | 4 | 4 | 3 |
packages/skill/skill@deepseek-ai/dsh-skill | 1 | 6 | 2 | 1 |
packages/skill/skill-badge@deepseek-ai/dsh-skill-badge | 0 | 0 | 2 | 1 |
packages/skill/skill-filesystem@deepseek-ai/dsh-skill-filesystem | 1 | 5 | 2 | 2 |
packages/skill/tool-skill@deepseek-ai/dsh-tool-skill | 1 | 5 | 2 | 1 |
packages/spill/spill@deepseek-ai/dsh-spill | 0 | 0 | 3 | 1 |
packages/spill/spill-local@deepseek-ai/dsh-spill-local | 0 | 0 | 3 | 1 |
packages/spill/spill-policy@deepseek-ai/dsh-spill-policy | 0 | 0 | 3 | 1 |
packages/storage/storage@deepseek-ai/dsh-storage | 2 | 2 | 5 | 2 |
packages/storage/storage-domain@deepseek-ai/dsh-storage-domain | 1 | 2 | 6 | 3 |
packages/storage/storage-json@deepseek-ai/dsh-storage-json | 3 | 3 | 5 | 1 |
packages/storage/storage-sqlite@deepseek-ai/dsh-storage-sqlite | 3 | 4 | 4 | 2 |
packages/subagent/subagent@deepseek-ai/dsh-subagent | 15 | 40 | 18 | 10 |
packages/subagent/subagent-acp@deepseek-ai/dsh-subagent-acp | 2 | 4 | 3 | 4 |
packages/subagent/subagent-claude-code@deepseek-ai/dsh-subagent-claude-code | 1 | 1 | 4 | 5 |
packages/subagent/subagent-codex@deepseek-ai/dsh-subagent-codex | 4 | 5 | 4 | 6 |
packages/subagent/subagent-dsh-sdk@deepseek-ai/dsh-subagent-dsh-sdk | 1 | 1 | 3 | 2 |
packages/subagent/subagent-fork-in-process@deepseek-ai/dsh-subagent-fork-in-process | 2 | 2 | 2 | 2 |
packages/subagent/subagent-in-process-driver@deepseek-ai/dsh-subagent-in-process-driver | 2 | 3 | 3 | 4 |
packages/subagent/subagent-spawn-in-process@deepseek-ai/dsh-subagent-spawn-in-process | 1 | 1 | 2 | 3 |
packages/subagent/tool-subagent@deepseek-ai/dsh-tool-subagent | 1 | 3 | 2 | 3 |
packages/subagent/tool-subagent-control@deepseek-ai/dsh-tool-subagent-control | 2 | 3 | 3 | 3 |
packages/subagent/tool-subagent-report@deepseek-ai/dsh-tool-subagent-report | 1 | 1 | 2 | 1 |
packages/subprocess/subprocess@deepseek-ai/dsh-subprocess | 2 | 5 | 3 | 1 |
packages/subprocess/subprocess-local@deepseek-ai/dsh-subprocess-local | 3 | 5 | 5 | 7 |
packages/terminal/terminal@deepseek-ai/dsh-terminal | 1 | 1 | 3 | 1 |
packages/terminal/terminal-bash@deepseek-ai/dsh-terminal-bash | 2 | 2 | 5 | 5 |
packages/terminal/tool-terminal@deepseek-ai/dsh-tool-terminal | 1 | 1 | 3 | 3 |
packages/test-support/acp-snapshot@deepseek-ai/dsh-acp-snapshot | 2 | 4 | 6 | 4 |
packages/test-support/agent-loop-testkit@deepseek-ai/dsh-agent-loop-testkit | 0 | 0 | 2 | 1 |
packages/test-support/client-runtime@deepseek-ai/dsh-client-test-runtime | 0 | 0 | 10 | 3 |
packages/test-support/llm-mock-server@deepseek-ai/dsh-llm-mock-server | 0 | 0 | 4 | 3 |
packages/test-support/llm-replay@deepseek-ai/dsh-llm-replay | 3 | 5 | 2 | 1 |
packages/test-support/loader-smoke@deepseek-ai/dsh-loader-smoke | 0 | 0 | 3 | 6 |
packages/todo/tool-todo@deepseek-ai/dsh-tool-todo | 4 | 4 | 4 | 5 |
packages/typert/generator@deepseek-ai/dsh-typert-generator | 0 | 0 | 17 | 18 |
packages/typert/loader@deepseek-ai/dsh-typert-loader | 0 | 0 | 2 | 1 |
packages/typert/protocol@deepseek-ai/dsh-typert-protocol | 0 | 0 | 3 | 2 |
packages/typert/registry@deepseek-ai/dsh-typert-registry | 0 | 0 | 5 | 1 |
packages/util/atomic-write@deepseek-ai/dsh-atomic-write | 1 | 1 | 2 | 2 |
packages/util/brand@deepseek-ai/dsh-brand | 0 | 0 | 2 | 0 |
packages/util/home-paths@deepseek-ai/dsh-home-paths | 0 | 0 | 2 | 1 |
packages/util/launch-environment@deepseek-ai/dsh-launch-environment | 0 | 0 | 2 | 1 |
packages/util/native-command@deepseek-ai/dsh-native-command | 1 | 1 | 2 | 1 |
packages/util/output-retention@deepseek-ai/dsh-output-retention | 0 | 0 | 2 | 1 |
packages/util/timeout@deepseek-ai/dsh-timeout | 1 | 1 | 2 | 1 |
packages/web/tool-web@deepseek-ai/dsh-tool-web | 1 | 1 | 5 | 4 |
packages/web/web@deepseek-ai/dsh-web | 2 | 2 | 3 | 1 |
packages/web/web-fetch-http@deepseek-ai/dsh-web-fetch-http | 3 | 4 | 4 | 1 |
packages/web/web-search-deepseek@deepseek-ai/dsh-web-search-deepseek | 2 | 4 | 4 | 4 |
packages/web/web-search-exa@deepseek-ai/dsh-web-search-exa | 0 | 0 | 4 | 2 |
packages/web/web-search-perplexity@deepseek-ai/dsh-web-search-perplexity | 0 | 0 | 4 | 2 |
packages/workflow/tool-ralph@deepseek-ai/dsh-tool-ralph | 2 | 9 | 2 | 2 |
packages/workflow/tool-workflow@deepseek-ai/dsh-tool-workflow | 3 | 5 | 3 | 2 |
packages/workflow/workflow@deepseek-ai/dsh-workflow | 3 | 5 | 4 | 2 |
packages/workflow/workflow-worker-thread@deepseek-ai/dsh-workflow-worker-thread | 6 | 21 | 10 | 8 |
packages/workspace/workspace@deepseek-ai/dsh-workspace | 4 | 10 | 6 | 2 |
仓库区域 · 9
| Package / 区域 | 目录路径 | 证据记录 | 源码文件 | 测试文件 |
|---|---|---|---|---|
.agents | 2 | 4 | — | — |
.github | 3 | 9 | — | — |
apps | 10 | 22 | — | — |
docs | 6 | 10 | — | — |
examples | 3 | 6 | — | — |
packages-unmatched | 3 | 4 | — | — |
python | 3 | 6 | — | — |
repository-root | 4 | 10 | — | — |
scripts | 17 | 21 | — | — |
6. 目录路径索引 · 533
全集:证据目录中出现的所有不同路径,而不是仓库中的每个文件。
| 固定源码 | Package 或仓库区域 | 目录行号范围 |
|---|---|---|
.agents/notes/implemented/bug-fix/2026-08-07-cancel-convergence-wake-latch.md | .agents | 9-29 · INBOX-WAKE-LATCH-NOTE |
.agents/notes/implemented/feature/2026-07-10-parallel-tool-call-execution.md | .agents | 17-25 · PARALLEL-SAFETY-NOTE43-51 · PARALLEL-NOTE-DRIFT53-65 · TOOLCAT-PARALLEL-OPTINS |
.github/workflows/ci.yml | .github | 63-257 · TINV-CI-LINUX260-296 · TINV-NODE-MATRIX328-489 · OPEN-CI-WINDOWS-SIGNALS328-489 · TINV-WINDOWS491-696 · OPEN-CI-SERIAL-LANES904-935 · OPEN-CI-VERDICT904-935 · TINV-REQUIRED-VERDICT |
.github/workflows/e2e.yml | .github | 1-65 · OPEN-REAL-API-CI |
.github/workflows/sandbox.yml | .github | 1-113 · OPEN-SANDBOX-CI |
AGENTS.md | repository-root | 5-8 · ROOT-PREVIEW91-100 · ROOT-EFFECTS99-104 · ROOT-MODEL-LOGGED107-116 · ROOT-BOUNDARIES115-117 · ROOT-TYPED-TRUST |
apps/cli/config/agent-presets/code/agent.cordis.yml | apps | 164-220 · MULTIAGENT-CODE-PRESET |
apps/cli/config/agent-presets/cordis/agent.cordis.yml | apps | 155-220 · MULTIAGENT-CORDIS-PRESET |
apps/cli/config/agent-presets/minimal/agent.cordis.yml | apps | 1-62 · MEMORY-MINIMAL-PRESET1-60 · SHELL-MINIMAL-COMPOSITION1-62 · TOOLCAT-MINIMAL |
apps/cli/config/agent-presets/standard/agent.cordis.yml | apps | 1-251 · MULTIAGENT-STANDARD-PRESET35-74 · SHELL-STANDARD-COMPOSITION35-124 · TOOLCAT-STANDARD-BASE76-87 · CAP-SKILL-SHIPPED76-155 · MEMORY-STANDARD-PRESET157-251 · TOOLCAT-STANDARD-ORCHESTRATION165-233 · WORKFLOW-SHIPPED-PRESET |
apps/cli/package.json | apps | 1-12 · OPEN-CLI-VERSION |
apps/cli/src/bin.ts | apps | 27-52 · CLI-PROFILE-DISPATCH |
apps/cli/src/plugin.ts | apps | 55-157 · SEC-PLUGIN-PNPM |
apps/cli/src/profile-boot.ts | apps | 56-170 · OBS-HARD-OPTOUT59-103 · PROFILE-ROOT121-170 · PROFILE-COMPOSE121-170 · SEC-PROFILE-ORDER227-299 · PROFILE-LIVE |
apps/cli/tests/memory-mcp-configs.spec.ts | apps | 83-131 · MEMORY-MCP-CONTRACT-TEST |
apps/web/tests/stats-paged-history.e2e.ts | apps | 73-135 · OBS-TEST-STATS-PAGING |
docs/agent-lifecycle.md | docs | 19-80 · TURN-SEQUENCE |
docs/architecture.md | docs | 9-13 · ARCH-PLUGIN-CORE15-37 · ARCH-LAYERS63-90 · ARCH-TURN92-102 · ARCH-LOG |
docs/cordis-primer.md | docs | 7-44 · DESIGN-CORDIS-SEMANTICS |
docs/testing.md | docs | 7-15 · TINV-POLICY |
docs/tool-catalog.md | docs | 1-41 · TOOLCAT-GENERATED16-41 · TOOLCAT-PACKAGE-MAP |
docs/tool-execution-pipeline.md | docs | 4-60 · TOOL-PIPELINE |
examples/headless-agent/advanced.cordis.yml | examples | 28-34 · CODEMODE-SELF-MOD-OPTIN28-34 · SEC-SELF-MOD-OPTIN |
examples/headless-agent/e2b.cordis.yml | examples | 1-41 · SANDBOX-E2B-COMPOSITION35-57 · CAP-LSP-OPTIONAL |
examples/mcp-memory/README.md | examples | 1-33 · CAP-MCP-DEFAULT-OFF5-82 · MEMORY-MCP-BOUNDARY |
packages/acp/acp/package.json | packages/acp/acp | 1-36 · ACP-PACKAGE |
packages/acp/acp/src/codec.ts | packages/acp/acp | 9-65 · ACP-CODEC |
packages/acp/acp/src/index.ts | packages/acp/acp | 1-45 · SEC-ACP-TRUST18-35 · ACP-SDK-IMPORTS130-229 · ACP-OUTPUT-PERMISSION145-345 · ACP-PROMPT-CANCEL212-229 · APPROVAL-ACP-ANSWERER212-274 · SEC-ACP-BRIDGE231-436 · ACP-HANDSHAKE348-415 · ACP-QUIESCE348-353 · ACP-SDK-CONNECTION430-433 · SEC-ACP-CWD |
packages/acp/acp/tests/bridge.spec.ts | packages/acp/acp | 14-147 · TEST-ACP |
packages/AGENTS.md | packages-unmatched | 5-18 · PKG-INVARIANTS8-18 · DESIGN-PACKAGE-RULES |
packages/api/gateway/src/client/index.ts | packages/api/gateway | 174-260 · REMOTE-CLIENT-MOUNT327-415 · REMOTE-CLIENT-INVOKE399-409 · SEC-REMOTE-CARRIER549-575 · SEC-REMOTE-CODECS |
packages/api/gateway/src/index.ts | packages/api/gateway | 90-235 · REMOTE-HOST-DISPATCH159-489 · REMOTE-HOST-ERRORS |
packages/api/gateway/src/types.ts | packages/api/gateway | 6-46 · REMOTE-GATEWAY-TYPES |
packages/api/gateway/tests/gateway.client.spec.ts | packages/api/gateway | 1-829 · TEST-REMOTE |
packages/api/remotes/src/agent-lookup.ts | packages/api/remotes | 113-210 · PLANSTATE-GOAL-API-ROUTING113-211 · REMOTE-AGENT-RESOLVE |
packages/api/remotes/src/client/index.ts | packages/api/remotes | 97-121 · SEC-REMOTE-MOUNT |
packages/api/remotes/src/remote-events.ts | packages/api/remotes | 1-29 · REMOTE-EVENT-ALLOWLIST1-29 · SEC-REMOTE-EVENTS |
packages/attachment/attachment-local/README.md | packages/attachment/attachment-local | 1-7 · PERSIST-ATTACH-DECODE-DOC17-20 · OPEN-ATTACHMENT-LOCAL-RETENTION17-21 · PERSIST-ATTACH-LIMITS |
packages/attachment/attachment-local/src/image.ts | packages/attachment/attachment-local | 21-65 · PERSIST-ATTACH-DECODE-IMPL |
packages/attachment/attachment-local/src/store.ts | packages/attachment/attachment-local | 19-194 · PERSIST-ATTACH-STORE46-230 · PERSIST-ATTACH-DECODE-SOURCE |
packages/attachment/attachment/README.md | packages/attachment/attachment | 17-21 · OPEN-ATTACHMENT-RETENTION |
packages/attachment/attachment/src/index.ts | packages/attachment/attachment | 28-59 · PERSIST-ATTACH-SEAM |
packages/boot/app-boot/src/index.ts | packages/boot/app-boot | 92-198 · SEC-ENV-LAYERS225-265 · BOOT-HMR225-338 · FAILURE-HMR-WATCH267-337 · SEC-PATCH-LAYERS475-528 · SEC-LOADER-IMPORT757-801 · BOOT-TRANSACTION757-801 · SEC-BOOT-TRANSACTION |
packages/boot/app-boot/src/profile.ts | packages/boot/app-boot | 104-168 · PROFILE-TEMPLATES204-255 · PROFILE-MODULE-FALLBACK357-420 · PROFILE-LOAD |
packages/boot/app-boot/tests/config-reload.spec.ts | packages/boot/app-boot | 61-84 · FAILURE-HMR-CONFIG-TEST |
packages/boot/app-boot/tests/profile.spec.ts | packages/boot/app-boot | 121-143 · PROFILE-ORDER-TEST |
packages/boot/app-boot/tests/user-patches.spec.ts | packages/boot/app-boot | 315-356 · FAILURE-HMR-USER-PATCH-TEST315-371 · PROFILE-HMR-TEST |
packages/bundle/base/cordis.patch.yml | packages/bundle/base | 1-24 · BASE-BUNDLE-SEMANTICS24-100 · BASE-BUNDLE-SPINE98-121 · MEMORY-DEFAULT-COMPOSITION98-356 · PROJ-SHIPPED-COMPOSITION98-115 · TOOLCAT-ATTACHMENT129-161 · OBS-BASE-DEFAULT163-205 · SEC-SHIPPED-PERMISSION166-205 · APPROVAL-SHIPPED-PRESETS166-205 · SANDBOX-SHIPPED-POLICY210-230 · SANDBOX-SHIPPED-FS232-248 · CAP-SKILL-BASE265-279 · PLANSTATE-SHIPPED-PLAN-POLICY292-338 · MULTIAGENT-BASE-COMPOSITION315-382 · WORKFLOW-SHIPPED-BASE367-375 · PLANSTATE-SHIPPED-TODO-POLICY396-418 · CAP-WEB-SHIPPED441-445 · SANDBOX-SHIPPED-FS-PROVIDER |
packages/bundle/headless/cordis.patch.yml | packages/bundle/headless | 1-35 · HEADLESS-BUNDLE17-26 · CODEMODE-HEADLESS-COMPOSITION |
packages/bundle/web-app/cordis.patch.yml | packages/bundle/web-app | 35-50 · CODEMODE-WEB-COMPOSITION97-203 · WEBUI-DUAL-ROSTER276-408 · WEB-AGENT-PLANE367-390 · MULTIAGENT-WEB-PLANE380-410 · WORKFLOW-WEB-ISOLATION |
packages/client/connection/README.md | packages/client/connection | 23-26 · OPEN-API-BODY-BOUND |
packages/client/connection/src/api-request-trust.ts | packages/client/connection | 1-123 · API-TRUST-FENCE1-122 · APPROVAL-WEB-TRUST1-122 · SEC-BROWSER-FENCE |
packages/client/connection/src/client/connection.ts | packages/client/connection | 3-201 · API-CONNECTION-LOOP19-201 · WEBUI-CONNECTION-GENERATION |
packages/client/connection/src/client/rpc.ts | packages/client/connection | 24-46 · API-HTTP-CLIENT |
packages/client/connection/src/client/web-api-client.ts | packages/client/connection | 34-90 · API-WS-CLIENT |
packages/client/connection/src/http-bridge.ts | packages/client/connection | 8-99 · API-HTTP-BRIDGE |
packages/client/connection/src/index.ts | packages/client/connection | 69-195 · API-PRIVILEGED-LOOPBACK69-159 · SEC-BROWSER-PRIVILEGED |
packages/client/connection/src/rpc-host.ts | packages/client/connection | 144-223 · API-HTTP-HANDLER |
packages/client/connection/src/websocket-downlink.ts | packages/client/connection | 46-137 · API-WS-HOST |
packages/client/connection/tests/connection.client.spec.ts | packages/client/connection | 1-322 · TEST-CONNECTION22-183 · WEBUI-CONNECTION-TESTS |
packages/client/hmr/src/client/index.ts | packages/client/hmr | 1-180 · WEBUI-HMR-SWAP |
packages/client/hmr/src/index.ts | packages/client/hmr | 30-190 · WEBUI-HMR-HOST |
packages/client/hmr/tests/node-half.client.spec.ts | packages/client/hmr | 85-203 · WEBUI-HMR-TESTS |
packages/client/locale/src/client/index.ts | packages/client/locale | 104-207 · WEBUI-LOCALE-OWNER346-391 · WEBUI-LOCALE-INSTALL |
packages/client/locale/tests/locale.client.spec.ts | packages/client/locale | 30-239 · WEBUI-PREFERENCE-TESTS |
packages/client/modules/src/client/manifest.ts | packages/client/modules | 43-143 · WEBUI-MANIFEST-CONTRACT |
packages/client/modules/src/client/system.ts | packages/client/modules | 77-195 · WEBUI-LAZY-MODULES |
packages/client/modules/src/index.ts | packages/client/modules | 184-419 · WEBUI-HOST-GRAPH |
packages/client/modules/tests/loader.client.spec.ts | packages/client/modules | 63-293 · WEBUI-MODULE-TESTS |
packages/client/runtime/README.md | packages/client/runtime | 89-93 · OPEN-CLIENT-UNLOAD89-92 · WEBUI-UNLOAD-LIMIT |
packages/client/runtime/src/client/contract/conversation.ts | packages/client/runtime | 164-227 · WEBUI-CONVERSATION-DEFINITION |
packages/client/runtime/src/client/index.ts | packages/client/runtime | 69-73 · WEBUI-RUNTIME-STORE-OWNER182-232 · WEBUI-RUNTIME-WIRING204-232 · WEBUI-RUNTIME-RECONNECT |
packages/client/runtime/src/client/sessions/conversation-assembler.ts | packages/client/runtime | 133-248 · LOG-CONVERSATION-ASSEMBLER162-257 · WEBUI-CONVERSATION-INCREMENTAL337-446 · WEBUI-CONVERSATION-FOLD707-743 · WEBUI-CONVERSATION-VIEW-VALIDATION |
packages/client/runtime/src/client/sessions/conversation-location-index.ts | packages/client/runtime | 201-464 · WEBUI-LOCATION-INDEX |
packages/client/runtime/src/client/sessions/manager.ts | packages/client/runtime | 254-320 · WEBUI-LAZY-SESSION438-735 · PROJ-CLIENT-MANAGER438-470 · WEBUI-LIST-REFETCH675-789 · WEBUI-COLD-SESSION-DISPATCH878-909 · WEBUI-MANAGER-RECONNECT1020-1075 · WEBUI-SELECTION-ADDRESSABILITY |
packages/client/runtime/src/client/sessions/projection-store.ts | packages/client/runtime | 67-177 · PROJ-CLIENT-STORE128-177 · PROJ-CLIENT-EQUAL-SEQ |
packages/client/runtime/src/client/sessions/queue-mirror.ts | packages/client/runtime | 23-73 · INBOX-CLIENT-MIRROR |
packages/client/runtime/src/client/sessions/service.ts | packages/client/runtime | 228-365 · WEBUI-SESSION-RUNTIME599-766 · WEBUI-SESSION-SCOPE-LIFECYCLE599-766 · WEBUI-SINGLE-STAGE-LIMIT659-733 · WEBUI-SESSION-SELECTION |
packages/client/runtime/src/client/sessions/session.ts | packages/client/runtime | 184-329 · INBOX-CHILD-CLIENT376-723 · OBS-HISTORY-CLIENT412-485 · INBOX-RECONNECT-CLIENT412-425 · WEBUI-SESSION-RESYNC612-724 · WEBUI-SESSION-GAP-REPAIR614-729 · LOG-CLIENT-STITCH |
packages/client/runtime/src/client/sessions/steering-history.ts | packages/client/runtime | 20-63 · INBOX-HISTORY-CLASSIFICATION |
packages/client/runtime/src/client/slots.ts | packages/client/runtime | 128-204 · WEBUI-SLOT-DECL-INJECT264-456 · WEBUI-STORE-SCOPE-LIFECYCLE |
packages/client/runtime/tests/conversation-assembler.client.spec.ts | packages/client/runtime | 126-262 · WEBUI-CONVERSATION-TESTS564-860 · WEBUI-LOCATION-TESTS |
packages/client/runtime/tests/manager.client.spec.ts | packages/client/runtime | 78-166 · WEBUI-MANAGER-TESTS |
packages/client/runtime/tests/session.client.spec.ts | packages/client/runtime | 178-374 · WEBUI-SESSION-TESTS |
packages/client/runtime/tests/sessions-service.client.spec.ts | packages/client/runtime | 122-174 · WEBUI-SESSION-SCOPE-TESTS |
packages/client/ui-conversation/README.md | packages/client/ui-conversation | 57-64 · WEBUI-DETAILS-LIMIT |
packages/client/ui-conversation/src/client/chat/ChatView.tsx | packages/client/ui-conversation | 400-406 · INBOX-PENDING-STEERING-UI |
packages/client/ui-conversation/src/client/chat/StatsLine.tsx | packages/client/ui-conversation | 34-205 · OBS-STATS-UI |
packages/client/ui-conversation/src/client/conversation-nodes/assistant.ts | packages/client/ui-conversation | 72-205 · LOG-CLIENT-ASSISTANT |
packages/client/ui-conversation/src/client/input/submission-policy.ts | packages/client/ui-conversation | 17-57 · INBOX-SUBMISSION-POLICY |
packages/client/ui-conversation/src/client/queue/QueueDock.tsx | packages/client/ui-conversation | 27-205 · INBOX-QUEUE-DOCK |
packages/client/ui-conversation/src/client/skeleton/ApprovalPanel.tsx | packages/client/ui-conversation | 22-87 · APPROVAL-UI-PANEL |
packages/client/ui-conversation/src/client/skeleton/InputBar.tsx | packages/client/ui-conversation | 313-339 · INBOX-INPUT-GESTURES541-555 · INBOX-CHILD-COMPOSER |
packages/client/ui-conversation/src/client/skeleton/PermissionSelect.tsx | packages/client/ui-conversation | 10-170 · APPROVAL-PERMISSION-COMPOSER |
packages/client/ui-conversation/src/client/skeleton/TodoPanel.tsx | packages/client/ui-conversation | 81-153 · PLANSTATE-TODO-UI |
packages/client/ui-conversation/src/client/stores.ts | packages/client/ui-conversation | 1-34 · WEBUI-CHAT-STORE |
packages/client/ui-goal/README.md | packages/client/ui-goal | 5-21 · PLANSTATE-DOC-GOAL-UI |
packages/client/ui-goal/src/client/goal-command-input.ts | packages/client/ui-goal | 26-70 · PLANSTATE-GOAL-COMMAND-UI |
packages/client/ui-goal/src/client/GoalBar.tsx | packages/client/ui-goal | 34-186 · PLANSTATE-GOAL-UI |
packages/client/ui-goal/src/client/GoalCommandInputView.tsx | packages/client/ui-goal | 11-30 · PLANSTATE-GOAL-COMMAND-VIEW |
packages/client/ui-goal/src/client/index.ts | packages/client/ui-goal | 40-99 · PLANSTATE-GOAL-UI-REMOTE |
packages/client/ui-jobs/README.md | packages/client/ui-jobs | 5-24 · SHELL-JOBS-UI |
packages/client/ui-layout/src/client/index.ts | packages/client/ui-layout | 120-137 · WEBUI-ROOT-DECLARATION145-155 · WEBUI-THEME-PRESENTER |
packages/client/ui-layout/src/client/theme-presenter.ts | packages/client/ui-layout | 1-61 · WEBUI-THEME-DOM |
packages/client/ui-layout/tests/theme-presenter.client.spec.ts | packages/client/ui-layout | 44-90 · WEBUI-THEME-PRESENTER-TESTS |
packages/client/ui-permission-presets/src/client/index.ts | packages/client/ui-permission-presets | 55-169 · APPROVAL-PERMISSION-DECORATION |
packages/client/ui-permission-presets/src/client/PermissionRow.tsx | packages/client/ui-permission-presets | 15-126 · APPROVAL-PERMISSION-SETTINGS |
packages/client/ui-permission-presets/src/client/settings-store.ts | packages/client/ui-permission-presets | 128-155 · APPROVAL-PERMISSION-SETTINGS-WRITE |
packages/client/ui-plan/src/client/PlanModeControl.tsx | packages/client/ui-plan | 15-68 · PLANSTATE-PLAN-UI |
packages/client/ui-settings-general/src/client/index.ts | packages/client/ui-settings-general | 84-177 · WEBUI-SETTINGS-SHELL |
packages/client/ui-settings/src/client/settings-scope.ts | packages/client/ui-settings | 35-269 · WEBUI-SETTINGS-SCOPE |
packages/client/ui-settings/tests/settings-scope.client.spec.ts | packages/client/ui-settings | 65-421 · WEBUI-SETTINGS-TESTS |
packages/client/ui-skill/README.md | packages/client/ui-skill | 5-9 · MEMORY-SKILL-CLIENT-UI |
packages/client/ui-slots/src/index.ts | packages/client/ui-slots | 90-145 · WEBUI-SLOT-TYPE-CONTRACT200-450 · WEBUI-FOUR-SHARES787-895 · WEBUI-SLOT-CORE-COMMIT1123-1148 · WEBUI-SLOT-CASCADE |
packages/client/ui-slots/src/store.ts | packages/client/ui-slots | 19-125 · WEBUI-STORE-CONTRACT |
packages/client/ui-slots/tests/core.client.spec.ts | packages/client/ui-slots | 52-107 · WEBUI-SLOT-TESTS |
packages/client/ui-subagent/src/client/index.ts | packages/client/ui-subagent | 43-52 · INBOX-CHILD-OFFLINE-UI |
packages/client/ui-theme/src/client/index.ts | packages/client/ui-theme | 139-238 · WEBUI-THEME-OWNER |
packages/client/ui-theme/tests/theme.client.spec.ts | packages/client/ui-theme | 24-249 · WEBUI-THEME-TESTS |
packages/client/ui-tool/src/client/apply.ts | packages/client/ui-tool | 22-44 · WEBUI-TOOL-REGISTRATION |
packages/client/ui-tool/src/client/contract/slots.ts | packages/client/ui-tool | 7-49 · WEBUI-TOOLVIEW-CONTRACT |
packages/client/ui-tool/src/client/tool/components/ToolRow.tsx | packages/client/ui-tool | 128-180 · WEBUI-TOOL-LOCAL-STATE |
packages/client/ui-tool/src/client/tool/models/tool-call-model.ts | packages/client/ui-tool | 204-240 · WEBUI-TOOL-MODEL |
packages/client/ui-tool/src/client/tool/ToolCallTree.tsx | packages/client/ui-tool | 13-104 · WEBUI-TOOL-DISPATCH |
packages/client/ui-tool/src/client/tool/toolviews/GenericToolCard.tsx | packages/client/ui-tool | 36-77 · WEBUI-GENERIC-TOOLVIEW |
packages/client/ui-tool/src/client/tool/toolviews/todo-row.tsx | packages/client/ui-tool | 1-97 · PLANSTATE-TODO-ROW |
packages/client/ui-tool/tests/toolview-slot.client.spec.tsx | packages/client/ui-tool | 91-230 · WEBUI-TOOL-TESTS |
packages/client/ui-trajectory/README.md | packages/client/ui-trajectory | 5-17 · OBS-TRAJECTORY-CONTRACT |
packages/client/ui-trajectory/src/client/trajectory-request-header-definition.ts | packages/client/ui-trajectory | 9-80 · OBS-TRAJECTORY-PROMPT |
packages/client/ui-trajectory/src/client/trajectory-snapshot-builder.ts | packages/client/ui-trajectory | 137-266 · OBS-TRAJECTORY-BUILDER |
packages/client/ui-user-questions/src/client/PlanReviewPanel.tsx | packages/client/ui-user-questions | 36-99 · PLANSTATE-PLAN-REVIEW-UI |
packages/client/ui-workspace/README.md | packages/client/ui-workspace | 5-11 · MEMORY-WEB-SEARCH |
packages/client/web-react/src/bind.ts | packages/client/web-react | 1-24 · WEBUI-REACT-BINDING |
packages/client/web-react/src/scoped-slots.tsx | packages/client/web-react | 31-88 · WEBUI-STALE-AUTHORIZATION343-470 · WEBUI-RENDER-KIT |
packages/client/web-react/src/session-provider.tsx | packages/client/web-react | 119-159 · WEBUI-SESSION-PROVIDER |
packages/client/web-react/tests/scoped-slots-real-core.client.spec.tsx | packages/client/web-react | 62-125 · WEBUI-REACT-BINDING-TESTS |
packages/client/web-react/tests/session-provider.client.spec.tsx | packages/client/web-react | 92-190 · WEBUI-WEB-REACT-TESTS |
packages/client/web/src/app-shell.ts | packages/client/web | 29-49 · WEBUI-SHELL-INSTALL |
packages/client/web/src/app.tsx | packages/client/web | 26-43 · WEBUI-SHELL-ROOT |
packages/client/web/src/boot.tsx | packages/client/web | 97-143 · WEBUI-BROWSER-CONTEXT150-237 · WEBUI-BOOT-SETTLE |
packages/code-runtime/code-runtime-worker-thread/src/bootstrap.ts | packages/code-runtime/code-runtime-worker-thread | 301-424 · CODEMODE-WORKER-BOOT |
packages/code-runtime/code-runtime-worker-thread/src/index.ts | packages/code-runtime/code-runtime-worker-thread | 1-6 · CODEMODE-WORKER-TRUST1-6 · SEC-WORKER-TRUST230-317 · CODEMODE-WORKER-LIMITS363-460 · CODEMODE-WORKER-LIFECYCLE462-556 · CODEMODE-WORKER-BRIDGE |
packages/code-runtime/code-runtime-worker-thread/src/worker-json.ts | packages/code-runtime/code-runtime-worker-thread | 247-419 · CODEMODE-FLAT-JSON |
packages/code-runtime/code-runtime-worker-thread/tests/runtime.spec.ts | packages/code-runtime/code-runtime-worker-thread | 128-338 · CODEMODE-TEST-WORKER442-603 · CODEMODE-TEST-WORKER-HOSTILE |
packages/code-runtime/code-runtime/src/index.ts | packages/code-runtime/code-runtime | 95-134 · CODEMODE-RUNTIME-DESCRIPTORS |
packages/code-runtime/code-runtime/src/types.ts | packages/code-runtime/code-runtime | 9-127 · CODEMODE-SEAM |
packages/compaction/command-compact/src/index.ts | packages/compaction/command-compact | 22-105 · COMPACT-COMMAND |
packages/compaction/compaction-basic/src/config.ts | packages/compaction/compaction-basic | 67-166 · COMPACT-CONFIG |
packages/compaction/compaction-basic/src/index.ts | packages/compaction/compaction-basic | 137-223 · COMPACT-AUTO-TRIGGERS248-331 · COMPACT-POLICY-LOOP360-419 · COMPACT-MANUAL |
packages/compaction/compaction-basic/src/region.ts | packages/compaction/compaction-basic | 90-134 · COMPACT-RANGE137-253 · COMPACT-TRANSACTION338-485 · COMPACT-COMMIT |
packages/compaction/compaction-basic/src/summarizer.ts | packages/compaction/compaction-basic | 20-223 · COMPACT-SUMMARIZER |
packages/compaction/compaction-basic/tests/compaction-basic.spec.ts | packages/compaction/compaction-basic | 769-879 · COMPACT-PRUNE-TEST |
packages/compaction/compaction-basic/tests/compaction-loop-repro.spec.ts | packages/compaction/compaction-basic | 217-381 · COMPACT-REAL-LOOP-TEST |
packages/compaction/compaction-tool-result-pruner/src/config.ts | packages/compaction/compaction-tool-result-pruner | 7-64 · COMPACT-PRUNER-CONFIG |
packages/compaction/compaction-tool-result-pruner/src/index.ts | packages/compaction/compaction-tool-result-pruner | 63-184 · COMPACT-PRUNER |
packages/compaction/compaction/src/index.ts | packages/compaction/compaction | 87-169 · COMPACT-SEAM |
packages/compaction/compaction/src/invariant.ts | packages/compaction/compaction | 56-217 · COMPACT-INVARIANT |
packages/compaction/compaction/src/tool-pairing.ts | packages/compaction/compaction | 28-130 · COMPACT-PAIRING |
packages/compaction/compaction/src/types.ts | packages/compaction/compaction | 16-119 · COMPACT-EVENTS |
packages/context/agent-instructions/src/index.ts | packages/context/agent-instructions | 322-347 · PROMPT-CONTEXT-AGENT-INSTRUCTIONS |
packages/context/README.md | packages-unmatched | 5-14 · MEMORY-REFERENCE-OPT-IN |
packages/context/session-reference/README.md | packages/context/session-reference | 13-18 · MEMORY-REFERENCE-DOC-DRIFT45-50 · MEMORY-REFERENCE-TRUST |
packages/context/session-reference/src/index.ts | packages/context/session-reference | 42-217 · MEMORY-REFERENCE-RESOLVER |
packages/context/session-reference/src/projection.ts | packages/context/session-reference | 35-171 · MEMORY-REFERENCE-PROJECTION |
packages/context/session-reference/tests/session-reference.spec.ts | packages/context/session-reference | 320-641 · MEMORY-REFERENCE-CONTRACT-TEST |
packages/context/time-context/src/index.ts | packages/context/time-context | 170-208 · PROMPT-CONTEXT-TIME |
packages/context/tmux-context/src/index.ts | packages/context/tmux-context | 208-246 · PROMPT-CONTEXT-TMUX |
packages/core/agent-loop/README.md | packages/core/agent-loop | 68-74 · PARALLEL-AGENT-README |
packages/core/agent-loop/src/agent.ts | packages/core/agent-loop | 63-140 · AGENT-RUNTIME-SCOPE113-329 · FAILURE-AGENT-CANCEL113-220 · INBOX-DRIVER-WAKE113-132 · INBOX-SEND-MAP134-140 · INBOX-CANCEL-CODE195-243 · LOOP-DRIVER-PRESTEP202-323 · OBS-DURABLE-FAILURE225-287 · COMPACT-RUNTIME-ORDER225-350 · FAILURE-CHECKPOINT-AGENT-ORDER225-494 · MEMORY-AGENT-CONTEXT225-243 · PROMPT-STEP-BOUNDARY245-329 · INBOX-TURN-MACHINE245-330 · LOOP-TURN-STATE287-399 · INBOX-TOOL-CONTINUATION302-458 · FAILURE-AGENT-PREPARE-BOUNDARY332-400 · FAILURE-REQUEST-LOOP332-400 · LOG-ATTEMPT-ASSEMBLY332-400 · LOOP-STEP-STATE332-370 · PROMPT-RETRY-BOUNDARY373-399 · PARALLEL-LOOP-ENTRY393-399 · PARALLEL-AGENT-STEP403-494 · FAILURE-CHECKPOINT-REQUEST-PREFIX403-495 · LOOP-REQUEST-BUILD407-470 · OBS-REQUEST-HEADER |
packages/core/agent-loop/src/index.ts | packages/core/agent-loop | 300-345 · PARALLEL-CAP-CONFIG453-578 · AGENT-PREPARE-PUBLISH459-530 · FAILURE-AGENT-DISPOSAL606-709 · AGENT-CREATE-RESUME624-710 · PROJ-COLD-RESUME647-709 · INBOX-AGENT-RESUME |
packages/core/agent-loop/src/invariant.ts | packages/core/agent-loop | 18-55 · LOOP-REQUEST-INVARIANT18-55 · TINV-LOOP-REQUEST35-55 · LLM-REQUEST-INVARIANT-SCOPE |
packages/core/agent-loop/src/runtime-context.ts | packages/core/agent-loop | 24-75 · COMPACT-RUNTIME-PROJECTION24-75 · LOOP-RUNTIME-CONTEXT |
packages/core/agent-loop/src/tool-calls.ts | packages/core/agent-loop | 59-110 · SEC-MODEL-PARSE59-289 · TOOL-LOOP-COMMIT82-100 · PARALLEL-GROUPING82-119 · PLANSTATE-TOOL-SCHEDULER112-255 · FAILURE-TOOL-DRAIN121-245 · PARALLEL-ROLLING-POOL145-158 · INBOX-TOOL-CONTEXT164-175 · FAILURE-CHECKPOINT-TOOL-INTENT164-288 · PARALLEL-DURABLE-PAIRING198-245 · PARALLEL-ABORT215-245 · PARALLEL-SCHEDULER-FAILURE248-259 · PARALLEL-ABORT-RESULT |
packages/core/agent-loop/tests/cancel.spec.ts | packages/core/agent-loop | 75-174 · INBOX-CANCEL-BEHAVIOR-TEST103-218 · INBOX-CANCEL-LATCH-TEST129-403 · FAILURE-CANCEL-TEST384-403 · INBOX-CANCEL-DROP-TEST405-458 · FAILURE-CANCEL-TOOL-TEST |
packages/core/agent-loop/tests/contract-regressions.spec.ts | packages/core/agent-loop | 317-340 · INBOX-TURN-STOPPING-TEST1100-1199 · PROMPT-CANCEL-TEST |
packages/core/agent-loop/tests/interception.spec.ts | packages/core/agent-loop | 207-363 · LOOP-INTERCEPTION-TEST257-363 · INBOX-PRESTEP-CUTOFF-TEST |
packages/core/agent-loop/tests/loop.spec.ts | packages/core/agent-loop | 162-233 · LOOP-ORDER-TEST529-547 · LOG-RAW-CHUNK-TEST945-1054 · LOOP-OUTCOME-TEST1353-1398 · LOOP-ERROR-CONTAINMENT-TEST |
packages/core/agent-loop/tests/properties.spec.ts | packages/core/agent-loop | 107-190 · INBOX-FIFO-PROPERTY |
packages/core/agent-loop/tests/request-cache.e2e.ts | packages/core/agent-loop | 71-103 · PROMPT-CACHE-E2E |
packages/core/agent-loop/tests/request-error.spec.ts | packages/core/agent-loop | 30-141 · FAILURE-REQUEST-TEST30-141 · LOOP-REQUEST-ERROR-TEST |
packages/core/agent-loop/tests/request-reconstruction.spec.ts | packages/core/agent-loop | 433-455 · PROMPT-HEADER-CHANGE-TEST566-613 · LOG-REQUEST-RECONSTRUCTION566-613 · LOOP-RECONSTRUCTION-TEST |
packages/core/agent-loop/tests/scope-lifecycle.spec.ts | packages/core/agent-loop | 242-365 · AGENT-ATOMIC-TEST623-715 · AGENT-TEARDOWN-TEST921-1051 · FAILURE-DISPOSAL-TEST |
packages/core/agent-loop/tests/tool-calls.spec.ts | packages/core/agent-loop | 99-218 · PARALLEL-GROUP-TESTS144-217 · PARALLEL-RECLASS-TESTS220-262 · PARALLEL-ORDER-TESTS264-365 · PARALLEL-CAP-TESTS459-631 · PARALLEL-ABORT-TESTS523-589 · PARALLEL-CONTEXT-TEST633-690 · PARALLEL-FAILURE-TEST |
packages/core/agent/src/consumed-work.ts | packages/core/agent | 60-107 · INBOX-CONSUMED-WORK |
packages/core/agent/src/inbox.ts | packages/core/agent | 24-78 · AGENT-INBOX-REPLAY24-78 · INBOX-CLAIM-REPLAY24-39 · INBOX-SEED-BOUNDARY128-219 · AGENT-INBOX-COMMIT128-219 · INBOX-COMMIT-IDENTITY128-192 · MULTIAGENT-INBOX-SPLICE |
packages/core/agent/src/index.ts | packages/core/agent | 52-174 · AGENT-SETUP-CONTRACT300-358 · AGENT-INITIATOR-API360-430 · AGENT-FACTORY-SEAM450-617 · AGENT-REGISTRY-LIFECYCLE619-703 · AGENT-INITIATOR-DRAIN |
packages/core/agent/src/runtime-types.ts | packages/core/agent | 23-143 · AGENT-PUBLIC-INTERFACE43-143 · INBOX-ACTIVITY-CONTRACT |
packages/core/agent/src/types.ts | packages/core/agent | 9-25 · INBOX-EVENT-SCHEMA |
packages/core/agent/tests/agent.spec.ts | packages/core/agent | 41-142 · AGENT-INBOX-TEST258-298 · AGENT-REGISTRY-TEST |
packages/core/agent/tests/consumed-work.spec.ts | packages/core/agent | 38-158 · INBOX-CONSUMED-WORK-TEST |
packages/core/scope/src/store.ts | packages/core/scope | 153-266 · DESIGN-SCOPED-LAYERS |
packages/core/scope/tests/scope.spec.ts | packages/core/scope | 24-220 · DESIGN-SCOPE-TEST |
packages/core/session/src/index.ts | packages/core/session | 499-547 · SESSION-SEED-ACCEPTANCE550-654 · SESSION-APPEND-COMMIT700-747 · SESSION-DERIVED-CACHE1067-1153 · LOG-CORE-FORK |
packages/core/session/src/invariant.ts | packages/core/session | 22-165 · TINV-SESSION-RULES54-165 · SESSION-RELATIONAL-INVARIANT189-250 · SESSION-INVARIANT-COMMIT189-242 · TINV-SESSION-COMMIT |
packages/core/session/src/json.ts | packages/core/session | 69-178 · SESSION-LOSSLESS-JSON |
packages/core/session/src/known-event-types.ts | packages/core/session | 9-64 · SESSION-KNOWN-EVENTS |
packages/core/session/src/repair.ts | packages/core/session | 18-132 · FAILURE-CRASH-REPAIR18-132 · LOG-REPAIR-CLOSERS |
packages/core/session/src/request-header.ts | packages/core/session | 14-70 · PROMPT-HEADER-CANONICAL |
packages/core/session/src/surface.ts | packages/core/session | 70-142 · SESSION-SURFACE-PROJECTION184-243 · SESSION-SURFACE-PROVENANCE245-379 · SESSION-SURFACE-REPLACE |
packages/core/session/src/types.ts | packages/core/session | 33-99 · SESSION-FORMAT-HEADER152-309 · OBS-SESSION-LOG230-332 · SESSION-CORE-EVENTS335-435 · SESSION-EVENT-ENVELOPE |
packages/core/session/tests/derived-cache.spec.ts | packages/core/session | 22-86 · SESSION-DERIVED-ORACLE-TEST |
packages/core/session/tests/fork.spec.ts | packages/core/session | 63-318 · LOG-FORK-CONTRACT |
packages/core/session/tests/invariant.spec.ts | packages/core/session | 34-116 · TINV-SESSION-TEST |
packages/core/session/tests/session.spec.ts | packages/core/session | 116-155 · SESSION-SEED-REPLAY-TEST437-495 · SESSION-IMMUTABILITY-TEST1388-1507 · SESSION-APPEND-BOUNDARY-TEST |
packages/core/system-prompt/src/index.ts | packages/core/system-prompt | 139-183 · PROMPT-TOOL-ORDER204-294 · PROMPT-STRICT-RENDER337-455 · PROMPT-REGISTRY-CONTRACT467-541 · PROMPT-ASSEMBLY-PIPELINE |
packages/core/system-prompt/tests/scoped.spec.ts | packages/core/system-prompt | 32-79 · PROMPT-SCOPE-SHADOW |
packages/core/system-prompt/tests/system-prompt.spec.ts | packages/core/system-prompt | 212-333 · PROMPT-ASSEMBLY-MUTATION-TEST449-580 · PROMPT-VARIABLE-TEST |
packages/core/tools/README.md | packages/core/tools | 119-130 · PARALLEL-README |
packages/core/tools/src/code-mode.ts | packages/core/tools | 1-6 · CODEMODE-HISTORY283-340 · CODEMODE-RUN-SCHEMA328-457 · PARALLEL-CODE-DRIVER342-457 · CODEMODE-SCHEDULER448-629 · PARALLEL-CODE-DRAIN464-594 · CODEMODE-NESTED-DISPATCH464-594 · PARALLEL-CODE-BINDING596-640 · CODEMODE-BINDINGS |
packages/core/tools/src/index.ts | packages/core/tools | 212-301 · TOOL-DEFINITION257-269 · PARALLEL-MODE-CONTRACT304-472 · TOOL-EXECUTION-IDENTITY426-466 · PARALLEL-PIPELINE-SPLIT555-600 · TOOL-RESULT-TYPES580-711 · TOOL-DECISIONS582-592 · APPROVAL-PRE-DECISION650-673 · CODEMODE-MODES650-1001 · TOOL-PRESENTATION-MODES703-753 · APPROVAL-GUARD-CONTRACT865-891 · CODEMODE-SDK-LIVE894-973 · CODEMODE-SCOPE913-933 · CODEMODE-TRANSPORT976-1028 · CODEMODE-WIRE1003-1028 · CODEMODE-RUNTIME-READS1003-1028 · TOOL-CODE-RUNTIME-WINDOW1030-1061 · TOOL-REGISTRATION1031-1061 · SEC-RAW-TOOL-REGISTER1064-1226 · TOOL-SCOPE-VIEW1100-1127 · APPROVAL-GUARD-REGISTRY1208-1253 · CODEMODE-EXECUTION1228-1285 · TOOL-SCHEMA-PROJECTION1269-1285 · PARALLEL-CLASSIFIER1269-1285 · PLANSTATE-TOOL-EXCLUSIVE1328-1506 · TOOL-PIPELINE-PREPARE1364-1423 · APPROVAL-EXEC-SNAPSHOT1364-1450 · SEC-TOOL-ARG-SNAPSHOT1453-1506 · APPROVAL-PREPARE-ORDER1453-1599 · CODEMODE-POLICY1453-1507 · PARALLEL-PREPARE1453-1506 · SEC-TOOL-GATE1459-1559 · APPROVAL-CANCEL-DISPATCH1527-1599 · PARALLEL-DISPATCH1527-1599 · TOOL-PIPELINE-DISPATCH1569-1577 · FAILURE-CHECKPOINT-TOOL-WRAPPER1601-1675 · PARALLEL-FINALIZE1601-1675 · TOOL-PIPELINE-FINALIZE1656-1675 · PARALLEL-RESULT-OBSERVER1678-1728 · APPROVAL-ASK-MAPPING1731-1781 · TOOL-POST-POLICY1783-1862 · TOOL-CANONICAL-OUTPUT1880-1944 · TOOL-CANCELLATION |
packages/core/tools/src/invariant.ts | packages/core/tools | 17-120 · TOOL-RUNTIME-INVARIANT |
packages/core/tools/src/json-schema.ts | packages/core/tools | 1-430 · TOOL-SCHEMA-SUBSET |
packages/core/tools/src/presentation.ts | packages/core/tools | 1-388 · TOOL-PRESENTATION-INTENTS |
packages/core/tools/src/schema.ts | packages/core/tools | 538-617 · SEC-TOOL-DEFINE538-616 · TOOL-DEFINE-HELPER545-615 · PARALLEL-TYPED-CLASSIFIER |
packages/core/tools/tests/code-mode.spec.ts | packages/core/tools | 118-160 · CODEMODE-TEST-PRESENTATION509-799 · CODEMODE-TEST-SCHEDULER509-730 · PARALLEL-CODE-TESTS731-765 · PARALLEL-CODE-ORDER-TEST935-1206 · CODEMODE-TEST-POLICY-FAILURE |
packages/core/tools/tests/scoped.spec.ts | packages/core/tools | 284-375 · APPROVAL-GUARD-TESTS |
packages/core/tools/tests/tools.spec.ts | packages/core/tools | 676-853 · APPROVAL-TOOLS-TESTS |
packages/credentials/credentials-local/src/index.ts | packages/credentials/credentials-local | 1-34 · SEC-CREDENTIAL-LAYERS87-185 · SEC-CREDENTIAL-FILE249-380 · SEC-CREDENTIAL-RESOLVE |
packages/credentials/credentials/src/index.ts | packages/credentials/credentials | 1-99 · SEC-CREDENTIAL-SEAM |
packages/e2b/e2b/src/index.ts | packages/e2b/e2b | 1-179 · SEC-E2B-OWNER22-179 · SANDBOX-E2B-OWNER |
packages/e2b/fs-e2b/README.md | packages/e2b/fs-e2b | 26-32 · SANDBOX-E2B-LIMITS26-32 · SEC-E2B-LIMITS |
packages/e2b/fs-e2b/src/index.ts | packages/e2b/fs-e2b | 170-454 · SANDBOX-E2B-FS510-579 · SANDBOX-E2B-PUBLICATION |
packages/e2b/subprocess-e2b/src/index.ts | packages/e2b/subprocess-e2b | 51-205 · SHELL-E2B-SEAM103-204 · SANDBOX-E2B-SUBPROCESS |
packages/e2b/subprocess-e2b/src/process.ts | packages/e2b/subprocess-e2b | 93-665 · SANDBOX-E2B-PGID |
packages/extensions/cordis-client-runner/src/client/evaluator.ts | packages/extensions/cordis-client-runner | 1-222 · SEC-DYNAMIC-CLIENT157-222 · CODEMODE-CLIENT-EVAL |
packages/extensions/cordis-client-runner/src/client/guard.ts | packages/extensions/cordis-client-runner | 180-233 · CODEMODE-CLIENT-GUARD |
packages/extensions/cordis-client-runner/src/client/orchestrator.ts | packages/extensions/cordis-client-runner | 312-381 · CODEMODE-CLIENT-ORCHESTRATION |
packages/extensions/cordis-client-runner/src/client/runtime.ts | packages/extensions/cordis-client-runner | 176-341 · CODEMODE-CLIENT-LIFECYCLE |
packages/extensions/cordis-client-runner/tests/runner.client.spec.ts | packages/extensions/cordis-client-runner | 201-344 · CODEMODE-TEST-CLIENT-LIFECYCLE |
packages/extensions/cordis-host-runner/src/guard.ts | packages/extensions/cordis-host-runner | 542-655 · CODEMODE-DYNAMIC-TOOL-GUARD620-819 · SEC-DYNAMIC-GUARD680-819 · CODEMODE-CONTEXT-GUARD |
packages/extensions/cordis-host-runner/src/index.ts | packages/extensions/cordis-host-runner | 146-202 · CODEMODE-DEFINE-RUNNER238-374 · CODEMODE-RUN-APPROVAL238-312 · SEC-DYNAMIC-RUN406-428 · CODEMODE-APPROVAL-SETTLE810-992 · CODEMODE-ACTIVATION1019-1047 · CODEMODE-OUTCOME-STEERING1219-1239 · CODEMODE-RETRACT |
packages/extensions/cordis-host-runner/src/inspect-registry.ts | packages/extensions/cordis-host-runner | 98-198 · CODEMODE-INSPECT-REGISTRY |
packages/extensions/cordis-host-runner/src/registry.ts | packages/extensions/cordis-host-runner | 16-82 · CODEMODE-REGISTRY |
packages/extensions/cordis-host-runner/src/sandbox.ts | packages/extensions/cordis-host-runner | 1-11 · CODEMODE-HOST-SANDBOX1-11 · SEC-DYNAMIC-VM196-238 · CODEMODE-HOST-CODE |
packages/extensions/cordis-host-runner/tests/runner.spec.ts | packages/extensions/cordis-host-runner | 98-247 · CODEMODE-TEST-DYNAMIC-RUNNER |
packages/extensions/cordis-host-runner/tests/sandbox-context.spec.ts | packages/extensions/cordis-host-runner | 44-246 · CODEMODE-TEST-DYNAMIC-GUARD |
packages/extensions/cordis-host-runner/tests/versioning.spec.ts | packages/extensions/cordis-host-runner | 1-106 · CODEMODE-TEST-VERSIONING |
packages/extensions/tool-cordis/README.md | packages/extensions/tool-cordis | 5-27 · CODEMODE-README-DRIFT11-23 · SEC-DYNAMIC-ROOT-SCOPE |
packages/extensions/tool-cordis/src/index.ts | packages/extensions/tool-cordis | 34-146 · CODEMODE-CORDIS-INSPECT148-238 · CODEMODE-CORDIS-DEFINE240-379 · CODEMODE-CORDIS-LIFECYCLE-TOOLS497-529 · CODEMODE-REFERENCE |
packages/extensions/tool-cordis/src/prompt.ts | packages/extensions/tool-cordis | 3-54 · CODEMODE-CORDIS-PROMPT |
packages/feedback/command-feedback/src/index.ts | packages/feedback/command-feedback | 1-106 · OBS-FEEDBACK-DISCLOSURE |
packages/feedback/message-feedback/README.md | packages/feedback/message-feedback | 76-84 · OPEN-FEEDBACK-CONSISTENCY |
packages/fs/fs-local/README.md | packages/fs/fs-local | 36-45 · SEC-FS-LOCAL-LIMITS40-45 · SANDBOX-FS-LOCAL-LIMITS |
packages/fs/fs-local/src/fsio.ts | packages/fs/fs-local | 17-463 · SANDBOX-FS-READ-IO105-194 · SANDBOX-FS-IDENTITY518-615 · SANDBOX-FS-ATOMIC |
packages/fs/fs-local/src/index.ts | packages/fs/fs-local | 40-123 · SANDBOX-FS-LOCAL70-255 · SANDBOX-FS-LOCAL-MUTATION |
packages/fs/fs-observation-policy/README.md | packages/fs/fs-observation-policy | 30-50 · SANDBOX-OBSERVATION-DOC68-73 · SANDBOX-OBSERVATION-LIMITS68-73 · SEC-OBSERVATION-LIMITS |
packages/fs/fs-observation-policy/src/index.ts | packages/fs/fs-observation-policy | 17-130 · SANDBOX-OBSERVATION |
packages/fs/fs-observation-policy/tests/policy.spec.ts | packages/fs/fs-observation-policy | 47-235 · SANDBOX-OBSERVATION-TEST |
packages/fs/fs-sandbox/src/containment.ts | packages/fs/fs-sandbox | 19-76 · SANDBOX-CONTAINMENT |
packages/fs/fs-sandbox/src/index.ts | packages/fs/fs-sandbox | 1-149 · SANDBOX-FS-FENCE1-149 · SEC-FS-FENCE |
packages/fs/fs-sandbox/tests/fs-sandbox.spec.ts | packages/fs/fs-sandbox | 59-235 · SANDBOX-FS-FENCE-TEST |
packages/fs/fs/README.md | packages/fs/fs | 49-51 · SANDBOX-DOC-ERROR-CODE |
packages/fs/fs/src/index.ts | packages/fs/fs | 44-249 · SANDBOX-FS-SEAM |
packages/fs/fs/src/types.ts | packages/fs/fs | 11-203 · SANDBOX-FS-TYPES |
packages/fs/tool-fs-search/src/index.ts | packages/fs/tool-fs-search | 1-24 · SANDBOX-SEARCH-WORLD |
packages/fs/tool-fs/src/edit.ts | packages/fs/tool-fs | 112-146 · SANDBOX-EDIT-TOOL |
packages/fs/tool-fs/src/read-target.ts | packages/fs/tool-fs | 12-34 · SANDBOX-READ-TARGET |
packages/fs/tool-fs/src/read.ts | packages/fs/tool-fs | 134-163 · SANDBOX-READ-TOOL |
packages/fs/tool-fs/src/sandbox.ts | packages/fs/tool-fs | 20-130 · SANDBOX-FS-ESCALATION37-130 · APPROVAL-FS-ESCALATION |
packages/fs/tool-fs/src/session-cwd.ts | packages/fs/tool-fs | 16-46 · SANDBOX-SESSION-CWD |
packages/fs/tool-fs/src/write.ts | packages/fs/tool-fs | 102-128 · SANDBOX-WRITE-TOOL |
packages/goal/command-goal/README.md | packages/goal/command-goal | 53-58 · PLANSTATE-DOC-GOAL-COMMAND |
packages/goal/command-goal/src/index.ts | packages/goal/command-goal | 14-170 · PLANSTATE-GOAL-COMMAND |
packages/goal/goal-round-driver/src/index.ts | packages/goal/goal-round-driver | 75-445 · PLANSTATE-GOAL-DRIVER |
packages/goal/goal-round-driver/tests/goal-round-driver.spec.ts | packages/goal/goal-round-driver | 186-260 · PLANSTATE-GOAL-DRIVER-TEST465-510 · PLANSTATE-GOAL-DURABILITY-TEST |
packages/goal/goal/src/fold.ts | packages/goal/goal | 271-349 · PLANSTATE-GOAL-FOLD |
packages/goal/goal/src/index.ts | packages/goal/goal | 83-113 · PLANSTATE-GOAL-PROJECTION216-390 · PLANSTATE-GOAL-SERVICE392-577 · PLANSTATE-GOAL-COMMIT |
packages/goal/goal/src/types.ts | packages/goal/goal | 15-110 · PLANSTATE-GOAL-TYPES |
packages/goal/goal/tests/projection.spec.ts | packages/goal/goal | 142-187 · PLANSTATE-GOAL-PROJECTION-TEST |
packages/goal/tool-goal/README.md | packages/goal/tool-goal | 13-18 · PLANSTATE-DOC-GOAL-TOOL |
packages/goal/tool-goal/src/authority.ts | packages/goal/tool-goal | 29-108 · PLANSTATE-GOAL-AUTHORITY |
packages/goal/tool-goal/src/index.ts | packages/goal/tool-goal | 186-338 · PLANSTATE-GOAL-TOOLS |
packages/goal/tool-goal/tests/tool-goal.spec.ts | packages/goal/tool-goal | 352-415 · PLANSTATE-GOAL-WRAPUP-TEST |
packages/guard/timeout-policy/src/index.ts | packages/guard/timeout-policy | 18-80 · FAILURE-TOOL-TIMEOUT |
packages/guard/timeout-policy/tests/timeout-policy.spec.ts | packages/guard/timeout-policy | 97-193 · FAILURE-TIMEOUT-TEST |
packages/host/apiproxy/README.md | packages/host/apiproxy | 41-41 · INBOX-README-DRIFT75-81 · APPROVAL-DOC-API-DRIFT |
packages/host/apiproxy/src/api-proxy.ts | packages/host/apiproxy | 282-313 · LOG-HISTORY-PAGINATION735-779 · TOOL-HOST-PRESENTER804-820 · LOG-HISTORY-VIEW841-877 · PROJ-CACHE-INTEGRATION847-898 · OBS-PROJECTION-DEGRADE1273-1323 · PROJ-HOST-CARRIER1302-1323 · PROJ-IMAGE-LIMITS1326-1355 · INBOX-HOST-PROJECTION1407-1488 · APPROVAL-WEB-REGISTRY1525-1573 · PROJ-HOST-COLD-OPEN1533-1574 · LOG-HISTORY-CUT1555-1573 · OBS-SESSION-HISTORY-PROJECTION1720-2162 · MEMORY-WEB-HOST-GATE1720-1764 · OBS-SESSION-LIST-PROJECTION1787-1825 · PLANSTATE-GOAL-API-ERRORS2242-2269 · PROJ-HISTORY-FAILURE2363-2458 · LOG-HOST-FORK2461-2517 · INBOX-HOST-PROMPT2568-2633 · INBOX-HOST-QUEUE-MUTATION2668-2696 · OBS-SUBAGENT-HISTORY-PROJECTION2737-2799 · INBOX-SUBAGENT-HOST2923-2938 · API-HOST-VERSION-PLACEHOLDER2923-2938 · OPEN-HOST-VERSION-IMPL3205-3257 · MEMORY-SKILL-HOST-UI3429-3447 · APPROVAL-WEB-REPLAY3430-3455 · INBOX-RECONNECT-HOST3617-3635 · REMOTE-EVENT-FORWARD3696-3742 · APPROVAL-WEB-RESPOND |
packages/host/apiproxy/src/api/approvals.ts | packages/host/apiproxy | 1-20 · APPROVAL-WIRE-CONTRACT |
packages/host/apiproxy/src/api/events.ts | packages/host/apiproxy | 36-84 · INBOX-WIRE-DOC-DRIFT46-56 · OPEN-EVENT-RESUME-SEAT65-154 · OBS-RAW-FRAMES110-154 · OBS-HOST-FAILURE |
packages/host/apiproxy/src/api/goals.ts | packages/host/apiproxy | 25-53 · PLANSTATE-GOAL-API |
packages/host/apiproxy/src/api/host.ts | packages/host/apiproxy | 1-53 · API-HOST-VERSION-CONTRACT35-53 · OPEN-HOST-VERSION-CONTRACT |
packages/host/apiproxy/src/api/rpc.schema.ts | packages/host/apiproxy | 1-140 · API-RPC-SCHEMAS |
packages/host/apiproxy/src/api/rpc.ts | packages/host/apiproxy | 1-193 · API-RPC-MODEL |
packages/host/apiproxy/src/api/sessions.schema.ts | packages/host/apiproxy | 141-242 · LOG-HISTORY-SCHEMA |
packages/host/apiproxy/src/api/sessions.ts | packages/host/apiproxy | 59-338 · LOG-HISTORY-CONTRACT231-240 · OPEN-API-RESERVED-SEATS264-283 · OBS-HISTORY-API315-371 · INBOX-HOST-CONTRACT |
packages/host/apiproxy/src/api/subagents.ts | packages/host/apiproxy | 38-119 · INBOX-SUBAGENT-WIRE |
packages/host/apiproxy/src/session-export.ts | packages/host/apiproxy | 1-265 · LOG-RAW-EXPORT |
packages/host/apiproxy/tests/api-proxy-approval.spec.ts | packages/host/apiproxy | 87-329 · APPROVAL-WEB-TESTS |
packages/identity/anonymous-user-id/src/index.ts | packages/identity/anonymous-user-id | 1-100 · OBS-ANON-ID |
packages/interaction/permission-presets/README.md | packages/interaction/permission-presets | 5-17 · APPROVAL-DOC-PRESET-DRIFT |
packages/interaction/permission-presets/src/index.ts | packages/interaction/permission-presets | 139-225 · APPROVAL-PRESET-CONFIG139-225 · SANDBOX-PERMISSION-PRESETS155-225 · SEC-PRESETS-VALIDATE227-277 · APPROVAL-PRESET-PROJECTION280-338 · APPROVAL-PRESET-DERIVE369-392 · APPROVAL-PRESET-WRITE369-430 · SANDBOX-PERMISSION-WRITE379-430 · SEC-PRESETS-PIN394-430 · APPROVAL-PRESET-PIN |
packages/interaction/permission-presets/tests/permission-presets.spec.ts | packages/interaction/permission-presets | 67-300 · APPROVAL-PRESET-TESTS |
packages/interaction/user-approval/src/index.ts | packages/interaction/user-approval | 34-72 · APPROVAL-AUDIT-EVENTS149-174 · APPROVAL-REQUEST-SHAPE239-276 · APPROVAL-AUDIT-REQUEST239-343 · SEC-APPROVAL-CLOSED298-344 · APPROVAL-DECIDE-WATERFALL |
packages/interaction/user-approval/src/invariant.ts | packages/interaction/user-approval | 17-102 · APPROVAL-INVARIANT |
packages/interaction/user-approval/src/types.ts | packages/interaction/user-approval | 10-29 · APPROVAL-OUTCOMES |
packages/interaction/user-approval/tests/approval.spec.ts | packages/interaction/user-approval | 42-503 · APPROVAL-SERVICE-TESTS |
packages/interaction/user-questions/src/index.ts | packages/interaction/user-questions | 80-139 · PLANSTATE-PLAN-REVIEW-AUTH |
packages/jobs/jobs-local/src/index.ts | packages/jobs/jobs-local | 86-190 · SHELL-JOBS-START126-150 · MULTIAGENT-JOB-CAPACITY307-440 · SHELL-JOBS-SETTLEMENT442-528 · SHELL-JOBS-CLEANUP |
packages/jobs/tool-jobs/src/index.ts | packages/jobs/tool-jobs | 205-300 · SHELL-JOB-NOTICES302-401 · SHELL-JOB-TOOLS |
packages/llm/llm-deepseek/src/adapter.ts | packages/llm/llm-deepseek | 88-211 · LLM-DEEPSEEK-MODELS117-338 · FAILURE-DEEPSEEK-HTTP214-268 · FAILURE-DEEPSEEK-STREAM214-345 · LLM-DEEPSEEK-TRANSPORT214-345 · SEC-PROVIDER-TRANSPORT |
packages/llm/llm-deepseek/src/index.ts | packages/llm/llm-deepseek | 91-256 · FAILURE-CONFIG-RESOLUTION149-275 · LLM-DEEPSEEK-CONFIG149-246 · SEC-PROVIDER-CONFIG225-275 · FAILURE-CREDENTIAL-ROUTE |
packages/llm/llm-deepseek/src/serialize.ts | packages/llm/llm-deepseek | 25-186 · LLM-DEEPSEEK-SERIALIZE143-186 · PROMPT-DEEPSEEK-WIRE |
packages/llm/llm-deepseek/src/translate.ts | packages/llm/llm-deepseek | 26-184 · LLM-DEEPSEEK-TRANSLATE |
packages/llm/llm-deepseek/tests/dynamic-config.spec.ts | packages/llm/llm-deepseek | 61-186 · FAILURE-DYNAMIC-CONFIG-TEST |
packages/llm/llm-pi-ai/src/adapter.ts | packages/llm/llm-pi-ai | 217-357 · LLM-PI-STREAM |
packages/llm/llm-pi-ai/src/config.ts | packages/llm/llm-pi-ai | 34-178 · LLM-PI-CONFIG |
packages/llm/llm-pi-ai/src/provider.ts | packages/llm/llm-pi-ai | 35-191 · LLM-PI-PROVIDER |
packages/llm/llm-pi-ai/src/replay.ts | packages/llm/llm-pi-ai | 15-215 · LLM-PI-REPLAY |
packages/llm/llm-retry/README.md | packages/llm/llm-retry | 1-13 · FAILURE-RETRY-DOC-DRIFT1-53 · LLM-RETRY-DOC-DRIFT |
packages/llm/llm-retry/src/index.ts | packages/llm/llm-retry | 99-225 · FAILURE-RETRY-EXECUTOR111-225 · LLM-RETRY-EXECUTOR |
packages/llm/llm-retry/tests/retry.spec.ts | packages/llm/llm-retry | 175-344 · FAILURE-RETRY-SEMANTICS-TEST175-224 · LLM-RETRY-SAME-STEP-TEST |
packages/llm/llm-retry/tests/transport-recovery.spec.ts | packages/llm/llm-retry | 85-219 · FAILURE-WIRE-RECOVERY-TEST112-198 · LLM-RETRY-WIRE-TEST |
packages/llm/llm/src/adapter-failure.ts | packages/llm/llm | 16-104 · FAILURE-SNAPSHOT |
packages/llm/llm/src/assembler.ts | packages/llm/llm | 25-163 · LLM-BLOCK-ASSEMBLER |
packages/llm/llm/src/index.ts | packages/llm/llm | 330-413 · LLM-ADAPTER-REGISTRY771-814 · LLM-PREPARED-CALL838-938 · FAILURE-ADAPTER-BOUNDARY838-938 · LLM-FAILURE-BOUNDARY |
packages/llm/llm/src/message.ts | packages/llm/llm | 7-18 · LLM-MESSAGE-IDENTITY96-199 · INBOX-MESSAGE-IDENTITY128-184 · LLM-MESSAGE-VALUE |
packages/llm/llm/src/retry-policy.ts | packages/llm/llm | 14-191 · FAILURE-RETRY-POLICY14-191 · LLM-RETRY-POLICY |
packages/llm/llm/src/types.ts | packages/llm/llm | 53-141 · LLM-CONTENT-PROTOCOL283-355 · LLM-STREAM-PROTOCOL |
packages/llm/llm/tests/service.spec.ts | packages/llm/llm | 227-257 · LLM-PREPARED-PIN-TEST |
packages/llm/token-meter/src/estimate.ts | packages/llm/token-meter | 12-87 · COMPACT-ESTIMATOR |
packages/llm/token-meter/src/index.ts | packages/llm/token-meter | 100-180 · COMPACT-TOKEN-MEASURE188-310 · COMPACT-TOKEN-ANCHOR |
packages/llm/token-meter/src/surface-projection.ts | packages/llm/token-meter | 1-94 · COMPACT-SHADOW-PRICE |
packages/llm/token-meter/src/usage-projection.ts | packages/llm/token-meter | 70-205 · COMPACT-USAGE-PROJECTION97-140 · LLM-TOKEN-USAGE-PROJECTION |
packages/lsp/lsp-stdio/src/host.ts | packages/lsp/lsp-stdio | 25-120 · CAP-LSP-HOST-FS |
packages/lsp/lsp-stdio/src/index.ts | packages/lsp/lsp-stdio | 119-215 · CAP-LSP-STDIO-LOAD216-369 · CAP-LSP-STDIO-POOL |
packages/lsp/lsp/src/index.ts | packages/lsp/lsp | 1-158 · CAP-LSP-REGISTRY |
packages/lsp/tool-lsp/src/index.ts | packages/lsp/tool-lsp | 1-243 · CAP-LSP-TOOL |
packages/mcp/mcp-client/README.md | packages/mcp/mcp-client | 109-115 · CAP-MCP-LIMITS |
packages/mcp/mcp-client/src/connection.ts | packages/mcp/mcp-client | 123-224 · CAP-MCP-RECONNECT227-350 · CAP-MCP-GENERATION |
packages/mcp/mcp-client/src/index.ts | packages/mcp/mcp-client | 1-128 · CAP-MCP-CONFIG132-180 · CAP-MCP-STARTUP |
packages/mcp/mcp-client/src/tools.ts | packages/mcp/mcp-client | 82-102 · CAP-MCP-NAMING104-174 · CAP-MCP-SYNC128-173 · SEC-MCP-SYNC176-317 · CAP-MCP-RESULT218-277 · SEC-MCP-EXEC |
packages/mcp/mcp-client/src/transport.ts | packages/mcp/mcp-client | 1-49 · SEC-MCP-TRANSPORT15-50 · CAP-MCP-TRANSPORT |
packages/plan/plan-mode/README.md | packages/plan/plan-mode | 92-98 · PLANSTATE-PLAN-LIMITATION |
packages/plan/plan-mode/src/index.ts | packages/plan/plan-mode | 46-195 · PLANSTATE-PLAN-STATE197-233 · PLANSTATE-PLAN-ASSEMBLY235-266 · PLANSTATE-PLAN-PROJECTION268-393 · PLANSTATE-PLAN-CONTROLS396-473 · PLANSTATE-PLAN-BOUNDARY |
packages/plan/plan-mode/tests/integration.spec.ts | packages/plan/plan-mode | 66-174 · PLANSTATE-PLAN-LOOP-TEST |
packages/preset/agent-presets/src/index.ts | packages/preset/agent-presets | 290-325 · MULTIAGENT-PRESET-INHERITANCE |
packages/README.md | packages-unmatched | 5-67 · PKG-HIERARCHY |
packages/runtime-diagnostics/invariants/src/index.ts | packages/runtime-diagnostics/invariants | 49-197 · TINV-REGISTRY93-197 · DESIGN-INVARIANT-REGISTRY |
packages/runtime-diagnostics/invariants/tests/service.spec.ts | packages/runtime-diagnostics/invariants | 189-302 · TINV-REGISTRY-TEST |
packages/sandbox/sandbox-local/README.md | packages/sandbox/sandbox-local | 1-15 · OPEN-SANDBOX-PLATFORM-LADDER34-40 · OPEN-SANDBOX-PLATFORM-LIMITS |
packages/sandbox/sandbox-local/src/index.ts | packages/sandbox/sandbox-local | 150-240 · SANDBOX-LOCAL-DIALECTS150-240 · SEC-LOCAL-RUNNERS276-333 · SANDBOX-LOCAL-WRAP276-333 · SEC-CUSTOM-RUNNER485-539 · SANDBOX-LOCAL-SELECT500-527 · SEC-LANDLOCK-PROBE |
packages/sandbox/sandbox-local/src/profiles.ts | packages/sandbox/sandbox-local | 11-58 · SANDBOX-PROFILES |
packages/sandbox/sandbox-local/tests/local.spec.ts | packages/sandbox/sandbox-local | 64-453 · SANDBOX-LOCAL-TEST |
packages/sandbox/sandbox-policy/src/index.ts | packages/sandbox/sandbox-policy | 60-150 · SANDBOX-POLICY126-150 · APPROVAL-SANDBOX-PRECEDENCE |
packages/sandbox/sandbox-policy/src/session-mode.ts | packages/sandbox/sandbox-policy | 24-71 · SANDBOX-MODE-EVENT |
packages/sandbox/sandbox-windows-acl/README.md | packages/sandbox/sandbox-windows-acl | 73-82 · SANDBOX-WINDOWS-CAPS |
packages/sandbox/sandbox/README.md | packages/sandbox/sandbox | 5-26 · OPEN-SANDBOX-DOC-OMISSION11-13 · SANDBOX-DOC-BACKENDS37-43 · OPEN-SANDBOX-SCOPE37-43 · SANDBOX-DOC-BOUNDARY37-43 · SEC-SANDBOX-SCOPE |
packages/sandbox/sandbox/src/escalation.ts | packages/sandbox/sandbox | 22-61 · APPROVAL-ESCALATION-LADDER22-187 · SANDBOX-ESCALATION143-188 · APPROVAL-ESCALATION-FLOW143-188 · SEC-ESCALATION |
packages/sandbox/sandbox/src/index.ts | packages/sandbox/sandbox | 23-175 · SANDBOX-SEAM23-175 · SEC-SANDBOX-SEAM |
packages/sandbox/sandbox/src/roots.ts | packages/sandbox/sandbox | 20-55 · SANDBOX-WRITABLE-ROOTS |
packages/sandbox/sandbox/tests/escalation.spec.ts | packages/sandbox/sandbox | 20-111 · APPROVAL-ESCALATION-TESTS |
packages/sdk/client/src/api.ts | packages/sdk/client | 139-245 · SDK-TS-RUN |
packages/sdk/client/src/client.ts | packages/sdk/client | 55-290 · SDK-DOC-STALE-ACCEPTED175-401 · SDK-TS-CLIENT175-260 · SEC-SDK-CLIENT354-370 · SEC-SDK-FILTER |
packages/sdk/client/src/dispose.ts | packages/sdk/client | 13-99 · SDK-TS-DISPOSE |
packages/sdk/client/src/types.ts | packages/sdk/client | 22-70 · SDK-TS-RESULT |
packages/sdk/protocol/README.md | packages/sdk/protocol | 35-39 · SDK-WIRE-LIMITS |
packages/sdk/protocol/src/transport.ts | packages/sdk/protocol | 1-268 · SDK-JSONL-TRANSPORT |
packages/sdk/protocol/src/types.ts | packages/sdk/protocol | 15-105 · SDK-WIRE-METHODS |
packages/sdk/protocol/tests/transport.spec.ts | packages/sdk/protocol | 1-307 · TEST-SDK-PROTOCOL |
packages/sdk/server/src/index.ts | packages/sdk/server | 40-91 · SDK-SERVER-SHUTDOWN |
packages/sdk/server/src/server.ts | packages/sdk/server | 48-103 · SDK-SERVER-EVENTS48-201 · SDK-SERVER-INIT48-124 · SEC-SDK-SERVER127-239 · SDK-SERVER-SESSIONS |
packages/session-query/session-query-sqlite/src/index.ts | packages/session-query/session-query-sqlite | 85-331 · MEMORY-QUERY-SQLITE-MODE |
packages/session-query/session-query-sqlite/src/schema.ts | packages/session-query/session-query-sqlite | 27-169 · MEMORY-QUERY-SQLITE-SCHEMA |
packages/session-query/session-query/src/corpus.ts | packages/session-query/session-query | 31-116 · OBS-QUERY-CORPUS53-220 · MEMORY-QUERY-CORPUS |
packages/session-query/session-query/src/documents.ts | packages/session-query/session-query | 15-74 · MEMORY-QUERY-DOCUMENTS |
packages/session-query/session-query/src/extraction.ts | packages/session-query/session-query | 13-82 · MEMORY-QUERY-EXTRACTION |
packages/session-query/session-query/src/index.ts | packages/session-query/session-query | 74-345 · OBS-QUERY-SERVICE |
packages/session-query/session-query/src/tracing.ts | packages/session-query/session-query | 21-218 · LOG-QUERY-TRACE21-213 · OBS-QUERY-TRACE |
packages/session-query/tool-session-query/README.md | packages/session-query/tool-session-query | 5-20 · MEMORY-QUERY-TOOL-CONTRACT5-76 · OBS-QUERY-TOOLS |
packages/session-query/tool-session-query/src/operations.ts | packages/session-query/tool-session-query | 116-166 · OBS-QUERY-CURRENT-BOUNDARY |
packages/session-query/tool-session-query/src/service-boundary.ts | packages/session-query/tool-session-query | 19-171 · OBS-QUERY-SANITIZE116-171 · OBS-QUERY-DIAGNOSTIC |
packages/session-query/tool-session-query/src/workspace-access.ts | packages/session-query/tool-session-query | 54-233 · MEMORY-QUERY-TOOL-AUTH54-203 · OBS-QUERY-AUTH |
packages/session/session-checkpoint-policy/README.md | packages/session/session-checkpoint-policy | 5-45 · OPEN-CHECKPOINT-UNKNOWN |
packages/session/session-checkpoint-policy/src/index.ts | packages/session/session-checkpoint-policy | 20-82 · FAILURE-CHECKPOINT-POLICY20-82 · INBOX-CHECKPOINT-POLICY20-82 · LLM-CHECKPOINT-BARRIER20-82 · LOG-CHECKPOINT-POLICY |
packages/session/session-checkpoint-policy/tests/crash-recovery.e2e.ts | packages/session/session-checkpoint-policy | 39-110 · FAILURE-CRASH-E2E82-110 · INBOX-CRASH-RECOVERY |
packages/session/session-checkpoint-policy/tests/fixtures/crash-child.ts | packages/session/session-checkpoint-policy | 21-60 · FAILURE-CRASH-FIXTURE |
packages/session/session-checkpoint-policy/tests/session-checkpoint-policy.spec.ts | packages/session/session-checkpoint-policy | 62-238 · FAILURE-CHECKPOINT-TEST |
packages/session/session-persistence-jsonl/README.md | packages/session/session-persistence-jsonl | 40-52 · INBOX-JSONL-DURABILITY |
packages/session/session-persistence-jsonl/src/format.ts | packages/session/session-persistence-jsonl | 28-223 · PERSIST-JSONL-FORMAT272-377 · FAILURE-JSONL-RAW-SCAN272-388 · PERSIST-JSONL-SCAN |
packages/session/session-persistence-jsonl/src/index.ts | packages/session/session-persistence-jsonl | 115-200 · PERSIST-JSONL-ROOT306-444 · FAILURE-JSONL-PREFIX306-701 · PERSIST-JSONL-REPAIR511-701 · FAILURE-JSONL-ATOMICITY528-615 · MEMORY-JSONL-PERMISSIONS |
packages/session/session-persistence-jsonl/src/win32.ts | packages/session/session-persistence-jsonl | 109-120 · FAILURE-JSONL-WIN32 |
packages/session/session-persistence-jsonl/src/zstd.ts | packages/session/session-persistence-jsonl | 48-103 · FAILURE-JSONL-ZSTD-SCAN |
packages/session/session-persistence-jsonl/tests/jsonl.spec.ts | packages/session/session-persistence-jsonl | 102-115 · FAILURE-CRASH-CONTRACT-JSONL585-674 · FAILURE-JSONL-TEST |
packages/session/session-persistence-sqlite/src/index.ts | packages/session/session-persistence-sqlite | 69-146 · PERSIST-SESSION-SQLITE-CONSTRUCTOR220-237 · PERSIST-SQLITE-SUFFIX278-338 · PERSIST-SQLITE-REPAIR |
packages/session/session-persistence-sqlite/src/schema.ts | packages/session/session-persistence-sqlite | 15-171 · PERSIST-SQLITE-SCHEMA220-269 · PERSIST-SQLITE-SCAN |
packages/session/session-persistence-sqlite/tests/sqlite.spec.ts | packages/session/session-persistence-sqlite | 51-60 · FAILURE-CRASH-CONTRACT-SQLITE677-691 · PERSIST-SESSION-SQLITE-CONSTRUCTOR-TEST |
packages/session/session-persistence/src/coordinator.ts | packages/session/session-persistence | 117-214 · PERSIST-BACKEND-CONTRACT575-710 · PERSIST-COORDINATOR690-774 · MEMORY-PERSISTENCE-TRANSACTION712-970 · PERSIST-READ-FACES720-889 · LOG-PERSISTENCE-READ-FACES891-990 · LOG-PREPARED-COMMIT1046-1065 · SESSION-UNKNOWN-EVENT-GATE1084-1161 · FAILURE-PERSISTENCE-WIRING1084-1181 · LOG-PERSISTENCE-ADMISSION1117-1160 · MEMORY-PERSISTENCE-FLUSH1325-1350 · OBS-PERSISTENCE-DIAGNOSTIC |
packages/session/session-persistence/src/index.ts | packages/session/session-persistence | 1-240 · PERSIST-SEAM-API |
packages/session/session-persistence/src/write-behind.ts | packages/session/session-persistence | 18-158 · FAILURE-WRITE-BEHIND18-158 · LOG-WRITE-BEHIND19-157 · PERSIST-WRITE-BEHIND |
packages/session/session-persistence/tests/contract.ts | packages/session/session-persistence | 118-265 · FAILURE-CRASH-CONTRACT118-266 · LOG-REPAIR-CONTRACT |
packages/session/session-persistence/tests/coordinator-contract.ts | packages/session/session-persistence | 1360-1382 · SESSION-UNKNOWN-EVENT-TEST1427-1479 · LOG-TORN-TAIL-CONTRACT |
packages/session/session-persistence/tests/persistence.spec.ts | packages/session/session-persistence | 240-249 · FAILURE-CRASH-CONTRACT-MEMORY |
packages/session/session-projection-cache/src/index.ts | packages/session/session-projection-cache | 132-230 · PROJ-CACHE-DETACH-WINDOW154-197 · PROJ-CACHE-LADDER |
packages/session/session-projection-cache/src/spec.ts | packages/session/session-projection-cache | 16-69 · PROJ-CACHE-SCHEMA |
packages/session/session-projection/src/index.ts | packages/session/session-projection | 88-118 · PROJ-AUTHORITY-LAYERS130-425 · PROJ-REGISTRY-DRIVE137-220 · PROJ-REGISTRY-REGISTRATION284-385 · PROJ-REGISTRY-RESTORE |
packages/session/session-stats/src/projection.ts | packages/session/session-stats | 1-183 · OBS-STATS-FOLD |
packages/session/session-stats/src/types.ts | packages/session/session-stats | 15-45 · OBS-STATS-CONTRACT |
packages/session/session-stats/tests/projection.spec.ts | packages/session/session-stats | 58-291 · OBS-TEST-STATS |
packages/session/session-telemetry-otel/package.json | packages/session/session-telemetry-otel | 33-41 · OBS-OTEL-DEPENDENCIES |
packages/session/session-telemetry-otel/README.md | packages/session/session-telemetry-otel | 30-38 · OPEN-OTEL-BOUNDARY36-42 · OBS-PRIVACY-BOUNDARY |
packages/session/session-telemetry-otel/src/index.ts | packages/session/session-telemetry-otel | 43-252 · OBS-TELEMETRY-MODES197-232 · OBS-OTEL-PIPELINE265-298 · OBS-OTEL-SHUTDOWN |
packages/session/session-telemetry-otel/tests/loader-composition.e2e.ts | packages/session/session-telemetry-otel | 78-153 · OBS-TEST-OTEL-COMPOSITION |
packages/session/session-telemetry-otel/tests/otel.spec.ts | packages/session/session-telemetry-otel | 1-163 · OBS-TEST-OTEL-WIRE273-489 · OBS-TEST-OTEL-MODES |
packages/session/session-telemetry/README.md | packages/session/session-telemetry | 13-35 · OPEN-TELEMETRY-HANDOFF45-49 · OPEN-TELEMETRY-LIMITS |
packages/session/session-telemetry/src/coordinator.ts | packages/session/session-telemetry | 32-169 · OBS-TELEMETRY-HANDOFF112-267 · OBS-OPS-LOGS179-220 · OBS-TELEMETRY-PROJECTION228-302 · OBS-TELEMETRY-SEVERITY |
packages/session/session-telemetry/src/index.ts | packages/session/session-telemetry | 24-43 · OBS-TELEMETRY-REDACTION47-130 · OBS-TELEMETRY-CONTRACT |
packages/session/session-telemetry/tests/redact.spec.ts | packages/session/session-telemetry | 39-128 · OBS-TEST-REDACTION |
packages/session/session-telemetry/tests/telemetry.spec.ts | packages/session/session-telemetry | 161-539 · OBS-TEST-HANDOFF |
packages/settings/settings/README.md | packages/settings/settings | 41-45 · OPEN-SETTINGS-CROSS-PROCESS41-45 · OPEN-SETTINGS-REDACTION-DOC |
packages/settings/settings/src/redact.ts | packages/settings/settings | 50-109 · OPEN-SETTINGS-REDACTION-CODE |
packages/shell/bash-sandbox/src/helpers.ts | packages/shell/bash-sandbox | 25-116 · SANDBOX-RESULT-CLASSIFIER |
packages/shell/bash-sandbox/src/index.ts | packages/shell/bash-sandbox | 79-179 · SANDBOX-BASH-CONSUMER |
packages/shell/shell-env/src/index.ts | packages/shell/shell-env | 81-216 · SHELL-MANAGED-ENV175-192 · SHELL-ENV-LIST-GAP |
packages/shell/shell/src/index.ts | packages/shell/shell | 46-100 · SHELL-EXECUTOR-CONTRACT |
packages/shell/tool-bash-persistent/src/index.ts | packages/shell/tool-bash-persistent | 62-398 · SHELL-PERSISTENT-BASH |
packages/shell/tool-bash/src/background.ts | packages/shell/tool-bash | 9-27 · SHELL-BACKGROUND-OUTCOME |
packages/shell/tool-bash/src/index.ts | packages/shell/tool-bash | 138-156 · SHELL-BASH-CWD190-390 · APPROVAL-BASH-EXECUTION330-389 · SHELL-BASH-TOOL |
packages/shell/tool-pwsh/README.md | packages/shell/tool-pwsh | 5-9 · SHELL-PWSH-DOC-DRIFT |
packages/shell/tool-pwsh/src/index.ts | packages/shell/tool-pwsh | 42-50 · SHELL-PWSH-INJECT147-158 · SHELL-PWSH-CWD-GAP209-406 · APPROVAL-PWSH-EXECUTION |
packages/skill/skill-filesystem/src/index.ts | packages/skill/skill-filesystem | 36-260 · CAP-SKILL-FS-ROOTS36-100 · MEMORY-SKILL-FILESYSTEM-CONFIG241-260 · MEMORY-SKILL-FILESYSTEM-ROOTS719-885 · MEMORY-SKILL-FILESYSTEM-LOAD749-885 · CAP-SKILL-FS-TRUST |
packages/skill/skill/src/index.ts | packages/skill/skill | 20-109 · CAP-SKILL-TYPES140-228 · CAP-SKILL-RENDER157-183 · SEC-SKILL-TRUST327-619 · MEMORY-SKILL-REGISTRY346-461 · CAP-SKILL-LAYERS463-625 · CAP-SKILL-COLLECT |
packages/skill/tool-skill/src/index.ts | packages/skill/tool-skill | 27-430 · MEMORY-SKILL-INVOCATION71-161 · CAP-SKILL-TOOL-LOAD127-227 · SEC-SKILL-INVOCATION-GATES163-430 · CAP-SKILL-USER-INVOKE206-335 · CAP-SKILL-CATALOG |
packages/storage/storage-domain/src/domain.ts | packages/storage/storage-domain | 135-269 · PERSIST-DOMAIN-ORDER148-275 · PERSIST-DOMAIN-CLOSE-GAP |
packages/storage/storage-json/src/atomic.ts | packages/storage/storage-json | 1-52 · PERSIST-JSON-ATOMIC |
packages/storage/storage-json/src/index.ts | packages/storage/storage-json | 21-66 · PERSIST-JSON-ROOT-GAP |
packages/storage/storage-json/src/unit.ts | packages/storage/storage-json | 47-140 · PERSIST-JSON-UNIT-ROLLBACK |
packages/storage/storage-sqlite/src/index.ts | packages/storage/storage-sqlite | 23-72 · PERSIST-STORAGE-SQLITE-CONSTRUCTOR |
packages/storage/storage-sqlite/src/schema.ts | packages/storage/storage-sqlite | 15-119 · PERSIST-STORAGE-SQLITE-SCHEMA52-80 · PERSIST-STORAGE-SQLITE-OPEN |
packages/storage/storage-sqlite/src/unit.ts | packages/storage/storage-sqlite | 23-147 · PERSIST-STORAGE-SQLITE-UNIT |
packages/storage/storage/src/backend.ts | packages/storage/storage | 12-104 · PERSIST-STORAGE-SEAM |
packages/storage/storage/src/registry.ts | packages/storage/storage | 14-36 · PERSIST-STORAGE-REGISTRY |
packages/subagent/subagent-acp/src/index.ts | packages/subagent/subagent-acp | 124-169 · ACP-CHILD-CAPABILITIES124-170 · MULTIAGENT-ACP-PROVIDER |
packages/subagent/subagent-acp/src/run.ts | packages/subagent/subagent-acp | 94-367 · ACP-CHILD-CANCEL190-367 · ACP-CHILD-START |
packages/subagent/subagent-claude-code/src/index.ts | packages/subagent/subagent-claude-code | 50-112 · MULTIAGENT-CLAUDE-PROVIDER |
packages/subagent/subagent-codex/src/index.ts | packages/subagent/subagent-codex | 47-100 · MULTIAGENT-CODEX-PROVIDER |
packages/subagent/subagent-codex/src/run.ts | packages/subagent/subagent-codex | 28-199 · MULTIAGENT-CODEX-RUN |
packages/subagent/subagent-codex/src/wire.ts | packages/subagent/subagent-codex | 128-373 · MULTIAGENT-CODEX-WIRE294-373 · MULTIAGENT-CODEX-UNATTENDED |
packages/subagent/subagent-codex/tests/subagent-codex.spec.ts | packages/subagent/subagent-codex | 363-435 · MULTIAGENT-CODEX-WIRE-TEST |
packages/subagent/subagent-dsh-sdk/src/index.ts | packages/subagent/subagent-dsh-sdk | 1-119 · MULTIAGENT-SDK-PROVIDER |
packages/subagent/subagent-fork-in-process/src/index.ts | packages/subagent/subagent-fork-in-process | 40-94 · MULTIAGENT-FORK-PROVIDER |
packages/subagent/subagent-fork-in-process/tests/subagent-fork-in-process.spec.ts | packages/subagent/subagent-fork-in-process | 134-158 · MULTIAGENT-FORK-OPEN-TURN-TEST |
packages/subagent/subagent-in-process-driver/src/index.ts | packages/subagent/subagent-in-process-driver | 78-205 · MULTIAGENT-ONE-SHOT-DRIVER207-233 · MULTIAGENT-ONE-SHOT-RESULT |
packages/subagent/subagent-in-process-driver/src/structured.ts | packages/subagent/subagent-in-process-driver | 49-141 · MULTIAGENT-STRUCTURED-OUTPUT |
packages/subagent/subagent-spawn-in-process/src/index.ts | packages/subagent/subagent-spawn-in-process | 34-64 · MULTIAGENT-SPAWN-PROVIDER |
packages/subagent/subagent/src/assistant-output.ts | packages/subagent/subagent | 1-74 · MULTIAGENT-ASSISTANT-OUTPUT |
packages/subagent/subagent/src/child-agent.ts | packages/subagent/subagent | 38-120 · MULTIAGENT-CHILD-INHERITANCE130-224 · APPROVAL-CHILD-PIN130-175 · MULTIAGENT-CHILD-COMPOSITION177-225 · MULTIAGENT-DELEGATED-POLICY |
packages/subagent/subagent/src/continuation.ts | packages/subagent/subagent | 1-19 · INBOX-ACTIVATION-MODEL151-159 · INBOX-ACTIVATION-STATE151-240 · MULTIAGENT-ACTIVATION-MODEL319-340 · MULTIAGENT-CHILD-LOCK388-457 · MULTIAGENT-CONTINUABLE-START459-505 · INBOX-CONTINUATION-DELIVERY459-505 · MULTIAGENT-FOLLOWUP507-568 · INBOX-CHILD-INTERRUPT507-568 · MULTIAGENT-INTERRUPT570-693 · MULTIAGENT-REPORT-DELIVERY583-693 · INBOX-CHILD-REPORT695-803 · MULTIAGENT-DRAIN876-932 · INBOX-COLD-RESUME876-932 · MULTIAGENT-COLD-RESUME1094-1174 · MULTIAGENT-ACTIVATION-OWNERSHIP1125-1204 · INBOX-CONTINUATION-ADMISSION1270-1380 · MULTIAGENT-ACTIVATION-DISPOSAL1363-1465 · INBOX-SETTLEMENT-NOTICE1382-1448 · MULTIAGENT-SETTLEMENT-NOTICE1451-1478 · MULTIAGENT-FINAL-FLUSH |
packages/subagent/subagent/src/depth.ts | packages/subagent/subagent | 18-50 · MULTIAGENT-DEPTH |
packages/subagent/subagent/src/descriptor-seed.ts | packages/subagent/subagent | 13-30 · MULTIAGENT-DESCRIPTOR-SEED |
packages/subagent/subagent/src/descriptor.ts | packages/subagent/subagent | 1-88 · MULTIAGENT-DESCRIPTOR195-314 · MULTIAGENT-DESCRIPTOR-FOLD |
packages/subagent/subagent/src/index.ts | packages/subagent/subagent | 203-275 · INBOX-CONTINUATION-SEAM404-495 · MULTIAGENT-RUNTIME-DISPATCH |
packages/subagent/subagent/src/invariant.ts | packages/subagent/subagent | 14-84 · MULTIAGENT-INVARIANTS |
packages/subagent/subagent/src/lifecycle.ts | packages/subagent/subagent | 76-217 · MULTIAGENT-LIFECYCLE |
packages/subagent/subagent/src/list-children.ts | packages/subagent/subagent | 27-32 · MULTIAGENT-LIST-CONCURRENCY117-409 · MULTIAGENT-LIST-SERVICE |
packages/subagent/subagent/src/out-of-process.ts | packages/subagent/subagent | 155-215 · MULTIAGENT-OUTPROCESS-SETTLEMENT |
packages/subagent/subagent/src/projection.ts | packages/subagent/subagent | 111-155 · MULTIAGENT-DESCRIPTOR-PROJECTION |
packages/subagent/subagent/src/run-settlement.ts | packages/subagent/subagent | 21-63 · MULTIAGENT-RUN-SETTLEMENT |
packages/subagent/subagent/src/types.ts | packages/subagent/subagent | 75-323 · MULTIAGENT-SEAM |
packages/subagent/subagent/tests/continuation.spec.ts | packages/subagent/subagent | 101-191 · MULTIAGENT-CONTINUATION-ACCEPTANCE-TEST |
packages/subagent/tool-subagent-control/src/index.ts | packages/subagent/tool-subagent-control | 25-119 · INBOX-CONTROL-TOOLS25-119 · MULTIAGENT-CONTROL-TOOLS |
packages/subagent/tool-subagent-control/src/list-agents.ts | packages/subagent/tool-subagent-control | 52-105 · MULTIAGENT-LIST-TOOL |
packages/subagent/tool-subagent-report/src/index.ts | packages/subagent/tool-subagent-report | 40-142 · MULTIAGENT-REPORT-TOOL |
packages/subagent/tool-subagent/src/index.ts | packages/subagent/tool-subagent | 28-99 · MULTIAGENT-TOOL-CONFIG246-429 · MULTIAGENT-TOOL-ROUTES366-465 · MULTIAGENT-TOOL-CONCURRENCY |
packages/subprocess/subprocess-local/README.md | packages/subprocess/subprocess-local | 26-33 · OPEN-PROCESS-PLATFORM-LIMITS |
packages/subprocess/subprocess-local/src/spawn.ts | packages/subprocess/subprocess-local | 17-352 · ACP-CHILD-ENV-MERGE84-247 · SHELL-OUTPUT-SPILL253-543 · SHELL-PROCESS-TREE |
packages/subprocess/subprocess-local/src/terminal.ts | packages/subprocess/subprocess-local | 93-248 · SHELL-PTY-CLEANUP |
packages/subprocess/subprocess/src/index.ts | packages/subprocess/subprocess | 37-65 · ACP-CHILD-ENV-POLICY37-66 · SEC-CHILD-ENV37-66 · SHELL-ENV-SCRUB37-139 · SHELL-SUBPROCESS-SEAM |
packages/subprocess/subprocess/src/types.ts | packages/subprocess/subprocess | 55-193 · SHELL-SPAWN-CONTRACT |
packages/terminal/terminal-bash/src/index.ts | packages/terminal/terminal-bash | 27-145 · SANDBOX-TERMINAL-FENCE |
packages/terminal/terminal-bash/src/session.ts | packages/terminal/terminal-bash | 225-564 · SHELL-PTY-READINESS |
packages/terminal/terminal/src/index.ts | packages/terminal/terminal | 104-405 · SHELL-TERMINAL-SERVICE |
packages/terminal/tool-terminal/src/index.ts | packages/terminal/tool-terminal | 157-399 · SHELL-TERMINAL-TOOLS |
packages/test-support/acp-snapshot/README.md | packages/test-support/acp-snapshot | 74-78 · OPEN-SNAPSHOT-BACKEND-GAP |
packages/test-support/acp-snapshot/src/suite.ts | packages/test-support/acp-snapshot | 1080-1098 · TINV-SNAPSHOT-SCENARIO-MODE1167-1342 · TINV-SNAPSHOT-COMPARE1440-1480 · TINV-SNAPSHOT-FIXTURES |
packages/test-support/llm-replay/README.md | packages/test-support/llm-replay | 77-80 · OPEN-REPLAY-CONCURRENCY |
packages/test-support/llm-replay/src/index.ts | packages/test-support/llm-replay | 1-263 · TINV-REPLAY-DERIVE193-260 · LLM-REPLAY-DERIVATION |
packages/test-support/llm-replay/tests/llm-replay.spec.ts | packages/test-support/llm-replay | 119-132 · LLM-MULTI-ATTEMPT-REPLAY-TEST671-917 · TINV-REPLAY-TEST |
packages/todo/tool-todo/src/index.ts | packages/todo/tool-todo | 28-225 · PLANSTATE-TODO-TOOL |
packages/todo/tool-todo/src/invariant.ts | packages/todo/tool-todo | 15-57 · PLANSTATE-TODO-INVARIANT |
packages/todo/tool-todo/tests/projection.spec.ts | packages/todo/tool-todo | 68-123 · PLANSTATE-TODO-PROJECTION |
packages/todo/tool-todo/tests/tool-todo.spec.ts | packages/todo/tool-todo | 70-209 · PLANSTATE-TODO-TEST |
packages/util/atomic-write/README.md | packages/util/atomic-write | 23-45 · OPEN-ATOMIC-DURABILITY |
packages/util/native-command/README.md | packages/util/native-command | 25-27 · OPEN-NATIVE-OUTPUT-BOUND |
packages/util/timeout/src/index.ts | packages/util/timeout | 57-190 · FAILURE-TIMEOUT-SIGNAL |
packages/web/tool-web/src/index.ts | packages/web/tool-web | 1-91 · CAP-WEB-TOOL |
packages/web/web-fetch-http/README.md | packages/web/web-fetch-http | 17-51 · OPEN-WEB-SSRF |
packages/web/web-fetch-http/src/policy.ts | packages/web/web-fetch-http | 14-105 · CAP-WEB-FETCH-POLICY |
packages/web/web-fetch-http/src/provider.ts | packages/web/web-fetch-http | 1-147 · CAP-WEB-FETCH-TRANSPORT149-207 · CAP-WEB-FETCH-CAPS |
packages/web/web-search-deepseek/src/index.ts | packages/web/web-search-deepseek | 95-138 · CAP-WEB-DEEPSEEK-SETTINGS |
packages/web/web-search-deepseek/src/provider.ts | packages/web/web-search-deepseek | 1-109 · CAP-WEB-DEEPSEEK-WIRE112-174 · CAP-WEB-DEEPSEEK-MAP176-300 · CAP-WEB-DEEPSEEK-REQUEST |
packages/web/web/src/index.ts | packages/web/web | 49-200 · CAP-WEB-SELECTION |
packages/web/web/src/types.ts | packages/web/web | 15-129 · CAP-WEB-TYPES |
packages/workflow/tool-ralph/README.md | packages/workflow/tool-ralph | 86-93 · OPEN-RALPH-VERIFICATION |
packages/workflow/tool-ralph/src/index.ts | packages/workflow/tool-ralph | 80-177 · RALPH-SCRIPT151-167 · RALPH-ROUND-PROMPT207-232 · RALPH-FRESH-PROVIDER246-333 · RALPH-DOUBLE-VALIDATION282-391 · RALPH-OUTCOMES351-391 · RALPH-RENDER404-435 · RALPH-CONTRACT437-474 · RALPH-EXECUTE |
packages/workflow/tool-workflow/src/index.ts | packages/workflow/tool-workflow | 69-330 · WORKFLOW-DURABLE-RECORD133-270 · WORKFLOW-TOOL-CONTRACT272-330 · WORKFLOW-TOOL-EXECUTE |
packages/workflow/tool-workflow/src/invariant.ts | packages/workflow/tool-workflow | 67-163 · WORKFLOW-RECORD-INVARIANT |
packages/workflow/tool-workflow/src/types.ts | packages/workflow/tool-workflow | 13-63 · WORKFLOW-RECORD-TYPES |
packages/workflow/workflow-worker-thread/README.md | packages/workflow/workflow-worker-thread | 5-22 · OPEN-WORKFLOW-ISOLATION |
packages/workflow/workflow-worker-thread/src/host.ts | packages/workflow/workflow-worker-thread | 32-169 · WORKFLOW-WORKER-SPAWN206-251 · WORKFLOW-DISPOSE329-412 · WORKFLOW-CHILD-BRIDGE385-412 · WORKFLOW-CHILD-SNAPSHOT414-483 · WORKFLOW-CHILD-QUIESCENCE486-516 · WORKFLOW-CANCEL-RACE553-582 · WORKFLOW-EVENT-PAIRING |
packages/workflow/workflow-worker-thread/src/index.ts | packages/workflow/workflow-worker-thread | 31-48 · WORKFLOW-CAPS53-201 · WORKFLOW-START-VALIDATION164-180 · WORKFLOW-HMR-HOLDER |
packages/workflow/workflow-worker-thread/src/meta.ts | packages/workflow/workflow-worker-thread | 12-82 · WORKFLOW-META |
packages/workflow/workflow-worker-thread/src/realm.ts | packages/workflow/workflow-worker-thread | 1-39 · WORKFLOW-REALM-TRUST42-151 · WORKFLOW-JSON-BOUNDARY |
packages/workflow/workflow-worker-thread/src/runtime.ts | packages/workflow/workflow-worker-thread | 75-114 · WORKFLOW-VM-GLOBALS116-187 · WORKFLOW-CANCEL-BOUNDARY222-274 · WORKFLOW-SLOTS249-345 · WORKFLOW-AGENT-RESULT347-398 · WORKFLOW-AGENT-OPTIONS400-466 · WORKFLOW-COMBINATORS400-455 · WORKFLOW-FATALITY |
packages/workflow/workflow/README.md | packages/workflow/workflow | 53-59 · OPEN-WORKFLOW-DURABILITY |
packages/workflow/workflow/src/index.ts | packages/workflow/workflow | 36-100 · WORKFLOW-EVENTS102-148 · WORKFLOW-ERROR-TAXONOMY150-186 · WORKFLOW-LIFECYCLE |
packages/workflow/workflow/src/runtime-types.ts | packages/workflow/workflow | 14-49 · WORKFLOW-SEAM |
packages/workspace/workspace/README.md | packages/workspace/workspace | 11-23 · PERSIST-WORKSPACE-OWNERSHIP41-44 · PERSIST-WORKSPACE-REFRESH-DOC |
packages/workspace/workspace/src/entity.ts | packages/workspace/workspace | 101-107 · PERSIST-WORKSPACE-TITLE-SETTER |
packages/workspace/workspace/src/index.ts | packages/workspace/workspace | 118-140 · PERSIST-WORKSPACE-INIT142-163 · PERSIST-WORKSPACE-TITLE-GAP285-424 · PERSIST-WORKSPACE-MUTATION426-508 · PERSIST-WORKSPACE-BOOTSTRAP510-551 · PERSIST-WORKSPACE-INVARIANTS561-630 · PERSIST-WORKSPACE-REFRESH |
packages/workspace/workspace/src/spec.ts | packages/workspace/workspace | 13-75 · PERSIST-WORKSPACE-SCHEMA |
python/sdk/src/deepseek_harness/api.py | python | 13-84 · SDK-PY-RESULT97-242 · SDK-PY-RUN |
python/sdk/src/deepseek_harness/client.py | python | 24-397 · SDK-PY-CLIENT63-83 · SEC-SDK-PYTHON228-396 · SDK-PY-READER |
python/sdk/src/deepseek_harness/models.py | python | 26-32 · SDK-PY-MODELS |
README.md | repository-root | 9-11 · WEBUI-DEVELOPER-PREVIEW |
scripts/coverage-exempt.spec.ts | scripts | 13-54 · TINV-COVERAGE-EXEMPT-TEST |
scripts/coverage-exempt.ts | scripts | 1-41 · TINV-COVERAGE-EXEMPT |
scripts/gen-config-catalog.ts | scripts | 1-7 · TINV-CONFIG-CATALOG719-875 · TINV-CONFIG-CATALOG-CHECK |
scripts/gen-cordis-catalog.ts | scripts | 701-918 · TINV-CORDIS-CATALOG |
scripts/gen-tool-catalog.ts | scripts | 556-704 · TOOLCAT-GENERATOR |
scripts/package-invariants.ts | scripts | 11-286 · TINV-COMPANION-GATE |
scripts/run-gates.ts | scripts | 374-419 · TINV-CI-CONSUMERS497-527 · TINV-SNAPSHOT-GATE571-615 · TINV-DOC-SYNC |
scripts/session-fixture-layout.snapshot.ts | scripts | 1-16 · TINV-FIXTURE-LAYOUT-TEST |
scripts/test-invariants.spec.ts | scripts | 97-152 · TINV-INVARIANT-TOPOLOGY-TEST |
scripts/test-invariants.ts | scripts | 67-272 · TINV-TEST-HOST |
scripts/verify-built-package-invariants.mjs | scripts | 31-82 · TINV-BUILT-COMPANIONS |
scripts/verify-cordis-config.spec.ts | scripts | 1-38 · TINV-CONFIG-TEST |
scripts/verify-cordis-config.ts | scripts | 1-471 · TINV-CONFIG-METADATA72-364 · TINV-CONFIG-CLOSURE |
scripts/verify-package-readme-limitations.ts | scripts | 1-93 · OPEN-LIMITATIONS-GATE |
scripts/verify-runtime-closure.ts | scripts | 24-73 · TINV-RUNTIME-CLOSURE |
scripts/verify-type-equiv.ts | scripts | 199-300 · TINV-TYPE-EQUIV |
scripts/wine-windows-gates.sh | scripts | 31-282 · TINV-WINE-RUNNER |
vitest.config.ts | repository-root | 21-84 · TINV-PLATFORM-COVERAGE160-268 · TINV-COVERAGE-SCOPE264-283 · TINV-COVERAGE-BAR |
vitest.snapshot.config.ts | repository-root | 19-67 · TINV-SNAPSHOT-MODE |
7. 已文档化符号索引 · 384
全集:scripts/type-equiv.manifest.json 中的主条目,身份为 source + symbol + projection。本索引刻意不称为全部 Export 或全部声明。
8. 事件与服务索引
持久化 Session 日志与实时 Cordis 总线是两个不同平面,绝不合并为一个总数。持久化行来自 persistence-catalog 生成器;实时行和 Host Service 来自 Host Face Typert 模型。Client Face 与继承的框架 API 不在范围内。
持久化 Session 日志词汇 · 44
| 事件 | 模式 / Surface | 负载或签名 | 固定源码 |
|---|---|---|---|
agent-preset/selected | log-only | { agentPreset: string } | packages/preset/agent-presets/src/session.ts:26 |
agent/inbox/spliced | log-only | { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled' } | packages/core/agent/src/types.ts:19 |
approval/asked | log-only | { id: ApprovalRequestId; toolName: string; callId?: CallId; reason?: string } | packages/interaction/user-approval/src/index.ts:44 |
approval/decided | log-only | { id: ApprovalRequestId; outcome: ApprovalOutcome } | packages/interaction/user-approval/src/index.ts:55 |
approval/policy | log-only | { policy: ApprovalPolicy; source?: 'delegation' } | packages/interaction/user-approval/src/index.ts:67 |
assistant/chunk | log-only | { turn: number; step: number; chunk: StreamChunk } | packages/core/session/src/types.ts:266 |
assistant/message | surface | { turn: number; step: number; message: AssistantMessage; usage?: TokenUsage } | packages/core/session/src/types.ts:273 |
command/done | log-only | { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: number } | packages/interaction/commands/src/types.ts:95 |
command/run | log-only | { commandId: CommandId; name: string; args?: string; source: CommandSource } | packages/interaction/commands/src/types.ts:88 |
compaction/end | log-only | { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string } | packages/compaction/compaction/src/types.ts:71 |
compaction/prune | log-only | { shadowedRange: { start: number; end: number }; shadowedSeqs: number[]; shadowedTokenCount: number } | packages/compaction/compaction/src/types.ts:81 |
compaction/start | log-only | { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null } | packages/compaction/compaction/src/types.ts:23 |
compaction/summary | log-only | { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: number; end: number }; shadowedSeqs: number[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage } & ({ rawOutput: ContentBlock[]; llmStreamCall: true } | { rawOutput?: ContentBlock[]; llmStreamCall?: never }) | packages/compaction/compaction/src/types.ts:33 |
feedback/record | log-only | { text: string } | packages/feedback/command-feedback/src/index.ts:62 |
goal/change | log-only | GoalChangeMeta | packages/goal/goal/src/domain.ts:66 |
hook/invoked | log-only | { turn: number; point: string; dialect: HookDialect; matcher?: string; handlerId: string } | packages/hooks/hook-protocol/src/types.ts:19 |
hook/result | log-only | { turn: number; point: string; handlerId: string; decision: string; exitCode?: number; stderrSummary?: string; durationMs: number } | packages/hooks/hook-protocol/src/types.ts:31 |
llm/retry | log-only | LlmRetryEventData | packages/llm/llm-retry/src/types.ts:9 |
llm/retry-started | log-only | LlmRetryStartedEventData | packages/llm/llm-retry/src/types.ts:11 |
permission/preset | log-only | { preset: string } | packages/interaction/permission-presets/src/index.ts:50 |
plan/mode | log-only | { active: boolean } | packages/plan/plan-mode/src/index.ts:53 |
request/context | log-only | RequestContext | packages/core/session/src/types.ts:309 |
request/header | log-only | { header: EpochHeader; reason: RequestHeaderReason } | packages/core/session/src/types.ts:304 |
sandbox/mode | log-only | { mode: SandboxMode; source?: 'delegation' } | packages/sandbox/sandbox-policy/src/session-mode.ts:33 |
schedule/change | log-only | ScheduleChange | packages/schedule/schedule/src/types.ts:219 |
session/end-seed | log-only | Record<string, never> | packages/core/session/src/types.ts:332 |
session/title | log-only | SessionTitleEventData | packages/session/session-title/src/index.ts:100 |
session/title-llm-request | log-only | SessionTitleLlmRequestEventData | packages/session/session-title-llm/src/index.ts:43 |
step/end | log-only | { turn: number; step: number } | packages/core/session/src/types.ts:256 |
step/start | log-only | { turn: number; step: number } | packages/core/session/src/types.ts:254 |
subagent/descriptor | log-only | SubagentDescriptorData | packages/subagent/subagent/src/descriptor.ts:37 |
todo/write | log-only | { todos: TodoItem[] } | packages/core/session/src/types.ts:299 |
tool-workflow/agent-end | log-only | ToolWorkflowAgentEndData | packages/workflow/tool-workflow/src/types.ts:57 |
tool-workflow/agent-start | log-only | ToolWorkflowAgentStartData | packages/workflow/tool-workflow/src/types.ts:52 |
tool-workflow/run-end | log-only | ToolWorkflowRunEndData | packages/workflow/tool-workflow/src/types.ts:62 |
tool-workflow/run-start | log-only | ToolWorkflowRunStartData | packages/workflow/tool-workflow/src/types.ts:47 |
tool/call | log-only | { turn: number; step: number; callId: CallId; name: string; arguments: string } | packages/core/session/src/types.ts:279 |
tool/code-dispatch | log-only | CodeDispatchEventData | packages/core/tools/src/types.ts:56 |
tool/code-dispatch-start | log-only | CodeDispatchStartEventData | packages/core/tools/src/types.ts:40 |
tool/result | surface | { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string }; meta?: JsonValue } | packages/core/session/src/types.ts:291 |
turn/end | log-only | { turn: number; reason: TurnEndReason } | packages/core/session/src/types.ts:252 |
turn/start | log-only | { turn: number } | packages/core/session/src/types.ts:243 |
user/message | surface | UserMessage | packages/core/session/src/types.ts:264 |
web/deepseek-search-llm-request | log-only | DeepSeekSearchLlmRequest | packages/web/web-search-deepseek/src/provider.ts:83 |
实时 Cordis Host 总线词汇 · 56
| 事件 | 模式 / Surface | 负载或签名 | 固定源码 |
|---|---|---|---|
agent-loop/config-start-failed | emit | 'agent-loop/config-start-failed'(payload: { sessionId: SessionId; error: unknown }): void | packages/core/agent-loop/src/index.ts:183 |
agent-preset/selected | emit | 'agent-preset/selected'(sessionId: SessionId, agentPreset: string): void | packages/preset/agent-presets/src/types.ts:13 |
agent/created | emit | 'agent/created'(this: Scoped<Agent>, payload: { agent: Agent }): void | packages/core/agent/src/runtime-types.ts:159 |
agent/disposed | emit | 'agent/disposed'(this: Scoped<Agent>, payload: { agent: Agent }): void | packages/core/agent/src/runtime-types.ts:168 |
agent/error | emit | 'agent/error'(this: Scoped<Agent>, payload: { agent: Agent; turn: number; step: number; error: unknown }): void | packages/core/agent/src/runtime-types.ts:290 |
agent/inbox/claimed | emit | 'agent/inbox/claimed'(this: Scoped<Agent>, payload: { agent: Agent; message: UserMessage; turn: number }): void | packages/core/agent/src/runtime-types.ts:197 |
agent/inbox/discarded | emit | 'agent/inbox/discarded'(this: Scoped<Agent>, payload: { agent: Agent; message: UserMessage }): void | packages/core/agent/src/runtime-types.ts:205 |
agent/inbox/inserted | emit | 'agent/inbox/inserted'(this: Scoped<Agent>, payload: { agent: Agent; message: UserMessage }): void | packages/core/agent/src/runtime-types.ts:186 |
agent/pre-step | waterfall | 'agent/pre-step'(this: Scoped<Agent>, payload: { agent: Agent; messages: UserMessage[]; turn: number; step: number; signal: AbortSignal }, next: () => Promise<PreStepDecision>): Promise<PreStepDecision> | packages/core/agent/src/runtime-types.ts:231 |
agent/request | waterfall | 'agent/request'(this: Scoped<Agent>, payload: { agent: Agent; turn: number; step: number; signal: AbortSignal }, next: () => Promise<LlmCallConfig>): Promise<LlmCallConfig> | packages/core/agent/src/runtime-types.ts:244 |
agent/request-error | waterfall | 'agent/request-error'(this: Scoped<Agent>, payload: { agent: Agent; turn: number; step: number; provider: string; failure: LlmFailure; retryPolicy: ResolvedRetryPolicy | undefined; signal: AbortSignal }, next: () => Promise<RequestErrorAction>): Promise<RequestErrorAction> | packages/core/agent/src/runtime-types.ts:260 |
agent/session-start | emit | 'agent/session-start'(this: Scoped<Agent>, payload: { agent: Agent; source: SessionStartSource }): void | packages/core/agent/src/runtime-types.ts:217 |
agent/status | emit | 'agent/status'(this: Scoped<Agent>, payload: { agent: Agent; status: AgentStatus }): void | packages/core/agent/src/runtime-types.ts:178 |
agent/turn-stopping | serial | 'agent/turn-stopping'(this: Scoped<Agent>, payload: { agent: Agent; turn: number; signal: AbortSignal }): Promise<void> | void | packages/core/agent/src/runtime-types.ts:278 |
approval/request | waterfall | 'approval/request'(this: Scoped<ApprovalService>, req: ApprovalRequest, next: () => Promise<ApprovalOutcome>): Promise<ApprovalOutcome> | packages/interaction/user-approval/src/index.ts:30 |
commands/change | emit | 'commands/change'(): void | packages/interaction/commands/src/types.ts:72 |
cordis/dynamic-package | emit | 'cordis/dynamic-package'(pkg: DynamicCordisPackage): void | packages/extensions/cordis-host-runner/src/types.ts:379 |
cordis/dynamic-retract | emit | 'cordis/dynamic-retract'(retracted: DynamicCordisRetracted): void | packages/extensions/cordis-host-runner/src/types.ts:385 |
cordis/inspect-query | emit | 'cordis/inspect-query'(request: CordisInspectQueryRequest): void | packages/extensions/cordis-host-runner/src/types.ts:391 |
cordis/inspect-query-resolved | emit | 'cordis/inspect-query-resolved'(resolved: CordisInspectQueryResolved): void | packages/extensions/cordis-host-runner/src/types.ts:397 |
cordis/request-run | emit | 'cordis/request-run'(request: DynamicCordisRunRequest): void | packages/extensions/cordis-host-runner/src/types.ts:367 |
cordis/request-run-resolved | emit | 'cordis/request-run-resolved'(resolved: DynamicCordisRequestResolved): void | packages/extensions/cordis-host-runner/src/types.ts:373 |
credentials/updated | emit | 'credentials/updated'(ref: CredentialRef): void | packages/credentials/credentials/src/types.ts:29 |
domain/changed | emit | 'domain/changed'(change: DomainChanged): void | packages/storage/storage-domain/src/events.ts:46 |
fs/edit-intent | waterfall | 'fs/edit-intent'(target: FsTarget, actor: object | undefined, next: () => { version: FsVersion } | undefined | Promise<{ version: FsVersion } | undefined>): Promise<{ version: FsVersion } | undefined> | packages/fs/fs/src/index.ts:66 |
fs/observed | emit | 'fs/observed'(target: FsTarget, observation: FsObservation, actor: object | undefined): void | packages/fs/fs/src/index.ts:76 |
fs/write-intent | waterfall | 'fs/write-intent'(target: FsTarget, actor: object | undefined, next: () => FsWriteIntent | undefined | Promise<FsWriteIntent | undefined>): Promise<FsWriteIntent | undefined> | packages/fs/fs/src/index.ts:58 |
goal/changed | emit | 'goal/changed'(this: import('@deepseek-ai/dsh-scope').Scoped<Agent>, payload: { agent: Agent; change: GoalChanged }): void | packages/goal/goal/src/domain.ts:114 |
llm/adapters-updated | emit | 'llm/adapters-updated'(): void | packages/llm/llm/src/types.ts:23 |
llm/stream | waterfall | 'llm/stream'(this: LlmRuntime, options: GenerateOptions, next: () => AsyncIterable<StreamChunk>): AsyncIterable<StreamChunk> | packages/llm/llm/src/index.ts:64 |
session-telemetry/record | waterfall | 'session-telemetry/record'(record: SessionTelemetryRecord, next: () => SessionTelemetryRecord): SessionTelemetryRecord | packages/session/session-telemetry/src/index.ts:43 |
session/created | emit | 'session/created'(this: Scoped<Session>, session: Session): void | packages/core/session/src/index.ts:54 |
session/disposed | emit | 'session/disposed'(this: Scoped<Session>, session: Session): void | packages/core/session/src/index.ts:64 |
session/event | emit | 'session/event'(this: Scoped<Session>, session: Session, event: SessionEvent): void | packages/core/session/src/index.ts:76 |
session/flush | parallel | 'session/flush'(this: Scoped<Session>, session: Session): Promise<void> | void | packages/core/session/src/index.ts:85 |
settings/document-updated | emit | 'settings/document-updated'(ns: SettingsNamespace, revision: number): void | packages/settings/settings/src/types.ts:48 |
settings/updated | emit | 'settings/updated'(ns: SettingsNamespace, next: unknown, prev: unknown, source: SettingsUpdateSource): void | packages/settings/settings/src/types.ts:35 |
skills/change | emit | 'skills/change'(): void | packages/skill/skill/src/index.ts:297 |
subagent/end | emit | 'subagent/end'(this: Scoped<SubagentRuntime>, info: SubagentRunEndInfo): void | packages/subagent/subagent/src/index.ts:166 |
subagent/provider-added | emit | 'subagent/provider-added'(provider: SubagentProvider): void | packages/subagent/subagent/src/index.ts:140 |
subagent/provider-removed | emit | 'subagent/provider-removed'(name: string): void | packages/subagent/subagent/src/index.ts:146 |
subagent/start | emit | 'subagent/start'(this: Scoped<SubagentRuntime>, info: SubagentRunInfo): void | packages/subagent/subagent/src/index.ts:157 |
system-prompt/assemble | waterfall | 'system-prompt/assemble'(this: Scoped<SystemPrompt>, assembly: PromptAssembly, context: AssembleContext, next: () => Promise<PromptAssembly>): Promise<PromptAssembly> | packages/core/system-prompt/src/index.ts:31 |
system-prompt/change | emit | 'system-prompt/change'(): void | packages/core/system-prompt/src/index.ts:37 |
tools/change | emit | 'tools/change'(): void | packages/core/tools/src/index.ts:207 |
tools/code-dispatch-log | waterfall | 'tools/code-dispatch-log'(this: Scoped<ToolRuntime>, dispatch: CodeDispatchLog, next: () => Promise<ContentBlock[]>): Promise<ContentBlock[]> | packages/core/tools/src/index.ts:189 |
tools/execute | waterfall | 'tools/execute'(this: Scoped<ToolRuntime>, exec: ToolDispatchExecution, next: () => Promise<ToolExecutionResult>): Promise<ToolExecutionResult> | packages/core/tools/src/index.ts:163 |
tools/post-execute | waterfall | 'tools/post-execute'(this: Scoped<ToolRuntime>, exec: ToolExecution, result: Readonly<ToolExecutionResult>, next: () => Promise<PostToolDecision>): Promise<PostToolDecision> | packages/core/tools/src/index.ts:175 |
tools/pre-execute | waterfall | 'tools/pre-execute'(this: Scoped<ToolRuntime>, exec: ToolExecution, next: () => Promise<PreToolDecision>): Promise<PreToolDecision> | packages/core/tools/src/index.ts:152 |
tools/result | emit | 'tools/result'(this: Scoped<ToolRuntime>, exec: Readonly<ToolExecution>, result: Readonly<ToolExecutionResult>): undefined | packages/core/tools/src/index.ts:197 |
workflow/agent-end | emit | 'workflow/agent-end'(info: WorkflowRunInfo, agent: WorkflowAgentEndInfo): void | packages/workflow/workflow/src/index.ts:79 |
workflow/agent-start | emit | 'workflow/agent-start'(info: WorkflowRunInfo, agent: WorkflowAgentInfo): void | packages/workflow/workflow/src/index.ts:68 |
workflow/end | emit | 'workflow/end'(info: WorkflowRunInfo, result: WorkflowResultInfo): void | packages/workflow/workflow/src/index.ts:89 |
workflow/log | emit | 'workflow/log'(info: WorkflowRunInfo, message: string): void | packages/workflow/workflow/src/index.ts:58 |
workflow/phase | emit | 'workflow/phase'(info: WorkflowRunInfo, title: string): void | packages/workflow/workflow/src/index.ts:51 |
workflow/start | emit | 'workflow/start'(info: WorkflowRunInfo): void | packages/workflow/workflow/src/index.ts:43 |
Cordis Host Service · 56
| Service | 类别 | 公开方法 | 固定源码 |
|---|---|---|---|
agentDefaultModelAgentDefaultModelConfig | concrete | currentSelection(): ModelSelectionasync saveSelection(next: ModelSelection): Promise<void> | packages/core/agent-default-model/src/index.ts:64 |
agentLoopAgentLoop | concrete | readonly config: ResolvedConfigcreate(id: SessionId, options: AgentOptions = {}, meta: Pick<SessionHeader, 'cwd'> = {}): Agentasync createAgent(ownerCtx: Context, options: CreateAgentOptions): Promise<AgentHandle>async resume(ownerCtx: Context, options: ResumeAgentOptions): Promise<AgentHandle> | packages/core/agent-loop/src/index.ts:296 |
agentPresetsAgentPresets | concrete | async list(): Promise<AgentPreset[]>async resolve(id?: string): Promise<AgentPreset>async mount(agentCtx: Context, id?: string): Promise<AgentPreset>composeFrom(agentCtx: Context, parentCtx: Context): string | undefinedcomposedPreset(agentCtx: Context): string | undefinedasync read(id: string): Promise<string>async copy(from: string, id: string, name?: string): Promise<void>async remove(id: string): Promise<void>serviceFor<K extends string & keyof Context>(agent: { ctx: Context }, name: K): Context[K] | undefinedasync recompose(agentCtx: Context, id: string): Promise<AgentPreset>async standingKeyFor(id?: string): Promise<ScopeKey> | packages/preset/agent-presets/src/index.ts:82 |
agentsAgentRegistry | concrete | currentInitiator(): Agent | undefinedrequireInitiator(): AgentwithInitiator<T>(agent: Agent, operation: () => T): TwithoutInitiator<T>(operation: () => T): TsetFactory(factory: AgentFactory): () => voidasync create(options: CreateAgentOptions): Promise<AgentHandle>async resume(options: ResumeAgentOptions): Promise<AgentHandle>register(agent: Agent): () => voidenter(agent: Agent, owner: Agent | undefined): () => voidannounce(agent: Agent): voidget(id: SessionId): Agent | undefinedisOwnedBy(id: SessionId, owner: Agent): booleanlist(): Agent[]roots(): Agent[] | packages/core/agent/src/index.ts:256 |
apiProxyApiProxy | concrete | downloads: DownloadsApirespond(message: ClientResponse): Promise<RpcReceipt> | packages/host/apiproxy/src/api/index.ts:22 |
approvalApprovalService | concrete | setPolicy(agent: Agent, policy: ApprovalPolicy): voidasync request(req: ApprovalRequest): Promise<ApprovalOutcome>overrideOf(session: Session): ApprovalPolicy | undefined | packages/interaction/user-approval/src/index.ts:192 |
attachmentsAttachmentStore | abstract | abstract readonly imageLimits: ImageAttachmentLimitsabstract validateImage(input: SaveImageAttachment): Promise<void>abstract saveImage(input: SaveImageAttachment): Promise<ImageAttachmentRef>abstract readImage(ref: ImageAttachmentRef, signal?: AbortSignal): Promise<StoredImageAttachment> | packages/attachment/attachment/src/index.ts:29 |
clientModulesClientModuleRegistry | concrete | graph(): WebBootGraphclientPath(id: string): string | undefinedrebuilt(id: string): string | undefinedonRebuilt(listener: (id: string, rev: string) => void): () => voidonGraphChanged(listener: () => void): () => void | packages/client/modules/src/index.ts:184 |
codeRuntimeCodeRuntime | abstract | abstract readonly language: stringabstract readonly isolation: stringabstract run(request: CodeRunRequest): Promise<CodeRunResult> | packages/code-runtime/code-runtime/src/index.ts:102 |
commandsCommandRuntime | concrete | register(definition: CommandDefinition): () => void@Remote list(agent: Agent): readonly CommandDescriptor[]find(agent: Agent, name: string): CommandDefinition | undefined@Remote async execute( agent: Agent, line: string, signal: AbortSignal, ): Promise<CommandExecution | undefined> | packages/interaction/commands/src/index.ts:225 |
compactionCompactionEngine | abstract | abstract compactIfNeeded( agent: CompactionAgentContext, trigger: CompactionTrigger, signal: AbortSignal, ): Promise<CompactionResult | null>abstract compactNow( agent: ManualCompactAgentContext, signal: AbortSignal, sourceCommandId?: CommandId, ): Promise<CompactionResult | null>abstract compactRegion( start: number, end: number, agent: CompactionAgentContext, signal?: AbortSignal, ): Promise<CompactionResult> | packages/compaction/compaction/src/index.ts:96 |
cordisInspectCordisInspectRegistryService | concrete | register(registration: HostCordisInspectProviderRegistration): () => voidsyncClientManifest(providers: readonly CordisInspectProviderManifest[]): voidlist(): CordisInspectProviderView[]async query( platform: CordisInspectPlatform, providerId: string, methodName: string, input: JsonValue | undefined, agent: Agent, signal: AbortSignal, ): Promise<JsonValue>resolveClientQuery( agent: Agent, requestId: CordisInspectRequestId, resolution: CordisInspectQueryResolution, ): CordisInspectResolveAck | packages/extensions/cordis-host-runner/src/inspect-registry.ts:46 |
credentialsCredentialProvider | abstract | abstract resolve(ref: CredentialRef): Promise<ResolvedCredential | undefined>abstract describe(ref: CredentialRef): Promise<CredentialInfo>abstract set(ref: CredentialRef, value: string): Promise<void>abstract unset(ref: CredentialRef): Promise<void> | packages/credentials/credentials/src/index.ts:60 |
directoryPickerDirectoryPicker | abstract | abstract capability(): DirectoryPickerCapability | packages/host/directory-picker/src/index.ts:131 |
dynamicCordisRunnerDynamicCordisRunnerService | concrete | define(request: DynamicCordisDefineRequest): DynamicCordisDefineReceiptasync undefine(agent: Agent, pluginId: CordisDynamicPluginId): Promise<DynamicCordisUndefineReceipt>@Remote('undefineFromPanel') async undefineFromPanel(agent: Agent, pluginId: CordisDynamicPluginId): Promise<DynamicCordisUndefineReceipt>async run( agent: Agent, pluginId: CordisDynamicPluginId, packageId: CordisDynamicPackageId, mode: CordisDynamicRunMode, signal?: AbortSignal, ): Promise<DynamicCordisRunResponse>@Remote('runHostHalf') async runHostHalf( agent: Agent, pluginId: CordisDynamicPluginId, packageId: CordisDynamicPackageId, mode: CordisDynamicRunMode, requestId: ApprovalRequestId | null, approveFutureVersions: boolean, ): Promise<DynamicCordisHostHalfResult>@Remote('getClientCode') getClientCode( agent: Agent, pluginId: CordisDynamicPluginId, pluginRunId: CordisDynamicPluginRunId, ): DynamicCordisClientSource@Remote('resolveRequestRun') async resolveRequestRun( requestId: ApprovalRequestId, resolution: DynamicCordisRunResolution, ): Promise<DynamicCordisResolveAck>@Remote('settleUserRun') async settleUserRun( agent: Agent, pluginId: CordisDynamicPluginId, resolution: DynamicCordisRunResolution, ): Promise<DynamicCordisRunResponse>async stop(agent: Agent, pluginId: CordisDynamicPluginId): Promise<DynamicCordisStopResponse>@Remote('stopFromPanel') async stopFromPanel(agent: Agent, pluginId: CordisDynamicPluginId): Promise<DynamicCordisStopResponse>@Remote('syncInspectManifest') syncInspectManifest(providers: readonly CordisInspectProviderManifest[]): null@Remote('resolveInspectQuery') resolveInspectQuery( agent: Agent, requestId: CordisInspectRequestId, resolution: CordisInspectQueryResolution, ): CordisInspectResolveAck@Remote('inventory') inventory(): DynamicCordisInventoryRow[]snapshot(agent: Agent): DynamicCordisSnapshotRow[]reference(agent: Agent, pluginId: CordisDynamicPluginId): DynamicCordisReference | undefinedlistPlugins(agent: Agent): DynamicCordisPluginInspection[]inspectPlugin(agent: Agent, pluginId: CordisDynamicPluginId): DynamicCordisPluginInspectioninspectPackage( agent: Agent, pluginId: CordisDynamicPluginId, packageId: CordisDynamicPackageId, ): DynamicCordisPackageInspection@Remote('reportRenderFailure') async reportRenderFailure( agent: Agent, pluginId: CordisDynamicPluginId, pluginRunId: CordisDynamicPluginRunId, failure: DynamicCordisRenderFailure, ): Promise<null>@Remote('reportClientGuardFailure') async reportClientGuardFailure( agent: Agent, pluginId: CordisDynamicPluginId, pluginRunId: CordisDynamicPluginRunId, failure: CordisErrorDetails, ): Promise<null>@Remote('invoke') async invoke( pluginId: CordisDynamicPluginId, pluginRunId: CordisDynamicPluginRunId, method: string, args: JsonValue, ): Promise<DynamicCordisInvokeResult> | packages/extensions/cordis-host-runner/src/index.ts:124 |
e2bE2BRuntime | concrete | readonly cwd: stringreadonly runtimeRoot: stringasync getSandbox(): Promise<Sandbox> | packages/e2b/e2b/src/index.ts:74 |
fsFileSystem | abstract | abstract resolve(path: string, opts?: { cwd?: string; signal?: AbortSignal }): Promise<FsTarget>abstract processPath(target: FsTarget): stringabstract fileUrl(target: FsTarget): stringabstract contains(parent: FsTarget, child: FsTarget): booleanabstract stat(target: FsTarget, signal?: AbortSignal): Promise<FsInfo | undefined>abstract lstat(path: string, opts?: { cwd?: string }, signal?: AbortSignal): Promise<FsPathInfo | undefined>abstract readText(target: FsTarget, signal?: AbortSignal): Promise<string>abstract streamText(target: FsTarget, signal?: AbortSignal): Promise<AsyncIterable<string>>abstract readBytes(target: FsTarget, signal: AbortSignal | undefined, maxBytes: number): Promise<Uint8Array>abstract listDir(target: FsTarget, signal?: AbortSignal): Promise<FsDirEntry[]>abstract writeText( target: FsTarget, content: string, expected?: FsWriteIntent, signal?: AbortSignal, sandboxPolicy?: SandboxExecutionPolicy, ): Promise<FsWriteOutcome>abstract editText( target: FsTarget, edit: FsEditRequest, expected?: { version: FsVersion }, signal?: AbortSignal, sandboxPolicy?: SandboxExecutionPolicy, ): Promise<FsEditOutcome> | packages/fs/fs/src/index.ts:86 |
goalsGoalService | concrete | get(agent: Agent): GoalView | undefineddisarm(agent: Agent): GoalView | undefinedcreate(agent: Agent, request: CreateGoalRequest): GoalView@Remote('edit') edit(agent: Agent, ref: GoalRef, request: EditGoalRequest): GoalView@Remote('pause') pause(agent: Agent, ref: GoalRef): GoalView@Remote('resume') resume(agent: Agent, ref: GoalRef): GoalView@Remote('complete') complete(agent: Agent, ref: GoalRef): GoalViewblock(agent: Agent, ref: GoalRef, reason: GoalBlockReason): GoalView@Remote('clear') clear(agent: Agent, ref: GoalRef): GoalRef@Remote('create') remoteExportCreate(agent: Agent, request: CreateGoalRequest): CreateGoalResult | packages/goal/goal/src/index.ts:183 |
invariantsInvariantRegistry | concrete | register(packageName: string, installer: InvariantInstaller): () => void | packages/runtime-diagnostics/invariants/src/index.ts:94 |
jobsJobRegistry | abstract | abstract start(spec: JobStart): JobIdabstract list(caller?: Agent): JobSnapshot[]abstract get(id: JobId, caller?: Agent): JobSnapshotabstract read(id: JobId, caller?: Agent): JobReadabstract kill(id: JobId, caller?: Agent, reason?: string): 'requested' | 'already-finished'abstract wait(id: JobId, timeoutMs: number, caller?: Agent, signal?: AbortSignal): Promise<JobSnapshot>abstract onJobDone(listener: JobDoneListener): () => voidabstract onJobsChanged(listener: JobsChangedListener): () => voidabstract attachController(name: string): () => void | packages/jobs/jobs/src/index.ts:62 |
llmLlmRuntime | concrete | registerAdapter(providers: string[], adapter: LlmAdapter): AdapterRegistrationHandlelistProviders(): LlmProviderInfo[]registerConfigurableProviders(entries: readonly LlmConfigurableProvider[]): DirectoryRegistrationHandlelistConfigurableProviders(): LlmConfigurableProvider[]registerModelDiscovery( settingsNs: string, discover: (request: LlmModelDiscoveryRequest) => Promise<readonly LlmDiscoveredModel[]>, ): () => voidasync discoverModels( settingsNs: string, request: LlmModelDiscoveryRequest, ): Promise<LlmDiscoveredModel[]>providerRetryPolicy(provider: string): ResolvedRetryPolicyasync listModels(provider: string): Promise<LlmModelInfo[]>async resolveModelInfo( provider: string, model: string, signal?: AbortSignal, ): Promise<LlmResolvedModelInfo>async resolveCallConfig(config: LlmCallConfig, signal?: AbortSignal): Promise<LlmCallConfig>async prepareCall(config: LlmCallConfig, signal?: AbortSignal): Promise<PreparedLlmCall>stream(options: GenerateOptions): AsyncIterable<StreamChunk> | packages/llm/llm/src/index.ts:284 |
lspLspService | concrete | registerProvider(provider: LspProvider): () => voidquery(request: LspQueryRequest, signal?: AbortSignal): Promise<LspQueryResult> | packages/lsp/lsp/src/types.ts:113 |
messageFeedbackMessageFeedbackService | concrete | @Remote('list') async list(request: MessageFeedbackListRequest): Promise<MessageFeedbackListResult>@Remote('put') put(request: MessageFeedbackPutRequest): Promise<MessageFeedbackPutResult>@Remote('delete') delete(request: MessageFeedbackDeleteRequest): Promise<MessageFeedbackDeleteResult> | packages/feedback/message-feedback/src/index.ts:150 |
permissionPresetsPermissionPresetService | concrete | current(events: readonly SessionEvent[]): stringselectFor(state: KnobState): PermissionSelectresolve(name: string): PresetSpecoptionOf(name: string): PresetOptionset(session: Session, name: string): void | packages/interaction/permission-presets/src/index.ts:159 |
planModePlanModeController | concrete | get(agent: Agent): { active: boolean; pending?: boolean }set(agent: Agent, active: boolean): 'committed' | 'queued' | 'cancelled' | 'noop' | packages/plan/plan-mode/src/index.ts:184 |
sandboxSandboxProvider | abstract | abstract confine(argv: readonly string[], policy: SandboxPolicy): ConfinedArgv | packages/sandbox/sandbox/src/index.ts:158 |
sandboxPolicySandboxPolicyService | concrete | readonly defaultMode: SandboxModereadonly workspaceRoot: stringresolve(request: SandboxPolicyRequest = {}): SandboxExecutionPolicyoverrideOf(session: Session): SandboxMode | undefined | packages/sandbox/sandbox-policy/src/index.ts:91 |
sessionPersistenceSessionPersistence | abstract | abstract locate(meta: SessionHeader): SessionLocation | undefinedabstract readonly supportsRawArtifacts: booleanreadRaw(_id: SessionId, signal?: AbortSignal): Promise<SessionRawArtifact | undefined>abstract create(meta: SessionHeader): Promise<void>abstract append(id: SessionId, events: readonly SessionEvent[]): Promise<void>async prepare(id: SessionId, signal?: AbortSignal): Promise<SessionPreparation>abstract load(id: SessionId): Promise<SessionInspection>abstract inspect(id: SessionId, signal?: AbortSignal): Promise<SessionInspection>abstract readFrom(id: SessionId, fromSeq: number, signal?: AbortSignal): Promise<{ meta: SessionHeader; events: SessionEvent[] }>abstract list(signal?: AbortSignal): Promise<SessionHeader[]>abstract listSnapshots(signal?: AbortSignal): Promise<SessionPersistenceSnapshot[]> | packages/session/session-persistence/src/index.ts:84 |
sessionProjectionCacheSessionProjectionCache | concrete | cachedSnapshot(meta: SessionHeader): ProjectionSnapshot | undefinedasync write(session: Session): Promise<void>async coldSnapshot(id: SessionId, signal?: AbortSignal): Promise<ProjectionSnapshot> | packages/session/session-projection-cache/src/index.ts:71 |
sessionProjectionsSessionProjectionRegistry | concrete | register<K extends keyof SessionProjectionMap, S>(definition: ProjectionDefinition<K, S>): () => voidonChanged(listener: ProjectionChangeListener): () => voidsnapshot(session: Session): ProjectionSnapshotcheckpoint(session: Session): ProjectionCheckpointrestoreFloor(checkpoint: ProjectionCheckpoint): number | undefinedviewCheckpoint(checkpoint: ProjectionCheckpoint): Partial<SessionProjectionMap>restore(checkpoint: ProjectionCheckpoint, events: readonly SessionEvent[], baseSeq: number): { snapshot: ProjectionSnapshot; checkpoint: ProjectionCheckpoint } | packages/session/session-projection/src/index.ts:171 |
sessionQuerySessionQueryEngine | abstract | abstract searchSessions( request: SessionSearchRequest, exec?: SessionSearchExecContext, ): Promise<SessionSearchPage<SessionSearchHit>>abstract searchEvents( request: SessionEventSearchRequest, exec?: SessionSearchExecContext, ): Promise<SessionEventSearchPage>listSessions(signal?: AbortSignal): Promise<SessionRecord[]>async readSession(sessionId: SessionId): Promise<SessionLogSnapshot>async filterSessions( filters: readonly SessionResultFilter[], signal?: AbortSignal, ): Promise<SessionRecord[]>async readTitle( sessionId: SessionId, signal?: AbortSignal, ): Promise<SessionTitleSnapshot | undefined>async readTitleSnapshot( sessionId: SessionId, signal?: AbortSignal, ): Promise<SessionTitleObservation>async readTitleSnapshots( sessionIds: readonly SessionId[], signal?: AbortSignal, ): Promise<SessionTitleObservationResult[]>async listEvents(sessionId: SessionId): Promise<SessionEventRecord[]>async filterEvents( sessionId: SessionId, filters: readonly SessionEventResultFilter[], ): Promise<SessionEventSearchDocument[]>async readSurface(sessionId: SessionId): Promise<SessionSurfaceSnapshot>async traceSession(sessionId: SessionId, signal?: AbortSignal): Promise<SessionLineageTrace>async traceEvent(request: SessionEventTraceRequest, signal?: AbortSignal): Promise<SessionEventTraceObservation>async readEvent(request: SessionEventReadRequest, signal?: AbortSignal): Promise<SessionEventWindow> | packages/session-query/session-query/src/index.ts:81 |
sessionReferenceResolverSessionReferenceResolver | concrete | async listCandidates( agent: Agent, query: string = '', limit: number = this.config.candidateLimit, signal?: AbortSignal, ): Promise<SessionReferenceCandidate[]>async prepare( agent: Agent, content: ContentBlock[], references: SessionReferenceInput[], signal?: AbortSignal, ): Promise<PreparedReferencedMessage> | packages/context/session-reference/src/index.ts:70 |
sessionsSessionStore | concrete | create(id?: SessionId, options?: CreateSessionOptions): Sessionprepare(id?: SessionId, options?: PrepareSessionOptions): Sessionenter(session: Session): () => voidannounce(session: Session): voidasync flush(session: Session): Promise<boolean>get(id: SessionId): Session | undefinedlist(): Session[]fork(source: SessionForkSource, boundary?: number, childSessionId?: SessionId): Session | packages/core/session/src/index.ts:792 |
sessionTelemetrySessionTelemetryBackend | abstract | abstract readonly sharing: SessionTelemetrySharingStatusabstract emit(record: SessionTelemetryRecord): voidflush?(): voidabstract shutdown(): Promise<void> | packages/session/session-telemetry/src/index.ts:148 |
sessionTitleSessionTitleService | concrete | get(session: Session): SessionTitleSnapshot | undefinedrename(session: Session, title: string): SessionTitleSnapshotasync refresh(session: Session, signal?: AbortSignal): Promise<SessionTitleSnapshot | undefined>register(provider: SessionTitleProvider): () => Promise<void> | packages/session/session-title/src/index.ts:261 |
settingsSettingsProvider | abstract | abstract readonly writable: booleanprepareDocument(): Promise<string | undefined>register<T>(ns: SettingsNamespace, schema: z<T>, options?: SettingsRegisterOptions<T>): SettingsScope<T>describe(options?: SettingsDescribeOptions): SettingsDescriptor[]get(ns: SettingsNamespace): unknownasync update(ns: SettingsNamespace, patch: object, expectedRevision?: number): Promise<void>async replace(ns: SettingsNamespace, section: object, expectedRevision?: number): Promise<void>async mutate(ns: SettingsNamespace, ops: readonly SettingsPathOp[], expectedRevision?: number): Promise<void> | packages/settings/settings/src/index.ts:350 |
shellShellExecutor | abstract | abstract resolve(request: ShellExecRequest): ShellExecSpecabstract run(spec: ShellExecSpec): Promise<ShellRunResult>abstract start(spec: ShellExecSpec): ShellProcess | packages/shell/shell/src/index.ts:65 |
shellEnvShellEnvRegistry | concrete | register(contributor: BashEnvContributor): () => voidcollect(execution: ToolExecution): DshEnvironmentlist(): BashEnvVariableInfo[] | packages/shell/shell-env/src/index.ts:89 |
skillsSkillRegistry | concrete | registerProvider(create: (control: SkillProviderControl) => SkillProvider): () => voidregister(skill: SkillRegistration): () => voidasync list(options: SkillViewOptions = {}): Promise<SkillSummary[]>async snapshot(options: SkillViewOptions = {}): Promise<SkillCatalogSnapshot>async get(name: string, options: SkillViewOptions = {}): Promise<SkillDefinition | undefined> | packages/skill/skill/src/index.ts:357 |
spillStoreSpillStore | abstract | abstract saveText(input: SaveTextSpill): Promise<SpillRef> | packages/spill/spill/src/index.ts:45 |
storageStorage | concrete | readonly backend: BackendRegistry = new BackendRegistry()mount<K extends keyof StorageForms>(form: K, facility: StorageForms[K]): () => voidform<K extends keyof StorageForms>(form: K): StorageForms[K] | packages/storage/storage/src/index.ts:47 |
storageDomainDomainFacility | concrete | async open<S extends DomainSpec>(spec: S): Promise<Domain<S>>get(name: string): DomainImpl | undefinedasync closeAll(): Promise<void> | packages/storage/storage-domain/src/index.ts:69 |
subagentsSubagentRuntime | concrete | async startContinuable(spec: ContinuableStartSpec): Promise<ContinuableStart>async followup( parent: Agent, childId: SessionId, content: ContentBlock[], options: SubagentFollowupOptions, ): Promise<MessageId>interrupt(targetSessionId: SessionId, authority: SubagentInterruptAuthority): voidasync reportFrom( child: Agent, content: ContentBlock[], options: SubagentReportOptions, ): Promise<MessageId>registerContinuableSetup(contribution: ContinuableSetupContribution): () => voidasync drainContinuableDescendants(parents: readonly Agent[]): Promise<void>listChildren(parentSessionId: SessionId, signal?: AbortSignal): Promise<SubagentListEntry[]>listDescendants(rootSessionId: SessionId, signal?: AbortSignal): Promise<SubagentDescendantListEntry[]>registerProvider(provider: SubagentProvider): () => voidgetProvider(name: string): SubagentProvider | undefinedlist(): string[]async start(name: string, request: SubagentStartRequest): Promise<SubagentRun> | packages/subagent/subagent/src/index.ts:171 |
subprocessSubprocessRuntime | abstract | abstract resolveExecutable( command: string, env?: Readonly<Record<string, string>>, signal?: AbortSignal, ): Promise<string>abstract spawn(spec: SubprocessSpawnSpec): SubprocessHandleabstract spawnTerminal(spec: SubprocessTerminalSpawnSpec): Promise<SubprocessTerminalHandle> | packages/subprocess/subprocess/src/index.ts:102 |
systemPromptSystemPrompt | concrete | section(section: PromptSection): () => voidcontext(context: PromptContext): () => voidsuppressRuntimeContext(): () => voidtools(provider: (context: AssembleContext) => ToolProviderResult): () => voidvariable(name: string, provider: (context: AssembleContext) => string | undefined): () => voidasync assemble(context: AssembleContext = {}): Promise<PromptAssembly> | packages/core/system-prompt/src/index.ts:338 |
terminalsTerminalSessionService | concrete | registerBackend(backend: TerminalBackend): () => voidlistBackends(): string[]async spawn(owner: Agent, request: TerminalSpawnRequest, signal?: AbortSignal): Promise<TerminalSpawnResult>hasOwnerActivity(owner: Agent): booleanstartSend(owner: Agent, id: TerminalSessionId, request: TerminalSendRequest): TerminalSendOperationread(owner: Agent, id: TerminalSessionId, request: TerminalReadRequest = {}): TerminalReadResultsignal(owner: Agent, id: TerminalSessionId, signal: TerminalSignal): Promise<TerminalSignalResult>async kill(owner: Agent, id: TerminalSessionId, reason: string = 'model request'): Promise<boolean>list(owner: Agent): TerminalSessionSnapshot[] | packages/terminal/terminal/src/index.ts:105 |
tokenMeterTokenMeter | concrete | measure(session: Session, requestHeader?: EpochHeader): TokenMeasurementestimateMessage(message: Message): number | packages/llm/token-meter/src/index.ts:74 |
toolResultPrunerToolResultPruner | concrete | readonly config: ResolvedConfigmeasureContent(blocks: readonly ContentBlock[]): numberpruneContent(blocks: readonly ContentBlock[]): ContentBlock[] | nullpruneSession(session: Session): PruneResult | packages/compaction/compaction-tool-result-pruner/src/index.ts:44 |
toolsToolRuntime | concrete | presentAs(mode: ToolPresentationMode): () => voidregister(definition: ToolDefinition): () => voidrestrict(filter: ToolRestriction): () => voidguard(guard: ToolGuard): () => voidget(name: string, scope?: ScopeKey): ToolDefinition | undefinedschemas(scope?: ScopeKey): ToolSchema[]executionMode(exec: ToolExecutionInput): ToolExecutionModeasync execute(exec: ToolExecutionInput): Promise<ToolExecutionResult> | packages/core/tools/src/index.ts:787 |
typertTypertRegistry | concrete | register(contribution: TypertContribution): TypertDisposerget(key: string): TypertSchemaRecord | undefinedresolve(key: string): TypertSchemaRecordlist(filter: TypertSchemaFilter = {}): TypertSchemaRecord[]getPackage(packageName: string, face: TypertFace = 'host'): TypertPackageRecord | undefinedlistPackages(filter: TypertPackageFilter = {}): TypertPackageRecord[]toJSONSchema(key: string, params?: z.core.ToJSONSchemaParams): z.core.JSONSchema.BaseSchema | packages/typert/registry/src/service.ts:446 |
typertGatewayTypertGatewayService | concrete | async invoke(request: InvokeRemoteRequest): Promise<unknown> | packages/api/gateway/src/index.ts:90 |
userQuestionsUserQuestionService | concrete | registerProvider(provider: UserQuestionProvider): () => voidasync ask(request: AskUserQuestionRequest): Promise<AskUserQuestionAnswer> | packages/interaction/user-questions/src/index.ts:51 |
webWebRuntime | concrete | registerSearchProvider(provider: WebSearchProvider): () => voidregisterFetchProvider(provider: WebFetchProvider): () => voidasync search(request: WebSearchRequest, signal?: AbortSignal): Promise<WebSearchResult>async fetch(request: WebFetchRequest, signal?: AbortSignal): Promise<WebFetchResult> | packages/web/web/src/index.ts:74 |
webServerWebServer | concrete | register(route: WebRoute): () => voidregisterUpgrade(route: WebUpgradeRoute): () => voidregisterFallback(handler: WebRoute['handler']): () => voidtapIndex(transform: (html: string) => string): () => voidapplyIndexTaps(html: string): string | packages/host/webserver/src/index.ts:59 |
workflowEngineWorkflowEngine | abstract | abstract start(request: WorkflowStartRequest): WorkflowRun | packages/workflow/workflow/src/index.ts:157 |
workspaceRegistryWorkspaceRegistry | concrete | async create(path: string, title?: string): Promise<Workspace>get(id: WorkspaceId): Workspace | undefinedlist(): Workspace[]delete(id: WorkspaceId): Promise<boolean>insertBefore(id: WorkspaceId, beforeId?: WorkspaceId): Promise<readonly WorkspaceId[]>archiveSession(sessionId: SessionId): Promise<void>async resolveByPath(path: string): Promise<Workspace | undefined> | packages/workspace/workspace/src/index.ts:92 |
9. 限制与复现
这些索引只在具名结构化全集内提供确定性导航。它们不证明仓库符号全覆盖、文件全覆盖、下游插件事件覆盖、Claim 覆盖或证明质量。若基线漂移、双语引用漂移、ID 未知、源码行号无效、身份重复或出现自引污染,重新生成会失败。
node scripts/generate-ch35.mjs --analysis-root . --upstream-root ../deepseek-harness --output-root .- 已校验固定基线及每条目录路径/行号范围。
- 计数前已比较双语引用序列。
- 第 35 章已排除,生成 Fragment 不含引用标签。
我的学习体会
内容仅自动保存到当前浏览器,不上传、不进入仓库。你可以导出 Markdown 自行归档。