@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,5 +1,6 @@
1
1
  import { z } from 'zod'
2
2
  import type { PlanManager } from '../../manager/plan/lifecycle.js'
3
+ import type { PendingAnswers, QuestionParkRecorder } from '../../runtime/query/question-park.js'
3
4
  import type { AgentRuntimeContext } from '../../types/agent/base.js'
4
5
  import type { TaskGateway } from '../../types/agent/gateway.js'
5
6
  import type { ResumeHandler, UserQuestionOption } from '../../types/hitl/index.js'
@@ -45,6 +46,27 @@ export interface CoordinatorToolsOptions {
45
46
  * runId the park request cannot be addressed.
46
47
  */
47
48
  resumeHandler?: ResumeHandler
49
+
50
+ /**
51
+ * Makes a question park durable and visible.
52
+ *
53
+ * Without it the park exists only as a suspended `await` inside one
54
+ * process — nothing on disk says a human owes this run an answer, and a
55
+ * remote host cannot observe the question at all. Optional because a
56
+ * host driving the tools directly may have no checkpoint store.
57
+ */
58
+ questionParks?: QuestionParkRecorder
59
+
60
+ /**
61
+ * Answers carried in from a resumed run, keyed by `questionId`.
62
+ *
63
+ * Consulted BEFORE the park handler: a re-entered `ask_user_question`
64
+ * must return the answer that was already given rather than asking
65
+ * again. Without it, resuming re-parks a question the user answered —
66
+ * and in a headless resume that either deadlocks or auto-answers with
67
+ * the no-consent sentinel, discarding the real answer.
68
+ */
69
+ pendingAnswers?: PendingAnswers
48
70
  }
49
71
 
50
72
  const approvePlanStepSchema = z.object({
@@ -56,6 +78,59 @@ const approvePlanStepSchema = z.object({
56
78
  depends_on: z.array(z.string()).optional().describe('Step descriptions this depends on'),
57
79
  })
58
80
 
81
+ /**
82
+ * The single closed shape a capable provider constrains this call to.
83
+ *
84
+ * `options` arriving as a STRING is the failure this exists for: a model that
85
+ * serializes the array once tends to keep doing it, and the parse error it
86
+ * gets back never says the array was the problem.
87
+ * `additionalProperties: false` turns that into a refusal at generation time
88
+ * rather than a rejection after the fact.
89
+ */
90
+ const askUserQuestionModelInputSchema: Record<string, unknown> = {
91
+ type: 'object',
92
+ properties: {
93
+ question: {
94
+ type: 'string',
95
+ description: 'Full question text — clear, specific, and ending with a question mark.',
96
+ },
97
+ header: {
98
+ type: 'string',
99
+ description: 'Optional very short topic label, no more than 24 characters.',
100
+ },
101
+ options: {
102
+ type: 'array',
103
+ description: 'A JSON array of 2-4 genuinely distinct, context-derived option objects.',
104
+ items: {
105
+ type: 'object',
106
+ properties: {
107
+ label: {
108
+ type: 'string',
109
+ description:
110
+ 'Concise option label. Put the recommended option first and append " (Recommended)".',
111
+ },
112
+ description: {
113
+ type: 'string',
114
+ description: 'Optional one-line explanation of what changes if selected.',
115
+ },
116
+ },
117
+ required: ['label'],
118
+ additionalProperties: false,
119
+ },
120
+ },
121
+ multiSelect: {
122
+ type: 'boolean',
123
+ description: 'True only when several options can apply at once.',
124
+ },
125
+ allowFreeText: {
126
+ type: 'boolean',
127
+ description: 'Whether the user may answer in their own words.',
128
+ },
129
+ },
130
+ required: ['question', 'options'],
131
+ additionalProperties: false,
132
+ }
133
+
59
134
  function normalizeApprovePlanSteps(value: unknown): unknown {
60
135
  if (typeof value !== 'string') return value
61
136
 
@@ -93,6 +168,8 @@ export function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefini
93
168
  runId,
94
169
  getPlanManager,
95
170
  resumeHandler,
171
+ questionParks,
172
+ pendingAnswers,
96
173
  // `onTaskLaunched` was the entry point for the old
97
174
  // non-blocking + envelope-injection flow. create_task is now
98
175
  // blocking, so the callback is no longer wired here.
@@ -154,16 +231,18 @@ export function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefini
154
231
  prompt,
155
232
  workingDirectory: cwd,
156
233
  runtimeContext: opts.runtimeContext,
234
+ // Hang the child run off THIS tool's span, so the delegation
235
+ // shows up inside the turn that asked for it.
236
+ ...(_context.parentSpan ? { parentSpan: _context.parentSpan } : {}),
157
237
  })
158
238
 
159
- // Industrial-standard Anthropic tool pattern: tool returns
160
- // its real result as the tool_result for the dispatching
161
- // tool_use. Parallel fan-out happens at the executor layer
162
- // when the supervisor emits N create_task blocks in one
163
- // assistant turn, the runtime runs them with Promise.all
164
- // and delivers all N tool_results together. No async
165
- // envelope injection, no second tool_result for the same
166
- // tool_use_id (which Anthropic rejects with 400).
239
+ // The tool returns its real result as the `tool_result` for the
240
+ // dispatching `tool_use`. Parallel fan-out happens at the executor
241
+ // layer: when the supervisor emits N `create_task` blocks in one
242
+ // assistant turn, the runtime runs them together and delivers all
243
+ // N `tool_result`s at once. No async envelope injection, and no
244
+ // second `tool_result` for the same `tool_use_id` providers
245
+ // reject a duplicated id outright.
167
246
  const completed = await gateway.waitForTask(handle.taskId)
168
247
  const success = completed.state === 'completed'
169
248
  const resultText =
@@ -227,6 +306,28 @@ export function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefini
227
306
  },
