@sema-ai/core 1.277.0 → 1.277.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -5
- package/dist/bench/metrics.js +1 -1
- package/dist/bench/metrics.js.map +1 -1
- package/dist/core/cache-break-detector.js +0 -0
- package/dist/core/cache-break-detector.js.map +1 -1
- package/dist/tools/gitea-issue.d.ts +1 -1
- package/dist/tools/gitea-issue.d.ts.map +1 -1
- package/package.json +1 -6
- package/CHANGELOG.md +0 -5455
- package/docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md +0 -181
- package/docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md +0 -100
- package/docs/ANCHOR-GAP-INVENTORY-2026-07-09.md +0 -143
- package/docs/ARCHITECTURE.md +0 -125
- package/docs/BUGHUNT-2026-07-05-NIGHT.md +0 -98
- package/docs/BUILD.md +0 -63
- package/docs/CANCEL-ASYNC-ATTRIBUTION-2026-07-09.md +0 -98
- package/docs/CC-198-VS-201-DRIFT-2026-07-09.md +0 -70
- package/docs/CC-BASELINE-FAKE-ZERO-AUDIT-2026-07-09.md +0 -51
- package/docs/CC-DRIFT-198-206-AGENT-TYPES-2026-07-10.md +0 -82
- package/docs/CC-DRIFT-198-206-CHANGELOG-2026-07-10.md +0 -82
- package/docs/CC-DRIFT-198-206-REMINDERS-2026-07-10.md +0 -96
- package/docs/CC-DRIFT-198-206-ROADMAP-2026-07-10.md +0 -110
- package/docs/CC-DRIFT-198-206-TOOL-INVENTORY-2026-07-10.md +0 -53
- package/docs/CC-DRIFT-198-206-USAGE-CONSTANTS-2026-07-10.md +0 -64
- package/docs/CC-DRIFT-198-206-WORKFLOW-2026-07-10.md +0 -83
- package/docs/CC-PARITY-CHECKLIST.md +0 -220
- package/docs/CC-PARITY-DEEP-SWEEP-2026-07-07.md +0 -149
- package/docs/CC-SUBAGENT-PROMPT-STUDY-2026-07-09.md +0 -219
- package/docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md +0 -396
- package/docs/CC-TOOL-PARITY-SWEEP-2026-07.md +0 -56
- package/docs/CC-TOOL-PROMPT-DEEP-DIFF-2026-07-08.md +0 -274
- package/docs/CC-TOOLSURFACE-DEEP-DIVE-2026-07-07.md +0 -197
- package/docs/CC206-OBSERVER-ANCHORS-2026-07-11.md +0 -463
- package/docs/CC207-CORE-SWEEP-BACKLOG-2026-07-12.md +0 -155
- package/docs/CENTER-CONTROL-PLANE-SEAM.md +0 -86
- package/docs/CLEANUP-CONTRACT-ANCHOR-2026-07-09.md +0 -83
- package/docs/COLD-START-RSI-2026-07-09.md +0 -72
- package/docs/COMPACTION-LIVE-AUDIT-2026-07-09.md +0 -114
- package/docs/CONTEXT-lifecycle-extension-points-and-stop-attribution.md +0 -71
- package/docs/COREWARS-POLYGLOT-TRIAGE-2026-07-09.md +0 -85
- package/docs/DEADTARGET-OVERFULL-HBOX-2026-07-10.md +0 -92
- package/docs/DEADTARGET-PATH-TRACING-REVERSE-2026-07-10.md +0 -87
- package/docs/DEADTARGET-WINNING-AVG-COREWARS-2026-07-10.md +0 -96
- package/docs/DEEPSEEK-API-LIMITS-PROBE-2026-07-09.md +0 -118
- package/docs/DESIGN-140-MOCK-VERIFY-2026-07-11.md +0 -79
- package/docs/DESIGN-140-VERIFICATION-2026-07-11.md +0 -43
- package/docs/DESIGN-DRAFT-workflow-collab-2026-07-11.md +0 -56
- package/docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md +0 -167
- package/docs/DESIGN-TFRAG-RECONCILE-SCAFFOLD-2026-07-09.md +0 -102
- package/docs/EXP-PA2-PE-DESIGN-2026-07-11.md +0 -220
- package/docs/EXT-DOGFOOD-2026-07-12.md +0 -50
- package/docs/FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md +0 -44
- package/docs/FRAG-RECON-INVESTIGATION-2026-07-09.md +0 -183
- package/docs/HANDOFF.md +0 -121
- package/docs/KNOWN-ISSUES.md +0 -96
- package/docs/LEGW-WINDOW-TAX-2026-07-10.md +0 -82
- package/docs/LIVE-PROBE-BATCH-2026-07-11.md +0 -207
- package/docs/M2-CERT-ATTRIBUTION-2026-07-10.md +0 -61
- package/docs/M25-LEG-VARIANCE-ATTRIBUTION-2026-07-10.md +0 -81
- package/docs/MAILMAN-TIMEOUT-ATTRIBUTION-2026-07-10.md +0 -88
- package/docs/MEMORY-BACKEND-DIALECT-NOTES.md +0 -69
- package/docs/MTEB-ESCAPE-HATCH-ATTRIBUTION-2026-07-09.md +0 -57
- package/docs/MTEB-LEADERBOARD-ATTRIBUTION-2026-07-10.md +0 -134
- package/docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md +0 -28
- package/docs/PARITY-CONTEXT-TRANSACTIONS-2026-07-10.md +0 -67
- package/docs/PARITY-PROGRESS-MATRIX-2026-07-10.md +0 -37
- package/docs/PARITY-SPOT-AGENT-TYPES-2026-07-10.md +0 -70
- package/docs/PARITY-SPOT-REMINDERS-2026-07-10.md +0 -144
- package/docs/PARITY-SPOT-TOOL-INVENTORY-2026-07-10.md +0 -61
- package/docs/PARITY-SPOT-USAGE-CONSTANTS-2026-07-10.md +0 -95
- package/docs/PARITY-SPOT-WORKFLOW-2026-07-10.md +0 -93
- package/docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md +0 -62
- package/docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md +0 -124
- package/docs/REPL-CODE-MODE-EVALUATION-2026-07-10.md +0 -187
- package/docs/REPORT-1249-TARGETED.md +0 -48
- package/docs/RESEARCH-3P-MEMORY-SWAP-2026-07-12.md +0 -273
- package/docs/ROADMAP.md +0 -111
- package/docs/RSI-CLOUD-DEPLOY-2026-07-06.md +0 -289
- package/docs/RSI-PROCESS-AI-COLDSTART-2026-07-11.md +0 -68
- package/docs/S18-THOROUGHNESS-AUDIT-2026-07-09.md +0 -113
- package/docs/SERVICE-INTEGRATION-GUIDE.md +0 -298
- package/docs/SUBAGENT-STREAM-RESILIENCE-PARITY-2026-07-10.md +0 -118
- package/docs/SWEBENCH-PRO-RECON-2026-07-11.md +0 -31
- package/docs/TB-EFFICIENCY-TELEMETRY-2026-07-08.md +0 -114
- package/docs/TB-FAILURE-AUTOPSY-2026-07-05-RERUN.md +0 -67
- package/docs/TB-FAIRNESS-AUDIT-2026-07-08.md +0 -141
- package/docs/TB-FULL-1257-2026-07-08.md +0 -77
- package/docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md +0 -154
- package/docs/TB-REGRESSION-DAEMON-KILL-2026-07-08.md +0 -58
- package/docs/TB-RSI-CROSSCHECK-2026-07-06.md +0 -68
- package/docs/TB-RSI-LEDGER.md +0 -30
- package/docs/TB-STABLE-SET-2026-07-08.md +0 -127
- package/docs/TB21-RECON-2026-07-11.md +0 -28
- package/docs/TEST-DESIGN-BATCH-1-2-3.md +0 -97
- package/docs/THIRD-PARTY-INTEGRATION.md +0 -45
- package/docs/TOKEN-ESTIMATE-CALIBRATION-LIVE-2026-07-09.md +0 -102
- package/docs/audit-2026-06-10-/347/254/254/344/272/214/350/275/256-/347/251/272/347/231/275/345/214/272/344/270/216/345/277/230/346/216/245/347/272/277.md +0 -147
- package/docs/audit-2026-06-10-/350/256/241/347/256/227bug/346/211/253/346/217/217.md +0 -163
- package/docs/audit-2026-06-11-/344/277/256/345/244/215/345/244/215/345/256/241/344/270/216/345/233/236/345/275/222/344/270/223/346/211/253.md +0 -95
- package/docs/audit-2026-06-12-design71-P1/346/275/234/344/274/217/351/235/242/350/243/201/345/206/263/344/270/216/345/220/236/351/224/231/345/256/241/350/256/241.md +0 -45
- package/docs/audit-2026-06-12-/345/205/254/345/274/200/346/227/213/351/222/256/346/264/273/346/200/247/344/270/216vendored/346/255/273/350/267/257.md +0 -63
- package/docs/audit-2026-06-15/ADDENDUM-second-pass.md +0 -88
- package/docs/audit-2026-06-15/ARCHITECTURE-AND-ROADMAP.md +0 -187
- package/docs/audit-2026-06-15/DOC-CORRECTIONS.md +0 -105
- package/docs/audit-2026-06-15/INDEX.md +0 -49
- package/docs/audit-2026-06-15/ORCHESTRATION-STATUS.md +0 -98
- package/docs/audit-2026-06-15/PRODUCTION-ISSUES.md +0 -189
- package/docs/audit-2026-06-15/REFERENCES-literature.md +0 -139
- package/docs/audit-2026-06-15/VENDOR-REFACTOR-PLAN.md +0 -96
- package/docs/cc-probe-198/README.md +0 -72
- package/docs/cc-probe-198/STABILITY-AUDIT.md +0 -118
- package/docs/cc-probe-198/live-schema-monitor-worktree-2026-07-09.json +0 -56
- package/docs/cc-probe-198/mount-variants.json +0 -536
- package/docs/cc-probe-198/plan-mode-run.json +0 -1
- package/docs/cc-probe-198/probe-bash-bg.json +0 -224
- package/docs/cc-probe-198/probe-edit-mismatch.json +0 -120
- package/docs/cc-probe-198/probe-read-missing.json +0 -62
- package/docs/cc-probe-198/probe-search-empty.json +0 -127
- package/docs/cc-probe-198/probe-task-family.json +0 -227
- package/docs/cc-probe-198/probes.status +0 -6
- package/docs/cc-probe-198/raw-capture-interactive.json +0 -948
- package/docs/cc-probe-198/raw-capture-print.json +0 -787
- package/docs/cc-probe-198/raw-capture2-interactive.json +0 -948
- package/docs/cc-probe-198/raw-capture2-print.json +0 -787
- package/docs/cc-probe-198/system-prompt.txt +0 -135
- package/docs/cc-probe-198/tools-array.json +0 -962
- package/docs/durability-boundary.md +0 -63
- package/docs/fix-2026-06-10-/350/256/241/347/256/227bug/344/277/256/345/244/215-search/346/211/271.md +0 -75
- package/docs/fix-2026-06-11-/347/254/254/344/272/214/350/275/256-/344/277/256/345/244/215-search/346/211/271.md +0 -62
- package/docs/parity-sweep/REPORT-DYNAMIC.md +0 -97
- package/docs/parity-sweep/REPORT-STATIC-GGB.md +0 -127
- package/docs/parity-sweep/REPORT-STATIC-RWE.md +0 -133
- package/docs/vendor-history.md +0 -385
- package/docs/vendored-upstream-diff-2026-07.md +0 -83
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# 参考论文 / 框架 / 基准 文献清单 — 2026-06-15
|
|
2
|
-
|
|
3
|
-
> 从 `research/` + `design/`(含 archive)+ search AI memory(`ref-v2-orchestration-sota` 等)全量 sweep 出的、**被当作证据/灵感引用**的外部材料。每条:它支持本项目的什么决策 + 引用位置。
|
|
4
|
-
|
|
5
|
-
> ⚠️ **可验证性声明**:多个 arXiv ID 带 **2026 年(2602–2606)月份**,在本次离线审计中**无法核验真伪**(知识截止 2026-01;"今天"=2026-06-15)。它们**确实被写在 design 文档里**作为论据,但**不保证 ID/数字准确**——引用方应在联网时核对。本清单忠实记录"文档引了什么 + 用来支持什么",不为 ID 真实性背书。内部 probe(ai-agent-shadow)是我们自己的实验,非外部论文。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## A. 多 agent 并行 / merge 冲突(design/52、53、57 的地基)
|
|
10
|
-
| 文献 | 支持什么 |
|
|
11
|
-
|------|----------|
|
|
12
|
-
| **AgenticFlict** (arXiv 2604.03551) | ~142K agentic-coding PR,27.67% 文本 merge 冲突率;支持"文本冲突≈已解决、非难题",推动文件-所有权分区 + 2-4 worker 甜区(design/52 §1) |
|
|
13
|
-
| **CodeCRDT** (arXiv 2510.18893) | 语义冲突率 5-10%(简单 20%→复杂 80%);CRDT 无法检测三类语义冲突(重复声明/类型不匹配/悬空引用)→ 真难题是语义("A 绿+B 绿=红")非文本(design/52 §1-2) |
|
|
14
|
-
| **AgentSpawn** (arXiv 2602.07072) | 三层和解:auto-merge 15% / semantic-merge 73% / escalate-human 12%;73% 是**重叠可检测**变更非 clean-merge-broken → 不解决难骨头(design/52 §2 反过度宣称) |
|
|
15
|
-
| Specification Gap / Coordination Under Partial Knowledge (arXiv 2603.24284) | 并行语义冲突=部分知识问题 → 预防/检测/升级才是正轴(design/52 §1) |
|
|
16
|
-
| Three-way semantic conflict-freedom (arXiv 1802.06551) | 形式化静态检测,精确但贵/受限 → design/52 的 L4 静态交叉-diff 选项(贵故降级) |
|
|
17
|
-
| STORM (arXiv 2605.20563) | 语义和解难自动化(design/52) |
|
|
18
|
-
| LLMinus (NVIDIA/Sasha Levin,Linux kernel,via Phoronix) | 语义嵌入找历史冲突 + build-test 检测 → design/52 的 L2 集成测试检测层 |
|
|
19
|
-
| Intent / GitWorktree (Augment Code 2026) | worktree 隔离 + 集成验证器;Coordinator-owns-integration(design/52 §3)+ 成本路由三档省 51% |
|
|
20
|
-
|
|
21
|
-
## B. 低信任 worker / 安全(design/53)
|
|
22
|
-
| 文献 | 支持什么 |
|
|
23
|
-
|------|----------|
|
|
24
|
-
| **Lethal Trifecta** (Simon Willison, 2025-06) | 工具/外通 + 不可信输入 + 敏感访问 = 注入升级;design/53 整个安全姿态的组织原则(worker 占全三腿)+ 人审瓶颈 |
|
|
25
|
-
| OWASP Top 10 for Agentic Apps 2026 (ASI) / MAESTRO | 单个被影响输出可误导规划/触发特权工具/记忆持久化注入/跨系统传播 → design/53 不可信数据无处不在原则 |
|
|
26
|
-
| Optimization-based Prompt Injection to LLM-as-a-Judge (arXiv 2403.17710) | 对抗输入腐蚀 judge → design/53 风险类 A;sanitize/opaque-delimit 要求 |
|
|
27
|
-
| Spark to Fire 错误级联 (arXiv 2603.04474) | 多 agent 上下文污染/错误级联(design/53 §2.A) |
|
|
28
|
-
| Security Considerations for Multi-agent (arXiv 2603.09002) / Cross-agent semantic flows (arXiv 2603.04469) | 多 agent 安全 + 跨 agent 语义流参考(design/53) |
|
|
29
|
-
| CVE-2025-59528 (Antigravity sandbox-escape) | 真 CVE:隔离边界突破→host 执行 → bare Docker 不够,需 microVM(design/53 §2.E) |
|
|
30
|
-
| Northflank sandbox guide 2026 + Firecracker/gVisor/E2B | 五类沙箱风险 + microVM/gVisor/V8 隔离档;E2B=Firecracker microVM(design/53 §2.C/E)|
|
|
31
|
-
| Microsoft Agent Governance + NVIDIA(四执行层) | 网络出口/文件边界/凭据 scoping/配置文件保护(design/53 §2.C) |
|
|
32
|
-
| CC protected-paths denylist(逆向 2026-06-13) | .git/.ssh/.npmrc/.claude* 一等公民 denylist → design/53 §2.H,design/72 §2.1 实现锚 |
|
|
33
|
-
|
|
34
|
-
## C. 单 vs 多 agent / 上下文容量(research/12、design/55、60、68)
|
|
35
|
-
| 文献 | 支持什么 |
|
|
36
|
-
|------|----------|
|
|
37
|
-
| **Equal-budget single vs multi** (arXiv 2604.02460) | 思考预算固定时 single ≥ multi(3 模型族);多增益多是"未计算的 compute+上下文"非架构 → default-single + 5.7x=成本计账 bug |
|
|
38
|
-
| **SWE-bench Verified 多架构对比** | 多 agent 在 SWE-bench Verified 全架构 -2%~-15% → 编码任务无净多 agent 增益 |
|
|
39
|
-
| Chroma context-rot(18 前沿模型) | 全降级,200K 窗在 50K 显著降 → moat-b 在 ~50K 起(高于我们 12-20K 语料)|
|
|
40
|
-
| Liu et al. "Lost in the Middle" | 中段相关信息 -30%+ 准确率 → 注意力稀释机制 |
|
|
41
|
-
| Anthropic "effective context engineering" + subagent 90.2% | 层级摘要 +25%;90.2% 是研究/breadth(独立子问题、无共享态)非编码 |
|
|
42
|
-
| **baseline paradox** (arXiv 2603.22651) | 4 架构基准:层级 Pareto 最优;模型越强多 agent 增益越小;hybrid(路由+缓存+重试)1.15x 收回 89% |
|
|
43
|
-
| Augment Code "Multi-Agent Trap" / mjgmario 2026 | 概念可分 ≠ 经济可并行;先建强 single baseline 再 plateau 后才多 agent |
|
|
44
|
-
| When-to-go-multi-agent (arXiv 2512.08296) | 260 配置:可分解任务 +80%,顺序任务 -70% → 顺序→single 路由 |
|
|
45
|
-
| RoundTable (arXiv 2411.07161) / Corex (arXiv 2310.00280) | 弱模型协作超个体(能力分解价值,受 baseline paradox 限) |
|
|
46
|
-
|
|
47
|
-
## D. Judge 可靠性(research/12 §1.3,ref-v2-sota WARNING 2)
|
|
48
|
-
| 文献 | 支持什么 |
|
|
49
|
-
|------|----------|
|
|
50
|
-
| JudgeBiasBench (via adaline.ai) | 前沿 judge 高级偏见测试 >50% 错误率 → flash-judge "0 FP" 是头号再验证候选 |
|
|
51
|
-
| **SE judge audit** (arXiv 2604.16790) | 同案重评自相矛盾、小 prompt 变化翻 verdict、语义保持扰动(改名/重排/注释)致 verdict 分歧 → judge 不稳系统性 |
|
|
52
|
-
| Agent-as-a-Judge survey (arXiv 2601.05111) / code-verification judge benchmark (OpenReview AP8ZlN7lwU) | judge 可靠性证据基 |
|
|
53
|
-
| Self-preference bias (arXiv 2410.21819) | judge 偏好低困惑度/自分布输出,排序偏见 >10pp → 用去相关/异构 judge |
|
|
54
|
-
|
|
55
|
-
## E. 规划 / DAG 分解(design/55、68;research/12 §1.5)
|
|
56
|
-
| 文献 | 支持什么 |
|
|
57
|
-
|------|----------|
|
|
58
|
-
| DAG-planner 2026(arXiv 2603.11445 / 2604.11378 Scheduler-Theoretic / 2511.00330 Sherlock / 2601.22290 Six Sigma) | 2026 学术 DAG 分解 + AdaptiveReplanner(多 RAG 非编码);**无**生产证据 adaptive-DAG 在编码胜简单路由 → "别建 adaptive DAG planner" |
|
|
59
|
-
| Task-Decomposed Planning (Li 2026) | 标准 DAG + per-subgoal scoped context → 82% token 省;支持容器-per-worker + 有界上下文价值 |
|
|
60
|
-
| DynTaskMAS (2026-06) | 运行时动态任务依赖建模 4 组件 → 映射 leader=LLM-Planner+确定性 Coordinator;design/68 **明禁**建其运行时图 |
|
|
61
|
-
| Dynamic Planning / GAP (arXiv 2510.25320) | 执行反馈 + 失败模式驱动 replan → adaptive replan SOTA 验证(vs 一次性 DAG) |
|
|
62
|
-
| Amdahl-bound worker count (arXiv 2503.15703) | 最优 worker 数理论界 → 2-4 甜区 |
|
|
63
|
-
| **CAID** (arXiv 2603.21489, CMU/OpenHands) | git-worktree 异步委派 + 文件级依赖图;+6pp 总 / +26pp 弱模型;worker 峰值 4(8 退化) |
|
|
64
|
-
|
|
65
|
-
## F. 记忆(design/41、65、73 §2)
|
|
66
|
-
| 文献 | 支持什么 |
|
|
67
|
-
|------|----------|
|
|
68
|
-
| **Mem0** (arXiv 2504.19413 + github mem0ai/mem0) | LLM 抽事实 + top-10 相似 ADD/UPDATE/DELETE/NOOP;user/agent/run 三级 scope;Mem0^g Neo4j 图;LOCOMO 66.88 / >90% token 省 → 我们 AUDN consolidation ≈ Mem0,借思想非库(design/41 全采纳,design/73 §2.1) |
|
|
69
|
-
| Letta (github letta-ai/letta, MemGPT 演进) | 带标签 in-context 记忆块,agent 自编辑;借 typed 自编辑块扩 design/65 |
|
|
70
|
-
| **Graphiti / Zep** (github getzep/graphiti) | 双时态知识图:valid_at/invalid_at + 矛盾失效(非删);亚秒混合检索 → design/73 §2.3 唯一值得集成(经 MemoryStore seam)修时态缺口 |
|
|
71
|
-
|
|
72
|
-
## G. 缓存 / 计划缓存(design/42)
|
|
73
|
-
| 文献 | 支持什么 |
|
|
74
|
-
|------|----------|
|
|
75
|
-
| Agentic Plan Caching / APC (arXiv 2506.14852) | 泛化计划模板 + 关键词查;-50% 成本 → design/42 部分采纳(映射 StrategyStore),但假设任务复现(与我们 novelty 冲突) |
|
|
76
|
-
| Why Agent Caching Fails / W5H2 (arXiv 2602.18922) | 反驳 APC 短查询(3-8 词无可靠关键词)→ 警告 design/42 别采纳(不建领域分类法) |
|
|
77
|
-
| TVCACHE (arXiv 2602.10986) | 工具输出缓存,70% 命中 → 缓存安全黄金标准(design/42 §3 护栏) |
|
|
78
|
-
| GenCache (arXiv 2511.17565) | 输出 token-span 缓存 → NO-GO(重向量基建 + 破确定性) |
|
|
79
|
-
| 语义缓存:SemanticALLI(2601.16286)/MeanCache(2403.02694)/GPTCache(Spheron 2026)/OLAP(2602.19811) | design/42 语义缓存研究来源 |
|
|
80
|
-
|
|
81
|
-
## H. 路由 / 级联 / 老师模式(design/11、12、23、27)
|
|
82
|
-
| 文献 | 支持什么 |
|
|
83
|
-
|------|----------|
|
|
84
|
-
| **RouteLLM** (lm-sys, arXiv 2406.18665) | 难度路由器:14-26% 强模型调用达 95% 质量,~2x 省 → design/11 Layer-2 北极星 + design/23(延迟为 pluggable) |
|
|
85
|
-
| FrugalGPT / LLM Cascade (arXiv 2305.05176) / C3PO (arXiv 2511.07396) | cheap-then-escalate 级联 + deferral → design/27 + design/12 老师升级 |
|
|
86
|
-
| Dynamic Routing & Cascading Survey 2026 (arXiv 2603.04445) | 级联生产可证,"cheap-first+gate" 比预测路由稳 → design/27 |
|
|
87
|
-
| semantic-agreement gate (arXiv 2509.21837) | 语义一致作新 gate 形 → design/27 gate 演进 |
|
|
88
|
-
| ZeroRouter (arXiv 2601.06220) / Router-R1 (OpenReview DWf4vroKWJ) | design/23 难度路由研究 |
|
|
89
|
-
| **Inter-Cascade** (arXiv 2509.22984) | 老师给可复用策略(非答案)存仓库,~49% 省 → design/14 策略仓库北极星 + design/73 §0 |
|
|
90
|
-
| Knowing When to Abstain / KnowNo (arXiv 2601.12471) | 弃权/何时求助 → design/12 老师触发 |
|
|
91
|
-
| Ask or Assume (arXiv 2603.26233) | 编码 agent 何时澄清 → design/12 |
|
|
92
|
-
| 异构成本路由(getunblocked 41.8%/augmentcode 三档 51%/cascade -13%) | 弱-worker+强-verifier -41.8% 无精度损 → research/12 §1.4 + design/68 |
|
|
93
|
-
|
|
94
|
-
## I. 自进化 / 执行反馈(design/73 §1)
|
|
95
|
-
| 文献 | 支持什么 |
|
|
96
|
-
|------|----------|
|
|
97
|
-
| **RHO** Retrospective Harness Optimization (arXiv 2606.05922) | 从历史轨迹自优化 harness(纯 self-preference);SWE-Bench Pro 59→78;**作者承认放大错误偏好** → design/73 §1.1 警示模型:用 harness-opt 思想但换我们的机械 oracle(v1.5 RHO 式 harness 编辑被 council 移除) |
|
|
98
|
-
| ERL Experiential Reflective Learning (arXiv 2603.24639) | 反思轨迹→可迁移启发→test-time 选择性检索注入;+7.8% → design/14 策略仓库 SOTA 版 + design/65 选择性召回 |
|
|
99
|
-
| RLEF (arXiv 2410.02089) / AgentForge (arXiv 2604.13120) / SSI / SWE-RM (arXiv 2512.21919) | 执行-grounded 自进化是主流(非我们新意);SWE-RM:execution-free reward 可超 execution-based |
|
|
100
|
-
|
|
101
|
-
## J. 验证 / property-based / oracle(design/57、58、59)
|
|
102
|
-
| 文献 | 支持什么 |
|
|
103
|
-
|------|----------|
|
|
104
|
-
| Agentic PBT (arXiv 2510.09907) | LLM 生成 PBT ~40% 误发现率 → 对比:契约-derived 0-FP 不变量胜(有可信契约时) |
|
|
105
|
-
| MutGen 类型感知变异 + 差分 oracle (arXiv 2506.02954) | 类型感知变异 + 差分 vs ground-truth = oracle → design/59 §3.1 |
|
|
106
|
-
| EvalPlus "Is Your Code Really Correct?" (NeurIPS 2023) | ground-truth 差分过滤 → design/59 objective-oracle 方法 |
|
|
107
|
-
| 基准:ProdCodeBench / ProjectEval / SlopCodeBench / SWE-bench Verified | campaign 各档外部现实锚(design/59) |
|
|
108
|
-
|
|
109
|
-
## K. 编排系统 / 工业实现(ref-v2-orchestration-sota,深读 5 源)
|
|
110
|
-
| 系统 | 支持什么 / 关键差异 |
|
|
111
|
-
|------|----------|
|
|
112
|
-
| **ComposioHQ/agent-orchestrator** (github, TS) | 确定性事件状态机(编排无 LLM)+ 7-slot 插件 + liveness 双探针 → 强验证我们 primitive/profile 宪法 + leader=LLM-planner+确定性 Coordinator;**差异**:它编排黑盒 CLI agent,我们垂直整合 |
|
|
113
|
-
| **LangGraph** (langchain-ai) | Send API 动态 fan-out + reducer merge;checkpoint_writes 按 (task_id,idx) → **独立验证我们 design/45 Set<toolCallId> 完成键**;node-resume 重跑 body → 验证我们幂等 hands;PostgresSaver=我们 TiDB |
|
|
114
|
-
| **OpenHands** (github) | DelegateTool(并行委派 max 5)+ RemoteWorkspace 但**从不组合**=我们差异化(委派×远端容器);fencing-token lease=我们 CheckpointStore pin;resume 把 RUNNING 当崩溃 → 我们有意 mid-batch suspend 领先 |
|
|
115
|
-
| CrewAI | 层级 manager 但**无并行/异步** → 反例:并行 fan-out 是真差异化非 table-stakes |
|
|
116
|
-
| Cursor FastRender (Planner/Worker/Judge) | 1M 行系统:Planner/Worker/Judge;Cursor 试平权 agent+锁失败、层级胜 → 验证 leader=Planner + 验证门(Judge),4-5 worker 上界 |
|
|
117
|
-
| MASAI / CodeR | 独立收敛 DAG 分解 + test-based 验证门 |
|
|
118
|
-
| Agyn (arXiv 2602.01465) | 层级 4 角色,SWE-bench 72.2% vs single 65%,隔离沙箱 + GitHub-artifact 通信 → 最接近我们 v2 |
|
|
119
|
-
| ManagerWorker (arXiv 2603.26458) | 强 manager+弱 worker=强 single 分数零头 token;"direction>review"(+11pp vs +2pp) |
|
|
120
|
-
| SWE-Search (ICLR 2025) | MCTS+debate +23%,test 作门 → 执行-test 验证是黄金标准 |
|
|
121
|
-
| Devin 2.0 / Grok Build / Claude Code "Agent Teams" | Devin Wiki 自索引仓库架构(→repo-map);CC shipped Agent Teams=Anthropic 验证多 agent 方向 |
|
|
122
|
-
| 工具坟场社区证据(Vibe Kanban/Conductor/Claude Squad) | 拓扑崩溃(线性链 1 坏 agent=24% 失败)/勾结验证/reward hacking;6 结构能力无工具全有 |
|
|
123
|
-
|
|
124
|
-
## L. 持久执行 / 监管(ref-v2-sota,企业定位)
|
|
125
|
-
| 文献 | 支持什么 |
|
|
126
|
-
|------|----------|
|
|
127
|
-
| Temporal / Diagrid / LangGraph 1.0(durable-execution 市场) | Temporal $5B/9.1T 执行;Diagrid "Checkpoints ARE NOT durable execution" → 我们 design/45 checkpoint 要达的真 bar(exactly-once)+ durability-boundary.md 诚实声明 |
|
|
128
|
-
| EU AI Act 2026 / California SB-833 | 高风险 AI 强制人审钩 + 可解释 API → F4/checkpoint HITL + 审计企业定位 |
|
|
129
|
-
| METR RCT (16 资深 dev/246 任务) + DORA 2025/26 | METR:AI 让 dev 慢 19%(自感快 20%);DORA:PR +98% 但 review +91%,bug +9~54% → "更多代码≠更多交付,人审是天花板" |
|
|
130
|
-
| HULA @ Atlassian (arXiv 2411.12924) | 663 issue / 仅 8% 端到端 merge;瓶颈=人审计划(82%)→ 人审瓶颈论 + 非线性 steering 需求(唯一真部署数据集) |
|
|
131
|
-
| Together.ai SLM fine-tuning 2026 | 小微调模型专项任务胜大闭源 60% → cheap-team 能力分解(real-now,erode) |
|
|
132
|
-
|
|
133
|
-
## M. 内部 probe(ai-agent-shadow,我们自己的实验,非外部论文)
|
|
134
|
-
| probe | 结论 |
|
|
135
|
-
|------|------|
|
|
136
|
-
| probe-13 / property-harness probe | 12 原型 × {clean+bug},deriveInvariants 机械 0-oracle 不变量,300 输入/case:FP 0/12,结构-契约 catch 16/16,value-语义 0/7(预期 miss)→ 点燃 property-harness 薄原语 |
|
|
137
|
-
| shadow probes 06-12 | MECH TP 5/5 FP 0;cheap judge(flash/qwen)可靠除难静态-trace 代码;**整个 design/56 被对抗 council 降级为"未验证假设"**(confound/确认偏误/无对抗/成本零计/n 小);probe-12 因喂答案给 judge 被**撤回** |
|
|
138
|
-
|
|
139
|
-
> **重要诚实标注**(memory project-shadow-lab):影子实验室=快速方向性假设生成器,**非结论机器**。把方向性发现当结论发是错的(design/52/56/PANORAMA 已降级)。MECH(机械执行可信测试)确定性可靠是唯一站得住的;cheap-judge/跨模块降级是**待 service 真环境严验的方向性假设**。
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
# Vendor 黑盒严密重构计划 — 2026-06-15
|
|
2
|
-
|
|
3
|
-
> design/71(vendored 黑盒清剿与第一方化)P0/P1/P2 **已执行完**;本计划=**核实已完成项 + 列剩余 vendor 面 + 本次审计发现的账本/收尾缺口 + 前向严密路线**。
|
|
4
|
-
> 全部 file:line 核实。基线 commit `e3a6da0f51`(2026-06-12,月度 diff 已前移)。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. 已完成(design/71,核实)✅
|
|
9
|
-
|
|
10
|
-
| 批次 | 做了什么 | 量 |
|
|
11
|
-
|------|---------|-----|
|
|
12
|
-
| **P0 死代码清除** | 删 `agent.ts`(611)、`jsonl-{storage,repo}.ts`(450)、`branch-summarization.ts`+`navigateTree()`(323+137)、`system-prompt.ts`(39)、`node.ts`(2);符号级 grep 验零消费者,一删一 commit | **−1,562 LOC**(611+450+323+137+39+2;⚠️ VENDOR.md 自己写的 −1,593 也算错了,差 31) |
|
|
13
|
-
| **P0 契约组测试** | `test/vendor-contracts.test.ts` 实含 **C1/C2/C4/C7/C8/C9**(C1 工具名族 / C2 cut-point 不落 toolResult / C4 usage 两态 / C7+C8 / C9 text_delta 月度 cherry-pick);**C3**(eviction⇒truncated)在 `exec-shell.test.ts`、**C5**(空摘要 throw)在 `compaction.test.ts`、**C6**(steering drain)在 `steering.test.ts`——6 契约**分布在多个文件**,非都在 vendor-contracts | 治本 |
|
|
14
|
-
| **P1 潜伏面裁决** | 删 `prompt-templates/file-loader/skills.ts`(766)+ 零调用者 `skill()/promptFromTemplate()`;drop `ignore`/`yaml` 两 npm 依赖 | −766 LOC,−2 deps |
|
|
15
|
-
| **P1 黑盒#5 修复** | `TaskSpec.skills` 原**静默 INERT** → 第一方化(`<skills>` 系统提示块 + `skill` 工具),8 红证 | 行为修复 |
|
|
16
|
-
| **P1 公开旋钮活性守卫** | `test/public-knob-liveness.test.ts`:`Record<keyof TaskSpec/RunnerDeps,…>` 穷举,加字段不注册证明=`tsc` fail | 防再发 |
|
|
17
|
-
| **P2 热路径 naturalize** | `compaction/{compaction,utils}.ts` + `session/{session,storage-base,memory-storage,…}` → `src/engine/`;facade 不变,vendored `types.ts` 单 import 行 diff;recency fileops 修(LONGRUN-2b)+ F7 熵直测 | 所有权转移 |
|
|
18
|
-
| **吞错审计** | agent-loop/event-stream/session 族/agent-harness 零静默 swallow;EventStream 锐边修(bare end() reject) | 治本 |
|
|
19
|
-
| **月度上游 diff 例行** | 首次跑 `2664f595..e3a6da0f51`,1 要(text_delta cherry-pick)/9 不要;Fable5 off→low 旗给 design/46 | 流程建立 |
|
|
20
|
-
|
|
21
|
-
**净效果**:vendor 树从黑盒变成**记录在案、有契约测试、热路径已第一方化、有月度 diff 例行**的受控依赖。
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 2. 剩余 vendor 面(冷路径,核实)
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
src/vendor/agent-core/src/
|
|
29
|
-
agent-loop.ts 922 ← run 循环原语(shouldStopAfterTurn/executePreparedToolCall/afterToolCall seam)
|
|
30
|
-
harness/agent-harness.ts 1091 ← harness(steer queue / setTools / requestStopAfterTurn / VENDORED EDIT #16)
|
|
31
|
-
harness/types.ts 881 ← 类型底座(SessionTreeEntry/HarnessMessage/Skill/readLink? 等)
|
|
32
|
-
harness/env/nodejs.ts 646 ← NodeExecutionEnv(默认 hands 执行环境,非死代码)
|
|
33
|
-
harness/messages.ts 143 ← convertToLlm/asAgentMessage(engine compaction 依赖)
|
|
34
|
-
harness/utils/truncate.ts 370 ← 长输出截断(splitLinesForCounting=P-4 应复用的正确行计数)
|
|
35
|
-
harness/utils/shell-output.ts 202 ← 全输出捕获(mod #14 两块编辑)
|
|
36
|
-
harness/env/kill-tree.ts 137 ← 进程树清理(NodeExecutionEnv 用)
|
|
37
|
-
harness/session/timestamps.ts 15 ← cold,messages.ts 消费
|
|
38
|
-
llm-core/src/
|
|
39
|
-
types.ts 621 ← Model/Usage/事件协议(贯穿全栈)
|
|
40
|
-
validation.ts 328 ← 工具参数校验
|
|
41
|
-
utils/event-stream.ts 118 ← EventStream(P2 naturalize 后仍 vendor;第 17 个未记录编辑在此)
|
|
42
|
-
utils/diagnostics.ts 55
|
|
43
|
-
```
|
|
44
|
-
**为何还在 vendor**:这是**冷路径**(run 循环 + 类型底座 + 协议),改动风险/diff 成本高;design/71 §2.6 决定走**月度上游 diff 例行**(reference reading)而非 naturalize。**engine 已 naturalize 的逻辑仍 import 这里的类型/helper**(C-11:`asAgentMessage/convertToLlm/HarnessMessage/SessionTreeEntry/SessionStorage`)——"naturalized" 是逻辑层,**类型/序列化底座没搬**。
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 3. 本次审计发现的账本/收尾缺口(应清)
|
|
49
|
-
|
|
50
|
-
| 缺口 | 证据 | 动作 |
|
|
51
|
-
|------|------|------|
|
|
52
|
-
| **第 17 个 vendored 编辑未入 VENDOR.md 编号表** | `event-stream.ts:60`(design/71 清尾,bare `end()` 无终态→REJECT)带 VENDORED EDIT marker 但只在散文提,编号表停在 #16 | VENDOR.md 加 mod #17 |
|
|
53
|
-
| **mod #14 实际两块编辑** | `shell-output.ts`:同步翻转 + `:74-82` evictedTail 截断标志 follow-up(2026-06-11),第二块未单独编号 | VENDOR.md #14 拆成 #14a/#14b 或补注 |
|
|
54
|
-
| **空孤儿目录** | `src/vendor/agent-core/src/harness/compaction/`(P2 naturalize + P0 删 branch-summarization 后空目录残留) | `git rm` 空目录 |
|
|
55
|
-
| ~~mod #16 文档读着像 shipped~~ **(二轮修正:已不再适用)** | 第一遍说 `requestStopAfterTurn()` 在 src/core 零调用者——**审计中 `3e5c52d`(Slice 3c)已接它**(prepare-task.ts:1072)。#16 的 consumer **现已 wired**,VENDOR.md 不需"零调用者"限定;但应把 #16 从"原语建好"更新为"design/74 Slice 3c 消费它" | — |
|
|
56
|
-
| **engine naturalize 类型未绝缘** | C-11:engine 逻辑仍 import vendored 类型底座 | 见 §4 下一步 |
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 4. 前向严密路线(优先级)
|
|
61
|
-
|
|
62
|
-
### 4.1 立即(零风险账本清理)
|
|
63
|
-
1. VENDOR.md 补 mod #17(event-stream)+ #14b(evictedTail)+ #16 in-flight 限定;`git rm` 空 compaction 目录。
|
|
64
|
-
2. 这些是**纯文档/清理**,不碰行为——是"严密"的最小代价(VENDOR.md 是 vendored 重构的真相源,必须与代码 1:1)。
|
|
65
|
-
|
|
66
|
-
### 4.2 协调 design/74(在飞,另一谱系)
|
|
67
|
-
- mod #16(shouldStopAfterTurn)是朝 **design/75「拥有 loop」**迈的第一步(design/74-v4 §R3-A 自陈)。⚠️ **二轮校准**:仓里有 ~12 处 `void *.abort()`(prepare-task + runtask),design/74 Slice 3c 引入了**一处**干净停点(prepare-task.ts:1072,资源 suspend 路径用 `requestStopAfterTurn` 而非 abort);其余 abort 点(人审 gate / timeout / max-turns / budget / 错误路径)仍用 abort。"8+ 处全替换"是方向不是现状——**净减技术债是逐步的**。
|
|
68
|
-
- **不要并行动 agent-loop.ts/agent-harness.ts**:那是 design/74 的活跃编辑区(工作树 `prepare-task.ts`/`types.ts` 正在改)。等其 trigger+saga 落地、VENDOR.md 记完 #16 的 consumer,再评估是否把 loop 退出逻辑进一步 naturalize。
|
|
69
|
-
|
|
70
|
-
### 4.3 类型绝缘层补完(design/33 后续,中期)
|
|
71
|
-
- **目标**:engine(已 naturalize 的 compaction/session)不再直接 import vendored 类型底座,而是经一层 first-party 类型绝缘(design/33 已建部分)。
|
|
72
|
-
- **现状**:`compaction.ts:9-37` / `session.ts:1-22` 仍 import `HarnessMessage/SessionTreeEntry/SessionStorage/asAgentMessage/convertToLlm`。
|
|
73
|
-
- **路线**:把这些类型/转换 helper 也 naturalize 进 `src/engine/`(或一个 `src/engine/types.ts` first-party 镜像),vendored 只保留 run 循环真正需要的。**风险**:`types.ts` 是 881 行的大底座、贯穿全栈,naturalize 它是大手术——**走 council + 单独专注会话**(比照 design/71 P2 的纪律:一文件一 commit、facade 不变、契约测试守)。
|
|
74
|
-
- **门控**:不急。月度 diff 例行已让冷路径可控;类型绝缘是"严密度"提升非止血。
|
|
75
|
-
|
|
76
|
-
### 4.4 月度上游 diff 例行(持续)
|
|
77
|
-
- 继续 design/71 §2.6:每月跑 `<baseline>..<newest>` diff,逐 commit 判要/不要/已有,记 VENDOR.md 表。
|
|
78
|
-
- **本次发现的判例可复用**:provider-contract 层改动(Fable5 thinking / supportsPromptCacheKey / authHeader / errorCode 字段)**不要**——我们故意用 design/46 brain-compat 替代了 vendored provider 层;加 reader-less 字段违反 #5 活性纪律。surface refactor(rename `AgentHarness`→`CoreAgentHarness`)不要(churn for aesthetics)。
|
|
79
|
-
- C9 text_delta 的诚实注:它今天**零行为变化**(我们的 brain 总发 partial),但移除一个潜在 corruption 窗 + 保持类型契约上游对齐——这是"要"的判据(前向 enable + 类型对齐),不是当下修 bug。
|
|
80
|
-
|
|
81
|
-
### 4.5 北极星:design/75「拥有 loop」(远期)
|
|
82
|
-
- design/74-v4 把 mod #16 标为"朝 design/75 迈的第一步"。最终方向=逐步把 run 循环的控制流从 vendored `agent-loop.ts` naturalize 进 `src/core/runner/`,使 core 完全拥有循环(vendored 只剩 brain transport + 类型协议)。
|
|
83
|
-
- **前提**:design/74 资源挂起落地(它正是在 loop 退出语义上做文章)+ 类型绝缘(§4.3)。**别现在建**——等这两个地基。
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## 5. 严密性自检清单(交接给做 vendored 改动的 AI)
|
|
88
|
-
```
|
|
89
|
-
[ ] 任何 vendored 编辑必带 `// VENDORED EDIT:` marker + VENDOR.md 编号条目(1:1,本次发现 2 处漏记)
|
|
90
|
-
[ ] vendored 改动后 `tsc --noEmit`(vendor 树独立 typecheck 应 exit 0)
|
|
91
|
-
[ ] 改动若触碰 6 契约(C1-C6/C9)→ 跑 test/vendor-contracts.test.ts
|
|
92
|
-
[ ] 删 vendored 文件:符号级 grep 验零消费者(src/ + test/),一删一 commit(retreat path)
|
|
93
|
-
[ ] naturalize:git mv + facade 不变 + 单 import 行 diff + 直接单测 + boundary 表(src/engine/README.md)
|
|
94
|
-
[ ] 月度:diff baseline..newest,逐 commit 判要/不要/已有,记 VENDOR.md 表,前移 baseline
|
|
95
|
-
[ ] 不碰 design/74 活跃文件(agent-loop/agent-harness/prepare-task/types/checkpoint-store)直到其落地
|
|
96
|
-
```
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# CC 2.1.198 × DeepSeek 全工具活体采集(design/139 腿 B)
|
|
2
|
-
|
|
3
|
-
采集日期:2026-07-08。采集机:海外机(ubuntu@91.199.82.197),配置隔离 `CLAUDE_CONFIG_DIR=~/cc-probe-home`,
|
|
4
|
-
不动机主全局配置。key 全程 env-only,产物零 key 外泄(已 grep 复扫,命中均为良性子串/字段名)。
|
|
5
|
-
|
|
6
|
-
## 采集环境
|
|
7
|
-
|
|
8
|
-
| 项 | 值 |
|
|
9
|
-
|---|---|
|
|
10
|
-
| Claude Code | **2.1.198**(billing header 实证 `cc_version=2.1.198.6c0`),原生二进制安装(claude.ai/install.sh,宿主机无 node) |
|
|
11
|
-
| 模型 | `deepseek-v4-pro`(`ANTHROPIC_MODEL`,night-cc 腿同款) |
|
|
12
|
-
| 端点 | `https://api.deepseek.com/anthropic`(Anthropic 兼容),请求路径 `/v1/messages?beta=true` |
|
|
13
|
-
| max_tokens | 32000(print 与 interactive 一致) |
|
|
14
|
-
| 采集方法 | 本地 127.0.0.1:8899 捕获反代(只落盘 `model/system/tools/max_tokens/n_messages`,**auth 头只透传不落盘**)+ `claude -p --output-format stream-json --verbose` 行为探针 |
|
|
15
|
-
|
|
16
|
-
## 头号事实(与旧 CC 认知的差异)
|
|
17
|
-
|
|
18
|
-
1. **工具面两态**:print 模式(`claude -p`,entrypoint=sdk-cli)= **24 工具**;交互态(entrypoint=cli)= **27 工具**,
|
|
19
|
-
多挂 `AskUserQuestion` / `EnterPlanMode` / `ExitPlanMode`。`--permission-mode plan` 在 -p 下**不改变**挂载面(16 次捕获实证)。
|
|
20
|
-
2. **身份行两态**:print=`You are a Claude agent, built on Anthropic's Claude Agent SDK.`;
|
|
21
|
-
交互=`You are Claude Code, Anthropic's official CLI for Claude.`。主 system 块也略有差(5616 vs 5875 chars)。
|
|
22
|
-
3. **Glob/Grep/TodoWrite/BashOutput/KillShell/MultiEdit 已不存在**。替代:搜索→模型自发用 Bash(rg/find/grep);
|
|
23
|
-
todo→TaskCreate/TaskUpdate/TaskList/TaskGet 族;后台输出→**TaskOutput**(bash 后台任务与 subagent 共用 task 抽象),终止→TaskStop。
|
|
24
|
-
4. system 分 3 块:block0=billing header(无 cache_control)、block1=身份行(ephemeral)、block2=主提示(ephemeral)。
|
|
25
|
-
|
|
26
|
-
## 全 27 工具(交互态超集;`_mount` 字段标挂载面)
|
|
27
|
-
|
|
28
|
-
Agent, AskUserQuestion*, Bash, CronCreate, CronDelete, CronList, Edit, EnterPlanMode*, EnterWorktree,
|
|
29
|
-
ExitPlanMode*, ExitWorktree, NotebookEdit, Read, ReportFindings, ScheduleWakeup, SendMessage, Skill,
|
|
30
|
-
TaskCreate, TaskGet, TaskList, TaskOutput, TaskStop, TaskUpdate, WebFetch, WebSearch, Workflow, Write
|
|
31
|
-
(* = interactive-only)
|
|
32
|
-
|
|
33
|
-
## 行为面探针回执(逐字,完整帧在 probe-*.json)
|
|
34
|
-
|
|
35
|
-
| 探针 | 触发 | 回执原文(截断) |
|
|
36
|
-
|---|---|---|
|
|
37
|
-
| Read 不存在文件 | Read /…/does-not-exist-xyz.txt | `File does not exist. Note: your current working directory is /home/ubuntu/cc-probe-home/work.`(is_error=true) |
|
|
38
|
-
| Edit old_string 不匹配 | Read 后 Edit 假串 | `<tool_use_error>String to replace not found in file.\nString: THIS_STRING_DOES_NOT_EXIST_123</tool_use_error>` |
|
|
39
|
-
| Bash run_in_background | sleep 8 && echo BGDONE | `Command running in background with ID: <id>. Output is being written to: /tmp/claude-1000/<cwd-slug>/<uuid>/tasks/<id>.output. You will be notified when it completes. To check interim output, use Read on that file path.` → 模型转 **TaskOutput** 取结果:`<retrieval_status>success</retrieval_status>` + `<task_id>` + `<task_type>local_bash</task_type>` + `<status>completed</status>` + `<exit_code>0</exit_code>` + `<output>BGDONE</output>` |
|
|
40
|
-
| 搜索空结果 | glob **/*.zzz + 内容搜索(无 Glob/Grep 工具) | 模型两次用 Bash;空结果回执=`(Bash completed with no output)` |
|
|
41
|
-
| Task 族(TodoWrite 后继) | TaskCreate ×3 + TaskUpdate | `Task #N created successfully: <subject>` / `Updated task #1 status` |
|
|
42
|
-
|
|
43
|
-
转介链实证:**Bash(bg)→回执引导 Read 输出文件 / 系统通知,模型实际走 TaskOutput→(TaskStop 可终止)**;搜索无专用工具,负空间由 Bash 兜底。
|
|
44
|
-
|
|
45
|
-
## 文件清单
|
|
46
|
-
|
|
47
|
-
| 文件 | 内容 |
|
|
48
|
-
|---|---|
|
|
49
|
-
| `tools-array.json` | 全 27 工具 name+description+input_schema(交互态超集,`_mount` 标注;`interactive_only` 列表) |
|
|
50
|
-
| `system-prompt.txt` | 系统提示全文 ×2 变体(print/interactive),含 cache_control 标注 |
|
|
51
|
-
| `mount-variants.json` | 16 次捕获的逐请求工具名单(req-001..015=-p 含 plan 模式,req-016=交互态) |
|
|
52
|
-
| `raw-capture-print.json` / `raw-capture-interactive.json` | 两态原始捕获(model/system/tools/max_tokens) |
|
|
53
|
-
| `probe-read-missing.json` `probe-edit-mismatch.json` `probe-bash-bg.json` `probe-search-empty.json` `probe-task-family.json` | 行为探针完整 stream-json(含 tool_use/tool_result 帧) |
|
|
54
|
-
| `plan-mode-run.json` | `--permission-mode plan` 冒烟结果(工具面不变的证据之一) |
|
|
55
|
-
| `probes.status` | 各探针 rc(全 0) |
|
|
56
|
-
|
|
57
|
-
## 已知盲区
|
|
58
|
-
|
|
59
|
-
- **ToolSearch / MCP 工具 / Monitor**:未出现在 2.1.198 任一态。ToolSearch 需 deferred 工具(fresh 配置无 MCP/插件)才可能挂;
|
|
60
|
-
Monitor 属更新版 CC 的面(2.1.198 无此工具)。deferred/MCP 挂载条件未采。
|
|
61
|
-
- **Skill 工具**:定义已采,但 fresh 配置零技能,可用技能列表注入形态未采。
|
|
62
|
-
- **Agent 工具**:定义已采(desc 1446 chars);可用 agent 类型清单经 system-reminder 注入,首 turn 捕获不含(在 messages 里,捕获只存 system/tools)。
|
|
63
|
-
- **WebSearch/WebFetch/Workflow/Cron 族/ScheduleWakeup/SendMessage/Worktree 族/ReportFindings/NotebookEdit/Write**:
|
|
64
|
-
定义已采,行为路径本轮未探(WebSearch/WebFetch 疑似 server-side 执行,DeepSeek 端点大概率不支持)。
|
|
65
|
-
- **AskUserQuestion/EnterPlanMode/ExitPlanMode**:仅交互态挂载,行为路径需交互会话,本轮只采到定义。
|
|
66
|
-
- **TodoWrite 提醒形态**:工具已不存在,对应探针改为 Task 族(见上表);Task 族的 system-reminder 提醒(如漏更新提醒)未触发到。
|
|
67
|
-
- messages 侧(user turn 的 system-reminder 全形态、subagent 结果注入)不在捕获范围(代理只存 system/tools 字段)。
|
|
68
|
-
|
|
69
|
-
## 机上遗留(可复用)
|
|
70
|
-
|
|
71
|
-
`~/cc-probe-home/`:`env.sh`(隔离环境,source ~/sema-tb/.env 读 key)、`proxy.py`(捕获反代,已停)、
|
|
72
|
-
`probes.sh`(探针 runner)、`out/`(本目录全部产物副本 + capture/req-*.json 16 份)。CC 二进制在 `~/.local/bin/claude`。
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# CC 2.1.198 采集防灰度加固审计(design/139 腿 B2)
|
|
2
|
-
|
|
3
|
-
日期:2026-07-08。目的:回应 clay 警告——「CC 可能有分支逻辑/灰度版本,采集若命中特殊版本,后续所有 port 都错」。
|
|
4
|
-
两条证据线:① 二次独立活体采集逐字节对比;② 静态源(claude-cli-2.1.198.pretty.js,26.4MB)交叉核对 27 工具全部 description 文本。
|
|
5
|
-
|
|
6
|
-
## ① 二次采集 diff 结论:**逐字节稳定,零文本漂移**
|
|
7
|
-
|
|
8
|
-
方法:海外机全新隔离环境 `~/cc-probe-home2`(**全新 CLAUDE_CONFIG_DIR + 全新 machine 配置种子**,独立捕获反代 127.0.0.1:8898),
|
|
9
|
-
同一二进制(2.1.198)、同模型(deepseek-v4-pro),print 态 + 交互态(tmux)各采一次,与首采
|
|
10
|
-
`raw-capture-print.json` / `raw-capture-interactive.json` 全字段对比。二采原始件已存
|
|
11
|
-
`raw-capture2-print.json` / `raw-capture2-interactive.json`。
|
|
12
|
-
|
|
13
|
-
| 对比项 | print 态 | 交互态 |
|
|
14
|
-
|---|---|---|
|
|
15
|
-
| 工具数 | 24 = 24 | 27 = 27 |
|
|
16
|
-
| 工具名单 | 完全一致 | 完全一致 |
|
|
17
|
-
| description 逐字节 | **24/24 一致** | **27/27 一致** |
|
|
18
|
-
| input_schema(排序后 JSON) | 0 差异 | 0 差异 |
|
|
19
|
-
| system block0(billing)/block1(身份) | 逐字节一致 | 逐字节一致 |
|
|
20
|
-
| system block2(主提示) | 仅 2 处动态段 | 仅 2 处动态段 |
|
|
21
|
-
|
|
22
|
-
block2 的全部差异 = 动态路径插值(memory 目录路径、`Primary working directory`),排除后逐字节一致。
|
|
23
|
-
**结论:同版本、同模型、同 env 下,CC 2.1.198 的工具面与系统提示是确定性的;首采不是一次性的灰度快照。**
|
|
24
|
-
(边界:两次采集均 `DISABLE_TELEMETRY=1 + CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`,远程 feature-flag 拉取被禁,
|
|
25
|
-
命中的都是 gate **默认值**——见 ③,这正是我们要的可复现基线,但意味着开着 nonessential traffic 的用户可能被 ramp 到别的文案。)
|
|
26
|
-
|
|
27
|
-
## ② 27 工具三态表(静态源交叉)
|
|
28
|
-
|
|
29
|
-
判据:VERBATIM = 完整 description 在源内连续逐字命中;TEMPLATE = 源内为模板字符串,经 `${}` 插值/条件分支拼出(逐行核对,
|
|
30
|
-
缺失行均已定位到插值/分支点);NOT-FOUND = 源内无锚(可能 server 下发)。**结果:NOT-FOUND = 0,无 server 下发文本。**
|
|
31
|
-
|
|
32
|
-
| 工具 | 判态 | 插值/分支要点 |
|
|
33
|
-
|---|---|---|
|
|
34
|
-
| ExitPlanMode | **VERBATIM** | — |
|
|
35
|
-
| ReportFindings | **VERBATIM** | 挂载无条件;`tengu_report_findings_tool`(默认 false)只控 /review 流注入,非挂载 |
|
|
36
|
-
| TaskGet | **VERBATIM** | — |
|
|
37
|
-
| TaskStop | **VERBATIM** | — |
|
|
38
|
-
| TaskList / TaskCreate / TaskUpdate | TEMPLATE(近全文命中) | 仅个别行插值(如 `pending` 状态行);文本实质静态 |
|
|
39
|
-
| Agent | TEMPLATE | agent 类型清单动态;fork 变体分支(`t ?` fork 文案 `:` 标准 subagent_type 文案);`${is}`/`${O_}` 工具名常量;remote isolation 行随 remote backend 可用性 |
|
|
40
|
-
| AskUserQuestion | TEMPLATE ⚠️ | **提示尾段 = `nt("tengu_cinder_plover","")` 远程文本槽:非空则整段替换内置 guidance**;另有 `cpa[Rln()]` 环境变体追加。27 工具中唯一 description 可被远程整段换文的 |
|
|
41
|
-
| Bash | TEMPLATE | 超时数值 `${R8t()}/${cgt()}`(env 可调);git 段 pre-ship gate 条件尾巴 `${c ? …}`;**Co-Authored-By 名字=模型条件**(first-party 模型→模型名,未知第三方→"Claude";settings attribution/includeCoAuthoredBy 可覆盖) |
|
|
42
|
-
| CronCreate | TEMPLATE | `${doe}` 7 天上限、`${AC}/${p2}` 工具名、示例日期插值 |
|
|
43
|
-
| CronDelete / CronList | TEMPLATE | **双变体分支**:durable 开启与否给不同文案(`e ? "…scheduled_tasks.json…" : "…in-memory session store…"`) |
|
|
44
|
-
| Edit | TEMPLATE | `${t ? "line number + a single tab or \`:\`" : "line number + tab"}` 分支(tab 分隔符实验,cf. `tengu_tab_read_sep`) |
|
|
45
|
-
| EnterPlanMode | TEMPLATE | 61 行仅 4 行插值(工具名互指) |
|
|
46
|
-
| EnterWorktree / ExitWorktree | TEMPLATE | 路径/tmux 相关行条件拼接 |
|
|
47
|
-
| NotebookEdit / Write | TEMPLATE | 小幅插值(必须先 Read 条款等) |
|
|
48
|
-
| Read | TEMPLATE | `${hlt}`=2000 行数;PDF 段 `${mlt() ? …}`;免重读行 = 静态常量 `Oqi` 无条件追加(行为侧另有 `tengu_read_dedup_killswitch`,默认 false=去重开) |
|
|
49
|
-
| ScheduleWakeup | TEMPLATE | 大模板 `F4t`,/loop 模式插值 |
|
|
50
|
-
| SendMessage | TEMPLATE | `${""}` 空槽 + teammate 示例动态 |
|
|
51
|
-
| Skill | TEMPLATE | 技能清单/目录 scoping 行插值 |
|
|
52
|
-
| TaskOutput | TEMPLATE | 按 task 类型(bash/local_agent/remote_agent)条件行 |
|
|
53
|
-
| WebFetch | TEMPLATE | MCP 替代行条件 |
|
|
54
|
-
| WebSearch | TEMPLATE ⚠️ | 日期 `${t}` 插值;**整个 description 有两套变体**,`yg(model)` 分支(见 ③-1) |
|
|
55
|
-
| Workflow | TEMPLATE | 18997 字符单一大模板 `J1o`;含 4 个**当前为空串的注入槽常量**(`q0m/W0m/G0m`,`j0m="'worktree'"`)= 未来版本的注入 seam;2.1.198 内容本身无运行时分支 |
|
|
56
|
-
|
|
57
|
-
## ③ 灰度/分支机制清单(源码实锤)
|
|
58
|
-
|
|
59
|
-
### 1. `yg(model)` 双提示面:lean vs legacy(影响最大)
|
|
60
|
-
```
|
|
61
|
-
yg = memoize(e => {
|
|
62
|
-
if (!e) return false;
|
|
63
|
-
if (truthy(env.CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT)) return true;
|
|
64
|
-
if (falsy(env.CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT)) return false;
|
|
65
|
-
return !LBd(e) || OBd(e);
|
|
66
|
-
})
|
|
67
|
-
```
|
|
68
|
-
- `LBd(model)`=legacy 名单:`claude-3-*`、haiku、sonnet、`claude-opus-4-0/1/5/6`…;`lean_prompt` 能力标记或 `claude-mythos-5` 强制非 legacy。
|
|
69
|
-
- `OBd(model)`:settings `simple_system_prompt` 按模型 opt-in,**或远程配置 `tengu_velvet_cascade` 的 models 数组命中**(= 按模型灰度 ramp)。
|
|
70
|
-
- 多个工具(WebSearch、Read、Bash、Agent…)据此在**两套完整文案**间切换。我们采到的是 `yg=true` 的 **lean 变体**
|
|
71
|
-
(deepseek 不在 legacy 名单)。**lean = CC 的前进方向**(mythos-5 显式 lean),port 以 lean 锚为准是对的;
|
|
72
|
-
但用 sonnet/opus-4.x 复采会得到另一套旧文案——**别把那当漂移**。
|
|
73
|
-
|
|
74
|
-
### 2. 远程配置面 = GrowthBook(非 statsig)
|
|
75
|
-
`nt(key, default)`:先查本地 override(settings/env),再查 `cachedGrowthBookFeatures`;**246 个 `tengu_*` config key**
|
|
76
|
-
(另有 1503 个 `tengu_*` 遥测事件名,勿混)。statsig 仅残留目录名。采集环境禁 nonessential traffic → 全部命中默认值。
|
|
77
|
-
工具面直接相关的 key:`tengu_workflows_enabled`、`tengu_velvet_cascade`、`tengu_cinder_plover`、`tengu_report_findings_tool`、
|
|
78
|
-
`tengu_tool_search_unsupported_models`(默认 `["claude-3-5-haiku","claude-3-haiku"]`)、`tengu_non_deferrable_builtins`、
|
|
79
|
-
`tengu_fold_tool`、`tengu_read_dedup_killswitch`、`tengu_tab_read_sep`。
|
|
80
|
-
|
|
81
|
-
### 3. Workflow 挂载 = 三层门(非 description 灰度)
|
|
82
|
-
```
|
|
83
|
-
db(): managedSettings.disableWorkflows → off
|
|
84
|
-
env CLAUDE_CODE_WORKFLOWS truthy → nt("tengu_workflows_enabled", true) 定 available+defaultOn
|
|
85
|
-
env falsy → off;远程 gate off → off
|
|
86
|
-
否则 available=true, defaultOn = (订阅 tier !== "pro") // pro 档默认关!
|
|
87
|
-
用户 /config enableWorkflows 覆盖 defaultOn
|
|
88
|
-
```
|
|
89
|
-
validateInput 的报错原文也点名 "org policy, **launch gate**, or the Dynamic workflows setting"。
|
|
90
|
-
opt-in/ultracode 段文本本身在 2.1.198 是静态的,**无版本 gate**。
|
|
91
|
-
|
|
92
|
-
### 4. 24/27 两态差 = 确定性 interactive 分支(非灰度)
|
|
93
|
-
- AskUserQuestion / ExitPlanMode `isEnabled()`:`hr()`(=!isInteractive)时关,**除非设置了 permissionPromptToolName**
|
|
94
|
-
(即 SDK 嵌入带 canUseTool 时 print 态也会挂!);有 allowedChannels 且非交互也关。
|
|
95
|
-
- EnterPlanMode:`KF.isEnabled()`(plan 管理器,交互态挂)。
|
|
96
|
-
- 结论:print/interactive 差异是代码内确定分支,两次采集均复现,可放心作为双态锚。
|
|
97
|
-
|
|
98
|
-
## ④ 对 port 决策的影响
|
|
99
|
-
|
|
100
|
-
**总判:首采基线成立。** 二采逐字节复现 + 全部 27 工具文本在静态源找到锚,不存在 server 下发描述文本;
|
|
101
|
-
已落的 port 批(deep-diff HIGH-1 + M2/M4/M5/M7/M8/M9/M12)锚文本全部核实为源内静态或稳定模板段,**无一需要回滚**。
|
|
102
|
-
|
|
103
|
-
需标注的复核级别:
|
|
104
|
-
| 级别 | 项 | 理由 |
|
|
105
|
-
|---|---|---|
|
|
106
|
-
| 🔴 待复核(可远程换文) | AskUserQuestion guidance 段 | `tengu_cinder_plover` 非空即整段替换;若未来 port AskUserQuestion 文案,以采集值为快照、标注可灰度 |
|
|
107
|
-
| 🟡 条件文本(port 需带条件) | Bash Co-Authored-By 名字、git pre-ship 尾巴;Cron 双变体;Edit tab 分支;Read PDF 段;超时/行数数值 | 都是确定性条件/env 插值,port 时抄条件而非抄字面值 |
|
|
108
|
-
| 🟡 双面文案 | WebSearch/Read/Bash/Agent 的 lean vs legacy | 我们锚 = lean(前进方向);对 legacy Claude 模型复采会不同,预期内 |
|
|
109
|
-
| 🟢 稳定 | Task 族全部、ExitPlanMode、ReportFindings、Workflow 大模板(含 opt-in/ultracode 段)、Agent relay/SendMessage 转介行 | 源内静态,双采一致 |
|
|
110
|
-
|
|
111
|
-
复采纪律(后续任何 CC 版本升级重采时):固定 `DISABLE_TELEMETRY=1 + CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`
|
|
112
|
-
(锁 gate 默认值),固定模型名,print+interactive 双态各一次,与本目录基线做逐字节 diff;
|
|
113
|
-
若要探真实灰度面,单独开一腿放开 nonessential traffic 对照。
|
|
114
|
-
|
|
115
|
-
## 证据文件
|
|
116
|
-
- `raw-capture2-print.json` / `raw-capture2-interactive.json`:二次采集原始件(独立 config dir,已扫 key 零泄漏)
|
|
117
|
-
- 首采基线:`raw-capture-print.json` / `raw-capture-interactive.json` / `tools-array.json` / `system-prompt.txt`
|
|
118
|
-
- 静态源:`/Users/clay/开发/gittea/claude-198/cc-2.1.198/package/claude-cli-2.1.198.pretty.js`
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"capture": {
|
|
3
|
-
"date": "2026-07-09",
|
|
4
|
-
"method": "live current-CC harness session (Claude Code, Fable 5), deferred-tool schema fetch (ToolSearch select) — the exact probe P1/P2/P12 asked for: 现行 CC 活体 schema, not the 198 static bundle",
|
|
5
|
-
"purpose": "deep-diff 残差批 M17 (Monitor ws dual-mode) / M19 (ExitWorktree discard gate) / M22 (EnterWorktree path entry) 的判决锚",
|
|
6
|
-
"tools_captured": ["Monitor", "EnterWorktree", "ExitWorktree"]
|
|
7
|
-
},
|
|
8
|
-
"verdicts": {
|
|
9
|
-
"M17": "CLOSED — the live current-CC Monitor input_schema is SHELL-SINGLE-MODE: {command, description, persistent, timeout_ms}. The ws?:{url,protocols} branch seen in the deep-dive bundle is GONE from the live schema. sema's shell-single-mode Monitor is aligned with current CC; no ws port needed.",
|
|
10
|
-
"M19": "STANDS — live CC ExitWorktree confirms `action` required enum[keep|remove] + `discard_changes` (refuse-and-list gate for dirty trees). sema had only `keep?` (model could never discard a dirty tree) → minimal fix: `discardChanges?` param.",
|
|
11
|
-
"M22": "STANDS — live CC EnterWorktree confirms `path` entry into an existing registered worktree (mutually exclusive with `name`; must appear in `git worktree list`; switch-while-in-session allowed, previous tree left untouched; path-entered trees are never removed by ExitWorktree) → minimal fix: `path?` param."
|
|
12
|
-
},
|
|
13
|
-
"monitor": {
|
|
14
|
-
"input_schema": {
|
|
15
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
16
|
-
"additionalProperties": false,
|
|
17
|
-
"properties": {
|
|
18
|
-
"command": { "description": "Shell command or script. Each stdout line is an event; exit ends the watch.", "type": "string" },
|
|
19
|
-
"description": { "description": "Short human-readable description of what you are monitoring (shown in notifications).", "type": "string" },
|
|
20
|
-
"persistent": { "default": false, "description": "Run for the lifetime of the session (no timeout). Use for session-length watches like PR monitoring or log tails. Stop with TaskStop.", "type": "boolean" },
|
|
21
|
-
"timeout_ms": { "default": 300000, "description": "Kill the monitor after this deadline. Default 300000ms, max 3600000ms. Ignored when persistent is true.", "minimum": 1000, "type": "number" }
|
|
22
|
-
},
|
|
23
|
-
"required": ["description", "timeout_ms", "persistent", "command"],
|
|
24
|
-
"type": "object"
|
|
25
|
-
},
|
|
26
|
-
"description_first_line": "Start a background monitor that streams events from a long-running script. Each stdout line is an event — you keep working and notifications arrive in the chat. Events arrive on their own schedule and are not replies from the user, even if one lands while you're waiting for the user to answer a question.",
|
|
27
|
-
"description_note": "Live desc is a much longer guidance card (pick-by-notification-count Bash-bg vs Monitor decision tree, script-quality/line-buffering, coverage-of-terminal-states, output-volume discipline, 200ms batching, persistent/TaskStop). No ws/WebSocket event-source mode anywhere in desc or schema. Full-desc diff vs sema MONITOR_DESCRIPTION is P1 (separate item, not in this batch)."
|
|
28
|
-
},
|
|
29
|
-
"enter_worktree": {
|
|
30
|
-
"input_schema": {
|
|
31
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
32
|
-
"additionalProperties": false,
|
|
33
|
-
"properties": {
|
|
34
|
-
"name": { "description": "Optional name for a new worktree. Each \"/\"-separated segment may contain only letters, digits, dots, underscores, and dashes; max 64 chars total. A random name is generated if not provided. Mutually exclusive with `path`.", "type": "string" },
|
|
35
|
-
"path": { "description": "Path to an existing worktree of the current repository to switch into instead of creating a new one. Must appear in `git worktree list` for the current repo. Mutually exclusive with `name`.", "type": "string" }
|
|
36
|
-
},
|
|
37
|
-
"type": "object"
|
|
38
|
-
},
|
|
39
|
-
"description_path_section_verbatim": "## Entering an existing worktree\n\nPass `path` instead of `name` to switch the session into a worktree that already exists (e.g., one you just created with `git worktree add`). The path must appear in `git worktree list` for the current repository — paths that are not registered worktrees of this repo are rejected. ExitWorktree will not remove a worktree entered this way; use `action: \"keep\"` to return to the original directory.\n\nSwitching with `path` also works when the session is already in a worktree (the previous worktree is left on disk, untouched, and only the new one is tracked for exit-time cleanup), and from agents whose working directory was pinned at launch (subagent isolation or explicit cwd). In both cases the target must be a worktree under `.claude/worktrees/` of the same repository, and from a pinned agent the switch only affects this agent, not the parent session. After a further switch, previously-visited worktrees are no longer writable — re-issue EnterWorktree with `path` to return to one.",
|
|
40
|
-
"description_requirements_verbatim": "## Requirements\n\n- Must be in a git repository, OR have WorktreeCreate/WorktreeRemove hooks configured in settings.json\n- Must not already be in a worktree session when creating a new worktree (`name`); switching into another existing worktree via `path` is allowed"
|
|
41
|
-
},
|
|
42
|
-
"exit_worktree": {
|
|
43
|
-
"input_schema": {
|
|
44
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
45
|
-
"additionalProperties": false,
|
|
46
|
-
"properties": {
|
|
47
|
-
"action": { "description": "\"keep\" leaves the worktree and branch on disk; \"remove\" deletes both.", "type": "string", "enum": ["keep", "remove"] },
|
|
48
|
-
"discard_changes": { "description": "Required true when action is \"remove\" and the worktree has uncommitted files or unmerged commits. The tool will refuse and list them otherwise.", "type": "boolean" }
|
|
49
|
-
},
|
|
50
|
-
"required": ["action"],
|
|
51
|
-
"additionalProperties": false,
|
|
52
|
-
"type": "object"
|
|
53
|
-
},
|
|
54
|
-
"description_parameters_section_verbatim": "## Parameters\n\n- `action` (required): `\"keep\"` or `\"remove\"`\n - `\"keep\"` — leave the worktree directory and branch intact on disk. Use this if the user wants to come back to the work later, or if there are changes to preserve.\n - `\"remove\"` — delete the worktree directory and its branch. Use this for a clean exit when the work is done or abandoned.\n- `discard_changes` (optional, default false): only meaningful with `action: \"remove\"`. If the worktree has uncommitted files or commits not on the original branch, the tool will REFUSE to remove it unless this is set to `true`. If the tool returns an error listing changes, confirm with the user before re-invoking with `discard_changes: true`."
|
|
55
|
-
}
|
|
56
|
-
}
|