@sema-ai/core 1.275.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.
Files changed (962) hide show
  1. package/CHANGELOG.md +5433 -0
  2. package/LICENSE +27 -0
  3. package/NOTICE.md +30 -0
  4. package/README.md +1040 -0
  5. package/dist/agents/agent-definition.d.ts +10 -0
  6. package/dist/agents/agent-definition.d.ts.map +1 -0
  7. package/dist/agents/agent-definition.js +18 -0
  8. package/dist/agents/agent-definition.js.map +1 -0
  9. package/dist/agents/builtin-agents.d.ts +69 -0
  10. package/dist/agents/builtin-agents.d.ts.map +1 -0
  11. package/dist/agents/builtin-agents.js +177 -0
  12. package/dist/agents/builtin-agents.js.map +1 -0
  13. package/dist/agents/cascade.d.ts +101 -0
  14. package/dist/agents/cascade.d.ts.map +1 -0
  15. package/dist/agents/cascade.js +189 -0
  16. package/dist/agents/cascade.js.map +1 -0
  17. package/dist/agents/observer.d.ts +209 -0
  18. package/dist/agents/observer.d.ts.map +1 -0
  19. package/dist/agents/observer.js +495 -0
  20. package/dist/agents/observer.js.map +1 -0
  21. package/dist/agents/repair-loop.d.ts +236 -0
  22. package/dist/agents/repair-loop.d.ts.map +1 -0
  23. package/dist/agents/repair-loop.js +293 -0
  24. package/dist/agents/repair-loop.js.map +1 -0
  25. package/dist/agents/session-util.d.ts +8 -0
  26. package/dist/agents/session-util.d.ts.map +1 -0
  27. package/dist/agents/session-util.js +9 -0
  28. package/dist/agents/session-util.js.map +1 -0
  29. package/dist/agents/subagent-steps.d.ts +93 -0
  30. package/dist/agents/subagent-steps.d.ts.map +1 -0
  31. package/dist/agents/subagent-steps.js +206 -0
  32. package/dist/agents/subagent-steps.js.map +1 -0
  33. package/dist/agents/subagent.d.ts +441 -0
  34. package/dist/agents/subagent.d.ts.map +1 -0
  35. package/dist/agents/subagent.js +2492 -0
  36. package/dist/agents/subagent.js.map +1 -0
  37. package/dist/agents/suspend-guard.d.ts +35 -0
  38. package/dist/agents/suspend-guard.d.ts.map +1 -0
  39. package/dist/agents/suspend-guard.js +48 -0
  40. package/dist/agents/suspend-guard.js.map +1 -0
  41. package/dist/agents/teacher.d.ts +137 -0
  42. package/dist/agents/teacher.d.ts.map +1 -0
  43. package/dist/agents/teacher.js +575 -0
  44. package/dist/agents/teacher.js.map +1 -0
  45. package/dist/agents/team.d.ts +211 -0
  46. package/dist/agents/team.d.ts.map +1 -0
  47. package/dist/agents/team.js +293 -0
  48. package/dist/agents/team.js.map +1 -0
  49. package/dist/agents/tool-filter.d.ts +29 -0
  50. package/dist/agents/tool-filter.d.ts.map +1 -0
  51. package/dist/agents/tool-filter.js +50 -0
  52. package/dist/agents/tool-filter.js.map +1 -0
  53. package/dist/agents/verify.d.ts +177 -0
  54. package/dist/agents/verify.d.ts.map +1 -0
  55. package/dist/agents/verify.js +305 -0
  56. package/dist/agents/verify.js.map +1 -0
  57. package/dist/bench/metrics.d.ts +714 -0
  58. package/dist/bench/metrics.d.ts.map +1 -0
  59. package/dist/bench/metrics.js +618 -0
  60. package/dist/bench/metrics.js.map +1 -0
  61. package/dist/bin/sema-tb.d.ts +3 -0
  62. package/dist/bin/sema-tb.d.ts.map +1 -0
  63. package/dist/bin/sema-tb.js +516 -0
  64. package/dist/bin/sema-tb.js.map +1 -0
  65. package/dist/bin/tb-env.d.ts +13 -0
  66. package/dist/bin/tb-env.d.ts.map +1 -0
  67. package/dist/bin/tb-env.js +26 -0
  68. package/dist/bin/tb-env.js.map +1 -0
  69. package/dist/brain/anthropic.d.ts +46 -0
  70. package/dist/brain/anthropic.d.ts.map +1 -0
  71. package/dist/brain/anthropic.js +830 -0
  72. package/dist/brain/anthropic.js.map +1 -0
  73. package/dist/brain/circuit-breaker.d.ts +46 -0
  74. package/dist/brain/circuit-breaker.d.ts.map +1 -0
  75. package/dist/brain/circuit-breaker.js +173 -0
  76. package/dist/brain/circuit-breaker.js.map +1 -0
  77. package/dist/brain/degrading.d.ts +98 -0
  78. package/dist/brain/degrading.d.ts.map +1 -0
  79. package/dist/brain/degrading.js +249 -0
  80. package/dist/brain/degrading.js.map +1 -0
  81. package/dist/brain/errors.d.ts +31 -0
  82. package/dist/brain/errors.d.ts.map +1 -0
  83. package/dist/brain/errors.js +58 -0
  84. package/dist/brain/errors.js.map +1 -0
  85. package/dist/brain/failover.d.ts +18 -0
  86. package/dist/brain/failover.d.ts.map +1 -0
  87. package/dist/brain/failover.js +118 -0
  88. package/dist/brain/failover.js.map +1 -0
  89. package/dist/brain/model-presets.d.ts +36 -0
  90. package/dist/brain/model-presets.d.ts.map +1 -0
  91. package/dist/brain/model-presets.js +54 -0
  92. package/dist/brain/model-presets.js.map +1 -0
  93. package/dist/brain/openai.d.ts +43 -0
  94. package/dist/brain/openai.d.ts.map +1 -0
  95. package/dist/brain/openai.js +784 -0
  96. package/dist/brain/openai.js.map +1 -0
  97. package/dist/brain/reasoning.d.ts +138 -0
  98. package/dist/brain/reasoning.d.ts.map +1 -0
  99. package/dist/brain/reasoning.js +146 -0
  100. package/dist/brain/reasoning.js.map +1 -0
  101. package/dist/brain/repetition.d.ts +60 -0
  102. package/dist/brain/repetition.d.ts.map +1 -0
  103. package/dist/brain/repetition.js +121 -0
  104. package/dist/brain/repetition.js.map +1 -0
  105. package/dist/brain/request-params.d.ts +29 -0
  106. package/dist/brain/request-params.d.ts.map +1 -0
  107. package/dist/brain/request-params.js +78 -0
  108. package/dist/brain/request-params.js.map +1 -0
  109. package/dist/brain/retry.d.ts +18 -0
  110. package/dist/brain/retry.d.ts.map +1 -0
  111. package/dist/brain/retry.js +42 -0
  112. package/dist/brain/retry.js.map +1 -0
  113. package/dist/brain/routing.d.ts +19 -0
  114. package/dist/brain/routing.d.ts.map +1 -0
  115. package/dist/brain/routing.js +44 -0
  116. package/dist/brain/routing.js.map +1 -0
  117. package/dist/brain/status-sink.d.ts +46 -0
  118. package/dist/brain/status-sink.d.ts.map +1 -0
  119. package/dist/brain/status-sink.js +36 -0
  120. package/dist/brain/status-sink.js.map +1 -0
  121. package/dist/brain/stream-engine.d.ts +85 -0
  122. package/dist/brain/stream-engine.d.ts.map +1 -0
  123. package/dist/brain/stream-engine.js +391 -0
  124. package/dist/brain/stream-engine.js.map +1 -0
  125. package/dist/brain/timeout.d.ts +44 -0
  126. package/dist/brain/timeout.d.ts.map +1 -0
  127. package/dist/brain/timeout.js +41 -0
  128. package/dist/brain/timeout.js.map +1 -0
  129. package/dist/brain/tool-call-repair.d.ts +15 -0
  130. package/dist/brain/tool-call-repair.d.ts.map +1 -0
  131. package/dist/brain/tool-call-repair.js +67 -0
  132. package/dist/brain/tool-call-repair.js.map +1 -0
  133. package/dist/brain/walltime.d.ts +14 -0
  134. package/dist/brain/walltime.d.ts.map +1 -0
  135. package/dist/brain/walltime.js +14 -0
  136. package/dist/brain/walltime.js.map +1 -0
  137. package/dist/core/arg-summary.d.ts +19 -0
  138. package/dist/core/arg-summary.d.ts.map +1 -0
  139. package/dist/core/arg-summary.js +96 -0
  140. package/dist/core/arg-summary.js.map +1 -0
  141. package/dist/core/ask-question.d.ts +113 -0
  142. package/dist/core/ask-question.d.ts.map +1 -0
  143. package/dist/core/ask-question.js +246 -0
  144. package/dist/core/ask-question.js.map +1 -0
  145. package/dist/core/auto-compaction.d.ts +341 -0
  146. package/dist/core/auto-compaction.d.ts.map +1 -0
  147. package/dist/core/auto-compaction.js +495 -0
  148. package/dist/core/auto-compaction.js.map +1 -0
  149. package/dist/core/auto-promote.d.ts +126 -0
  150. package/dist/core/auto-promote.d.ts.map +1 -0
  151. package/dist/core/auto-promote.js +171 -0
  152. package/dist/core/auto-promote.js.map +1 -0
  153. package/dist/core/background-shell.d.ts +128 -0
  154. package/dist/core/background-shell.d.ts.map +1 -0
  155. package/dist/core/background-shell.js +42 -0
  156. package/dist/core/background-shell.js.map +1 -0
  157. package/dist/core/cache-break-detector.d.ts +63 -0
  158. package/dist/core/cache-break-detector.d.ts.map +1 -0
  159. package/dist/core/cache-break-detector.js +0 -0
  160. package/dist/core/cache-break-detector.js.map +1 -0
  161. package/dist/core/canonical-json.d.ts +45 -0
  162. package/dist/core/canonical-json.d.ts.map +1 -0
  163. package/dist/core/canonical-json.js +132 -0
  164. package/dist/core/canonical-json.js.map +1 -0
  165. package/dist/core/checkpoint-store.d.ts +1101 -0
  166. package/dist/core/checkpoint-store.d.ts.map +1 -0
  167. package/dist/core/checkpoint-store.js +514 -0
  168. package/dist/core/checkpoint-store.js.map +1 -0
  169. package/dist/core/consolidate-scope.d.ts +94 -0
  170. package/dist/core/consolidate-scope.d.ts.map +1 -0
  171. package/dist/core/consolidate-scope.js +158 -0
  172. package/dist/core/consolidate-scope.js.map +1 -0
  173. package/dist/core/context-edit.d.ts +82 -0
  174. package/dist/core/context-edit.d.ts.map +1 -0
  175. package/dist/core/context-edit.js +149 -0
  176. package/dist/core/context-edit.js.map +1 -0
  177. package/dist/core/context-guard.d.ts +43 -0
  178. package/dist/core/context-guard.d.ts.map +1 -0
  179. package/dist/core/context-guard.js +171 -0
  180. package/dist/core/context-guard.js.map +1 -0
  181. package/dist/core/dynamic-recall.d.ts +100 -0
  182. package/dist/core/dynamic-recall.d.ts.map +1 -0
  183. package/dist/core/dynamic-recall.js +108 -0
  184. package/dist/core/dynamic-recall.js.map +1 -0
  185. package/dist/core/exec-gate.d.ts +74 -0
  186. package/dist/core/exec-gate.d.ts.map +1 -0
  187. package/dist/core/exec-gate.js +143 -0
  188. package/dist/core/exec-gate.js.map +1 -0
  189. package/dist/core/exec-output-tail.d.ts +37 -0
  190. package/dist/core/exec-output-tail.d.ts.map +1 -0
  191. package/dist/core/exec-output-tail.js +63 -0
  192. package/dist/core/exec-output-tail.js.map +1 -0
  193. package/dist/core/file-snapshot-store.d.ts +137 -0
  194. package/dist/core/file-snapshot-store.d.ts.map +1 -0
  195. package/dist/core/file-snapshot-store.js +319 -0
  196. package/dist/core/file-snapshot-store.js.map +1 -0
  197. package/dist/core/git-worktree-env.d.ts +41 -0
  198. package/dist/core/git-worktree-env.d.ts.map +1 -0
  199. package/dist/core/git-worktree-env.js +64 -0
  200. package/dist/core/git-worktree-env.js.map +1 -0
  201. package/dist/core/hooks.d.ts +372 -0
  202. package/dist/core/hooks.d.ts.map +1 -0
  203. package/dist/core/hooks.js +269 -0
  204. package/dist/core/hooks.js.map +1 -0
  205. package/dist/core/lsp-diagnostics.d.ts +74 -0
  206. package/dist/core/lsp-diagnostics.d.ts.map +1 -0
  207. package/dist/core/lsp-diagnostics.js +125 -0
  208. package/dist/core/lsp-diagnostics.js.map +1 -0
  209. package/dist/core/lsp-protocol.d.ts +28 -0
  210. package/dist/core/lsp-protocol.d.ts.map +1 -0
  211. package/dist/core/lsp-protocol.js +179 -0
  212. package/dist/core/lsp-protocol.js.map +1 -0
  213. package/dist/core/lsp-session.d.ts +56 -0
  214. package/dist/core/lsp-session.d.ts.map +1 -0
  215. package/dist/core/lsp-session.js +185 -0
  216. package/dist/core/lsp-session.js.map +1 -0
  217. package/dist/core/lsp.d.ts +132 -0
  218. package/dist/core/lsp.d.ts.map +1 -0
  219. package/dist/core/lsp.js +147 -0
  220. package/dist/core/lsp.js.map +1 -0
  221. package/dist/core/mcp.d.ts +294 -0
  222. package/dist/core/mcp.d.ts.map +1 -0
  223. package/dist/core/mcp.js +992 -0
  224. package/dist/core/mcp.js.map +1 -0
  225. package/dist/core/media-byte-cap.d.ts +34 -0
  226. package/dist/core/media-byte-cap.d.ts.map +1 -0
  227. package/dist/core/media-byte-cap.js +76 -0
  228. package/dist/core/media-byte-cap.js.map +1 -0
  229. package/dist/core/memory-engine/data-plane.d.ts +103 -0
  230. package/dist/core/memory-engine/data-plane.d.ts.map +1 -0
  231. package/dist/core/memory-engine/data-plane.js +272 -0
  232. package/dist/core/memory-engine/data-plane.js.map +1 -0
  233. package/dist/core/memory-engine/dual-root.d.ts +40 -0
  234. package/dist/core/memory-engine/dual-root.d.ts.map +1 -0
  235. package/dist/core/memory-engine/dual-root.js +95 -0
  236. package/dist/core/memory-engine/dual-root.js.map +1 -0
  237. package/dist/core/memory-engine/engine.d.ts +161 -0
  238. package/dist/core/memory-engine/engine.d.ts.map +1 -0
  239. package/dist/core/memory-engine/engine.js +1110 -0
  240. package/dist/core/memory-engine/engine.js.map +1 -0
  241. package/dist/core/memory-engine/file-backend.d.ts +162 -0
  242. package/dist/core/memory-engine/file-backend.d.ts.map +1 -0
  243. package/dist/core/memory-engine/file-backend.js +948 -0
  244. package/dist/core/memory-engine/file-backend.js.map +1 -0
  245. package/dist/core/memory-engine/frontmatter.d.ts +24 -0
  246. package/dist/core/memory-engine/frontmatter.d.ts.map +1 -0
  247. package/dist/core/memory-engine/frontmatter.js +135 -0
  248. package/dist/core/memory-engine/frontmatter.js.map +1 -0
  249. package/dist/core/memory-engine/index.d.ts +13 -0
  250. package/dist/core/memory-engine/index.d.ts.map +1 -0
  251. package/dist/core/memory-engine/index.js +28 -0
  252. package/dist/core/memory-engine/index.js.map +1 -0
  253. package/dist/core/memory-engine/layout.d.ts +123 -0
  254. package/dist/core/memory-engine/layout.d.ts.map +1 -0
  255. package/dist/core/memory-engine/layout.js +643 -0
  256. package/dist/core/memory-engine/layout.js.map +1 -0
  257. package/dist/core/memory-engine/memory-backend-contract.d.ts +22 -0
  258. package/dist/core/memory-engine/memory-backend-contract.d.ts.map +1 -0
  259. package/dist/core/memory-engine/memory-backend-contract.js +271 -0
  260. package/dist/core/memory-engine/memory-backend-contract.js.map +1 -0
  261. package/dist/core/memory-engine/migrate.d.ts +17 -0
  262. package/dist/core/memory-engine/migrate.d.ts.map +1 -0
  263. package/dist/core/memory-engine/migrate.js +35 -0
  264. package/dist/core/memory-engine/migrate.js.map +1 -0
  265. package/dist/core/memory-engine/scan.d.ts +20 -0
  266. package/dist/core/memory-engine/scan.d.ts.map +1 -0
  267. package/dist/core/memory-engine/scan.js +84 -0
  268. package/dist/core/memory-engine/scan.js.map +1 -0
  269. package/dist/core/memory-engine/scope-contract.d.ts +104 -0
  270. package/dist/core/memory-engine/scope-contract.d.ts.map +1 -0
  271. package/dist/core/memory-engine/scope-contract.js +288 -0
  272. package/dist/core/memory-engine/scope-contract.js.map +1 -0
  273. package/dist/core/memory-engine/sync-client.d.ts +100 -0
  274. package/dist/core/memory-engine/sync-client.d.ts.map +1 -0
  275. package/dist/core/memory-engine/sync-client.js +328 -0
  276. package/dist/core/memory-engine/sync-client.js.map +1 -0
  277. package/dist/core/memory-engine/sync.d.ts +97 -0
  278. package/dist/core/memory-engine/sync.d.ts.map +1 -0
  279. package/dist/core/memory-engine/sync.js +91 -0
  280. package/dist/core/memory-engine/sync.js.map +1 -0
  281. package/dist/core/memory-engine/types.d.ts +279 -0
  282. package/dist/core/memory-engine/types.d.ts.map +1 -0
  283. package/dist/core/memory-engine/types.js +9 -0
  284. package/dist/core/memory-engine/types.js.map +1 -0
  285. package/dist/core/memory-recall.d.ts +261 -0
  286. package/dist/core/memory-recall.d.ts.map +1 -0
  287. package/dist/core/memory-recall.js +600 -0
  288. package/dist/core/memory-recall.js.map +1 -0
  289. package/dist/core/memory-vector.d.ts +24 -0
  290. package/dist/core/memory-vector.d.ts.map +1 -0
  291. package/dist/core/memory-vector.js +51 -0
  292. package/dist/core/memory-vector.js.map +1 -0
  293. package/dist/core/memory.d.ts +502 -0
  294. package/dist/core/memory.d.ts.map +1 -0
  295. package/dist/core/memory.js +881 -0
  296. package/dist/core/memory.js.map +1 -0
  297. package/dist/core/message-utils.d.ts +7 -0
  298. package/dist/core/message-utils.d.ts.map +1 -0
  299. package/dist/core/message-utils.js +10 -0
  300. package/dist/core/message-utils.js.map +1 -0
  301. package/dist/core/oracle-isolation.d.ts +85 -0
  302. package/dist/core/oracle-isolation.d.ts.map +1 -0
  303. package/dist/core/oracle-isolation.js +121 -0
  304. package/dist/core/oracle-isolation.js.map +1 -0
  305. package/dist/core/permission-rules.d.ts +102 -0
  306. package/dist/core/permission-rules.d.ts.map +1 -0
  307. package/dist/core/permission-rules.js +357 -0
  308. package/dist/core/permission-rules.js.map +1 -0
  309. package/dist/core/present-plan-tool.d.ts +28 -0
  310. package/dist/core/present-plan-tool.d.ts.map +1 -0
  311. package/dist/core/present-plan-tool.js +119 -0
  312. package/dist/core/present-plan-tool.js.map +1 -0
  313. package/dist/core/pricing.d.ts +48 -0
  314. package/dist/core/pricing.d.ts.map +1 -0
  315. package/dist/core/pricing.js +46 -0
  316. package/dist/core/pricing.js.map +1 -0
  317. package/dist/core/property-harness.d.ts +126 -0
  318. package/dist/core/property-harness.d.ts.map +1 -0
  319. package/dist/core/property-harness.js +192 -0
  320. package/dist/core/property-harness.js.map +1 -0
  321. package/dist/core/push-queue.d.ts +10 -0
  322. package/dist/core/push-queue.d.ts.map +1 -0
  323. package/dist/core/push-queue.js +42 -0
  324. package/dist/core/push-queue.js.map +1 -0
  325. package/dist/core/remote-env.d.ts +432 -0
  326. package/dist/core/remote-env.d.ts.map +1 -0
  327. package/dist/core/remote-env.js +77 -0
  328. package/dist/core/remote-env.js.map +1 -0
  329. package/dist/core/roles.d.ts +74 -0
  330. package/dist/core/roles.d.ts.map +1 -0
  331. package/dist/core/roles.js +272 -0
  332. package/dist/core/roles.js.map +1 -0
  333. package/dist/core/runner/active-skill-scope.d.ts +64 -0
  334. package/dist/core/runner/active-skill-scope.d.ts.map +1 -0
  335. package/dist/core/runner/active-skill-scope.js +197 -0
  336. package/dist/core/runner/active-skill-scope.js.map +1 -0
  337. package/dist/core/runner/assemble-result.d.ts +191 -0
  338. package/dist/core/runner/assemble-result.d.ts.map +1 -0
  339. package/dist/core/runner/assemble-result.js +250 -0
  340. package/dist/core/runner/assemble-result.js.map +1 -0
  341. package/dist/core/runner/call-cap.d.ts +130 -0
  342. package/dist/core/runner/call-cap.d.ts.map +1 -0
  343. package/dist/core/runner/call-cap.js +151 -0
  344. package/dist/core/runner/call-cap.js.map +1 -0
  345. package/dist/core/runner/grounding-signal.d.ts +12 -0
  346. package/dist/core/runner/grounding-signal.d.ts.map +1 -0
  347. package/dist/core/runner/grounding-signal.js +94 -0
  348. package/dist/core/runner/grounding-signal.js.map +1 -0
  349. package/dist/core/runner/image.d.ts +23 -0
  350. package/dist/core/runner/image.d.ts.map +1 -0
  351. package/dist/core/runner/image.js +151 -0
  352. package/dist/core/runner/image.js.map +1 -0
  353. package/dist/core/runner/memory-consolidation.d.ts +112 -0
  354. package/dist/core/runner/memory-consolidation.d.ts.map +1 -0
  355. package/dist/core/runner/memory-consolidation.js +372 -0
  356. package/dist/core/runner/memory-consolidation.js.map +1 -0
  357. package/dist/core/runner/prepare-task.d.ts +583 -0
  358. package/dist/core/runner/prepare-task.d.ts.map +1 -0
  359. package/dist/core/runner/prepare-task.js +3612 -0
  360. package/dist/core/runner/prepare-task.js.map +1 -0
  361. package/dist/core/runner/prompt-suggestions.d.ts +33 -0
  362. package/dist/core/runner/prompt-suggestions.d.ts.map +1 -0
  363. package/dist/core/runner/prompt-suggestions.js +116 -0
  364. package/dist/core/runner/prompt-suggestions.js.map +1 -0
  365. package/dist/core/runner/runtask.d.ts +274 -0
  366. package/dist/core/runner/runtask.d.ts.map +1 -0
  367. package/dist/core/runner/runtask.js +4606 -0
  368. package/dist/core/runner/runtask.js.map +1 -0
  369. package/dist/core/runner/session-rule-policy.d.ts +28 -0
  370. package/dist/core/runner/session-rule-policy.d.ts.map +1 -0
  371. package/dist/core/runner/session-rule-policy.js +110 -0
  372. package/dist/core/runner/session-rule-policy.js.map +1 -0
  373. package/dist/core/runner/strict-output-schema.d.ts +36 -0
  374. package/dist/core/runner/strict-output-schema.d.ts.map +1 -0
  375. package/dist/core/runner/strict-output-schema.js +365 -0
  376. package/dist/core/runner/strict-output-schema.js.map +1 -0
  377. package/dist/core/runner/synthetic-tools.d.ts +72 -0
  378. package/dist/core/runner/synthetic-tools.d.ts.map +1 -0
  379. package/dist/core/runner/synthetic-tools.js +203 -0
  380. package/dist/core/runner/synthetic-tools.js.map +1 -0
  381. package/dist/core/runner/tool-disclosure.d.ts +117 -0
  382. package/dist/core/runner/tool-disclosure.d.ts.map +1 -0
  383. package/dist/core/runner/tool-disclosure.js +0 -0
  384. package/dist/core/runner/tool-disclosure.js.map +1 -0
  385. package/dist/core/runner/turn-attachments.d.ts +381 -0
  386. package/dist/core/runner/turn-attachments.d.ts.map +1 -0
  387. package/dist/core/runner/turn-attachments.js +596 -0
  388. package/dist/core/runner/turn-attachments.js.map +1 -0
  389. package/dist/core/runner/usage-accounting.d.ts +35 -0
  390. package/dist/core/runner/usage-accounting.d.ts.map +1 -0
  391. package/dist/core/runner/usage-accounting.js +45 -0
  392. package/dist/core/runner/usage-accounting.js.map +1 -0
  393. package/dist/core/runtime.d.ts +9 -0
  394. package/dist/core/runtime.d.ts.map +1 -0
  395. package/dist/core/runtime.js +17 -0
  396. package/dist/core/runtime.js.map +1 -0
  397. package/dist/core/safety-axis-vocab.d.ts +33 -0
  398. package/dist/core/safety-axis-vocab.d.ts.map +1 -0
  399. package/dist/core/safety-axis-vocab.js +35 -0
  400. package/dist/core/safety-axis-vocab.js.map +1 -0
  401. package/dist/core/safety-merge-corpus.d.ts +48 -0
  402. package/dist/core/safety-merge-corpus.d.ts.map +1 -0
  403. package/dist/core/safety-merge-corpus.js +203 -0
  404. package/dist/core/safety-merge-corpus.js.map +1 -0
  405. package/dist/core/scheduler.d.ts +126 -0
  406. package/dist/core/scheduler.d.ts.map +1 -0
  407. package/dist/core/scheduler.js +54 -0
  408. package/dist/core/scheduler.js.map +1 -0
  409. package/dist/core/secret-env.d.ts +23 -0
  410. package/dist/core/secret-env.d.ts.map +1 -0
  411. package/dist/core/secret-env.js +35 -0
  412. package/dist/core/secret-env.js.map +1 -0
  413. package/dist/core/select-model.d.ts +26 -0
  414. package/dist/core/select-model.d.ts.map +1 -0
  415. package/dist/core/select-model.js +58 -0
  416. package/dist/core/select-model.js.map +1 -0
  417. package/dist/core/sensitive-path-policy.d.ts +24 -0
  418. package/dist/core/sensitive-path-policy.d.ts.map +1 -0
  419. package/dist/core/sensitive-path-policy.js +96 -0
  420. package/dist/core/sensitive-path-policy.js.map +1 -0
  421. package/dist/core/session-policy-store.d.ts +102 -0
  422. package/dist/core/session-policy-store.d.ts.map +1 -0
  423. package/dist/core/session-policy-store.js +177 -0
  424. package/dist/core/session-policy-store.js.map +1 -0
  425. package/dist/core/session-reconcile.d.ts +63 -0
  426. package/dist/core/session-reconcile.d.ts.map +1 -0
  427. package/dist/core/session-reconcile.js +71 -0
  428. package/dist/core/session-reconcile.js.map +1 -0
  429. package/dist/core/session-store.d.ts +99 -0
  430. package/dist/core/session-store.d.ts.map +1 -0
  431. package/dist/core/session-store.js +298 -0
  432. package/dist/core/session-store.js.map +1 -0
  433. package/dist/core/session.d.ts +144 -0
  434. package/dist/core/session.d.ts.map +1 -0
  435. package/dist/core/session.js +56 -0
  436. package/dist/core/session.js.map +1 -0
  437. package/dist/core/spec-contract.d.ts +147 -0
  438. package/dist/core/spec-contract.d.ts.map +1 -0
  439. package/dist/core/spec-contract.js +340 -0
  440. package/dist/core/spec-contract.js.map +1 -0
  441. package/dist/core/strategy-store.d.ts +50 -0
  442. package/dist/core/strategy-store.d.ts.map +1 -0
  443. package/dist/core/strategy-store.js +100 -0
  444. package/dist/core/strategy-store.js.map +1 -0
  445. package/dist/core/stub-env.d.ts +35 -0
  446. package/dist/core/stub-env.d.ts.map +1 -0
  447. package/dist/core/stub-env.js +69 -0
  448. package/dist/core/stub-env.js.map +1 -0
  449. package/dist/core/task-notification.d.ts +115 -0
  450. package/dist/core/task-notification.d.ts.map +1 -0
  451. package/dist/core/task-notification.js +247 -0
  452. package/dist/core/task-notification.js.map +1 -0
  453. package/dist/core/task-outcome.d.ts +80 -0
  454. package/dist/core/task-outcome.d.ts.map +1 -0
  455. package/dist/core/task-outcome.js +40 -0
  456. package/dist/core/task-outcome.js.map +1 -0
  457. package/dist/core/task-registry.d.ts +349 -0
  458. package/dist/core/task-registry.d.ts.map +1 -0
  459. package/dist/core/task-registry.js +1751 -0
  460. package/dist/core/task-registry.js.map +1 -0
  461. package/dist/core/tighten-task-spec.d.ts +27 -0
  462. package/dist/core/tighten-task-spec.d.ts.map +1 -0
  463. package/dist/core/tighten-task-spec.js +95 -0
  464. package/dist/core/tighten-task-spec.js.map +1 -0
  465. package/dist/core/tool-detach.d.ts +31 -0
  466. package/dist/core/tool-detach.d.ts.map +1 -0
  467. package/dist/core/tool-detach.js +62 -0
  468. package/dist/core/tool-detach.js.map +1 -0
  469. package/dist/core/tool-errors.d.ts +72 -0
  470. package/dist/core/tool-errors.d.ts.map +1 -0
  471. package/dist/core/tool-errors.js +194 -0
  472. package/dist/core/tool-errors.js.map +1 -0
  473. package/dist/core/tool-name-aliases.d.ts +5 -0
  474. package/dist/core/tool-name-aliases.d.ts.map +1 -0
  475. package/dist/core/tool-name-aliases.js +130 -0
  476. package/dist/core/tool-name-aliases.js.map +1 -0
  477. package/dist/core/tool-policy.d.ts +295 -0
  478. package/dist/core/tool-policy.d.ts.map +1 -0
  479. package/dist/core/tool-policy.js +567 -0
  480. package/dist/core/tool-policy.js.map +1 -0
  481. package/dist/core/tool-result-budget.d.ts +44 -0
  482. package/dist/core/tool-result-budget.d.ts.map +1 -0
  483. package/dist/core/tool-result-budget.js +140 -0
  484. package/dist/core/tool-result-budget.js.map +1 -0
  485. package/dist/core/tool-result-store.d.ts +136 -0
  486. package/dist/core/tool-result-store.d.ts.map +1 -0
  487. package/dist/core/tool-result-store.js +219 -0
  488. package/dist/core/tool-result-store.js.map +1 -0
  489. package/dist/core/tools.d.ts +14 -0
  490. package/dist/core/tools.d.ts.map +1 -0
  491. package/dist/core/tools.js +98 -0
  492. package/dist/core/tools.js.map +1 -0
  493. package/dist/core/trace.d.ts +340 -0
  494. package/dist/core/trace.d.ts.map +1 -0
  495. package/dist/core/trace.js +12 -0
  496. package/dist/core/trace.js.map +1 -0
  497. package/dist/core/types.d.ts +2828 -0
  498. package/dist/core/types.d.ts.map +1 -0
  499. package/dist/core/types.js +2 -0
  500. package/dist/core/types.js.map +1 -0
  501. package/dist/core/untrusted-egress.d.ts +32 -0
  502. package/dist/core/untrusted-egress.d.ts.map +1 -0
  503. package/dist/core/untrusted-egress.js +49 -0
  504. package/dist/core/untrusted-egress.js.map +1 -0
  505. package/dist/core/untrusted-text.d.ts +64 -0
  506. package/dist/core/untrusted-text.d.ts.map +1 -0
  507. package/dist/core/untrusted-text.js +119 -0
  508. package/dist/core/untrusted-text.js.map +1 -0
  509. package/dist/core/warm-resume.d.ts +23 -0
  510. package/dist/core/warm-resume.d.ts.map +1 -0
  511. package/dist/core/warm-resume.js +28 -0
  512. package/dist/core/warm-resume.js.map +1 -0
  513. package/dist/core/with-retry.d.ts +43 -0
  514. package/dist/core/with-retry.d.ts.map +1 -0
  515. package/dist/core/with-retry.js +59 -0
  516. package/dist/core/with-retry.js.map +1 -0
  517. package/dist/core/workflow-journal-store.d.ts +44 -0
  518. package/dist/core/workflow-journal-store.d.ts.map +1 -0
  519. package/dist/core/workflow-journal-store.js +47 -0
  520. package/dist/core/workflow-journal-store.js.map +1 -0
  521. package/dist/core/workflow-run-store-contract.d.ts +31 -0
  522. package/dist/core/workflow-run-store-contract.d.ts.map +1 -0
  523. package/dist/core/workflow-run-store-contract.js +191 -0
  524. package/dist/core/workflow-run-store-contract.js.map +1 -0
  525. package/dist/core/workflow-run-store.d.ts +149 -0
  526. package/dist/core/workflow-run-store.d.ts.map +1 -0
  527. package/dist/core/workflow-run-store.js +110 -0
  528. package/dist/core/workflow-run-store.js.map +1 -0
  529. package/dist/engine/compaction/compaction.d.ts +139 -0
  530. package/dist/engine/compaction/compaction.d.ts.map +1 -0
  531. package/dist/engine/compaction/compaction.js +1030 -0
  532. package/dist/engine/compaction/compaction.js.map +1 -0
  533. package/dist/engine/compaction/utils.d.ts +45 -0
  534. package/dist/engine/compaction/utils.d.ts.map +1 -0
  535. package/dist/engine/compaction/utils.js +203 -0
  536. package/dist/engine/compaction/utils.js.map +1 -0
  537. package/dist/engine/execution-env/kill-tree.d.ts +20 -0
  538. package/dist/engine/execution-env/kill-tree.d.ts.map +1 -0
  539. package/dist/engine/execution-env/kill-tree.js +183 -0
  540. package/dist/engine/execution-env/kill-tree.js.map +1 -0
  541. package/dist/engine/execution-env/node-execution-env.d.ts +133 -0
  542. package/dist/engine/execution-env/node-execution-env.d.ts.map +1 -0
  543. package/dist/engine/execution-env/node-execution-env.js +1031 -0
  544. package/dist/engine/execution-env/node-execution-env.js.map +1 -0
  545. package/dist/engine/harness/agent-harness.d.ts +174 -0
  546. package/dist/engine/harness/agent-harness.d.ts.map +1 -0
  547. package/dist/engine/harness/agent-harness.js +1053 -0
  548. package/dist/engine/harness/agent-harness.js.map +1 -0
  549. package/dist/engine/harness/messages.d.ts +17 -0
  550. package/dist/engine/harness/messages.d.ts.map +1 -0
  551. package/dist/engine/harness/messages.js +122 -0
  552. package/dist/engine/harness/messages.js.map +1 -0
  553. package/dist/engine/harness/types.d.ts +713 -0
  554. package/dist/engine/harness/types.d.ts.map +1 -0
  555. package/dist/engine/harness/types.js +100 -0
  556. package/dist/engine/harness/types.js.map +1 -0
  557. package/dist/engine/llm/diagnostics.d.ts +23 -0
  558. package/dist/engine/llm/diagnostics.d.ts.map +1 -0
  559. package/dist/engine/llm/diagnostics.js +32 -0
  560. package/dist/engine/llm/diagnostics.js.map +1 -0
  561. package/dist/engine/llm/event-stream.d.ts +25 -0
  562. package/dist/engine/llm/event-stream.d.ts.map +1 -0
  563. package/dist/engine/llm/event-stream.js +103 -0
  564. package/dist/engine/llm/event-stream.js.map +1 -0
  565. package/dist/engine/llm/index.d.ts +12 -0
  566. package/dist/engine/llm/index.d.ts.map +1 -0
  567. package/dist/engine/llm/index.js +12 -0
  568. package/dist/engine/llm/index.js.map +1 -0
  569. package/dist/engine/llm/types.d.ts +753 -0
  570. package/dist/engine/llm/types.d.ts.map +1 -0
  571. package/dist/engine/llm/types.js +2 -0
  572. package/dist/engine/llm/types.js.map +1 -0
  573. package/dist/engine/llm/validation.d.ts +8 -0
  574. package/dist/engine/llm/validation.d.ts.map +1 -0
  575. package/dist/engine/llm/validation.js +318 -0
  576. package/dist/engine/llm/validation.js.map +1 -0
  577. package/dist/engine/loop/agent-loop.d.ts +74 -0
  578. package/dist/engine/loop/agent-loop.d.ts.map +1 -0
  579. package/dist/engine/loop/agent-loop.js +1490 -0
  580. package/dist/engine/loop/agent-loop.js.map +1 -0
  581. package/dist/engine/loop/runtime-deps.d.ts +17 -0
  582. package/dist/engine/loop/runtime-deps.d.ts.map +1 -0
  583. package/dist/engine/loop/runtime-deps.js +21 -0
  584. package/dist/engine/loop/runtime-deps.js.map +1 -0
  585. package/dist/engine/loop/types.d.ts +609 -0
  586. package/dist/engine/loop/types.d.ts.map +1 -0
  587. package/dist/engine/loop/types.js +2 -0
  588. package/dist/engine/loop/types.js.map +1 -0
  589. package/dist/engine/lsp/frame-decoder.d.ts +16 -0
  590. package/dist/engine/lsp/frame-decoder.d.ts.map +1 -0
  591. package/dist/engine/lsp/frame-decoder.js +53 -0
  592. package/dist/engine/lsp/frame-decoder.js.map +1 -0
  593. package/dist/engine/lsp/node-lsp-manager.d.ts +105 -0
  594. package/dist/engine/lsp/node-lsp-manager.d.ts.map +1 -0
  595. package/dist/engine/lsp/node-lsp-manager.js +343 -0
  596. package/dist/engine/lsp/node-lsp-manager.js.map +1 -0
  597. package/dist/engine/lsp/stdio-lsp-transport.d.ts +37 -0
  598. package/dist/engine/lsp/stdio-lsp-transport.d.ts.map +1 -0
  599. package/dist/engine/lsp/stdio-lsp-transport.js +185 -0
  600. package/dist/engine/lsp/stdio-lsp-transport.js.map +1 -0
  601. package/dist/engine/session/import-validate.d.ts +44 -0
  602. package/dist/engine/session/import-validate.d.ts.map +1 -0
  603. package/dist/engine/session/import-validate.js +92 -0
  604. package/dist/engine/session/import-validate.js.map +1 -0
  605. package/dist/engine/session/memory-repo.d.ts +25 -0
  606. package/dist/engine/session/memory-repo.d.ts.map +1 -0
  607. package/dist/engine/session/memory-repo.js +59 -0
  608. package/dist/engine/session/memory-repo.js.map +1 -0
  609. package/dist/engine/session/memory-storage.d.ts +14 -0
  610. package/dist/engine/session/memory-storage.d.ts.map +1 -0
  611. package/dist/engine/session/memory-storage.js +17 -0
  612. package/dist/engine/session/memory-storage.js.map +1 -0
  613. package/dist/engine/session/repo-utils.d.ts +11 -0
  614. package/dist/engine/session/repo-utils.d.ts.map +1 -0
  615. package/dist/engine/session/repo-utils.js +40 -0
  616. package/dist/engine/session/repo-utils.js.map +1 -0
  617. package/dist/engine/session/session.d.ts +34 -0
  618. package/dist/engine/session/session.d.ts.map +1 -0
  619. package/dist/engine/session/session.js +227 -0
  620. package/dist/engine/session/session.js.map +1 -0
  621. package/dist/engine/session/storage-base.d.ts +38 -0
  622. package/dist/engine/session/storage-base.d.ts.map +1 -0
  623. package/dist/engine/session/storage-base.js +157 -0
  624. package/dist/engine/session/storage-base.js.map +1 -0
  625. package/dist/engine/session/timestamps.d.ts +3 -0
  626. package/dist/engine/session/timestamps.d.ts.map +1 -0
  627. package/dist/engine/session/timestamps.js +15 -0
  628. package/dist/engine/session/timestamps.js.map +1 -0
  629. package/dist/engine/session/uuid.d.ts +2 -0
  630. package/dist/engine/session/uuid.d.ts.map +1 -0
  631. package/dist/engine/session/uuid.js +50 -0
  632. package/dist/engine/session/uuid.js.map +1 -0
  633. package/dist/index.d.ts +160 -0
  634. package/dist/index.d.ts.map +1 -0
  635. package/dist/index.js +374 -0
  636. package/dist/index.js.map +1 -0
  637. package/dist/internal/harness.d.ts +26 -0
  638. package/dist/internal/harness.d.ts.map +1 -0
  639. package/dist/internal/harness.js +24 -0
  640. package/dist/internal/harness.js.map +1 -0
  641. package/dist/internal/llm.d.ts +9 -0
  642. package/dist/internal/llm.d.ts.map +1 -0
  643. package/dist/internal/llm.js +8 -0
  644. package/dist/internal/llm.js.map +1 -0
  645. package/dist/orchestration/builtin-workflows.d.ts +44 -0
  646. package/dist/orchestration/builtin-workflows.d.ts.map +1 -0
  647. package/dist/orchestration/builtin-workflows.js +165 -0
  648. package/dist/orchestration/builtin-workflows.js.map +1 -0
  649. package/dist/orchestration/dev-vm-script-runner.d.ts +24 -0
  650. package/dist/orchestration/dev-vm-script-runner.d.ts.map +1 -0
  651. package/dist/orchestration/dev-vm-script-runner.js +106 -0
  652. package/dist/orchestration/dev-vm-script-runner.js.map +1 -0
  653. package/dist/orchestration/goal.d.ts +97 -0
  654. package/dist/orchestration/goal.d.ts.map +1 -0
  655. package/dist/orchestration/goal.js +248 -0
  656. package/dist/orchestration/goal.js.map +1 -0
  657. package/dist/orchestration/run-spec.d.ts +63 -0
  658. package/dist/orchestration/run-spec.d.ts.map +1 -0
  659. package/dist/orchestration/run-spec.js +274 -0
  660. package/dist/orchestration/run-spec.js.map +1 -0
  661. package/dist/orchestration/run-workflow-tool.d.ts +187 -0
  662. package/dist/orchestration/run-workflow-tool.d.ts.map +1 -0
  663. package/dist/orchestration/run-workflow-tool.js +612 -0
  664. package/dist/orchestration/run-workflow-tool.js.map +1 -0
  665. package/dist/orchestration/workflow-governance.d.ts +70 -0
  666. package/dist/orchestration/workflow-governance.d.ts.map +1 -0
  667. package/dist/orchestration/workflow-governance.js +176 -0
  668. package/dist/orchestration/workflow-governance.js.map +1 -0
  669. package/dist/orchestration/workflow-meta.d.ts +41 -0
  670. package/dist/orchestration/workflow-meta.d.ts.map +1 -0
  671. package/dist/orchestration/workflow-meta.js +426 -0
  672. package/dist/orchestration/workflow-meta.js.map +1 -0
  673. package/dist/orchestration/workflow-observe.d.ts +77 -0
  674. package/dist/orchestration/workflow-observe.d.ts.map +1 -0
  675. package/dist/orchestration/workflow-observe.js +177 -0
  676. package/dist/orchestration/workflow-observe.js.map +1 -0
  677. package/dist/orchestration/workflow-primitives.d.ts +31 -0
  678. package/dist/orchestration/workflow-primitives.d.ts.map +1 -0
  679. package/dist/orchestration/workflow-primitives.js +104 -0
  680. package/dist/orchestration/workflow-primitives.js.map +1 -0
  681. package/dist/orchestration/workflow-sandbox-conformance.d.ts +34 -0
  682. package/dist/orchestration/workflow-sandbox-conformance.d.ts.map +1 -0
  683. package/dist/orchestration/workflow-sandbox-conformance.js +301 -0
  684. package/dist/orchestration/workflow-sandbox-conformance.js.map +1 -0
  685. package/dist/orchestration/workflow-script-runner.d.ts +127 -0
  686. package/dist/orchestration/workflow-script-runner.d.ts.map +1 -0
  687. package/dist/orchestration/workflow-script-runner.js +48 -0
  688. package/dist/orchestration/workflow-script-runner.js.map +1 -0
  689. package/dist/orchestration/workflow-script-store.d.ts +99 -0
  690. package/dist/orchestration/workflow-script-store.d.ts.map +1 -0
  691. package/dist/orchestration/workflow-script-store.js +133 -0
  692. package/dist/orchestration/workflow-script-store.js.map +1 -0
  693. package/dist/orchestration/workflow-size-guideline.d.ts +50 -0
  694. package/dist/orchestration/workflow-size-guideline.d.ts.map +1 -0
  695. package/dist/orchestration/workflow-size-guideline.js +78 -0
  696. package/dist/orchestration/workflow-size-guideline.js.map +1 -0
  697. package/dist/orchestration/workflow.d.ts +624 -0
  698. package/dist/orchestration/workflow.d.ts.map +1 -0
  699. package/dist/orchestration/workflow.js +1596 -0
  700. package/dist/orchestration/workflow.js.map +1 -0
  701. package/dist/prompts/default.d.ts +474 -0
  702. package/dist/prompts/default.d.ts.map +1 -0
  703. package/dist/prompts/default.js +676 -0
  704. package/dist/prompts/default.js.map +1 -0
  705. package/dist/prompts/supervisor.d.ts +60 -0
  706. package/dist/prompts/supervisor.d.ts.map +1 -0
  707. package/dist/prompts/supervisor.js +162 -0
  708. package/dist/prompts/supervisor.js.map +1 -0
  709. package/dist/scenarios/env.d.ts +41 -0
  710. package/dist/scenarios/env.d.ts.map +1 -0
  711. package/dist/scenarios/env.js +65 -0
  712. package/dist/scenarios/env.js.map +1 -0
  713. package/dist/scenarios/full-body.d.ts +47 -0
  714. package/dist/scenarios/full-body.d.ts.map +1 -0
  715. package/dist/scenarios/full-body.js +36 -0
  716. package/dist/scenarios/full-body.js.map +1 -0
  717. package/dist/scenarios/scenario-registry.d.ts +107 -0
  718. package/dist/scenarios/scenario-registry.d.ts.map +1 -0
  719. package/dist/scenarios/scenario-registry.js +192 -0
  720. package/dist/scenarios/scenario-registry.js.map +1 -0
  721. package/dist/scenarios/teacher-quickstart.d.ts +41 -0
  722. package/dist/scenarios/teacher-quickstart.d.ts.map +1 -0
  723. package/dist/scenarios/teacher-quickstart.js +32 -0
  724. package/dist/scenarios/teacher-quickstart.js.map +1 -0
  725. package/dist/server/http.d.ts +36 -0
  726. package/dist/server/http.d.ts.map +1 -0
  727. package/dist/server/http.js +144 -0
  728. package/dist/server/http.js.map +1 -0
  729. package/dist/stores/file/checkpoint-store.d.ts +62 -0
  730. package/dist/stores/file/checkpoint-store.d.ts.map +1 -0
  731. package/dist/stores/file/checkpoint-store.js +250 -0
  732. package/dist/stores/file/checkpoint-store.js.map +1 -0
  733. package/dist/stores/file/file-snapshot-store.d.ts +43 -0
  734. package/dist/stores/file/file-snapshot-store.d.ts.map +1 -0
  735. package/dist/stores/file/file-snapshot-store.js +374 -0
  736. package/dist/stores/file/file-snapshot-store.js.map +1 -0
  737. package/dist/stores/file/fs-atomic.d.ts +95 -0
  738. package/dist/stores/file/fs-atomic.d.ts.map +1 -0
  739. package/dist/stores/file/fs-atomic.js +415 -0
  740. package/dist/stores/file/fs-atomic.js.map +1 -0
  741. package/dist/stores/file/index.d.ts +98 -0
  742. package/dist/stores/file/index.d.ts.map +1 -0
  743. package/dist/stores/file/index.js +109 -0
  744. package/dist/stores/file/index.js.map +1 -0
  745. package/dist/stores/file/memory-store.d.ts +95 -0
  746. package/dist/stores/file/memory-store.d.ts.map +1 -0
  747. package/dist/stores/file/memory-store.js +393 -0
  748. package/dist/stores/file/memory-store.js.map +1 -0
  749. package/dist/stores/file/session-policy-store.d.ts +24 -0
  750. package/dist/stores/file/session-policy-store.d.ts.map +1 -0
  751. package/dist/stores/file/session-policy-store.js +123 -0
  752. package/dist/stores/file/session-policy-store.js.map +1 -0
  753. package/dist/stores/file/session-store.d.ts +34 -0
  754. package/dist/stores/file/session-store.d.ts.map +1 -0
  755. package/dist/stores/file/session-store.js +175 -0
  756. package/dist/stores/file/session-store.js.map +1 -0
  757. package/dist/stores/file/tool-result-store.d.ts +23 -0
  758. package/dist/stores/file/tool-result-store.d.ts.map +1 -0
  759. package/dist/stores/file/tool-result-store.js +61 -0
  760. package/dist/stores/file/tool-result-store.js.map +1 -0
  761. package/dist/stores/file/workflow-journal-store.d.ts +36 -0
  762. package/dist/stores/file/workflow-journal-store.d.ts.map +1 -0
  763. package/dist/stores/file/workflow-journal-store.js +157 -0
  764. package/dist/stores/file/workflow-journal-store.js.map +1 -0
  765. package/dist/stores/file/workflow-run-store.d.ts +58 -0
  766. package/dist/stores/file/workflow-run-store.d.ts.map +1 -0
  767. package/dist/stores/file/workflow-run-store.js +178 -0
  768. package/dist/stores/file/workflow-run-store.js.map +1 -0
  769. package/dist/stores/pg.d.ts +210 -0
  770. package/dist/stores/pg.d.ts.map +1 -0
  771. package/dist/stores/pg.js +652 -0
  772. package/dist/stores/pg.js.map +1 -0
  773. package/dist/tools/fs/encoding.d.ts +51 -0
  774. package/dist/tools/fs/encoding.d.ts.map +1 -0
  775. package/dist/tools/fs/encoding.js +74 -0
  776. package/dist/tools/fs/encoding.js.map +1 -0
  777. package/dist/tools/fs/gh-rate-limit.d.ts +19 -0
  778. package/dist/tools/fs/gh-rate-limit.d.ts.map +1 -0
  779. package/dist/tools/fs/gh-rate-limit.js +35 -0
  780. package/dist/tools/fs/gh-rate-limit.js.map +1 -0
  781. package/dist/tools/fs/index.d.ts +246 -0
  782. package/dist/tools/fs/index.d.ts.map +1 -0
  783. package/dist/tools/fs/index.js +2130 -0
  784. package/dist/tools/fs/index.js.map +1 -0
  785. package/dist/tools/fs/pdf.d.ts +106 -0
  786. package/dist/tools/fs/pdf.d.ts.map +1 -0
  787. package/dist/tools/fs/pdf.js +178 -0
  788. package/dist/tools/fs/pdf.js.map +1 -0
  789. package/dist/tools/fs/repo-map.d.ts +15 -0
  790. package/dist/tools/fs/repo-map.d.ts.map +1 -0
  791. package/dist/tools/fs/repo-map.js +251 -0
  792. package/dist/tools/fs/repo-map.js.map +1 -0
  793. package/dist/tools/fs/safety.d.ts +168 -0
  794. package/dist/tools/fs/safety.d.ts.map +1 -0
  795. package/dist/tools/fs/safety.js +479 -0
  796. package/dist/tools/fs/safety.js.map +1 -0
  797. package/dist/tools/fs/search.d.ts +118 -0
  798. package/dist/tools/fs/search.d.ts.map +1 -0
  799. package/dist/tools/fs/search.js +650 -0
  800. package/dist/tools/fs/search.js.map +1 -0
  801. package/dist/tools/gitea-issue.d.ts +39 -0
  802. package/dist/tools/gitea-issue.d.ts.map +1 -0
  803. package/dist/tools/gitea-issue.js +91 -0
  804. package/dist/tools/gitea-issue.js.map +1 -0
  805. package/dist/tools/monitor.d.ts +64 -0
  806. package/dist/tools/monitor.d.ts.map +1 -0
  807. package/dist/tools/monitor.js +135 -0
  808. package/dist/tools/monitor.js.map +1 -0
  809. package/dist/tools/scheduler-tools.d.ts +48 -0
  810. package/dist/tools/scheduler-tools.d.ts.map +1 -0
  811. package/dist/tools/scheduler-tools.js +449 -0
  812. package/dist/tools/scheduler-tools.js.map +1 -0
  813. package/dist/tools/sql-adapters.d.ts +32 -0
  814. package/dist/tools/sql-adapters.d.ts.map +1 -0
  815. package/dist/tools/sql-adapters.js +31 -0
  816. package/dist/tools/sql-adapters.js.map +1 -0
  817. package/dist/tools/sql.d.ts +36 -0
  818. package/dist/tools/sql.d.ts.map +1 -0
  819. package/dist/tools/sql.js +131 -0
  820. package/dist/tools/sql.js.map +1 -0
  821. package/dist/tools/task-list.d.ts +26 -0
  822. package/dist/tools/task-list.d.ts.map +1 -0
  823. package/dist/tools/task-list.js +352 -0
  824. package/dist/tools/task-list.js.map +1 -0
  825. package/dist/tools/todo.d.ts +11 -0
  826. package/dist/tools/todo.d.ts.map +1 -0
  827. package/dist/tools/todo.js +126 -0
  828. package/dist/tools/todo.js.map +1 -0
  829. package/dist/tools/web.d.ts +59 -0
  830. package/dist/tools/web.d.ts.map +1 -0
  831. package/dist/tools/web.js +607 -0
  832. package/dist/tools/web.js.map +1 -0
  833. package/dist/tools/worktree.d.ts +88 -0
  834. package/dist/tools/worktree.d.ts.map +1 -0
  835. package/dist/tools/worktree.js +434 -0
  836. package/dist/tools/worktree.js.map +1 -0
  837. package/docs/A1-ATTRIBUTION-ROUND1-2026-07-09.md +181 -0
  838. package/docs/AB-ORACLE-GATE-VERDICT-2026-07-10.md +100 -0
  839. package/docs/ANCHOR-GAP-INVENTORY-2026-07-09.md +143 -0
  840. package/docs/ARCHITECTURE.md +125 -0
  841. package/docs/BUGHUNT-2026-07-05-NIGHT.md +98 -0
  842. package/docs/BUILD.md +63 -0
  843. package/docs/CANCEL-ASYNC-ATTRIBUTION-2026-07-09.md +98 -0
  844. package/docs/CC-198-VS-201-DRIFT-2026-07-09.md +70 -0
  845. package/docs/CC-BASELINE-FAKE-ZERO-AUDIT-2026-07-09.md +51 -0
  846. package/docs/CC-DRIFT-198-206-AGENT-TYPES-2026-07-10.md +82 -0
  847. package/docs/CC-DRIFT-198-206-CHANGELOG-2026-07-10.md +82 -0
  848. package/docs/CC-DRIFT-198-206-REMINDERS-2026-07-10.md +96 -0
  849. package/docs/CC-DRIFT-198-206-ROADMAP-2026-07-10.md +110 -0
  850. package/docs/CC-DRIFT-198-206-TOOL-INVENTORY-2026-07-10.md +53 -0
  851. package/docs/CC-DRIFT-198-206-USAGE-CONSTANTS-2026-07-10.md +64 -0
  852. package/docs/CC-DRIFT-198-206-WORKFLOW-2026-07-10.md +83 -0
  853. package/docs/CC-PARITY-CHECKLIST.md +220 -0
  854. package/docs/CC-PARITY-DEEP-SWEEP-2026-07-07.md +149 -0
  855. package/docs/CC-SUBAGENT-PROMPT-STUDY-2026-07-09.md +219 -0
  856. package/docs/CC-TASK-REMINDER-CADENCE-STUDY-2026-07-09.md +396 -0
  857. package/docs/CC-TOOL-PARITY-SWEEP-2026-07.md +56 -0
  858. package/docs/CC-TOOL-PROMPT-DEEP-DIFF-2026-07-08.md +274 -0
  859. package/docs/CC-TOOLSURFACE-DEEP-DIVE-2026-07-07.md +197 -0
  860. package/docs/CC206-OBSERVER-ANCHORS-2026-07-11.md +463 -0
  861. package/docs/CC207-CORE-SWEEP-BACKLOG-2026-07-12.md +155 -0
  862. package/docs/CENTER-CONTROL-PLANE-SEAM.md +86 -0
  863. package/docs/CLEANUP-CONTRACT-ANCHOR-2026-07-09.md +83 -0
  864. package/docs/COLD-START-RSI-2026-07-09.md +72 -0
  865. package/docs/COMPACTION-LIVE-AUDIT-2026-07-09.md +114 -0
  866. package/docs/CONTEXT-lifecycle-extension-points-and-stop-attribution.md +71 -0
  867. package/docs/COREWARS-POLYGLOT-TRIAGE-2026-07-09.md +85 -0
  868. package/docs/DEADTARGET-OVERFULL-HBOX-2026-07-10.md +92 -0
  869. package/docs/DEADTARGET-PATH-TRACING-REVERSE-2026-07-10.md +87 -0
  870. package/docs/DEADTARGET-WINNING-AVG-COREWARS-2026-07-10.md +96 -0
  871. package/docs/DEEPSEEK-API-LIMITS-PROBE-2026-07-09.md +118 -0
  872. package/docs/DESIGN-140-MOCK-VERIFY-2026-07-11.md +79 -0
  873. package/docs/DESIGN-140-VERIFICATION-2026-07-11.md +43 -0
  874. package/docs/DESIGN-DRAFT-workflow-collab-2026-07-11.md +56 -0
  875. package/docs/DESIGN-ORACLE-GROUNDING-GATE-2026-07-10.md +167 -0
  876. package/docs/DESIGN-TFRAG-RECONCILE-SCAFFOLD-2026-07-09.md +102 -0
  877. package/docs/EXP-PA2-PE-DESIGN-2026-07-11.md +220 -0
  878. package/docs/EXT-DOGFOOD-2026-07-12.md +50 -0
  879. package/docs/FINAL-VERIFY-SURFACE-AUDIT-2026-07-09.md +44 -0
  880. package/docs/FRAG-RECON-INVESTIGATION-2026-07-09.md +183 -0
  881. package/docs/HANDOFF.md +121 -0
  882. package/docs/KNOWN-ISSUES.md +96 -0
  883. package/docs/LEGW-WINDOW-TAX-2026-07-10.md +82 -0
  884. package/docs/LIVE-PROBE-BATCH-2026-07-11.md +207 -0
  885. package/docs/M2-CERT-ATTRIBUTION-2026-07-10.md +61 -0
  886. package/docs/M25-LEG-VARIANCE-ATTRIBUTION-2026-07-10.md +81 -0
  887. package/docs/MAILMAN-TIMEOUT-ATTRIBUTION-2026-07-10.md +88 -0
  888. package/docs/MEMORY-BACKEND-DIALECT-NOTES.md +69 -0
  889. package/docs/MTEB-ESCAPE-HATCH-ATTRIBUTION-2026-07-09.md +57 -0
  890. package/docs/MTEB-LEADERBOARD-ATTRIBUTION-2026-07-10.md +134 -0
  891. package/docs/ORACLE-GATE-NEGATIVE-SAMPLE-2026-07-11.md +28 -0
  892. package/docs/PARITY-CONTEXT-TRANSACTIONS-2026-07-10.md +67 -0
  893. package/docs/PARITY-PROGRESS-MATRIX-2026-07-10.md +37 -0
  894. package/docs/PARITY-SPOT-AGENT-TYPES-2026-07-10.md +70 -0
  895. package/docs/PARITY-SPOT-REMINDERS-2026-07-10.md +144 -0
  896. package/docs/PARITY-SPOT-TOOL-INVENTORY-2026-07-10.md +61 -0
  897. package/docs/PARITY-SPOT-USAGE-CONSTANTS-2026-07-10.md +95 -0
  898. package/docs/PARITY-SPOT-WORKFLOW-2026-07-10.md +93 -0
  899. package/docs/PASSWORD-RECOVERY-PANEL-VERDICT-2026-07-10.md +62 -0
  900. package/docs/R8-R9-FINALIZE-COORDINATION-2026-07-09.md +124 -0
  901. package/docs/REPL-CODE-MODE-EVALUATION-2026-07-10.md +187 -0
  902. package/docs/REPORT-1249-TARGETED.md +48 -0
  903. package/docs/RESEARCH-3P-MEMORY-SWAP-2026-07-12.md +273 -0
  904. package/docs/ROADMAP.md +111 -0
  905. package/docs/RSI-CLOUD-DEPLOY-2026-07-06.md +289 -0
  906. package/docs/RSI-PROCESS-AI-COLDSTART-2026-07-11.md +68 -0
  907. package/docs/S18-THOROUGHNESS-AUDIT-2026-07-09.md +113 -0
  908. package/docs/SERVICE-INTEGRATION-GUIDE.md +298 -0
  909. package/docs/SUBAGENT-STREAM-RESILIENCE-PARITY-2026-07-10.md +118 -0
  910. package/docs/SWEBENCH-PRO-RECON-2026-07-11.md +31 -0
  911. package/docs/TB-EFFICIENCY-TELEMETRY-2026-07-08.md +114 -0
  912. package/docs/TB-FAILURE-AUTOPSY-2026-07-05-RERUN.md +67 -0
  913. package/docs/TB-FAIRNESS-AUDIT-2026-07-08.md +141 -0
  914. package/docs/TB-FULL-1257-2026-07-08.md +77 -0
  915. package/docs/TB-LEG-GAP-ATTRIBUTION-1261-1263-2026-07-11.md +154 -0
  916. package/docs/TB-REGRESSION-DAEMON-KILL-2026-07-08.md +58 -0
  917. package/docs/TB-RSI-CROSSCHECK-2026-07-06.md +68 -0
  918. package/docs/TB-RSI-LEDGER.md +30 -0
  919. package/docs/TB-STABLE-SET-2026-07-08.md +127 -0
  920. package/docs/TB21-RECON-2026-07-11.md +28 -0
  921. package/docs/TEST-DESIGN-BATCH-1-2-3.md +97 -0
  922. package/docs/THIRD-PARTY-INTEGRATION.md +45 -0
  923. package/docs/TOKEN-ESTIMATE-CALIBRATION-LIVE-2026-07-09.md +102 -0
  924. 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 +147 -0
  925. package/docs/audit-2026-06-10-/350/256/241/347/256/227bug/346/211/253/346/217/217.md +163 -0
  926. 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 +95 -0
  927. 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 +45 -0
  928. 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 +63 -0
  929. package/docs/audit-2026-06-15/ADDENDUM-second-pass.md +88 -0
  930. package/docs/audit-2026-06-15/ARCHITECTURE-AND-ROADMAP.md +187 -0
  931. package/docs/audit-2026-06-15/DOC-CORRECTIONS.md +105 -0
  932. package/docs/audit-2026-06-15/INDEX.md +49 -0
  933. package/docs/audit-2026-06-15/ORCHESTRATION-STATUS.md +98 -0
  934. package/docs/audit-2026-06-15/PRODUCTION-ISSUES.md +189 -0
  935. package/docs/audit-2026-06-15/REFERENCES-literature.md +139 -0
  936. package/docs/audit-2026-06-15/VENDOR-REFACTOR-PLAN.md +96 -0
  937. package/docs/cc-probe-198/README.md +72 -0
  938. package/docs/cc-probe-198/STABILITY-AUDIT.md +118 -0
  939. package/docs/cc-probe-198/live-schema-monitor-worktree-2026-07-09.json +56 -0
  940. package/docs/cc-probe-198/mount-variants.json +536 -0
  941. package/docs/cc-probe-198/plan-mode-run.json +1 -0
  942. package/docs/cc-probe-198/probe-bash-bg.json +224 -0
  943. package/docs/cc-probe-198/probe-edit-mismatch.json +120 -0
  944. package/docs/cc-probe-198/probe-read-missing.json +62 -0
  945. package/docs/cc-probe-198/probe-search-empty.json +127 -0
  946. package/docs/cc-probe-198/probe-task-family.json +227 -0
  947. package/docs/cc-probe-198/probes.status +6 -0
  948. package/docs/cc-probe-198/raw-capture-interactive.json +948 -0
  949. package/docs/cc-probe-198/raw-capture-print.json +787 -0
  950. package/docs/cc-probe-198/raw-capture2-interactive.json +948 -0
  951. package/docs/cc-probe-198/raw-capture2-print.json +787 -0
  952. package/docs/cc-probe-198/system-prompt.txt +135 -0
  953. package/docs/cc-probe-198/tools-array.json +962 -0
  954. package/docs/durability-boundary.md +63 -0
  955. package/docs/fix-2026-06-10-/350/256/241/347/256/227bug/344/277/256/345/244/215-search/346/211/271.md +75 -0
  956. 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 +62 -0
  957. package/docs/parity-sweep/REPORT-DYNAMIC.md +97 -0
  958. package/docs/parity-sweep/REPORT-STATIC-GGB.md +127 -0
  959. package/docs/parity-sweep/REPORT-STATIC-RWE.md +133 -0
  960. package/docs/vendor-history.md +385 -0
  961. package/docs/vendored-upstream-diff-2026-07.md +83 -0
  962. package/package.json +70 -0