228
307
  })
229
308
 
309
+ const cancelTask = defineTool({
310
+ name: 'cancel_task',
311
+ description:
312
+ 'Cancel a running agent task. Only use this with a task_id from a previous create_task.',
313
+ inputSchema: z.object({
314
+ task_id: z.string().describe('Agent task ID from a previous create_task'),
315
+ }),
316
+ category: 'custom',
317
+ permissions: [],
318
+ readOnly: false,
319
+ destructive: false,
320
+ concurrencySafe: true,
321
+ async execute({ task_id }) {
322
+ gateway.cancelTask(task_id as TaskId)
323
+ return {
324
+ success: true,
325
+ output: `Task ${task_id} cancelled`,
326
+ data: { task_id },
327
+ }
328
+ },
329
+ })
330
+
230
331
  const agentTaskList = defineTool({
231
332
  name: 'agent_task_list',
232
333
  description:
@@ -283,17 +384,24 @@ export function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefini
283
384
  },
284
385
  })
285
386
 
286
- // `continue_task` and model-facing per-task cancellation both
287
- // belonged to the old non-blocking worker protocol. With
288
- // `create_task` now blocking + tool_result returning the worker's
289
- // final output, every worker is terminal by the time a later model
290
- // turn learns its task id. The old cancel tool additionally called
291
- // a void/no-op gateway method and manufactured "cancelled" even for
292
- // a missing id. Host-owned run interruption still uses the gateway
293
- // cancellation contract directly; it does not need a model tool.
294
- // Keep only the follow-up definition for a future non-default
295
- // gateway that deliberately preserves live workers between turns.
387
+ // `continue_task` was a follow-up channel for a still-alive worker
388
+ // task. With `create_task` now blocking + tool_result returning
389
+ // the worker's final output, every worker reaches a terminal
390
+ // state by the time the supervisor wants to follow up and the
391
+ // agent manager rejects `continue` on terminal tasks. The
392
+ // industrial pattern is to issue a fresh `create_task` that
393
+ // references the prior worker's output path, so we drop
394
+ // `continue_task` from the registered surface entirely. The
395
+ // definition stays in this file for now in case a future
396
+ // non-default gateway (one that keeps the worker process alive
397
+ // for follow-ups) wants to re-register it.
296
398
  void continueTask
399
+ // Per-task cancellation belonged to the old non-blocking worker protocol.
400
+ // `create_task` blocks and returns the worker output as its tool_result, so
401
+ // every worker is terminal by the time a later turn learns its id — the tool
402
+ // could only ever manufacture a "cancelled" for something already done.
403
+ // Host-owned interruption still uses the gateway contract directly.
404
+ void cancelTask
297
405
  const tools: ToolDefinition[] = [createTask, agentTaskList]
