@rudderjs/ai 1.17.2 → 1.18.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 (377) hide show
  1. package/README.md +19 -1274
  2. package/dist/budget-orm/index.d.ts +1 -95
  3. package/dist/budget-orm/index.d.ts.map +1 -1
  4. package/dist/budget-orm/index.js +4 -176
  5. package/dist/budget-orm/index.js.map +1 -1
  6. package/dist/chat-mentions.d.ts +1 -58
  7. package/dist/chat-mentions.d.ts.map +1 -1
  8. package/dist/chat-mentions.js +4 -80
  9. package/dist/chat-mentions.js.map +1 -1
  10. package/dist/commands/ai-eval.d.ts +1 -92
  11. package/dist/commands/ai-eval.d.ts.map +1 -1
  12. package/dist/commands/ai-eval.js +4 -377
  13. package/dist/commands/ai-eval.js.map +1 -1
  14. package/dist/commands/make-agent.d.ts +1 -2
  15. package/dist/commands/make-agent.d.ts.map +1 -1
  16. package/dist/commands/make-agent.js +4 -22
  17. package/dist/commands/make-agent.js.map +1 -1
  18. package/dist/computer-use/index.d.ts +1 -52
  19. package/dist/computer-use/index.d.ts.map +1 -1
  20. package/dist/computer-use/index.js +4 -50
  21. package/dist/computer-use/index.js.map +1 -1
  22. package/dist/conversation-orm/index.d.ts +1 -108
  23. package/dist/conversation-orm/index.d.ts.map +1 -1
  24. package/dist/conversation-orm/index.js +4 -214
  25. package/dist/conversation-orm/index.js.map +1 -1
  26. package/dist/doctor.d.ts +1 -1
  27. package/dist/doctor.d.ts.map +1 -1
  28. package/dist/doctor.js +4 -65
  29. package/dist/doctor.js.map +1 -1
  30. package/dist/eval/index.d.ts +1 -270
  31. package/dist/eval/index.d.ts.map +1 -1
  32. package/dist/eval/index.js +4 -509
  33. package/dist/eval/index.js.map +1 -1
  34. package/dist/gateway/index.d.ts +1 -10
  35. package/dist/gateway/index.d.ts.map +1 -1
  36. package/dist/gateway/index.js +4 -10
  37. package/dist/gateway/index.js.map +1 -1
  38. package/dist/index.d.ts +1 -66
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -78
  41. package/dist/index.js.map +1 -1
  42. package/dist/mcp/index.d.ts +1 -15
  43. package/dist/mcp/index.d.ts.map +1 -1
  44. package/dist/mcp/index.js +4 -14
  45. package/dist/mcp/index.js.map +1 -1
  46. package/dist/memory-embedding/index.d.ts +1 -120
  47. package/dist/memory-embedding/index.d.ts.map +1 -1
  48. package/dist/memory-embedding/index.js +4 -228
  49. package/dist/memory-embedding/index.js.map +1 -1
  50. package/dist/memory-orm/index.d.ts +1 -117
  51. package/dist/memory-orm/index.d.ts.map +1 -1
  52. package/dist/memory-orm/index.js +4 -186
  53. package/dist/memory-orm/index.js.map +1 -1
  54. package/dist/node/index.d.ts +1 -2
  55. package/dist/node/index.d.ts.map +1 -1
  56. package/dist/node/index.js +4 -2
  57. package/dist/node/index.js.map +1 -1
  58. package/dist/observers.d.ts +1 -129
  59. package/dist/observers.d.ts.map +1 -1
  60. package/dist/observers.js +4 -39
  61. package/dist/observers.js.map +1 -1
  62. package/dist/react/index.d.ts +1 -15
  63. package/dist/react/index.d.ts.map +1 -1
  64. package/dist/react/index.js +4 -15
  65. package/dist/react/index.js.map +1 -1
  66. package/dist/server/index.d.ts +1 -1
  67. package/dist/server/index.d.ts.map +1 -1
  68. package/dist/server/index.js +4 -1
  69. package/dist/server/index.js.map +1 -1
  70. package/package.json +9 -13
  71. package/boost/guidelines.md +0 -260
  72. package/boost/skills/ai-agents/SKILL.md +0 -240
  73. package/boost/skills/ai-tools/SKILL.md +0 -260
  74. package/dist/agent-run-store.d.ts +0 -161
  75. package/dist/agent-run-store.d.ts.map +0 -1
  76. package/dist/agent-run-store.js +0 -98
  77. package/dist/agent-run-store.js.map +0 -1
  78. package/dist/agent-sse.d.ts +0 -153
  79. package/dist/agent-sse.d.ts.map +0 -1
  80. package/dist/agent-sse.js +0 -282
  81. package/dist/agent-sse.js.map +0 -1
  82. package/dist/agent.d.ts +0 -508
  83. package/dist/agent.d.ts.map +0 -1
  84. package/dist/agent.js +0 -1538
  85. package/dist/agent.js.map +0 -1
  86. package/dist/attachment.d.ts +0 -31
  87. package/dist/attachment.d.ts.map +0 -1
  88. package/dist/attachment.js +0 -89
  89. package/dist/attachment.js.map +0 -1
  90. package/dist/audio.d.ts +0 -45
  91. package/dist/audio.d.ts.map +0 -1
  92. package/dist/audio.js +0 -93
  93. package/dist/audio.js.map +0 -1
  94. package/dist/base64.d.ts +0 -7
  95. package/dist/base64.d.ts.map +0 -1
  96. package/dist/base64.js +0 -39
  97. package/dist/base64.js.map +0 -1
  98. package/dist/budget/pricing.d.ts +0 -124
  99. package/dist/budget/pricing.d.ts.map +0 -1
  100. package/dist/budget/pricing.js +0 -175
  101. package/dist/budget/pricing.js.map +0 -1
  102. package/dist/budget/storage.d.ts +0 -104
  103. package/dist/budget/storage.d.ts.map +0 -1
  104. package/dist/budget/storage.js +0 -0
  105. package/dist/budget/storage.js.map +0 -1
  106. package/dist/budget/with-budget.d.ts +0 -119
  107. package/dist/budget/with-budget.d.ts.map +0 -1
  108. package/dist/budget/with-budget.js +0 -175
  109. package/dist/budget/with-budget.js.map +0 -1
  110. package/dist/cached-embedding.d.ts +0 -14
  111. package/dist/cached-embedding.d.ts.map +0 -1
  112. package/dist/cached-embedding.js +0 -44
  113. package/dist/cached-embedding.js.map +0 -1
  114. package/dist/computer-use/actions.d.ts +0 -214
  115. package/dist/computer-use/actions.d.ts.map +0 -1
  116. package/dist/computer-use/actions.js +0 -48
  117. package/dist/computer-use/actions.js.map +0 -1
  118. package/dist/computer-use/errors.d.ts +0 -57
  119. package/dist/computer-use/errors.d.ts.map +0 -1
  120. package/dist/computer-use/errors.js +0 -76
  121. package/dist/computer-use/errors.js.map +0 -1
  122. package/dist/computer-use/playwright.d.ts +0 -76
  123. package/dist/computer-use/playwright.d.ts.map +0 -1
  124. package/dist/computer-use/playwright.js +0 -270
  125. package/dist/computer-use/playwright.js.map +0 -1
  126. package/dist/computer-use/tool.d.ts +0 -154
  127. package/dist/computer-use/tool.d.ts.map +0 -1
  128. package/dist/computer-use/tool.js +0 -210
  129. package/dist/computer-use/tool.js.map +0 -1
  130. package/dist/continuation-validation.d.ts +0 -85
  131. package/dist/continuation-validation.d.ts.map +0 -1
  132. package/dist/continuation-validation.js +0 -166
  133. package/dist/continuation-validation.js.map +0 -1
  134. package/dist/conversation-persistence.d.ts +0 -46
  135. package/dist/conversation-persistence.d.ts.map +0 -1
  136. package/dist/conversation-persistence.js +0 -176
  137. package/dist/conversation-persistence.js.map +0 -1
  138. package/dist/conversation.d.ts +0 -11
  139. package/dist/conversation.d.ts.map +0 -1
  140. package/dist/conversation.js +0 -55
  141. package/dist/conversation.js.map +0 -1
  142. package/dist/eval/fixtures.d.ts +0 -65
  143. package/dist/eval/fixtures.d.ts.map +0 -1
  144. package/dist/eval/fixtures.js +0 -110
  145. package/dist/eval/fixtures.js.map +0 -1
  146. package/dist/eval/html-reporter.d.ts +0 -25
  147. package/dist/eval/html-reporter.d.ts.map +0 -1
  148. package/dist/eval/html-reporter.js +0 -209
  149. package/dist/eval/html-reporter.js.map +0 -1
  150. package/dist/eval/json-reporter.d.ts +0 -43
  151. package/dist/eval/json-reporter.d.ts.map +0 -1
  152. package/dist/eval/json-reporter.js +0 -40
  153. package/dist/eval/json-reporter.js.map +0 -1
  154. package/dist/facade.d.ts +0 -96
  155. package/dist/facade.d.ts.map +0 -1
  156. package/dist/facade.js +0 -146
  157. package/dist/facade.js.map +0 -1
  158. package/dist/fake.d.ts +0 -201
  159. package/dist/fake.d.ts.map +0 -1
  160. package/dist/fake.js +0 -428
  161. package/dist/fake.js.map +0 -1
  162. package/dist/file-search.d.ts +0 -168
  163. package/dist/file-search.d.ts.map +0 -1
  164. package/dist/file-search.js +0 -158
  165. package/dist/file-search.js.map +0 -1
  166. package/dist/files.d.ts +0 -27
  167. package/dist/files.d.ts.map +0 -1
  168. package/dist/files.js +0 -44
  169. package/dist/files.js.map +0 -1
  170. package/dist/gateway/http-gateway-adapter.d.ts +0 -94
  171. package/dist/gateway/http-gateway-adapter.d.ts.map +0 -1
  172. package/dist/gateway/http-gateway-adapter.js +0 -106
  173. package/dist/gateway/http-gateway-adapter.js.map +0 -1
  174. package/dist/gateway/sse.d.ts +0 -28
  175. package/dist/gateway/sse.d.ts.map +0 -1
  176. package/dist/gateway/sse.js +0 -78
  177. package/dist/gateway/sse.js.map +0 -1
  178. package/dist/handoff.d.ts +0 -95
  179. package/dist/handoff.d.ts.map +0 -1
  180. package/dist/handoff.js +0 -78
  181. package/dist/handoff.js.map +0 -1
  182. package/dist/handoffs-driver.d.ts +0 -58
  183. package/dist/handoffs-driver.d.ts.map +0 -1
  184. package/dist/handoffs-driver.js +0 -103
  185. package/dist/handoffs-driver.js.map +0 -1
  186. package/dist/image.d.ts +0 -40
  187. package/dist/image.d.ts.map +0 -1
  188. package/dist/image.js +0 -109
  189. package/dist/image.js.map +0 -1
  190. package/dist/mcp/client-tools.d.ts +0 -39
  191. package/dist/mcp/client-tools.d.ts.map +0 -1
  192. package/dist/mcp/client-tools.js +0 -147
  193. package/dist/mcp/client-tools.js.map +0 -1
  194. package/dist/mcp/server-from-agent.d.ts +0 -24
  195. package/dist/mcp/server-from-agent.d.ts.map +0 -1
  196. package/dist/mcp/server-from-agent.js +0 -113
  197. package/dist/mcp/server-from-agent.js.map +0 -1
  198. package/dist/mcp/types.d.ts +0 -64
  199. package/dist/mcp/types.d.ts.map +0 -1
  200. package/dist/mcp/types.js +0 -6
  201. package/dist/mcp/types.js.map +0 -1
  202. package/dist/memory-extract.d.ts +0 -60
  203. package/dist/memory-extract.d.ts.map +0 -1
  204. package/dist/memory-extract.js +0 -163
  205. package/dist/memory-extract.js.map +0 -1
  206. package/dist/memory-inject.d.ts +0 -39
  207. package/dist/memory-inject.d.ts.map +0 -1
  208. package/dist/memory-inject.js +0 -135
  209. package/dist/memory-inject.js.map +0 -1
  210. package/dist/memory.d.ts +0 -55
  211. package/dist/memory.d.ts.map +0 -1
  212. package/dist/memory.js +0 -132
  213. package/dist/memory.js.map +0 -1
  214. package/dist/middleware.d.ts +0 -18
  215. package/dist/middleware.d.ts.map +0 -1
  216. package/dist/middleware.js +0 -72
  217. package/dist/middleware.js.map +0 -1
  218. package/dist/node/attachment.d.ts +0 -6
  219. package/dist/node/attachment.d.ts.map +0 -1
  220. package/dist/node/attachment.js +0 -35
  221. package/dist/node/attachment.js.map +0 -1
  222. package/dist/node/transcription.d.ts +0 -4
  223. package/dist/node/transcription.d.ts.map +0 -1
  224. package/dist/node/transcription.js +0 -8
  225. package/dist/node/transcription.js.map +0 -1
  226. package/dist/output.d.ts +0 -22
  227. package/dist/output.d.ts.map +0 -1
  228. package/dist/output.js +0 -60
  229. package/dist/output.js.map +0 -1
  230. package/dist/provider-tools.d.ts +0 -87
  231. package/dist/provider-tools.d.ts.map +0 -1
  232. package/dist/provider-tools.js +0 -189
  233. package/dist/provider-tools.js.map +0 -1
  234. package/dist/providers/anthropic.d.ts +0 -24
  235. package/dist/providers/anthropic.d.ts.map +0 -1
  236. package/dist/providers/anthropic.js +0 -405
  237. package/dist/providers/anthropic.js.map +0 -1
  238. package/dist/providers/azure.d.ts +0 -13
  239. package/dist/providers/azure.d.ts.map +0 -1
  240. package/dist/providers/azure.js +0 -15
  241. package/dist/providers/azure.js.map +0 -1
  242. package/dist/providers/bedrock.d.ts +0 -75
  243. package/dist/providers/bedrock.d.ts.map +0 -1
  244. package/dist/providers/bedrock.js +0 -181
  245. package/dist/providers/bedrock.js.map +0 -1
  246. package/dist/providers/cohere.d.ts +0 -13
  247. package/dist/providers/cohere.d.ts.map +0 -1
  248. package/dist/providers/cohere.js +0 -87
  249. package/dist/providers/cohere.js.map +0 -1
  250. package/dist/providers/deepseek.d.ts +0 -12
  251. package/dist/providers/deepseek.d.ts.map +0 -1
  252. package/dist/providers/deepseek.js +0 -15
  253. package/dist/providers/deepseek.js.map +0 -1
  254. package/dist/providers/elevenlabs.d.ts +0 -98
  255. package/dist/providers/elevenlabs.d.ts.map +0 -1
  256. package/dist/providers/elevenlabs.js +0 -229
  257. package/dist/providers/elevenlabs.js.map +0 -1
  258. package/dist/providers/google-cache-registry.d.ts +0 -132
  259. package/dist/providers/google-cache-registry.d.ts.map +0 -1
  260. package/dist/providers/google-cache-registry.js +0 -209
  261. package/dist/providers/google-cache-registry.js.map +0 -1
  262. package/dist/providers/google.d.ts +0 -38
  263. package/dist/providers/google.d.ts.map +0 -1
  264. package/dist/providers/google.js +0 -903
  265. package/dist/providers/google.js.map +0 -1
  266. package/dist/providers/groq.d.ts +0 -12
  267. package/dist/providers/groq.d.ts.map +0 -1
  268. package/dist/providers/groq.js +0 -15
  269. package/dist/providers/groq.js.map +0 -1
  270. package/dist/providers/jina.d.ts +0 -13
  271. package/dist/providers/jina.d.ts.map +0 -1
  272. package/dist/providers/jina.js +0 -90
  273. package/dist/providers/jina.js.map +0 -1
  274. package/dist/providers/mistral.d.ts +0 -13
  275. package/dist/providers/mistral.d.ts.map +0 -1
  276. package/dist/providers/mistral.js +0 -46
  277. package/dist/providers/mistral.js.map +0 -1
  278. package/dist/providers/ollama.d.ts +0 -11
  279. package/dist/providers/ollama.d.ts.map +0 -1
  280. package/dist/providers/ollama.js +0 -15
  281. package/dist/providers/ollama.js.map +0 -1
  282. package/dist/providers/openai.d.ts +0 -79
  283. package/dist/providers/openai.d.ts.map +0 -1
  284. package/dist/providers/openai.js +0 -792
  285. package/dist/providers/openai.js.map +0 -1
  286. package/dist/providers/openrouter.d.ts +0 -43
  287. package/dist/providers/openrouter.d.ts.map +0 -1
  288. package/dist/providers/openrouter.js +0 -21
  289. package/dist/providers/openrouter.js.map +0 -1
  290. package/dist/providers/voyage.d.ts +0 -91
  291. package/dist/providers/voyage.d.ts.map +0 -1
  292. package/dist/providers/voyage.js +0 -166
  293. package/dist/providers/voyage.js.map +0 -1
  294. package/dist/providers/xai.d.ts +0 -12
  295. package/dist/providers/xai.d.ts.map +0 -1
  296. package/dist/providers/xai.js +0 -15
  297. package/dist/providers/xai.js.map +0 -1
  298. package/dist/queue-job.d.ts +0 -100
  299. package/dist/queue-job.d.ts.map +0 -1
  300. package/dist/queue-job.js +0 -185
  301. package/dist/queue-job.js.map +0 -1
  302. package/dist/react/agent-run.d.ts +0 -111
  303. package/dist/react/agent-run.d.ts.map +0 -1
  304. package/dist/react/agent-run.js +0 -107
  305. package/dist/react/agent-run.js.map +0 -1
  306. package/dist/react/useAgentRun.d.ts +0 -68
  307. package/dist/react/useAgentRun.d.ts.map +0 -1
  308. package/dist/react/useAgentRun.js +0 -125
  309. package/dist/react/useAgentRun.js.map +0 -1
  310. package/dist/registry.d.ts +0 -45
  311. package/dist/registry.d.ts.map +0 -1
  312. package/dist/registry.js +0 -131
  313. package/dist/registry.js.map +0 -1
  314. package/dist/rerank.d.ts +0 -20
  315. package/dist/rerank.d.ts.map +0 -1
  316. package/dist/rerank.js +0 -40
  317. package/dist/rerank.js.map +0 -1
  318. package/dist/resume-approval.d.ts +0 -30
  319. package/dist/resume-approval.d.ts.map +0 -1
  320. package/dist/resume-approval.js +0 -147
  321. package/dist/resume-approval.js.map +0 -1
  322. package/dist/sanitize-conversation.d.ts +0 -43
  323. package/dist/sanitize-conversation.d.ts.map +0 -1
  324. package/dist/sanitize-conversation.js +0 -85
  325. package/dist/sanitize-conversation.js.map +0 -1
  326. package/dist/scoped-tool.d.ts +0 -98
  327. package/dist/scoped-tool.d.ts.map +0 -1
  328. package/dist/scoped-tool.js +0 -174
  329. package/dist/scoped-tool.js.map +0 -1
  330. package/dist/server/provider.d.ts +0 -22
  331. package/dist/server/provider.d.ts.map +0 -1
  332. package/dist/server/provider.js +0 -194
  333. package/dist/server/provider.js.map +0 -1
  334. package/dist/similarity-search.d.ts +0 -163
  335. package/dist/similarity-search.d.ts.map +0 -1
  336. package/dist/similarity-search.js +0 -147
  337. package/dist/similarity-search.js.map +0 -1
  338. package/dist/sub-agent-run-store.d.ts +0 -157
  339. package/dist/sub-agent-run-store.d.ts.map +0 -1
  340. package/dist/sub-agent-run-store.js +0 -87
  341. package/dist/sub-agent-run-store.js.map +0 -1
  342. package/dist/tool-execution.d.ts +0 -16
  343. package/dist/tool-execution.d.ts.map +0 -1
  344. package/dist/tool-execution.js +0 -498
  345. package/dist/tool-execution.js.map +0 -1
  346. package/dist/tool-helpers.d.ts +0 -77
  347. package/dist/tool-helpers.d.ts.map +0 -1
  348. package/dist/tool-helpers.js +0 -117
  349. package/dist/tool-helpers.js.map +0 -1
  350. package/dist/tool.d.ts +0 -216
  351. package/dist/tool.d.ts.map +0 -1
  352. package/dist/tool.js +0 -175
  353. package/dist/tool.js.map +0 -1
  354. package/dist/transcription.d.ts +0 -42
  355. package/dist/transcription.d.ts.map +0 -1
  356. package/dist/transcription.js +0 -77
  357. package/dist/transcription.js.map +0 -1
  358. package/dist/types.d.ts +0 -1020
  359. package/dist/types.d.ts.map +0 -1
  360. package/dist/types.js +0 -2
  361. package/dist/types.js.map +0 -1
  362. package/dist/util/hash.d.ts +0 -11
  363. package/dist/util/hash.d.ts.map +0 -1
  364. package/dist/util/hash.js +0 -23
  365. package/dist/util/hash.js.map +0 -1
  366. package/dist/vector-stores/index.d.ts +0 -96
  367. package/dist/vector-stores/index.d.ts.map +0 -1
  368. package/dist/vector-stores/index.js +0 -153
  369. package/dist/vector-stores/index.js.map +0 -1
  370. package/dist/vercel-protocol.d.ts +0 -18
  371. package/dist/vercel-protocol.d.ts.map +0 -1
  372. package/dist/vercel-protocol.js +0 -75
  373. package/dist/vercel-protocol.js.map +0 -1
  374. package/dist/zod-to-json-schema.d.ts +0 -16
  375. package/dist/zod-to-json-schema.d.ts.map +0 -1
  376. package/dist/zod-to-json-schema.js +0 -17
  377. package/dist/zod-to-json-schema.js.map +0 -1
