@namzu/sdk 2.0.0 → 3.1.0

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 (1526) hide show
  1. package/CHANGELOG.md +2311 -0
  2. package/README.md +49 -53
  3. package/dist/__tests__/default-path-conformance.test.d.ts +2 -0
  4. package/dist/__tests__/default-path-conformance.test.d.ts.map +1 -0
  5. package/dist/__tests__/default-path-conformance.test.js +262 -0
  6. package/dist/__tests__/default-path-conformance.test.js.map +1 -0
  7. package/dist/__tests__/shipped-defaults.test.d.ts +2 -0
  8. package/dist/__tests__/shipped-defaults.test.d.ts.map +1 -0
  9. package/dist/__tests__/shipped-defaults.test.js +97 -0
  10. package/dist/__tests__/shipped-defaults.test.js.map +1 -0
  11. package/dist/advisory/__tests__/budget-enforcement.test.d.ts +2 -0
  12. package/dist/advisory/__tests__/budget-enforcement.test.d.ts.map +1 -0
  13. package/dist/advisory/__tests__/budget-enforcement.test.js +159 -0
  14. package/dist/advisory/__tests__/budget-enforcement.test.js.map +1 -0
  15. package/dist/advisory/__tests__/structured-response.test.d.ts +2 -0
  16. package/dist/advisory/__tests__/structured-response.test.d.ts.map +1 -0
  17. package/dist/advisory/__tests__/structured-response.test.js +99 -0
  18. package/dist/advisory/__tests__/structured-response.test.js.map +1 -0
  19. package/dist/advisory/budget.d.ts +15 -0
  20. package/dist/advisory/budget.d.ts.map +1 -0
  21. package/dist/advisory/budget.js +21 -0
  22. package/dist/advisory/budget.js.map +1 -0
  23. package/dist/advisory/context.d.ts +2 -0
  24. package/dist/advisory/context.d.ts.map +1 -1
  25. package/dist/advisory/context.js +16 -0
  26. package/dist/advisory/context.js.map +1 -1
  27. package/dist/advisory/executor.d.ts +14 -11
  28. package/dist/advisory/executor.d.ts.map +1 -1
  29. package/dist/advisory/executor.js +36 -24
  30. package/dist/advisory/executor.js.map +1 -1
  31. package/dist/advisory/executor.test.d.ts +8 -6
  32. package/dist/advisory/executor.test.d.ts.map +1 -1
  33. package/dist/advisory/executor.test.js +12 -8
  34. package/dist/advisory/executor.test.js.map +1 -1
  35. package/dist/advisory/index.d.ts +2 -0
  36. package/dist/advisory/index.d.ts.map +1 -1
  37. package/dist/advisory/index.js +2 -0
  38. package/dist/advisory/index.js.map +1 -1
  39. package/dist/advisory/parse.d.ts +23 -0
  40. package/dist/advisory/parse.d.ts.map +1 -0
  41. package/dist/advisory/parse.js +56 -0
  42. package/dist/advisory/parse.js.map +1 -0
  43. package/dist/agents/AbstractAgent.d.ts +48 -0
  44. package/dist/agents/AbstractAgent.d.ts.map +1 -1
  45. package/dist/agents/AbstractAgent.js +77 -0
  46. package/dist/agents/AbstractAgent.js.map +1 -1
  47. package/dist/agents/PipelineAgent.d.ts +10 -0
  48. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  49. package/dist/agents/PipelineAgent.js +12 -0
  50. package/dist/agents/PipelineAgent.js.map +1 -1
  51. package/dist/agents/ReactiveAgent.d.ts +10 -0
  52. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  53. package/dist/agents/ReactiveAgent.js +40 -0
  54. package/dist/agents/ReactiveAgent.js.map +1 -1
  55. package/dist/agents/RouterAgent.d.ts +10 -0
  56. package/dist/agents/RouterAgent.d.ts.map +1 -1
  57. package/dist/agents/RouterAgent.js +23 -2
  58. package/dist/agents/RouterAgent.js.map +1 -1
  59. package/dist/agents/SupervisorAgent.d.ts +11 -1
  60. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  61. package/dist/agents/SupervisorAgent.js +23 -1
  62. package/dist/agents/SupervisorAgent.js.map +1 -1
  63. package/dist/agents/__tests__/idempotency-key.test.d.ts +2 -0
  64. package/dist/agents/__tests__/idempotency-key.test.d.ts.map +1 -0
  65. package/dist/agents/__tests__/idempotency-key.test.js +149 -0
  66. package/dist/agents/__tests__/idempotency-key.test.js.map +1 -0
  67. package/dist/agents/__tests__/invocation-lock.test.d.ts +2 -0
  68. package/dist/agents/__tests__/invocation-lock.test.d.ts.map +1 -0
  69. package/dist/agents/__tests__/invocation-lock.test.js +126 -0
  70. package/dist/agents/__tests__/invocation-lock.test.js.map +1 -0
  71. package/dist/agents/__tests__/reachability.test.d.ts +2 -0
  72. package/dist/agents/__tests__/reachability.test.d.ts.map +1 -0
  73. package/dist/agents/__tests__/reachability.test.js +173 -0
  74. package/dist/agents/__tests__/reachability.test.js.map +1 -0
  75. package/dist/agents/__tests__/supervisor-ledger.test.js +1 -1
  76. package/dist/agents/__tests__/supervisor-ledger.test.js.map +1 -1
  77. package/dist/agents/index.d.ts +1 -1
  78. package/dist/agents/index.d.ts.map +1 -1
  79. package/dist/agents/lock.d.ts +0 -1
  80. package/dist/agents/lock.d.ts.map +1 -1
  81. package/dist/agents/lock.js.map +1 -1
  82. package/dist/bridge/a2a/late-events.test.d.ts +2 -0
  83. package/dist/bridge/a2a/late-events.test.d.ts.map +1 -0
  84. package/dist/bridge/a2a/late-events.test.js +70 -0
  85. package/dist/bridge/a2a/late-events.test.js.map +1 -0
  86. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  87. package/dist/bridge/a2a/mapper.js +55 -3
  88. package/dist/bridge/a2a/mapper.js.map +1 -1
  89. package/dist/bridge/a2a/mapper.test.js +1 -1
  90. package/dist/bridge/a2a/mapper.test.js.map +1 -1
  91. package/dist/bridge/a2a/message.d.ts.map +1 -1
  92. package/dist/bridge/a2a/message.js +5 -1
  93. package/dist/bridge/a2a/message.js.map +1 -1
  94. package/dist/bridge/sse/late-events.test.d.ts +2 -0
  95. package/dist/bridge/sse/late-events.test.d.ts.map +1 -0
  96. package/dist/bridge/sse/late-events.test.js +163 -0
  97. package/dist/bridge/sse/late-events.test.js.map +1 -0
  98. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  99. package/dist/bridge/sse/mapper.js +100 -0
  100. package/dist/bridge/sse/mapper.js.map +1 -1
  101. package/dist/compaction/__tests__/cleared-result-recovery.test.d.ts +2 -0
  102. package/dist/compaction/__tests__/cleared-result-recovery.test.d.ts.map +1 -0
  103. package/dist/compaction/__tests__/cleared-result-recovery.test.js +101 -0
  104. package/dist/compaction/__tests__/cleared-result-recovery.test.js.map +1 -0
  105. package/dist/compaction/__tests__/context-window.test.d.ts +2 -0
  106. package/dist/compaction/__tests__/context-window.test.d.ts.map +1 -0
  107. package/dist/compaction/__tests__/context-window.test.js +62 -0
  108. package/dist/compaction/__tests__/context-window.test.js.map +1 -0
  109. package/dist/compaction/__tests__/dangling.test.js +16 -5
  110. package/dist/compaction/__tests__/dangling.test.js.map +1 -1
  111. package/dist/compaction/__tests__/lossiness.test.d.ts +2 -0
  112. package/dist/compaction/__tests__/lossiness.test.d.ts.map +1 -0
  113. package/dist/compaction/__tests__/lossiness.test.js +163 -0
  114. package/dist/compaction/__tests__/lossiness.test.js.map +1 -0
  115. package/dist/compaction/__tests__/state-across-resume.test.d.ts +2 -0
  116. package/dist/compaction/__tests__/state-across-resume.test.d.ts.map +1 -0
  117. package/dist/compaction/__tests__/state-across-resume.test.js +88 -0
  118. package/dist/compaction/__tests__/state-across-resume.test.js.map +1 -0
  119. package/dist/compaction/__tests__/tool-result-editing.test.d.ts +2 -0
  120. package/dist/compaction/__tests__/tool-result-editing.test.d.ts.map +1 -0
  121. package/dist/compaction/__tests__/tool-result-editing.test.js +184 -0
  122. package/dist/compaction/__tests__/tool-result-editing.test.js.map +1 -0
  123. package/dist/compaction/__tests__/trim-opens-on-user.test.d.ts +2 -0
  124. package/dist/compaction/__tests__/trim-opens-on-user.test.d.ts.map +1 -0
  125. package/dist/compaction/__tests__/trim-opens-on-user.test.js +109 -0
  126. package/dist/compaction/__tests__/trim-opens-on-user.test.js.map +1 -0
  127. package/dist/compaction/__tests__/verifier-model.test.d.ts +2 -0
  128. package/dist/compaction/__tests__/verifier-model.test.d.ts.map +1 -0
  129. package/dist/compaction/__tests__/verifier-model.test.js +58 -0
  130. package/dist/compaction/__tests__/verifier-model.test.js.map +1 -0
  131. package/dist/compaction/context-window.d.ts +44 -0
  132. package/dist/compaction/context-window.d.ts.map +1 -0
  133. package/dist/compaction/context-window.js +97 -0
  134. package/dist/compaction/context-window.js.map +1 -0
  135. package/dist/compaction/dangling.js +48 -1
  136. package/dist/compaction/dangling.js.map +1 -1
  137. package/dist/compaction/extractor.d.ts.map +1 -1
  138. package/dist/compaction/extractor.js +55 -1
  139. package/dist/compaction/extractor.js.map +1 -1
  140. package/dist/compaction/index.d.ts +5 -0
  141. package/dist/compaction/index.d.ts.map +1 -1
  142. package/dist/compaction/index.js +3 -0
  143. package/dist/compaction/index.js.map +1 -1
  144. package/dist/compaction/manager.d.ts +25 -0
  145. package/dist/compaction/manager.d.ts.map +1 -1
  146. package/dist/compaction/manager.js +42 -8
  147. package/dist/compaction/manager.js.map +1 -1
  148. package/dist/compaction/managers/structured.d.ts.map +1 -1
  149. package/dist/compaction/managers/structured.js +7 -3
  150. package/dist/compaction/managers/structured.js.map +1 -1
  151. package/dist/compaction/retention.d.ts +15 -0
  152. package/dist/compaction/retention.d.ts.map +1 -0
  153. package/dist/compaction/retention.js +89 -0
  154. package/dist/compaction/retention.js.map +1 -0
  155. package/dist/compaction/serializer.d.ts.map +1 -1
  156. package/dist/compaction/serializer.js +28 -11
  157. package/dist/compaction/serializer.js.map +1 -1
  158. package/dist/compaction/tool-result-editing.d.ts +54 -0
  159. package/dist/compaction/tool-result-editing.d.ts.map +1 -0
  160. package/dist/compaction/tool-result-editing.js +164 -0
  161. package/dist/compaction/tool-result-editing.js.map +1 -0
  162. package/dist/compaction/types.d.ts +10 -0
  163. package/dist/compaction/types.d.ts.map +1 -1
  164. package/dist/compaction/verifier.d.ts +20 -1
  165. package/dist/compaction/verifier.d.ts.map +1 -1
  166. package/dist/compaction/verifier.js +11 -2
  167. package/dist/compaction/verifier.js.map +1 -1
  168. package/dist/compaction/wire.d.ts +54 -0
  169. package/dist/compaction/wire.d.ts.map +1 -0
  170. package/dist/compaction/wire.js +45 -0
  171. package/dist/compaction/wire.js.map +1 -0
  172. package/dist/config/runtime.d.ts +161 -45
  173. package/dist/config/runtime.d.ts.map +1 -1
  174. package/dist/config/runtime.js +61 -19
  175. package/dist/config/runtime.js.map +1 -1
  176. package/dist/connector/builtins/http.d.ts.map +1 -1
  177. package/dist/connector/builtins/http.js +14 -1
  178. package/dist/connector/builtins/http.js.map +1 -1
  179. package/dist/connector/builtins/http.test.js +12 -0
  180. package/dist/connector/builtins/http.test.js.map +1 -1
  181. package/dist/connector/mcp/__tests__/discovery-policy.test.d.ts +2 -0
  182. package/dist/connector/mcp/__tests__/discovery-policy.test.d.ts.map +1 -0
  183. package/dist/connector/mcp/__tests__/discovery-policy.test.js +109 -0
  184. package/dist/connector/mcp/__tests__/discovery-policy.test.js.map +1 -0
  185. package/dist/connector/mcp/__tests__/list-pagination.test.d.ts +2 -0
  186. package/dist/connector/mcp/__tests__/list-pagination.test.d.ts.map +1 -0
  187. package/dist/connector/mcp/__tests__/list-pagination.test.js +81 -0
  188. package/dist/connector/mcp/__tests__/list-pagination.test.js.map +1 -0
  189. package/dist/connector/mcp/__tests__/policy.test.d.ts +2 -0
  190. package/dist/connector/mcp/__tests__/policy.test.d.ts.map +1 -0
  191. package/dist/connector/mcp/__tests__/policy.test.js +86 -0
  192. package/dist/connector/mcp/__tests__/policy.test.js.map +1 -0
  193. package/dist/connector/mcp/__tests__/protocol-negotiation.test.d.ts +2 -0
  194. package/dist/connector/mcp/__tests__/protocol-negotiation.test.d.ts.map +1 -0
  195. package/dist/connector/mcp/__tests__/protocol-negotiation.test.js +81 -0
  196. package/dist/connector/mcp/__tests__/protocol-negotiation.test.js.map +1 -0
  197. package/dist/connector/mcp/__tests__/schema-fidelity.test.d.ts +2 -0
  198. package/dist/connector/mcp/__tests__/schema-fidelity.test.d.ts.map +1 -0
  199. package/dist/connector/mcp/__tests__/schema-fidelity.test.js +206 -0
  200. package/dist/connector/mcp/__tests__/schema-fidelity.test.js.map +1 -0
  201. package/dist/connector/mcp/__tests__/structured-result.test.d.ts +2 -0
  202. package/dist/connector/mcp/__tests__/structured-result.test.d.ts.map +1 -0
  203. package/dist/connector/mcp/__tests__/structured-result.test.js +112 -0
  204. package/dist/connector/mcp/__tests__/structured-result.test.js.map +1 -0
  205. package/dist/connector/mcp/adapter.d.ts +14 -0
  206. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  207. package/dist/connector/mcp/adapter.js +292 -18
  208. package/dist/connector/mcp/adapter.js.map +1 -1
  209. package/dist/connector/mcp/client.d.ts +38 -0
  210. package/dist/connector/mcp/client.d.ts.map +1 -1
  211. package/dist/connector/mcp/client.js +138 -12
  212. package/dist/connector/mcp/client.js.map +1 -1
  213. package/dist/connector/mcp/client.test.d.ts +2 -0
  214. package/dist/connector/mcp/client.test.d.ts.map +1 -0
  215. package/dist/connector/mcp/client.test.js +105 -0
  216. package/dist/connector/mcp/client.test.js.map +1 -0
  217. package/dist/connector/mcp/discovery.d.ts +32 -1
  218. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  219. package/dist/connector/mcp/discovery.js +41 -4
  220. package/dist/connector/mcp/discovery.js.map +1 -1
  221. package/dist/connector/mcp/http-sse.d.ts.map +1 -1
  222. package/dist/connector/mcp/http-sse.js +15 -1
  223. package/dist/connector/mcp/http-sse.js.map +1 -1
  224. package/dist/connector/mcp/index.d.ts +3 -0
  225. package/dist/connector/mcp/index.d.ts.map +1 -1
  226. package/dist/connector/mcp/index.js +1 -0
  227. package/dist/connector/mcp/index.js.map +1 -1
  228. package/dist/connector/mcp/policy.d.ts +57 -0
  229. package/dist/connector/mcp/policy.d.ts.map +1 -0
  230. package/dist/connector/mcp/policy.js +84 -0
  231. package/dist/connector/mcp/policy.js.map +1 -0
  232. package/dist/connector/mcp/schema-refs.d.ts +26 -0
  233. package/dist/connector/mcp/schema-refs.d.ts.map +1 -0
  234. package/dist/connector/mcp/schema-refs.js +111 -0
  235. package/dist/connector/mcp/schema-refs.js.map +1 -0
  236. package/dist/constants/agent/index.d.ts.map +1 -1
  237. package/dist/constants/agent/index.js +3 -0
  238. package/dist/constants/agent/index.js.map +1 -1
  239. package/dist/constants/compaction/index.js +1 -1
  240. package/dist/constants/compaction/index.js.map +1 -1
  241. package/dist/constants/continuation.d.ts +4 -4
  242. package/dist/constants/continuation.js +4 -4
  243. package/dist/constants/mcp/index.d.ts +31 -0
  244. package/dist/constants/mcp/index.d.ts.map +1 -1
  245. package/dist/constants/mcp/index.js +31 -0
  246. package/dist/constants/mcp/index.js.map +1 -1
  247. package/dist/constants/plugin/index.d.ts +23 -2
  248. package/dist/constants/plugin/index.d.ts.map +1 -1
  249. package/dist/constants/plugin/index.js +23 -2
  250. package/dist/constants/plugin/index.js.map +1 -1
  251. package/dist/constants/sandbox/index.d.ts +2 -3
  252. package/dist/constants/sandbox/index.d.ts.map +1 -1
  253. package/dist/constants/sandbox/index.js +6 -5
  254. package/dist/constants/sandbox/index.js.map +1 -1
  255. package/dist/constants/telemetry/index.d.ts +7 -0
  256. package/dist/constants/telemetry/index.d.ts.map +1 -1
  257. package/dist/constants/telemetry/index.js +7 -0
  258. package/dist/constants/telemetry/index.js.map +1 -1
  259. package/dist/constants/tools/index.d.ts +16 -0
  260. package/dist/constants/tools/index.d.ts.map +1 -1
  261. package/dist/constants/tools/index.js +16 -0
  262. package/dist/constants/tools/index.js.map +1 -1
  263. package/dist/contracts/a2a.d.ts +94 -94
  264. package/dist/contracts/api.d.ts +40 -2
  265. package/dist/contracts/api.d.ts.map +1 -1
  266. package/dist/contracts/run-status.d.ts +17 -0
  267. package/dist/contracts/run-status.d.ts.map +1 -0
  268. package/dist/contracts/run-status.js +41 -0
  269. package/dist/contracts/run-status.js.map +1 -0
  270. package/dist/contracts/schemas.d.ts +6 -6
  271. package/dist/eval/__tests__/case-deadline.test.d.ts +2 -0
  272. package/dist/eval/__tests__/case-deadline.test.d.ts.map +1 -0
  273. package/dist/eval/__tests__/case-deadline.test.js +128 -0
  274. package/dist/eval/__tests__/case-deadline.test.js.map +1 -0
  275. package/dist/eval/__tests__/end-to-end.test.d.ts +2 -0
  276. package/dist/eval/__tests__/end-to-end.test.d.ts.map +1 -0
  277. package/dist/eval/__tests__/end-to-end.test.js +223 -0
  278. package/dist/eval/__tests__/end-to-end.test.js.map +1 -0
  279. package/dist/eval/__tests__/harness-honesty.test.d.ts +2 -0
  280. package/dist/eval/__tests__/harness-honesty.test.d.ts.map +1 -0
  281. package/dist/eval/__tests__/harness-honesty.test.js +85 -0
  282. package/dist/eval/__tests__/harness-honesty.test.js.map +1 -0
  283. package/dist/eval/__tests__/harness.test.d.ts +2 -0
  284. package/dist/eval/__tests__/harness.test.d.ts.map +1 -0
  285. package/dist/eval/__tests__/harness.test.js +207 -0
  286. package/dist/eval/__tests__/harness.test.js.map +1 -0
  287. package/dist/eval/__tests__/judge.test.d.ts +2 -0
  288. package/dist/eval/__tests__/judge.test.d.ts.map +1 -0
  289. package/dist/eval/__tests__/judge.test.js +255 -0
  290. package/dist/eval/__tests__/judge.test.js.map +1 -0
  291. package/dist/eval/__tests__/scorer-gates.test.d.ts +2 -0
  292. package/dist/eval/__tests__/scorer-gates.test.d.ts.map +1 -0
  293. package/dist/eval/__tests__/scorer-gates.test.js +136 -0
  294. package/dist/eval/__tests__/scorer-gates.test.js.map +1 -0
  295. package/dist/eval/experiment.d.ts +54 -0
  296. package/dist/eval/experiment.d.ts.map +1 -0
  297. package/dist/eval/experiment.js +263 -0
  298. package/dist/eval/experiment.js.map +1 -0
  299. package/dist/eval/from-run.d.ts +30 -0
  300. package/dist/eval/from-run.d.ts.map +1 -0
  301. package/dist/eval/from-run.js +46 -0
  302. package/dist/eval/from-run.js.map +1 -0
  303. package/dist/eval/index.d.ts +8 -0
  304. package/dist/eval/index.d.ts.map +1 -0
  305. package/dist/eval/index.js +5 -0
  306. package/dist/eval/index.js.map +1 -0
  307. package/dist/eval/judge.d.ts +63 -0
  308. package/dist/eval/judge.d.ts.map +1 -0
  309. package/dist/eval/judge.js +136 -0
  310. package/dist/eval/judge.js.map +1 -0
  311. package/dist/eval/scorers.d.ts +40 -0
  312. package/dist/eval/scorers.d.ts.map +1 -0
  313. package/dist/eval/scorers.js +151 -0
  314. package/dist/eval/scorers.js.map +1 -0
  315. package/dist/eval/types.d.ts +150 -0
  316. package/dist/eval/types.d.ts.map +1 -0
  317. package/dist/eval/types.js +2 -0
  318. package/dist/eval/types.js.map +1 -0
  319. package/dist/execution/local.d.ts.map +1 -1
  320. package/dist/execution/local.js +6 -1
  321. package/dist/execution/local.js.map +1 -1
  322. package/dist/execution/local.test.d.ts +2 -0
  323. package/dist/execution/local.test.d.ts.map +1 -0
  324. package/dist/execution/local.test.js +37 -0
  325. package/dist/execution/local.test.js.map +1 -0
  326. package/dist/gateway/__tests__/list-survives-eviction.test.d.ts +2 -0
  327. package/dist/gateway/__tests__/list-survives-eviction.test.d.ts.map +1 -0
  328. package/dist/gateway/__tests__/list-survives-eviction.test.js +102 -0
  329. package/dist/gateway/__tests__/list-survives-eviction.test.js.map +1 -0
  330. package/dist/gateway/local.d.ts +42 -2
  331. package/dist/gateway/local.d.ts.map +1 -1
  332. package/dist/gateway/local.js +110 -3
  333. package/dist/gateway/local.js.map +1 -1
  334. package/dist/manager/agent/__tests__/dispose-cancels.test.d.ts +2 -0
  335. package/dist/manager/agent/__tests__/dispose-cancels.test.d.ts.map +1 -0
  336. package/dist/manager/agent/__tests__/dispose-cancels.test.js +88 -0
  337. package/dist/manager/agent/__tests__/dispose-cancels.test.js.map +1 -0
  338. package/dist/manager/agent/__tests__/lifecycle.test.js +230 -0
  339. package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -1
  340. package/dist/manager/agent/lifecycle.d.ts +35 -0
  341. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  342. package/dist/manager/agent/lifecycle.js +117 -7
  343. package/dist/manager/agent/lifecycle.js.map +1 -1
  344. package/dist/manager/run/persistence.d.ts +90 -1
  345. package/dist/manager/run/persistence.d.ts.map +1 -1
  346. package/dist/manager/run/persistence.js +120 -0
  347. package/dist/manager/run/persistence.js.map +1 -1
  348. package/dist/plugin/__tests__/enable-contributions.test.js +3 -3
  349. package/dist/plugin/__tests__/enable-contributions.test.js.map +1 -1
  350. package/dist/plugin/__tests__/hook-ordering.test.d.ts +2 -0
  351. package/dist/plugin/__tests__/hook-ordering.test.d.ts.map +1 -0
  352. package/dist/plugin/__tests__/hook-ordering.test.js +227 -0
  353. package/dist/plugin/__tests__/hook-ordering.test.js.map +1 -0
  354. package/dist/plugin/__tests__/install-time-refusal.test.d.ts +2 -0
  355. package/dist/plugin/__tests__/install-time-refusal.test.d.ts.map +1 -0
  356. package/dist/plugin/__tests__/install-time-refusal.test.js +49 -0
  357. package/dist/plugin/__tests__/install-time-refusal.test.js.map +1 -0
  358. package/dist/plugin/__tests__/lifecycle.test.js +95 -68
  359. package/dist/plugin/__tests__/lifecycle.test.js.map +1 -1
  360. package/dist/plugin/lifecycle.d.ts +15 -1
  361. package/dist/plugin/lifecycle.d.ts.map +1 -1
  362. package/dist/plugin/lifecycle.js +67 -20
  363. package/dist/plugin/lifecycle.js.map +1 -1
  364. package/dist/plugin/loader.d.ts +15 -0
  365. package/dist/plugin/loader.d.ts.map +1 -1
  366. package/dist/plugin/loader.js +33 -1
  367. package/dist/plugin/loader.js.map +1 -1
  368. package/dist/probe/registry.d.ts.map +1 -1
  369. package/dist/probe/registry.js +19 -1
  370. package/dist/probe/registry.js.map +1 -1
  371. package/dist/probe/registry.test.d.ts +9 -3
  372. package/dist/probe/registry.test.d.ts.map +1 -1
  373. package/dist/probe/registry.test.js +44 -6
  374. package/dist/probe/registry.test.js.map +1 -1
  375. package/dist/provider/__tests__/mock-script.test.d.ts +2 -0
  376. package/dist/provider/__tests__/mock-script.test.d.ts.map +1 -0
  377. package/dist/provider/__tests__/mock-script.test.js +151 -0
  378. package/dist/provider/__tests__/mock-script.test.js.map +1 -0
  379. package/dist/provider/__tests__/retry-visibility.test.d.ts +2 -0
  380. package/dist/provider/__tests__/retry-visibility.test.d.ts.map +1 -0
  381. package/dist/provider/__tests__/retry-visibility.test.js +137 -0
  382. package/dist/provider/__tests__/retry-visibility.test.js.map +1 -0
  383. package/dist/provider/__tests__/retry.test.d.ts +2 -0
  384. package/dist/provider/__tests__/retry.test.d.ts.map +1 -0
  385. package/dist/provider/__tests__/retry.test.js +259 -0
  386. package/dist/provider/__tests__/retry.test.js.map +1 -0
  387. package/dist/provider/capabilities.d.ts +1 -0
  388. package/dist/provider/capabilities.d.ts.map +1 -1
  389. package/dist/provider/capabilities.js +2 -0
  390. package/dist/provider/capabilities.js.map +1 -1
  391. package/dist/provider/collect.d.ts +1 -1
  392. package/dist/provider/collect.js +1 -1
  393. package/dist/provider/collect.test.d.ts +1 -1
  394. package/dist/provider/collect.test.js +1 -1
  395. package/dist/provider/index.d.ts +3 -0
  396. package/dist/provider/index.d.ts.map +1 -1
  397. package/dist/provider/index.js +2 -0
  398. package/dist/provider/index.js.map +1 -1
  399. package/dist/provider/mock-register.d.ts.map +1 -1
  400. package/dist/provider/mock-register.js +5 -2
  401. package/dist/provider/mock-register.js.map +1 -1
  402. package/dist/provider/mock.d.ts +35 -5
  403. package/dist/provider/mock.d.ts.map +1 -1
  404. package/dist/provider/mock.js +104 -32
  405. package/dist/provider/mock.js.map +1 -1
  406. package/dist/provider/retry.d.ts +42 -0
  407. package/dist/provider/retry.d.ts.map +1 -0
  408. package/dist/provider/retry.js +161 -0
  409. package/dist/provider/retry.js.map +1 -0
  410. package/dist/public-runtime.d.ts +26 -7
  411. package/dist/public-runtime.d.ts.map +1 -1
  412. package/dist/public-runtime.js +55 -7
  413. package/dist/public-runtime.js.map +1 -1
  414. package/dist/public-types.d.ts +5 -1
  415. package/dist/public-types.d.ts.map +1 -1
  416. package/dist/rag/__tests__/retrieval-math.test.d.ts +2 -0
  417. package/dist/rag/__tests__/retrieval-math.test.d.ts.map +1 -0
  418. package/dist/rag/__tests__/retrieval-math.test.js +46 -0
  419. package/dist/rag/__tests__/retrieval-math.test.js.map +1 -0
  420. package/dist/rag/chunking.d.ts +12 -0
  421. package/dist/rag/chunking.d.ts.map +1 -1
  422. package/dist/rag/chunking.js +32 -1
  423. package/dist/rag/chunking.js.map +1 -1
  424. package/dist/rag/embedding.d.ts +4 -4
  425. package/dist/rag/embedding.d.ts.map +1 -1
  426. package/dist/rag/embedding.js +23 -3
  427. package/dist/rag/embedding.js.map +1 -1
  428. package/dist/rag/embedding.test.d.ts +1 -1
  429. package/dist/rag/embedding.test.js +59 -10
  430. package/dist/rag/embedding.test.js.map +1 -1
  431. package/dist/rag/index.d.ts +1 -1
  432. package/dist/rag/index.d.ts.map +1 -1
  433. package/dist/rag/index.js +1 -1
  434. package/dist/rag/index.js.map +1 -1
  435. package/dist/rag/retriever.d.ts +0 -1
  436. package/dist/rag/retriever.d.ts.map +1 -1
  437. package/dist/rag/retriever.js +75 -22
  438. package/dist/rag/retriever.js.map +1 -1
  439. package/dist/rag/vector-store.test.d.ts +1 -1
  440. package/dist/rag/vector-store.test.js +2 -2
  441. package/dist/rag/vector-store.test.js.map +1 -1
  442. package/dist/registry/ManagedRegistry.test.d.ts +1 -1
  443. package/dist/registry/ManagedRegistry.test.js +1 -1
  444. package/dist/registry/Registry.test.d.ts +1 -1
  445. package/dist/registry/Registry.test.js +1 -1
  446. package/dist/registry/connector/definitions.test.d.ts +1 -1
  447. package/dist/registry/connector/definitions.test.js +1 -1
  448. package/dist/registry/tool/__tests__/schema.test.d.ts +2 -0
  449. package/dist/registry/tool/__tests__/schema.test.d.ts.map +1 -0
  450. package/dist/registry/tool/__tests__/schema.test.js +176 -0
  451. package/dist/registry/tool/__tests__/schema.test.js.map +1 -0
  452. package/dist/registry/tool/__tests__/tool-name-validation.test.d.ts +2 -0
  453. package/dist/registry/tool/__tests__/tool-name-validation.test.d.ts.map +1 -0
  454. package/dist/registry/tool/__tests__/tool-name-validation.test.js +70 -0
  455. package/dist/registry/tool/__tests__/tool-name-validation.test.js.map +1 -0
  456. package/dist/registry/tool/execute.d.ts +37 -0
  457. package/dist/registry/tool/execute.d.ts.map +1 -1
  458. package/dist/registry/tool/execute.js +91 -21
  459. package/dist/registry/tool/execute.js.map +1 -1
  460. package/dist/registry/tool/schema.d.ts +26 -0
  461. package/dist/registry/tool/schema.d.ts.map +1 -0
  462. package/dist/registry/tool/schema.js +77 -0
  463. package/dist/registry/tool/schema.js.map +1 -0
  464. package/dist/registry/toolset/catalog.d.ts.map +1 -1
  465. package/dist/registry/toolset/catalog.js +0 -1
  466. package/dist/registry/toolset/catalog.js.map +1 -1
  467. package/dist/registry/toolset/catalog.test.js +0 -1
  468. package/dist/registry/toolset/catalog.test.js.map +1 -1
  469. package/dist/run/reporter.d.ts.map +1 -1
  470. package/dist/run/reporter.js +76 -0
  471. package/dist/run/reporter.js.map +1 -1
  472. package/dist/runtime/bidi/__tests__/session.test.d.ts +2 -0
  473. package/dist/runtime/bidi/__tests__/session.test.d.ts.map +1 -0
  474. package/dist/runtime/bidi/__tests__/session.test.js +201 -0
  475. package/dist/runtime/bidi/__tests__/session.test.js.map +1 -0
  476. package/dist/runtime/bidi/index.d.ts +5 -0
  477. package/dist/runtime/bidi/index.d.ts.map +1 -0
  478. package/dist/runtime/bidi/index.js +3 -0
  479. package/dist/runtime/bidi/index.js.map +1 -0
  480. package/dist/runtime/bidi/mock.d.ts +34 -0
  481. package/dist/runtime/bidi/mock.d.ts.map +1 -0
  482. package/dist/runtime/bidi/mock.js +60 -0
  483. package/dist/runtime/bidi/mock.js.map +1 -0
  484. package/dist/runtime/bidi/session.d.ts +44 -0
  485. package/dist/runtime/bidi/session.d.ts.map +1 -0
  486. package/dist/runtime/bidi/session.js +154 -0
  487. package/dist/runtime/bidi/session.js.map +1 -0
  488. package/dist/runtime/decision/parser.d.ts.map +1 -1
  489. package/dist/runtime/decision/parser.js +8 -1
  490. package/dist/runtime/decision/parser.js.map +1 -1
  491. package/dist/runtime/decision/parser.test.d.ts +2 -0
  492. package/dist/runtime/decision/parser.test.d.ts.map +1 -0
  493. package/dist/runtime/decision/parser.test.js +37 -0
  494. package/dist/runtime/decision/parser.test.js.map +1 -0
  495. package/dist/runtime/query/__tests__/answer-review.test.d.ts +2 -0
  496. package/dist/runtime/query/__tests__/answer-review.test.d.ts.map +1 -0
  497. package/dist/runtime/query/__tests__/answer-review.test.js +141 -0
  498. package/dist/runtime/query/__tests__/answer-review.test.js.map +1 -0
  499. package/dist/runtime/query/__tests__/capability-negotiation.test.js +77 -105
  500. package/dist/runtime/query/__tests__/capability-negotiation.test.js.map +1 -1
  501. package/dist/runtime/query/__tests__/checkpoint-store.test.js +12 -44
  502. package/dist/runtime/query/__tests__/checkpoint-store.test.js.map +1 -1
  503. package/dist/runtime/query/__tests__/checkpoint.test.js +2 -10
  504. package/dist/runtime/query/__tests__/checkpoint.test.js.map +1 -1
  505. package/dist/runtime/query/__tests__/citations.test.d.ts +2 -0
  506. package/dist/runtime/query/__tests__/citations.test.d.ts.map +1 -0
  507. package/dist/runtime/query/__tests__/citations.test.js +85 -0
  508. package/dist/runtime/query/__tests__/citations.test.js.map +1 -0
  509. package/dist/runtime/query/__tests__/content-budget.test.d.ts +2 -0
  510. package/dist/runtime/query/__tests__/content-budget.test.d.ts.map +1 -0
  511. package/dist/runtime/query/__tests__/content-budget.test.js +69 -0
  512. package/dist/runtime/query/__tests__/content-budget.test.js.map +1 -0
  513. package/dist/runtime/query/__tests__/context.test.js +3 -2
  514. package/dist/runtime/query/__tests__/context.test.js.map +1 -1
  515. package/dist/runtime/query/__tests__/deferred-tools.test.js +21 -130
  516. package/dist/runtime/query/__tests__/deferred-tools.test.js.map +1 -1
  517. package/dist/runtime/query/__tests__/delegation-resume.test.d.ts +2 -0
  518. package/dist/runtime/query/__tests__/delegation-resume.test.d.ts.map +1 -0
  519. package/dist/runtime/query/__tests__/delegation-resume.test.js +111 -0
  520. package/dist/runtime/query/__tests__/delegation-resume.test.js.map +1 -0
  521. package/dist/runtime/query/__tests__/document-attachments.test.d.ts +2 -0
  522. package/dist/runtime/query/__tests__/document-attachments.test.d.ts.map +1 -0
  523. package/dist/runtime/query/__tests__/document-attachments.test.js +92 -0
  524. package/dist/runtime/query/__tests__/document-attachments.test.js.map +1 -0
  525. package/dist/runtime/query/__tests__/durable-park-and-trace.test.d.ts +2 -0
  526. package/dist/runtime/query/__tests__/durable-park-and-trace.test.d.ts.map +1 -0
  527. package/dist/runtime/query/__tests__/durable-park-and-trace.test.js +194 -0
  528. package/dist/runtime/query/__tests__/durable-park-and-trace.test.js.map +1 -0
  529. package/dist/runtime/query/__tests__/durable-question-park.test.d.ts +2 -0
  530. package/dist/runtime/query/__tests__/durable-question-park.test.d.ts.map +1 -0
  531. package/dist/runtime/query/__tests__/durable-question-park.test.js +253 -0
  532. package/dist/runtime/query/__tests__/durable-question-park.test.js.map +1 -0
  533. package/dist/runtime/query/__tests__/durable-run-state.test.d.ts +2 -0
  534. package/dist/runtime/query/__tests__/durable-run-state.test.d.ts.map +1 -0
  535. package/dist/runtime/query/__tests__/durable-run-state.test.js +158 -0
  536. package/dist/runtime/query/__tests__/durable-run-state.test.js.map +1 -0
  537. package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js +24 -20
  538. package/dist/runtime/query/__tests__/executor-plugin-hooks.test.js.map +1 -1
  539. package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.d.ts +2 -0
  540. package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.d.ts.map +1 -0
  541. package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.js +187 -0
  542. package/dist/runtime/query/__tests__/finish-reason-vs-tool-calls.test.js.map +1 -0
  543. package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.d.ts +2 -0
  544. package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.d.ts.map +1 -0
  545. package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.js +95 -0
  546. package/dist/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.js.map +1 -0
  547. package/dist/runtime/query/__tests__/guardrails-e2e.test.d.ts +2 -0
  548. package/dist/runtime/query/__tests__/guardrails-e2e.test.d.ts.map +1 -0
  549. package/dist/runtime/query/__tests__/guardrails-e2e.test.js +132 -0
  550. package/dist/runtime/query/__tests__/guardrails-e2e.test.js.map +1 -0
  551. package/dist/runtime/query/__tests__/guardrails.test.d.ts +2 -0
  552. package/dist/runtime/query/__tests__/guardrails.test.d.ts.map +1 -0
  553. package/dist/runtime/query/__tests__/guardrails.test.js +163 -0
  554. package/dist/runtime/query/__tests__/guardrails.test.js.map +1 -0
  555. package/dist/runtime/query/__tests__/hook-model-visibility.test.d.ts +2 -0
  556. package/dist/runtime/query/__tests__/hook-model-visibility.test.d.ts.map +1 -0
  557. package/dist/runtime/query/__tests__/hook-model-visibility.test.js +119 -0
  558. package/dist/runtime/query/__tests__/hook-model-visibility.test.js.map +1 -0
  559. package/dist/runtime/query/__tests__/long-document-flow.test.js +9 -2
  560. package/dist/runtime/query/__tests__/long-document-flow.test.js.map +1 -1
  561. package/dist/runtime/query/__tests__/memory-promotion.test.d.ts +2 -0
  562. package/dist/runtime/query/__tests__/memory-promotion.test.d.ts.map +1 -0
  563. package/dist/runtime/query/__tests__/memory-promotion.test.js +119 -0
  564. package/dist/runtime/query/__tests__/memory-promotion.test.js.map +1 -0
  565. package/dist/runtime/query/__tests__/orphan-task-turn-end.test.js +5 -27
  566. package/dist/runtime/query/__tests__/orphan-task-turn-end.test.js.map +1 -1
  567. package/dist/runtime/query/__tests__/overflow-relief.test.d.ts +2 -0
  568. package/dist/runtime/query/__tests__/overflow-relief.test.d.ts.map +1 -0
  569. package/dist/runtime/query/__tests__/overflow-relief.test.js +119 -0
  570. package/dist/runtime/query/__tests__/overflow-relief.test.js.map +1 -0
  571. package/dist/runtime/query/__tests__/partial-batch-resume.test.d.ts +2 -0
  572. package/dist/runtime/query/__tests__/partial-batch-resume.test.d.ts.map +1 -0
  573. package/dist/runtime/query/__tests__/partial-batch-resume.test.js +205 -0
  574. package/dist/runtime/query/__tests__/partial-batch-resume.test.js.map +1 -0
  575. package/dist/runtime/query/__tests__/plugin-hooks.test.js +0 -1
  576. package/dist/runtime/query/__tests__/plugin-hooks.test.js.map +1 -1
  577. package/dist/runtime/query/__tests__/prepare-step-chain.test.d.ts +2 -0
  578. package/dist/runtime/query/__tests__/prepare-step-chain.test.d.ts.map +1 -0
  579. package/dist/runtime/query/__tests__/prepare-step-chain.test.js +104 -0
  580. package/dist/runtime/query/__tests__/prepare-step-chain.test.js.map +1 -0
  581. package/dist/runtime/query/__tests__/prepare-step.test.d.ts +2 -0
  582. package/dist/runtime/query/__tests__/prepare-step.test.d.ts.map +1 -0
  583. package/dist/runtime/query/__tests__/prepare-step.test.js +194 -0
  584. package/dist/runtime/query/__tests__/prepare-step.test.js.map +1 -0
  585. package/dist/runtime/query/__tests__/probe-veto-is-error.test.d.ts +2 -0
  586. package/dist/runtime/query/__tests__/probe-veto-is-error.test.d.ts.map +1 -0
  587. package/dist/runtime/query/__tests__/probe-veto-is-error.test.js +111 -0
  588. package/dist/runtime/query/__tests__/probe-veto-is-error.test.js.map +1 -0
  589. package/dist/runtime/query/__tests__/prompt.test.js +1 -1
  590. package/dist/runtime/query/__tests__/prompt.test.js.map +1 -1
  591. package/dist/runtime/query/__tests__/provider-fault-pauses.test.d.ts +2 -0
  592. package/dist/runtime/query/__tests__/provider-fault-pauses.test.d.ts.map +1 -0
  593. package/dist/runtime/query/__tests__/provider-fault-pauses.test.js +86 -0
  594. package/dist/runtime/query/__tests__/provider-fault-pauses.test.js.map +1 -0
  595. package/dist/runtime/query/__tests__/reasoning-stream.test.d.ts +2 -0
  596. package/dist/runtime/query/__tests__/reasoning-stream.test.d.ts.map +1 -0
  597. package/dist/runtime/query/__tests__/reasoning-stream.test.js +146 -0
  598. package/dist/runtime/query/__tests__/reasoning-stream.test.js.map +1 -0
  599. package/dist/runtime/query/__tests__/recoverable-settle.test.d.ts +2 -0
  600. package/dist/runtime/query/__tests__/recoverable-settle.test.d.ts.map +1 -0
  601. package/dist/runtime/query/__tests__/recoverable-settle.test.js +119 -0
  602. package/dist/runtime/query/__tests__/recoverable-settle.test.js.map +1 -0
  603. package/dist/runtime/query/__tests__/resume-budget.test.d.ts +2 -0
  604. package/dist/runtime/query/__tests__/resume-budget.test.d.ts.map +1 -0
  605. package/dist/runtime/query/__tests__/resume-budget.test.js +130 -0
  606. package/dist/runtime/query/__tests__/resume-budget.test.js.map +1 -0
  607. package/dist/runtime/query/__tests__/resume-pending.test.d.ts +2 -0
  608. package/dist/runtime/query/__tests__/resume-pending.test.d.ts.map +1 -0
  609. package/dist/runtime/query/__tests__/resume-pending.test.js +226 -0
  610. package/dist/runtime/query/__tests__/resume-pending.test.js.map +1 -0
  611. package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.d.ts +2 -0
  612. package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.d.ts.map +1 -0
  613. package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.js +89 -0
  614. package/dist/runtime/query/__tests__/rich-content-budget-wiring.test.js.map +1 -0
  615. package/dist/runtime/query/__tests__/stop-condition.test.d.ts +2 -0
  616. package/dist/runtime/query/__tests__/stop-condition.test.d.ts.map +1 -0
  617. package/dist/runtime/query/__tests__/stop-condition.test.js +205 -0
  618. package/dist/runtime/query/__tests__/stop-condition.test.js.map +1 -0
  619. package/dist/runtime/query/__tests__/structured-output.test.d.ts +2 -0
  620. package/dist/runtime/query/__tests__/structured-output.test.d.ts.map +1 -0
  621. package/dist/runtime/query/__tests__/structured-output.test.js +219 -0
  622. package/dist/runtime/query/__tests__/structured-output.test.js.map +1 -0
  623. package/dist/runtime/query/__tests__/structured-run-failure.test.d.ts +2 -0
  624. package/dist/runtime/query/__tests__/structured-run-failure.test.d.ts.map +1 -0
  625. package/dist/runtime/query/__tests__/structured-run-failure.test.js +117 -0
  626. package/dist/runtime/query/__tests__/structured-run-failure.test.js.map +1 -0
  627. package/dist/runtime/query/__tests__/terminal-tool.test.d.ts +2 -0
  628. package/dist/runtime/query/__tests__/terminal-tool.test.d.ts.map +1 -0
  629. package/dist/runtime/query/__tests__/terminal-tool.test.js +119 -0
  630. package/dist/runtime/query/__tests__/terminal-tool.test.js.map +1 -0
  631. package/dist/runtime/query/__tests__/tool-grants.test.d.ts +2 -0
  632. package/dist/runtime/query/__tests__/tool-grants.test.d.ts.map +1 -0
  633. package/dist/runtime/query/__tests__/tool-grants.test.js +85 -0
  634. package/dist/runtime/query/__tests__/tool-grants.test.js.map +1 -0
  635. package/dist/runtime/query/__tests__/tool-output-budget.test.d.ts +2 -0
  636. package/dist/runtime/query/__tests__/tool-output-budget.test.d.ts.map +1 -0
  637. package/dist/runtime/query/__tests__/tool-output-budget.test.js +0 -0
  638. package/dist/runtime/query/__tests__/tool-output-budget.test.js.map +1 -0
  639. package/dist/runtime/query/__tests__/tool-pause.test.d.ts +2 -0
  640. package/dist/runtime/query/__tests__/tool-pause.test.d.ts.map +1 -0
  641. package/dist/runtime/query/__tests__/tool-pause.test.js +165 -0
  642. package/dist/runtime/query/__tests__/tool-pause.test.js.map +1 -0
  643. package/dist/runtime/query/__tests__/tool-progress.test.d.ts +2 -0
  644. package/dist/runtime/query/__tests__/tool-progress.test.d.ts.map +1 -0
  645. package/dist/runtime/query/__tests__/tool-progress.test.js +122 -0
  646. package/dist/runtime/query/__tests__/tool-progress.test.js.map +1 -0
  647. package/dist/runtime/query/__tests__/tool-repair-retry.test.d.ts +2 -0
  648. package/dist/runtime/query/__tests__/tool-repair-retry.test.d.ts.map +1 -0
  649. package/dist/runtime/query/__tests__/tool-repair-retry.test.js +196 -0
  650. package/dist/runtime/query/__tests__/tool-repair-retry.test.js.map +1 -0
  651. package/dist/runtime/query/__tests__/tool-result-wire.test.d.ts +2 -0
  652. package/dist/runtime/query/__tests__/tool-result-wire.test.d.ts.map +1 -0
  653. package/dist/runtime/query/__tests__/tool-result-wire.test.js +106 -0
  654. package/dist/runtime/query/__tests__/tool-result-wire.test.js.map +1 -0
  655. package/dist/runtime/query/__tests__/tool-timeout.test.d.ts +2 -0
  656. package/dist/runtime/query/__tests__/tool-timeout.test.d.ts.map +1 -0
  657. package/dist/runtime/query/__tests__/tool-timeout.test.js +184 -0
  658. package/dist/runtime/query/__tests__/tool-timeout.test.js.map +1 -0
  659. package/dist/runtime/query/__tests__/trace-parenting.test.d.ts +2 -0
  660. package/dist/runtime/query/__tests__/trace-parenting.test.d.ts.map +1 -0
  661. package/dist/runtime/query/__tests__/trace-parenting.test.js +111 -0
  662. package/dist/runtime/query/__tests__/trace-parenting.test.js.map +1 -0
  663. package/dist/runtime/query/__tests__/wiring-seams.test.d.ts +2 -0
  664. package/dist/runtime/query/__tests__/wiring-seams.test.d.ts.map +1 -0
  665. package/dist/runtime/query/__tests__/wiring-seams.test.js +237 -0
  666. package/dist/runtime/query/__tests__/wiring-seams.test.js.map +1 -0
  667. package/dist/runtime/query/checkpoint.d.ts +124 -6
  668. package/dist/runtime/query/checkpoint.d.ts.map +1 -1
  669. package/dist/runtime/query/checkpoint.js +207 -6
  670. package/dist/runtime/query/checkpoint.js.map +1 -1
  671. package/dist/runtime/query/events.js +2 -2
  672. package/dist/runtime/query/events.js.map +1 -1
  673. package/dist/runtime/query/executor.d.ts +225 -7
  674. package/dist/runtime/query/executor.d.ts.map +1 -1
  675. package/dist/runtime/query/executor.js +672 -36
  676. package/dist/runtime/query/executor.js.map +1 -1
  677. package/dist/runtime/query/guard.d.ts +18 -0
  678. package/dist/runtime/query/guard.d.ts.map +1 -1
  679. package/dist/runtime/query/guard.js +16 -1
  680. package/dist/runtime/query/guard.js.map +1 -1
  681. package/dist/runtime/query/guardrail-presets.d.ts +36 -0
  682. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -0
  683. package/dist/runtime/query/guardrail-presets.js +96 -0
  684. package/dist/runtime/query/guardrail-presets.js.map +1 -0
  685. package/dist/runtime/query/guardrails.d.ts +35 -0
  686. package/dist/runtime/query/guardrails.d.ts.map +1 -0
  687. package/dist/runtime/query/guardrails.js +102 -0
  688. package/dist/runtime/query/guardrails.js.map +1 -0
  689. package/dist/runtime/query/index.d.ts +213 -2
  690. package/dist/runtime/query/index.d.ts.map +1 -1
  691. package/dist/runtime/query/index.js +458 -10
  692. package/dist/runtime/query/index.js.map +1 -1
  693. package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.d.ts +2 -0
  694. package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.d.ts.map +1 -0
  695. package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.js +131 -0
  696. package/dist/runtime/query/iteration/__tests__/cancel-settles-turn.test.js.map +1 -0
  697. package/dist/runtime/query/iteration/index.d.ts +76 -1
  698. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  699. package/dist/runtime/query/iteration/index.js +594 -29
  700. package/dist/runtime/query/iteration/index.js.map +1 -1
  701. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -1
  702. package/dist/runtime/query/iteration/phases/advisory.js +14 -2
  703. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -1
  704. package/dist/runtime/query/iteration/phases/advisory.test.d.ts +1 -1
  705. package/dist/runtime/query/iteration/phases/advisory.test.js +4 -1
  706. package/dist/runtime/query/iteration/phases/advisory.test.js.map +1 -1
  707. package/dist/runtime/query/iteration/phases/checkpoint.js +2 -2
  708. package/dist/runtime/query/iteration/phases/checkpoint.js.map +1 -1
  709. package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.js +1 -1
  710. package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.js.map +1 -1
  711. package/dist/runtime/query/iteration/phases/compaction.d.ts +22 -1
  712. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  713. package/dist/runtime/query/iteration/phases/compaction.js +297 -64
  714. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  715. package/dist/runtime/query/iteration/phases/context-measurement.test.d.ts +21 -0
  716. package/dist/runtime/query/iteration/phases/context-measurement.test.d.ts.map +1 -0
  717. package/dist/runtime/query/iteration/phases/context-measurement.test.js +161 -0
  718. package/dist/runtime/query/iteration/phases/context-measurement.test.js.map +1 -0
  719. package/dist/runtime/query/iteration/phases/context.d.ts +62 -2
  720. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  721. package/dist/runtime/query/iteration/phases/context.js +87 -0
  722. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  723. package/dist/runtime/query/iteration/phases/hitl-answer-question.test.js +3 -1
  724. package/dist/runtime/query/iteration/phases/hitl-answer-question.test.js.map +1 -1
  725. package/dist/runtime/query/iteration/phases/overflow-escalation.test.d.ts +15 -0
  726. package/dist/runtime/query/iteration/phases/overflow-escalation.test.d.ts.map +1 -0
  727. package/dist/runtime/query/iteration/phases/overflow-escalation.test.js +130 -0
  728. package/dist/runtime/query/iteration/phases/overflow-escalation.test.js.map +1 -0
  729. package/dist/runtime/query/iteration/phases/plan.d.ts.map +1 -1
  730. package/dist/runtime/query/iteration/phases/plan.js +8 -2
  731. package/dist/runtime/query/iteration/phases/plan.js.map +1 -1
  732. package/dist/runtime/query/iteration/phases/retained-messages.test.d.ts +2 -0
  733. package/dist/runtime/query/iteration/phases/retained-messages.test.d.ts.map +1 -0
  734. package/dist/runtime/query/iteration/phases/retained-messages.test.js +180 -0
  735. package/dist/runtime/query/iteration/phases/retained-messages.test.js.map +1 -0
  736. package/dist/runtime/query/iteration/phases/tool-review-denials.test.d.ts +2 -0
  737. package/dist/runtime/query/iteration/phases/tool-review-denials.test.d.ts.map +1 -0
  738. package/dist/runtime/query/iteration/phases/tool-review-denials.test.js +224 -0
  739. package/dist/runtime/query/iteration/phases/tool-review-denials.test.js.map +1 -0
  740. package/dist/runtime/query/iteration/phases/tool-review.d.ts +29 -1
  741. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  742. package/dist/runtime/query/iteration/phases/tool-review.js +114 -44
  743. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  744. package/dist/runtime/query/iteration/phases/working-memory-compaction.test.js +20 -9
  745. package/dist/runtime/query/iteration/phases/working-memory-compaction.test.js.map +1 -1
  746. package/dist/runtime/query/iteration/stream-turn.d.ts +2 -26
  747. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  748. package/dist/runtime/query/iteration/stream-turn.js +254 -16
  749. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  750. package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
  751. package/dist/runtime/query/plugin-hooks.js +6 -2
  752. package/dist/runtime/query/plugin-hooks.js.map +1 -1
  753. package/dist/runtime/query/prompt.d.ts.map +1 -1
  754. package/dist/runtime/query/prompt.js +25 -1
  755. package/dist/runtime/query/prompt.js.map +1 -1
  756. package/dist/runtime/query/question-park.d.ts +85 -0
  757. package/dist/runtime/query/question-park.d.ts.map +1 -0
  758. package/dist/runtime/query/question-park.js +71 -0
  759. package/dist/runtime/query/question-park.js.map +1 -0
  760. package/dist/runtime/query/result.d.ts +9 -0
  761. package/dist/runtime/query/result.d.ts.map +1 -1
  762. package/dist/runtime/query/result.js +49 -0
  763. package/dist/runtime/query/result.js.map +1 -1
  764. package/dist/runtime/query/resume-pending.d.ts +106 -0
  765. package/dist/runtime/query/resume-pending.d.ts.map +1 -0
  766. package/dist/runtime/query/resume-pending.js +312 -0
  767. package/dist/runtime/query/resume-pending.js.map +1 -0
  768. package/dist/runtime/query/run-state.d.ts +52 -0
  769. package/dist/runtime/query/run-state.d.ts.map +1 -0
  770. package/dist/runtime/query/run-state.js +87 -0
  771. package/dist/runtime/query/run-state.js.map +1 -0
  772. package/dist/runtime/query/tool-grants.d.ts +44 -0
  773. package/dist/runtime/query/tool-grants.d.ts.map +1 -0
  774. package/dist/runtime/query/tool-grants.js +63 -0
  775. package/dist/runtime/query/tool-grants.js.map +1 -0
  776. package/dist/runtime/query/tool-output-budget.d.ts +83 -0
  777. package/dist/runtime/query/tool-output-budget.d.ts.map +1 -0
  778. package/dist/runtime/query/tool-output-budget.js +147 -0
  779. package/dist/runtime/query/tool-output-budget.js.map +1 -0
  780. package/dist/runtime/query/tool-pause.d.ts +41 -0
  781. package/dist/runtime/query/tool-pause.d.ts.map +1 -0
  782. package/dist/runtime/query/tool-pause.js +94 -0
  783. package/dist/runtime/query/tool-pause.js.map +1 -0
  784. package/dist/runtime/query/tooling.d.ts +10 -1
  785. package/dist/runtime/query/tooling.d.ts.map +1 -1
  786. package/dist/runtime/query/tooling.js +13 -0
  787. package/dist/runtime/query/tooling.js.map +1 -1
  788. package/dist/sandbox/__tests__/isolation.test.d.ts +2 -0
  789. package/dist/sandbox/__tests__/isolation.test.d.ts.map +1 -0
  790. package/dist/sandbox/__tests__/isolation.test.js +139 -0
  791. package/dist/sandbox/__tests__/isolation.test.js.map +1 -0
  792. package/dist/sandbox/__tests__/output-truncation.test.d.ts +2 -0
  793. package/dist/sandbox/__tests__/output-truncation.test.d.ts.map +1 -0
  794. package/dist/sandbox/__tests__/output-truncation.test.js +88 -0
  795. package/dist/sandbox/__tests__/output-truncation.test.js.map +1 -0
  796. package/dist/sandbox/__tests__/resource-limits.test.d.ts +2 -0
  797. package/dist/sandbox/__tests__/resource-limits.test.d.ts.map +1 -0
  798. package/dist/sandbox/__tests__/resource-limits.test.js +86 -0
  799. package/dist/sandbox/__tests__/resource-limits.test.js.map +1 -0
  800. package/dist/sandbox/factory.js +1 -1
  801. package/dist/sandbox/factory.js.map +1 -1
  802. package/dist/sandbox/index.d.ts +2 -0
  803. package/dist/sandbox/index.d.ts.map +1 -1
  804. package/dist/sandbox/index.js +1 -0
  805. package/dist/sandbox/index.js.map +1 -1
  806. package/dist/sandbox/isolation.d.ts +15 -0
  807. package/dist/sandbox/isolation.d.ts.map +1 -0
  808. package/dist/sandbox/isolation.js +53 -0
  809. package/dist/sandbox/isolation.js.map +1 -0
  810. package/dist/sandbox/provider/local.d.ts +51 -2
  811. package/dist/sandbox/provider/local.d.ts.map +1 -1
  812. package/dist/sandbox/provider/local.js +139 -69
  813. package/dist/sandbox/provider/local.js.map +1 -1
  814. package/dist/session/__tests__/integration/spawn-rollback.test.d.ts +1 -1
  815. package/dist/session/__tests__/integration/spawn-rollback.test.js +1 -1
  816. package/dist/session/handoff/broadcast.js +3 -3
  817. package/dist/session/handoff/broadcast.js.map +1 -1
  818. package/dist/session/migration/__tests__/filesystem.test.js +5 -1
  819. package/dist/session/migration/__tests__/filesystem.test.js.map +1 -1
  820. package/dist/session/migration/filesystem.d.ts.map +1 -1
  821. package/dist/session/migration/filesystem.js +7 -13
  822. package/dist/session/migration/filesystem.js.map +1 -1
  823. package/dist/session/migration/marker.d.ts.map +1 -1
  824. package/dist/session/migration/marker.js +5 -10
  825. package/dist/session/migration/marker.js.map +1 -1
  826. package/dist/session/retention/disk-backend.d.ts.map +1 -1
  827. package/dist/session/retention/disk-backend.js +5 -12
  828. package/dist/session/retention/disk-backend.js.map +1 -1
  829. package/dist/session/workspace/__tests__/git-worktree.test.js +6 -2
  830. package/dist/session/workspace/__tests__/git-worktree.test.js.map +1 -1
  831. package/dist/session/workspace/__tests__/shared-run.test.js +15 -0
  832. package/dist/session/workspace/__tests__/shared-run.test.js.map +1 -1
  833. package/dist/session/workspace/shared-run.js +8 -1
  834. package/dist/session/workspace/shared-run.js.map +1 -1
  835. package/dist/skills/__tests__/frontmatter.test.d.ts +2 -0
  836. package/dist/skills/__tests__/frontmatter.test.d.ts.map +1 -0
  837. package/dist/skills/__tests__/frontmatter.test.js +106 -0
  838. package/dist/skills/__tests__/frontmatter.test.js.map +1 -0
  839. package/dist/skills/loader.d.ts.map +1 -1
  840. package/dist/skills/loader.js +42 -3
  841. package/dist/skills/loader.js.map +1 -1
  842. package/dist/store/__tests__/checkpoint-integrity.test.d.ts +2 -0
  843. package/dist/store/__tests__/checkpoint-integrity.test.d.ts.map +1 -0
  844. package/dist/store/__tests__/checkpoint-integrity.test.js +112 -0
  845. package/dist/store/__tests__/checkpoint-integrity.test.js.map +1 -0
  846. package/dist/store/__tests__/checkpoint-versioning.test.d.ts +2 -0
  847. package/dist/store/__tests__/checkpoint-versioning.test.d.ts.map +1 -0
  848. package/dist/store/__tests__/checkpoint-versioning.test.js +151 -0
  849. package/dist/store/__tests__/checkpoint-versioning.test.js.map +1 -0
  850. package/dist/store/__tests__/schema-adoption.test.d.ts +2 -0
  851. package/dist/store/__tests__/schema-adoption.test.d.ts.map +1 -0
  852. package/dist/store/__tests__/schema-adoption.test.js +90 -0
  853. package/dist/store/__tests__/schema-adoption.test.js.map +1 -0
  854. package/dist/store/__tests__/schema.test.d.ts +2 -0
  855. package/dist/store/__tests__/schema.test.d.ts.map +1 -0
  856. package/dist/store/__tests__/schema.test.js +93 -0
  857. package/dist/store/__tests__/schema.test.js.map +1 -0
  858. package/dist/store/memory/disk.d.ts.map +1 -1
  859. package/dist/store/memory/disk.js +16 -16
  860. package/dist/store/memory/disk.js.map +1 -1
  861. package/dist/store/run/disk.d.ts +23 -0
  862. package/dist/store/run/disk.d.ts.map +1 -1
  863. package/dist/store/run/disk.js +148 -23
  864. package/dist/store/run/disk.js.map +1 -1
  865. package/dist/store/schema.d.ts +73 -0
  866. package/dist/store/schema.d.ts.map +1 -0
  867. package/dist/store/schema.js +103 -0
  868. package/dist/store/schema.js.map +1 -0
  869. package/dist/store/session/disk.d.ts.map +1 -1
  870. package/dist/store/session/disk.js +25 -13
  871. package/dist/store/session/disk.js.map +1 -1
  872. package/dist/store/task/__tests__/lookup-across-runs.test.d.ts +2 -0
  873. package/dist/store/task/__tests__/lookup-across-runs.test.d.ts.map +1 -0
  874. package/dist/store/task/__tests__/lookup-across-runs.test.js +60 -0
  875. package/dist/store/task/__tests__/lookup-across-runs.test.js.map +1 -0
  876. package/dist/store/task/disk.d.ts +18 -0
  877. package/dist/store/task/disk.d.ts.map +1 -1
  878. package/dist/store/task/disk.js +61 -16
  879. package/dist/store/task/disk.js.map +1 -1
  880. package/dist/store/thread/disk.d.ts.map +1 -1
  881. package/dist/store/thread/disk.js +20 -11
  882. package/dist/store/thread/disk.js.map +1 -1
  883. package/dist/streaming/coalesce.d.ts +1 -1
  884. package/dist/streaming/coalesce.js +1 -1
  885. package/dist/telemetry/__tests__/latency-instruments.test.d.ts +2 -0
  886. package/dist/telemetry/__tests__/latency-instruments.test.d.ts.map +1 -0
  887. package/dist/telemetry/__tests__/latency-instruments.test.js +82 -0
  888. package/dist/telemetry/__tests__/latency-instruments.test.js.map +1 -0
  889. package/dist/telemetry/__tests__/metrics.test.d.ts +2 -0
  890. package/dist/telemetry/__tests__/metrics.test.d.ts.map +1 -0
  891. package/dist/telemetry/__tests__/metrics.test.js +112 -0
  892. package/dist/telemetry/__tests__/metrics.test.js.map +1 -0
  893. package/dist/telemetry/__tests__/span-hierarchy.test.d.ts +2 -0
  894. package/dist/telemetry/__tests__/span-hierarchy.test.d.ts.map +1 -0
  895. package/dist/telemetry/__tests__/span-hierarchy.test.js +84 -0
  896. package/dist/telemetry/__tests__/span-hierarchy.test.js.map +1 -0
  897. package/dist/telemetry/attributes.d.ts +44 -0
  898. package/dist/telemetry/attributes.d.ts.map +1 -1
  899. package/dist/telemetry/attributes.js +80 -0
  900. package/dist/telemetry/attributes.js.map +1 -1
  901. package/dist/telemetry/metrics.d.ts +41 -0
  902. package/dist/telemetry/metrics.d.ts.map +1 -0
  903. package/dist/telemetry/metrics.js +160 -0
  904. package/dist/telemetry/metrics.js.map +1 -0
  905. package/dist/test-setup.d.ts +3 -3
  906. package/dist/test-setup.js +3 -3
  907. package/dist/test-support/paths.d.ts +14 -0
  908. package/dist/test-support/paths.d.ts.map +1 -0
  909. package/dist/test-support/paths.js +16 -0
  910. package/dist/test-support/paths.js.map +1 -0
  911. package/dist/tools/__tests__/path-containment.test.d.ts +2 -0
  912. package/dist/tools/__tests__/path-containment.test.d.ts.map +1 -0
  913. package/dist/tools/__tests__/path-containment.test.js +133 -0
  914. package/dist/tools/__tests__/path-containment.test.js.map +1 -0
  915. package/dist/tools/__tests__/posix-path.test.d.ts +2 -0
  916. package/dist/tools/__tests__/posix-path.test.d.ts.map +1 -0
  917. package/dist/tools/__tests__/posix-path.test.js +67 -0
  918. package/dist/tools/__tests__/posix-path.test.js.map +1 -0
  919. package/dist/tools/__tests__/sandboxed-search.test.d.ts +2 -0
  920. package/dist/tools/__tests__/sandboxed-search.test.d.ts.map +1 -0
  921. package/dist/tools/__tests__/sandboxed-search.test.js +114 -0
  922. package/dist/tools/__tests__/sandboxed-search.test.js.map +1 -0
  923. package/dist/tools/builtins/__tests__/computer-use.test.js +12 -2
  924. package/dist/tools/builtins/__tests__/computer-use.test.js.map +1 -1
  925. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.d.ts +2 -0
  926. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.d.ts.map +1 -0
  927. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.js +78 -0
  928. package/dist/tools/builtins/__tests__/edit-commits-atomically.test.js.map +1 -0
  929. package/dist/tools/builtins/__tests__/edit.test.js +52 -17
  930. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
  931. package/dist/tools/builtins/__tests__/payload-budget.test.js +16 -30
  932. package/dist/tools/builtins/__tests__/payload-budget.test.js.map +1 -1
  933. package/dist/tools/builtins/__tests__/read-file.test.js +23 -1
  934. package/dist/tools/builtins/__tests__/read-file.test.js.map +1 -1
  935. package/dist/tools/builtins/__tests__/stale-file-refusal.test.d.ts +2 -0
  936. package/dist/tools/builtins/__tests__/stale-file-refusal.test.d.ts.map +1 -0
  937. package/dist/tools/builtins/__tests__/stale-file-refusal.test.js +187 -0
  938. package/dist/tools/builtins/__tests__/stale-file-refusal.test.js.map +1 -0
  939. package/dist/tools/builtins/__tests__/write-file.test.js +13 -37
  940. package/dist/tools/builtins/__tests__/write-file.test.js.map +1 -1
  941. package/dist/tools/builtins/atomic-write-file.d.ts +1 -1
  942. package/dist/tools/builtins/atomic-write-file.d.ts.map +1 -1
  943. package/dist/tools/builtins/atomic-write-file.js +31 -2
  944. package/dist/tools/builtins/atomic-write-file.js.map +1 -1
  945. package/dist/tools/builtins/bash.d.ts.map +1 -1
  946. package/dist/tools/builtins/bash.js +33 -4
  947. package/dist/tools/builtins/bash.js.map +1 -1
  948. package/dist/tools/builtins/computer-use.d.ts +22 -22
  949. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  950. package/dist/tools/builtins/computer-use.js +7 -1
  951. package/dist/tools/builtins/computer-use.js.map +1 -1
  952. package/dist/tools/builtins/content-fingerprint.d.ts +23 -0
  953. package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -0
  954. package/dist/tools/builtins/content-fingerprint.js +30 -0
  955. package/dist/tools/builtins/content-fingerprint.js.map +1 -0
  956. package/dist/tools/builtins/edit.d.ts +5 -2
  957. package/dist/tools/builtins/edit.d.ts.map +1 -1
  958. package/dist/tools/builtins/edit.js +218 -57
  959. package/dist/tools/builtins/edit.js.map +1 -1
  960. package/dist/tools/builtins/glob.d.ts +1 -1
  961. package/dist/tools/builtins/glob.d.ts.map +1 -1
  962. package/dist/tools/builtins/glob.js +63 -6
  963. package/dist/tools/builtins/glob.js.map +1 -1
  964. package/dist/tools/builtins/grep.d.ts.map +1 -1
  965. package/dist/tools/builtins/grep.js +61 -8
  966. package/dist/tools/builtins/grep.js.map +1 -1
  967. package/dist/tools/builtins/index.js +6 -6
  968. package/dist/tools/builtins/index.js.map +1 -1
  969. package/dist/tools/builtins/ls.d.ts.map +1 -1
  970. package/dist/tools/builtins/ls.js +4 -2
  971. package/dist/tools/builtins/ls.js.map +1 -1
  972. package/dist/tools/builtins/read-file.d.ts +1 -1
  973. package/dist/tools/builtins/read-file.d.ts.map +1 -1
  974. package/dist/tools/builtins/read-file.js +43 -6
  975. package/dist/tools/builtins/read-file.js.map +1 -1
  976. package/dist/tools/builtins/write-file.d.ts +2 -1
  977. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  978. package/dist/tools/builtins/write-file.js +47 -25
  979. package/dist/tools/builtins/write-file.js.map +1 -1
  980. package/dist/tools/coordinator/__tests__/agent.test.d.ts +1 -1
  981. package/dist/tools/coordinator/__tests__/agent.test.js +2 -2
  982. package/dist/tools/coordinator/__tests__/agent.test.js.map +1 -1
  983. package/dist/tools/coordinator/__tests__/ask-user-question.test.js +55 -0
  984. package/dist/tools/coordinator/__tests__/ask-user-question.test.js.map +1 -1
  985. package/dist/tools/coordinator/agent.d.ts +20 -9
  986. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  987. package/dist/tools/coordinator/agent.js +2 -1
  988. package/dist/tools/coordinator/agent.js.map +1 -1
  989. package/dist/tools/coordinator/index.d.ts +20 -0
  990. package/dist/tools/coordinator/index.d.ts.map +1 -1
  991. package/dist/tools/coordinator/index.js +142 -36
  992. package/dist/tools/coordinator/index.js.map +1 -1
  993. package/dist/tools/defineTool.d.ts +16 -0
  994. package/dist/tools/defineTool.d.ts.map +1 -1
  995. package/dist/tools/defineTool.js +4 -0
  996. package/dist/tools/defineTool.js.map +1 -1
  997. package/dist/tools/glob-match.d.ts +18 -0
  998. package/dist/tools/glob-match.d.ts.map +1 -0
  999. package/dist/tools/glob-match.js +50 -0
  1000. package/dist/tools/glob-match.js.map +1 -0
  1001. package/dist/tools/paths.d.ts +20 -0
  1002. package/dist/tools/paths.d.ts.map +1 -0
  1003. package/dist/tools/paths.js +41 -0
  1004. package/dist/tools/paths.js.map +1 -0
  1005. package/dist/tools/posix-path.d.ts +24 -0
  1006. package/dist/tools/posix-path.d.ts.map +1 -0
  1007. package/dist/tools/posix-path.js +67 -0
  1008. package/dist/tools/posix-path.js.map +1 -0
  1009. package/dist/types/advisory/config.d.ts +21 -3
  1010. package/dist/types/advisory/config.d.ts.map +1 -1
  1011. package/dist/types/advisory/result.d.ts +12 -10
  1012. package/dist/types/advisory/result.d.ts.map +1 -1
  1013. package/dist/types/agent/base.d.ts +20 -2
  1014. package/dist/types/agent/base.d.ts.map +1 -1
  1015. package/dist/types/agent/factory.d.ts +15 -9
  1016. package/dist/types/agent/factory.d.ts.map +1 -1
  1017. package/dist/types/agent/gateway.d.ts +18 -0
  1018. package/dist/types/agent/gateway.d.ts.map +1 -1
  1019. package/dist/types/agent/manager.d.ts +19 -0
  1020. package/dist/types/agent/manager.d.ts.map +1 -1
  1021. package/dist/types/agent/reactive.d.ts +48 -0
  1022. package/dist/types/agent/reactive.d.ts.map +1 -1
  1023. package/dist/types/agent/router.d.ts +11 -0
  1024. package/dist/types/agent/router.d.ts.map +1 -1
  1025. package/dist/types/agent/supervisor.d.ts +2 -2
  1026. package/dist/types/agent/task.d.ts +24 -0
  1027. package/dist/types/agent/task.d.ts.map +1 -1
  1028. package/dist/types/bidi/index.d.ts +140 -0
  1029. package/dist/types/bidi/index.d.ts.map +1 -0
  1030. package/dist/types/bidi/index.js +2 -0
  1031. package/dist/types/bidi/index.js.map +1 -0
  1032. package/dist/types/common/__tests__/numeric-correctness.test.d.ts +2 -0
  1033. package/dist/types/common/__tests__/numeric-correctness.test.d.ts.map +1 -0
  1034. package/dist/types/common/__tests__/numeric-correctness.test.js +108 -0
  1035. package/dist/types/common/__tests__/numeric-correctness.test.js.map +1 -0
  1036. package/dist/types/common/index.d.ts +1 -1
  1037. package/dist/types/common/index.d.ts.map +1 -1
  1038. package/dist/types/common/index.js +15 -4
  1039. package/dist/types/common/index.js.map +1 -1
  1040. package/dist/types/connector/mcp.d.ts +29 -0
  1041. package/dist/types/connector/mcp.d.ts.map +1 -1
  1042. package/dist/types/errors/__tests__/catalog.test.d.ts +2 -0
  1043. package/dist/types/errors/__tests__/catalog.test.d.ts.map +1 -0
  1044. package/dist/types/errors/__tests__/catalog.test.js +106 -0
  1045. package/dist/types/errors/__tests__/catalog.test.js.map +1 -0
  1046. package/dist/types/errors/__tests__/errors.test.d.ts +2 -0
  1047. package/dist/types/errors/__tests__/errors.test.d.ts.map +1 -0
  1048. package/dist/types/errors/__tests__/errors.test.js +104 -0
  1049. package/dist/types/errors/__tests__/errors.test.js.map +1 -0
  1050. package/dist/types/errors/catalog.d.ts +83 -0
  1051. package/dist/types/errors/catalog.d.ts.map +1 -0
  1052. package/dist/types/errors/catalog.js +148 -0
  1053. package/dist/types/errors/catalog.js.map +1 -0
  1054. package/dist/types/errors/index.d.ts +73 -0
  1055. package/dist/types/errors/index.d.ts.map +1 -0
  1056. package/dist/types/errors/index.js +70 -0
  1057. package/dist/types/errors/index.js.map +1 -0
  1058. package/dist/types/guardrail/index.d.ts +57 -0
  1059. package/dist/types/guardrail/index.d.ts.map +1 -0
  1060. package/dist/types/guardrail/index.js +2 -0
  1061. package/dist/types/guardrail/index.js.map +1 -0
  1062. package/dist/types/hitl/index.d.ts +97 -14
  1063. package/dist/types/hitl/index.d.ts.map +1 -1
  1064. package/dist/types/hitl/index.js.map +1 -1
  1065. package/dist/types/ids/index.d.ts +2 -2
  1066. package/dist/types/message/content.d.ts +22 -0
  1067. package/dist/types/message/content.d.ts.map +1 -0
  1068. package/dist/types/message/content.js +49 -0
  1069. package/dist/types/message/content.js.map +1 -0
  1070. package/dist/types/message/index.d.ts +193 -8
  1071. package/dist/types/message/index.d.ts.map +1 -1
  1072. package/dist/types/message/index.js +19 -4
  1073. package/dist/types/message/index.js.map +1 -1
  1074. package/dist/types/plugin/index.d.ts +78 -3
  1075. package/dist/types/plugin/index.d.ts.map +1 -1
  1076. package/dist/types/plugin/index.js +0 -1
  1077. package/dist/types/plugin/index.js.map +1 -1
  1078. package/dist/types/provider/__tests__/cause-chain.test.d.ts +2 -0
  1079. package/dist/types/provider/__tests__/cause-chain.test.d.ts.map +1 -0
  1080. package/dist/types/provider/__tests__/cause-chain.test.js +108 -0
  1081. package/dist/types/provider/__tests__/cause-chain.test.js.map +1 -0
  1082. package/dist/types/provider/__tests__/declared-retryable.test.d.ts +2 -0
  1083. package/dist/types/provider/__tests__/declared-retryable.test.d.ts.map +1 -0
  1084. package/dist/types/provider/__tests__/declared-retryable.test.js +70 -0
  1085. package/dist/types/provider/__tests__/declared-retryable.test.js.map +1 -0
  1086. package/dist/types/provider/__tests__/overflow-classification.test.d.ts +2 -0
  1087. package/dist/types/provider/__tests__/overflow-classification.test.d.ts.map +1 -0
  1088. package/dist/types/provider/__tests__/overflow-classification.test.js +80 -0
  1089. package/dist/types/provider/__tests__/overflow-classification.test.js.map +1 -0
  1090. package/dist/types/provider/chat.d.ts +27 -1
  1091. package/dist/types/provider/chat.d.ts.map +1 -1
  1092. package/dist/types/provider/config.d.ts +83 -2
  1093. package/dist/types/provider/config.d.ts.map +1 -1
  1094. package/dist/types/provider/errors.d.ts +102 -0
  1095. package/dist/types/provider/errors.d.ts.map +1 -0
  1096. package/dist/types/provider/errors.js +393 -0
  1097. package/dist/types/provider/errors.js.map +1 -0
  1098. package/dist/types/provider/index.d.ts +3 -2
  1099. package/dist/types/provider/index.d.ts.map +1 -1
  1100. package/dist/types/provider/stream.d.ts +59 -3
  1101. package/dist/types/provider/stream.d.ts.map +1 -1
  1102. package/dist/types/rag/embedding.d.ts +11 -2
  1103. package/dist/types/rag/embedding.d.ts.map +1 -1
  1104. package/dist/types/run/__tests__/step.test.d.ts +2 -0
  1105. package/dist/types/run/__tests__/step.test.d.ts.map +1 -0
  1106. package/dist/types/run/__tests__/step.test.js +107 -0
  1107. package/dist/types/run/__tests__/step.test.js.map +1 -0
  1108. package/dist/types/run/answer-review.d.ts +46 -0
  1109. package/dist/types/run/answer-review.d.ts.map +1 -0
  1110. package/dist/types/run/answer-review.js +2 -0
  1111. package/dist/types/run/answer-review.js.map +1 -0
  1112. package/dist/types/run/config.d.ts +33 -0
  1113. package/dist/types/run/config.d.ts.map +1 -1
  1114. package/dist/types/run/derive-status.d.ts +29 -0
  1115. package/dist/types/run/derive-status.d.ts.map +1 -0
  1116. package/dist/types/run/derive-status.js +49 -0
  1117. package/dist/types/run/derive-status.js.map +1 -0
  1118. package/dist/types/run/entity.d.ts +16 -0
  1119. package/dist/types/run/entity.d.ts.map +1 -1
  1120. package/dist/types/run/events.d.ts +228 -4
  1121. package/dist/types/run/events.d.ts.map +1 -1
  1122. package/dist/types/run/events.js +7 -0
  1123. package/dist/types/run/events.js.map +1 -1
  1124. package/dist/types/run/index.d.ts +5 -0
  1125. package/dist/types/run/index.d.ts.map +1 -1
  1126. package/dist/types/run/index.js +3 -0
  1127. package/dist/types/run/index.js.map +1 -1
  1128. package/dist/types/run/memory-promotion.d.ts +90 -0
  1129. package/dist/types/run/memory-promotion.d.ts.map +1 -0
  1130. package/dist/types/run/memory-promotion.js +38 -0
  1131. package/dist/types/run/memory-promotion.js.map +1 -0
  1132. package/dist/types/run/prepare-step.d.ts +100 -0
  1133. package/dist/types/run/prepare-step.d.ts.map +1 -0
  1134. package/dist/types/run/prepare-step.js +2 -0
  1135. package/dist/types/run/prepare-step.js.map +1 -0
  1136. package/dist/types/run/state.d.ts +85 -0
  1137. package/dist/types/run/state.d.ts.map +1 -0
  1138. package/dist/types/run/state.js +33 -0
  1139. package/dist/types/run/state.js.map +1 -0
  1140. package/dist/types/run/step.d.ts +77 -0
  1141. package/dist/types/run/step.d.ts.map +1 -0
  1142. package/dist/types/run/step.js +26 -0
  1143. package/dist/types/run/step.js.map +1 -0
  1144. package/dist/types/run/stop-reason.d.ts +31 -3
  1145. package/dist/types/run/stop-reason.d.ts.map +1 -1
  1146. package/dist/types/sandbox/index.d.ts +82 -10
  1147. package/dist/types/sandbox/index.d.ts.map +1 -1
  1148. package/dist/types/sandbox/index.js +13 -1
  1149. package/dist/types/sandbox/index.js.map +1 -1
  1150. package/dist/types/structured-output/index.d.ts +6 -5
  1151. package/dist/types/structured-output/index.d.ts.map +1 -1
  1152. package/dist/types/thread/entity.d.ts +2 -3
  1153. package/dist/types/thread/entity.d.ts.map +1 -1
  1154. package/dist/types/tool/index.d.ts +210 -2
  1155. package/dist/types/tool/index.d.ts.map +1 -1
  1156. package/dist/types/tool/index.js +1 -1
  1157. package/dist/types/tool/index.js.map +1 -1
  1158. package/dist/types/tool/repair.d.ts +49 -0
  1159. package/dist/types/tool/repair.d.ts.map +1 -0
  1160. package/dist/types/tool/repair.js +2 -0
  1161. package/dist/types/tool/repair.js.map +1 -0
  1162. package/dist/types/toolset/index.d.ts +2 -5
  1163. package/dist/types/toolset/index.d.ts.map +1 -1
  1164. package/dist/utils/__tests__/atomic-write.test.d.ts +2 -0
  1165. package/dist/utils/__tests__/atomic-write.test.d.ts.map +1 -0
  1166. package/dist/utils/__tests__/atomic-write.test.js +91 -0
  1167. package/dist/utils/__tests__/atomic-write.test.js.map +1 -0
  1168. package/dist/utils/__tests__/shell-compress.test.d.ts +2 -0
  1169. package/dist/utils/__tests__/shell-compress.test.d.ts.map +1 -0
  1170. package/dist/utils/__tests__/shell-compress.test.js +41 -0
  1171. package/dist/utils/__tests__/shell-compress.test.js.map +1 -0
  1172. package/dist/utils/atomic-write.d.ts +10 -0
  1173. package/dist/utils/atomic-write.d.ts.map +1 -0
  1174. package/dist/utils/atomic-write.js +83 -0
  1175. package/dist/utils/atomic-write.js.map +1 -0
  1176. package/dist/utils/shell-compress.d.ts.map +1 -1
  1177. package/dist/utils/shell-compress.js +12 -1
  1178. package/dist/utils/shell-compress.js.map +1 -1
  1179. package/dist/verification/presets.d.ts +6 -3
  1180. package/dist/verification/presets.d.ts.map +1 -1
  1181. package/dist/verification/presets.js +6 -3
  1182. package/dist/verification/presets.js.map +1 -1
  1183. package/package.json +3 -3
  1184. package/src/__tests__/default-path-conformance.test.ts +306 -0
  1185. package/src/__tests__/shipped-defaults.test.ts +111 -0
  1186. package/src/advisory/__tests__/budget-enforcement.test.ts +208 -0
  1187. package/src/advisory/__tests__/structured-response.test.ts +128 -0
  1188. package/src/advisory/budget.ts +27 -0
  1189. package/src/advisory/context.ts +19 -0
  1190. package/src/advisory/executor.test.ts +12 -8
  1191. package/src/advisory/executor.ts +37 -25
  1192. package/src/advisory/index.ts +2 -0
  1193. package/src/advisory/parse.ts +63 -0
  1194. package/src/agents/AbstractAgent.ts +82 -0
  1195. package/src/agents/PipelineAgent.ts +19 -0
  1196. package/src/agents/ReactiveAgent.ts +47 -0
  1197. package/src/agents/RouterAgent.ts +32 -2
  1198. package/src/agents/SupervisorAgent.ts +31 -1
  1199. package/src/agents/__tests__/idempotency-key.test.ts +177 -0
  1200. package/src/agents/__tests__/invocation-lock.test.ts +154 -0
  1201. package/src/agents/__tests__/reachability.test.ts +224 -0
  1202. package/src/agents/__tests__/supervisor-ledger.test.ts +1 -1
  1203. package/src/agents/index.ts +1 -1
  1204. package/src/agents/lock.ts +0 -2
  1205. package/src/bridge/a2a/late-events.test.ts +84 -0
  1206. package/src/bridge/a2a/mapper.test.ts +1 -1
  1207. package/src/bridge/a2a/mapper.ts +70 -5
  1208. package/src/bridge/a2a/message.ts +5 -1
  1209. package/src/bridge/sse/late-events.test.ts +182 -0
  1210. package/src/bridge/sse/mapper.ts +109 -0
  1211. package/src/compaction/__tests__/cleared-result-recovery.test.ts +118 -0
  1212. package/src/compaction/__tests__/context-window.test.ts +77 -0
  1213. package/src/compaction/__tests__/dangling.test.ts +16 -6
  1214. package/src/compaction/__tests__/lossiness.test.ts +187 -0
  1215. package/src/compaction/__tests__/state-across-resume.test.ts +99 -0
  1216. package/src/compaction/__tests__/tool-result-editing.test.ts +213 -0
  1217. package/src/compaction/__tests__/trim-opens-on-user.test.ts +118 -0
  1218. package/src/compaction/__tests__/verifier-model.test.ts +83 -0
  1219. package/src/compaction/context-window.ts +107 -0
  1220. package/src/compaction/dangling.ts +48 -1
  1221. package/src/compaction/extractor.ts +56 -1
  1222. package/src/compaction/index.ts +16 -0
  1223. package/src/compaction/manager.ts +53 -8
  1224. package/src/compaction/managers/structured.ts +7 -6
  1225. package/src/compaction/retention.ts +89 -0
  1226. package/src/compaction/serializer.ts +42 -11
  1227. package/src/compaction/tool-result-editing.ts +229 -0
  1228. package/src/compaction/types.ts +10 -0
  1229. package/src/compaction/verifier.ts +24 -1
  1230. package/src/compaction/wire.ts +91 -0
  1231. package/src/config/runtime.ts +63 -19
  1232. package/src/connector/builtins/http.test.ts +13 -0
  1233. package/src/connector/builtins/http.ts +15 -1
  1234. package/src/connector/mcp/__tests__/discovery-policy.test.ts +133 -0
  1235. package/src/connector/mcp/__tests__/list-pagination.test.ts +98 -0
  1236. package/src/connector/mcp/__tests__/policy.test.ts +100 -0
  1237. package/src/connector/mcp/__tests__/protocol-negotiation.test.ts +105 -0
  1238. package/src/connector/mcp/__tests__/schema-fidelity.test.ts +250 -0
  1239. package/src/connector/mcp/__tests__/structured-result.test.ts +143 -0
  1240. package/src/connector/mcp/adapter.ts +306 -19
  1241. package/src/connector/mcp/client.test.ts +159 -0
  1242. package/src/connector/mcp/client.ts +160 -13
  1243. package/src/connector/mcp/discovery.ts +74 -5
  1244. package/src/connector/mcp/http-sse.ts +16 -1
  1245. package/src/connector/mcp/index.ts +4 -0
  1246. package/src/connector/mcp/policy.ts +134 -0
  1247. package/src/connector/mcp/schema-refs.ts +126 -0
  1248. package/src/constants/agent/index.ts +3 -0
  1249. package/src/constants/compaction/index.ts +1 -1
  1250. package/src/constants/continuation.ts +4 -4
  1251. package/src/constants/mcp/index.ts +34 -0
  1252. package/src/constants/plugin/index.ts +24 -2
  1253. package/src/constants/sandbox/index.ts +6 -5
  1254. package/src/constants/telemetry/index.ts +8 -0
  1255. package/src/constants/tools/index.ts +20 -0
  1256. package/src/contracts/api.ts +40 -0
  1257. package/src/contracts/run-status.ts +43 -0
  1258. package/src/eval/__tests__/case-deadline.test.ts +147 -0
  1259. package/src/eval/__tests__/end-to-end.test.ts +259 -0
  1260. package/src/eval/__tests__/harness-honesty.test.ts +99 -0
  1261. package/src/eval/__tests__/harness.test.ts +249 -0
  1262. package/src/eval/__tests__/judge.test.ts +306 -0
  1263. package/src/eval/__tests__/scorer-gates.test.ts +156 -0
  1264. package/src/eval/experiment.ts +335 -0
  1265. package/src/eval/from-run.ts +48 -0
  1266. package/src/eval/index.ts +21 -0
  1267. package/src/eval/judge.ts +240 -0
  1268. package/src/eval/scorers.ts +169 -0
  1269. package/src/eval/types.ts +157 -0
  1270. package/src/execution/local.test.ts +46 -0
  1271. package/src/execution/local.ts +6 -1
  1272. package/src/gateway/__tests__/list-survives-eviction.test.ts +124 -0
  1273. package/src/gateway/local.ts +117 -3
  1274. package/src/manager/agent/__tests__/dispose-cancels.test.ts +104 -0
  1275. package/src/manager/agent/__tests__/lifecycle.test.ts +297 -0
  1276. package/src/manager/agent/lifecycle.ts +127 -7
  1277. package/src/manager/run/persistence.ts +132 -1
  1278. package/src/plugin/__tests__/enable-contributions.test.ts +3 -3
  1279. package/src/plugin/__tests__/hook-ordering.test.ts +252 -0
  1280. package/src/plugin/__tests__/install-time-refusal.test.ts +68 -0
  1281. package/src/plugin/__tests__/lifecycle.test.ts +95 -73
  1282. package/src/plugin/lifecycle.ts +76 -22
  1283. package/src/plugin/loader.ts +37 -1
  1284. package/src/probe/registry.test.ts +49 -6
  1285. package/src/probe/registry.ts +21 -1
  1286. package/src/provider/__tests__/mock-script.test.ts +179 -0
  1287. package/src/provider/__tests__/registry.test.ts +1 -1
  1288. package/src/provider/__tests__/retry-visibility.test.ts +160 -0
  1289. package/src/provider/__tests__/retry.test.ts +296 -0
  1290. package/src/provider/capabilities.ts +4 -0
  1291. package/src/provider/collect.test.ts +1 -1
  1292. package/src/provider/collect.ts +1 -1
  1293. package/src/provider/index.ts +8 -0
  1294. package/src/provider/mock-register.ts +5 -2
  1295. package/src/provider/mock.ts +117 -34
  1296. package/src/provider/retry.ts +199 -0
  1297. package/src/public-runtime.ts +118 -7
  1298. package/src/public-types.ts +5 -1
  1299. package/src/rag/__tests__/retrieval-math.test.ts +54 -0
  1300. package/src/rag/chunking.ts +32 -1
  1301. package/src/rag/embedding.test.ts +65 -10
  1302. package/src/rag/embedding.ts +26 -5
  1303. package/src/rag/index.ts +1 -1
  1304. package/src/rag/retriever.ts +92 -21
  1305. package/src/rag/vector-store.test.ts +2 -2
  1306. package/src/registry/ManagedRegistry.test.ts +1 -1
  1307. package/src/registry/Registry.test.ts +1 -1
  1308. package/src/registry/connector/definitions.test.ts +1 -1
  1309. package/src/registry/tool/__tests__/schema.test.ts +208 -0
  1310. package/src/registry/tool/__tests__/tool-name-validation.test.ts +88 -0
  1311. package/src/registry/tool/execute.ts +104 -22
  1312. package/src/registry/tool/schema.ts +80 -0
  1313. package/src/registry/toolset/catalog.test.ts +0 -1
  1314. package/src/registry/toolset/catalog.ts +0 -1
  1315. package/src/run/reporter.ts +84 -0
  1316. package/src/runtime/bidi/__tests__/session.test.ts +232 -0
  1317. package/src/runtime/bidi/index.ts +4 -0
  1318. package/src/runtime/bidi/mock.ts +90 -0
  1319. package/src/runtime/bidi/session.ts +205 -0
  1320. package/src/runtime/decision/parser.test.ts +46 -0
  1321. package/src/runtime/decision/parser.ts +8 -1
  1322. package/src/runtime/query/__tests__/answer-review.test.ts +172 -0
  1323. package/src/runtime/query/__tests__/capability-negotiation.test.ts +88 -123
  1324. package/src/runtime/query/__tests__/checkpoint-store.test.ts +13 -50
  1325. package/src/runtime/query/__tests__/checkpoint.test.ts +2 -10
  1326. package/src/runtime/query/__tests__/citations.test.ts +111 -0
  1327. package/src/runtime/query/__tests__/content-budget.test.ts +83 -0
  1328. package/src/runtime/query/__tests__/context.test.ts +3 -2
  1329. package/src/runtime/query/__tests__/deferred-tools.test.ts +23 -148
  1330. package/src/runtime/query/__tests__/delegation-resume.test.ts +159 -0
  1331. package/src/runtime/query/__tests__/document-attachments.test.ts +125 -0
  1332. package/src/runtime/query/__tests__/durable-park-and-trace.test.ts +245 -0
  1333. package/src/runtime/query/__tests__/durable-question-park.test.ts +305 -0
  1334. package/src/runtime/query/__tests__/durable-run-state.test.ts +194 -0
  1335. package/src/runtime/query/__tests__/executor-plugin-hooks.test.ts +24 -20
  1336. package/src/runtime/query/__tests__/finish-reason-vs-tool-calls.test.ts +206 -0
  1337. package/src/runtime/query/__tests__/grant-cannot-overrule-the-gate.test.ts +115 -0
  1338. package/src/runtime/query/__tests__/guardrails-e2e.test.ts +164 -0
  1339. package/src/runtime/query/__tests__/guardrails.test.ts +236 -0
  1340. package/src/runtime/query/__tests__/hook-model-visibility.test.ts +143 -0
  1341. package/src/runtime/query/__tests__/long-document-flow.test.ts +9 -2
  1342. package/src/runtime/query/__tests__/memory-promotion.test.ts +148 -0
  1343. package/src/runtime/query/__tests__/orphan-task-turn-end.test.ts +5 -31
  1344. package/src/runtime/query/__tests__/overflow-relief.test.ts +139 -0
  1345. package/src/runtime/query/__tests__/partial-batch-resume.test.ts +264 -0
  1346. package/src/runtime/query/__tests__/plugin-hooks.test.ts +0 -1
  1347. package/src/runtime/query/__tests__/prepare-step-chain.test.ts +127 -0
  1348. package/src/runtime/query/__tests__/prepare-step.test.ts +233 -0
  1349. package/src/runtime/query/__tests__/probe-veto-is-error.test.ts +145 -0
  1350. package/src/runtime/query/__tests__/prompt.test.ts +1 -1
  1351. package/src/runtime/query/__tests__/provider-fault-pauses.test.ts +104 -0
  1352. package/src/runtime/query/__tests__/reasoning-stream.test.ts +177 -0
  1353. package/src/runtime/query/__tests__/recoverable-settle.test.ts +145 -0
  1354. package/src/runtime/query/__tests__/resume-budget.test.ts +158 -0
  1355. package/src/runtime/query/__tests__/resume-pending.test.ts +273 -0
  1356. package/src/runtime/query/__tests__/rich-content-budget-wiring.test.ts +109 -0
  1357. package/src/runtime/query/__tests__/stop-condition.test.ts +265 -0
  1358. package/src/runtime/query/__tests__/structured-output.test.ts +268 -0
  1359. package/src/runtime/query/__tests__/structured-run-failure.test.ts +144 -0
  1360. package/src/runtime/query/__tests__/terminal-tool.test.ts +148 -0
  1361. package/src/runtime/query/__tests__/tool-grants.test.ts +102 -0
  1362. package/src/runtime/query/__tests__/tool-output-budget.test.ts +0 -0
  1363. package/src/runtime/query/__tests__/tool-pause.test.ts +209 -0
  1364. package/src/runtime/query/__tests__/tool-progress.test.ts +154 -0
  1365. package/src/runtime/query/__tests__/tool-repair-retry.test.ts +255 -0
  1366. package/src/runtime/query/__tests__/tool-result-wire.test.ts +135 -0
  1367. package/src/runtime/query/__tests__/tool-timeout.test.ts +230 -0
  1368. package/src/runtime/query/__tests__/trace-parenting.test.ts +128 -0
  1369. package/src/runtime/query/__tests__/wiring-seams.test.ts +288 -0
  1370. package/src/runtime/query/checkpoint.ts +242 -10
  1371. package/src/runtime/query/events.ts +2 -2
  1372. package/src/runtime/query/executor.ts +856 -40
  1373. package/src/runtime/query/guard.ts +26 -1
  1374. package/src/runtime/query/guardrail-presets.ts +124 -0
  1375. package/src/runtime/query/guardrails.ts +144 -0
  1376. package/src/runtime/query/index.ts +759 -12
  1377. package/src/runtime/query/iteration/__tests__/cancel-settles-turn.test.ts +177 -0
  1378. package/src/runtime/query/iteration/index.ts +674 -31
  1379. package/src/runtime/query/iteration/phases/advisory.test.ts +4 -1
  1380. package/src/runtime/query/iteration/phases/advisory.ts +14 -2
  1381. package/src/runtime/query/iteration/phases/checkpoint.ts +2 -2
  1382. package/src/runtime/query/iteration/phases/compaction-safe-cut.test.ts +3 -1
  1383. package/src/runtime/query/iteration/phases/compaction.ts +329 -64
  1384. package/src/runtime/query/iteration/phases/context-measurement.test.ts +196 -0
  1385. package/src/runtime/query/iteration/phases/context.ts +155 -2
  1386. package/src/runtime/query/iteration/phases/hitl-answer-question.test.ts +3 -1
  1387. package/src/runtime/query/iteration/phases/overflow-escalation.test.ts +167 -0
  1388. package/src/runtime/query/iteration/phases/plan.ts +10 -2
  1389. package/src/runtime/query/iteration/phases/retained-messages.test.ts +226 -0
  1390. package/src/runtime/query/iteration/phases/tool-review-denials.test.ts +270 -0
  1391. package/src/runtime/query/iteration/phases/tool-review.ts +140 -51
  1392. package/src/runtime/query/iteration/phases/working-memory-compaction.test.ts +21 -9
  1393. package/src/runtime/query/iteration/stream-turn.ts +285 -15
  1394. package/src/runtime/query/plugin-hooks.ts +6 -2
  1395. package/src/runtime/query/prompt.ts +26 -1
  1396. package/src/runtime/query/question-park.ts +120 -0
  1397. package/src/runtime/query/result.ts +64 -0
  1398. package/src/runtime/query/resume-pending.ts +394 -0
  1399. package/src/runtime/query/run-state.ts +124 -0
  1400. package/src/runtime/query/tool-grants.ts +83 -0
  1401. package/src/runtime/query/tool-output-budget.ts +183 -0
  1402. package/src/runtime/query/tool-pause.ts +119 -0
  1403. package/src/runtime/query/tooling.ts +23 -1
  1404. package/src/sandbox/__tests__/isolation.test.ts +164 -0
  1405. package/src/sandbox/__tests__/output-truncation.test.ts +106 -0
  1406. package/src/sandbox/__tests__/resource-limits.test.ts +106 -0
  1407. package/src/sandbox/factory.ts +1 -1
  1408. package/src/sandbox/index.ts +2 -0
  1409. package/src/sandbox/isolation.ts +72 -0
  1410. package/src/sandbox/provider/local.ts +173 -74
  1411. package/src/session/__tests__/integration/spawn-rollback.test.ts +1 -1
  1412. package/src/session/handoff/broadcast.ts +3 -3
  1413. package/src/session/migration/__tests__/filesystem.test.ts +26 -19
  1414. package/src/session/migration/filesystem.ts +7 -12
  1415. package/src/session/migration/marker.ts +5 -9
  1416. package/src/session/retention/disk-backend.ts +5 -11
  1417. package/src/session/workspace/__tests__/git-worktree.test.ts +6 -2
  1418. package/src/session/workspace/__tests__/shared-run.test.ts +18 -0
  1419. package/src/session/workspace/shared-run.ts +7 -1
  1420. package/src/skills/__tests__/frontmatter.test.ts +135 -0
  1421. package/src/skills/loader.ts +47 -3
  1422. package/src/store/__tests__/checkpoint-integrity.test.ts +134 -0
  1423. package/src/store/__tests__/checkpoint-versioning.test.ts +194 -0
  1424. package/src/store/__tests__/schema-adoption.test.ts +118 -0
  1425. package/src/store/__tests__/schema.test.ts +119 -0
  1426. package/src/store/memory/disk.ts +17 -16
  1427. package/src/store/run/disk.ts +169 -22
  1428. package/src/store/schema.ts +135 -0
  1429. package/src/store/session/disk.ts +30 -21
  1430. package/src/store/task/__tests__/lookup-across-runs.test.ts +77 -0
  1431. package/src/store/task/disk.ts +59 -15
  1432. package/src/store/thread/disk.ts +21 -10
  1433. package/src/streaming/coalesce.ts +1 -1
  1434. package/src/telemetry/__tests__/latency-instruments.test.ts +120 -0
  1435. package/src/telemetry/__tests__/metrics.test.ts +160 -0
  1436. package/src/telemetry/__tests__/span-hierarchy.test.ts +94 -0
  1437. package/src/telemetry/attributes.ts +109 -0
  1438. package/src/telemetry/metrics.ts +190 -0
  1439. package/src/test-setup.ts +3 -3
  1440. package/src/test-support/paths.ts +17 -0
  1441. package/src/tools/__tests__/path-containment.test.ts +167 -0
  1442. package/src/tools/__tests__/posix-path.test.ts +83 -0
  1443. package/src/tools/__tests__/sandboxed-search.test.ts +140 -0
  1444. package/src/tools/builtins/__tests__/computer-use.test.ts +15 -2
  1445. package/src/tools/builtins/__tests__/edit-commits-atomically.test.ts +103 -0
  1446. package/src/tools/builtins/__tests__/edit.test.ts +80 -17
  1447. package/src/tools/builtins/__tests__/payload-budget.test.ts +20 -40
  1448. package/src/tools/builtins/__tests__/read-file.test.ts +29 -1
  1449. package/src/tools/builtins/__tests__/stale-file-refusal.test.ts +258 -0
  1450. package/src/tools/builtins/__tests__/write-file.test.ts +13 -52
  1451. package/src/tools/builtins/atomic-write-file.ts +30 -2
  1452. package/src/tools/builtins/bash.ts +34 -4
  1453. package/src/tools/builtins/computer-use.ts +7 -1
  1454. package/src/tools/builtins/content-fingerprint.ts +33 -0
  1455. package/src/tools/builtins/edit.ts +258 -60
  1456. package/src/tools/builtins/glob.ts +71 -6
  1457. package/src/tools/builtins/grep.ts +82 -8
  1458. package/src/tools/builtins/index.ts +6 -6
  1459. package/src/tools/builtins/ls.ts +4 -2
  1460. package/src/tools/builtins/read-file.ts +45 -6
  1461. package/src/tools/builtins/write-file.ts +52 -25
  1462. package/src/tools/coordinator/__tests__/agent.test.ts +2 -2
  1463. package/src/tools/coordinator/__tests__/ask-user-question.test.ts +68 -0
  1464. package/src/tools/coordinator/agent.ts +23 -10
  1465. package/src/tools/coordinator/index.ts +213 -72
  1466. package/src/tools/defineTool.ts +20 -0
  1467. package/src/tools/glob-match.ts +50 -0
  1468. package/src/tools/paths.ts +44 -0
  1469. package/src/tools/posix-path.ts +73 -0
  1470. package/src/types/advisory/config.ts +21 -3
  1471. package/src/types/advisory/result.ts +12 -7
  1472. package/src/types/agent/base.ts +22 -2
  1473. package/src/types/agent/factory.ts +15 -9
  1474. package/src/types/agent/gateway.ts +20 -0
  1475. package/src/types/agent/manager.ts +19 -0
  1476. package/src/types/agent/reactive.ts +50 -0
  1477. package/src/types/agent/router.ts +11 -0
  1478. package/src/types/agent/supervisor.ts +2 -2
  1479. package/src/types/agent/task.ts +26 -0
  1480. package/src/types/bidi/index.ts +119 -0
  1481. package/src/types/common/__tests__/numeric-correctness.test.ts +123 -0
  1482. package/src/types/common/index.ts +16 -4
  1483. package/src/types/computer-use/index.ts +1 -1
  1484. package/src/types/connector/mcp.ts +29 -0
  1485. package/src/types/errors/__tests__/catalog.test.ts +130 -0
  1486. package/src/types/errors/__tests__/errors.test.ts +118 -0
  1487. package/src/types/errors/catalog.ts +211 -0
  1488. package/src/types/errors/index.ts +121 -0
  1489. package/src/types/guardrail/index.ts +62 -0
  1490. package/src/types/hitl/index.ts +102 -20
  1491. package/src/types/ids/index.ts +2 -2
  1492. package/src/types/message/content.ts +50 -0
  1493. package/src/types/message/index.ts +210 -9
  1494. package/src/types/plugin/index.ts +82 -2
  1495. package/src/types/provider/__tests__/cause-chain.test.ts +132 -0
  1496. package/src/types/provider/__tests__/declared-retryable.test.ts +85 -0
  1497. package/src/types/provider/__tests__/overflow-classification.test.ts +113 -0
  1498. package/src/types/provider/chat.ts +29 -1
  1499. package/src/types/provider/config.ts +83 -2
  1500. package/src/types/provider/errors.ts +472 -0
  1501. package/src/types/provider/index.ts +5 -0
  1502. package/src/types/provider/stream.ts +63 -3
  1503. package/src/types/rag/embedding.ts +11 -2
  1504. package/src/types/run/__tests__/step.test.ts +123 -0
  1505. package/src/types/run/answer-review.ts +51 -0
  1506. package/src/types/run/config.ts +35 -0
  1507. package/src/types/run/derive-status.ts +62 -0
  1508. package/src/types/run/entity.ts +18 -0
  1509. package/src/types/run/events.ts +230 -3
  1510. package/src/types/run/index.ts +5 -0
  1511. package/src/types/run/memory-promotion.ts +112 -0
  1512. package/src/types/run/prepare-step.ts +109 -0
  1513. package/src/types/run/state.ts +111 -0
  1514. package/src/types/run/step.ts +95 -0
  1515. package/src/types/run/stop-reason.ts +29 -1
  1516. package/src/types/sandbox/index.ts +93 -12
  1517. package/src/types/structured-output/index.ts +6 -5
  1518. package/src/types/thread/entity.ts +2 -3
  1519. package/src/types/tool/index.ts +221 -2
  1520. package/src/types/tool/repair.ts +54 -0
  1521. package/src/types/toolset/index.ts +2 -6
  1522. package/src/utils/__tests__/atomic-write.test.ts +108 -0
  1523. package/src/utils/__tests__/shell-compress.test.ts +49 -0
  1524. package/src/utils/atomic-write.ts +85 -0
  1525. package/src/utils/shell-compress.ts +12 -1
  1526. package/src/verification/presets.ts +6 -3
