@namzu/sdk 46.0.0 → 48.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 (768) hide show
  1. package/CHANGELOG.md +351 -8
  2. package/README.md +7 -8
  3. package/dist/advisory/history.d.ts.map +1 -1
  4. package/dist/advisory/history.js +21 -1
  5. package/dist/advisory/history.js.map +1 -1
  6. package/dist/advisory/index.d.ts +1 -1
  7. package/dist/advisory/index.d.ts.map +1 -1
  8. package/dist/advisory/index.js +1 -1
  9. package/dist/advisory/index.js.map +1 -1
  10. package/dist/advisory/registry.d.ts +17 -0
  11. package/dist/advisory/registry.d.ts.map +1 -1
  12. package/dist/advisory/registry.js +26 -0
  13. package/dist/advisory/registry.js.map +1 -1
  14. package/dist/agents/PipelineAgent.d.ts +2 -46
  15. package/dist/agents/PipelineAgent.d.ts.map +1 -1
  16. package/dist/agents/PipelineAgent.js +2 -242
  17. package/dist/agents/PipelineAgent.js.map +1 -1
  18. package/dist/agents/QueryAgent.d.ts +21 -0
  19. package/dist/agents/QueryAgent.d.ts.map +1 -0
  20. package/dist/agents/QueryAgent.js +214 -0
  21. package/dist/agents/QueryAgent.js.map +1 -0
  22. package/dist/agents/ReactiveAgent.d.ts +4 -16
  23. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  24. package/dist/agents/ReactiveAgent.js +4 -183
  25. package/dist/agents/ReactiveAgent.js.map +1 -1
  26. package/dist/agents/RouterAgent.d.ts +2 -20
  27. package/dist/agents/RouterAgent.d.ts.map +1 -1
  28. package/dist/agents/RouterAgent.js +2 -266
  29. package/dist/agents/RouterAgent.js.map +1 -1
  30. package/dist/agents/SupervisorAgent.d.ts +3 -43
  31. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  32. package/dist/agents/SupervisorAgent.js +3 -418
  33. package/dist/agents/SupervisorAgent.js.map +1 -1
  34. package/dist/agents/defineAgent.d.ts +2 -1
  35. package/dist/agents/defineAgent.d.ts.map +1 -1
  36. package/dist/agents/defineAgent.js +6 -1
  37. package/dist/agents/defineAgent.js.map +1 -1
  38. package/dist/agents/examples/PipelineAgent.d.ts +46 -0
  39. package/dist/agents/examples/PipelineAgent.d.ts.map +1 -0
  40. package/dist/agents/examples/PipelineAgent.js +242 -0
  41. package/dist/agents/examples/PipelineAgent.js.map +1 -0
  42. package/dist/agents/examples/RouterAgent.d.ts +22 -0
  43. package/dist/agents/examples/RouterAgent.d.ts.map +1 -0
  44. package/dist/agents/examples/RouterAgent.js +268 -0
  45. package/dist/agents/examples/RouterAgent.js.map +1 -0
  46. package/dist/agents/examples/SupervisorAgent.d.ts +45 -0
  47. package/dist/agents/examples/SupervisorAgent.d.ts.map +1 -0
  48. package/dist/agents/examples/SupervisorAgent.js +406 -0
  49. package/dist/agents/examples/SupervisorAgent.js.map +1 -0
  50. package/dist/agents/explore.d.ts +6 -3
  51. package/dist/agents/explore.d.ts.map +1 -1
  52. package/dist/agents/explore.js +6 -3
  53. package/dist/agents/explore.js.map +1 -1
  54. package/dist/agents/forward-options.d.ts +11 -0
  55. package/dist/agents/forward-options.d.ts.map +1 -0
  56. package/dist/agents/forward-options.js +15 -0
  57. package/dist/agents/forward-options.js.map +1 -0
  58. package/dist/agents/index.d.ts +1 -0
  59. package/dist/agents/index.d.ts.map +1 -1
  60. package/dist/agents/index.js +2 -0
  61. package/dist/agents/index.js.map +1 -1
  62. package/dist/agents/runAgent.d.ts +19 -8
  63. package/dist/agents/runAgent.d.ts.map +1 -1
  64. package/dist/agents/runAgent.js +99 -29
  65. package/dist/agents/runAgent.js.map +1 -1
  66. package/dist/authorization/command-line.d.ts +2 -0
  67. package/dist/authorization/command-line.d.ts.map +1 -1
  68. package/dist/authorization/command-line.js +2 -2
  69. package/dist/authorization/command-line.js.map +1 -1
  70. package/dist/authorization/gate.d.ts +8 -0
  71. package/dist/authorization/gate.d.ts.map +1 -1
  72. package/dist/authorization/gate.js +12 -1
  73. package/dist/authorization/gate.js.map +1 -1
  74. package/dist/authorization/program.d.ts +151 -0
  75. package/dist/authorization/program.d.ts.map +1 -0
  76. package/dist/authorization/program.js +713 -0
  77. package/dist/authorization/program.js.map +1 -0
  78. package/dist/authorization/reexec-wrapper.d.ts +106 -0
  79. package/dist/authorization/reexec-wrapper.d.ts.map +1 -0
  80. package/dist/authorization/reexec-wrapper.js +532 -0
  81. package/dist/authorization/reexec-wrapper.js.map +1 -0
  82. package/dist/authorization/rules.d.ts +9 -0
  83. package/dist/authorization/rules.d.ts.map +1 -1
  84. package/dist/authorization/rules.js +8 -1
  85. package/dist/authorization/rules.js.map +1 -1
  86. package/dist/authorization/shell-lexer.d.ts +19 -4
  87. package/dist/authorization/shell-lexer.d.ts.map +1 -1
  88. package/dist/authorization/shell-lexer.js +91 -65
  89. package/dist/authorization/shell-lexer.js.map +1 -1
  90. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  91. package/dist/bridge/sse/mapper.js +6 -0
  92. package/dist/bridge/sse/mapper.js.map +1 -1
  93. package/dist/capabilities/index.d.ts +54 -0
  94. package/dist/capabilities/index.d.ts.map +1 -0
  95. package/dist/capabilities/index.js +92 -0
  96. package/dist/capabilities/index.js.map +1 -0
  97. package/dist/config/registry.d.ts +2 -1
  98. package/dist/config/registry.d.ts.map +1 -1
  99. package/dist/config/registry.js +3 -2
  100. package/dist/config/registry.js.map +1 -1
  101. package/dist/connector/index.d.ts +4 -4
  102. package/dist/connector/index.d.ts.map +1 -1
  103. package/dist/connector/index.js +3 -3
  104. package/dist/connector/index.js.map +1 -1
  105. package/dist/connector/mcp/adapter.d.ts +16 -1
  106. package/dist/connector/mcp/adapter.d.ts.map +1 -1
  107. package/dist/connector/mcp/adapter.js +71 -4
  108. package/dist/connector/mcp/adapter.js.map +1 -1
  109. package/dist/connector/mcp/client.d.ts +32 -4
  110. package/dist/connector/mcp/client.d.ts.map +1 -1
  111. package/dist/connector/mcp/client.js +383 -5
  112. package/dist/connector/mcp/client.js.map +1 -1
  113. package/dist/connector/mcp/discovery.d.ts +24 -1
  114. package/dist/connector/mcp/discovery.d.ts.map +1 -1
  115. package/dist/connector/mcp/discovery.js +44 -0
  116. package/dist/connector/mcp/discovery.js.map +1 -1
  117. package/dist/connector/mcp/era.d.ts.map +1 -1
  118. package/dist/connector/mcp/era.js +7 -0
  119. package/dist/connector/mcp/era.js.map +1 -1
  120. package/dist/connector/mcp/index.d.ts +2 -0
  121. package/dist/connector/mcp/index.d.ts.map +1 -1
  122. package/dist/connector/mcp/index.js +11 -0
  123. package/dist/connector/mcp/index.js.map +1 -1
  124. package/dist/connector/mcp/mcp-toolset.d.ts +133 -0
  125. package/dist/connector/mcp/mcp-toolset.d.ts.map +1 -0
  126. package/dist/connector/mcp/mcp-toolset.js +399 -0
  127. package/dist/connector/mcp/mcp-toolset.js.map +1 -0
  128. package/dist/connector/mcp/streamable-http.d.ts +15 -0
  129. package/dist/connector/mcp/streamable-http.d.ts.map +1 -1
  130. package/dist/connector/mcp/streamable-http.js +281 -6
  131. package/dist/connector/mcp/streamable-http.js.map +1 -1
  132. package/dist/connector/tools/index.d.ts +2 -2
  133. package/dist/connector/tools/index.d.ts.map +1 -1
  134. package/dist/connector/tools/index.js +1 -1
  135. package/dist/connector/tools/index.js.map +1 -1
  136. package/dist/connector/tools/router.d.ts +15 -13
  137. package/dist/connector/tools/router.d.ts.map +1 -1
  138. package/dist/connector/tools/router.js +30 -51
  139. package/dist/connector/tools/router.js.map +1 -1
  140. package/dist/contracts/a2a.d.ts +2 -2
  141. package/dist/directory/derive-supervisor.d.ts +2 -2
  142. package/dist/directory/derive-supervisor.d.ts.map +1 -1
  143. package/dist/directory/derive-supervisor.js +6 -7
  144. package/dist/directory/derive-supervisor.js.map +1 -1
  145. package/dist/directory/derive.d.ts.map +1 -1
  146. package/dist/directory/derive.js +5 -5
  147. package/dist/directory/derive.js.map +1 -1
  148. package/dist/execution/code-runtime/types.d.ts +2 -2
  149. package/dist/execution/code-runtime/types.js +1 -1
  150. package/dist/invariants/index.d.ts +2 -1
  151. package/dist/invariants/index.d.ts.map +1 -1
  152. package/dist/invariants/index.js +3 -2
  153. package/dist/invariants/index.js.map +1 -1
  154. package/dist/manager/agent/lifecycle.d.ts +1 -0
  155. package/dist/manager/agent/lifecycle.d.ts.map +1 -1
  156. package/dist/manager/agent/lifecycle.js +146 -18
  157. package/dist/manager/agent/lifecycle.js.map +1 -1
  158. package/dist/manager/connector/environment.d.ts +6 -0
  159. package/dist/manager/connector/environment.d.ts.map +1 -1
  160. package/dist/manager/connector/environment.js +11 -4
  161. package/dist/manager/connector/environment.js.map +1 -1
  162. package/dist/manager/connector/index.d.ts +2 -2
  163. package/dist/manager/connector/index.d.ts.map +1 -1
  164. package/dist/manager/connector/index.js +2 -2
  165. package/dist/manager/connector/index.js.map +1 -1
  166. package/dist/manager/connector/tenant.d.ts +6 -0
  167. package/dist/manager/connector/tenant.d.ts.map +1 -1
  168. package/dist/manager/connector/tenant.js +11 -4
  169. package/dist/manager/connector/tenant.js.map +1 -1
  170. package/dist/manager/index.d.ts +2 -2
  171. package/dist/manager/index.d.ts.map +1 -1
  172. package/dist/manager/index.js +2 -2
  173. package/dist/manager/index.js.map +1 -1
  174. package/dist/manager/resident/initiative.d.ts +6 -6
  175. package/dist/manager/resident/learning-observation.d.ts +4 -4
  176. package/dist/manager/resident/learning.d.ts +36 -36
  177. package/dist/manager/resident/outbox.d.ts +4 -4
  178. package/dist/manager/session/attribution.d.ts +22 -0
  179. package/dist/manager/session/attribution.d.ts.map +1 -0
  180. package/dist/manager/session/attribution.js +64 -0
  181. package/dist/manager/session/attribution.js.map +1 -0
  182. package/dist/manager/session/turn-recorder.d.ts +14 -0
  183. package/dist/manager/session/turn-recorder.d.ts.map +1 -1
  184. package/dist/manager/session/turn-recorder.js +208 -55
  185. package/dist/manager/session/turn-recorder.js.map +1 -1
  186. package/dist/peers/address.d.ts +36 -0
  187. package/dist/peers/address.d.ts.map +1 -0
  188. package/dist/peers/address.js +52 -0
  189. package/dist/peers/address.js.map +1 -0
  190. package/dist/peers/client.d.ts +47 -0
  191. package/dist/peers/client.d.ts.map +1 -0
  192. package/dist/peers/client.js +132 -0
  193. package/dist/peers/client.js.map +1 -0
  194. package/dist/peers/dir.d.ts +88 -0
  195. package/dist/peers/dir.d.ts.map +1 -0
  196. package/dist/peers/dir.js +139 -0
  197. package/dist/peers/dir.js.map +1 -0
  198. package/dist/peers/endpoint.d.ts +144 -0
  199. package/dist/peers/endpoint.d.ts.map +1 -0
  200. package/dist/peers/endpoint.js +420 -0
  201. package/dist/peers/endpoint.js.map +1 -0
  202. package/dist/peers/envelope.d.ts +42 -0
  203. package/dist/peers/envelope.d.ts.map +1 -0
  204. package/dist/peers/envelope.js +110 -0
  205. package/dist/peers/envelope.js.map +1 -0
  206. package/dist/peers/index.d.ts +30 -0
  207. package/dist/peers/index.d.ts.map +1 -0
  208. package/dist/peers/index.js +22 -0
  209. package/dist/peers/index.js.map +1 -0
  210. package/dist/peers/protocol.d.ts +645 -0
  211. package/dist/peers/protocol.d.ts.map +1 -0
  212. package/dist/peers/protocol.js +151 -0
  213. package/dist/peers/protocol.js.map +1 -0
  214. package/dist/peers/record.d.ts +71 -0
  215. package/dist/peers/record.d.ts.map +1 -0
  216. package/dist/peers/record.js +45 -0
  217. package/dist/peers/record.js.map +1 -0
  218. package/dist/peers/registry.d.ts +54 -0
  219. package/dist/peers/registry.d.ts.map +1 -0
  220. package/dist/peers/registry.js +213 -0
  221. package/dist/peers/registry.js.map +1 -0
  222. package/dist/plugin/define.d.ts +24 -0
  223. package/dist/plugin/define.d.ts.map +1 -0
  224. package/dist/plugin/define.js +42 -0
  225. package/dist/plugin/define.js.map +1 -0
  226. package/dist/plugin/index.d.ts +2 -0
  227. package/dist/plugin/index.d.ts.map +1 -1
  228. package/dist/plugin/index.js +1 -0
  229. package/dist/plugin/index.js.map +1 -1
  230. package/dist/plugin/lifecycle.d.ts +27 -3
  231. package/dist/plugin/lifecycle.d.ts.map +1 -1
  232. package/dist/plugin/lifecycle.js +242 -92
  233. package/dist/plugin/lifecycle.js.map +1 -1
  234. package/dist/plugin/resolver.d.ts +2 -2
  235. package/dist/plugin/resolver.d.ts.map +1 -1
  236. package/dist/plugin/resolver.js.map +1 -1
  237. package/dist/plugin/shell-hook.d.ts.map +1 -1
  238. package/dist/plugin/shell-hook.js +17 -3
  239. package/dist/plugin/shell-hook.js.map +1 -1
  240. package/dist/probe/errors.d.ts +2 -1
  241. package/dist/probe/errors.d.ts.map +1 -1
  242. package/dist/probe/errors.js +3 -2
  243. package/dist/probe/errors.js.map +1 -1
  244. package/dist/prompt/coding-agent-doctrine.d.ts +18 -7
  245. package/dist/prompt/coding-agent-doctrine.d.ts.map +1 -1
  246. package/dist/prompt/coding-agent-doctrine.js +11 -6
  247. package/dist/prompt/coding-agent-doctrine.js.map +1 -1
  248. package/dist/prompt/contributions.d.ts +4 -1
  249. package/dist/prompt/contributions.d.ts.map +1 -1
  250. package/dist/prompt/contributions.js +7 -2
  251. package/dist/prompt/contributions.js.map +1 -1
  252. package/dist/prompt/index.d.ts +1 -1
  253. package/dist/prompt/index.d.ts.map +1 -1
  254. package/dist/prompt/index.js +1 -1
  255. package/dist/prompt/index.js.map +1 -1
  256. package/dist/provider/collect-chat-completion.d.ts +6 -1
  257. package/dist/provider/collect-chat-completion.d.ts.map +1 -1
  258. package/dist/provider/collect-chat-completion.js +88 -10
  259. package/dist/provider/collect-chat-completion.js.map +1 -1
  260. package/dist/provider/mock.d.ts.map +1 -1
  261. package/dist/provider/mock.js +23 -6
  262. package/dist/provider/mock.js.map +1 -1
  263. package/dist/provider/registry.d.ts +2 -1
  264. package/dist/provider/registry.d.ts.map +1 -1
  265. package/dist/provider/registry.js +3 -2
  266. package/dist/provider/registry.js.map +1 -1
  267. package/dist/provider/tool-call-framing.d.ts +164 -0
  268. package/dist/provider/tool-call-framing.d.ts.map +1 -0
  269. package/dist/provider/tool-call-framing.js +163 -0
  270. package/dist/provider/tool-call-framing.js.map +1 -0
  271. package/dist/public-runtime.d.ts +24 -11
  272. package/dist/public-runtime.d.ts.map +1 -1
  273. package/dist/public-runtime.js +45 -9
  274. package/dist/public-runtime.js.map +1 -1
  275. package/dist/public-tools.d.ts +6 -4
  276. package/dist/public-tools.d.ts.map +1 -1
  277. package/dist/public-tools.js +8 -3
  278. package/dist/public-tools.js.map +1 -1
  279. package/dist/public-types.d.ts +13 -2
  280. package/dist/public-types.d.ts.map +1 -1
  281. package/dist/read-model/registry.d.ts +2 -1
  282. package/dist/read-model/registry.d.ts.map +1 -1
  283. package/dist/read-model/registry.js +3 -2
  284. package/dist/read-model/registry.js.map +1 -1
  285. package/dist/registry/ManagedRegistry.d.ts +30 -0
  286. package/dist/registry/ManagedRegistry.d.ts.map +1 -1
  287. package/dist/registry/ManagedRegistry.js +45 -6
  288. package/dist/registry/ManagedRegistry.js.map +1 -1
  289. package/dist/registry/collision.d.ts +57 -0
  290. package/dist/registry/collision.d.ts.map +1 -0
  291. package/dist/registry/collision.js +41 -0
  292. package/dist/registry/collision.js.map +1 -0
  293. package/dist/registry/command/index.d.ts +5 -3
  294. package/dist/registry/command/index.d.ts.map +1 -1
  295. package/dist/registry/command/index.js +6 -4
  296. package/dist/registry/command/index.js.map +1 -1
  297. package/dist/registry/index.d.ts +3 -4
  298. package/dist/registry/index.d.ts.map +1 -1
  299. package/dist/registry/index.js +2 -2
  300. package/dist/registry/index.js.map +1 -1
  301. package/dist/registry/plugin/index.d.ts.map +1 -1
  302. package/dist/registry/plugin/index.js +14 -1
  303. package/dist/registry/plugin/index.js.map +1 -1
  304. package/dist/registry/tool/callable.d.ts +7 -7
  305. package/dist/registry/tool/callable.d.ts.map +1 -1
  306. package/dist/registry/tool/callable.js +6 -7
  307. package/dist/registry/tool/callable.js.map +1 -1
  308. package/dist/registry/tool/execute.d.ts +14 -77
  309. package/dist/registry/tool/execute.d.ts.map +1 -1
  310. package/dist/registry/tool/execute.js +15 -727
  311. package/dist/registry/tool/execute.js.map +1 -1
  312. package/dist/registry/tool/portable.d.ts +25 -0
  313. package/dist/registry/tool/portable.d.ts.map +1 -1
  314. package/dist/registry/tool/portable.js +50 -0
  315. package/dist/registry/tool/portable.js.map +1 -1
  316. package/dist/registry/tool/presentation.d.ts +6 -5
  317. package/dist/registry/tool/presentation.d.ts.map +1 -1
  318. package/dist/registry/tool/presentation.js +3 -3
  319. package/dist/registry/tool/presentation.js.map +1 -1
  320. package/dist/runtime/bidi/session.d.ts +5 -4
  321. package/dist/runtime/bidi/session.d.ts.map +1 -1
  322. package/dist/runtime/bidi/session.js +18 -1
  323. package/dist/runtime/bidi/session.js.map +1 -1
  324. package/dist/runtime/query/executor/tool-call-admission.d.ts +45 -2
  325. package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
  326. package/dist/runtime/query/executor/tool-call-admission.js +189 -5
  327. package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
  328. package/dist/runtime/query/executor.d.ts +33 -3
  329. package/dist/runtime/query/executor.d.ts.map +1 -1
  330. package/dist/runtime/query/executor.js +86 -10
  331. package/dist/runtime/query/executor.js.map +1 -1
  332. package/dist/runtime/query/file-evidence-replay.d.ts +1 -1
  333. package/dist/runtime/query/file-evidence-replay.d.ts.map +1 -1
  334. package/dist/runtime/query/file-evidence-replay.js +8 -7
  335. package/dist/runtime/query/file-evidence-replay.js.map +1 -1
  336. package/dist/runtime/query/fork/prepare.d.ts +4 -1
  337. package/dist/runtime/query/fork/prepare.d.ts.map +1 -1
  338. package/dist/runtime/query/fork/prepare.js +4 -0
  339. package/dist/runtime/query/fork/prepare.js.map +1 -1
  340. package/dist/runtime/query/guardrail-presets.d.ts +4 -3
  341. package/dist/runtime/query/guardrail-presets.d.ts.map +1 -1
  342. package/dist/runtime/query/guardrail-presets.js +4 -3
  343. package/dist/runtime/query/guardrail-presets.js.map +1 -1
  344. package/dist/runtime/query/index.d.ts +23 -10
  345. package/dist/runtime/query/index.d.ts.map +1 -1
  346. package/dist/runtime/query/index.js +149 -70
  347. package/dist/runtime/query/index.js.map +1 -1
  348. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  349. package/dist/runtime/query/iteration/index.js +8 -1
  350. package/dist/runtime/query/iteration/index.js.map +1 -1
  351. package/dist/runtime/query/iteration/phases/compaction.js +1 -1
  352. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  353. package/dist/runtime/query/iteration/phases/context.d.ts +2 -2
  354. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  355. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  356. package/dist/runtime/query/iteration/phases/tool-review.js +55 -2
  357. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  358. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  359. package/dist/runtime/query/iteration/stream-turn.js +342 -116
  360. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  361. package/dist/runtime/query/iteration/tool-input.d.ts +79 -0
  362. package/dist/runtime/query/iteration/tool-input.d.ts.map +1 -0
  363. package/dist/runtime/query/iteration/tool-input.js +291 -0
  364. package/dist/runtime/query/iteration/tool-input.js.map +1 -0
  365. package/dist/runtime/query/observation-context.d.ts +2 -2
  366. package/dist/runtime/query/observation-context.d.ts.map +1 -1
  367. package/dist/runtime/query/observation-context.js.map +1 -1
  368. package/dist/runtime/query/prelude-lease.d.ts +18 -0
  369. package/dist/runtime/query/prelude-lease.d.ts.map +1 -0
  370. package/dist/runtime/query/prelude-lease.js +121 -0
  371. package/dist/runtime/query/prelude-lease.js.map +1 -0
  372. package/dist/runtime/query/prepare-turn.d.ts.map +1 -1
  373. package/dist/runtime/query/prepare-turn.js +386 -187
  374. package/dist/runtime/query/prepare-turn.js.map +1 -1
  375. package/dist/runtime/query/prompt-cache.d.ts +2 -2
  376. package/dist/runtime/query/prompt-cache.d.ts.map +1 -1
  377. package/dist/runtime/query/prompt.d.ts +2 -2
  378. package/dist/runtime/query/prompt.d.ts.map +1 -1
  379. package/dist/runtime/query/prompt.js +1 -1
  380. package/dist/runtime/query/prompt.js.map +1 -1
  381. package/dist/runtime/query/resume-session.d.ts.map +1 -1
  382. package/dist/runtime/query/resume-session.js +37 -2
  383. package/dist/runtime/query/resume-session.js.map +1 -1
  384. package/dist/runtime/query/review-policy.d.ts +22 -3
  385. package/dist/runtime/query/review-policy.d.ts.map +1 -1
  386. package/dist/runtime/query/review-policy.js +84 -6
  387. package/dist/runtime/query/review-policy.js.map +1 -1
  388. package/dist/runtime/query/tooling.d.ts +3 -2
  389. package/dist/runtime/query/tooling.d.ts.map +1 -1
  390. package/dist/runtime/query/tooling.js.map +1 -1
  391. package/dist/runtime/query/turn-state.d.ts.map +1 -1
  392. package/dist/runtime/query/turn-state.js +5 -0
  393. package/dist/runtime/query/turn-state.js.map +1 -1
  394. package/dist/runtime/system-events.d.ts +112 -0
  395. package/dist/runtime/system-events.d.ts.map +1 -0
  396. package/dist/runtime/system-events.js +183 -0
  397. package/dist/runtime/system-events.js.map +1 -0
  398. package/dist/scheduler/delegating.d.ts +2 -1
  399. package/dist/scheduler/delegating.d.ts.map +1 -1
  400. package/dist/scheduler/delegating.js +3 -2
  401. package/dist/scheduler/delegating.js.map +1 -1
  402. package/dist/scheduler/local.d.ts.map +1 -1
  403. package/dist/scheduler/local.js +2 -0
  404. package/dist/scheduler/local.js.map +1 -1
  405. package/dist/session/retention/archive.js +1 -1
  406. package/dist/session/retention/archive.js.map +1 -1
  407. package/dist/skills/index.d.ts +1 -1
  408. package/dist/skills/index.d.ts.map +1 -1
  409. package/dist/skills/index.js +1 -1
  410. package/dist/skills/index.js.map +1 -1
  411. package/dist/skills/registry.d.ts +12 -0
  412. package/dist/skills/registry.d.ts.map +1 -1
  413. package/dist/skills/registry.js +19 -0
  414. package/dist/skills/registry.js.map +1 -1
  415. package/dist/store/evidence/index-page.d.ts +2 -2
  416. package/dist/store/session/disk.d.ts.map +1 -1
  417. package/dist/store/session/disk.js +2 -0
  418. package/dist/store/session/disk.js.map +1 -1
  419. package/dist/store/session-log/conformance.d.ts +1 -1
  420. package/dist/store/session-log/conformance.d.ts.map +1 -1
  421. package/dist/store/session-log/conformance.js +49 -8
  422. package/dist/store/session-log/conformance.js.map +1 -1
  423. package/dist/store/session-log/core.d.ts +8 -3
  424. package/dist/store/session-log/core.d.ts.map +1 -1
  425. package/dist/store/session-log/core.js +2 -1
  426. package/dist/store/session-log/core.js.map +1 -1
  427. package/dist/store/session-log/fold.d.ts +12 -0
  428. package/dist/store/session-log/fold.d.ts.map +1 -1
  429. package/dist/store/session-log/fold.js +57 -7
  430. package/dist/store/session-log/fold.js.map +1 -1
  431. package/dist/store/session-log/index.d.ts +2 -2
  432. package/dist/store/session-log/index.d.ts.map +1 -1
  433. package/dist/store/session-log/index.js +1 -1
  434. package/dist/store/session-log/index.js.map +1 -1
  435. package/dist/test-support/toolset.d.ts +19 -0
  436. package/dist/test-support/toolset.d.ts.map +1 -0
  437. package/dist/test-support/toolset.js +20 -0
  438. package/dist/test-support/toolset.js.map +1 -0
  439. package/dist/tools/builtins/bash.d.ts +29 -0
  440. package/dist/tools/builtins/bash.d.ts.map +1 -1
  441. package/dist/tools/builtins/bash.js +19 -9
  442. package/dist/tools/builtins/bash.js.map +1 -1
  443. package/dist/tools/builtins/browser-url.d.ts +1 -1
  444. package/dist/tools/builtins/browser-url.js +1 -1
  445. package/dist/tools/builtins/browser.d.ts +6 -6
  446. package/dist/tools/builtins/browser.js +2 -2
  447. package/dist/tools/builtins/browser.js.map +1 -1
  448. package/dist/tools/builtins/computer-use.d.ts.map +1 -1
  449. package/dist/tools/builtins/computer-use.js +19 -11
  450. package/dist/tools/builtins/computer-use.js.map +1 -1
  451. package/dist/tools/builtins/edit.d.ts.map +1 -1
  452. package/dist/tools/builtins/edit.js +9 -1
  453. package/dist/tools/builtins/edit.js.map +1 -1
  454. package/dist/tools/builtins/json-string-hint.d.ts +15 -0
  455. package/dist/tools/builtins/json-string-hint.d.ts.map +1 -0
  456. package/dist/tools/builtins/json-string-hint.js +17 -0
  457. package/dist/tools/builtins/json-string-hint.js.map +1 -0
  458. package/dist/tools/builtins/search-tools.d.ts.map +1 -1
  459. package/dist/tools/builtins/search-tools.js +7 -15
  460. package/dist/tools/builtins/search-tools.js.map +1 -1
  461. package/dist/tools/builtins/write-file.d.ts.map +1 -1
  462. package/dist/tools/builtins/write-file.js +11 -0
  463. package/dist/tools/builtins/write-file.js.map +1 -1
  464. package/dist/tools/command-shell.d.ts +10 -0
  465. package/dist/tools/command-shell.d.ts.map +1 -1
  466. package/dist/tools/command-shell.js +45 -1
  467. package/dist/tools/command-shell.js.map +1 -1
  468. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  469. package/dist/tools/coordinator/agent.js +5 -0
  470. package/dist/tools/coordinator/agent.js.map +1 -1
  471. package/dist/tools/coordinator/ask-user-question.d.ts.map +1 -1
  472. package/dist/tools/coordinator/ask-user-question.js +26 -13
  473. package/dist/tools/coordinator/ask-user-question.js.map +1 -1
  474. package/dist/tools/coordinator/index.d.ts.map +1 -1
  475. package/dist/tools/coordinator/index.js +5 -0
  476. package/dist/tools/coordinator/index.js.map +1 -1
  477. package/dist/tools/coordinator/question-options.d.ts +78 -0
  478. package/dist/tools/coordinator/question-options.d.ts.map +1 -0
  479. package/dist/tools/coordinator/question-options.js +153 -0
  480. package/dist/tools/coordinator/question-options.js.map +1 -0
  481. package/dist/tools/defineTool.d.ts +10 -0
  482. package/dist/tools/defineTool.d.ts.map +1 -1
  483. package/dist/tools/defineTool.js +17 -0
  484. package/dist/tools/defineTool.js.map +1 -1
  485. package/dist/tools/memory/search.d.ts.map +1 -1
  486. package/dist/tools/memory/search.js +4 -1
  487. package/dist/tools/memory/search.js.map +1 -1
  488. package/dist/tools/memory/update.d.ts.map +1 -1
  489. package/dist/tools/memory/update.js +8 -5
  490. package/dist/tools/memory/update.js.map +1 -1
  491. package/dist/tools/render-nonce.d.ts +47 -0
  492. package/dist/tools/render-nonce.d.ts.map +1 -0
  493. package/dist/tools/render-nonce.js +63 -0
  494. package/dist/tools/render-nonce.js.map +1 -0
  495. package/dist/tools/roster.d.ts +46 -19
  496. package/dist/tools/roster.d.ts.map +1 -1
  497. package/dist/tools/roster.js +63 -33
  498. package/dist/tools/roster.js.map +1 -1
  499. package/dist/tools/schedules/schedule-tool.d.ts.map +1 -1
  500. package/dist/tools/schedules/schedule-tool.js +94 -14
  501. package/dist/tools/schedules/schedule-tool.js.map +1 -1
  502. package/dist/tools/schedules/types.d.ts +52 -6
  503. package/dist/tools/schedules/types.d.ts.map +1 -1
  504. package/dist/tools/trusted-read-only.d.ts +9 -5
  505. package/dist/tools/trusted-read-only.d.ts.map +1 -1
  506. package/dist/tools/trusted-read-only.js +14 -10
  507. package/dist/tools/trusted-read-only.js.map +1 -1
  508. package/dist/tools/untrusted-envelope.d.ts +67 -28
  509. package/dist/tools/untrusted-envelope.d.ts.map +1 -1
  510. package/dist/tools/untrusted-envelope.js +108 -59
  511. package/dist/tools/untrusted-envelope.js.map +1 -1
  512. package/dist/toolsets/combine.d.ts +44 -0
  513. package/dist/toolsets/combine.d.ts.map +1 -0
  514. package/dist/toolsets/combine.js +153 -0
  515. package/dist/toolsets/combine.js.map +1 -0
  516. package/dist/toolsets/manager.d.ts +201 -0
  517. package/dist/toolsets/manager.d.ts.map +1 -0
  518. package/dist/toolsets/manager.js +837 -0
  519. package/dist/toolsets/manager.js.map +1 -0
  520. package/dist/toolsets/source-glob.d.ts +15 -0
  521. package/dist/toolsets/source-glob.d.ts.map +1 -0
  522. package/dist/toolsets/source-glob.js +23 -0
  523. package/dist/toolsets/source-glob.js.map +1 -0
  524. package/dist/toolsets/toolset.d.ts +20 -0
  525. package/dist/toolsets/toolset.d.ts.map +1 -0
  526. package/dist/toolsets/toolset.js +28 -0
  527. package/dist/toolsets/toolset.js.map +1 -0
  528. package/dist/toolsets/types.d.ts +128 -0
  529. package/dist/toolsets/types.d.ts.map +1 -0
  530. package/dist/toolsets/types.js +33 -0
  531. package/dist/toolsets/types.js.map +1 -0
  532. package/dist/toolsets/wrappers.d.ts +59 -0
  533. package/dist/toolsets/wrappers.d.ts.map +1 -0
  534. package/dist/toolsets/wrappers.js +165 -0
  535. package/dist/toolsets/wrappers.js.map +1 -0
  536. package/dist/types/agent/base.d.ts +27 -16
  537. package/dist/types/agent/base.d.ts.map +1 -1
  538. package/dist/types/agent/index.d.ts +1 -0
  539. package/dist/types/agent/index.d.ts.map +1 -1
  540. package/dist/types/agent/index.js +1 -0
  541. package/dist/types/agent/index.js.map +1 -1
  542. package/dist/types/agent/pipeline.d.ts +2 -0
  543. package/dist/types/agent/pipeline.d.ts.map +1 -1
  544. package/dist/types/agent/query.d.ts +117 -0
  545. package/dist/types/agent/query.d.ts.map +1 -0
  546. package/dist/types/agent/query.js +2 -0
  547. package/dist/types/agent/query.js.map +1 -0
  548. package/dist/types/agent/reactive.d.ts +2 -129
  549. package/dist/types/agent/reactive.d.ts.map +1 -1
  550. package/dist/types/agent/router.d.ts +2 -0
  551. package/dist/types/agent/router.d.ts.map +1 -1
  552. package/dist/types/agent/scheduler.d.ts +6 -1
  553. package/dist/types/agent/scheduler.d.ts.map +1 -1
  554. package/dist/types/agent/supervisor.d.ts +5 -2
  555. package/dist/types/agent/supervisor.d.ts.map +1 -1
  556. package/dist/types/agent/task.d.ts +19 -1
  557. package/dist/types/agent/task.d.ts.map +1 -1
  558. package/dist/types/agent/task.js.map +1 -1
  559. package/dist/types/authorization/index.d.ts +49 -12
  560. package/dist/types/authorization/index.d.ts.map +1 -1
  561. package/dist/types/authorization/index.js +6 -0
  562. package/dist/types/authorization/index.js.map +1 -1
  563. package/dist/types/connector/mcp.d.ts +45 -0
  564. package/dist/types/connector/mcp.d.ts.map +1 -1
  565. package/dist/types/errors/index.d.ts +15 -0
  566. package/dist/types/errors/index.d.ts.map +1 -1
  567. package/dist/types/errors/index.js.map +1 -1
  568. package/dist/types/hitl/index.d.ts +57 -0
  569. package/dist/types/hitl/index.d.ts.map +1 -1
  570. package/dist/types/hitl/index.js.map +1 -1
  571. package/dist/types/message/index.d.ts +130 -9
  572. package/dist/types/message/index.d.ts.map +1 -1
  573. package/dist/types/message/index.js +4 -1
  574. package/dist/types/message/index.js.map +1 -1
  575. package/dist/types/plugin/index.d.ts +22 -4
  576. package/dist/types/plugin/index.d.ts.map +1 -1
  577. package/dist/types/plugin/index.js +1 -0
  578. package/dist/types/plugin/index.js.map +1 -1
  579. package/dist/types/provider/chat.d.ts +5 -0
  580. package/dist/types/provider/chat.d.ts.map +1 -1
  581. package/dist/types/provider/config.d.ts +8 -3
  582. package/dist/types/provider/config.d.ts.map +1 -1
  583. package/dist/types/provider/stream.d.ts +39 -0
  584. package/dist/types/provider/stream.d.ts.map +1 -1
  585. package/dist/types/sandbox/index.d.ts +1 -1
  586. package/dist/types/session/events.d.ts +14 -3
  587. package/dist/types/session/events.d.ts.map +1 -1
  588. package/dist/types/session/events.js.map +1 -1
  589. package/dist/types/session/sub-session.d.ts +2 -0
  590. package/dist/types/session/sub-session.d.ts.map +1 -1
  591. package/dist/types/tool/index.d.ts +152 -91
  592. package/dist/types/tool/index.d.ts.map +1 -1
  593. package/dist/types/tool/index.js.map +1 -1
  594. package/dist/types/toolset/index.d.ts +10 -40
  595. package/dist/types/toolset/index.d.ts.map +1 -1
  596. package/package.json +1 -1
  597. package/src/advisory/history.ts +27 -2
  598. package/src/advisory/index.ts +1 -1
  599. package/src/advisory/registry.ts +33 -0
  600. package/src/agents/AGENTS.md +14 -7
  601. package/src/agents/PipelineAgent.ts +2 -303
  602. package/src/agents/QueryAgent.ts +269 -0
  603. package/src/agents/ReactiveAgent.ts +6 -216
  604. package/src/agents/RouterAgent.ts +2 -337
  605. package/src/agents/SupervisorAgent.ts +3 -476
  606. package/src/agents/defineAgent.ts +13 -2
  607. package/src/agents/examples/PipelineAgent.ts +302 -0
  608. package/src/agents/examples/RouterAgent.ts +338 -0
  609. package/src/agents/examples/SupervisorAgent.ts +472 -0
  610. package/src/agents/explore.ts +6 -3
  611. package/src/agents/forward-options.ts +37 -0
  612. package/src/agents/index.ts +2 -0
  613. package/src/agents/runAgent.ts +144 -37
  614. package/src/authorization/command-line.ts +2 -2
  615. package/src/authorization/gate.ts +21 -1
  616. package/src/authorization/program.ts +773 -0
  617. package/src/authorization/reexec-wrapper.ts +589 -0
  618. package/src/authorization/rules.ts +18 -1
  619. package/src/authorization/shell-lexer.ts +104 -59
  620. package/src/bridge/sse/mapper.ts +6 -0
  621. package/src/capabilities/index.ts +157 -0
  622. package/src/config/registry.ts +4 -1
  623. package/src/connector/index.ts +9 -2
  624. package/src/connector/mcp/adapter.ts +73 -3
  625. package/src/connector/mcp/client.ts +425 -6
  626. package/src/connector/mcp/discovery.ts +60 -0
  627. package/src/connector/mcp/era.ts +7 -0
  628. package/src/connector/mcp/index.ts +13 -0
  629. package/src/connector/mcp/mcp-toolset.ts +515 -0
  630. package/src/connector/mcp/streamable-http.ts +302 -5
  631. package/src/connector/tools/index.ts +2 -2
  632. package/src/connector/tools/router.ts +35 -58
  633. package/src/directory/derive-supervisor.ts +12 -8
  634. package/src/directory/derive.ts +8 -5
  635. package/src/execution/code-runtime/types.ts +2 -2
  636. package/src/invariants/index.ts +4 -1
  637. package/src/manager/agent/lifecycle.ts +167 -19
  638. package/src/manager/connector/environment.ts +17 -4
  639. package/src/manager/connector/index.ts +2 -2
  640. package/src/manager/connector/tenant.ts +17 -4
  641. package/src/manager/index.ts +2 -2
  642. package/src/manager/session/attribution.ts +79 -0
  643. package/src/manager/session/turn-recorder.ts +211 -55
  644. package/src/peers/address.ts +58 -0
  645. package/src/peers/client.ts +202 -0
  646. package/src/peers/dir.ts +176 -0
  647. package/src/peers/endpoint.ts +564 -0
  648. package/src/peers/envelope.ts +121 -0
  649. package/src/peers/index.ts +96 -0
  650. package/src/peers/protocol.ts +196 -0
  651. package/src/peers/record.ts +56 -0
  652. package/src/peers/registry.ts +241 -0
  653. package/src/plugin/define.ts +68 -0
  654. package/src/plugin/index.ts +2 -0
  655. package/src/plugin/lifecycle.ts +286 -106
  656. package/src/plugin/resolver.ts +6 -3
  657. package/src/plugin/shell-hook.ts +21 -5
  658. package/src/probe/errors.ts +4 -1
  659. package/src/prompt/coding-agent-doctrine.ts +22 -10
  660. package/src/prompt/contributions.ts +12 -2
  661. package/src/prompt/index.ts +1 -0
  662. package/src/provider/collect-chat-completion.ts +96 -11
  663. package/src/provider/mock.ts +24 -6
  664. package/src/provider/registry.ts +4 -1
  665. package/src/provider/tool-call-framing.ts +226 -0
  666. package/src/public-runtime.ts +136 -7
  667. package/src/public-tools.ts +24 -4
  668. package/src/public-types.ts +60 -6
  669. package/src/read-model/registry.ts +7 -2
  670. package/src/registry/ManagedRegistry.ts +57 -6
  671. package/src/registry/collision.ts +64 -0
  672. package/src/registry/command/index.ts +7 -3
  673. package/src/registry/index.ts +3 -9
  674. package/src/registry/plugin/index.ts +14 -1
  675. package/src/registry/tool/callable.ts +8 -9
  676. package/src/registry/tool/execute.ts +16 -846
  677. package/src/registry/tool/portable.ts +59 -0
  678. package/src/registry/tool/presentation.ts +6 -5
  679. package/src/runtime/bidi/session.ts +24 -5
  680. package/src/runtime/query/executor/tool-call-admission.ts +228 -6
  681. package/src/runtime/query/executor.ts +110 -12
  682. package/src/runtime/query/file-evidence-replay.ts +8 -7
  683. package/src/runtime/query/fork/prepare.ts +6 -1
  684. package/src/runtime/query/guardrail-presets.ts +4 -3
  685. package/src/runtime/query/index.ts +199 -101
  686. package/src/runtime/query/iteration/index.ts +13 -3
  687. package/src/runtime/query/iteration/phases/compaction.ts +1 -1
  688. package/src/runtime/query/iteration/phases/context.ts +2 -2
  689. package/src/runtime/query/iteration/phases/tool-review.ts +59 -2
  690. package/src/runtime/query/iteration/stream-turn.ts +390 -136
  691. package/src/runtime/query/iteration/tool-input.ts +284 -0
  692. package/src/runtime/query/observation-context.ts +2 -2
  693. package/src/runtime/query/prelude-lease.ts +132 -0
  694. package/src/runtime/query/prepare-turn.ts +477 -198
  695. package/src/runtime/query/prompt-cache.ts +2 -2
  696. package/src/runtime/query/prompt.ts +4 -4
  697. package/src/runtime/query/resume-session.ts +42 -3
  698. package/src/runtime/query/review-policy.ts +87 -9
  699. package/src/runtime/query/tooling.ts +3 -6
  700. package/src/runtime/query/turn-state.ts +4 -0
  701. package/src/runtime/system-events.ts +246 -0
  702. package/src/scheduler/delegating.ts +7 -2
  703. package/src/scheduler/local.ts +2 -0
  704. package/src/session/retention/archive.ts +1 -1
  705. package/src/skills/index.ts +1 -1
  706. package/src/skills/registry.ts +25 -0
  707. package/src/store/session/disk.ts +3 -0
  708. package/src/store/session-log/conformance.ts +51 -8
  709. package/src/store/session-log/core.ts +10 -4
  710. package/src/store/session-log/fold.ts +33 -7
  711. package/src/store/session-log/index.ts +2 -0
  712. package/src/test-support/toolset.ts +23 -0
  713. package/src/tools/builtins/bash.ts +27 -10
  714. package/src/tools/builtins/browser-url.ts +1 -1
  715. package/src/tools/builtins/browser.ts +2 -2
  716. package/src/tools/builtins/computer-use.ts +21 -11
  717. package/src/tools/builtins/edit.ts +12 -2
  718. package/src/tools/builtins/json-string-hint.ts +16 -0
  719. package/src/tools/builtins/search-tools.ts +7 -20
  720. package/src/tools/builtins/write-file.ts +12 -0
  721. package/src/tools/command-shell.ts +46 -1
  722. package/src/tools/coordinator/agent.ts +6 -0
  723. package/src/tools/coordinator/ask-user-question.ts +29 -15
  724. package/src/tools/coordinator/index.ts +6 -0
  725. package/src/tools/coordinator/question-options.ts +195 -0
  726. package/src/tools/defineTool.ts +28 -0
  727. package/src/tools/memory/search.ts +4 -1
  728. package/src/tools/memory/update.ts +8 -5
  729. package/src/tools/render-nonce.ts +69 -0
  730. package/src/tools/roster.ts +84 -33
  731. package/src/tools/schedules/schedule-tool.ts +107 -14
  732. package/src/tools/schedules/types.ts +52 -6
  733. package/src/tools/trusted-read-only.ts +19 -10
  734. package/src/tools/untrusted-envelope.ts +121 -57
  735. package/src/toolsets/combine.ts +181 -0
  736. package/src/toolsets/manager.ts +996 -0
  737. package/src/toolsets/source-glob.ts +22 -0
  738. package/src/toolsets/toolset.ts +31 -0
  739. package/src/toolsets/types.ts +154 -0
  740. package/src/toolsets/wrappers.ts +191 -0
  741. package/src/types/agent/base.ts +29 -16
  742. package/src/types/agent/index.ts +1 -0
  743. package/src/types/agent/pipeline.ts +2 -0
  744. package/src/types/agent/query.ts +129 -0
  745. package/src/types/agent/reactive.ts +5 -142
  746. package/src/types/agent/router.ts +2 -0
  747. package/src/types/agent/scheduler.ts +6 -1
  748. package/src/types/agent/supervisor.ts +5 -2
  749. package/src/types/agent/task.ts +21 -1
  750. package/src/types/authorization/index.ts +12 -0
  751. package/src/types/connector/mcp.ts +46 -0
  752. package/src/types/errors/index.ts +15 -0
  753. package/src/types/hitl/index.ts +57 -0
  754. package/src/types/message/index.ts +135 -7
  755. package/src/types/plugin/index.ts +44 -21
  756. package/src/types/provider/chat.ts +5 -0
  757. package/src/types/provider/config.ts +8 -3
  758. package/src/types/provider/stream.ts +39 -0
  759. package/src/types/sandbox/index.ts +1 -1
  760. package/src/types/session/events.ts +14 -3
  761. package/src/types/session/sub-session.ts +2 -0
  762. package/src/types/tool/index.ts +154 -105
  763. package/src/types/toolset/index.ts +10 -47
  764. package/dist/registry/toolset/catalog.d.ts +0 -42
  765. package/dist/registry/toolset/catalog.d.ts.map +0 -1
  766. package/dist/registry/toolset/catalog.js +0 -234
  767. package/dist/registry/toolset/catalog.js.map +0 -1
  768. package/src/registry/toolset/catalog.ts +0 -308