@@ -1,498 +0,0 @@
1
- import { isHandoffTool } from './handoff.js';
2
- import { runOnAbort, runOnAfterToolCall, runOnBeforeToolCall, runOnChunk, runOnError, runSequential, } from './middleware.js';
3
- import { isPauseForApprovalChunk, isPauseForClientToolsChunk } from './tool.js';
4
- import { applyToModelOutput, evaluateApproval, executeMaybeStreaming, validateToolArgs, } from './tool-helpers.js';
5
- /**
6
- * Execute the tool phase for a single agent step. Yields the same
7
- * `StreamChunk` sequence (`tool-call` → `tool-update*` → `tool-result`) that
8
- * the streaming caller surfaces to consumers. Non-streaming callers iterate
9
- * via `.next()` and discard yields — the side effects (message pushes,
10
- * pending-state mutations on `loopCtx`) are identical regardless of whether
11
- * the chunks reach a consumer.
12
- *
13
- * Returns the step's `ToolResult[]`. The caller passes the assistant message
14
- * to push before iteration so the AgentStep shape (response.message) and the
15
- * final `messages` array stay in sync with the loop variant.
16
- */
17
- export async function* executeToolPhase(loopCtx, toolCalls, assistantMessage) {
18
- const { messages, middlewares, options, ctx } = loopCtx;
19
- const toolResults = [];
20
- messages.push(assistantMessage);
21
- // Resolve parallelism setting. Per-call option wins; falls back to the
22
- // agent-level override which defaults to `true`. Single-tool batches
23
- // route through the serial path either way (no parallelism to gain, and
24
- // serial preserves live `tool-update` streaming for that one tool).
25
- //
26
- // Handoffs always force serial dispatch — the parent loop has to halt
27
- // immediately on the first handoff and synthesize "skipped" results for
28
- // any sibling calls. Handling that across the parallel classify/replay
29
- // phases is doable but adds complexity for negligible benefit (the model
30
- // rarely emits parallel siblings alongside a handoff, and even then,
31
- // running them while the agent is being torn down is wasted work).
32
- const hasHandoff = toolCalls.some(tc => isHandoffTool(loopCtx.toolMap.get(tc.name)));
33
- const parallel = (options?.parallelTools ?? loopCtx.agent.parallelTools()) && toolCalls.length > 1 && !hasHandoff;
34
- if (parallel) {
35
- yield* runToolPhaseParallel(loopCtx, toolCalls, toolResults);
36
- }
37
- else {
38
- yield* runToolPhaseSerial(loopCtx, toolCalls, toolResults);
39
- }
40
- // onToolPhaseComplete
41
- if (middlewares.length > 0)
42
- await runSequential(middlewares, 'onToolPhaseComplete', ctx);
43
- return toolResults;
44
- }
45
- /**
46
- * Serial tool execution — the original behavior. Runs each tool call's
47
- * prelude (approval, before-middleware, validation) and `execute()`
48
- * one-after-another, streaming `tool-update` chunks live as the tool
49
- * emits them.
50
- */
51
- async function* runToolPhaseSerial(loopCtx, toolCalls, toolResults) {
52
- const { messages, middlewares, toolMap, options, ctx } = loopCtx;
53
- for (const tc of toolCalls) {
54
- const tool = toolMap.get(tc.name);
55
- if (!tool) {
56
- const unknownResult = `Error: Unknown tool "${tc.name}"`;
57
- toolResults.push({ toolCallId: tc.id, result: unknownResult });
58
- messages.push({ role: 'tool', content: unknownResult, toolCallId: tc.id });
59
- yield { type: 'tool-result', toolCall: tc, result: unknownResult };
60
- continue;
61
- }
62
- // Handoff — detected before the no-execute (client tool) branch because
63
- // a handoff tool also has no `execute`, but it has wholly different
64
- // semantics: pivot control to a new agent instead of pausing for the
65
- // browser. The first handoff in a step wins; any subsequent tool calls
66
- // in the same step are skipped with a synthetic "skipped: handed off"
67
- // tool result so the message log stays well-formed for replay.
68
- if (loopCtx.stopForHandoff) {
69
- const skippedResult = 'Skipped: parent agent handed off to another agent.';
70
- toolResults.push({ toolCallId: tc.id, result: skippedResult });
71
- messages.push({ role: 'tool', content: skippedResult, toolCallId: tc.id });
72
- yield { type: 'tool-call', toolCall: tc };
73
- yield { type: 'tool-result', toolCall: tc, result: skippedResult };
74
- continue;
75
- }
76
- if (isHandoffTool(tool)) {
77
- const spec = tool.__handoffSpec;
78
- const validation = validateToolArgs(tool, tc.arguments);
79
- // Handoff payload defaults to `{ message: string }`; custom schemas
80
- // are accepted but the loop only uses `args.message` (string) as the
81
- // transition prompt. Anything else surfaces in the conversation as
82
- // the args of the synthetic tool-call.
83
- const args = validation.ok ? validation.value : tc.arguments;
84
- const transitionMessage = typeof args['message'] === 'string' ? args['message'] : '';
85
- const handoffResult = `Handed off to ${spec.AgentClass.name}.`;
86
- toolResults.push({ toolCallId: tc.id, result: handoffResult });
87
- messages.push({ role: 'tool', content: handoffResult, toolCallId: tc.id });
88
- yield { type: 'tool-call', toolCall: tc };
89
- yield { type: 'tool-result', toolCall: tc, result: handoffResult };
90
- yield {
91
- type: 'handoff',
92
- handoff: {
93
- from: loopCtx.agent.constructor.name,
94
- to: spec.AgentClass.name,
95
- ...(transitionMessage ? { message: transitionMessage } : {}),
96
- },
97
- };
98
- loopCtx.pendingHandoff = { spec, transitionMessage, parentToolCallId: tc.id };
99
- loopCtx.stopForHandoff = true;
100
- // Do NOT break — keep iterating so any sibling tool calls in this
101
- // step get their synthetic "skipped" tool results before the loop
102
- // exits. This preserves message-log invariants for downstream
103
- // persistence.
104
- continue;
105
- }
106
- if (!tool.execute) {
107
- // Client tool — no server-side handler.
108
- if (options?.toolCallStreamingMode === 'stop-on-client-tool') {
109
- loopCtx.pendingClientToolCalls.push(tc);
110
- loopCtx.loopFinishReason = 'client_tool_calls';
111
- loopCtx.stopForClientTools = true;
112
- yield { type: 'tool-call', toolCall: tc };
113
- continue;
114
- }
115
- const placeholder = '[client tool — execute on client]';
116
- toolResults.push({ toolCallId: tc.id, result: placeholder });
117
- messages.push({ role: 'tool', content: placeholder, toolCallId: tc.id });
118
- yield { type: 'tool-call', toolCall: tc };
119
- yield { type: 'tool-result', toolCall: tc, result: placeholder };
120
- continue;
121
- }
122
- // needsApproval enforcement
123
- const approvalDecision = await evaluateApproval(tool, tc, options);
124
- if (approvalDecision === 'rejected') {
125
- const rejectionResult = { rejected: true, reason: 'User rejected this tool call' };
126
- toolResults.push({ toolCallId: tc.id, result: rejectionResult });
127
- messages.push({ role: 'tool', content: JSON.stringify(rejectionResult), toolCallId: tc.id });
128
- yield { type: 'tool-result', toolCall: tc, result: rejectionResult };
129
- continue;
130
- }
131
- if (approvalDecision === 'pending') {
132
- loopCtx.pendingApprovalToolCall = { toolCall: tc, isClientTool: false };
133
- loopCtx.loopFinishReason = 'tool_approval_required';
134
- loopCtx.stopForApproval = true;
135
- yield { type: 'tool-call', toolCall: tc };
136
- break;
137
- }
138
- // onBeforeToolCall
139
- let toolArgs = tc.arguments;
140
- if (middlewares.length > 0) {
141
- const beforeResult = await runOnBeforeToolCall(middlewares, ctx, tc.name, toolArgs);
142
- if (beforeResult) {
143
- if (beforeResult.type === 'skip') {
144
- const resultStr = typeof beforeResult.result === 'string' ? beforeResult.result : JSON.stringify(beforeResult.result);
145
- toolResults.push({ toolCallId: tc.id, result: beforeResult.result });
146
- messages.push({ role: 'tool', content: resultStr, toolCallId: tc.id });
147
- yield { type: 'tool-result', toolCall: tc, result: beforeResult.result };
148
- await runOnAfterToolCall(middlewares, ctx, tc.name, toolArgs, beforeResult.result);
149
- continue;
150
- }
151
- if (beforeResult.type === 'abort') {
152
- await runOnAbort(middlewares, ctx, beforeResult.reason);
153
- break;
154
- }
155
- if (beforeResult.type === 'transformArgs') {
156
- toolArgs = beforeResult.args;
157
- }
158
- }
159
- }
160
- // Validate args against the tool's inputSchema. Runs after middleware
161
- // transforms so transforms can reshape malformed model output before
162
- // it is judged. The tool-call chunk is emitted even on validation
163
- // failure so streaming UIs see a paired tool-call → tool-result(error)
164
- // sequence; non-streaming callers discard the chunk.
165
- const validation = validateToolArgs(tool, toolArgs);
166
- if (!validation.ok) {
167
- yield { type: 'tool-call', toolCall: tc };
168
- toolResults.push({ toolCallId: tc.id, result: validation.error });
169
- messages.push({ role: 'tool', content: JSON.stringify(validation.error), toolCallId: tc.id });
170
- yield { type: 'tool-result', toolCall: tc, result: validation.error };
171
- if (middlewares.length > 0)
172
- await runOnAfterToolCall(middlewares, ctx, tc.name, toolArgs, validation.error);
173
- continue;
174
- }
175
- const validatedArgs = validation.value;
176
- const toolStart = performance.now();
177
- try {
178
- // Emit the tool-call marker before execution so streaming UIs see
179
- // tool-call → tool-update* → tool-result in order. Async-generator
180
- // executes stream their yields as tool-update chunks live; plain
181
- // executes yield nothing here.
182
- //
183
- // Pause detection: a yielded `pause_for_client_tools` control chunk
184
- // halts iteration, propagates the nested calls to the parent's
185
- // pending list, and SKIPS the tool_result emission — the yielding
186
- // tool's own call stays orphaned in the parent message history
187
- // until the caller resolves it on resume.
188
- yield { type: 'tool-call', toolCall: tc };
189
- const execGen = executeMaybeStreaming(tool, validatedArgs, { toolCallId: tc.id });
190
- let result;
191
- let paused = false;
192
- while (true) {
193
- const step = await execGen.next();
194
- if (step.done) {
195
- result = step.value;
196
- break;
197
- }
198
- if (isPauseForClientToolsChunk(step.value)) {
199
- for (const pending of step.value.toolCalls) {
200
- loopCtx.pendingClientToolCalls.push(pending);
201
- }
202
- loopCtx.loopFinishReason = 'client_tool_calls';
203
- loopCtx.stopForClientTools = true;
204
- paused = true;
205
- break;
206
- }
207
- if (isPauseForApprovalChunk(step.value)) {
208
- loopCtx.pendingApprovalToolCall = {
209
- toolCall: step.value.toolCall,
210
- isClientTool: step.value.isClientTool,
211
- };
212
- loopCtx.loopFinishReason = 'tool_approval_required';
213
- loopCtx.stopForApproval = true;
214
- paused = true;
215
- break;
216
- }
217
- const updateChunk = { type: 'tool-update', toolCall: tc, update: step.value };
218
- if (middlewares.length > 0) {
219
- const transformed = runOnChunk(middlewares, ctx, updateChunk);
220
- if (transformed)
221
- yield transformed;
222
- }
223
- else {
224
- yield updateChunk;
225
- }
226
- }
227
- if (paused)
228
- continue; // skip tool_result emission + message push for this tc
229
- const duration = performance.now() - toolStart;
230
- // toolResults preserves the ORIGINAL value; only the message content
231
- // pushed onto `messages` (next-step model input) is narrowed by
232
- // toModelOutput. The streamed `tool-result` chunk also carries the
233
- // ORIGINAL value.
234
- toolResults.push({ toolCallId: tc.id, result, duration });
235
- const resultStr = await applyToModelOutput(tool, result, middlewares.length > 0 ? (e) => runOnError(middlewares, ctx, e) : undefined);
236
- messages.push({ role: 'tool', content: resultStr, toolCallId: tc.id });
237
- yield { type: 'tool-result', toolCall: tc, result };
238
- // onAfterToolCall
239
- if (middlewares.length > 0)
240
- await runOnAfterToolCall(middlewares, ctx, tc.name, toolArgs, result);
241
- }
242
- catch (err) {
243
- const duration = performance.now() - toolStart;
244
- const msg = err instanceof Error ? err.message : String(err);
245
- const errResult = `Error: ${msg}`;
246
- toolResults.push({ toolCallId: tc.id, result: errResult, duration });
247
- messages.push({ role: 'tool', content: errResult, toolCallId: tc.id });
248
- yield { type: 'tool-result', toolCall: tc, result: errResult };
249
- // onAfterToolCall (error case)
250
- if (middlewares.length > 0)
251
- await runOnAfterToolCall(middlewares, ctx, tc.name, toolArgs, errResult);
252
- }
253
- }
254
- }
255
- /**
256
- * Parallel tool execution — three phases:
257
- *
258
- * 1. **Prelude (serial, in tool-call order):** classify each call. Approval
259
- * decisions, `onBeforeToolCall` middleware, and arg validation all
260
- * resolve here; the next phase only sees calls that cleared every
261
- * gate. `pending-approval` and `mw-abort` short-circuit the prelude
262
- * exactly as they do in serial mode — later calls are never dispatched.
263
- *
264
- * 2. **Execution (parallel):** for every `ready` outcome, drive
265
- * `executeMaybeStreaming` to completion concurrently. `tool-update`
266
- * chunks (and any pause-for-client-tools mutations to `loopCtx`) are
267
- * captured per-call into a buffer.
268
- *
269
- * 3. **Replay (serial, in tool-call order):** for each outcome, emit its
270
- * chunks (including buffered `tool-update`s for ready calls), push
271
- * tool messages, and run `onAfterToolCall`. This is the only phase
272
- * that yields chunks to consumers, so streamed output stays
273
- * deterministic regardless of which `execute()` finished first.
274
- */
275
- async function* runToolPhaseParallel(loopCtx, toolCalls, toolResults) {
276
- const { messages, middlewares, ctx } = loopCtx;
277
- // ─── Phase 1: prelude ──────────────────────────────────
278
- const outcomes = await classifyToolCalls(loopCtx, toolCalls);
279
- // ─── Phase 2: dispatch ready executions concurrently ──
280
- const ready = outcomes.filter((o) => o.kind === 'ready');
281
- const executions = await Promise.all(ready.map(o => runToolExecution(loopCtx, o)));
282
- const executionByCallId = new Map();
283
- for (let i = 0; i < ready.length; i++) {
284
- executionByCallId.set(ready[i].tc.id, executions[i]);
285
- }
286
- // ─── Phase 3: replay chunks + side-effects in order ───
287
- for (const outcome of outcomes) {
288
- if (outcome.kind === 'unknown-tool') {
289
- toolResults.push({ toolCallId: outcome.tc.id, result: outcome.result });
290
- messages.push({ role: 'tool', content: outcome.result, toolCallId: outcome.tc.id });
291
- yield { type: 'tool-result', toolCall: outcome.tc, result: outcome.result };
292
- continue;
293
- }
294
- if (outcome.kind === 'client-tool-stop') {
295
- // loopCtx mutations already applied during the prelude.
296
- yield { type: 'tool-call', toolCall: outcome.tc };
297
- continue;
298
- }
299
- if (outcome.kind === 'client-tool-placeholder') {
300
- toolResults.push({ toolCallId: outcome.tc.id, result: outcome.result });
301
- messages.push({ role: 'tool', content: outcome.result, toolCallId: outcome.tc.id });
302
- yield { type: 'tool-call', toolCall: outcome.tc };
303
- yield { type: 'tool-result', toolCall: outcome.tc, result: outcome.result };
304
- continue;
305
- }
306
- if (outcome.kind === 'rejected') {
307
- toolResults.push({ toolCallId: outcome.tc.id, result: outcome.result });
308
- messages.push({ role: 'tool', content: JSON.stringify(outcome.result), toolCallId: outcome.tc.id });
309
- yield { type: 'tool-result', toolCall: outcome.tc, result: outcome.result };
310
- continue;
311
- }
312
- if (outcome.kind === 'pending-approval') {
313
- // loopCtx mutations already applied during the prelude.
314
- yield { type: 'tool-call', toolCall: outcome.tc };
315
- // Phase 1 stops classifying after pending-approval, so this is the
316
- // last outcome — but `break` keeps the intent explicit.
317
- break;
318
- }
319
- if (outcome.kind === 'mw-skip') {
320
- const resultStr = typeof outcome.result === 'string' ? outcome.result : JSON.stringify(outcome.result);
321
- toolResults.push({ toolCallId: outcome.tc.id, result: outcome.result });
322
- messages.push({ role: 'tool', content: resultStr, toolCallId: outcome.tc.id });
323
- yield { type: 'tool-result', toolCall: outcome.tc, result: outcome.result };
324
- if (middlewares.length > 0)
325
- await runOnAfterToolCall(middlewares, ctx, outcome.tc.name, outcome.toolArgs, outcome.result);
326
- continue;
327
- }
328
- if (outcome.kind === 'validation-error') {
329
- yield { type: 'tool-call', toolCall: outcome.tc };
330
- toolResults.push({ toolCallId: outcome.tc.id, result: outcome.error });
331
- messages.push({ role: 'tool', content: JSON.stringify(outcome.error), toolCallId: outcome.tc.id });
332
- yield { type: 'tool-result', toolCall: outcome.tc, result: outcome.error };
333
- if (middlewares.length > 0)
334
- await runOnAfterToolCall(middlewares, ctx, outcome.tc.name, outcome.toolArgs, outcome.error);
335
- continue;
336
- }
337
- // outcome.kind === 'ready'
338
- const exec = executionByCallId.get(outcome.tc.id);
339
- yield { type: 'tool-call', toolCall: outcome.tc };
340
- for (const chunk of exec.updates)
341
- yield chunk;
342
- if (exec.kind === 'paused') {
343
- // Pause-for-client-tools propagated its calls onto `loopCtx` during
344
- // execution. Skip tool_result emission + message push — the call
345
- // stays orphaned until resume.
346
- continue;
347
- }
348
- if (exec.kind === 'error') {
349
- const errResult = `Error: ${exec.error.message}`;
350
- toolResults.push({ toolCallId: outcome.tc.id, result: errResult, duration: exec.duration });
351
- messages.push({ role: 'tool', content: errResult, toolCallId: outcome.tc.id });
352
- yield { type: 'tool-result', toolCall: outcome.tc, result: errResult };
353
- if (middlewares.length > 0)
354
- await runOnAfterToolCall(middlewares, ctx, outcome.tc.name, outcome.toolArgs, errResult);
355
- continue;
356
- }
357
- // exec.kind === 'ok'
358
- toolResults.push({ toolCallId: outcome.tc.id, result: exec.result, duration: exec.duration });
359
- const resultStr = await applyToModelOutput(outcome.tool, exec.result, middlewares.length > 0 ? (e) => runOnError(middlewares, ctx, e) : undefined);
360
- messages.push({ role: 'tool', content: resultStr, toolCallId: outcome.tc.id });
361
- yield { type: 'tool-result', toolCall: outcome.tc, result: exec.result };
362
- if (middlewares.length > 0)
363
- await runOnAfterToolCall(middlewares, ctx, outcome.tc.name, outcome.toolArgs, exec.result);
364
- }
365
- }
366
- /**
367
- * Walk `toolCalls` in order and decide each call's fate. Mutations to
368
- * `loopCtx` for client-tool-stop, pending-approval, and middleware-abort
369
- * happen here so the rest of the parallel flow sees the same state the
370
- * serial path would. `pending-approval` and `mw-abort` stop the walk —
371
- * later calls are not classified and are silently dropped.
372
- */
373
- async function classifyToolCalls(loopCtx, toolCalls) {
374
- const { middlewares, toolMap, options, ctx } = loopCtx;
375
- const outcomes = [];
376
- for (const tc of toolCalls) {
377
- const tool = toolMap.get(tc.name);
378
- if (!tool) {
379
- outcomes.push({ kind: 'unknown-tool', tc, result: `Error: Unknown tool "${tc.name}"` });
380
- continue;
381
- }
382
- if (!tool.execute) {
383
- if (options?.toolCallStreamingMode === 'stop-on-client-tool') {
384
- loopCtx.pendingClientToolCalls.push(tc);
385
- loopCtx.loopFinishReason = 'client_tool_calls';
386
- loopCtx.stopForClientTools = true;
387
- outcomes.push({ kind: 'client-tool-stop', tc });
388
- continue;
389
- }
390
- outcomes.push({ kind: 'client-tool-placeholder', tc, result: '[client tool — execute on client]' });
391
- continue;
392
- }
393
- const approvalDecision = await evaluateApproval(tool, tc, options);
394
- if (approvalDecision === 'rejected') {
395
- outcomes.push({ kind: 'rejected', tc, result: { rejected: true, reason: 'User rejected this tool call' } });
396
- continue;
397
- }
398
- if (approvalDecision === 'pending') {
399
- loopCtx.pendingApprovalToolCall = { toolCall: tc, isClientTool: false };
400
- loopCtx.loopFinishReason = 'tool_approval_required';
401
- loopCtx.stopForApproval = true;
402
- outcomes.push({ kind: 'pending-approval', tc });
403
- break;
404
- }
405
- let toolArgs = tc.arguments;
406
- if (middlewares.length > 0) {
407
- const beforeResult = await runOnBeforeToolCall(middlewares, ctx, tc.name, toolArgs);
408
- if (beforeResult) {
409
- if (beforeResult.type === 'skip') {
410
- outcomes.push({ kind: 'mw-skip', tc, toolArgs, result: beforeResult.result });
411
- continue;
412
- }
413
- if (beforeResult.type === 'abort') {
414
- await runOnAbort(middlewares, ctx, beforeResult.reason);
415
- // Drop any prior outcomes too? No — serial mode emits prior
416
- // outcomes' chunks before hitting abort, so we keep them in the
417
- // outcomes list and Phase 3 emits them up to (but not including)
418
- // this call. Stop classifying further.
419
- break;
420
- }
421
- if (beforeResult.type === 'transformArgs') {
422
- toolArgs = beforeResult.args;
423
- }
424
- }
425
- }
426
- const validation = validateToolArgs(tool, toolArgs);
427
- if (!validation.ok) {
428
- outcomes.push({ kind: 'validation-error', tc, toolArgs, error: validation.error });
429
- continue;
430
- }
431
- outcomes.push({ kind: 'ready', tc, tool, toolArgs, validatedArgs: validation.value });
432
- }
433
- return outcomes;
434
- }
435
- /**
436
- * Drive a single tool's `executeMaybeStreaming` to completion. Buffers
437
- * `tool-update` chunks for replay in tool-call order; pause-for-client-tools
438
- * mutations to `loopCtx` apply immediately and the call returns `paused`.
439
- *
440
- * `ctx` is shared across concurrent invocations. Middleware that writes
441
- * through `ctx` during `runOnChunk` (uncommon — most use it read-only for
442
- * telemetry) may observe interleaved updates from sibling tool calls;
443
- * apps with such middleware should opt out via `parallelTools: false`.
444
- */
445
- async function runToolExecution(loopCtx, outcome) {
446
- const { middlewares, ctx } = loopCtx;
447
- const updates = [];
448
- const toolStart = performance.now();
449
- try {
450
- const execGen = executeMaybeStreaming(outcome.tool, outcome.validatedArgs, { toolCallId: outcome.tc.id });
451
- let result;
452
- let paused = false;
453
- while (true) {
454
- const step = await execGen.next();
455
- if (step.done) {
456
- result = step.value;
457
- break;
458
- }
459
- if (isPauseForClientToolsChunk(step.value)) {
460
- for (const pending of step.value.toolCalls) {
461
- loopCtx.pendingClientToolCalls.push(pending);
462
- }
463
- loopCtx.loopFinishReason = 'client_tool_calls';
464
- loopCtx.stopForClientTools = true;
465
- paused = true;
466
- break;
467
- }
468
- if (isPauseForApprovalChunk(step.value)) {
469
- loopCtx.pendingApprovalToolCall = {
470
- toolCall: step.value.toolCall,
471
- isClientTool: step.value.isClientTool,
472
- };
473
- loopCtx.loopFinishReason = 'tool_approval_required';
474
- loopCtx.stopForApproval = true;
475
- paused = true;
476
- break;
477
- }
478
- const updateChunk = { type: 'tool-update', toolCall: outcome.tc, update: step.value };
479
- if (middlewares.length > 0) {
480
- const transformed = runOnChunk(middlewares, ctx, updateChunk);
481
- if (transformed)
482
- updates.push(transformed);
483
- }
484
- else {
485
- updates.push(updateChunk);
486
- }
487
- }
488
- const duration = performance.now() - toolStart;
489
- if (paused)
490
- return { kind: 'paused', updates, duration };
491
- return { kind: 'ok', result, updates, duration };
492
- }
493
- catch (err) {
494
- const duration = performance.now() - toolStart;
495
- return { kind: 'error', error: err instanceof Error ? err : new Error(String(err)), updates, duration };
496
- }
497
- }
498
- //# sourceMappingURL=tool-execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-execution.js","sourceRoot":"","sources":["../src/tool-execution.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- import type { AgentPromptOptions, Tool, ToolCall, ToolCallContext } from './types.js';
2
- /**
3
- * Detect an async generator (the value returned by `async function*` or any
4
- * object implementing the AsyncGenerator protocol). We use a structural check
5
- * because the executor may not be authored as a literal `async function*`
6
- * (e.g. wrapped or returned from a factory).
7
- */
8
- export declare function isAsyncGenerator(value: unknown): value is AsyncGenerator<unknown, unknown, void>;
9
- /**
10
- * Uniformly iterate a tool's `execute`, whether it returns a value, a
11
- * promise, or an async generator.
12
- *
13
- * The helper is itself an async generator: each `yield` is a preliminary
14
- * tool-update payload (only generator-style executes produce these), and the
15
- * generator's `return` value is the final tool result.
16
- *
17
- * Streaming callers iterate and emit `tool-update` chunks live as updates
18
- * arrive. Non-streaming callers iterate and discard yields, capturing only
19
- * the final return value — same tool definition works in both modes.
20
- */
21
- export declare function executeMaybeStreaming(tool: Tool, args: Record<string, unknown>, ctx: ToolCallContext): AsyncGenerator<unknown, unknown, void>;
22
- /**
23
- * Structured error returned to the model when a tool call's arguments fail
24
- * the tool's `inputSchema`. Surfaced both as the `result` on `AgentStep`
25
- * and as the JSON-encoded `tool` message the next provider step receives,
26
- * so the model can correct itself on the next turn.
27
- */
28
- export interface InvalidToolArgumentsError {
29
- error: 'invalid_arguments';
30
- message: string;
31
- issues: Array<{
32
- path: string;
33
- message: string;
34
- }>;
35
- }
36
- /**
37
- * Validate a tool call's arguments against the tool's `inputSchema`. On
38
- * success, the parsed value is returned — zod transforms (`.transform`,
39
- * `.default`, type coercion) are applied, so `execute` receives the
40
- * canonical shape the schema describes. On failure, a structured error
41
- * suitable for feeding back to the model is returned.
42
- */
43
- export declare function validateToolArgs(tool: Tool, args: Record<string, unknown>): {
44
- ok: true;
45
- value: Record<string, unknown>;
46
- } | {
47
- ok: false;
48
- error: InvalidToolArgumentsError;
49
- };
50
- /**
51
- * Default stringification used for the `tool` role message content when a
52
- * tool has no `toModelOutput` transform: pass through strings, JSON-encode
53
- * everything else.
54
- */
55
- export declare function defaultStringify(value: unknown): string;
56
- /**
57
- * Convert a tool's structured `result` into the string the **model** will
58
- * see on its next step. Honors `tool.toModelOutput` when present, falling
59
- * back to {@link defaultStringify}.
60
- *
61
- * Per R6 in the ai-loop-parity plan: a throwing `toModelOutput` MUST NOT
62
- * crash the loop. We swallow the error, route it through `onError`
63
- * middleware so it stays observable, and use the default stringification
64
- * as a safety net.
65
- */
66
- export declare function applyToModelOutput(tool: Tool, result: unknown, onError?: (err: unknown) => void | Promise<void>): Promise<string>;
67
- /**
68
- * Resolve `needsApproval` for a tool call, taking into account the
69
- * client-supplied `approvedToolCallIds` / `rejectedToolCallIds` lists.
70
- *
71
- * Returns:
72
- * - `'allow'` — execute the tool normally (default; also when approved)
73
- * - `'pending'` — needsApproval is truthy and the call has not been approved
74
- * - `'rejected'` — the call appears in `rejectedToolCallIds`
75
- */
76
- export declare function evaluateApproval(tool: Tool, tc: ToolCall, options: AgentPromptOptions | undefined): Promise<'allow' | 'pending' | 'rejected'>;
77
- //# sourceMappingURL=tool-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAErF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAMhG;AAED;;;;;;;;;;;GAWG;AACH,wBAAuB,qBAAqB,CAC1C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,eAAe,GACnB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAgBxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,mBAAmB,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,yBAAyB,CAAA;CAAE,CAgBhG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC,CAQ3C"}