@@ -0,0 +1,125 @@
1
+ # ARCHITECTURE — 整体架构(活文档,据真实代码核实)
2
+
3
+ > 入口见 [`HANDOFF.md`](HANDOFF.md)。路线图/难点在 [`ROADMAP.md`](ROADMAP.md);消费 API 在 [`../README.md`](../README.md)。
4
+ > 本页是**当前架构事实**(从 `src/` 反推 + 48-agent 验证,详证在 `audit-2026-06-15/`)。
5
+
6
+ ## 1. 定位 + 宪法
7
+ **无状态、任务化** AI agent 内核:推理循环已全 first-party(design/118 de-vendoring 结项:原 openclaw vendored 内核重写进 `src/engine/{llm,loop,harness}`,血统史 `docs/vendor-history.md`)+ first-party 蒸馏层(`src/`)。一个"任务"自带全套配置,跑完返回机器可读结果。
8
+ **宪法**(design/43):**机制少而通用(primitive)、场景=配置(profile)**。core 给原语;leader 编排 / E2B·Kata 沙箱 / TiDB 后端 / config-center 在 service 仓 profile 层。三平面解耦(对标 Anthropic Managed Agents):**Brain(脑,外)/ Hands(手,`ExecutionEnv` 本地或远端)/ Session(会话,可 durable)** 各自可失败可替换。
9
+ **主线(2026-06-27)**:最近 ship 的建造线 = **sema-shell 数据契约**(MF-*,1.146~1.150:引擎↔sema-shell `/workflows` monitor↔service 可观测数据契约,与 service 协调)· **workflow-parity**(design/97,1.144~1.145:CC Workflow 工具平价,CORE-1~9 × SVC-1~5 全收口)· **sema-shell 主权契约**(design/99,1.120~1.128:E1–E25 provider-neutral 终端壳契约)· **2c session-sync**(1.135~1.143:云↔本地会话同步)。**已封顶降为基座**:workflow-parity(CORE-1~9 × SVC-1~5)· CC-parity 编排 + 推理强度 + goal + S8 自助编排(design/96/97/98)· design/80 Supervisor 人在环监督(价值判决 GOAL 达成,结论=「worker 会失败场景的保险」+「视角受限的结构补全」,非普遍更好)。**当前焦点(快速移动,真相=`git log`+`团队/`通道+memory)**:sema-shell 数据契约 loop(MF-*/MF-Fleet)+ P2 design-review,与 service 协调;workflow 驱动扫 bug + 代码评审 / 自足本地 make-real。前端=自建客户端(CLI/桌面;CC 临时)。Beatsep/leader 编码跑是 make-real 测试场。
10
+
11
+ ## 2. 分层
12
+ ```
13
+ 集成方 / service 仓(profile,不在本仓):leader编排·config-center·E2B/Kata·TiDB·多租户·部署
14
+ │ import @sema-ai/core │ 注入实现(Brain/ExecutionEnv/各 Store/ToolPolicy)
15
+ ────────┴───────────────────────────────────────────┴────────────────────────────────────
16
+ src/ 蒸馏层(first-party, MIT):
17
+ 入口 core/runner/{runtask(Runner+run循环) · prepare-task(装配) · assemble-result(终态→TaskResult)
18
+ · tool-disclosure(design/36 tool_search) · synthetic-tools(submit_output/report_blocked/skill)}
19
+ Brain brain/{openai · anthropic · stream-engine · failover · routing · degrading · circuit-breaker
20
+ · repetition · tool-call-repair · timeout · retry · errors · request-params(design/40透传)}
21
+ Tools tools/fs/{index(read/edit/write) · safety(不变量+symlink) · search(grep/glob) · repo-map}
22
+ tools/{sql · sql-adapters · web · gitea-issue} + core/{mcp · lsp · ask-question}
23
+ Agents agents/{subagent · team · cascade · teacher · verify · repair-loop(RSI 进度门) · agent-definition · suspend-guard · tool-filter}
24
+ core/auto-promote(design/77/79 三轴 auto-promote 决策, mandate-OFF INERT)
25
+ Durable core/{checkpoint-store(design/45·80:CheckpointGate kinds+RiskDescriptor+SafetyAxis+pendingSteer+ResourceLedger)
26
+ · canonical-json(D-1 engine-only serializer) · session · session-store · session-reconcile · remote-env(design/48)
27
+ · with-retry · tool-result-store} + stores/pg(四 seam PG 参照)
28
+ 安全/门 core/{tool-policy(3态) · hooks(design/37) · exec-gate(L2 MECH) · sensitive-path-policy
29
+ · property-harness · untrusted-text}
30
+ 记忆 core/{memory(L2) · memory-recall(design/65) · runner/memory-consolidation(design/41)}
31
+ 上下文 engine/{compaction · session}(design/71 P2 naturalized) + core/{auto-compaction · context-edit · context-guard}
32
+ 观测 core/{trace(OTel seam) · pricing(整数micro-USD) · cache-break-detector}
33
+ 其它 server/http(HTTP+SSE) · prompts/default · core/{roles · select-model · types}
34
+ │ 依赖(历史 VENDORED EDIT 记档见 docs/vendor-history.md;现全 first-party)
35
+ ────────┴──────────────────────────────────────────────────────────────────────────────
36
+ src/engine/ first-party 引擎层(原 openclaw 蒸馏内核,design/118 全量 naturalize):llm · loop/agent-loop · harness/agent-harness
37
+ · harness/types(类型底座)· harness/env/nodejs(NodeExecutionEnv)· messages · utils/{truncate,shell-output}
38
+ · llm-core/{types(Model/Usage/事件协议) · validation · event-stream}
39
+ ```
40
+
41
+ ## 3. 单任务数据流
42
+ ```
43
+ TaskSpec → Runner.runTaskStream(spec) [eager: run=(async()=>await runLocked())() 立即开跑]
44
+ → prepareTask: 解析 model/role/thinking · acquire+reconcile session · 装配工具带(caller + offload-wrap +
45
+ report_blocked + submit_output + MCP + memory(remember/recall) + hands band(read/edit/write/grep/glob/
46
+ repo_map/bash) + lsp + ask_user_question(D-F 答案围栏) + skill) · 建 system prompt(stable→variable, memory 在尾) ·
47
+ 建 harness · 接两阶段工具门(PreToolUse hook → policy[读只读 budget] → resolveAsk → durable suspendAsk;
48
+ D-2 mint-site safetyAxis → irreversible_ask、shellGate 收紧 bash;铸门时附 D-E riskDescriptor)
49
+ → runLocked: 订阅 harness 事件, 驱动 harness.prompt(objective)
50
+ onTurnEnd: 轮次/预算闸 onTurnBoundary: 任务内压缩(maybeCompact) + design/74 资源 suspend 触发
51
+ 工具结果 >阈值 → offload(<persisted-output> ref) 命中 durable ask 门 → 铸 checkpoint + suspend
52
+ → assembleResult → TaskResult
53
+ errorCode 优先级链(公开契约, assemble-result.ts, 勿乱序):
54
+ output.invalid → degenerate → budget → suspend.loop → threw(timeout/turns/conflict) → blocked →
55
+ suspended(checkpointToken) → abortedLive → no-final → stopReason error → completed
56
+ ```
57
+ resume:`Runner.resume(token, outcome, taskConfig)` → pre-CAS 守卫 → `store.resolve` 原子 CAS(exactly-once)→ 重入应用 pending 决策。outcome arm 按 gate.kind 分:`policy_ask`(suspended/irreversible_ask)· `dry_run_review`(needs_review)· `plan_review`(plan_review,design/80 D-B)。**D-1 决策-动作绑定**:approval 决策携 `boundCallId`+`boundInputHash`(engine-only canonical serializer 绑 SHOWN input),resume 校验决策确实对应那次调用。durable steering 经 `state.pendingSteer` 在 resume 时并入续跑提示。
58
+
59
+ ## 4. 能力矩阵(代码核实,✅=shipped 🟡=in-flight)
60
+ | 能力 | 状态 | 关键位置 / 注意 |
61
+ |------|------|----------------|
62
+ | 单任务循环 + native 工具 + 并行工具批 | ✅ | runtask / agent-loop |
63
+ | OpenAI+Anthropic 双脑(流/工具/图/reasoning回灌/缓存)+ failover/routing/degrade/breaker/分级超时 | ✅ | brain/* |
64
+ | 思考兼容层(design/46 thinkingFormat 分发, max_tokens 陷阱处理) | ✅ | brain/openai.ts compat |
65
+ | 手原语(fs 工具带 + bash/bash_readonly + repo_map) | ✅ | tools/fs/*(工具可声明 legacy `aliases` 供 CC canonical rename 兼容; ⚠️ P-4 read_file 假截断, P-14 grep cap) |
66
+ | 统一后台 task facade(`TaskOutput`/`TaskStop`) | ✅ | core/task-registry(进程内 Map,非 durable store):Bash `b*` 隐藏 env-local shellId;RunWorkflow `w*` 且 `task_id===runId`;scope/owner guard 下 unknown 与越权同形 not_found |
67
+ | 后台 task completion notification(core live lane) | 🟡 | core/task-notification + runner RunInternals sink:workflow completion → SDK `task_notification` + running-harness `<task-notification>` follow-up;idle durable wake/resume 和 Bash auto-notify 归 service/spool follow-on |
68
+ | 延迟工具披露 / 结构化输出 / report_blocked / skill | ✅ | runner/{tool-disclosure,synthetic-tools} |
69
+ | 三态权限 + hooks(design/37) + sensitive-path(72) | ✅ | tool-policy/hooks/sensitive-path-policy(⚠️ P-5 悬空符号链接) |
70
+ | durable suspend/resume(F4 人审门, exactly-once CAS, 跨副本) + suspend-loop cap | ✅ | checkpoint-store + runner resume(⚠️ P-7/P-9/P-10/P-11) |
71
+ | **design/80 Supervisor 人在环监督 substrate**(durable checkpoint 人审门 / approval gate / steering / plan-review / budget / riskDescriptor) | ✅ | core 全部 shipped+发版,见下方分项;§5 剩 D-G/D-C 是 service/seam |
72
+ | └ D-1 决策-动作绑定(boundCallId + boundInputHash, engine-only canonical serializer) | ✅ 1.101.0 | tool-policy + canonical-json + checkpoint-store |
73
+ | └ D-2 mint-site safetyAxis → irreversible_ask + shellGate(bash 收紧) | ✅ 1.102.0 | prepare-task + tool-policy(`shellGate:"off"|"always"|"classify"`) |
74
+ | └ D-F AskUserQuestion 答案围栏(selected⊆options + inlineUntrusted) | ✅ 1.103.0 | core/ask-question + untrusted-text |
75
+ | └ D-A durable steering(`pendingSteer` 挂在暂停 checkpoint, resume 并入续跑) | ✅ 1.103.0 | checkpoint-store(setPendingSteer) |
76
+ | └ D-B `plan_review` 独立 CheckpointGate kind(PRE-action 计划门) | ✅ 1.103.0 | types/checkpoint-store + 编排器 `isDurablePause()` 守卫 |
77
+ | └ D-E-core 只读 `ToolCallRequest.budget` + `costBreakdown` 财务分类 | ✅ 1.103.0 | tool-policy(budget) + assemble-result(costBreakdown) |
78
+ | └ D-E `CheckpointGate.riskDescriptor`(确定性脱敏风险摘要, INERT, total-by-construction) | ✅ shipped(supervisor 封顶版) | checkpoint-store(RiskDescriptor/riskSeverity/buildRiskDescriptor) |
79
+ | └ D-D contract doc(gate.kind-aware reap + terminalAt backstop 语义, reaper 由 service 拥有) | ✅ shipped(supervisor 封顶版) | Checkpoint.deadline + CheckpointStore 接口 JSDoc(core 不跑 reaper) |
80
+ | RSI 三轴门控 + runRepairLoop + auto-promote 决策(design/76/77; SAFE baseline shipped, autonomous ON-tier mandate OFF=价值判断, PARKED) | ✅ | agents/repair-loop + core/auto-promote(ON-tier 太难无 oracle, 正确地关) |
81
+ | 远端 ExecutionEnv seam(connect/suspendVM/resumeVM/execStream/destroy) | ✅ | core/remote-env(注:`reopen` 在 **CheckpointStore** 非此) |
82
+ | session 持久化 + CAS(F2) + wake 对账 + 分支地板(F3) | ✅ | session/session-store/session-reconcile |
83
+ | 自动压缩(任务间 + 任务内 turn-boundary 1.88+) + context-edit + 安全网 trimToBudget | ✅ | engine/compaction + auto-compaction + context-guard(⚠️ P-13 地板坐标) |
84
+ | L2 记忆 + 选择性召回(65) + 写侧整合(41) + PG 三档召回 | ✅ | core/memory* + stores/pg |
85
+ | 编排:single/subagent/team/cascade/teacher/verify/agent-definition | ✅ | agents/*(详见 audit-2026-06-15/ORCHESTRATION-STATUS) |
86
+ | 验证栈:exec-gate(L2) + verify(L3 去相关判) + property-harness | ✅ | exec-gate/verify/property-harness(⚠️ verify 去相关需配 verifier role 否则失效) |
87
+ | 自修复环:runWithTeacher(运行中监督) + runWithVerification(事后验-修) + runRepairLoop(非单调进度门验-修) | ✅ | agents/{teacher,verify,repair-loop}(对应 HANDOFF 旧"oracle 失败无自修复"命门 → 已被 design/80 HITL 升级路径 + runRepairLoop 处理) |
88
+ | 观测:trace(OTel) + pricing(整数micro-USD) + cache-break | ✅ | core/{trace,pricing,cache-break-detector}(⚠️ trace effect 字段未设) |
89
+ | MCP 真连 + 命名空间 + allowTools | ✅ | core/mcp(⚠️ P-1 丢 isError, allowTools 不挡 resources 工具) |
90
+ | HTTP/SSE 服务 | ✅ | server/http(⚠️ P-2 断连不取消, 别裸用 SSE 分支) |
91
+ | egress 受控(design/70) | ✅ | prepare-task egress 收集(注:web_fetch 非 egress-marked) |
92
+ | 委托请求参数透传(design/40 extraBody/headers) | ✅ | brain/request-params(⚠️ P-18 reservedFor api 名) |
93
+ | 模型角色 roles + selectModel 能力/成本路由(design/11) | ✅ | core/{roles,select-model} |
94
+ | **资源切片 suspend/resume(长自治跑)** | ✅ | design/74:LIVE make-real 验证通过(真 Dart→Kotlin port,11 次真 suspend/resume,before/after trace 证进度存活)。core 侧已落地+发版;`ToolCallRequest.budget` 暴露跨切片只读账本。**活真相=`git log \| grep design/74`** |
95
+ | **Workflow 模式(确定性脚本编排, NOT LLM planner)** | ✅ 1.116.0 | orchestration/workflow(`runWorkflow` + `WorkflowRunContext`:`parallel` barrier / `pipeline` 无 barrier / `phase` / `budget` / `agent` / `log`;`WorkflowBudgetExceededError`/`MAX_WORKFLOW_ITEMS`)(design/97 S1) |
96
+ | **`/workflows` 可观测(run store + 订阅)** | ✅ 1.116.0 | core/workflow-run-store(`WorkflowRunStore` + `InMemoryWorkflowRunStore`)+ stores/file(`FileWorkflowRunStore`;**PG 归 service**=部署 persist 轴)+ workflow-observe(`listWorkflowRuns`/`getWorkflowRun`/`subscribeWorkflow`)+ `summarizeWorkflowRun` + `workflowRunStoreContract` |
97
+ | **推理强度抽象(复用 vendor 7 档 + per-endpoint clamp + surfacing)** | ✅ 1.115/1.116 | brain/reasoning(`ReasoningIntensity`=vendor `ThinkingLevel` + `resolveReasoning`/`resolveEffort` per-endpoint clamp + `reasoning.resolved` TraceEvent 携 effective/graded/clamped)(design/96 S3/S5/S6) |
98
+ | **tighten-only TaskSpec 治理原语** | ✅ 1.114.0 | core/tighten-task-spec(`tightenTaskSpec` 把 overrides 层叠到 base,放松任何安全字段即 `throw TaskSpecTightenError`)(config-center §10) |
99
+ | **goal 模式(LLM 自报双闸 + core doneCheck 续跑)** | ✅ 1.118.0 | orchestration/goal(`runGoal`:G1 脱钩 `accepted` 恒 false + reward-hack 防线 + `delimitUntrusted` 续跑围栏;`GOAL_COMPLETION_GUIDANCE` 经 trusted `RunInternals.goalMode` 注)(design/96 S2/S4) |
100
+ | **S8 LLM 自助编排(`run_workflow` 工具自写 JS 脚本)** | ✅ 1.117.0(门控,需部署硬沙箱) | orchestration/{run-workflow-tool,workflow-script-runner,workflow-governance,workflow-meta,workflow-sandbox-conformance}(`TaskSpec.selfOrchestration` 门 + `WorkflowScriptRunner` membrane seam + `buildGovernedChildSpec` 白名单 default-deny + `resolveModelName` fail-closed;**core 不出硬沙箱**,部署接 isolated-vm/独立进程)(design/98) |
101
+ | **workflow-parity CORE-1~9(CC Workflow 工具平价)** | ✅ 1.144~1.145 | orchestration/workflow(`callKey` 确定性 resume + 嵌套 `WorkflowGroup` 树 + redacted egress + steerable `agentStream`/`WorkflowAgentHandle`/`onWorkflowAgentSpawn` + per-agent model/toolCalls/activity 流 + `addWorktree`/`pruneWorktrees` **isolate-only**)+ core/workflow-journal-store(`WorkflowJournalStore`:**scope-keyed 跨租户隔离 BREAKING** + `(runId,ordinal)` OVERWRITE last-write-wins + replay)(design/97) |
102
+ | **sema-shell 数据契约(MF-*)= 可观测数据契约(引擎↔sema-shell `/workflows` monitor↔service)** | ✅ 1.146~1.150 | MF-24 `TaskResult.stats.humanReview.gates[]`(权限门/denial 账本:kind/decision/toolName/secret-scrubbed toolArg,共享脱敏边界 `src/core/arg-summary.ts`)/ MF-10 `TaskEvent.task_progress`(subagent usage tick,**ephemeral**)/ MF-25 `TaskResult.model`(effective resolved id 回声)/ MF-18 `compacted.trigger` / MF-14 `CheckpointSummary.contentKind` / MF-W WorkflowRun monitor header+活动 arg+`deriveAgentDisplayStatus`;**MF-Fleet live 聚合在 service 进程内**(replica-local + ephemeral),core 只产 fact/signal(透传 `parentToolCallId`),不建 durable 父系血缘(YAGNI + design/99 §0)(团队/通道 [295]-[302]) |
103
+ | **sema-shell 主权契约 E1–E25(白标 CC 终端壳 provider-neutral 契约)** | ✅ 1.120~1.128(E22 defer) | E1 `tool_end.output` / E2 `TaskEventIdentity`(eventId/parentToolCallId)/ E13 `workspace_changed` / E3+E10 统一 `status` 事件(brain liveness,`brain/status-sink.ts` ALS)/ E9 `McpServerStatus` 投影 / **E23 live-only `onElicit`**(inbound MCP elicitation,per-server opt-in,fail-closed)/ **E6 `SessionPolicyStore`**(per-session 权限,tighten-only,新 `RunnerDeps` seam)/ E14 git 探针 / E18 resume-at 分支重放 / E19 rewind-files 工作树快照 / E12 prompt 建议(design/99) |
104
+ | **message-identity Phase 1(`message_committed` wire 事件)= `preserved_segment` 解析的 enabler(CC `SDKCompactBoundary` parity 收尾)** | ✅ 1.160 | `TaskEvent.message_committed{entryId, role:"user"\|"assistant"\|"toolResult", toolCallId?}`:每条持久化的可渲染消息发出其 `SessionTreeEntry.id`(与 `compacted.preserved_segment.firstKeptEntryId`/E18 resumeAt/E19 rewindFiles 同 id 空间)。LIVE 来源 = vendored mod #23(`message_end.entryId`,在 `agent-harness.ts:602` 捕获 `appendMessage` 已返回的 id,无 `getLeafId` 竞态);RESUME = 5 处 first-party tool-result append 自捕获。消费者自建 `entryId→消息` 映射(toolResult 用 toolCallId、assistant/user 用流序)解析压缩分隔线,**去掉 service 侧 eventId↔entryId 旁路依赖**。floor 经核实在本引擎仅 user/assistant(toolResult 被 `findValidCutPoints` 排除;bashExecution/custom_message 条目无 producer)。`...ident()` 保子代理流隔离 |
105
+ | **2c session-sync(云 ↔ 本地会话同步)** | ✅ 1.135~1.143 | `SessionRepo.export/importEntries` + `FileSnapshotStore`(export/`importManifest`/`putBlob`,BLOB 走对象存储)+ `SessionPolicyStore.listBySession` + `StreamingImportValidator`(NDJSON 流式,成本闸 maxFiles 10000/maxBytes 256MiB per-turn)+ file-backed local pull/push 对称 |
106
+
107
+ ## 5. 几个载重机制(handoff 值得知道)
108
+ - **eager fire-and-forget**(runtask.ts:244):任务在 stream 构造瞬间开跑,`result()` await 共享 `run`;消费方 break early **不**通知生产者停(P-2 同源)。
109
+ - **durable-suspend commit 协议**(prepare-task.ts):PRE-COMMIT(只读 + remote suspendVM 首个原子副作用)→ COMMIT(`checkpointStore.put`=不可逆点)→ COMMITTED(设 suspendRef、pin、停);put-failure split 路径先 unpause VM 再回落 onAsk。
110
+ - **ID 化 mid-batch 捕获**:`batchToolCallIds`/`completedCallIds` 是 `Set<toolCallId>`,抗重排,且兼作 reconcile 的 suspended-batch 判别符 → wake-reconcile 绝不 orphan-close 一个 suspended 调用。
111
+ - **SerializedCheckpointState 非同态 mapped 类型**(checkpoint-store.ts):强制序列化点出现每个 CheckpointState key(新字段不覆盖=编译错)→ per-task 正确性字段不会 resume 时静默丢。
112
+ - **两阶段工具门单调用栈**:hook→policy→resolveAsk→suspendAsk 同栈 → "hook 的 allow 不能绕过 policy 的 deny/ask" 是结构性非竞态。
113
+ - **`mapNestedSuspend`**(suspend-guard.ts):四编排(cascade/team/teacher/verify)import + subagent **内联**等价 → 嵌套 suspended 映射成 failed+`unexpected.suspended`+透传 checkpointToken、**不 release**(避免孤立 pinned checkpoint)。(team 例外:不暴露 checkpoint 字段=durable-resume 静默丢, team 成员须跑非-durable policy。)
114
+ - **`isDurablePause()` 共享守卫**(design/80 D-B):编排器 + verifier 的 `finally` 原只守 `status==="suspended"` → 嵌套 `needs_review`/`plan_review` 暂停会孤立 checkpoint/丢 resume token;改为统一 `isDurablePause()` 判别(codex 逮到的 BLOCKER 簇,顺修一个 dry-run `needs_review` 旧孤儿)。
115
+ - **D-2 mint-site safetyAxis + riskDescriptor**(checkpoint-store.ts):egress/irreversible 安全工具在铸门时强制走 `irreversible_ask`(`SAFETY ask 忽略 budget 永远问`=结构不变量),并附**确定性脱敏** `riskDescriptor`(severity 1–5 + axes + 脱敏 summary/touchedPaths)。`buildRiskDescriptor` **total-by-construction**(外层兜底网 + 只读顶层 DATA 属性标量)→ 对手/hook 重写的 args 永不让 mint 崩、永不改显示输出;**INERT**=core 从不读它来 gate/budget/suppress(结构 ask 严格胜)。供 supervisor inbox 排序/分诊。
116
+ - **workflow `callKey` + journal scope 隔离**(workflow.ts + workflow-journal-store.ts,CORE-1/7/9):`callKey=ordinal:specIdentityHash`,hash **必须含每个行为定义 TaskSpec 字段**(images/thinking/limits/maxTokens/maxCostUsd/roles/memory/promptProvider)——挑字段会静默 replay 过期结果(审计 BLOCKER)。resume 重放最长不变前缀(cache hit,**不计预算**),首个 mismatch 或任何 `agentStream`/`pipeline` 锁 live divergence。`WorkflowJournalStore.append(runId, scope, entry)` 的 **scope 必须进 WHERE/INSERT**——跨租户隔离(A append → B load 必须空),InMemory 强制、PG/TiDB 后端逐字匹配;`(runId,ordinal)` 是 OVERWRITE last-write-wins 非 append-only。
117
+ - **brain status liveness 走 ALS sink**(brain/status-sink.ts,E3+E10):rate-limit/retry/reconnect/circuit-open 经 `AsyncLocalStorage` 路由本任务流(同 workflow-depth 模式)→ **零 vendored harness / brain 接口 / per-call options 改动**;ephemeral 不进 resume。
118
+ - **E23 elicitation = live-only,非 durable**:inbound MCP elicitation 是 server 在活的 task-scoped JSON-RPC 连接上发请求等回复;durable suspend 会 abort 循环 + dispose MCP client → 请求回不了。故 v1 = 同步 `onElicit` seam(原连接回复),per-server `elicitation?:boolean` opt-in 默认 OFF(防恶意 server 拉人进环);`message`/`requestedSchema`/`content` 全 server-controlled untrusted,展示要围栏。
119
+ - **MF-24 gates 账本 + arg-summary 脱敏边界**(MF-24,1.148):`TaskResult.stats.humanReview.gates[]` 把每次权限门裁决(`kind`/`decision`/`toolName` + secret-scrubbed `toolArg`)记成 monitor 可读的 denial 账本。`toolArg` 经**共享脱敏边界** `src/core/arg-summary.ts` 统一裁剪——同一条脱敏路径既喂 gates 账本也喂 riskDescriptor 类的展示面,避免每个出口各写各的过滤(secret 漏写的单点风险)。账本是 fact/signal(给 sema-shell/service 排序分诊),core 自己不据它 gate。
120
+
121
+ ## 6. 读代码起点
122
+ `src/index.ts`(全导出)→ `src/core/runner/runtask.ts`(循环)→ `prepare-task.ts`(装配)→ `assemble-result.ts`(终态)。vendored 时代改动账本(历史档)`docs/vendor-history.md`。测试维度 `test/COVERAGE.md`。深度子系统地图见 `audit-2026-06-15/`(INDEX 起)。
123
+
124
+ ---
125
+ *活文档。最后核实 2026-06-27(版本 **1.150.0**,已发版+tagged v1.150.0,`tsc --noEmit` 干净,`npm test` = **3351 passed / 25 skipped**(200 文件);耐久架构不依赖具体 HEAD)。最近建造线 = sema-shell 数据契约(MF-*,1.146~1.150)/ workflow-parity(design/97)/ sema-shell 主权契约(design/99)/ 2c session-sync;workflow-parity + CC-parity 编排 + design/80 Supervisor + 价值判决 = 已封顶基座。**如何重验**:`npm view @sema-ai/core version` + `git tag | sort -V | tail`、`head -60 CHANGELOG.md`、`wc -l $(find src -name '*.ts' -not -path '*/vendor/*' -not -name '*.test.ts')` 末行(LOC)、`grep -c export src/index.ts`、`sed -n '108,130p' src/core/runner/assemble-result.ts`(errorCode 链)、`grep -rn 'riskDescriptor\|plan_review\|pendingSteer\|safetyAxis' src/core`(design/80 substrate)、`grep -rn 'runWorkflow\|resolveReasoning\|tightenTaskSpec\|runGoal' src/index.ts`(CC-parity 公共面)、`grep -rn 'gates\|humanReview' src/core/runner/assemble-result.ts`(MF-24 权限门账本)、`grep -rn 'task_progress' src/`(MF-10 subagent usage tick)、`ls src/core/arg-summary.ts src/core/workflow-journal-store.ts src/brain/status-sink.ts src/orchestration/{goal,run-workflow-tool}.ts`(新主线模块)、`grep -rn 'SessionPolicyStore\|onElicit\|McpServerStatus\|workspace_changed' src/index.ts`(sema-shell 契约面)。*
@@ -0,0 +1,98 @@
1
+ # 整夜 bug-hunt 账本(2026-07-05 夜)
2
+
3
+ > 纪律:**只记录,不急修**(clay 拍)。每条 = 编号 + 来源 + 现象 + 疑似根因 + 严重度 + 复现材料。
4
+ > 三线:T1=TB 全量 89 跑分+尸检 · T2=引擎 soak/chaos · T3=make-real TS 靶。
5
+
6
+ ## 处置状态(2026-07-05 白天批,clay 拍板修复)
7
+
8
+ > 引擎侧 6+1 件已修(见下队列逐条标注)+ codex 对抗复审两轮全处置(r1:F-1 BLOCKER=T2A-2 修复自身反噬 finalized latch 时机 / F-2 WorkflowStatus 面漏修 / F-3 关闭序反嵌套 / F-4 replay 语义拍回 prefix 契约 / F-5 microtask 竞态记档接受;r2:R-3=F-3 处置自身 tie 场景再被逮 → 同类型创建序降序 tie-break)——「修复自身要过对抗复审」教训连续两批兑现,且本批复审自身也逮到处置的处置。全量 4060 绿 + 反事实验证(revert→8/9 新测试挂);版本 1.235.0。
9
+ > 未入本批:T1-1/T1-2(deadline 感知+后台进程存活,值独立设计小批)、verifier 基建+预算对齐(TB 节点侧非引擎)、T3-5(design/73 聚合侧)、T2A-6(待 service 侧坐实 taskId 生命周期)、T2A-7/9/10(LOW/INFO 边角,留存量)。
10
+
11
+ ## 白天处置队列(按优先级,晨会用)
12
+
13
+ **引擎真 bug(改代码):**
14
+ 1. ✅已修(1.235.0)**T2A-3 MED** — TaskStop 打已完成 workflow 翻 completed→cancelled + result 永久丢(task-registry.ts:817 缺终态 guard)。低风险高价值,首修。
15
+ 2. ✅已修(1.235.0,含姊妹 T2A-1)**T2A-2 MED** — post-terminal phase 结算越过 run_end 发 phase_end + store 覆写(workflow.ts:1208-1223 缺 finalized guard);姊妹 T2A-1 subgroup 永久 running。
16
+ 3. ✅已修(1.235.0,连带 T2A-5 journal 洞;语义=只重放 completed、其余 live 重试)**T2A-4 MED** — resume 对 FAILED agent 无条件重放失败,「resume crashed run」主用例不可用,打脸工具描述。语义决策(要不要区分瞬时失败 vs 确定性失败),可能需小设计。
17
+ 4. ✅已修(1.235.0,resultFull + poll 回复 inline 全文→通用 offload 拿真 ref;顺手修 T2A-8 失败终态带 error)**NH-1 / [412]洞② M** — workflow result 超 bound 无全文取回通路(已回黑板 [413]);修=完成时全文入 tool-result store 拿真 ref、截断尾带 ref 指引。
18
+ 5. ⏳待设计小批 **T1-1 / T1-2 HIGH** — 后台服务活不到 verifier(setsid/不随 run 回收)+ 引擎无 deadline 感知(给 timeoutSec 不主动收尾)。TB 类考场系统性丢分,值一个设计小批。
19
+
20
+ **非引擎但高杠杆(TB 考场适配):**
21
+ 6. ⏳TB 节点侧 **verifier 基建修复**(uv 预烘/走镜像)——24/89 判分无效的最大单杠杆,不改引擎;flash/pro 对照证明这是当前分数噪声主源。
22
+ 7. ⏳TB 节点侧 **预算对齐**(adapter 读任务级 timeout→TB_TIMEOUT_SEC≈0.85×harness),覆盖 15+4 例双向错配。
23
+
24
+ **范本/文档小修:**
25
+ 8. ✅已修(1.235.0)**T2B-1 LOW-MED** — make-real-longrun.ts L141/L153 改读 `stats.costBreakdown.compactionMicroUsd`(字段 1.234 已迁);官方范本带病,下游照抄。
26
+ 9. 归档更新:上夜 NIGHT-REPORT #5「midstream-cut 速败」已被 1.234.1 流内重连闭合(T2B-2 复证)。
27
+
28
+ **design/73 聚合候选:**
29
+ 10. ⏳design/73 聚合侧 **T3-5** — 异常成本轮廓(turns/µUSD 远超同签名基线)作 Goodhart 嗅探维度,承载进 TaskOutcome 聚合。
30
+
31
+ ## 状态板
32
+
33
+ | 线 | 状态 | 备注 |
34
+ |---|---|---|
35
+ | T1 TB 全量 | **完成**:pro **0.303**(27/60) · flash **0.416**(37/52),各 4h+;异常 pro 25 / flash 22 | 尸检 T1b 完成,详见下 |
36
+ | T2a workflow 面确定性 fuzz | **完成**:10 条(MED×5)| 700 轮 soak + 9 探针 |
37
+ | T2b 真模型 chaos 矩阵 | **完成**:42/42,PASS 32/FAIL 10(FAIL 全 = T2B-1 checker 假警)| resume 12/12 全绿 · cut30 行为改善 |
38
+ | T3 make-real TS 靶 | **完成**:3 切片全绿 + 3 探针,6 条 | reward-hack 实证 T3-5 |
39
+
40
+ **插曲**:01:47 三 agent 齐死于「session limit resets 5:30am」,夜间 01:47~06:00 只有 T1(节点侧无 LLM 依赖)真跑;06:00 恢复后全线重启,~08:00 二次限额(resets 11am),T2b 矩阵驱动是独立 node 进程不受影响、跑完 42/42。
41
+
42
+ ## 🎯 T1 双模型全量分 + 基建判决(关键结论)
43
+
44
+ | 模型 | mean | 1.0 | 0.0 | AgentTimeout | NonZeroExit | 其他异常 |
45
+ |---|---|---|---|---|---|---|
46
+ | v4-pro | **0.303** | 27 | 60 | 15 | 8 | VerifierTO 1 / EnvStartTO 1 |
47
+ | v4-flash | **0.416** | 37 | 52 | 14 | 8 | — |
48
+
49
+ **flash > pro 主因是 verifier 基建噪声,不是模型能力**:flash-only 满分 22 个里 ≥12 个(compile-compcert / archive-key-recovery / cipher-analysis-diff / cipher-analysis / repo-history-restore / git-multibranch / llm-inference-batching / pytorch-model-cli / mcmc-sampling-stan / rstan-to-pystan / sqlite-with-gcov / qemu-startup)正是 T1 尸检判定「pro 跑时容器拉 uv 失败→verifier 无效判分」的同批任务。两次 run 之间 github/uv 拉取成败不同 → 直接吞/放行十几个判分。**两模型真实能力交集 15、各有专长**(pro 强 pov-ray/sparql/prove-plus-comm,flash 强 cipher/git/pytorch),真实差距远小于 0.11。**两个 mean 都是硬下界**;修 verifier 基建(uv 预烘/镜像)后两者都会上浮且更可比。
50
+
51
+ ## T1 尸检判决(详情 scratchpad/night2/T1-AUTOPSY.md)
52
+
53
+ - **0.303 是硬下界**:60 零分中 **24 例 = verifier 基建无效判分**(容器直连 github 拉 uv 失败 → `uvx: command not found`,agent 产出抽样多例看着是对的);36 例真 0(主体=模型能力近失:bn-fit 7/9、build-cython 10/11)。
54
+ - **AgentTimeout 15 例系统性根因 = 预算错配**:引擎 timeoutSec=3000 vs harness 900–1200s——引擎按 50 分钟节奏干、15 分钟被拍死。时间三层:模型长生成 7 / 长跑 Bash 3 / 苦工+compaction 抖动 5。**无重复读/无效重试循环**。
55
+ - **NonZeroExit 8 例全部合法终态,零引擎 crash**(4 timeout 反向错配 / 2 blocked 无外网自陈 / 2 deepseek 退化干净中止)。
56
+ - **优化候选 Top3**:①verifier 基建修复(uv 预烘/镜像,+24 判分有效性,最大杠杆);②预算对齐(adapter 读任务级 timeout→TB_TIMEOUT_SEC≈0.85×harness + 引擎 deadline 感知收尾,覆盖 19 例);③run_in_background 进程存活到 verifier(3 例留驻服务任务,≈3.4pp)。
57
+
58
+ ### T1-1~T1-5(引擎侧,只记不修)
59
+ - **T1-1 HIGH**:后台服务进程随 run 回收,活不到 verifier(kv-store-grpc 等 3 任务)——「留驻服务」类任务系统性丢分。
60
+ - **T1-2 HIGH**:引擎无 deadline 感知——给了 timeoutSec 也不会在预算内主动收尾交卷,超时=生砍。
61
+ - **T1-3 MED**:deepseek contextWindow 硬编码 64K→~45K 即 compaction,全 job 87 次抖动(待核 v4 真窗)。
62
+ - **T1-4 MED**:output.degenerate 检测直接废整 run,不尝试截断续跑。
63
+ - **T1-5 LOW**:退化 turn 记账 in=0 out=0。
64
+
65
+ ## T2a 判决(workflow 面确定性 fuzz,700 轮 soak + 9 探针;详情+最小复现 scratchpad/night2/T2A-FINDINGS.md)
66
+
67
+ **10 条(MED×5 / LOW-MED×1 / LOW×3 / INFO×1),重点:**
68
+ - **T2A-2 MED**:totalTimeoutMs 终止后,弃置 scoped phase body 迟到结算 → **run_end 之后发 phase_end + post-terminal store 覆写**(rev 3→4 实测);phase() 两条收尾路独缺 finalized guard(workflow.ts:1208-1223)。姊妹 T2A-1:closeAbandonedAgents 只关 agents,subgroup 永久 `running`。
69
+ - **T2A-3 MED**:TaskStop 打在**已完成** workflow 上把 completed 翻成 cancelled,回执谎报 stopped:true,且 result 永久丢(stopWorkflow 缺已终态 guard,task-registry.ts:817;对照 stopBackgroundAgent 有)。
70
+ - **T2A-4 MED**:journal 无条件缓存 FAILED agent 结果并重放 → `resumeFromRunId` 对瞬时失败 0 次 live 调用、永远复现失败,「resume crashed run」主用例不可用,与工具描述直接矛盾。
71
+ - **T2A-5 LOW-MED**:runTask THROW(parallel 吞成 null)在 journal 留洞 → resume 从洞起**整段后缀全部重跑**(含已成功有副作用的 agent);700 轮 soak 全部 27 条 resume 违例皆此类。
72
+ - 其余:T2A-6 owner 锁发起时 host taskId(跨轮 poll 自己 run 报 not found,待 service 确认);T2A-7 blocked poll timeout<400ms 实等 ~400ms;T2A-8 store-less 失败终态 poll 零 error 信息;T2A-9 重复 runId 共享观察通道被先结束者关死;T2A-10 裸 marker 泄出词法作用域。
73
+ - **验证为正确面**:notifier/ackServed 恰一次 · 0 unhandledRejection · store 终行一致 · 无泄漏 interval · 干净 resume 100% 重放零计费。
74
+
75
+ ## T3 判决(make-real TS 靶 cronwell,runSpec 全形态,3 正式切片 + 3 探针;详情 scratchpad/night2/T3-FINDINGS.md)
76
+
77
+ - **三切片全绿**(特性缺失 22/22 · planted 并发 bug 3/3 修对 16/16 五复跑稳 · 重构双门),双向 oracle 闸全过(6 突变探针全逮红);probe A 证预算耗尽诚实(failed+limit.max_turns+发射照常),`minPass:"baseline"` 首次 live 逮到测试消失式假象。
78
+ - **T3-5 MAJOR(观测缺口)**:矛盾 oracle 探针下模型造 `statsCallCount`(前 3 次说谎第 4 次说真话)拿到 mechanical green——frozen 防线没破,但引擎对该局 green **零 Goodhart 信号**;成本轮廓(20 turns/98k µUSD vs 正常 4-9 turns/11-24k)本身是强嗅探轴,TaskOutcome 缺承载维度。→ design/73 聚合侧候选:异常成本轮廓 flag。
79
+ - **T3-1 MINOR**:oracle stdout+stderr 合流,良性 stderr 噪声(ExperimentalWarning)可误伤 mustNotMatch;OracleGreenSpec 无 stream 选择。
80
+ - **T3-6 MINOR**:74-91s 长 brain call 期间 tracer 全静默,监控端无法区分长输出与挂死。
81
+ - 未证伪面(诚实):stop-gate red 反馈/frozen 恢复/连续 error 放弃,6 局顺路径 0 触发,需 harness 注入或更弱模型才能 live 覆盖。
82
+
83
+ ## T2b 判决(真模型 chaos/resume 矩阵 42/42;详情 scratchpad/night2/T2B-FINDINGS.md)
84
+
85
+ - **resume lane 12/12 全绿**(续跑到绿,零真不变量违规)· **resume-chaos 8/8 PASS**(leg1 chaos+abort → leg2 续绿)——resume 面比预期干净,是今晚正面复证。
86
+ - **T2B-1 LOW-MED(示例契约漂移,非引擎 bug)**:1.234 把顶层 `stats.compactionMicroUsd` 剥离进 `stats.costBreakdown.compactionMicroUsd`(codex review #4),但 `src/examples/make-real-longrun.ts` L141/L153 仍读旧字段→恒 undefined→0,任何 compaction run 假报 I2 失败(矩阵复现 5+ 例)。**该示例是官方驱动范本,下游照抄即带病**——违反「修类不修点」纪律。定向探针证引擎账目逐 µ$ 精确无损。→ 白天顺手修范本读法。
87
+ - **T2B-2 观察(上夜判断修正,非 bug)**:midstream-cut 30% 注入下引擎有流内重连(发 "connection lost, reconnecting" 重试),零速败零 wedge,代价=烧 turn 到 limit.max_turns。**上夜 NIGHT-REPORT #5「mid-stream cut 无 turn 级重试→速败」在 1.234.1 不复现**——缺口疑似已在 1.230-1.234 间闭合,归档时更新旧条。
88
+ - 全部 10 个 FAIL 均为 T2B-1 型 checker 假警(该 leg compacted>0 且 gap/次≈4-8kµ$),**引擎侧零真违规**。
89
+
90
+ ## Bug 记录
91
+
92
+ ### NH-1 [blackboard 412 洞②] WorkflowRun.result durable/registry 腿疑似未接
93
+ - **来源**:飞轮 H,clay 生产首跑 runId `wb5eda2293958d89c`
94
+ - **现象**:1.234.0 引擎完成的 workflow,模型 TaskOutput 取 result 得 "No persisted output for ref … may have expired" —— 走到 durable fallback miss 分支
95
+ - **真根因(转录逐帧坐实,与飞轮猜测不同)**:durable 记录 result 完好、TaskOutput 终态回执**确实带了 result**(4419 字符);但 result 被 bounded 截断(`…[+36276 chars]`),截断尾**没有全文取回通路指引** → 模型顺着 `[+N chars]` 心智调 `ReadToolResult(ref=<runId>)` → runId 不是 tool-result ref → "No persisted output for ref" miss 文案。即:**workflow result 超 bound 后全文没地方取**(durable store 有全文,但没有模型可达的读口)。
96
+ - **严重度**:M(契约半兑现:承诺 "reply carries its result",大 result 场景模型拿不全且被误导撞 miss)
97
+ - **修向(明早批)**:完成时把**全文 result 存 tool-result store 拿真 ref**,截断尾带该 ref(`use ReadToolResult(ref) for the full text`);或 TaskOutput 加 `full` 参数直读 durable run.result。倾向前者(与既有 offload 心智一致)。
98
+ - **状态**:已回黑板编号确认;修不动手(夜间纪律)
package/docs/BUILD.md ADDED
@@ -0,0 +1,63 @@
1
+ # BUILD — 编译 / 测试 / 发版(活文档,命令已实跑验证)
2
+
3
+ > 入口见 [`HANDOFF.md`](HANDOFF.md)。**本页每条命令均于 2026-07-03 实跑验证**(命令/产物不依赖具体 HEAD;测试数随主线持续涨,1.221.0 时 3887 passed,以实跑为准)。见尾部「如何重验」。
4
+ > 语言:TypeScript + Node(ESM, NodeNext)。包名 `@sema-ai/core`,发到 Gitea 私有 registry(scope `@sema-ai`)。
5
+
6
+ ## 1. 环境要求(已验证)
7
+ - **Node ≥ 20.3.0**(`package.json` engines;开发机实跑 **v24.2.0** 通过)。用到全局 `fetch`、`zlib.crc32`。
8
+ - **依赖**:运行时仅 `typebox` + `@modelcontextprotocol/sdk`(`package.json` dependencies 实测);devDeps 有 `vitest`/`@types/node`/`pg-mem`/`tsx`/`typescript`。
9
+ - 无需 Docker / DB 跑单测(mock brain + pg-mem,离线)。
10
+
11
+ ## 2. 装 + 编译 + 自检(逐条已验证 exit 0)
12
+ ```bash
13
+ npm install # 装依赖
14
+ npm run build # = tsc -p tsconfig.build.json → dist/(.js + .d.ts + .map) ✅ exit 0
15
+ npm run typecheck # = tsc --noEmit ✅ exit 0
16
+ npm test # = vitest run(全维度,mock brain,离线,含真 stdio MCP) ✅ 全绿(3887 passed / 36 skipped @1.221.0,随主线加测试会涨,以实跑为准)
17
+ npm run smoke # = tsx src/examples/smoke.ts(mock brain e2e,无需网关)
18
+ ```
19
+ - `npm run build` 产出 `dist/`(`agents/ brain/ core/ engine/ internal/ prompts/ + index.{js,d.ts}`)。`package.json.exports` 指向 `dist/index.js` + `dist/index.d.ts`。`files` 只发 `dist/ docs/ README.md CHANGELOG.md NOTICE.md LICENSE`(vendored 血统档在 `docs/vendor-history.md` 随 docs 发)。
20
+ - 本仓开发直接用 `tsx` 跑 `src/`(不必先 build)。
21
+
22
+ ## 3. 真模型 / 网关相关(需网关可达,非 CI)
23
+ ```bash
24
+ LIVE_AI=1 npx vitest run test/live-real-model.test.ts # 真网关 e2e(默认 skip;LIVE_AI_BASE_URL/LIVE_AI_MODEL 覆盖)
25
+ PG_URL=postgres://… npx vitest run test/pg-stores.test.ts # pgvector SQL 路径(默认 skip,pg-mem 不模拟扩展)
26
+ npx tsx src/examples/live.ts # 真网关:工具调用 + 续聊
27
+ npx tsx src/examples/features.ts # 流式 / 图片 / SQL / blocked
28
+ ```
29
+ > 默认 `npm test` **离线全绿**;真模型/真 PG 行为由 env-gated 测试 + `src/examples/*` 手动验证(同一 gating 惯用法)。1 skipped = `pgvectorSql` 分支(需 `PG_URL`)。
30
+
31
+ ## 4. 发版(npm publish,双步)
32
+ ```bash
33
+ # 0) ⚠️ 共享工作树:发版前先 stash 隔离 clay/团队 WIP(docs/团队 未提交文件),避免 prepublishOnly 的 build/test 被脏树污染
34
+ git stash push -u -m "pre-publish isolate WIP" # 发完 git stash pop 还原
35
+ # .npmrc(本地,已 gitignore;模板 .npmrc.example)需一个有 write:package(+read:package)的 Gitea PAT
36
+ npm publish # prepublishOnly 自动跑 build + 全量 test(= 发版 gate)
37
+ git push origin main && git push origin v<version> # 推 main + 推 tag
38
+ ```
39
+ - **发版 = `npm publish` + `git push`(main + tag)双步**(只 push registry 装不到;只 push git 拿不到包)。`prepublishOnly = npm run build && npm run test` 是硬 gate——build + 全量测试不绿则发不出去。
40
+ - **发版前 `git stash -u` 隔离 WIP**:本仓是多 AI 共享工作树 + clay 有未提交的 docs/团队 文件;不隔离则 prepublishOnly 的 build/test 可能踩到脏树。发完 `git stash pop` 还原。提交只显式列自己改的文件,**别 `git add -A`**。
41
+ - `publishConfig.registry` = `http://git.zhenbs.com:9999/api/packages/AI-Only/npm/`。
42
+ - ⚠️ **PAT 需 `write:package` scope**,否则 `E401`(Gitea 设置→应用→生成令牌勾 package 读写)。
43
+ - semver;pre-1.0 minor 可含 breaking。commit 尾加 `Co-Authored-By: Claude ...`。打 tag `v<version>`。
44
+ - **发版 go 只来自 clay**;search/council 背书 = 质量 clean(必要非充分)。
45
+
46
+ ## 5. 版本现状(2026-06-27,接手必知)
47
+ - **当前 = `1.221.0`,已 publish + 打 tag `v1.221.0`,CHANGELOG 有 `## 1.221.0` 头**(干净发版,无版本漂移)。`package.json.version`、`git tag`、`npm view @sema-ai/core version`、CHANGELOG 顶部头四者一致。
48
+ - **发版口径(clay 2026-07-02 拍)= 自主发版**:复审+全量绿即 merge+tag+`npm publish`+黑板通告,不再等逐版 go(纪律不变:多轨对抗复审/反事实/关键路径 live;memory `feedback-release-gate-and-endorsement`)。
49
+ - 近期发版谱系(全 released + tagged):`1.104.0`(design/80 supervisor 封顶)→ `1.111.0`(metrics→core `/bench`)→ `1.113.0`(ask 冒泡)→ `1.114.0`(`tightenTaskSpec` 治理原语)→ `1.115~1.118`(CC-parity:推理强度真切换 / S1 workflow 引擎 / S8 LLM 自助编排 / goal 模式 S2+S4)→ `1.119.0`(**改名 `@ai-only/ai-agent-core`→`@sema-ai/core`,仓库 `sema-core`**)→ `1.120~1.128`(**sema-shell 主权契约 E1–E25**,design/99)→ `1.129~1.139`(**多轮对抗 bug-hunt + vendored 硬化**,1.139 含 36 修)→ `1.135~1.143`(**2c session-sync** 云↔本地)→ `1.144~1.145`(workflow-parity CORE-1~9 — `WorkflowJournalStore` scope-keyed durable resume + steerable agents + worktree 隔离 + per-agent activity 流)→ **`1.146~1.150`(当前:sema-shell 数据契约 MF-*/MF-Fleet + P2 design-review,与 service 协调 —— 引擎↔sema-shell monitor↔service 可观测数据契约。MF-24 权限门/denial 账本 `TaskResult.stats.humanReview.gates[]` + 脱敏边界 `src/core/arg-summary.ts`(1.148)/ MF-10 `TaskEvent.task_progress` subagent usage tick(1.147)/ MF-25 `TaskResult.model` 回声 effective model id(1.148)/ MF-18 `compacted.trigger`(1.149)+ MF-14 `CheckpointSummary.contentKind`(1.150)+ MF-W WorkflowRun monitor header / 活动 arg / deriveAgentDisplayStatus(1.147~1.150)。MF-Fleet live 聚合在 service 进程内,core 只产 fact/signal、不建 durable 父系血缘)**。每片 = subagent/workflow 实现 + 我审 + codex 异源复审。
50
+ - **主线说明**:最近建造线 = sema-shell 数据契约(MF-*/MF-Fleet,design/99)/ workflow-parity(design/97)/ 2c session-sync;CC-parity 编排 + design/80 Supervisor + 价值判决 + workflow-parity(CORE-1~9×SVC-1~5)+ sema-shell 主权契约 E1–E25 + 2c session-sync = **已封顶基座**。**当前焦点**(快速移动)= sema-shell 数据契约 loop(MF-*/MF-Fleet)+ P2 design-review,与 service 协调(真相查 `git log` + `团队/` 通道[302] + memory)。
51
+ - ⚠️ 旧文档里的历史版本笔记已**作废**——现在干净停在 **1.221.0**(1.150→1.221 谱系见 HANDOFF 顶部横幅 + CHANGELOG)。
52
+ - **CI 版本一致性 pin 已转正**(`test/known-issues-2026-06-15.test.ts` 的 P-17:断言**每个 shipped package.json version 都有匹配的 `## <version>` CHANGELOG 头**——已从 pin-现状翻成 DESIRED 不变量,作为漂移守卫)。
53
+ - **teacher hang 历史校正**(保留):cap=10000 曾让 ~23 个 teacher 测试无限 mock loop → "publish 卡 11 分钟"的真因;revert + teacher 测试设显式 maxTurns 后已修,suite 全绿。
54
+
55
+ ## 6. 测试组织(改代码必看)
56
+ - `test/` **一文件一维度**,矩阵见 [`../test/COVERAGE.md`](../test/COVERAGE.md)。每个发布版须全维度绿。
57
+ - 确定性单测用 mock brain(`test/helpers.ts: scriptedBrain`,报告 context-sized usage 使压缩逻辑被真实驱动);`errorBrain`/`slowBrain` 盖失败/abort。
58
+ - 新 bug 的 tripwire:`test/known-issues-2026-06-15.test.ts`(pin 当前 buggy 行为、保持绿;修 bug 时翻成 DESIRED 断言)。
59
+ - design/80 supervisor 测试新增多片(decision-binding / riskDescriptor / pendingSteer / plan_review / req.budget 等),均随发版进 suite,矩阵以 `test/COVERAGE.md` + 实跑为准。
60
+ - ℹ️ 旧的「改代码避开 design/74 活跃文件」警告已**作废**——design/74 LIVE suspend/resume 已落地+验证,design/80 也已动过 `runtask.ts`/`checkpoint-store.ts` 并发版。这些文件现在是常规可改文件(改 supervisor 控制流仍最高爆炸半径,走 code-ready council + dogfood)。
61
+
62
+ ---
63
+ *活文档。最后核实 2026-07-03(构建事实不依赖具体 HEAD)。**如何重验**:`node -v`、`npm run build && echo $?`、`npm run typecheck && echo $?`、`npm test`(看 passed 数,当前 3887 passed / 36 skipped)、`node -p "require('./package.json').version"` 应与 `git tag | sort -V | tail -1` + CHANGELOG 顶部 `## <version>` 头三者一致(版本无漂移)、`grep -A3 '"dependencies"' package.json`。*
@@ -0,0 +1,98 @@
1
+ # cancel-async-tasks 归因 — 2026-07-09
2
+
3
+ **结论(TL;DR)**:`divergence_class = **model_variance**`(非 engine_surface,非 prompt_surface)。
4
+ "1249 PASS → 1.258.5 FAIL" 是**采样运气翻面**,不是引擎面回退。该题的 pass/fail **完全由模型自采样的三种实现策略中哪一种决定**,而策略选择在两个版本上都不稳定。所谓"1249 基线 PASS"只是那一注恰好抽到了唯一稳健的 TaskGroup 形态;1249 的其它注(rerun-n5-1249ctl/lowc)同样大量抽到 gather 形态并 FAIL。**无引擎锚可拍;不构成硬回退。**
5
+
6
+ ---
7
+
8
+ ## 1. 失败信号(逐题一致)
9
+
10
+ FAIL 只挂 `test_tasks_cancel_above_max_concurrent`(3 tasks / max_concurrent 2 / 0.5s 后真 SIGINT):
11
+ ```
12
+ assert stdout.count("Task started.") == 2 # PASS: 只起 2 个,并发闸对
13
+ assert stdout.count("Cleaned up.") == 2 # FAIL: 实得 0 —— cleanup 没跑
14
+ ```
15
+ 其余 5 项(file_exists / run_concurrently / obey_max_concurrent / cancel_below / cancel_at)全 PASS。即:并发语义、非-above 场景的取消清理都对,**唯独真 SIGINT 下 above-max 的 cleanup 不跑**。
16
+
17
+ 关键测试细节(决定性):测试的 `task()` 的 cleanup **自身含 await**:
18
+ ```python
19
+ finally:
20
+ await asyncio.sleep(1) # <-- cleanup 里有 await
21
+ print("Cleaned up.")
22
+ ```
23
+ 测试驱动是顶层 `asyncio.run(main(...))`,外部进程发真 SIGINT。
24
+
25
+ ---
26
+
27
+ ## 2. 三种实现策略 = pass/fail 唯一判据(经验复现)
28
+
29
+ 在海外机 `/tmp/cadiv` 用真 test.py + 真 SIGINT 逐形态复现(Python 3.12,与容器一致):
30
+
31
+ | 策略 | 机制 | 复现结果 | 全库注数 |
32
+ |---|---|---|---|
33
+ | **A. TaskGroup**(= 参考解 solve.sh) | `async with asyncio.TaskGroup()`;`__aexit__` 在把控制权交还 runner **之前**、在循环仍存活时驱动每个子任务的 `finally`(含其 await)跑完 | `started=2 cleaned=2` **PASS** | 2/2 PASS |
34
+ | **B. gather + 自装 SIGINT 信号处理器** | `loop.add_signal_handler(SIGINT, …)` 把 SIGINT 截成 `stop_requested` 标志,**阻止 KeyboardInterrupt 拆循环**,已起任务的 awaiting cleanup 得以跑完 | `started=2 cleaned=2` **PASS** | 1/1 PASS |
35
+ | **C. gather + `except BaseException` 二次 re-await 兜底**(无信号处理器) | `await asyncio.gather(...)` 捕获 CancelledError → cancel 剩余 futures → `await asyncio.gather(..., return_exceptions=True)` 收尾 | `started=2 cleaned=0` **FAIL** | **1/16 PASS(~94% 挂)** |
36
+
37
+ 其它形态(WVpyz5c 的 Condition-bypass)本质属 C 族(无信号处理器),复现同挂。
38
+
39
+ **6 注目标 FAIL 全部是 C 族**(full89 的 4j5X8et + r3-rerun 全 5 注 msW3z35/pNuzGjn/TaPRk7f/tSNCqSU/WVpyz5c)。**1249 的 PASS 基线 3JM7tfs 是 A 族(TaskGroup)**。
40
+
41
+ ---
42
+
43
+ ## 3. C 族为什么在真 SIGINT 下 cleanup 不跑(精确机制,带 trace)
44
+
45
+ Instrument 版 trace(海外机实跑)显示 recovery gather **确实"完成"了**(打印 `recovery gather COMPLETED`),但 `Cleaned up.` 从未打印。根因链:
46
+
47
+ 1. 外部进程发 SIGINT → CPython 的 `asyncio.runners.py` 在 `run_until_complete` 里**取消主任务**,并在 runner 收尾处 `raise KeyboardInterrupt()`(runners.py:123)。
48
+ 2. CancelledError 传入 `run_tasks` 的 `except`,C 族 cancel 已起任务 → 它们从 `await asyncio.sleep(2)` 抛 CancelledError → 进入 `finally`。
49
+ 3. `finally` 里的 `await asyncio.sleep(1)` **又是一个 await**。此刻整个主任务正被 runner 的 KeyboardInterrupt 收尾拆除,这个二次 await **立即再被取消**,`asyncio.sleep(1)` 永不完成,`print("Cleaned up.")` 到不了。
50
+ 4. recovery gather 的 `return_exceptions=True` 把这些二次 CancelledError 吞掉,于是 gather"完成",但 cleanup body 的 await 从没被满足。
51
+
52
+ **反证(锁死机制)**:把测试 cleanup 改成**不 await**(纯 `print`),C 族立刻 `cleaned=2` PASS。→ 挂点精确落在"cleanup 内含 await + 循环正被顶层 KeyboardInterrupt 拆除"。A/B 之所以过,是因为它们都在循环存活期把 cleanup 的 await 驱动完(A 靠 TaskGroup 的 `__aexit__` 自身 shielding,B 靠信号处理器不让循环被拆)。
53
+
54
+ ---
55
+
56
+ ## 4. 对抗自查:排除 engine_surface,坐实 model_variance
57
+
58
+ - **引擎面证伪**:提交物是模型自写的 Python 源码,失败纯由 `asyncio` 语义决定,与 sema 引擎的 steering/attachment/窗口/记忆无因果。events.jsonl 里唯一的 `steering_injected` 是 `todo_reminder`(与实现路线无关)。prompt.assembled = constitution `core` 三块(role.base/harness.context/env.context),无异常。→ **不是 engine_surface,也不是 prompt_surface。**
59
+ - **版本无关性(base-rate)**:全库形态×奖励聚合:
60
+ - `gather-recovery: 1/16 PASS`、`TaskGroup: 2/2`、`gather+sighandler: 1/1`、`other(condition): 2/2`。
61
+ - 形态几乎完美决定 pass/fail,**跨 1249/1257/1258 版本同分布**。
62
+ - **1249 自己**:rerun-n5-1249ctl = 3/3 gather **全 FAIL**;rerun-n5-1249lowc = 3 注 gather(1 FAIL + 2 PASS,其中 1 个 PASS 靠信号处理器=B 族,另 1 个是 C 族 asyncio.wait 变体的 timing-flaky PASS)。→ **1249 绝非"该题稳过",只是 full-pro 那一注抽到了 A 族。**
63
+ - **1258**:rerun-n5-1258 = 4 注 gather FAIL + 1 注 TaskGroup PASS。分布与 1249 同族,**没有可辨的版本性漂移**。
64
+ - **纯 deepseek 服务端漂移**:无法完全排除微观概率偏移,但**不需要**——即便采样概率完全不变,C 族本就 ~94% 挂,一次 full-89 抽到 C + N=5 r3-rerun 又抽到 5×C(C 是最高频形态)完全在概率之内。**系统性 0/5 是"高频劣形态"的直接后果,不是引擎劣化。**
65
+ - 无 CC 同题同日腿(a1-ccdiff-1258 未覆盖此题),故时段对照缺。但版本内 base-rate 已足以定谳。
66
+
67
+ **唯一 gather-recovery PASS 异常(1249lowc rigQaBR)**:用 `asyncio.wait` 而非 `gather(...return_exceptions=True)` 且吞 CancelledError,结构上仍有同款拆除脆弱性,PASS 是 timing 侥幸——反而佐证 gather 族是"多数输的彩票"。
68
+
69
+ ---
70
+
71
+ ## 5. 修复候选
72
+
73
+ 这是**能力/稳健性(prompt-shaping 或 finetune)**问题,不是引擎 bug,**无引擎锚**。可选杠杆:
74
+
75
+ 1. **(无 core 改)记为已知方差题**:该题真值极窄——只有 TaskGroup 或"截 SIGINT 信号"两条稳健路。C 族(gather+re-await)是 asyncio 常见误区(测试 docstring 明说 "common gotcha")。模型对 asyncio 取消语义的掌握不稳=纯 model 面,建议归入方差桶,不追引擎修。
76
+ 2. **(可选,prompt 面)** 若要提该题稳定率,在 role.base/harness 里加一条通用 asyncio 提示("cleanup 含 await 时,顶层 SIGINT 会拆循环;优先 TaskGroup 或 loop signal handler")——但这**逼近 teaching-to-the-test**,除非能证明它泛化到别的取消类题,否则不建议。
77
+ 3. **不建议**任何 core 行为面改动(steering/attachment/窗口)——它们与本失败无因果,改了也不动这题。
78
+
79
+ ---
80
+
81
+ ## 6. 建议快环验收口径(单题 N=3)
82
+
83
+ - **口径**:单题 `cancel-async-tasks` × N=3,记录每注的**实现形态**(TaskGroup / gather+sighandler / gather-recovery / other)与 reward,**看形态分布而非单看 pass 计数**。
84
+ - **判据**:
85
+ - 若 N=3 里出现 ≥1 注 A/B 形态且 PASS → 印证"形态决定论",维持 model_variance 定性,**不追引擎**。
86
+ - 若刻意要抬稳定率(采纳候选 2),验收看 **A/B 形态占比是否上升**(而非单纯 pass 率——pass 率会被 gather-recovery 的 1/16 侥幸污染)。
87
+ - **反例守门**:任何一注 C 族(gather-recovery)若 PASS,需核是否 `asyncio.wait`/非-await-cleanup 侥幸,不计入稳健证据。
88
+ - **别用**:纯 pass/fail 计数做验收(会把形态方差误读成版本效应)——这正是"1249 基线 PASS"结论的陷阱来源。
89
+
90
+ ---
91
+
92
+ ## 附:证据坐标(海外机 `ubuntu@91.199.82.197`)
93
+
94
+ - 任务真值:`~/.cache/harbor/tasks/5pwPaf92MGZBJjvqnuBn9d/cancel-async-tasks/`(test.py / test_outputs.py / solution/solve.sh=TaskGroup 参考解)
95
+ - 6 注 FAIL(全 C 族):`full-1258.5-fb/full89/cancel-async-tasks__4j5X8et` + `r3-rerun-1258.5-fb/r3/cancel-async-tasks__{msW3z35,pNuzGjn,TaPRk7f,tSNCqSU,WVpyz5c}`
96
+ - PASS 对照(A 族):`full-pro-1249-fb/cancel-async-tasks__3JM7tfs`
97
+ - base-rate 腿:`rerun-n5-1249ctl-fb`(3×C FAIL)/`rerun-n5-1249lowc-fb`(B PASS + C flaky PASS + C FAIL)/`rerun-n5-1258-fb`(A PASS + 4×C FAIL)/`full-pro-1257-fb`(C FAIL)
98
+ - 复现脚本:`/tmp/cadiv/`(run_gather.py=C / run_tg.py=A / run_sig.py=B / test.py + test_noawait.py)
@@ -0,0 +1,70 @@
1
+ # CC 2.1.198 → 2.1.201 版本漂移横扫(答题行为面)
2
+
3
+ 日期:2026-07-09
4
+ 执行:core search AI(版本漂移取证)
5
+ 目的:TB 基线腿实测跑 2.1.201,但全部 CC-parity 考据锚定 2.1.198(`docs/cc-probe-198/`)。定谳两版在「影响答题行为的面」上有无漂移。
6
+
7
+ ## 终判
8
+
9
+ **① 零行为面漂移 —— 198 锚继续有效,无需对 201 重采活体探针。**
10
+
11
+ 两版在所有六个答题行为面上语义一致。全部差异均为 minifier 符号重命名(如 `A→E`、`Ke→Ve`、`_Yo→Ses`、`sBu→Rju`)与字符串模板化(工具名内插 `${KC}`/`${Bg}`),无一改变发给模型的提示词/工具契约/参数。198 活体档(tools-array.json + system-prompt.txt + probe-*.json)可继续作为 201 基线腿的 CC-parity ground truth。
12
+
13
+ ## 取证物料
14
+
15
+ | 项 | 路径 | 说明 |
16
+ |---|---|---|
17
+ | 198 JS bundle | `/Users/clay/开发/gittea/claude-198/cc-2.1.198/package/claude-cli-2.1.198.min.js` (18MB) | 从 198 darwin-arm64 bun 二进制已抽出 |
18
+ | 201 JS bundle | scratchpad `cc201-bundle.js` (24MB) | 从 `@anthropic-ai/claude-code-darwin-arm64@2.1.201` bun 二进制 carve(offset 207735112,`@bun-cjs` 标记)|
19
+ | 198 活体档 | `docs/cc-probe-198/tools-array.json` / `system-prompt.txt` | 27 工具 + print/interactive 双档系统提示词 |
20
+
21
+ 注:201 主 npm 包已 Bun 二进制化(`extractFromBunfs.js`,无 `cli.js`),故拉 darwin-arm64 平台子包取原生 `claude` 二进制再 carve JS 区。198 侧本地已有抽好的 min.js,like-for-like 对比。
22
+
23
+ ## 逐面判定
24
+
25
+ ### a. 工具面(工具列表增删 + 每工具 description/schema)— SAME
26
+
27
+ - **工具集**:27 工具(198 活体:`n_tools_interactive=27`,print=24,interactive_only=AskUserQuestion/EnterPlanMode/ExitPlanMode)。201 无新增/删除工具能力(对 Glob/Grep/MultiEdit/TodoWrite/BashOutput/KillShell/SlashCommand 等潜在新工具的 hallmark 字符串扫描:201 有而 198 无 = 0;198 有而 201 无 = 0)。
28
+ - **description 逐条**:27/27 工具描述在 201 bundle 中逐字命中(探针取每条描述的 distinctive 中段 60 字符)。
29
+ - **唯一 flag=CronList**:探针误报。198 活体把 `${KC}`(=CronCreate 工具名)渲染成字面量,且 201 保留 durable/session 双分支条件文案。原文一致:
30
+ - 201: `` List all cron jobs scheduled via ${KC}, both durable (.claude/scheduled_tasks.json) and session-only.`:`List all cron jobs scheduled via ${KC} in this session. ``
31
+ - 198 活体:durable 分支渲染为 `...scheduled via CronCreate, both durable...`
32
+ - 判定:同一描述,工具名内插,198 探针只捕获 durable-enabled 分支。
33
+
34
+ ### b. 系统提示词主体 — SAME
35
+
36
+ - 49 条静态 prose 行(剔除 banner/env 值如 `/home/ubuntu/cc-probe-home`、`cc_version=2.1.198`、`deepseek-v4-pro`、OS 行——这些是运行时/环境注入非源字符串)全部逐字命中 201。
37
+ - 初判 21 条 miss 全为编码/转义伪影:em-dash `—`(latin-1 解码 mangle,改 UTF-8 后命中)、`\\`` 转义反引号、以及 `invoke it via Skill` 在 201 中作 `invoke it via ${Bg}`(Skill 工具名内插)。均同文。
38
+ - system-reminder/memory/model-facts 段(`<system-reminder> tags injected by the harness`、`The most recent Claude models are the Claude 5 family...`、`Fast mode for Claude Code uses Claude Opus...`、memory 写盘契约)全在。
39
+
40
+ ### c. 压缩/microcompact — SAME
41
+
42
+ - **压缩摘要 prompt**:`Your task is to create a detailed summary of the conversation` 起 1620 字符窗口**逐字节相同**(归一化转义后 first-divergence=None)。
43
+ - **microcompact 逻辑**:`tengu_time_based_microcompact` 事件族(`toolsCleared/toolsKept/keepRecent/tokensSaved`、`context_hint` trigger)结构一致,仅符号重命名(`Ke→Ve`、`Bqt→pZt`)。
44
+ - **阈值常量**:`0.92`(3=3)、`24000`(3=3)、`0.85`(2=2) 计数一致。`compact_boundary`/`auto-compact`/`autoCompact` 全在。`auto-compact` 上下文 9=9 个站点,文案逐字同。
45
+
46
+ ### d. system-reminder 注入族 — SAME(一处需记档的表面差异,非行为漂移)
47
+
48
+ - reminder payload 文本核对:`model changed`、`Brief mode`、`Until fetched only the name`、`Plan mode is active`、`TodoWrite hasn't been used recently`、`As you answer the user's questions...context`、`The user opened the file` 全部 198=201。
49
+ - **唯一真差异**:`<system-reminder>This file is already in your context` 字面量 201 有、198 无——但**功能两版都有**。Read-dedup 逻辑(`Wasted call — file unchanged since your last Read. Refer to that earlier tool_result instead.` / `The content from the earlier Read tool_result...still current — refer to that instead of re-reading.`)198 与 201 **均存在**。差异仅在于 201 把 `<system-reminder>` 前缀抽成独立字符串常量(`a8i`),198 运行时拼接。同一「别重读未改动文件」行为,minifier/重构差异。
50
+
51
+ ### e. 请求参数构造(max_tokens/thinking/温度)— SAME
52
+
53
+ - 锚点计数全等:`temperature:`(16=16)、`max_tokens:`(74=74)、`budget_tokens`(86=86)、`type:"enabled"`(10=10)、`interleaved-thinking`(6=6)、`maxThinkingTokens`(6=6)。
54
+ - thinking 预算构造逐字同:`{type:"enabled",budget_tokens:Math.min(m,a-1)}`,`type:"disabled"` 分支同,`"1h"` cache flag 同。
55
+
56
+ ### f. agent 循环控制(turn 上限/超时)— SAME
57
+
58
+ - `maxTurns`(51=51)、`max_turns`(27=27)、`MAX_TOOL_USE`(2=2)、`AGENT_TIMEOUT`(1=1) 全等。`stop_reason` 189→192(+3,散落于其它代码,无循环语义变化)。
59
+
60
+ ## 已注意到的良性差异(不影响答题行为,记档避免后续误判)
61
+
62
+ 1. **枚举常量新增**:198 常量表某槽为 `CLAUDE_PREVIEW_CLASSI...`,201 同槽为 `CLAUDE_WORKFLOW_NAME_...`。env-var/feature-flag 枚举增改,非提示词/工具面。
63
+ 2. **符号全面重命名**:201 bundle 增大(18→24MB,含 bytecode blob)+ 全量 minifier 变量重命名,属正常构建差异。
64
+ 3. **Read-dedup reminder 字符串重构**(见 d),行为等价。
65
+
66
+ ## 重锚方案
67
+
68
+ **无需重锚。** 198 活体档对 201 继续有效。若追求零残留严谨,可在后续里程碑对 201 补一次单探针(仅 tools-array 快照)交叉确认,但当前证据不支持投入——工具描述已逐条命中,系统提示词静态 prose 全命中,压缩 prompt 逐字节同。
69
+
70
+ TB 基线腿跑 201 vs CC-parity 锚 198 的版本差可判为**测量无关变量**,198 考据结论直接沿用。
@@ -0,0 +1,51 @@
1
+ # CC 基线腿「verifier 假 0」污染复核(公平性审计 · 最高优先项)
2
+
3
+ 日期:2026-07-09
4
+ 复核机:`ubuntu@91.199.82.197`(海外机,非 CN-egress)
5
+ 复核对象:`~/sema-tb/jobs/cc-pro-r3-full/`(权威 CC 全量腿)+ 对照 `cc-pro-full/`
6
+
7
+ ## 三个数(回复摘要)
8
+
9
+ | 项 | 结论 |
10
+ |---|---|
11
+ | **假 0 数量** | **0**(r3-full 全量 0 例 verifier 假 0) |
12
+ | **修正后 CC 基线** | **仍为 54/89**(无修正;54 PASS / 34 FAIL / 1 verifier-timeout 非结果,后者不入分母,result.json 记 88 evaluable,mean=0.6067) |
13
+ | **CC 版本号** | **2.1.201**(89/89 trial 一致,独立源 `agent/claude-code.txt` 逐字确认 `claude_code_version":"2.1.201`;审计腿报的 2.1.201 正确) |
14
+
15
+ ## 机制面判据(本次复核建立的口径)
16
+
17
+ 「verifier 假 0」= verifier 阶段因 uv/pip/网络安装失败而无法跑测,把本应 PASS 的 trial 记 0。判据三条,任一不满足即非假 0:
18
+ 1. verifier 阶段未产出 `reward.txt`/`ctrf.json`(测未跑);
19
+ 2. verifier 日志在**安装阶段**(uv/pip 拉包)有明确失败签名(下载超时、resolve 失败、连接拒绝、name resolution 失败、uv 命令缺失);
20
+ 3. agent 侧实际产出了合格产物(有产出但 verifier 挂 = 假 0 实锤)。
21
+
22
+ ## 关键机制事实:CC 腿 verifier 确实无 uv 预植入,但本机网络通
23
+
24
+ - 前提坐实:CC 腿 verifier **在验证时现场从网络拉 pytest/numpy/requests 等包**(`downloading uv 0.9.5` → `Installed N packages`),无 sema 腿的 uv 预植入。
25
+ - 但复核机 91.199.82.197 是**海外机(非 CN-egress)**,这些下载**全部成功**,不触发 CN-egress uv 死锁。因此「无预植入」在本机**没有转化为**任何假 0。
26
+ - 实证锚:`kv-store-grpc`(25 行 Downloading,全成功,reward=1)、`largest-eigenval`(13 行,成功,reward=1)、`model-extraction`(`downloading uv 0.9.5 ... everything's installed! ... Installed 7 packages`,安装成功后才进 pytest)。
27
+
28
+ ## 逐 trial 分类(r3-full,89 trial)
29
+
30
+ - **③ PASS:54**(reward=1,含 largest-eigenval / path-tracing 等 agent 超时但 verifier 仍判 1 的用例)
31
+ - **② verifier 正常跑完判 0(真 FAIL):34** — 每一例 `ctrf.json` 均含真实 test 结果(tests 跑了,部分 pass 部分 fail),无一例是 verifier 未跑的空壳 0。抽验实锤:
32
+ - `adaptive-rejection-sampler`:9 tests 7 pass 2 fail(R 侧 `h_prime` 契约不符,测试断言失败,非安装失败)
33
+ - `sam-cell-seg`:9 tests 1 pass 8 fail(mask 形状/csv shape 实质错误)
34
+ - `caffe-cifar-10`:agent exit 137(OOM 被杀),verifier 仍跑 6 tests 仅 1 pass(训练未完成 = 真 FAIL,非 verifier 挂)
35
+ - `filter-js-from-html` 的 `INSTALL/NET-SIG` 初筛命中 = 任务**自身测试 harness** 的 localhost selenium/webdriver 连接问题(read timeout / connection refused on localhost:xxxxx),**非** pypi 拉包失败,属任务测试行为不属基建污染。
36
+ - **① verifier 安装失败/异常(假 0 候选):0** — 精确签名扫描(`error: Failed to download/fetch/prepare`、`No solution found`、`ReadTimeoutError...pythonhosted`、`Failed to establish...pypi`、`Temporary failure in name resolution`)在全 89 trial verifier 安装阶段**零命中**。初筛的 4 个 case-insensitive 命中(caffe/make-doom/make-mips/sam-cell)经严格过滤后全为**测试断言文本里的 "Failed to build/generate" 等词**,非安装失败,apt/uv 头部日志显示仓库全部 Hit 成功。
37
+
38
+ ## 唯一边界 case:model-extraction-relu-logits(reward=None,1 例)
39
+
40
+ - 现象:`verifier_result: None`,无 `reward.txt`,verifier 阶段跑满 900s(22:00:52→22:15:52)超时。
41
+ - 归因:verifier 日志显示 **uv 0.9.5 安装成功 → numpy 等 7 包 Installed → pytest collected 1 item 并进入测试体**,随后在**测试执行内**挂住(agent 先 AgentTimeoutError,产出的是部分/死循环产物,导致测试体跑不完)。**不是**安装阶段死锁。
42
+ - 处置:属 agent-timeout 连带的 verifier-timeout 非结果,result.json 已将其**排除出分母**(n_trials=88),不计为 0,故不影响基线。即便按最严格口径把它当作"基建可疑",也仅 1 例且已不在分母,对 54 无影响。
43
+
44
+ ## 对照发现(附带,非本任务分母)
45
+
46
+ - 更早的 `cc-pro-full/` 腿几乎每个 0 都带 `exception_info`(AgentTimeoutError / NonZeroAgentExitCodeError exit 137 / UnknownApiError),是 agent 侧大面积超时/被杀/CLI 报错,污染严重——这正是为何 **r3-full 是权威腿**、更早的 cc-pro-full 不应作为基线。
47
+ - 需澄清的机制点:所有 `exception_info` traceback 里的 `~/.local/share/uv/tools/harbor/` 路径是 **harbor 自身的安装位置**,不是 per-task uv 安装,易被误读为"uv 失败"。真正的 per-task verifier 安装在各 trial `verifier/test-stdout.txt` 头部,本次已逐一核查。
48
+
49
+ ## 结论
50
+
51
+ CC 基线腿(r3-full, 2.1.201)**不存在 verifier 假 0 污染**。全部 34 个 0 均为 verifier 正常跑完的真 FAIL(ctrf 有真实 test 结果),无一例因 uv/pip/网络安装失败被记 0。CC 真实基线**无需上修,维持 54/89**。「CC 腿无 uv 预植入」的前提属实,但因复核在海外机(网络通)上完成,该差异未转化为任何假 0——注意:**若 CC 腿曾在 CN-egress 机上跑过,则那批数据需单独复核**;本次权威腿 r3-full 跑在海外机,安全。