@@ -1,5 +1,25 @@
1
1
  import { mergeTokenUsage } from '../types/common/index.js';
2
2
  import { StreamTextAccumulator } from './stream-text.js';
3
+ import { INTERLEAVED_TOOL_INPUT_PARSE_ERROR, ToolCallIndexer, describeToolCallFramingViolation, isUnindexedFragment, toolCallFramingViolation, } from './tool-call-framing.js';
4
+ /**
5
+ * Whether a streamed argument buffer could still be receiving more of a
6
+ * call's arguments right now: empty, or not yet a complete JSON value. Used
7
+ * only by `ToolCallIndexer.placeUnindexedFragment` to tell which open calls
8
+ * could still be an id-less fragment's target — not to validate a finished
9
+ * call, so it does not need the offset-finding `parseToolArguments` the turn
10
+ * loop uses for the message a model is shown.
11
+ */
12
+ function canAcceptMoreText(buffer) {
13
+ if (!buffer)
14
+ return true;
15
+ try {
16
+ JSON.parse(buffer);
17
+ return false;
18
+ }
19
+ catch {
20
+ return true;
21
+ }
22
+ }
3
23
  /**
4
24
  * Drains a {@link StreamChunk} async iterable into the equivalent
5
25
  * non-streaming {@link ChatCompletionResponse}.
@@ -14,7 +34,12 @@ import { StreamTextAccumulator } from './stream-text.js';
14
34
  * - ordinary text is concatenated in delta order; identified public text
15
35
  * items are preserved and explicit final-answer items select the settled text;
16
36
  * - tool calls are bucketed by `index` into the existing
17
- * `Array<{ id, function: { name, arguments } }>` shape;
37
+ * `Array<{ id, function: { name, arguments } }>` shape. Arguments that
38
+ * arrive before the call's id belong to the call at their index and are
39
+ * kept; the id is filled in when it arrives. A stream that puts a second
40
+ * call id on an index is refused with an error naming the violation, as
41
+ * the turn loop refuses it: the second call's arguments used to be
42
+ * appended to the first's, which left one call no tool could run;
18
43
  * - reasoning blocks are bucketed by `index` the same way, because the
19
44
  * assembled message is the thing a caller replays and
20
45
  * {@link ReasoningBlock} is documented as replayed verbatim. This was
@@ -35,6 +60,7 @@ export async function collectChatCompletion(stream) {
35
60
  const text = new StreamTextAccumulator();
36
61
  let replayState;
37
62
  let finishReason = 'stop';
63
+ let finishDetail;
38
64
  let usage = {
39
65
  promptTokens: 0,
40
66
  completionTokens: 0,
@@ -43,6 +69,8 @@ export async function collectChatCompletion(stream) {
43
69
  cacheWriteTokens: 0,
44
70
  };
45
71
  const toolBuckets = new Map();
72
+ // Places a fragment that came without an index; see `ToolCallIndexer`.
73
+ const toolIndexer = new ToolCallIndexer();
46
74
  // Same bucketing rule the turn loop uses (`runtime/query/iteration/
47
75
  // stream-turn.ts`), so a message assembled here and a message assembled
48
76
  // there carry the same blocks in the same order.
@@ -73,21 +101,51 @@ export async function collectChatCompletion(stream) {
73
101
  reasoningBuckets.set(reasoning.index, bucket);
74
102
  }
75
103
  for (const tc of chunk.delta.toolCalls ?? []) {
76
- const bucket = toolBuckets.get(tc.index) ?? {
77
- id: '',
78
- name: '',
79
- argsBuf: '',
80
- };
81
- if (tc.id)
104
+ if (isUnindexedFragment(tc)) {
105
+ // Neither an id nor an index: never a guess. Evaluated fresh for
106
+ // THIS fragment, not decided once when some call opened.
107
+ const placement = toolIndexer.placeUnindexedFragment((i) => canAcceptMoreText(toolBuckets.get(i)?.argsBuf ?? ''));
108
+ if (typeof placement === 'number') {
109
+ const bucket = toolBuckets.get(placement) ?? { id: '', name: '', argsBuf: '' };
110
+ if (tc.function?.name)
111
+ bucket.name = tc.function.name;
112
+ if (tc.function?.arguments)
113
+ bucket.argsBuf += tc.function.arguments;
114
+ toolBuckets.set(placement, bucket);
115
+ }
116
+ else {
117
+ // More than one open call could still have taken this
118
+ // fragment, or none could: every candidate is unreadable, and
119
+ // the fragment itself is attributed to none of them —
120
+ // appending it to a guess is exactly the splice this exists
121
+ // to refuse.
122
+ for (const candidate of placement.candidates) {
123
+ const bucket = toolBuckets.get(candidate.index);
124
+ if (bucket)
125
+ bucket.unreadable = true;
126
+ }
127
+ }
128
+ continue;
129
+ }
130
+ const index = toolIndexer.indexOf(tc);
131
+ const open = toolBuckets.get(index);
132
+ const violation = toolCallFramingViolation(open, tc, index);
133
+ if (violation) {
134
+ throw new Error(`Provider stream error: ${describeToolCallFramingViolation(violation)}`);
135
+ }
136
+ const bucket = open ?? { id: '', name: '', argsBuf: '' };
137
+ if (tc.id && !bucket.id)
82
138
  bucket.id = tc.id;
83
139
  if (tc.function?.name)
84
140
  bucket.name = tc.function.name;
85
141
  if (tc.function?.arguments)
86
142
  bucket.argsBuf += tc.function.arguments;
87
- toolBuckets.set(tc.index, bucket);
143
+ toolBuckets.set(index, bucket);
88
144
  }
89
- if (chunk.finishReason)
145
+ if (chunk.finishReason) {
90
146
  finishReason = chunk.finishReason;
147
+ finishDetail = chunk.finishReason === 'length' ? chunk.finishDetail : undefined;
148
+ }
91
149
  // Merge (per-field max), not last-write-wins: a late frame that omits
92
150
  // input/cache tokens must not zero the counts captured earlier in the stream.
93
151
  if (chunk.usage)
@@ -98,7 +156,26 @@ export async function collectChatCompletion(stream) {
98
156
  .map(([, b]) => ({
99
157
  id: b.id,
100
158
  type: 'function',
101
- function: { name: b.name, arguments: b.argsBuf },
159
+ // An interleaved call is never returned with the buffer it
160
+ // accumulated: that buffer may hold another call's spliced-in
161
+ // fragments, or may simply be missing whatever an id-less
162
+ // fragment carried elsewhere instead. Normalized to `{}`, exactly
163
+ // as the turn loop normalizes any other unreadable call.
164
+ function: { name: b.name, arguments: b.unreadable ? '{}' : b.argsBuf },
165
+ ...(b.unreadable
166
+ ? {
167
+ metadata: {
168
+ inputTruncated: true,
169
+ partialArguments: b.argsBuf,
170
+ inputError: {
171
+ reason: 'malformed',
172
+ parseError: INTERLEAVED_TOOL_INPUT_PARSE_ERROR,
173
+ length: b.argsBuf.length,
174
+ precedingLength: 0,
175
+ },
176
+ },
177
+ }
178
+ : {}),
102
179
  }));
103
180
  const reasoningBlocks = [...reasoningBuckets.entries()]
104
181
  .sort(([a], [b]) => a - b)
@@ -115,6 +192,7 @@ export async function collectChatCompletion(stream) {
115
192
  ...(replayState !== undefined ? { replayState } : {}),
116
193
  },
117
194
  finishReason,
195
+ ...(finishDetail ? { finishDetail } : {}),
118
196
  usage,
119
197
  };
120
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collect-chat-completion.js","sourceRoot":"","sources":["../../src/provider/collect-chat-completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collect-chat-completion.js","sourceRoot":"","sources":["../../src/provider/collect-chat-completion.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/provider/mock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,oBAAoB,EACpB,WAAW,EACX,UAAU,EAEV,oBAAoB,EACpB,WAAW,EACX,MAAM,4BAA4B,CAAA;AAUnC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAClD,QAAQ,CAAC,EAAE,UAAS;IACpB,QAAQ,CAAC,IAAI,uBAAsB;IACnC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAEvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA+D;IACzF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAwC;IACnE,OAAO,CAAC,SAAS,CAAI;IAErB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAK;gBAElC,MAAM,GAAE,UAAe;IASnC,oEAAoE;IACpE,KAAK,IAAI,IAAI;YAKC,KAAK;IAKnB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAMZ,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IA2ErE,UAAU;;;;;;;;;;IAeV,WAAW;CAIjB"}
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/provider/mock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,oBAAoB,EACpB,WAAW,EACX,UAAU,EAEV,oBAAoB,EACpB,WAAW,EACX,MAAM,4BAA4B,CAAA;AAUnC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IAClD,QAAQ,CAAC,EAAE,UAAS;IACpB,QAAQ,CAAC,IAAI,uBAAsB;IACnC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAEvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAA+D;IACzF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAwC;IACnE,OAAO,CAAC,SAAS,CAAI;IAErB,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAK;gBAElC,MAAM,GAAE,UAAe;IASnC,oEAAoE;IACpE,KAAK,IAAI,IAAI;YAKC,KAAK;IAKnB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAMZ,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,aAAa,CAAC,WAAW,CAAC;IA6FrE,UAAU;;;;;;;;;;IAeV,WAAW;CAIjB"}
@@ -105,8 +105,14 @@ export class MockLLMProvider {
105
105
  },
106
106
  };
107
107
  // Arguments arrive as JSON fragments, which is what forces the
108
- // consumer's partial-JSON buffering to be exercised.
109
- const args = call.rawArguments ?? JSON.stringify(call.args ?? {});
108
+ // consumer's partial-JSON buffering to be exercised. A truncated
109
+ // call stops halfway, as the output limit stops a real one: it
110
+ // used to send every fragment and only withhold the block close,
111
+ // so the arguments parsed and nothing was truncated at all.
112
+ const fullArgs = call.rawArguments ?? JSON.stringify(call.args ?? {});
113
+ const args = call.truncateArguments === true
114
+ ? fullArgs.slice(0, Math.max(1, Math.floor(fullArgs.length / 2)))
115
+ : fullArgs;
110
116
  const step = call.argChunkSize ?? Math.max(1, Math.ceil(args.length / 3));
111
117
  for (let i = 0; i < args.length; i += step) {
112
118
  yield {
@@ -117,14 +123,25 @@ export class MockLLMProvider {
117
123
  if (call.throwAfterArguments !== undefined) {
118
124
  throw new Error(call.throwAfterArguments);
119
125
  }
120
- if (call.truncateArguments !== true) {
121
- yield { id, delta: { toolCallEnd: { index, id: callId } } };
122
- }
126
+ // An output limit stops the response where it is, so nothing the
127
+ // script puts after a truncated call is streamed. It used to go on
128
+ // to the next call, which made the cut call one the model had
129
+ // moved on from: malformed, not truncated.
130
+ if (call.truncateArguments === true)
131
+ break;
132
+ yield { id, delta: { toolCallEnd: { index, id: callId } } };
123
133
  }
124
134
  yield {
125
135
  id,
126
136
  delta: {},
127
- finishReason: turn.finishReason ?? (toolCalls.length > 0 ? 'tool_calls' : 'stop'),
137
+ finishReason: turn.finishReason ??
138
+ // A call cut off mid-JSON is what the output limit does, and the
139
+ // finish reason is how a consumer tells that from malformed JSON.
140
+ (toolCalls.some((call) => call.truncateArguments === true)
141
+ ? 'length'
142
+ : toolCalls.length > 0
143
+ ? 'tool_calls'
144
+ : 'stop'),
128
145
  usage: { ...EMPTY_USAGE, ...turn.usage },
129
146
  };
130
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/provider/mock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/provider/mock.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
+ import { RegistryCollisionError } from '../registry/collision.js';
1
2
  import type { LLMProvider, LLMProviderConstructor, LazyProviderLoader, ProviderCapabilities, ProviderConfigRegistry, ProviderFactoryConfig, ProviderFactoryResult, ProviderType, RegisterLazyOptions, RegisterOptions } from '../types/provider/index.js';
2
3
  export declare class UnknownProviderError extends Error {
3
4
  readonly providerType: string;
4
5
  constructor(providerType: string);
5
6
  }
6
- export declare class DuplicateProviderError extends Error {
7
+ export declare class DuplicateProviderError extends RegistryCollisionError {
7
8
  readonly providerType: string;
8
9
  constructor(providerType: string);
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/provider/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAElB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,MAAM,4BAA4B,CAAA;AAGnC,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAKhC;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAOhC;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAMhD;AAED;;;;;GAKG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAOhC;AA2DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,gBAAgB;IAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,YAAY,EACrC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACvD,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,eAAe,GACvB,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EACzC,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACrD,OAAO,CAAC,EAAE,mBAAmB,GAC3B,IAAI;IAYP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB;IAMnE;;;;OAIG;WACU,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQvF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,WAAW;WAWpD,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAarF;;;;;;;;OAQG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;IAW1D,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY;IAItD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAM9C,MAAM,CAAC,SAAS,IAAI,YAAY,EAAE;CAGlC;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAItD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/provider/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EACX,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAElB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,MAAM,4BAA4B,CAAA;AAGnC,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAKhC;AAED,qBAAa,sBAAuB,SAAQ,sBAAsB;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAShC;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAMhD;AAED;;;;;GAKG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;gBAEjB,YAAY,EAAE,MAAM;CAOhC;AA2DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,gBAAgB;IAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,YAAY,EACrC,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACvD,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,eAAe,GACvB,IAAI;IASP;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EACzC,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EACrD,OAAO,CAAC,EAAE,mBAAmB,GAC3B,IAAI;IAYP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB;IAMnE;;;;OAIG;WACU,WAAW,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQvF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,WAAW;WAWpD,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAarF;;;;;;;;OAQG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;IAW1D,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY;IAItD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAM9C,MAAM,CAAC,SAAS,IAAI,YAAY,EAAE;CAGlC;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAItD"}
@@ -1,3 +1,4 @@
1
+ import { RegistryCollisionError } from '../registry/collision.js';
1
2
  import { PERMISSIVE_PROVIDER_CAPABILITIES } from './capabilities.js';
2
3
  export class UnknownProviderError extends Error {
3
4
  providerType;
@@ -7,10 +8,10 @@ export class UnknownProviderError extends Error {
7
8
  this.providerType = providerType;
8
9
  }
9
10
  }
10
- export class DuplicateProviderError extends Error {
11
+ export class DuplicateProviderError extends RegistryCollisionError {
11
12
  providerType;
12
13
  constructor(providerType) {
13
- super(`Provider type "${providerType}" is already registered. Pass { replace: true } to override an existing registration.`);
14
+ super('ProviderRegistry', providerType, `Provider type "${providerType}" is already registered. Pass { replace: true } to override an existing registration.`);
14
15
  this.name = 'DuplicateProviderError';
15
16
  this.providerType = providerType;
16
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/provider/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/provider/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import type { StreamChunk } from '../types/provider/stream.js';
2
+ type ToolCallDelta = NonNullable<StreamChunk['delta']['toolCalls']>[number];
3
+ /**
4
+ * A stream that broke tool-call framing: a second call id on an `index`
5
+ * another call holds.
6
+ *
7
+ * The index is what groups a call's fragments, so after this no buffer can be
8
+ * trusted to hold one call's arguments. The second call's arguments used to be
9
+ * appended to the first's; the buffer that reached `JSON.parse` was then not
10
+ * what the model sent, and the model was told its call had been cut off.
11
+ *
12
+ * Nothing else about a call's framing is a violation. Arguments that arrive
13
+ * before the call's id belong to the call at their index and are kept, and a
14
+ * call whose id never arrives is still one call.
15
+ */
16
+ export interface ToolCallFramingViolation {
17
+ readonly kind: 'index_reused';
18
+ readonly index: number;
19
+ readonly openId: string;
20
+ readonly newId: string;
21
+ }
22
+ /**
23
+ * Whether this tool-call delta puts a new call on an index another call
24
+ * holds, or `undefined` when it does not.
25
+ *
26
+ * The same id repeated on every fragment is fine: some wires send it each
27
+ * time. Only a different one is a second call.
28
+ */
29
+ export declare function toolCallFramingViolation(open: {
30
+ readonly id: string;
31
+ } | undefined, delta: ToolCallDelta,
32
+ /** The index the fragment was placed on, when it came without one. */
33
+ index?: number): ToolCallFramingViolation | undefined;
34
+ /**
35
+ * Whether a fragment carries neither an index nor an id — the one shape
36
+ * `ToolCallIndexer.indexOf` cannot place by itself, and the only shape
37
+ * {@link ToolCallIndexer.placeUnindexedFragment} is for. A fragment with
38
+ * either goes through `indexOf` instead, unaffected by anything below.
39
+ */
40
+ export declare function isUnindexedFragment(delta: {
41
+ readonly index?: number;
42
+ readonly id?: string;
43
+ }): boolean;
44
+ /**
45
+ * The index each tool-call fragment of one stream belongs to.
46
+ *
47
+ * A driver sets `index`, and the index is what groups a call's fragments.
48
+ * Some servers leave it out of their `tool_calls` fragments, and a driver
49
+ * that passes the wire value through then sends none. Every such fragment used
50
+ * to land on one `undefined` index: two parallel calls were refused as a
51
+ * reused index, and the turn paused on a stream that had nothing wrong with
52
+ * it but the missing field.
53
+ *
54
+ * A fragment that carries an id, with or without an index, is placed by
55
+ * {@link indexOf}: an id seen before continues its call; a new id names the
56
+ * call the latest fragment went to when that call has no id yet, and starts a
57
+ * call on the next free index otherwise. A fragment that carries an index
58
+ * keeps it, so a well-formed stream is read exactly as before and a real
59
+ * reuse of an index is still refused.
60
+ *
61
+ * A fragment with NEITHER an id nor an index — see
62
+ * {@link isUnindexedFragment} — goes through {@link placeUnindexedFragment}
63
+ * instead, which is never a guess: nothing in such a fragment says which call
64
+ * it continues, so the caller is asked, for every call opened so far,
65
+ * whether it could still be receiving more of its arguments right now, and
66
+ * the fragment is placed only when the answer says exactly one call.
67
+ */
68
+ export declare class ToolCallIndexer {
69
+ private readonly byId;
70
+ private readonly idOf;
71
+ private readonly named;
72
+ private readonly opened;
73
+ private latest;
74
+ private next;
75
+ /** The index this id- or index-bearing fragment belongs to. */
76
+ indexOf(delta: {
77
+ readonly index?: number;
78
+ readonly id?: string;
79
+ }): number;
80
+ private placed;
81
+ /**
82
+ * Where a fragment with neither an id nor an index belongs — see
83
+ * {@link isUnindexedFragment}.
84
+ *
85
+ * Evaluated fresh for every such fragment, never decided once and
86
+ * remembered from when a call opened: a call's buffer can go from
87
+ * accepting more text to not (once it completes) and stay that way, so
88
+ * only the state right now, at each fragment, says which calls could
89
+ * still be its target. `canAccept(index)` is asked for every call opened
90
+ * so far and answers exactly that: true while its buffer is empty or is
91
+ * not yet a complete JSON value (it could still be receiving more), false
92
+ * once the buffer already parses as one complete value (nothing more is
93
+ * missing from it).
94
+ *
95
+ * - No call has opened yet: this fragment starts the first one. An id
96
+ * for it, if the stream sends one, arrives on a later fragment and
97
+ * attaches to it — the ordinary "arguments before the id" case,
98
+ * unchanged.
99
+ * - Exactly one open call can still accept: it is unambiguously that
100
+ * one.
101
+ * - Zero, or more than one, open call can: there is no way to tell which
102
+ * one this fragment was for, or none could take it at all. Every call
103
+ * that could have is returned in `candidates` (empty when none could),
104
+ * and the fragment belongs to none of them — appending it to a guess
105
+ * is exactly the splice this method exists to refuse.
106
+ */
107
+ placeUnindexedFragment(canAccept: (index: number) => boolean): number | {
108
+ readonly candidates: ReadonlyArray<{
109
+ readonly index: number;
110
+ readonly id?: string;
111
+ }>;
112
+ };
113
+ /**
114
+ * The index a block close belongs to: its own, or, when it has none, the
115
+ * call its id names, or the call the latest fragment went to.
116
+ */
117
+ closedIndex(end: {
118
+ readonly index?: number;
119
+ readonly id?: string;
120
+ }): number | undefined;
121
+ }
122
+ /** One sentence naming the violation, for an error's detail. */
123
+ export declare function describeToolCallFramingViolation(violation: ToolCallFramingViolation): string;
124
+ /**
125
+ * A stream sent a fragment with neither an id nor an index while more than
126
+ * one open call could still have been its target, or while none could.
127
+ *
128
+ * {@link ToolCallIndexer.placeUnindexedFragment} places such a fragment only
129
+ * when exactly one open call can still accept more text right now (its
130
+ * buffer empty, or not yet a complete JSON value). Once two calls are both
131
+ * in that state — the ordinary shape of a chat-completions "open" fragment,
132
+ * name and id with empty arguments, sent for one call right after another,
133
+ * before either has streamed any argument text — a later fragment naming
134
+ * neither could belong to either, and there is no field in it that says
135
+ * which. Guessing (placing it on whichever call was merely most recently
136
+ * active) can splice one call's JSON into the other's, and the splice can
137
+ * still happen to parse, so the wrong call runs with no error at all.
138
+ *
139
+ * `candidates` names every call that could have accepted the fragment: more
140
+ * than one when ambiguous, empty when the fragment matched no open call
141
+ * (nothing to route it to, and nothing to blame for it either).
142
+ */
143
+ export interface ToolCallInterleaving {
144
+ readonly kind: 'interleaved_without_index';
145
+ readonly candidates: ReadonlyArray<{
146
+ readonly index: number;
147
+ readonly id?: string;
148
+ }>;
149
+ }
150
+ /** One sentence naming the interleaving, for an error's detail or log line. */
151
+ export declare function describeToolCallInterleaving(interleaving: ToolCallInterleaving): string;
152
+ /**
153
+ * The `ToolInputError.parseError` given to every call an interleaving names.
154
+ * Reported `reason: 'malformed'`, never `'truncated'`: nothing here says the
155
+ * response was cut off, and "the model moved on to more text, reasoning or
156
+ * another call" — the only other case {@link ToolInputError} models — is
157
+ * exactly what opening a second call means. A call this leaves open may
158
+ * genuinely have gone on to carry valid JSON, if by chance no ambiguous
159
+ * fragment ever decided its fate; it is still reported unreadable rather
160
+ * than risk having guessed right by luck on some other stream.
161
+ */
162
+ export declare const INTERLEAVED_TOOL_INPUT_PARSE_ERROR = "its fragments arrived interleaved with another call's, with neither carrying an index to tell them apart";
163
+ export {};
164
+ //# sourceMappingURL=tool-call-framing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-framing.d.ts","sourceRoot":"","sources":["../../src/provider/tool-call-framing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAE9D,KAAK,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3E;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACzC,KAAK,EAAE,aAAa;AACpB,sEAAsE;AACtE,KAAK,GAAE,MAAoB,GACzB,wBAAwB,GAAG,SAAS,CAKtC;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,OAAO,CAEV;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAI;IAEhB,+DAA+D;IAC/D,OAAO,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAazE,OAAO,CAAC,MAAM;IAOd;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,sBAAsB,CACrB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAEnC,MAAM,GACN;QAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IAqB3F;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,SAAS;CAIvF;AAED,gEAAgE;AAChE,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,wBAAwB,GAAG,MAAM,CAE5F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAA;IAC1C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAED,+EAA+E;AAC/E,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,oBAAoB,GAAG,MAAM,CAQvF;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kCAAkC,6GAC4D,CAAA"}