298
406
 
299
407
  if (getPlanManager) {
@@ -382,47 +490,55 @@ export function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefini
382
490
  name: 'ask_user_question',
383
491
  description:
384
492
  'Ask the user ONE question ONLY when you are blocked on a decision that is genuinely theirs to make — one you cannot resolve from their request, your tools, the files you can read, or sensible defaults. The question must be the genuinely undecidable thing in THIS task. Never ask for information a tool can discover (do not ask what you can read, list, or search), never re-ask what the conversation already answers, and never ask meta-questions like "Shall I proceed?" — plan ratification goes through approve_plan. Provide 2-4 genuinely distinct options derived from the actual context — concrete paths, never generic placeholders (for example, asked to prepare a presentation, ask "Who is the audience?" with options like Board / Engineering team / Customer); keep labels short (1-5 words) and give each option a one-line description of what practically changes if it is chosen. Put your recommended option FIRST and append " (Recommended)" to its label. Set multiSelect: true only when several options can apply at once. A free-text "Something else" escape hatch is always shown automatically — do not add your own "Other" option. Ask ONE question per call and prefer at most one question per assistant turn; if several decisions block you, ask only the ones that materially change your next actions, in sequence — most work needs at most 2-3 questions, so prefer proceeding on stated defaults over interrogating the user. Never invent answers or synthetic content on the user\'s behalf unless they explicitly asked for a random/test scenario. The answer arrives as this tool\'s result; if the result says the user did not answer, do not ask this or any other question again — proceed on your best judgment without assuming consent.',
385
- inputSchema: z.object({
386
- question: z
387
- .string()
388
- .min(1)
389
- .describe('Full question text — clear, specific, ends with a question mark.'),
390
- header: z
391
- .string()
392
- .max(24)
393
- .optional()
394
- .describe('Very short topic label for the question (e.g. "Audience", "Auth method").'),
395
- options: z
396
- .array(
397
- z.object({
398
- label: z
399
- .string()
400
- .min(1)
401
- .max(80)
402
- .describe(
403
- 'Concise option label (1-5 words). Recommended option goes first with " (Recommended)" appended.',
404
- ),
405
- description: z
406
- .string()
407
- .max(300)
408
- .optional()
409
- .describe('One line on what practically changes if this option is chosen.'),
410
- }),
411
- )
412
- .min(2)
413
- .max(4)
414
- .describe('2-4 genuinely distinct, context-derived options.'),
415
- multiSelect: z
416
- .boolean()
417
- .optional()
418
- .default(false)
419
- .describe('True only when several options can apply at once.'),
420
- allowFreeText: z
421
- .boolean()
422
- .optional()
423
- .default(true)
424
- .describe('Whether the user may answer in their own words.'),
425
- }),
493
+ inputSchema: z
494
+ .object({
495
+ question: z
496
+ .string()
497
+ .min(1)
498
+ .describe('Full question text — clear, specific, ends with a question mark.'),
499
+ header: z
500
+ .string()
501
+ .max(24)
502
+ .optional()
503
+ .describe('Very short topic label for the question (e.g. "Audience", "Auth method").'),
504
+ options: z
505
+ .array(
506
+ z
507
+ .object({
508
+ label: z
509
+ .string()
510
+ .min(1)
511
+ .max(80)
512
+ .describe(
513
+ 'Concise option label (1-5 words). Recommended option goes first with " (Recommended)" appended.',
514
+ ),
515
+ description: z
516
+ .string()
517
+ .max(300)
518
+ .optional()
519
+ .describe('One line on what practically changes if this option is chosen.'),
520
+ })
521
+ .strict(),
522
+ )
523
+ .min(2)
524
+ .max(4)
525
+ .describe('2-4 genuinely distinct, context-derived options.'),
526
+ multiSelect: z
527
+ .boolean()
528
+ .optional()
529
+ .default(false)
530
+ .describe('True only when several options can apply at once.'),
531
+ allowFreeText: z
532
+ .boolean()
533
+ .optional()
534
+ .default(true)
535
+ .describe('Whether the user may answer in their own words.'),
536
+ })
537
+ .strict(),
538
+ modelInputSchema: structuredClone(askUserQuestionModelInputSchema),
539
+ enforceModelInput: true,
540
+ validationErrorHint:
541
+ 'Required shape: {"question":"...?","options":[{"label":"First (Recommended)","description":"What changes"},{"label":"Second","description":"What changes"}]}. "options" must be a JSON array of 2-4 objects, never a string.',
426
542
  category: 'custom',
427
543
  permissions: [],
428
544
  readOnly: true,
@@ -454,19 +570,44 @@ export function buildCoordinatorTools(opts: CoordinatorToolsOptions): ToolDefini
454
570
  ...(opt.description !== undefined ? { description: opt.description } : {}),
455
571
  }))