@@ -1,6 +1,17 @@
1
+ import { type Span, SpanStatusCode } from '@opentelemetry/api'
1
2
  import { isProviderRequestError } from '../../../provider/errors.js'
3
+ import { GENAI, NAMZU, chatSpanName, parentContext } from '../../../telemetry/attributes.js'
4
+ import {
5
+ recordModelDuration,
6
+ recordTimeToFirstToken,
7
+ recordTokenUsage,
8
+ } from '../../../telemetry/metrics.js'
9
+ import { getTracer } from '../../../telemetry/runtime-accessors.js'
2
10
  import { mergeTokenUsage } from '../../../types/common/index.js'
11
+ import { NamzuError } from '../../../types/errors/index.js'
3
12
  import type { ToolUseId } from '../../../types/ids/index.js'
13
+ import type { Citation, ReasoningBlock } from '../../../types/message/index.js'
14
+ import { ProviderError } from '../../../types/provider/errors.js'
4
15
  import type {
5
16
  ChatCompletionResponse,
6
17
  LLMProvider,
@@ -52,8 +63,8 @@ export interface StreamingTurnResult {
52
63
  * end-of-message. The bus's ephemeral filter (D1) ensures these
53
64
  * deltas never hit transcript.jsonl.
54
65
  *
55
- * Edge cases (codex A3, A4, A5):
56
- * - Stream ends without `finishReason` (anthropic-sdk-typescript#842
66
+ * Edge cases A3, A4, A5:
67
+ * - Stream ends without `finishReason` (a known vendor-SDK failure mode
57
68
  * dropped message_stop): we still emit `message_completed` from a
58
69
  * finally-style fall-through path with `stopReason: 'refusal'`.
59
70
  * - `tool_input_delta` with no `toolUseId` registered yet: we drop
@@ -64,6 +75,55 @@ export interface StreamingTurnResult {
64
75
  * we instead synthesize a tool call with runtime truncation metadata
65
76
  * so the executor can return a model-readable retry hint.
66
77
  */
78
+ /**
79
+ * Close out a turn that was cancelled part-way through.
80
+ *
81
+ * Everything a completed turn records, for a turn that stopped early: the
82
+ * usage it did accumulate, the latency it did spend, the span it opened,
83
+ * and a terminal event closing the message it announced.
84
+ *
85
+ * The event is emitted directly rather than yielded because this runs
86
+ * inside a `catch` that is about to re-throw — a `yield` there would never
87
+ * be pulled. Nothing here is allowed to throw over the cancellation: a
88
+ * failure while tidying up must not replace the reason the turn ended.
89
+ */
90
+ async function settleCancelledTurn(args: {
91
+ emitEvent: EmitEvent
92
+ runId: import('../../../types/ids/index.js').RunId
93
+ iteration: number
94
+ messageId: import('../../../types/ids/index.js').MessageId
95
+ usage: ChatCompletionResponse['usage']
96
+ text: string
97
+ model: string
98
+ startedAt: number
99
+ span: Span
100
+ }): Promise<void> {
101
+ try {
102
+ recordTokenUsage(args.model, args.usage)
103
+ recordModelDuration(args.model, Date.now() - args.startedAt)
104
+ args.span.setAttributes({
105
+ [GENAI.USAGE_INPUT_TOKENS]: args.usage.promptTokens,
106
+ [GENAI.USAGE_OUTPUT_TOKENS]: args.usage.completionTokens,
107
+ [NAMZU.CACHE_READ_TOKENS]: args.usage.cachedTokens ?? 0,
108
+ [NAMZU.CACHE_WRITE_TOKENS]: args.usage.cacheWriteTokens ?? 0,
109
+ })
110
+ args.span.setStatus({ code: SpanStatusCode.OK })
111
+ args.span.end()
112
+
113
+ await args.emitEvent({
114
+ type: 'message_completed',
115
+ runId: args.runId,
116
+ iteration: args.iteration,
117
+ messageId: args.messageId,
118
+ stopReason: 'cancelled',
119
+ usage: args.usage,
120
+ content: args.text || undefined,
121
+ })
122
+ } catch {
123
+ // Best effort. The cancellation is the news.
124
+ }
125
+ }
126
+
67
127
  export async function* streamProviderTurn(
68
128
  provider: LLMProvider,
69
129
  params: import('../../../types/provider/index.js').ChatCompletionParams,
@@ -73,7 +133,24 @@ export async function* streamProviderTurn(
73
133
  iteration: number,
74
134
  forceFinalize: boolean,
75
135
  log: Logger,
136
+ parentSpan?: Span,
76
137
  ): AsyncGenerator<RunEvent, StreamingTurnResult> {
138
+ // The `chat {model}` span the GenAI conventions require. There was none:
139
+ // `chatSpanName` existed with zero call sites, so a trace carried no LLM
140
+ // latency at all and the token counts landed on the iteration span
141
+ // instead of the operation that produced them.
142
+ const callStartedAt = Date.now()
143
+ let firstDeltaSeen = false
144
+ const chatSpan = getTracer().startSpan(chatSpanName(params.model), {}, parentContext(parentSpan))
145
+ chatSpan.setAttributes({
146
+ [GENAI.OPERATION_NAME]: 'chat',
147
+ [GENAI.REQUEST_MODEL]: params.model,
148
+ ...(params.temperature !== undefined
149
+ ? { [GENAI.REQUEST_TEMPERATURE]: params.temperature }
150
+ : {}),
151
+ ...(params.maxTokens !== undefined ? { [GENAI.REQUEST_MAX_TOKENS]: params.maxTokens } : {}),
152
+ })
153
+
77
154
  const messageId = generateMessageId()
78
155
  await emitEvent({ type: 'message_started', runId, iteration, messageId })
79
156
  yield* drainPending()
@@ -112,12 +189,23 @@ export async function* streamProviderTurn(
112
189
  inputTruncated: boolean
113
190
  }
114
191
  >()
115
- let streamError: Error | undefined
192
+ // Reasoning blocks, bucketed by stream index exactly like tool calls.
193
+ // Order matters on replay — a provider wants the assistant turn echoed
194
+ // verbatim — so the map is drained in index order at the end.
195
+ const reasoningBuckets = new Map<
196
+ number,
197
+ { type: 'thinking' | 'redacted_thinking'; text: string; signature?: string; encrypted?: string }
198
+ >()
199
+
200
+ // Citations arrive as their own deltas, in the order the model made
201
+ // them, and are collected verbatim: they are evidence, so reordering or
202
+ // de-duplicating them would edit the record the reader checks against.
203
+ const citations: Citation[] = []
116
204
 
117
- const stream = provider.chatStream({
118
- ...params,
119
- stream: true,
120
- }) as AsyncIterable<StreamChunk>
205
+ let streamError: string | undefined
206
+ let streamCause: unknown
207
+
208
+ const stream = provider.chatStream({ ...params, stream: true }) as AsyncIterable<StreamChunk>
121
209
 
122
210
  // Drive the stream manually so each `.next()` can be RACED against the run
123
211
  // abort: a Stop tears the in-flight model request down (the provider got
@@ -148,12 +236,96 @@ export async function* streamProviderTurn(
148
236
  const res = await (aborted ? Promise.race([next, aborted]) : next)
149
237
  if (res.done) break
150
238
  const chunk = res.value
239
+
240
+ // A backoff notice from the retry decorator, not output. Emitted
241
+ // and drained here because this is the only moment the consumer
242
+ // runs during a retry — the decorator is about to sleep, and it
243
+ // is that silence a host cannot otherwise distinguish from a
244
+ // hang. It carries no delta, so nothing below applies to it.
245
+ if (chunk.retry) {
246
+ await emitEvent({
247
+ type: 'provider_retry',
248
+ runId,
249
+ iteration,
250
+ attempt: chunk.retry.attempt,
251
+ maxRetries: chunk.retry.maxRetries,
252
+ delayMs: chunk.retry.delayMs,
253
+ code: chunk.retry.code,
254
+ ...(chunk.retry.status !== undefined ? { status: chunk.retry.status } : {}),
255
+ serverDirected: chunk.retry.serverDirected,
256
+ })
257
+ yield* drainPending()
258
+ continue
259
+ }
260
+
151
261
  if (chunk.error) {
152
- streamError = new Error(`Provider stream error: ${chunk.error}`)
262
+ streamError = chunk.error
153
263
  break
154
264
  }
155
265
  if (!id && chunk.id) id = chunk.id
156
266
 
267
+ // The first delta of the turn, of ANY kind — text, reasoning or a
268
+ // tool call. namzu streams, so perceived latency is dominated by
269
+ // this number, and the request histogram measures the whole call:
270
+ // it cannot tell a fast-first-token long generation from a
271
+ // stalled one, which is exactly the distinction a streaming UI is
272
+ // judged on. Keyed off the delta rather than the first chunk
273
+ // because a provider may open with a metadata-only frame.
274
+ if (
275
+ !firstDeltaSeen &&
276
+ (chunk.delta.content || chunk.delta.reasoning || chunk.delta.toolCalls?.length)
277
+ ) {
278
+ firstDeltaSeen = true
279
+ recordTimeToFirstToken(params.model, Date.now() - callStartedAt)
280
+ }
281
+
282
+ if (chunk.delta.citation) citations.push(chunk.delta.citation)
283
+
284
+ const reasoning = chunk.delta.reasoning
285
+ if (reasoning) {
286
+ let bucket = reasoningBuckets.get(reasoning.index)
287
+ if (!bucket) {
288
+ bucket = { type: reasoning.type ?? 'thinking', text: '' }
289
+ reasoningBuckets.set(reasoning.index, bucket)
290
+ await emitEvent({
291
+ type: 'reasoning_started',
292
+ runId,
293
+ iteration,
294
+ messageId,
295
+ blockIndex: reasoning.index,
296
+ reasoningType: bucket.type,
297
+ })
298
+ yield* drainPending()
299
+ }
300
+ if (reasoning.type) bucket.type = reasoning.type
301
+ if (reasoning.signature) bucket.signature = reasoning.signature
302
+ if (reasoning.encrypted) bucket.encrypted = reasoning.encrypted
303
+ if (reasoning.text) {
304
+ bucket.text += reasoning.text
305
+ await emitEvent({
306
+ type: 'reasoning_delta',
307
+ runId,
308
+ iteration,
309
+ messageId,
310
+ blockIndex: reasoning.index,
311
+ text: reasoning.text,
312
+ })
313
+ yield* drainPending()
314
+ }
315
+ if (reasoning.done) {
316
+ await emitEvent({
317
+ type: 'reasoning_completed',
318
+ runId,
319
+ iteration,
320
+ messageId,
321
+ blockIndex: reasoning.index,
322
+ ...(bucket.text ? { text: bucket.text } : {}),
323
+ signed: bucket.signature !== undefined,
324
+ })
325
+ yield* drainPending()
326
+ }
327
+ }
328
+
157
329
  if (chunk.delta.content) {
158
330
  textBuf += chunk.delta.content
159
331
  await emitEvent({
@@ -255,8 +427,36 @@ export async function* streamProviderTurn(
255
427
  // An abort tears the turn down: propagate it so the run loop settles the
256
428
  // run as cancelled rather than recording a normal (errored) turn. Any
257
429
  // other stream error is captured into the synthesized response as before.
258
- if (signal?.aborted) throw err
259
- streamError = err instanceof Error ? err : new Error(String(err))
430
+ if (signal?.aborted) {
431
+ // Settle what the turn already produced BEFORE unwinding. Throwing
432
+ // straight from here skipped everything below: the usage merged so
433
+ // far was discarded wholesale, so every cancelled turn
434
+ // under-reported its own cost; the span opened for this call was
435
+ // never ended, so it never exported at all; and a host consuming
436
+ // the message lifecycle saw a message begin and never end.
437
+ //
438
+ // The stream-ERROR path a few lines down already does exactly
439
+ // this. Cancel was the one exit that skipped it, which is the
440
+ // opposite of what its frequency deserves.
441
+ await settleCancelledTurn({
442
+ emitEvent,
443
+ runId,
444
+ iteration,
445
+ messageId,
446
+ usage,
447
+ text: textBuf,
448
+ model: params.model,
449
+ startedAt: callStartedAt,
450
+ span: chatSpan,
451
+ })
452
+ throw err
453
+ }
454
+ streamError = err instanceof Error ? err.message : String(err)
455
+ // Kept, not just its text. The classification a driver produced —
456
+ // which code, which status, whether repeating the call could work —
457
+ // is the whole basis for settling a transient fault as PAUSED rather
458
+ // than failed, and flattening it to a message threw all of it away.
459
+ streamCause = err
260
460
  } finally {
261
461
  if (onAbort) signal?.removeEventListener('abort', onAbort)
262
462
  // Release the underlying connection on every exit (natural end, error,
@@ -270,7 +470,7 @@ export async function* streamProviderTurn(
270
470
  // arrived — defensive against providers that don't yet emit it, and
271
471
  // the load-bearing path when the provider stream ends with
272
472
  // `stop_reason: "max_tokens"` mid-`input_json_delta`. In that case
273
- // Anthropic's SSE never sends `content_block_stop` for the open
473
+ // A provider's stream never sends a block-stop for the open
274
474
  // tool_use block: the upstream model ran out of completion tokens
275
475
  // before it could close the JSON literal, so the buffered
276
476
  // `argsBuf` ends with something like `"content":"…some prefix` —
@@ -347,7 +547,13 @@ export async function* streamProviderTurn(
347
547
  name: b.name,
348
548
  arguments: JSON.stringify(b.parsed ?? {}),
349
549
  },
350
- ...(b.inputTruncated ? { metadata: { inputTruncated: true } } : {}),
550
+ // Carry the partial buffer alongside the flag. `arguments` is
551
+ // normalized to `{}` above, so without this the only record of
552
+ // what the model was actually saying is gone — and a
553
+ // `repairToolCall` hook has nothing to repair.
554
+ ...(b.inputTruncated
555
+ ? { metadata: { inputTruncated: true, partialArguments: b.argsBuf } }
556
+ : {}),
351
557
  }))
352
558
 
353
559
  const recoveredToolInputFromStreamError =
@@ -359,7 +565,7 @@ export async function* streamProviderTurn(
359
565
  log.warn('provider stream failed after tool input; surfacing tool call to executor', {
360
566
  runId,
361
567
  iteration,
362
- error: streamError?.message ?? 'provider stream failed',
568
+ error: streamError,
363
569
  toolCallCount: toolCalls.length,
364
570
  })
365
571
  }
@@ -382,10 +588,49 @@ export async function* streamProviderTurn(
382
588
  yield* drainPending()
383
589
 
384
590
  if (streamError && !recoveredToolInputFromStreamError) {
385
- if (isProviderRequestError(streamError)) throw streamError
386
- throw new Error(`Provider stream error: ${streamError.message}`)
591
+ chatSpan.setStatus({ code: SpanStatusCode.ERROR, message: streamError })
592
+ chatSpan.end()
593
+
594
+ // A classified provider failure is rethrown AS ITSELF. Wrapping it in
595
+ // a fresh error dropped `retryable`, `status` and `retryAfterMs`,
596
+ // and `NamzuError`'s own default for `provider_error` is
597
+ // not-retryable — so a 429 that had exhausted its backoff settled the
598
+ // run FAILED, where the documented behaviour is a pause with a
599
+ // checkpoint to resume from. `toPlatformError` already projects this
600
+ // shape correctly; it was never reached.
601
+ //
602
+ // The asymmetry this fixes was visible: the same 529 raised inside
603
+ // the compaction verifier propagates untouched and DOES pause, so
604
+ // identical faults settled oppositely depending on whether compaction
605
+ // happened to run that iteration.
606
+ if (streamCause instanceof ProviderError) throw streamCause
607
+ // The newer classified shape carries the same guarantee, and the run
608
+ // boundary reads it to decide between a pause and a failure.
609
+ if (isProviderRequestError(streamCause)) throw streamCause
610
+
611
+ throw new NamzuError({
612
+ code: 'provider_error',
613
+ message: `Provider stream error: ${streamError}`,
614
+ details: { model: params.model },
615
+ // Even when the cause is not classified, keeping it means a host
616
+ // reading the chain sees what actually happened rather than a
617
+ // sentence about it.
618
+ ...(streamCause !== undefined ? { cause: streamCause } : {}),
619
+ })
387
620
  }
388
621
 
622
+ // Drained in stream-index order: the replay contract is about the
623
+ // original block order, and a Map preserves insertion order, not index
624
+ // order, when a provider interleaves blocks.
625
+ const reasoningBlocks: ReasoningBlock[] = [...reasoningBuckets.entries()]
626
+ .sort(([a], [b]) => a - b)
627
+ .map(([, bucket]) => ({
628
+ type: bucket.type,
629
+ ...(bucket.text ? { text: bucket.text } : {}),
630
+ ...(bucket.signature ? { signature: bucket.signature } : {}),
631
+ ...(bucket.encrypted ? { encrypted: bucket.encrypted } : {}),
632
+ }))
633
+
389
634
  const response: ChatCompletionResponse = {
390
635
  id: id || messageId,
391
636
  model: model || params.model,
@@ -393,9 +638,34 @@ export async function* streamProviderTurn(
393
638
  role: 'assistant',
394
639
  content: textBuf.length > 0 ? textBuf : null,
395
640
  toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
641
+ ...(reasoningBlocks.length > 0 ? { reasoning: reasoningBlocks } : {}),
642
+ ...(citations.length > 0 ? { citations } : {}),
396
643
  },
397
644
  finishReason: effectiveFinishReason,
398
645
  usage,
399
646
  }
647
+
648
+ // The same numbers as a MEASUREMENT, not only as a span attribute.
649
+ // A span answers "what happened in this run"; a metric answers "what is
650
+ // this costing across every run", and no amount of span attributes adds
651
+ // up to the second question without a trace backend willing to
652
+ // aggregate them.
653
+ recordTokenUsage(params.model, usage)
654
+ recordModelDuration(params.model, Date.now() - callStartedAt)
655
+
656
+ // Usage belongs on the span for the call that produced it, not on the
657
+ // iteration that happened to contain it.
658
+ chatSpan.setAttributes({
659
+ [GENAI.RESPONSE_MODEL]: response.model,
660
+ [GENAI.RESPONSE_ID]: response.id,
661
+ [GENAI.RESPONSE_FINISH_REASONS]: [response.finishReason],
662
+ [GENAI.USAGE_INPUT_TOKENS]: usage.promptTokens,
663
+ [GENAI.USAGE_OUTPUT_TOKENS]: usage.completionTokens,
664
+ [NAMZU.CACHE_READ_TOKENS]: usage.cachedTokens ?? 0,
665
+ [NAMZU.CACHE_WRITE_TOKENS]: usage.cacheWriteTokens ?? 0,
666
+ })
667
+ chatSpan.setStatus({ code: SpanStatusCode.OK })
668
+ chatSpan.end()
669
+
400
670
  return { response, messageId }
401
671
  }
@@ -1,3 +1,4 @@
1
+ import { NamzuError } from '../../types/errors/index.js'
1
2
  import type { PluginHookEvent, PluginHookResult } from '../../types/plugin/index.js'
2
3
 
3
4
  /**
@@ -17,11 +18,14 @@ export function applyLifecycleHookResults(
17
18
  case 'continue':
18
19
  continue
19
20
  case 'error':
20
- throw new Error(`Plugin hook ${event} reported error: ${result.message}`)
21
+ throw new NamzuError({
22
+ code: 'plugin_error',
23
+ message: `Plugin hook ${event} reported error: ${result.message}`,
24
+ details: { event },
25
+ })
21
26
  case 'skip':
22
27
  case 'modify':
23
28
  case 'retry':
24
- case 'resume':
25
29
  throw new Error(
26
30
  `Plugin hook ${event} returned unsupported action '${result.action}' for a lifecycle event`,
27
31
  )
@@ -60,9 +60,34 @@ IMPORTANT: Always use absolute paths based on the working directory above. Befor
60
60
  return lines.join('\n')
61
61
  }
62
62
 
63
+ /**
64
+ * Does this run have a tool that needs to know where it is?
65
+ *
66
+ * Decided from what a tool DECLARES — `category: 'filesystem'` or a
67
+ * `file_read` / `file_write` permission — not from its name.
68
+ *
69
+ * The name set alone was a real hole: a host registering a perfectly
70
+ * well-formed filesystem tool called `read_file` got no `<env>` block at
71
+ * all, so the model was never told the working directory and the host had
72
+ * to hand-encode the paths into its system prompt. The structured facts
73
+ * were right there on the `ToolDefinition` and the gate ignored them in
74
+ * favour of the four built-in names.
75
+ *
76
+ * The name set is kept as a fallback for tools that declare neither.
77
+ */
63
78
  function hasFilesystemTools(tools: ToolRegistryContract, allowedTools?: string[]): boolean {
64
79
  const activeTools = allowedTools ?? tools.listNames()
65
- return activeTools.some((name) => FILESYSTEM_TOOLS.has(name))
80
+ return activeTools.some((name) => {
81
+ if (FILESYSTEM_TOOLS.has(name)) return true
82
+ const tool = tools.get?.(name)
83
+ if (!tool) return false
84
+ if (tool.category === 'filesystem' || tool.category === 'shell') return true
85
+ return Boolean(
86
+ tool.permissions?.some(
87
+ (p) => p === 'file_read' || p === 'file_write' || p === 'shell_execute',
88
+ ),
89
+ )
90
+ })
66
91
  }
67
92
 
68
93
  export class PromptBuilder {
@@ -0,0 +1,120 @@
1
+ import type { CheckpointId, HITLResumeDecision, UserQuestionData } from '../../types/hitl/index.js'
2
+
3
+ /**
4
+ * Durability for a question raised from inside a tool.
5
+ *
6
+ * `ask_user_question` parked through the raw handler with a synthetic
7
+ * `cp_question_<toolUseId>` id that was never written anywhere. The
8
+ * checkpoint therefore did not exist: nothing on disk said a human owed
9
+ * this run an answer, `findPendingCheckpoint` could never return it, and a
10
+ * remote host could not even OBSERVE the question except through the
11
+ * in-process callback. Kill the process while somebody is looking at the
12
+ * question card and the answer can never be applied — the restore path
13
+ * strips the whole assistant turn, discarding work that sibling tools in
14
+ * the same batch had already finished, and re-bills the turn.
15
+ *
16
+ * Two halves, and the second is the one that was hard:
17
+ *
18
+ * 1. **Record.** Write a real checkpoint through the manager, so the park
19
+ * is durable and visible on every surface a tool-review park is.
20
+ * 2. **Re-enter.** On resume, deliver the answer to the tool that asked
21
+ * rather than re-asking. The batch is re-executed — which is how the
22
+ * asking tool gets re-entered at all — and this registry is what makes
23
+ * that re-entry return the recorded answer instead of parking again.
24
+ * Siblings that already completed are answered from the transcript, so
25
+ * re-execution costs nothing beyond the one tool that was waiting.
26
+ */
27
+ export interface QuestionParkRecorder {
28
+ /**
29
+ * Record the park and return the checkpoint id it was written under, or
30
+ * `null` when it could not be recorded.
31
+ *
32
+ * `null` rather than a throw: an unrecorded park is a lost cross-process
33
+ * handoff, not a reason to fail the tool. The in-process await is still
34
+ * perfectly valid, and taking the run down would turn a durability
35
+ * shortfall into an outage.
36
+ */
37
+ record(question: UserQuestionData): Promise<CheckpointId | null>
38
+ /** Clear the park once an answer arrives, so a queue stops serving it. */
39
+ resolve(checkpointId: CheckpointId, decision: HITLResumeDecision): Promise<void>
40
+ }
41
+
42
+ /**
43
+ * A recorder whose backing store is attached later.
44
+ *
45
+ * The tool that asks is built before the run exists — an agent constructs
46
+ * its tool registry, and only then hands it to `query()`, which is where
47
+ * the checkpoint manager is created. Binding late is what lets the same
48
+ * tool instance be durable inside a run and inert outside one, without the
49
+ * tool builder needing to know about checkpoints at all.
50
+ *
51
+ * Unbound, `record` returns `null` and `resolve` is a no-op, which is
52
+ * exactly the previous behaviour: the in-process await still works, only
53
+ * the cross-process handoff is missing.
54
+ */
55
+ export class QuestionParkBinding implements QuestionParkRecorder {
56
+ private backing?: QuestionParkRecorder
57
+
58
+ bind(recorder: QuestionParkRecorder): void {
59
+ this.backing = recorder
60
+ }
61
+
62
+ /** Detach when the run settles, so a later run cannot write into it. */
63
+ unbind(): void {
64
+ this.backing = undefined
65
+ }
66
+
67
+ async record(question: UserQuestionData): Promise<CheckpointId | null> {
68
+ return (await this.backing?.record(question)) ?? null
69
+ }
70
+
71
+ async resolve(checkpointId: CheckpointId, decision: HITLResumeDecision): Promise<void> {
72
+ await this.backing?.resolve(checkpointId, decision)
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Answers carried into a resumed run, keyed by the `questionId` of the
78
+ * tool call that asked.
79
+ *
80
+ * Consulted before the park handler, so a re-entered `ask_user_question`
81
+ * returns the recorded answer rather than parking a second time — which
82
+ * would ask the user something they have already answered, and in a
83
+ * headless resume would deadlock or auto-answer with the no-consent
84
+ * sentinel.
85
+ *
86
+ * Each answer is consumed once. A tool that somehow asks the same question
87
+ * twice in one resumed run is asking a genuinely new question the second
88
+ * time, and answering it from a stale record would be fabricating consent.
89
+ */
90
+ export class PendingAnswers {
91
+ private readonly answers = new Map<string, HITLResumeDecision>()
92
+
93
+ static from(decision: HITLResumeDecision | undefined): PendingAnswers {
94
+ const pending = new PendingAnswers()
95
+ if (decision?.action === 'answer_question' && decision.questionId !== undefined) {
96
+ pending.set(decision.questionId, decision)
97
+ }
98
+ return pending
99
+ }
100
+
101
+ set(questionId: string, decision: HITLResumeDecision): void {
102
+ this.answers.set(questionId, decision)
103
+ }
104
+
105
+ /** Take the answer for this question, removing it. */
106
+ take(questionId: string): HITLResumeDecision | undefined {
107
+ const answer = this.answers.get(questionId)
108
+ if (answer !== undefined) this.answers.delete(questionId)
109
+ return answer
110
+ }
111
+
112
+ /** Every recorded answer, for copying between instances. */
113
+ entries(): Iterable<[string, HITLResumeDecision]> {
114
+ return this.answers.entries()
115
+ }
116
+
117
+ get size(): number {
118
+ return this.answers.size
119
+ }
120
+ }
@@ -4,6 +4,9 @@ import type { RunPersistence } from '../../manager/run/persistence.js'
4
4
  import { isProviderRequestError } from '../../provider/errors.js'
5
5
  import type { ActivityStore } from '../../store/activity/memory.js'
6
6
  import { GENAI, NAMZU } from '../../telemetry/attributes.js'
7
+ import { explainError } from '../../types/errors/catalog.js'
8
+ import { toPlatformError } from '../../types/errors/index.js'
9
+ import type { CheckpointId } from '../../types/hitl/index.js'
7
10
  import type { Run, RunEvent } from '../../types/run/index.js'
8
11
  import { toErrorMessage } from '../../utils/error.js'
9
12
  import type { Logger } from '../../utils/logger.js'
@@ -16,6 +19,14 @@ export interface ResultAssemblerConfig {
16
19
  log: Logger
17
20
  emitEvent: EmitEvent
18
21
  drainPending: () => Generator<RunEvent>
22
+ /**
23
+ * The state a host should resume from if the run settles recoverably.
24
+ *
25
+ * A function rather than a value: checkpoints are written per iteration,
26
+ * so the answer changes as the run proceeds and reading it at
27
+ * construction would pin the first one forever.
28
+ */
29
+ resumeCheckpointId?: () => CheckpointId | undefined
19
30
  }
20
31
 
21
32
  export class ResultAssembler {
@@ -62,6 +73,51 @@ export class ResultAssembler {
62
73
  async *handleError(err: unknown, rootSpan: Span): AsyncGenerator<RunEvent> {
63
74
  const { runMgr, planManager, log, emitEvent, drainPending } = this.config
64
75
  const errorMessage = toErrorMessage(err)
76
+ // The classifier at the provider boundary already walked the cause
77
+ // chain over status, errno and `Retry-After`, so a fully-populated
78
+ // error arrives here — and used to be flattened to a string one line
79
+ // later, discarding every field of it. `toPlatformError` is the
80
+ // projection that was written for exactly this and had no callers.
81
+ const failure = toPlatformError(err)
82
+
83
+ // A transient failure that survived every in-turn recovery is not the
84
+ // same thing as a bad API key, and settling both as `failed` gave the
85
+ // host no way to tell them apart — recovery meant knowing about
86
+ // checkpoints and driving replay itself. The state is already there:
87
+ // checkpoints are written every iteration by default. Only the settle
88
+ // and the signal were missing.
89
+ const resumeFrom = failure.retryable ? this.config.resumeCheckpointId?.() : undefined
90
+ if (resumeFrom !== undefined) {
91
+ runMgr.setLastError(errorMessage)
92
+ runMgr.setStopReason('paused')
93
+
94
+ await emitEvent({
95
+ type: 'run_paused',
96
+ runId: runMgr.id,
97
+ checkpointId: resumeFrom,
98
+ reason: errorMessage,
99
+ })
100
+ yield* drainPending()
101
+
102
+ // OK, not ERROR: the run is resumable, and a span marked failed
103
+ // puts it in an error dashboard it does not belong in.
104
+ rootSpan.setAttributes({
105
+ [NAMZU.RUN_STATUS]: 'paused',
106
+ [NAMZU.ITERATION]: runMgr.currentIteration,
107
+ })
108
+ rootSpan.setStatus({ code: SpanStatusCode.OK })
109
+
110
+ log.warn('Run paused on a recoverable failure — resume from the checkpoint', {
111
+ runId: runMgr.id,
112
+ checkpointId: resumeFrom,
113
+ code: failure.code,
114
+ error: errorMessage,
115
+ })
116
+ return
117
+ }
118
+
119
+ // The driver's classification, carried onto the run so a host can
120
+ // branch on WHAT failed without re-parsing a sentence.
65
121
  const providerError = isProviderRequestError(err)
66
122
  ? {
67
123
  kind: err.kind,
@@ -76,11 +132,19 @@ export class ResultAssembler {
76
132
  planManager.failPlan(errorMessage)
77
133
  }
78
134
 
135
+ // The classification says what kind of failure it is; the catalog
136
+ // says what a person should do about it. Keeping them separate is the
137
+ // point — classification is structural and belongs at the boundary,
138
+ // remediation is editorial and belongs in a list a human appends to.
139
+ const explanation = explainError(err) ?? undefined
140
+
79
141
  await emitEvent({
80
142
  type: 'run_failed',
81
143
  runId: runMgr.id,
82
144
  error: errorMessage,
145
+ failure,
83
146
  ...(providerError ? { providerError } : {}),
147
+ ...(explanation ? { explanation } : {}),
84
148
  })
85
149
  yield* drainPending()
86
150