@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,236 @@
1
+ import type { Runner } from "../core/runner/runtask.js";
2
+ import type { TaskSpec } from "../core/types.js";
3
+ import type { ExecutionEnv } from "../internal/harness.js";
4
+ import type { VerificationResult } from "./verify.js";
5
+ import type { Checkpoint } from "../core/checkpoint-store.js";
6
+ import { type OracleIsolationVerdict } from "../core/oracle-isolation.js";
7
+ /**
8
+ * SAFE-tier oracle self-repair loop (design/76 D1 命门, design/78 Slice-1). Given an implementation spec
9
+ * and an **injected, trusted oracle**, this runs the worker, grades it with the oracle, and — on failure —
10
+ * loops a fix turn (and a bounded clean-restart) until the oracle passes or the loop gives up. The terminal
11
+ * is then projected through the {@link terminalForTier} table, which **caps every PASS at `candidate_only`**:
12
+ * this layer NEVER auto-accepts. Auto-accept (`fixed`) requires the OFF Gate-1 out-of-process
13
+ * `oracleIsolation` boundary that this slice deliberately does not build — SAFE-tier escalates to a human
14
+ * (`needs_human_oracle`) or surfaces a candidate, but never clears its own work.
15
+ *
16
+ * Like {@link verifyCompleted}, this is a **thin composition** over `runner.runTask` (verify.ts:18-21 posture)
17
+ * — it adds no Runner-core surface, touches no vendored code, and is called by a leader/profile (the sibling
18
+ * of {@link runWithVerification}). The oracle internals (which gate/judge/property-harness to compose) live
19
+ * in the PROFILE-injected {@link RepairOracle} closure; core only fixes the {@link OracleResult} shape and the
20
+ * read-only / identity contract (§1 裁决①). N-parallel candidate fan-out + a robustness-first selection ranker
21
+ * are PROFILE concerns (§3 裁决②) — core stays single-candidate.
22
+ */
23
+ /**
24
+ * The provenance/strength tier of the oracle that produced a verdict. The control plane assigns this — it is
25
+ * NEVER derived from agent-visible state (not a {@link TaskSpec} field), mirroring design/44 §7 Q4. Drives the
26
+ * {@link terminalForTier} projection.
27
+ * - `trusted_hidden` — a hidden, spec-derived held-out oracle (strongest; still candidate_only here).
28
+ * - `trusted_visible` — a visible trusted oracle (must be paired with an anchor + no property-harness regression + L3).
29
+ * - `property_harness_weak` — derived property invariants only (a weak signal).
30
+ * - `l3_judge_advisory` — an L3 read-only judge that advises but does not clear.
31
+ * - `none` — no oracle available → only a human can adjudicate.
32
+ */
33
+ export type OracleTier = "trusted_hidden" | "trusted_visible" | "property_harness_weak" | "l3_judge_advisory" | "none";
34
+ /**
35
+ * The terminal state the repair loop resolves to. SAFE-tier (this slice) can reach every value EXCEPT `fixed`:
36
+ * `fixed` is reserved for auto-accept, which needs the OFF Gate-1 out-of-process oracleIsolation boundary and
37
+ * is therefore unreachable here (terminal-by-tier §2 caps PASS at `candidate_only`).
38
+ * - `fixed` — auto-accepted (NOT reachable SAFE-tier; reserved for a future Gate-1 slice).
39
+ * - `candidate_only` — the oracle passed; surface the candidate for human acceptance, do not auto-accept.
40
+ * - `needs_human_oracle` — no usable oracle (`tier: "none"`) → only a human can adjudicate.
41
+ * - `gave_up` — attempts exhausted without a passing oracle (a first-class abstain, never "satisfy the test").
42
+ * - `conflict` — the spec and the oracle disagree (escalate; never rewrite the work to satisfy the test).
43
+ * Slice-1 core does NOT synthesize this (the test-tampering diff-monitor is §6-deferred to the profile —
44
+ * core honestly `gave_up`s rather than under-detect a conflict); it is in the vocabulary for the profile.
45
+ * - `oracle.unprotected` — fail-closed: the grader env was not isolated from the worker env (identity check).
46
+ *
47
+ * `needs_human_oracle` is disjoint from `needs_review` (a future dry-run gate) and `irreversible_ask` (shipped).
48
+ */
49
+ export type RepairTerminal = "fixed" | "candidate_only" | "needs_human_oracle" | "gave_up" | "conflict" | "oracle.unprotected";
50
+ /**
51
+ * One oracle verdict. Produced by the injected {@link RepairOracle} closure. `flaky` records that the oracle
52
+ * was non-deterministic across `retries` (a flaky verdict is NEVER projected to `fixed` — §5 / §6 flakyK).
53
+ * `trace` is the raw failure output fed back into the next fix turn; it is treated as untrusted worker-adjacent
54
+ * data (delimited into context, sanitized into the objective) but its INNER text is NEVER rewritten (§5.5 #8a)
55
+ * — rewriting it would destroy the real-trace feedback lever.
56
+ */
57
+ export interface OracleResult {
58
+ tier: OracleTier;
59
+ passed: boolean;
60
+ /** Raw failure trace (on a failed verdict). Untrusted; fed back verbatim into the fix turn (never inner-rewritten). */
61
+ trace?: string;
62
+ /** The oracle's verdict was non-deterministic across `retries` re-isolations. A flaky verdict never → `fixed`. */
63
+ flaky: boolean;
64
+ /** How many re-isolation retries the oracle ran to settle the verdict. */
65
+ retries: number;
66
+ }
67
+ /**
68
+ * The PROFILE-injected oracle (§1 裁决①). The profile composes the actual grading inside this closure —
69
+ * `runExecGate(graderEnv, steps)` (exec-gate.ts:185, env is the FIRST param = L2 provenance bound to the
70
+ * grader) → `verifyCompleted` (verify.ts:212, the read-only L3 judge) → `checkInvariants`
71
+ * (property-harness.ts:217, explore-only) — and maps the composite to an {@link OracleResult}. Core never
72
+ * composes these internals (so the oracle type can't grow a long discriminated union); it only fixes the
73
+ * `OracleResult` shape and the read-only/identity contract. `graderEnv` is the isolated grader env; `evidence`
74
+ * is the diff/results to judge (recompute it from the post-resume working tree on a resume — verify.ts:328 BUG5).
75
+ */
76
+ export type RepairOracle = (graderEnv: ExecutionEnv, evidence: string | undefined) => Promise<OracleResult>;
77
+ /**
78
+ * The durable, JSON-safe repair state carried across an orthogonal durable suspend (§4). Serialized ONLY when
79
+ * an unrelated resource/HITL suspend interleaves the loop (happy-path is in-memory) and re-seeded on resume so
80
+ * `attemptCount` advances MONOTONICALLY (never reset). Contains NO functions/Dates (epoch ms if a timestamp is
81
+ * ever needed) so `structuredClone`/`JSON.stringify` round-trip it on the checkpoint. `baselinePassTests` is
82
+ * DELIBERATELY ABSENT (§4 MAJOR-C): the anchor is grader-computed out-of-process so a worker can't shrink it.
83
+ */
84
+ export interface RepairBundle {
85
+ /** The latest failure trace (untrusted; fed back into the fix turn). */
86
+ failureTrace: string;
87
+ /** Reflexion-style diagnoses accumulated across attempts (≤3, Reflexion cap — §1). */
88
+ diagnostics: string[];
89
+ /** Hypotheses tried and rejected (so a re-seed doesn't re-explore them). */
90
+ rejectedHypotheses: string[];
91
+ /** The in-loop attempt counter — re-seeded MONOTONICALLY on resume, never reset/max/downscaled (§4 / §5). */
92
+ attemptCount: number;
93
+ /** The tier of the last oracle verdict (for the resumed loop's projection). */
94
+ oracleTier: OracleTier;
95
+ }
96
+ export interface RepairLoopConfig {
97
+ /** The PROFILE-injected, trusted oracle (§1 裁决①). Core calls it; it never composes the oracle internals. */
98
+ oracle: RepairOracle;
99
+ /**
100
+ * The ISOLATED grader env the oracle grades in. MUST be a distinct object from {@link workerEnv}: if they
101
+ * are the SAME reference the loop fails closed to `oracle.unprotected` BEFORE running anything (§5.1 —
102
+ * necessary-not-sufficient; the real out-of-process boundary is the OFF Gate-1).
103
+ */
104
+ graderEnv: ExecutionEnv;
105
+ /**
106
+ * The worker's execution env (the env `runner.runTask` runs the impl in), passed by the trusted caller so
107
+ * the §5.1 identity check can run: `graderEnv === workerEnv` → fail-closed `oracle.unprotected`. `TaskSpec`
108
+ * deliberately has NO `executionEnv` (the worker env is wired on the Runner deps / `executionEnvFactory`, not
109
+ * reachable from `implSpec`), so the caller must supply the reference here for the check to be meaningful.
110
+ * Omit it only when the worker env genuinely can't collide with the grader (e.g. distinct factories) — the
111
+ * check is then skipped (no reference to compare) and isolation is the caller's deployment contract.
112
+ */
113
+ workerEnv?: ExecutionEnv;
114
+ /**
115
+ * design/77 §1 Gate-1 (oracleIsolation): the paths the oracle/spec lives behind that the worker must NOT be
116
+ * able to corrupt (e.g. a hidden held-out test dir). When supplied **together with** {@link workerEnv}, the
117
+ * loop runs the FULL structural {@link assertOracleIsolation} (identity + structural-class + bash write-probe)
118
+ * instead of the bare reference-identity check, and surfaces {@link RepairResult.isolationClass}. Omit it (the
119
+ * default) to keep the existing necessary-not-sufficient reference-identity check (the merged Slice-1 posture).
120
+ *
121
+ * The real isolated grader env is SERVICE-provided ({@link import("../core/types.js").RunnerDeps.graderEnvFactory});
122
+ * `graderEnv` here is its `.env`, and the control-plane `provenance` brand is reattached internally for the
123
+ * assertion. The assertion only matters for the (mandate-OFF) auto-accept path: `isolationClass` caps a
124
+ * non-`out_of_process` grader at `candidate_only`. SAFE-tier never auto-accepts regardless.
125
+ */
126
+ immutableOraclePaths?: string[];
127
+ /**
128
+ * In-loop attempt ceiling (the loop runs at most this many GENERATE/oracle attempts). Profile validates this
129
+ * to 2-3; core only enforces it as a ceiling, it does not fence the value. This counter is DISTINCT from
130
+ * `suspendCount`(maxSuspends) and `sliceCount`(maxSlices) — it never borrows those budgets (§5 / §7).
131
+ */
132
+ maxAttempts: number;
133
+ /**
134
+ * On a resume after an orthogonal durable suspend, the restored {@link RepairBundle} (from
135
+ * `PrepareResume.seed.repairBundle`). `attemptCount` is re-seeded from it MONOTONICALLY (§4) — never reset.
136
+ */
137
+ resumeBundle?: RepairBundle;
138
+ /** Stop the loop once cumulative cost (generate + fix + oracle nested) reaches this (verify.ts:278 backstop). */
139
+ costCeilingMicroUsd?: number;
140
+ /** Overall wall-clock ceiling for the whole loop (verify.ts:277 backstop). */
141
+ totalTimeoutMs?: number;
142
+ /** Per-attempt callback (observability). */
143
+ onAttempt?: (info: {
144
+ attempt: number;
145
+ terminal?: RepairTerminal;
146
+ oracle: OracleResult;
147
+ }) => void;
148
+ /**
149
+ * Operational-warning sink (observability). MINOR-2: the §5.1 isolation identity check is SKIPPED when
150
+ * `workerEnv` is undefined (no reference to compare). An ACCIDENTAL omission — `graderEnv` supplied but
151
+ * `workerEnv` forgotten — would then disable the check silently. When wired, that case is surfaced here
152
+ * once at loop start so the gap is observable; the posture stays necessary-not-sufficient (no hard-fail).
153
+ */
154
+ onWarn?: (warning: Error) => void;
155
+ }
156
+ export interface RepairResult extends VerificationResult {
157
+ /** The projected terminal (§2). SAFE-tier never returns `fixed`. */
158
+ terminal: RepairTerminal;
159
+ /** The final repair state (in-memory unless an orthogonal suspend serialized it — §4). */
160
+ bundle: RepairBundle;
161
+ /**
162
+ * design/77 §1 Gate-1: the structural isolation class of the grader env, when the full
163
+ * {@link assertOracleIsolation} ran (i.e. {@link RepairLoopConfig.immutableOraclePaths} + `workerEnv` were
164
+ * supplied). `"out_of_process"` is the ONLY class the (mandate-OFF) auto-accept path may consider;
165
+ * `"in_process_probe_only"` CAPS the run at `candidate_only`. Undefined when only the bare reference-identity
166
+ * check ran. SAFE-tier never auto-accepts regardless of this value.
167
+ */
168
+ isolationClass?: OracleIsolationVerdict["isolationClass"];
169
+ }
170
+ /**
171
+ * design/77 §1 Gate-1 invariant — auto-accept (`fixed`) is UNREACHABLE here. The terminal-by-tier projection
172
+ * (§2) already caps every PASS at `candidate_only`, so `isolationClass` only ever matters for the (OFF)
173
+ * auto-accept path. This guard makes the invariant load-bearing rather than caller discipline: a non-isolated
174
+ * (`in_process_probe_only`) or unprotected verdict can NEVER carry a `fixed` terminal — at most
175
+ * `candidate_only` / `oracle.unprotected`. It is a pure assertion over the projected terminal; it never
176
+ * upgrades anything (auto-accept stays OFF — only a future Gate-1 slice running on an `out_of_process` grader
177
+ * may even consider it).
178
+ */
179
+ export declare function isolationPermitsAutoAccept(verdict: OracleIsolationVerdict): boolean;
180
+ /**
181
+ * CONSUMER seam (design/78 Slice-1, MAJOR-3 wiring — the re-entry side of the round-trip). Read the durable
182
+ * {@link RepairBundle} a resumed checkpoint carries, so a leader/profile resuming a repair-interleaved
183
+ * suspend can re-seed a FRESH {@link runRepairLoop} call with it.
184
+ *
185
+ * ## The contract (core vs profile)
186
+ * - **CORE owns the persistence + restore.** When an orthogonal durable suspend (resource/HITL) interleaves a
187
+ * `runRepairLoop` attempt, the Runner serializes the live bundle onto the minted checkpoint
188
+ * (`prepareTask.serializeCheckpointState` sources `internals.repairBundle`), and on resume re-seeds it back
189
+ * into `prepareTask` from `cp.state.repairBundle`. So `cp.state.repairBundle` is round-trip-true after a
190
+ * `runner.resume(token, …)`: it survives the suspend with `attemptCount` intact (never reset — §4 / MAJOR-A).
191
+ * - **PROFILE owns the re-entry loop.** The leader that resumes the worker (`runner.resume`) is a PROFILE
192
+ * concern — core does NOT build the "resume → grade → re-seed `runRepairLoop`" loop. The profile reads the
193
+ * restored bundle (via this accessor) off the SAME checkpoint it resumed, and on its NEXT repair attempt
194
+ * passes it as {@link RepairLoopConfig.resumeBundle}. `runRepairLoop` then re-seeds `attemptCount`
195
+ * MONOTONICALLY from it (`config.resumeBundle` → the loop's `bundle`), so the repair ratchet is preserved
196
+ * across the durable suspend rather than starting the attempt budget over.
197
+ *
198
+ * Returns `undefined` when the checkpoint carries no repair state (a non-repair task, or a repair attempt that
199
+ * suspended on its very first GENERATE before any oracle verdict — the re-seed treats `undefined` as a clean
200
+ * start). The returned object is the checkpoint's own (already an independent `structuredClone` from the
201
+ * store); pass it straight into `resumeBundle` — `runRepairLoop` copies its arrays defensively on re-seed.
202
+ */
203
+ export declare function repairBundleFromCheckpoint(cp: Checkpoint): RepairBundle | undefined;
204
+ /**
205
+ * The terminal-by-tier projection (§2) — a PURE function, the core invariant. **SAFE-tier caps every PASS at
206
+ * `candidate_only`**; `fixed` (auto-accept) is unreachable here because it needs the OFF Gate-1 out-of-process
207
+ * boundary. Enforced HERE (in the projection table), not as caller discipline, so no consumer can promote a
208
+ * PASS to `fixed`.
209
+ *
210
+ * - any tier, `passed: true` → `candidate_only` (trusted_hidden/trusted_visible/property_harness_weak alike).
211
+ * - `l3_judge_advisory` → advisory only; even a "pass" can't clear → `candidate_only` (it never self-clears).
212
+ * - `none` → `needs_human_oracle` (no usable oracle → only a human adjudicates).
213
+ * - not-passed with a usable tier → not a terminal yet (the loop continues / gives up); represented as
214
+ * `undefined` so the caller's state machine drives the `gave_up`/`conflict` path explicitly.
215
+ */
216
+ export declare function terminalForTier(oracle: OracleResult): RepairTerminal | undefined;
217
+ /**
218
+ * Run the SAFE-tier oracle self-repair loop over `implSpec` (design/78 §1 state machine — a DETERMINISTIC
219
+ * switch, no LLM in the control flow):
220
+ *
221
+ * `ASSERT_ISOLATION` (identity check → fail-closed `oracle.unprotected`) → `GENERATE` (`runner.runTask`) →
222
+ * `ORACLE` (the injected closure) → { passed → terminal-by-tier projection } | { failed & attempt<max → REPAIR
223
+ * (a fix turn) → loop } | { failed & attempt==max → CLEAN_RESTART once, else `gave_up` } | { conflict → terminal }.
224
+ *
225
+ * `ASSERT_ISOLATION` is the design/77 §1 Gate-1 seam: when {@link RepairLoopConfig.immutableOraclePaths} +
226
+ * `workerEnv` are supplied it runs the FULL {@link assertOracleIsolation} (identity + structural-class + bash
227
+ * write-probe) and surfaces {@link RepairResult.isolationClass}; otherwise it runs the bare reference-identity
228
+ * check (the merged Slice-1 posture). Either way a failed assertion fails closed to `oracle.unprotected` before
229
+ * any work runs, and the result NEVER reaches `fixed` — `isolationClass` only gates the (mandate-OFF) auto-accept
230
+ * path that this SAFE-tier loop does not take.
231
+ *
232
+ * SAFE-tier: the projection caps every PASS at `candidate_only` — this NEVER auto-accepts. `runRepairLoop` is a
233
+ * SIBLING of {@link verifyCompleted}: it composes over `runner.runTask` and never touches the Runner core.
234
+ */
235
+ export declare function runRepairLoop(runner: Runner, implSpec: TaskSpec, config: RepairLoopConfig): Promise<RepairResult>;
236
+ //# sourceMappingURL=repair-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair-loop.d.ts","sourceRoot":"","sources":["../../src/agents/repair-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,293 @@
1
+ import { isDurablePause } from "./suspend-guard.js";
2
+ import { delimitUntrusted, sanitizeUntrustedText } from "../core/untrusted-text.js";
3
+ import { assertOracleIsolation } from "../core/oracle-isolation.js";
4
+ /**
5
+ * design/77 §1 Gate-1 invariant — auto-accept (`fixed`) is UNREACHABLE here. The terminal-by-tier projection
6
+ * (§2) already caps every PASS at `candidate_only`, so `isolationClass` only ever matters for the (OFF)
7
+ * auto-accept path. This guard makes the invariant load-bearing rather than caller discipline: a non-isolated
8
+ * (`in_process_probe_only`) or unprotected verdict can NEVER carry a `fixed` terminal — at most
9
+ * `candidate_only` / `oracle.unprotected`. It is a pure assertion over the projected terminal; it never
10
+ * upgrades anything (auto-accept stays OFF — only a future Gate-1 slice running on an `out_of_process` grader
11
+ * may even consider it).
12
+ */
13
+ export function isolationPermitsAutoAccept(verdict) {
14
+ return verdict.protected && verdict.isolationClass === "out_of_process";
15
+ }
16
+ /**
17
+ * CONSUMER seam (design/78 Slice-1, MAJOR-3 wiring — the re-entry side of the round-trip). Read the durable
18
+ * {@link RepairBundle} a resumed checkpoint carries, so a leader/profile resuming a repair-interleaved
19
+ * suspend can re-seed a FRESH {@link runRepairLoop} call with it.
20
+ *
21
+ * ## The contract (core vs profile)
22
+ * - **CORE owns the persistence + restore.** When an orthogonal durable suspend (resource/HITL) interleaves a
23
+ * `runRepairLoop` attempt, the Runner serializes the live bundle onto the minted checkpoint
24
+ * (`prepareTask.serializeCheckpointState` sources `internals.repairBundle`), and on resume re-seeds it back
25
+ * into `prepareTask` from `cp.state.repairBundle`. So `cp.state.repairBundle` is round-trip-true after a
26
+ * `runner.resume(token, …)`: it survives the suspend with `attemptCount` intact (never reset — §4 / MAJOR-A).
27
+ * - **PROFILE owns the re-entry loop.** The leader that resumes the worker (`runner.resume`) is a PROFILE
28
+ * concern — core does NOT build the "resume → grade → re-seed `runRepairLoop`" loop. The profile reads the
29
+ * restored bundle (via this accessor) off the SAME checkpoint it resumed, and on its NEXT repair attempt
30
+ * passes it as {@link RepairLoopConfig.resumeBundle}. `runRepairLoop` then re-seeds `attemptCount`
31
+ * MONOTONICALLY from it (`config.resumeBundle` → the loop's `bundle`), so the repair ratchet is preserved
32
+ * across the durable suspend rather than starting the attempt budget over.
33
+ *
34
+ * Returns `undefined` when the checkpoint carries no repair state (a non-repair task, or a repair attempt that
35
+ * suspended on its very first GENERATE before any oracle verdict — the re-seed treats `undefined` as a clean
36
+ * start). The returned object is the checkpoint's own (already an independent `structuredClone` from the
37
+ * store); pass it straight into `resumeBundle` — `runRepairLoop` copies its arrays defensively on re-seed.
38
+ */
39
+ export function repairBundleFromCheckpoint(cp) {
40
+ return cp.state.repairBundle;
41
+ }
42
+ /**
43
+ * The terminal-by-tier projection (§2) — a PURE function, the core invariant. **SAFE-tier caps every PASS at
44
+ * `candidate_only`**; `fixed` (auto-accept) is unreachable here because it needs the OFF Gate-1 out-of-process
45
+ * boundary. Enforced HERE (in the projection table), not as caller discipline, so no consumer can promote a
46
+ * PASS to `fixed`.
47
+ *
48
+ * - any tier, `passed: true` → `candidate_only` (trusted_hidden/trusted_visible/property_harness_weak alike).
49
+ * - `l3_judge_advisory` → advisory only; even a "pass" can't clear → `candidate_only` (it never self-clears).
50
+ * - `none` → `needs_human_oracle` (no usable oracle → only a human adjudicates).
51
+ * - not-passed with a usable tier → not a terminal yet (the loop continues / gives up); represented as
52
+ * `undefined` so the caller's state machine drives the `gave_up`/`conflict` path explicitly.
53
+ */
54
+ export function terminalForTier(oracle) {
55
+ if (oracle.tier === "none")
56
+ return "needs_human_oracle";
57
+ // A flaky verdict is never a clean pass — never project it to a passing terminal (§5 / §6 flakyK). It falls
58
+ // through to the not-passed path so the loop re-isolates / escalates rather than surfacing a candidate.
59
+ if (oracle.passed && !oracle.flaky) {
60
+ // SAFE-tier cap: every passing tier → candidate_only. `fixed` is unreachable (needs OFF Gate-1).
61
+ return "candidate_only";
62
+ }
63
+ // Not (cleanly) passed on a usable-oracle tier → the state machine decides (loop / gave_up / conflict).
64
+ return undefined;
65
+ }
66
+ /**
67
+ * The fix-turn objective: feed the oracle's failure trace + accumulated diagnoses back into the next attempt's
68
+ * objective. The trace is UNTRUSTED worker-adjacent output, so it is sanitized as it enters the objective
69
+ * (verify.ts:163 fixObjective pattern) — but it is fed back VERBATIM in substance (no inner rewrite, §5.5 #8a):
70
+ * the implementer must see the real failure to fix it. The instruction never says "make the test pass" — it
71
+ * says "fix the cause"; a spec-vs-oracle conflict escalates instead (§5 #2).
72
+ */
73
+ function repairObjective(bundle) {
74
+ const diag = bundle.diagnostics.length
75
+ ? bundle.diagnostics.map((d) => `- ${sanitizeUntrustedText(d)}`).join("\n")
76
+ : "(no prior diagnoses)";
77
+ return (`The oracle REJECTED the previous attempt. Diagnose and fix the underlying cause, then stop — do not ` +
78
+ `add anything else, and do NOT edit or weaken the oracle/tests to make them pass. If the spec and the ` +
79
+ `oracle genuinely conflict, say so explicitly rather than satisfying the test.\n\n` +
80
+ `## Prior diagnoses\n${diag}\n\n` +
81
+ `## Oracle failure trace (untrusted)\n${delimitUntrusted("ORACLE TRACE", bundle.failureTrace || "(no trace)")}`);
82
+ }
83
+ /** A fresh, empty bundle for a loop that starts without a resume seed. */
84
+ function freshBundle() {
85
+ return { failureTrace: "", diagnostics: [], rejectedHypotheses: [], attemptCount: 0, oracleTier: "none" };
86
+ }
87
+ /**
88
+ * Build the {@link VerificationOutcome} shape {@link RepairResult} extends from. The repair loop's own verdict
89
+ * is the `terminal`; this carries the verify-stack shape (verdict/rounds/findings) so a {@link RepairResult} is
90
+ * a drop-in {@link VerificationResult} for callers that already consume that shape.
91
+ */
92
+ function outcomeFor(terminal, oracle, rounds) {
93
+ const passed = terminal === "candidate_only" || terminal === "fixed";
94
+ return {
95
+ verdict: passed ? "PASS" : terminal === "needs_human_oracle" ? "unverified" : "FAIL",
96
+ ...(passed ? {} : terminal === "needs_human_oracle" ? { unverifiedReason: "no_verdict" } : {}),
97
+ rounds,
98
+ // MINOR-1: `oracle.trace` is RAW untrusted text (the grader's failure output — may carry a forged
99
+ // `<system-reminder>` / break-out sequence). It flows outward in `verification.findings` (a caller may
100
+ // re-inject it into a prompt), so neutralize the break-out at the producer like every other untrusted inlet.
101
+ findings: oracle?.trace ? [sanitizeUntrustedText(oracle.trace)] : [],
102
+ };
103
+ }
104
+ /**
105
+ * Run the SAFE-tier oracle self-repair loop over `implSpec` (design/78 §1 state machine — a DETERMINISTIC
106
+ * switch, no LLM in the control flow):
107
+ *
108
+ * `ASSERT_ISOLATION` (identity check → fail-closed `oracle.unprotected`) → `GENERATE` (`runner.runTask`) →
109
+ * `ORACLE` (the injected closure) → { passed → terminal-by-tier projection } | { failed & attempt<max → REPAIR
110
+ * (a fix turn) → loop } | { failed & attempt==max → CLEAN_RESTART once, else `gave_up` } | { conflict → terminal }.
111
+ *
112
+ * `ASSERT_ISOLATION` is the design/77 §1 Gate-1 seam: when {@link RepairLoopConfig.immutableOraclePaths} +
113
+ * `workerEnv` are supplied it runs the FULL {@link assertOracleIsolation} (identity + structural-class + bash
114
+ * write-probe) and surfaces {@link RepairResult.isolationClass}; otherwise it runs the bare reference-identity
115
+ * check (the merged Slice-1 posture). Either way a failed assertion fails closed to `oracle.unprotected` before
116
+ * any work runs, and the result NEVER reaches `fixed` — `isolationClass` only gates the (mandate-OFF) auto-accept
117
+ * path that this SAFE-tier loop does not take.
118
+ *
119
+ * SAFE-tier: the projection caps every PASS at `candidate_only` — this NEVER auto-accepts. `runRepairLoop` is a
120
+ * SIBLING of {@link verifyCompleted}: it composes over `runner.runTask` and never touches the Runner core.
121
+ */
122
+ export async function runRepairLoop(runner, implSpec, config) {
123
+ // ── ASSERT_ISOLATION (§5.1): the grader env MUST be a distinct object from the worker env, else the oracle
124
+ // is grading in the same env the worker can corrupt → fail closed BEFORE running anything. The worker env is
125
+ // supplied via `config.workerEnv` (TaskSpec has no `executionEnv` — types.ts:911 — so it isn't reachable from
126
+ // `implSpec`; see the design/78 deviation note). necessary-not-sufficient: the real boundary is the OFF Gate-1.
127
+ if (config.workerEnv === undefined && config.immutableOraclePaths === undefined) {
128
+ // MINOR-2: `workerEnv` omitted AND no full structural assertion requested → the bare identity check below
129
+ // can't run (no reference to compare), so it is skipped. That is LEGITIMATE only when the worker env
130
+ // genuinely can't collide with the grader (distinct factories). An ACCIDENTAL omission would silently
131
+ // disable the §5.1 check, so surface it once — observable, not fatal (necessary-not-sufficient: the real
132
+ // boundary is the OFF Gate-1 out-of-process isolation). The `immutableOraclePaths`-set case is NOT a warn:
133
+ // it fails closed below (adversarial round MINOR — a requested-but-unrunnable assertion must not be skipped).
134
+ config.onWarn?.(new Error("repair-loop §5.1: graderEnv was supplied but workerEnv is undefined — the grader/worker env identity " +
135
+ "check is SKIPPED. Pass config.workerEnv (the env runner.runTask runs the impl in) so an accidental " +
136
+ "shared-env misconfiguration is caught; omit it only when the envs provably cannot collide."));
137
+ }
138
+ // Build the fail-closed synthetic result for a failed isolation assertion (no work ran — before GENERATE).
139
+ const unprotectedResult = (reason, isolationClass) => {
140
+ const oracle = { tier: "none", passed: false, flaky: false, retries: 0 };
141
+ return {
142
+ taskId: implSpec.taskId ?? "",
143
+ status: "failed",
144
+ result: `oracle isolation check failed: ${reason}`,
145
+ errorCode: "oracle.unprotected",
146
+ sessionId: "",
147
+ stats: { tokens: 0, turns: 0, costUsd: 0, costMicroUsd: 0 },
148
+ terminal: "oracle.unprotected",
149
+ ...(isolationClass ? { isolationClass } : {}),
150
+ bundle: { ...freshBundle(), attemptCount: config.resumeBundle?.attemptCount ?? 0 },
151
+ verification: outcomeFor("oracle.unprotected", oracle, 0),
152
+ };
153
+ };
154
+ // design/77 §1 Gate-1: when the FULL structural assertion is requested (immutableOraclePaths supplied) AND a
155
+ // worker env is present, run `assertOracleIsolation` (identity + structural-class + bash write-probe) and
156
+ // capture the isolationClass to surface on the result. A non-`protected` verdict fails closed to
157
+ // `oracle.unprotected` BEFORE any work runs — identical terminal to the bare reference check, plus the class.
158
+ // The class only gates the (mandate-OFF) auto-accept path; it never lets this SAFE-tier loop reach `fixed`.
159
+ let isolationClass;
160
+ if (config.immutableOraclePaths !== undefined && config.workerEnv === undefined) {
161
+ // 🔴 Adversarial round MINOR: the caller opted into the FULL structural assertion (`immutableOraclePaths`)
162
+ // but supplied no `workerEnv`. The assertion fundamentally REQUIRES it — the identity check compares against
163
+ // workerEnv, and the bash write-probe runs via `workerEnv.exec()`. We cannot honor the requested guarantee,
164
+ // so fail CLOSED (oracle.unprotected) rather than silently skipping the assertion the caller asked for.
165
+ return unprotectedResult("immutableOraclePaths requested the structural isolation assertion but workerEnv is undefined — cannot run it (fail-closed)");
166
+ }
167
+ if (config.immutableOraclePaths !== undefined && config.workerEnv !== undefined) {
168
+ const grader = {
169
+ env: config.graderEnv,
170
+ immutableOraclePaths: config.immutableOraclePaths,
171
+ // provenance is reattached here (the trusted caller side) — never derived from worker state.
172
+ provenance: "control_plane",
173
+ };
174
+ const verdict = await assertOracleIsolation(config.workerEnv, grader);
175
+ isolationClass = verdict.isolationClass;
176
+ if (!verdict.protected) {
177
+ return unprotectedResult(verdict.reason ?? "grader env failed the structural isolation assertion", isolationClass);
178
+ }
179
+ }
180
+ else if (config.workerEnv !== undefined && config.workerEnv === config.graderEnv) {
181
+ // Bare reference-identity check (the merged Slice-1 posture) when the full assertion isn't requested.
182
+ return unprotectedResult("graderEnv must not be the worker env");
183
+ }
184
+ const maxAttempts = Math.max(1, Math.floor(config.maxAttempts));
185
+ // ── attemptCount is an IN-LOOP counter, DISTINCT from suspendCount(maxSuspends)/sliceCount(maxSlices). On a
186
+ // resume it is re-seeded from the restored bundle MONOTONICALLY — never reset/max/downscaled (§4 / §5 #b).
187
+ const bundle = config.resumeBundle
188
+ ? { ...config.resumeBundle, diagnostics: [...config.resumeBundle.diagnostics], rejectedHypotheses: [...config.resumeBundle.rejectedHypotheses] }
189
+ : freshBundle();
190
+ const startedAt = Date.now();
191
+ let spend = 0;
192
+ let lastResult;
193
+ let lastOracle;
194
+ let restartedOnce = false; // a pending one-shot clean-restart (consumed by the next loop iteration)
195
+ let restartUsed = false; // the clean restart is allowed AT MOST once per loop call
196
+ // The spec for a clean restart: a FRESH `runTask({...implSpec})` with a NEW session (no sessionId), in-memory
197
+ // bundle, no checkpoint hop — the failed transcript is discarded so the restart carries no Contextual Drag
198
+ // (§5 #d / §3). The objective is the ORIGINAL task PLUS the accumulated diagnoses (Reflexion carry) so a
199
+ // fresh implementer still knows what to build, just not the stuck transcript.
200
+ const cleanRestartSpec = () => {
201
+ const { sessionId: _drop, ...rest } = implSpec;
202
+ return { ...rest, objective: `${implSpec.objective}\n\n${repairObjective(bundle)}` };
203
+ };
204
+ while (true) {
205
+ // ── GENERATE / REPAIR: `runner.runTask` reuses the whole engine (budget gate / turn loop / assembleResult).
206
+ // First attempt runs implSpec verbatim; a repair attempt continues the SAME session with the fix objective
207
+ // (prefix-cache preserved, verify.ts:280-285), so diagnostics feed the running implementer; a clean restart
208
+ // is a FRESH session (failed transcript discarded).
209
+ const isRepair = bundle.attemptCount > 0 && lastResult !== undefined && !restartedOnce;
210
+ const spec = restartedOnce
211
+ ? cleanRestartSpec()
212
+ : isRepair
213
+ ? { ...implSpec, sessionId: lastResult.sessionId, objective: repairObjective(bundle) }
214
+ : implSpec;
215
+ restartedOnce = false; // consume the one-shot restart flag
216
+ // design/78 Slice-1 (MAJOR-3 wiring): thread the CURRENT live bundle through the Runner's TRUSTED
217
+ // internal channel (NOT a TaskSpec field). If this attempt hits an ORTHOGONAL durable suspend
218
+ // (resource/HITL) mid-run, the checkpoint the Runner mints serializes THIS live bundle — the accumulated
219
+ // failureTrace/diagnostics/rejectedHypotheses + the in-loop attemptCount — instead of `undefined`. A
220
+ // resume then re-seeds `RepairLoopConfig.resumeBundle` from it so `attemptCount` advances MONOTONICALLY
221
+ // (§4). The bundle is only meaningful once a repair attempt is in flight (attemptCount>0 = a prior oracle
222
+ // failure recorded diagnostics); on the very first GENERATE it is the fresh/empty bundle (a suspend there
223
+ // legitimately carries attemptCount 0 — no verdict yet — which the re-seed treats as a clean start).
224
+ const result = await runner.runTask(spec, { repairBundle: bundle });
225
+ spend += (result.stats.costMicroUsd ?? 0) + (result.stats.nested?.costMicroUsd ?? 0);
226
+ lastResult = result;
227
+ bundle.attemptCount += 1;
228
+ // An orthogonal durable suspend (resource/HITL) inside the worker run — surface it via the EXISTING
229
+ // suspend mechanism (verify.ts:288 / §4): `status: "suspended"` + `checkpointToken` carries the resume
230
+ // capability and `verification.unverifiedReason: "suspended"` disambiguates it. A consumer MUST branch on
231
+ // `status === "suspended"` FIRST (the verify-stack contract), exactly like {@link runWithVerification}.
232
+ // `terminal` is NOT a verdict here (the loop reached no oracle verdict — the worker paused mid-attempt);
233
+ // it is set to `gave_up` only as the typed placeholder (RepairTerminal has no "suspended" member by spec).
234
+ // The repairBundle is carried on that checkpoint by the suspend path (§4) so a resume re-seeds attemptCount
235
+ // monotonically; we do NOT re-grade a half-done result here (no false candidate on an unfinished run).
236
+ if (isDurablePause(result.status)) {
237
+ return {
238
+ ...result,
239
+ terminal: "gave_up",
240
+ bundle,
241
+ ...(isolationClass ? { isolationClass } : {}),
242
+ verification: { verdict: "unverified", unverifiedReason: result.status === "needs_review" ? "needs_review" : "suspended", rounds: bundle.attemptCount, findings: [] },
243
+ };
244
+ }
245
+ // ── ORACLE: the injected, trusted closure grades the candidate in the ISOLATED grader env. The repair loop
246
+ // never composes its internals; it only reads the OracleResult. Recompute evidence from the worker result
247
+ // (the oracle owns the post-resume freshness — verify.ts:328 BUG5; here `evidence` is the worker report).
248
+ const oracle = await config.oracle(config.graderEnv, result.result);
249
+ lastOracle = oracle;
250
+ bundle.oracleTier = oracle.tier;
251
+ const projected = terminalForTier(oracle);
252
+ config.onAttempt?.({ attempt: bundle.attemptCount, terminal: projected, oracle });
253
+ if (projected !== undefined) {
254
+ // PASS → candidate_only (or needs_human_oracle for tier "none"). SAFE-tier never returns `fixed`.
255
+ // design/77 §1 Gate-1: the projection caps at `candidate_only`, so even an `out_of_process` grader can't
256
+ // make this loop auto-accept — `isolationClass` is surfaced for the (OFF) auto-accept path to consult,
257
+ // but `terminal` is NEVER `fixed` here (terminalForTier provably can't return it). Auto-accept stays OFF.
258
+ return {
259
+ ...result,
260
+ terminal: projected,
261
+ bundle,
262
+ ...(isolationClass ? { isolationClass } : {}),
263
+ verification: outcomeFor(projected, oracle, bundle.attemptCount),
264
+ };
265
+ }
266
+ // ── Failed verdict on a usable-oracle tier. Record the trace/diagnosis (monotonic scheduling only — a
267
+ // failing trace NEVER becomes an accept gate, §5 #3). The raw trace is fed back verbatim (no inner rewrite).
268
+ if (oracle.trace && oracle.trace.trim() !== "") {
269
+ bundle.failureTrace = oracle.trace;
270
+ if (bundle.diagnostics.length < 3)
271
+ bundle.diagnostics.push(oracle.trace); // Reflexion cap ≤3 (§1)
272
+ }
273
+ // Budget backstops (verify.ts:277-278): stop before issuing another attempt; gave_up with the findings.
274
+ const overTime = config.totalTimeoutMs != null && Date.now() - startedAt >= config.totalTimeoutMs;
275
+ const overCost = config.costCeilingMicroUsd != null && spend >= config.costCeilingMicroUsd;
276
+ // Attempts exhausted (or budget hit): try ONE clean restart (fresh session, discard the failed transcript),
277
+ // else give up. give_up/conflict are first-class abstains — NEVER "satisfy the test" (§5 #2).
278
+ if (bundle.attemptCount >= maxAttempts || overTime || overCost) {
279
+ if (bundle.attemptCount >= maxAttempts && !overTime && !overCost && lastResult !== undefined && !restartUsed) {
280
+ // CLEAN_RESTART one-shot: a fresh runTask with a NEW session, in-memory bundle, no checkpoint hop.
281
+ // Flag it; the next loop iteration consumes the flag and runs cleanRestartSpec(). Allow exactly one.
282
+ restartUsed = true;
283
+ restartedOnce = true;
284
+ continue;
285
+ }
286
+ // give_up: attempts exhausted (and the clean restart, if any, also failed). A first-class abstain.
287
+ const terminal = "gave_up";
288
+ return { ...lastResult, terminal, bundle, ...(isolationClass ? { isolationClass } : {}), verification: outcomeFor(terminal, lastOracle, bundle.attemptCount) };
289
+ }
290
+ // else: REPAIR — loop again with the fix objective on the same session.
291
+ }
292
+ }
293
+ //# sourceMappingURL=repair-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair-loop.js","sourceRoot":"","sources":["../../src/agents/repair-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Runner } from "../core/runner/runtask.js";
2
+ /**
3
+ * Release a throwaway session, swallowing errors — best-effort cleanup for the verifier/cascade-rung
4
+ * sessions that agents spin up and discard. Always call this in a `finally` so a throwing `runTask`
5
+ * result handler or caller hook (`onRung`/`onRound`) can't leak the session.
6
+ */
7
+ export declare function releaseSession(runner: Runner, sessionId: string): Promise<void>;
8
+ //# sourceMappingURL=session-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-util.d.ts","sourceRoot":"","sources":["../../src/agents/session-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Release a throwaway session, swallowing errors — best-effort cleanup for the verifier/cascade-rung
3
+ * sessions that agents spin up and discard. Always call this in a `finally` so a throwing `runTask`
4
+ * result handler or caller hook (`onRung`/`onRound`) can't leak the session.
5
+ */
6
+ export async function releaseSession(runner, sessionId) {
7
+ await runner.sessions.release(sessionId).catch(() => undefined);
8
+ }
9
+ //# sourceMappingURL=session-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-util.js","sourceRoot":"","sources":["../../src/agents/session-util.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,SAAiB;IACpE,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAClE,CAAC"}