456
572
 
457
- const decision = await parkHandler({
458
- type: 'user_question',
459
- runId: parkRunId,
460
- checkpointId: `cp_question_${toolUseId}`,
461
- question: {
462
- questionId: toolUseId,
463
- question,
464
- ...(header !== undefined ? { header } : {}),
465
- options: questionOptions,
466
- multiSelect,
467
- allowFreeText,
468
- },
469
- })
573
+ const questionData = {
574
+ questionId: toolUseId,
575
+ question,
576
+ ...(header !== undefined ? { header } : {}),
577
+ options: questionOptions,
578
+ multiSelect,
579
+ allowFreeText,
580
+ }
581
+
582
+ // An answer carried in from a resumed run. Checked before the
583
+ // park, because re-entering this tool is HOW the answer gets
584
+ // delivered: the batch is re-executed, and without this the
585
+ // re-execution would ask the user something they already
586
+ // answered — or, headless, auto-answer with the no-consent
587
+ // sentinel and throw the real answer away.
588
+ const carried = pendingAnswers?.take(toolUseId)
589
+
590
+ // A real checkpoint, not a synthetic id nothing ever wrote.
591
+ // Skipped when an answer is already in hand: parking a
592
+ // question that is answered would leave an outstanding record
593
+ // for a decision that has been made.
594
+ const parkedAt =
595
+ carried === undefined && questionParks ? await questionParks.record(questionData) : null
596
+
597
+ const decision =
598
+ carried ??
599
+ (await parkHandler({
600
+ type: 'user_question',
601
+ runId: parkRunId,
602
+ checkpointId: parkedAt ?? `cp_question_${toolUseId}`,
603
+ question: questionData,
604
+ }))
605
+
606
+ // Clear the park once the answer is in, so an approval queue
607
+ // stops serving a question that has been answered.
608
+ if (parkedAt !== null && questionParks) {
609
+ await questionParks.resolve(parkedAt, decision)
610
+ }
470
611
 
471
612
  // The no-answer sentinel (explicitly NOT consent — fixes the
472
613
  // "empty answer reads as approval" ambiguity): used for empty
@@ -20,6 +20,22 @@ export interface DefineToolOptions<S extends z.ZodType> {
20
20
  destructive: boolean | ((input: z.infer<S>) => boolean)
21
21
  concurrencySafe: boolean
22
22
  tier?: string
23
+ /** Per-execution deadline; see {@link ToolDefinition.timeoutMs}. */
24
+ timeoutMs?: number
25
+ /**
26
+ * In-loop retry budget for a FAILED execution; see
27
+ * {@link ToolDefinition.maxRetries}.
28
+ *
29
+ * The executor has always read this field, and this builder — the
30
+ * sanctioned way to author a tool — had no way to set it, so the
31
+ * documented "the tool author opts in, per tool" was reachable only by
32
+ * hand-writing the interface.
33
+ */
34
+ maxRetries?: number
35
+ /** Return shape shown to the model; see {@link ToolDefinition.outputSchema}. */
36
+ outputSchema?: Record<string, unknown>
37
+ /** Settle the run with this tool's output; see {@link ToolDefinition.terminal}. */
38
+ terminal?: boolean
23
39
  execute(input: z.infer<S>, context: ToolContext): Promise<ToolResult>
24
40
  }
25
41
 
