@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,191 @@
1
+ import type { AssistantMessage } from "../../internal/llm.js";
2
+ import type { TaskResult, TaskSpec } from "../types.js";
3
+ /** Per-task usage/cost accumulator (filled across the run loop, surfaced as `TaskResult.stats`). */
4
+ export interface Stats {
5
+ turns: number;
6
+ tokens: number;
7
+ /** design/97 CORE-8 (②): total tool calls executed (one per `tool_start`). Spread into `TaskResult.stats`. */
8
+ toolCalls: number;
9
+ promptTokens: number;
10
+ cachedTokens: number;
11
+ cacheWriteTokens: number;
12
+ cacheWriteTokensLong: number;
13
+ outputTokens: number;
14
+ cacheHitRate?: number;
15
+ totalInputTokens?: number;
16
+ costUsd: number;
17
+ costMicroUsd: number;
18
+ nested?: {
19
+ tokens: number;
20
+ turns: number;
21
+ tasks: number;
22
+ costUsd?: number;
23
+ costMicroUsd?: number;
24
+ };
25
+ /** Post-task memory-consolidation usage (design/41); set after the result is assembled. Kept out of
26
+ * the budget gate (`overBudget` reads `costMicroUsd`/`tokens`, never this). */
27
+ memory?: {
28
+ tokens: number;
29
+ costMicroUsd: number;
30
+ applied: number;
31
+ };
32
+ /** design/91: human-review burden (design/89 §2.4 C2). Wall-clock approval-gate wait + count, bucketed by
33
+ * `gate.kind`, accumulated across resume legs. Set by the run loop from the per-task human-review
34
+ * accumulator (synchronous `resolveAsk` timing + durable resume latency). **NOT an LLM cost** — never
35
+ * folded into `costMicroUsd`/`costBreakdown`/the budget gate (same budget-excluded treatment as `memory`).
36
+ * Flows straight through to `TaskResult.stats.humanReview` via the public-stats spread; absent ⇒ no gate. */
37
+ humanReview?: {
38
+ count: number;
39
+ totalWaitMs: number;
40
+ gates: Array<{
41
+ kind: string;
42
+ waitMs: number;
43
+ decision?: string;
44
+ toolName?: string;
45
+ toolArg?: string;
46
+ }>;
47
+ };
48
+ /** TB telemetry B2 (service [397]): deadline-mechanism engagement counters (design/128 nudges +
49
+ * design/130 P1 cap shrinks / P2 finalize / P2b callCutoffs=brain-side walltime stream cuts +
50
+ * toolClamps=foreground shell timeouts clamped to the soft tool deadline). Set by the run loop
51
+ * only when ≥1 engaged; flows straight through to `TaskResult.stats.mechanisms` via the
52
+ * public-stats spread. */
53
+ mechanisms?: {
54
+ finalizeInjected?: true;
55
+ nudgesSent?: number;
56
+ capShrinks?: number;
57
+ callCutoffs?: number;
58
+ toolClamps?: number;
59
+ finalVerifyInjected?: true;
60
+ finalVerifyInjections?: number;
61
+ attachmentsInjected?: number;
62
+ repetitionCuts?: number;
63
+ repetitionSpared?: number;
64
+ repetitionEvents?: Array<{
65
+ turn: number;
66
+ action: "cut" | "spared";
67
+ rule: "char-run" | "unit-loop";
68
+ period: number;
69
+ reps: number;
70
+ segment: string;
71
+ }>;
72
+ };
73
+ /** design/80 D-E-core (Part B): within-task compaction LLM cost (micro-USD), accumulated by
74
+ * `recordCompactionUsage` as a SEPARATE running total because that cost IS folded into `costMicroUsd`
75
+ * (so it can't be re-derived from `costMicroUsd` alone). The {@link costBreakdown.compactionMicroUsd}
76
+ * source. Run-loop internal — not a public `TaskResult.stats` field. */
77
+ compactionMicroUsd?: number;
78
+ /**
79
+ * design/80 D-E-core (Part B): a thin FINANCE TAXONOMY of the LLM-derived costs the engine actually
80
+ * prices, decomposing the task's spend into report categories (no new persisted structure — derived from
81
+ * the cost sources that already exist). CORE = LLM-token-derived ONLY; the SERVICE adds the infra axes it
82
+ * owns (tool-call / sandbox-walltime / egress — it has the k8s cost data) and composes them with this.
83
+ * Each category is ≥ 0 and the parts reconcile to the independently-summed LLM total
84
+ * (`llmRoot + nestedSubagent + compaction` — `memory` is a separate, budget-excluded line, see its doc).
85
+ * Filled in assembleResult for `llmRoot`/`nestedSubagent`/`compaction`; the `memoryConsolidation` line is
86
+ * filled LATER (runtask, alongside `stats.memory`, AFTER the async consolidation pass) — it is 0 here.
87
+ */
88
+ costBreakdown?: {
89
+ /** Root-agent LLM cost (micro-USD): `costMicroUsd` MINUS the sub-categories already folded into it
90
+ * (compaction). NOT minus nested — nested subagent cost is tracked separately and is NEVER folded into
91
+ * `costMicroUsd` (it lands only in `stats.nested`), so subtracting it would under-report the root. */
92
+ llmRootMicroUsd: number;
93
+ /** Delegated sub-agent (nested) LLM cost (micro-USD) = `stats.nested?.costMicroUsd ?? 0`. */
94
+ nestedSubagentMicroUsd: number;
95
+ /** Post-task memory-consolidation LLM cost (micro-USD) = `stats.memory?.costMicroUsd ?? 0`. Filled in
96
+ * runtask AFTER the (async) consolidation pass sets `stats.memory`; 0 at assembleResult time. */
97
+ memoryConsolidationMicroUsd: number;
98
+ /** Within-task compaction LLM cost (micro-USD) = the running `compactionMicroUsd` accumulator (the
99
+ * category Framing-4 missed). This IS part of `costMicroUsd`, so it is subtracted from `llmRoot`. */
100
+ compactionMicroUsd: number;
101
+ };
102
+ }
103
+ /**
104
+ * The terminal-state flags the run loop hands {@link assembleResult} — the typed contract between the
105
+ * loop and result assembly (council design/34 ⑤: exported so it's grep-able and tests can construct it).
106
+ */
107
+ export interface ResultFlags {
108
+ threw: unknown;
109
+ /** design/99 MF-25: the EFFECTIVE (resolved) model id that served the task — echoed on `TaskResult.model`. */
110
+ model?: string;
111
+ abortedForTimeout: boolean;
112
+ abortedForTurns: boolean;
113
+ /** audit A-1: the abort signal fired DURING the run (user interrupt / timeout / max-turns / budget),
114
+ * captured before the run loop's unconditional release-abort. Since the loop now exits CLEANLY on an
115
+ * abort (no synthetic stopReason:"aborted" assistant is appended), `final` is the last REAL assistant
116
+ * message — this flag is what keeps an interrupted run from being mistaken for a completed one. */
117
+ abortedLive?: boolean;
118
+ budgetHit?: "exceeded" | "precall";
119
+ blockedReason?: string;
120
+ conflict?: boolean;
121
+ outputInvalid?: boolean;
122
+ /** design/72 §2.2 (B): a re-suspend was refused because the task already suspended `maxSuspends` times
123
+ * (a resume/restart loop). It aborted the run (no `threw`) but must read as `failed`/`suspend.loop`,
124
+ * NOT `suspended` — slotted ABOVE `suspendRef` and the aborted branches (this suspend never minted a
125
+ * checkpoint, so `suspendRef` is unset anyway; the ordering makes the intent explicit). */
126
+ suspendLoop?: boolean;
127
+ /** design/45: the task deliberately suspended at a durable tool gate (capture + abort fired). When set,
128
+ * the result is `status:"suspended"` carrying this token/gate — a clean pause, NOT a failure, so it is
129
+ * slotted ABOVE the `!final`/aborted branches (slot 8.5: it beats them but yields to a real
130
+ * budget/threw failure that happened to coincide). The abort it used sets `final.stopReason="aborted"`
131
+ * but does not set `threw`, so it never reaches the `flags.threw` branch. */
132
+ suspendRef?: {
133
+ token: import("../checkpoint-store.js").CheckpointToken;
134
+ gate: import("../checkpoint-store.js").CheckpointGate;
135
+ };
136
+ /** design/76 §2.5 (dry-run / shadow) + design/80 D-B (plan-gate): the task deliberately paused at a
137
+ * REVIEW-PAUSE gate — `{kind:"needs_review"}` (a profile's dry-run interception produced a predicted
138
+ * state-diff a human/judge must REVIEW) OR `{kind:"plan_review"}` (a profile's plan-gate produced a
139
+ * proposed PLAN a human must approve/edit/reject). When set, the result is `status:"needs_review"` +
140
+ * errorCode `"review.pending"`, carrying this token/gate (keyed off ref-PRESENCE, not `gate.kind`, so it
141
+ * serves both review kinds uniformly). It is the DUAL of `suspendRef` but for DIFFERENT semantics (a human
142
+ * REVIEW, not a pre-action tool-call APPROVAL), so it has its OWN flag and its OWN assemble slot (8.6,
143
+ * between `suspendRef` 8.5 and the aborted branches 9) — **never both set at once** (the commit-side
144
+ * discriminant in prepare-task branches on `gate.kind` and sets exactly one). Disjoint from `suspendRef`
145
+ * so this branch is reachable: keying status off `suspendRef` alone (reusing it) would report `"suspended"`
146
+ * and make this dead code (v4 MAJOR-A). Like `suspendRef`, it used an abort to stop the loop (no `threw`),
147
+ * so it never hits the failure branches above. */
148
+ reviewRef?: {
149
+ token: import("../checkpoint-store.js").CheckpointToken;
150
+ gate: import("../checkpoint-store.js").CheckpointGate;
151
+ };
152
+ }
153
+ /**
154
+ * Extract a machine-readable code from a thrown error (e.g. `SessionError.code`, a Node error code).
155
+ * Walks the `cause` chain because the harness wraps lower-level errors (e.g. a `SessionError("conflict")`
156
+ * append failure surfaces as an `AgentHarnessError("unknown")` whose cause is the real one) — so we
157
+ * prefer the first specific code over a generic `"unknown"` wrapper.
158
+ */
159
+ export declare function errorCodeOf(err: unknown): string | undefined;
160
+ /**
161
+ * Build the final {@link TaskResult} from the run's terminal state. **The errorCode priority chain is a
162
+ * public contract** (callers `switch` on these strings) — first match wins, in this exact order
163
+ * (council design/34 red-line #3, do not reorder):
164
+ * 1. `outputInvalid` → `"output.invalid"`
165
+ * 2. degenerate → `"output.degenerate"` + `salvagedOutput` (design/39; wins over budget/timeout)
166
+ * 2.5 walltime cutoff → status `"timeout"` + `"limit.timeout"` + `salvagedOutput` (design/130 P2b:
167
+ * the brain cut the final turn at the soft deadline and the bounded write-out recovery was
168
+ * exhausted — semantically a walltime timeout WITH salvage, not an opaque provider failure)
169
+ * 3. `budgetHit` → `"budget.precall"` | `"budget.exceeded"`
170
+ * 3.5 `suspendLoop` → `"suspend.loop"` (design/72 §2.2 B — the re-suspend cap; deterministic root
171
+ * cause, above `threw` because it owns the abort)
172
+ * 4. `threw` + timeout → `"limit.timeout"`
173
+ * 5. `threw` + turns → `"limit.max_turns"`
174
+ * 6. `threw` + conflict→ `"conflict"`
175
+ * 7. `threw` (other) → `errorCodeOf(threw)`
176
+ * 8. `blockedReason` → status `"blocked"` (no errorCode)
177
+ * 8.5 `suspendRef` → status `"suspended"` + checkpointToken/gate (design/45 B4 — a deliberate
178
+ * durable pause beats the abort it used, but yields to a real budget/threw failure above)
179
+ * 8.6 `reviewRef` → status `"needs_review"` + `"review.pending"` + checkpointToken/gate (design/76 §2.5
180
+ * — a dry-run post-prediction REVIEW pause; the DUAL of 8.5, between it and the aborts, same red-line:
181
+ * a `suspendRef` at 8.5 still wins if both were somehow set, proving slot order — but the commit-side
182
+ * discriminant guarantees only one is ever set)
183
+ * 9. `abortedLive` | stopReason aborted → `"limit.timeout"` | `"limit.max_turns"` | undefined
184
+ * (audit A-1: hoisted ABOVE no-final — the loop exits cleanly on abort, so `final` may be a
185
+ * normal message or absent; a plain user interrupt carries NO errorCode — switch on `status`)
186
+ * 10. no `final` → status `"failed"`
187
+ * 11. stopReason error → brain `[code]` prefix (or `"conflict"` from the storage-layer flag)
188
+ * 12. else → `"completed"`
189
+ */
190
+ export declare function assembleResult(spec: TaskSpec, sessionId: string, final: AssistantMessage | undefined, stats: Stats, flags: ResultFlags): TaskResult;
191
+ //# sourceMappingURL=assemble-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble-result.d.ts","sourceRoot":"","sources":["../../../src/core/runner/assemble-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ import { DEGENERATE_MESSAGE } from "../../brain/repetition.js";
2
+ import { WALLTIME_CUTOFF_MESSAGE } from "../../brain/walltime.js";
3
+ import { extractErrorCode, stripErrorCodePrefix } from "../../brain/errors.js";
4
+ /**
5
+ * Extract a machine-readable code from a thrown error (e.g. `SessionError.code`, a Node error code).
6
+ * Walks the `cause` chain because the harness wraps lower-level errors (e.g. a `SessionError("conflict")`
7
+ * append failure surfaces as an `AgentHarnessError("unknown")` whose cause is the real one) — so we
8
+ * prefer the first specific code over a generic `"unknown"` wrapper.
9
+ */
10
+ export function errorCodeOf(err) {
11
+ let cur = err;
12
+ let fallback;
13
+ for (let depth = 0; cur && typeof cur === "object" && depth < 8; depth++) {
14
+ const code = cur.code;
15
+ if (typeof code === "string" && code) {
16
+ if (code !== "unknown") {
17
+ return code;
18
+ }
19
+ fallback ??= code;
20
+ }
21
+ cur = cur.cause;
22
+ }
23
+ return fallback;
24
+ }
25
+ /**
26
+ * Strip leaked reasoning tags from text destined for the machine-readable `result`. Some reasoning
27
+ * models emit thinking inline in `content` (instead of the dedicated reasoning channel), so a
28
+ * `<think>…</think>` block — or an orphan `</think>` from a partial split — leaks into the result
29
+ * (F10). This only sanitizes the returned `result`; the persisted transcript keeps the raw content.
30
+ */
31
+ function stripThinkTags(text) {
32
+ // 1. Remove well-formed <think>…</think> blocks.
33
+ let t = text.replace(/<think>[\s\S]*?<\/think>/gi, "");
34
+ // 2. An orphan </think> with no preceding <think> means the reasoning leaked inline and only the
35
+ // closing tag survived — everything up to and including it is reasoning, so drop it.
36
+ const lower = t.toLowerCase();
37
+ const close = lower.lastIndexOf("</think>");
38
+ if (close !== -1 && !lower.slice(0, close).includes("<think>")) {
39
+ t = t.slice(close + "</think>".length);
40
+ }
41
+ // 3. Drop any remaining stray tags.
42
+ return t.replace(/<\/?think>/gi, "").trim();
43
+ }
44
+ function assistantText(msg) {
45
+ const text = msg.content
46
+ .filter((c) => c.type === "text")
47
+ .map((c) => c.text)
48
+ .join("");
49
+ return stripThinkTags(text);
50
+ }
51
+ /**
52
+ * Build the final {@link TaskResult} from the run's terminal state. **The errorCode priority chain is a
53
+ * public contract** (callers `switch` on these strings) — first match wins, in this exact order
54
+ * (council design/34 red-line #3, do not reorder):
55
+ * 1. `outputInvalid` → `"output.invalid"`
56
+ * 2. degenerate → `"output.degenerate"` + `salvagedOutput` (design/39; wins over budget/timeout)
57
+ * 2.5 walltime cutoff → status `"timeout"` + `"limit.timeout"` + `salvagedOutput` (design/130 P2b:
58
+ * the brain cut the final turn at the soft deadline and the bounded write-out recovery was
59
+ * exhausted — semantically a walltime timeout WITH salvage, not an opaque provider failure)
60
+ * 3. `budgetHit` → `"budget.precall"` | `"budget.exceeded"`
61
+ * 3.5 `suspendLoop` → `"suspend.loop"` (design/72 §2.2 B — the re-suspend cap; deterministic root
62
+ * cause, above `threw` because it owns the abort)
63
+ * 4. `threw` + timeout → `"limit.timeout"`
64
+ * 5. `threw` + turns → `"limit.max_turns"`
65
+ * 6. `threw` + conflict→ `"conflict"`
66
+ * 7. `threw` (other) → `errorCodeOf(threw)`
67
+ * 8. `blockedReason` → status `"blocked"` (no errorCode)
68
+ * 8.5 `suspendRef` → status `"suspended"` + checkpointToken/gate (design/45 B4 — a deliberate
69
+ * durable pause beats the abort it used, but yields to a real budget/threw failure above)
70
+ * 8.6 `reviewRef` → status `"needs_review"` + `"review.pending"` + checkpointToken/gate (design/76 §2.5
71
+ * — a dry-run post-prediction REVIEW pause; the DUAL of 8.5, between it and the aborts, same red-line:
72
+ * a `suspendRef` at 8.5 still wins if both were somehow set, proving slot order — but the commit-side
73
+ * discriminant guarantees only one is ever set)
74
+ * 9. `abortedLive` | stopReason aborted → `"limit.timeout"` | `"limit.max_turns"` | undefined
75
+ * (audit A-1: hoisted ABOVE no-final — the loop exits cleanly on abort, so `final` may be a
76
+ * normal message or absent; a plain user interrupt carries NO errorCode — switch on `status`)
77
+ * 10. no `final` → status `"failed"`
78
+ * 11. stopReason error → brain `[code]` prefix (or `"conflict"` from the storage-layer flag)
79
+ * 12. else → `"completed"`
80
+ */
81
+ export function assembleResult(spec, sessionId, final, stats, flags) {
82
+ const taskId = spec.taskId ?? sessionId;
83
+ const text = final ? assistantText(final) : "";
84
+ // OTel-aligned alias: promptTokens is already the normalized total input incl. cache (design/17 §11.5).
85
+ stats.totalInputTokens = stats.promptTokens;
86
+ // design/80 D-E-core (Part B): the LLM-derived finance taxonomy. `stats.costMicroUsd` is the root-agent
87
+ // LLM cost PLUS the within-task compaction LLM cost folded into it (recordCompactionUsage) — and NOTHING
88
+ // else (nested subagent cost lands only in `stats.nested`, never in `costMicroUsd`; memory consolidation is
89
+ // a separate budget-excluded line set after assembleResult). So:
90
+ // llmRoot = costMicroUsd − compaction (subtract ONLY what was folded in — get the direction right,
91
+ // Framing-4 had it inverted; do NOT subtract nested — it was
92
+ // never folded into costMicroUsd, so subtracting under-reports)
93
+ // nestedSubagent = stats.nested.costMicroUsd (separate accumulator)
94
+ // compaction = stats.compactionMicroUsd (the category Framing-4 missed)
95
+ // memoryConsolidation = 0 HERE — filled in runtask AFTER the async consolidation pass sets stats.memory.
96
+ // `Math.max(0, …)` is a fail-safe clamp: rounding across the per-turn vs aggregated compaction sums can
97
+ // leave llmRoot a few micro-USD negative; a negative category is a contract violation the test guards
98
+ // (each ≥ 0), so clamp. NO total−parts `uncategorized` residual: it is algebraically always 0 and can never
99
+ // fail-loud — the reconcile test instead asserts the parts SUM to the independently-tracked LLM total.
100
+ const compactionMicroUsd = stats.compactionMicroUsd ?? 0;
101
+ const nestedSubagentMicroUsd = stats.nested?.costMicroUsd ?? 0;
102
+ stats.costBreakdown = {
103
+ llmRootMicroUsd: Math.max(0, stats.costMicroUsd - compactionMicroUsd),
104
+ nestedSubagentMicroUsd,
105
+ memoryConsolidationMicroUsd: 0, // filled in runtask alongside stats.memory (AFTER consolidation)
106
+ compactionMicroUsd,
107
+ };
108
+ let status;
109
+ const result = text;
110
+ let errorMessage;
111
+ let errorCode;
112
+ let blockedReason;
113
+ let salvagedOutput;
114
+ let checkpointToken;
115
+ let checkpointGate;
116
+ // Degenerate-repetition cutoff (design/39): identified by the shared `DEGENERATE_MESSAGE` the brain
117
+ // stamps (not a fragile text match). The text the model produced before/at the loop is salvageable —
118
+ // surface it via `salvagedOutput` so a `failed` task that already did good work isn't a total loss.
119
+ const isDegenerate = final?.stopReason === "error" && final.errorMessage === DEGENERATE_MESSAGE;
120
+ // design/130 P2b: the brain's deliberate walltime stream cut, identified by the shared sentinel.
121
+ const isWalltimeCutoff = final?.stopReason === "error" && final.errorMessage === WALLTIME_CUTOFF_MESSAGE;
122
+ if (flags.outputInvalid) {
123
+ // Output-retry cap hit: the model couldn't produce a schema-valid `submit_output` (council OS3).
124
+ // Wins over the abort it triggered. Distinct, actionable code vs the ambiguous `limit.max_turns`.
125
+ status = "failed";
126
+ errorCode = "output.invalid";
127
+ errorMessage = "model did not produce a valid structured output within the retry limit";
128
+ }
129
+ else if (isDegenerate) {
130
+ // Slotted right after `output.invalid` (council design/39): garbage output wins over budget/timeout
131
+ // codes, but a schema-invalid output still wins over it. Salvage the turn's text (v1: whole turn).
132
+ status = "failed";
133
+ errorCode = "output.degenerate";
134
+ errorMessage = final?.errorMessage;
135
+ salvagedOutput = text.trim() || undefined;
136
+ }
137
+ else if (isWalltimeCutoff) {
138
+ // Slot 2.5 (design/130 P2b): the write-out window collapsed — the brain cut the final turn at
139
+ // the soft deadline and the bounded recovery was exhausted. This IS a walltime timeout (the
140
+ // task ran out of clock), reported with the salvage the deliberate cut preserved — strictly
141
+ // more honest than the pre-P2b shape (hard abort mid-call, work lost, orphan reconcile).
142
+ status = "timeout";
143
+ errorCode = "limit.timeout";
144
+ errorMessage = final?.errorMessage;
145
+ salvagedOutput = text.trim() || undefined;
146
+ }
147
+ else if (flags.budgetHit) {
148
+ // Budget gate wins over the abort it triggered (abort sets `threw`/aborted too).
149
+ status = "failed";
150
+ errorCode = flags.budgetHit === "precall" ? "budget.precall" : "budget.exceeded";
151
+ errorMessage =
152
+ flags.budgetHit === "precall"
153
+ ? "estimated cost exceeds maxCostUsd; task not started"
154
+ : "cumulative cost or tokens exceeded the task budget";
155
+ }
156
+ else if (flags.suspendLoop) {
157
+ // design/72 §2.2 (B): the suspend-loop cap fired — the task suspended too many times (a restart-prone
158
+ // model re-issuing the gated call every resume). It aborted WITHOUT minting a checkpoint, so it reads
159
+ // as a terminal failure (a resumable status would loop forever), distinct from a normal `suspended`.
160
+ // Above `threw` because the cap is the deterministic root cause (it owns the abort), beating any
161
+ // secondary error the abort might raise.
162
+ status = "failed";
163
+ errorCode = "suspend.loop";
164
+ errorMessage = "task suspended too many times (resume/restart loop) — exceeded the suspend limit";
165
+ }
166
+ else if (flags.threw) {
167
+ status = flags.abortedForTimeout ? "timeout" : "failed";
168
+ errorMessage = flags.threw instanceof Error ? flags.threw.message : String(flags.threw);
169
+ // Terminal codes use a dotted namespace (1.37). A lost CAS is detected at the storage boundary
170
+ // (the harness flattens the error); otherwise fall back to any code on the thrown error itself.
171
+ errorCode = flags.abortedForTimeout
172
+ ? "limit.timeout"
173
+ : flags.abortedForTurns
174
+ ? "limit.max_turns"
175
+ : flags.conflict
176
+ ? "conflict"
177
+ : errorCodeOf(flags.threw);
178
+ }
179
+ else if (flags.blockedReason) {
180
+ status = "blocked";
181
+ blockedReason = flags.blockedReason;
182
+ }
183
+ else if (flags.suspendRef) {
184
+ // Slot 8.5 (design/45 B4): a deliberate durable suspension. It used an abort to stop the loop
185
+ // (final.stopReason === "aborted") but did NOT set `threw`/timeout/turns, so the earlier failure
186
+ // branches were all skipped — intercept here, ABOVE `!final`/aborted, so it surfaces as the
187
+ // non-terminal `suspended` (resumable) rather than a spurious failed/timeout.
188
+ status = "suspended";
189
+ checkpointToken = flags.suspendRef.token;
190
+ checkpointGate = flags.suspendRef.gate;
191
+ }
192
+ else if (flags.reviewRef) {
193
+ // Slot 8.6 (design/76 §2.5 + design/80 D-B): a deliberate REVIEW pause — a profile's dry-run
194
+ // interception (a `needs_review` gate, resumed with `dry_run_review`) OR a profile's plan-gate (a
195
+ // `plan_review` gate, resumed with `plan_review`). Both share this `needs_review` terminal (keyed off
196
+ // ref-PRESENCE, not `gate.kind` — the resume discriminant tells them apart). Like the `suspendRef` branch
197
+ // above it used an abort to stop the loop (final.stopReason === "aborted") but did NOT set `threw`/timeout/
198
+ // turns, so all the failure branches were skipped — intercept here, BELOW `suspendRef` (8.5, which
199
+ // wins if both were somehow set — but the commit-side discriminant guarantees they're mutually
200
+ // exclusive) and ABOVE the aborted/!final branches, surfacing the non-terminal, resumable
201
+ // `needs_review` rather than a spurious failed/suspended.
202
+ status = "needs_review";
203
+ errorCode = "review.pending";
204
+ checkpointToken = flags.reviewRef.token;
205
+ checkpointGate = flags.reviewRef.gate;
206
+ }
207
+ else if (flags.abortedLive || final?.stopReason === "aborted") {
208
+ // audit A-1: `abortedLive` replaces what the synthetic aborted assistant used to signal — the loop
209
+ // now exits cleanly on an abort, so `final` can be a perfectly normal tool-call message. Placed
210
+ // ABOVE `!final` so an abort before any output still reads "run aborted", not "no message".
211
+ status = flags.abortedForTimeout ? "timeout" : "failed";
212
+ errorCode = flags.abortedForTimeout ? "limit.timeout" : flags.abortedForTurns ? "limit.max_turns" : undefined;
213
+ errorMessage = final?.errorMessage ?? (flags.abortedForTurns ? "max turns exceeded" : "run aborted");
214
+ }
215
+ else if (!final) {
216
+ status = "failed";
217
+ errorMessage = "no assistant message produced";
218
+ }
219
+ else if (final.stopReason === "error") {
220
+ status = "failed";
221
+ errorMessage = final.errorMessage ?? "model error";
222
+ // A brain error carries its kind as a `[code]` prefix (auth/network/rate_limit/…) — lift it into
223
+ // errorCode so the caller can react (auth → fix the key; network/rate_limit → retry/back off)
224
+ // without string-matching, and strip the prefix from the human message. Both derive from the shared
225
+ // code list in brain/errors.ts (council finding: an inline copy of the list silently mis-classifies
226
+ // any future code that's added to the canonical enum but not here).
227
+ const lifted = extractErrorCode(errorMessage);
228
+ if (lifted) {
229
+ errorCode = lifted;
230
+ errorMessage = stripErrorCodePrefix(errorMessage);
231
+ }
232
+ else if (flags.conflict) {
233
+ // audit A-1 follow-on: a lost optimistic lock used to reach the caller as a THROW (the loop's
234
+ // failure message re-append also hit the conflict and re-threw). The loop no longer persists
235
+ // failure messages, so the conflict surfaces as a resolved error message instead — the storage
236
+ // layer's conflictRef still flagged it; lift it so the service can evict-and-retry on the code.
237
+ errorCode = "conflict";
238
+ }
239
+ }
240
+ else {
241
+ status = "completed";
242
+ }
243
+ // codex review #4: `compactionMicroUsd` is a run-loop-INTERNAL accumulator (it is NOT on the public
244
+ // `TaskResult.stats` type — the public compaction figure is `costBreakdown.compactionMicroUsd`). Strip it so it
245
+ // doesn't leak onto the returned stats as an untyped runtime field.
246
+ const { compactionMicroUsd: _internalCompaction, ...publicStats } = stats;
247
+ void _internalCompaction;
248
+ return { taskId, sessionId, status, ...(flags.model !== undefined ? { model: flags.model } : {}), result: result.trim(), salvagedOutput, blockedReason, errorMessage, errorCode, checkpointToken, checkpointGate, stats: publicStats };
249
+ }
250
+ //# sourceMappingURL=assemble-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble-result.js","sourceRoot":"","sources":["../../../src/core/runner/assemble-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * design/130 P1+P2 — wall-clock-aware call capping + graceful-finalize estimation.
3
+ *
4
+ * Pure state + math, unit-tested in isolation; the runner owns the wiring:
5
+ * - prepare-task creates a {@link CallCapRef} and hands the harness a per-call provider closure;
6
+ * - runtask feeds samples (model-call latency/output, tool durations) and the walltime deadline;
7
+ * - the loop evaluates the provider right before each provider call (maxTokensPerCall seam).
8
+ *
9
+ * Throughput prior is deliberately CONSERVATIVE (codex ④: an optimistic prior yields an oversized
10
+ * cap and a late finalize — the failure direction is silent). The EWMA takes over from the first
11
+ * completed call. Cross-run per-model priors (P25/P10 history) are deferred — no history store in
12
+ * this slice.
13
+ */
14
+ /** Conservative first-call throughput prior (tokens/sec) — err LOW (codex ④). */
15
+ export declare const CALL_CAP_PRIOR_TOK_PER_SEC = 15;
16
+ /** Fraction of the remaining wall-clock a single call may absorb (leave room for tools + next turn). */
17
+ export declare const CALL_CAP_SAFETY = 0.5;
18
+ /** Never cap below this — a starved reply is worse than none (design/130 §2). */
19
+ export declare const CALL_CAP_MIN_FLOOR = 1024;
20
+ /** Anthropic budget-thinking legal minimum (design/119 semantics: below this, thinking is skipped). */
21
+ export declare const CALL_CAP_THINKING_MIN = 2048;
22
+ /** P2b — fixed write-out cushion bounds (design/130: 60–90s band, budget-proportional under it). */
23
+ export declare const WRITEOUT_CUSHION_MAX_MS = 75000;
24
+ export declare const WRITEOUT_CUSHION_MIN_MS = 10000;
25
+ /** P2b — margin under the hard deadline that the finalize write-out turn itself must respect. */
26
+ export declare const FINAL_WRITEOUT_MARGIN_MS = 5000;
27
+ /**
28
+ * P2b: the write-out cushion for a given wall-clock budget — 15% of the budget, clamped to the
29
+ * [10s, 75s] band so tiny budgets aren't swallowed and huge budgets don't over-reserve.
30
+ */
31
+ export declare function writeoutCushionMs(budgetMs: number): number;
32
+ export interface CallCapState {
33
+ /** EWMA output-token throughput (tok/sec); undefined until the first completed call. */
34
+ emaTokPerSec?: number;
35
+ /** EWMA model-call wall latency (ms). */
36
+ emaCallMs?: number;
37
+ /** EWMA tool-execution duration (ms). */
38
+ emaToolMs?: number;
39
+ /** P2b: decaying max of model-call wall latency (ms) — tail-aware companion to `emaCallMs`. */
40
+ peakCallMs?: number;
41
+ /** P2b: decaying max of tool-execution duration (ms) — tail-aware companion to `emaToolMs`. */
42
+ peakToolMs?: number;
43
+ /** Diagnostics for the NEXT brain.call trace row (set by the provider, consumed by the tracer). */
44
+ last?: {
45
+ cap: number;
46
+ remainingMs: number;
47
+ tokPerSec: number;
48
+ thinkingSkipped: boolean;
49
+ };
50
+ }
51
+ /**
52
+ * Shared mutable ref between prepare-task (creates + closes the provider over it) and runtask
53
+ * (feeds samples + the deadline + finalize mode).
54
+ */
55
+ export interface CallCapRef {
56
+ state: CallCapState;
57
+ /** Absolute walltime deadline (ms epoch); set by runtask once the task clock starts. */
58
+ deadlineMs?: number;
59
+ /** P2: finalize was injected — raise the P1 floor so the write-out turn isn't starved. */
60
+ finalizeMode?: boolean;
61
+ /**
62
+ * The static ceiling the shrink respects (spec.limits.maxOutputTokens ?? current model's
63
+ * maxTokens). MUTABLE (codex delta ②): a mid-run degrade switch to a smaller model must
64
+ * TIGHTEN it (runtask's degrade site), or the dynamic cap could exceed the served model's
65
+ * real limit. Only ever lowered, never raised.
66
+ */
67
+ staticCapTokens?: number;
68
+ /** TB telemetry B2 (service [397]): count of calls whose max_tokens was actually shrunk
69
+ * (computeCallCap returned a cap). Incremented by the prepare-task provider closure;
70
+ * folded into `stats.mechanisms.capShrinks` at result assembly. */
71
+ shrinks?: number;
72
+ /**
73
+ * P2b: the write-out cushion (ms) — set by runtask alongside `deadlineMs` iff graceful finalize
74
+ * is on. Presence ARMS the soft execution deadline ({@link softExecDeadlineMs}: brain call cutoff
75
+ * + foreground tool-timeout clamp) and widens the finalize boundary condition
76
+ * (`remaining < est + cushion`). Absent ⇒ P2b execution hardening is inert.
77
+ */
78
+ cushionMs?: number;
79
+ /** P2b telemetry: count of foreground shell timeouts clamped to the soft tool deadline
80
+ * (incremented by the hands-toolkit clamp notifier; folded into `stats.mechanisms.toolClamps`). */
81
+ toolClamps?: number;
82
+ /**
83
+ * service [405] P0 — the run has OBSERVED self-directed reasoning output (an assistant message
84
+ * carrying a thinking block). P1's cap math (`walltime × visible-output-throughput × safety`)
85
+ * is structurally WRONG for such models: reasoning tokens bill against max_tokens but produce
86
+ * no visible output, so a hard cap decapitates the reasoning mid-thought (TB full-89: 14 calls
87
+ * with completionTokens == callCap, two solved tasks lost). Once observed, the P1 shrink is OFF
88
+ * for the rest of the run. The first call is protected by `Model.reasoning` metadata instead —
89
+ * this runtime flag is the safety net for deployments whose metadata is wrong (TB's deepseek
90
+ * spec said `reasoning:false`; the model reasons anyway).
91
+ */
92
+ reasoningObserved?: boolean;
93
+ }
94
+ /**
95
+ * P2b: the ABSOLUTE soft execution deadline (ms epoch) for the next call/tool, or undefined when
96
+ * inert (deadline not armed / graceful finalize off). While working: `deadline − cushion`, so a
97
+ * long call/tool is cut/clamped with the write-out window intact. Once the finalize write-out turn
98
+ * is in flight (`finalizeMode`): `deadline − a small margin`, so the final turn may use the cushion
99
+ * it was reserved.
100
+ */
101
+ export declare function softExecDeadlineMs(ref: CallCapRef): number | undefined;
102
+ export declare function createCallCapRef(): CallCapRef;
103
+ /**
104
+ * Feed one completed model call (output tokens + wall latency) into the EWMAs.
105
+ * Zero-output calls are DISCARDED entirely (codex delta ④): a degenerate / aborted /
106
+ * usage-missing call returns fast with no work — folding its latency into `emaCallMs` would pull
107
+ * the finalize estimate optimistic exactly when the provider is misbehaving.
108
+ */
109
+ export declare function recordCallSample(state: CallCapState, outputTokens: number, latencyMs: number): void;
110
+ /** Feed one completed tool execution into the tool-duration EWMA. */
111
+ export declare function recordToolSample(state: CallCapState, durationMs: number): void;
112
+ /**
113
+ * P1: compute the per-call output cap from the remaining wall-clock.
114
+ * Returns undefined when no shrink applies (no deadline yet / already past it — the hard-abort
115
+ * path owns that — or the derived cap would not shrink below the static ceiling).
116
+ *
117
+ * @param thinkingActive whether this run requests budget-thinking (the [1024,2047] contract only
118
+ * matters then).
119
+ */
120
+ export declare function computeCallCap(ref: CallCapRef, nowMs: number, thinkingActive: boolean): number | undefined;
121
+ /**
122
+ * P2: estimate one more full model-call + tool cycle (ms), with headroom. Conservative by
123
+ * construction: EWMA samples from THIS run, a fat prior before any samples. P2b: TAIL-AWARE — the
124
+ * per-leg base is `max(EWMA, decayed peak)`, not the mean alone (a run of small tail calls used to
125
+ * pull the mean low right before one more heavy call crossed the deadline; the decayed peak keeps
126
+ * the heavy sample in the estimate for several rounds). Only ever raises the estimate, i.e. only
127
+ * ever finalizes EARLIER — the safe direction.
128
+ */
129
+ export declare function estimateCycleMs(state: CallCapState): number;
130
+ //# sourceMappingURL=call-cap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-cap.d.ts","sourceRoot":"","sources":["../../../src/core/runner/call-cap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,wGAAwG;AACxG,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,uGAAuG;AACvG,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAkB1C,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,iGAAiG;AACjG,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,MAAM,WAAW,YAAY;IAC3B,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1F;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;wEAEoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;wGACoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAKtE;AAED,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CASnG;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA8B1G;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAQ3D"}