@@ -36,6 +52,10 @@ export function defineTool<S extends z.ZodType>(
36
52
  enforceModelInput: options.enforceModelInput,
37
53
  validationErrorHint: options.validationErrorHint,
38
54
  tier: options.tier,
55
+ ...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
56
+ ...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
57
+ ...(options.outputSchema !== undefined ? { outputSchema: options.outputSchema } : {}),
58
+ ...(options.terminal !== undefined ? { terminal: options.terminal } : {}),
39
59
  category: options.category,
40
60
  permissions: options.permissions,
41
61
  isReadOnly: () => options.readOnly,
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Glob matching for the sandboxed filesystem tools.
3
+ *
4
+ * The host path hands its pattern to the runtime's own directory walker;
5
+ * inside a sandbox there is only a flat listing to filter, so the matching
6
+ * has to happen here. Written out rather than reached for from the
7
+ * platform: the runtime's glob matcher is still flagged experimental, and
8
+ * an SDK that ships into other people's runtimes should not depend on
9
+ * that.
10
+ *
11
+ * The subset is the one the tools document — `**` across separators, `*`
12
+ * and `?` within one segment. Every other character is escaped, so a
13
+ * pattern containing regex punctuation matches literally instead of
14
+ * quietly becoming a different query.
15
+ */
16
+
17
+ const NEEDS_ESCAPE = /[.+^${}()|[\]\\]/
18
+
19
+ export function globToRegExp(pattern: string): RegExp {
20
+ let out = ''
21
+ for (let i = 0; i < pattern.length; i++) {
22
+ const ch = pattern[i] as string
23
+ if (ch === '*') {
24
+ if (pattern[i + 1] === '*') {
25
+ if (pattern[i + 2] === '/') {
26
+ // `**/` matches zero directories too, so `**/x.ts` finds a
27
+ // top-level `x.ts` — which is what someone writing it means.
28
+ out += '(?:.*/)?'
29
+ i += 2
30
+ } else {
31
+ out += '.*'
32
+ i += 1
33
+ }
34
+ } else {
35
+ out += '[^/]*'
36
+ }
37
+ continue
38
+ }
39
+ if (ch === '?') {
40
+ out += '[^/]'
41
+ continue
42
+ }
43
+ out += NEEDS_ESCAPE.test(ch) ? `\\${ch}` : ch
44
+ }
45
+ return new RegExp(`^${out}$`)
46
+ }
47
+
48
+ export function matchesGlob(path: string, pattern: string): boolean {
49
+ return globToRegExp(pattern).test(path)
50
+ }
@@ -0,0 +1,44 @@
1
+ import { isAbsolute, relative, resolve } from 'node:path'
2
+
3
+ /**
4
+ * Resolve a caller-supplied path against a root, refusing anything that
5
+ * lands outside it.
6
+ *
7
+ * The containment rule existed, in one private function inside the local
8
+ * sandbox provider, and the filesystem tools never reached it. They called
9
+ * `resolve(workingDirectory, input.path)` bare — so `path: "../../.."`
10
+ * resolved to whatever is above the working directory and the tool read it
11
+ * happily. That holds with no sandbox configured at all, which is the
12
+ * common case, so the escape did not need a misconfiguration to reach: a
13
+ * model that asks for a parent directory gets one.
14
+ *
15
+ * `relative()` rather than a `startsWith` prefix test: a prefix test says
16
+ * `/workspace-backup` is inside `/workspace`, and the whole point is to be
17
+ * exact about the boundary.
18
+ */
19
+ export function resolveWithin(root: string, candidate: string | undefined): string {
20
+ if (candidate === undefined || candidate === '') return resolve(root)
21
+
22
+ const resolvedRoot = resolve(root)
23
+ const resolved = resolve(resolvedRoot, candidate)
24
+ const rel = relative(resolvedRoot, resolved)
25
+
26
+ // An absolute `rel` means the two paths share no root at all (a
27
+ // different drive on Windows); a leading `..` means it climbed out.
28
+ if (rel.startsWith('..') || isAbsolute(rel)) {
29
+ throw new Error(
30
+ `Path escapes the working directory: ${candidate}. Tools may only reach inside ${resolvedRoot}.`,
31
+ )
32
+ }
33
+ return resolved
34
+ }
35
+
36
+ /** True when `candidate` resolves inside `root`. */
37
+ export function isWithin(root: string, candidate: string): boolean {
38
+ try {
39
+ resolveWithin(root, candidate)
40
+ return true
41
+ } catch {
42
+ return false
43
+ }
44
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Path arithmetic in the SANDBOX's coordinate system.
3
+ *
4
+ * A sandbox is a POSIX filesystem whatever the host runs, so resolving its
5
+ * paths with the host's path module rewrites them whenever the two
6
+ * disagree: on a Windows host, `resolve('/workspace')` becomes
7
+ * `C:\workspace` and a container path stops being a container path. The
8
+ * tool then hands the model a string its own sandbox cannot open — which
9
+ * is the same class of failure as reporting host-relative paths from a
10
+ * sandboxed search, just one layer lower.
11
+ *
12
+ * These are deliberately small: join, relativise, and refuse an escape.
13
+ * Nothing here touches the host filesystem.
14
+ */
15
+
16
+ function normalizeSegments(path: string): string[] {
17
+ const out: string[] = []
18
+ for (const segment of path.split('/')) {
19
+ if (segment === '' || segment === '.') continue
20
+ if (segment === '..') {
21
+ // Popping past the root is how a climb-out starts; the caller
22
+ // decides what to do about it via `resolveWithinPosix`.
23
+ if (out.length > 0 && out[out.length - 1] !== '..') out.pop()
24
+ else out.push('..')
25
+ continue
26
+ }
27
+ out.push(segment)
28
+ }
29
+ return out
30
+ }
31
+
32
+ /** Join, normalising `.` and `..`. Absolute in, absolute out. */
33
+ export function joinPosix(base: string, ...parts: string[]): string {
34
+ const absolute = base.startsWith('/')
35
+ const segments = normalizeSegments([base, ...parts].join('/'))
36
+ return (absolute ? '/' : '') + segments.join('/')
37
+ }
38
+
39
+ /** `to` expressed relative to `from`, or `to` itself when unrelated. */
40
+ export function relativePosix(from: string, to: string): string {
41
+ const fromSegments = normalizeSegments(from)
42
+ const toSegments = normalizeSegments(to)
43
+
44
+ let shared = 0
45
+ while (
46
+ shared < fromSegments.length &&
47
+ shared < toSegments.length &&
48
+ fromSegments[shared] === toSegments[shared]
49
+ ) {
50
+ shared++
51
+ }
52
+
53
+ const up = fromSegments.slice(shared).map(() => '..')
54
+ return [...up, ...toSegments.slice(shared)].join('/')
55
+ }
56
+
57
+ /**
58
+ * Resolve `candidate` against `root`, refusing anything that lands
59
+ * outside. The sandbox-side twin of the host containment check.
60
+ */
61
+ export function resolveWithinPosix(root: string, candidate: string | undefined): string {
62
+ if (candidate === undefined || candidate === '') return joinPosix(root)
63
+
64
+ // An absolute candidate is taken as sandbox-absolute, not appended.
65
+ const resolved = candidate.startsWith('/') ? joinPosix(candidate) : joinPosix(root, candidate)
66
+ const rel = relativePosix(root, resolved)
67
+ if (rel.startsWith('..')) {
68
+ throw new Error(
69
+ `Path escapes the working directory: ${candidate}. Tools may only reach inside ${root}.`,
70
+ )
71
+ }
72
+ return resolved
73
+ }
@@ -1,3 +1,4 @@
1
+ import type { ModelPricing } from '../../utils/cost.js'
1
2
  import type { AgentPersona } from '../persona/index.js'
2
3
  import type { LLMProvider } from '../provider/index.js'
3
4
  import type { AdvisoryTrigger } from './trigger.js'
@@ -14,14 +15,31 @@ export interface AdvisorDefinition {
14
15
  readonly useCompactedContext?: boolean
15
16
  readonly maxResponseTokens?: number
16
17
  readonly temperature?: number
18
+ /**
19
+ * What this advisor's model costs. Absent means cost is not measured,
20
+ * which is fine until a cost cap is set — see {@link AdvisoryBudget}.
21
+ */
22
+ readonly pricing?: ModelPricing
17
23
  }
18
24
 
25
+ /**
26
+ * Bounds on what a run may spend on advice.
27
+ *
28
+ * Every cap here is enforced. Per-SESSION caps used to be declared beside
29
+ * these and were not: the advisory stack is built once per run, so there was
30
+ * no accumulator that outlived one, and the field could only ever read as a
31
+ * promise. A host that wants a session bound holds it where sessions live.
32
+ */
19
33
  export interface AdvisoryBudget {
34
+ /** Advisory calls allowed in one run. Checked before each call. */
20
35
  readonly maxCallsPerRun?: number
21
- readonly maxCallsPerSession?: number
22
- readonly maxCostPerCall?: number
36
+ /**
37
+ * Total advisory spend allowed in one run, in the same units as
38
+ * {@link ModelPricing}. Requires every advisor to carry `pricing`;
39
+ * a run configured otherwise is refused rather than left uncapped.
40
+ */
23
41
  readonly maxCostPerRun?: number
24
- readonly maxCostPerSession?: number
42
+ /** Response-token ceiling applied to each call, clamping the advisor's own. */
25
43
  readonly maxTokensPerCall?: number
26
44
  }
27
45
 
@@ -8,17 +8,22 @@ export interface AdvisoryRequest {
8
8
  readonly includeContext?: boolean
9
9
  }
10
10
 
11
+ /**
12
+ * What an advisor answered.
13
+ *
14
+ * Three more fields — a plan, a model suggestion, per-category tool guidance —
15
+ * were declared here with neither a producer nor a reader, so they described
16
+ * a shape the runtime never built and nothing ever branched on. The two that
17
+ * remain are produced by the parser and consumed: decisions land in working
18
+ * state and survive compaction, warnings are rendered back to the executing
19
+ * agent.
20
+ */
11
21
  export interface AdvisoryResult {
12
22
  readonly advice: string
13
- readonly plan?: Array<{ step: string; status?: string }>
23
+ /** Carried into working state, so they outlive the context they were given in. */
14
24
  readonly decisions?: string[]
25
+ /** Rendered back to the executing agent under their own heading. */
15
26
  readonly warnings?: string[]
16
- readonly modelSuggestion?: string
17
- readonly toolGuidance?: Array<{
18
- readonly category: string
19
- readonly recommendation: 'prefer' | 'avoid' | 'required'
20
- readonly reason?: string
21
- }>
22
27
  }
23
28
 
24
29
  export interface AdvisoryCallRecord {
@@ -23,6 +23,23 @@ export interface BaseAgentConfig {
23
23
  permissionMode?: PermissionMode
24
24
  env?: Record<string, string>
25
25
 
26
+ /**
27
+ * Deduplicate a retried invocation instead of running it twice.
28
+ *
29
+ * The failure this exists for: a caller sends a request, the
30
+ * connection drops, the caller retries. Without a key the retry is a
31
+ * second full run — a second set of model calls, and a second set of
32
+ * whatever the tools did. A duplicate arriving while the first is
33
+ * still running awaits it and receives its result, error included.
34
+ *
35
+ * In-flight only. A retry that arrives after the first has settled
36
+ * runs again, because keeping the answer would turn deduplication
37
+ * into caching and staleness is the host's judgement, not the SDK's.
38
+ * Instance-scoped, like the invocation lock: deduplicating across
39
+ * processes needs somewhere durable to record the key.
40
+ */
41
+ idempotencyKey?: string
42
+
26
43
  /**
27
44
  * Long-lived goal scope for the run. Required at runtime — agents reject
28
45
  * configs missing this (`'X requires sessionId, projectId, and tenantId
@@ -58,6 +75,9 @@ export interface BaseAgentConfig {
58
75
 
59
76
  /** Shared invocation state passed through agent hierarchies */
60
77
  invocationState?: InvocationState
78
+
79
+ /** Span a delegated run hangs off. Absent for a top-level run. */
80
+ parentSpan?: import('@opentelemetry/api').Span
61
81
  }
62
82
 
63
83
  export type RuntimeToolOverrides = Record<string, ToolAvailability | 'disabled'>
@@ -68,8 +88,8 @@ export interface AgentRuntimeContext {
68
88
  /**
69
89
  * Optional working/scratch directory the runtime exposes to the
70
90
  * agent — sibling to `outputDirectory`, invisible to the
71
- * output collector. Mirrors the Anthropic Cowork pattern
72
- * where `/home/claude` is scratch and `/mnt/user-data/outputs` is
91
+ * output collector. Follows the same separation as the container layout
92
+ * where the scratch bind is invisible and `/mnt/user-data/outputs` is
73
93
  * user-visible.
74
94
  */
75
95
  scratchDirectory?: string