@rudderjs/ai 1.17.3 → 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
package/dist/agent.d.ts DELETED
@@ -1,508 +0,0 @@
1
- import { z } from 'zod';
2
- import { toolToSchema } from './tool.js';
3
- import type { ServerToolBuilder } from './tool.js';
4
- import { QueuedPromptBuilder } from './queue-job.js';
5
- import type { SubAgentPauseKind, SubAgentRunStore } from './sub-agent-run-store.js';
6
- import type { PendingHandoff } from './handoffs-driver.js';
7
- import type { AgentPromptOptions, AiMessage, AiMiddleware, AgentResponse, AgentStep, AgentStreamResponse, AnyTool, CacheableConfig, ConversationalSpec, ConversationStore, SubAgentUpdate, FinishReason, HasMiddleware, HasTools, MiddlewareContext, PrepareStepResult, RemembersSpec, StopCondition, StreamChunk, ToolCall, TokenUsage, UserMemory } from './types.js';
8
- /** Stop after N steps */
9
- export declare function stepCountIs(n: number): StopCondition;
10
- /** Stop when a specific tool is called in the latest step */
11
- export declare function hasToolCall(toolName: string): StopCondition;
12
- /** Options for {@link Agent.resumeAsTool}. */
13
- export interface SubAgentResumeOptions {
14
- /** Shared run store the snapshot lives in. */
15
- runStore: SubAgentRunStore;
16
- /** The sub-agent instance to resume. */
17
- agent: Agent;
18
- /** Approved ids for an `approval` pause. */
19
- approvedToolCallIds?: string[];
20
- /** Rejected ids for an `approval` pause. */
21
- rejectedToolCallIds?: string[];
22
- /**
23
- * Opt-in live progress during the resume. When set, the resumed inner loop
24
- * runs via `stream()` instead of `prompt()` and each chunk is projected into
25
- * a {@link SubAgentUpdate} forwarded to {@link onUpdate}. `true` uses
26
- * {@link defaultSubAgentProjector} (emits `tool_call` / `agent_pending_approval`);
27
- * a function is your own projector. Mirrors {@link Agent.asTool}'s `streaming`
28
- * on the initial-dispatch path. Unset → the legacy non-streaming `prompt()`
29
- * resume (no behavior change). The pause/completion partition is identical
30
- * either way — this only adds a progress channel.
31
- */
32
- streaming?: AsToolStreamingOption;
33
- /**
34
- * Sink for projected updates. Only fires when {@link streaming} is set, once
35
- * per non-null projection, in stream order. Awaited, so a slow sink applies
36
- * backpressure to the resume.
37
- */
38
- onUpdate?: (update: SubAgentUpdate) => void | Promise<void>;
39
- }
40
- /**
41
- * One entry in a {@link Agent.resumeManyAsTool} batch — a single paused
42
- * sub-agent to resume. Mirrors the positional args of the singular
43
- * {@link Agent.resumeAsTool}, plus an optional host `key` echoed back on the
44
- * matching outcome so callers can correlate results without relying on array
45
- * order.
46
- */
47
- export interface SubAgentResumeRequest {
48
- /** The paused run's id (the `subRunId` from its pause chunk/snapshot). */
49
- subRunId: string;
50
- /** The sub-agent instance to resume (each item may be a different agent). */
51
- agent: Agent;
52
- /** Client tool-results for a `client_tool` pause (one per pending id). */
53
- clientToolResults?: ReadonlyArray<{
54
- toolCallId: string;
55
- result: unknown;
56
- }>;
57
- /** Approved ids for an `approval` pause. */
58
- approvedToolCallIds?: string[];
59
- /** Rejected ids for an `approval` pause. */
60
- rejectedToolCallIds?: string[];
61
- /** Opaque correlation key echoed back on this item's outcome. */
62
- key?: string;
63
- }
64
- /** Outcome for a single item in a {@link Agent.resumeManyAsTool} batch. */
65
- export type SubAgentResumeOutcome = {
66
- key?: string;
67
- originalSubRunId: string;
68
- kind: 'completed';
69
- response: AgentResponse;
70
- } | {
71
- key?: string;
72
- originalSubRunId: string;
73
- kind: 'paused';
74
- subRunId: string;
75
- pauseKind: SubAgentPauseKind;
76
- pendingToolCallIds: string[];
77
- toolCall?: ToolCall;
78
- isClientTool?: boolean;
79
- } | {
80
- key?: string;
81
- originalSubRunId: string;
82
- kind: 'error';
83
- error: Error;
84
- };
85
- export interface SubAgentResumeManyOptions {
86
- /** Shared run store all the snapshots live in. */
87
- runStore: SubAgentRunStore;
88
- /**
89
- * What to do when one item fails (expired/forged `subRunId`, duplicate
90
- * result id, inner error):
91
- * - `'capture'` (default) — record it as a `{ kind: 'error' }` outcome and
92
- * let the rest of the batch resume; the aggregated round-trip still
93
- * returns.
94
- * - `'throw'` — reject the whole call on the first failure, matching the
95
- * singular `resumeAsTool` strictness.
96
- */
97
- onError?: 'capture' | 'throw';
98
- /**
99
- * - `'parallel'` (default) — resume all snapshots concurrently. Snapshots
100
- * are independent and `consume()` is per-id atomic, so this is safe and
101
- * fastest.
102
- * - `'serial'` — resume one at a time in array order, for deterministic
103
- * side-effect ordering when sub-agents touch shared state.
104
- */
105
- concurrency?: 'parallel' | 'serial';
106
- /**
107
- * Shared live-progress projector applied to every resumed item — same option
108
- * as {@link SubAgentResumeOptions.streaming}. Unset → every item resumes
109
- * non-streaming (legacy behavior). Set → each item streams and its projected
110
- * updates flow to {@link onUpdate} tagged with the originating request.
111
- */
112
- streaming?: AsToolStreamingOption;
113
- /**
114
- * Sink for projected updates across the whole batch. Only fires when
115
- * {@link streaming} is set. Each call carries the originating item's `key`
116
- * (when supplied) and `originalSubRunId`, so a host can correlate a chunk
117
- * back to its request and fan it out (e.g. to a per-sub-agent SSE channel).
118
- */
119
- onUpdate?: (update: SubAgentUpdate, ctx: {
120
- key?: string;
121
- originalSubRunId: string;
122
- }) => void | Promise<void>;
123
- }
124
- /** Aggregated result of a {@link Agent.resumeManyAsTool} batch. */
125
- export interface SubAgentResumeManyResult {
126
- /** Every item's outcome, in input order. */
127
- results: SubAgentResumeOutcome[];
128
- /** The items that paused again (need another client round-trip). */
129
- paused: Extract<SubAgentResumeOutcome, {
130
- kind: 'paused';
131
- }>[];
132
- /** The items that ran to completion. */
133
- completed: Extract<SubAgentResumeOutcome, {
134
- kind: 'completed';
135
- }>[];
136
- /** The items that failed (only populated under `onError: 'capture'`). */
137
- errors: Extract<SubAgentResumeOutcome, {
138
- kind: 'error';
139
- }>[];
140
- /**
141
- * All pending tool-call ids across every paused item, flattened — the
142
- * single set the host gathers client results / approvals for before the
143
- * next `resumeManyAsTool`. Empty when nothing paused.
144
- */
145
- pendingToolCallIds: string[];
146
- /**
147
- * `true` when nothing is still paused and no item errored — i.e. there is
148
- * no further round-trip to do. Loop `resumeManyAsTool` until this is `true`.
149
- */
150
- allCompleted: boolean;
151
- }
152
- export declare abstract class Agent {
153
- /** System instructions for this agent */
154
- abstract instructions(): string;
155
- /** Model string (e.g. 'anthropic/claude-sonnet-4-5'). Defaults to registry default. */
156
- model(): string | undefined;
157
- /** Failover provider/model strings */
158
- failover(): string[];
159
- /** Maximum iterations for the tool loop (default: 20) */
160
- maxSteps(): number;
161
- /** Per-step control — override model, tools, messages per iteration */
162
- prepareStep?(_ctx: {
163
- stepNumber: number;
164
- steps: AgentStep[];
165
- messages: AiMessage[];
166
- }): PrepareStepResult | Promise<PrepareStepResult>;
167
- /** Stop conditions — combine with array (OR logic) */
168
- stopWhen(): StopCondition | StopCondition[];
169
- /** Temperature (0-1) */
170
- temperature(): number | undefined;
171
- /** Max tokens for response */
172
- maxTokens(): number | undefined;
173
- /**
174
- * Declarative prompt-cache configuration.
175
- *
176
- * Override on a subclass to mark stable parts of the prompt as cacheable
177
- * — provider adapters translate to native primitives (Anthropic
178
- * `cache_control`, OpenAI `prompt_cache_key`, Google `cachedContent`)
179
- * so cache hits can save 50–90% on input tokens for long system prompts,
180
- * tool definitions, or stable conversation context.
181
- *
182
- * Returning `undefined` (the default) means no caching. Per-call override
183
- * via `agent.prompt(input, { cache: false })` disables caching for that
184
- * call; passing a {@link CacheableConfig} for `cache` replaces the agent
185
- * default for that call.
186
- *
187
- * @example
188
- * class SupportAgent extends Agent {
189
- * instructions() { return LONG_SYSTEM_PROMPT }
190
- * tools() { return [tool1, tool2, tool3] }
191
- * cacheable() {
192
- * return { instructions: true, tools: true }
193
- * }
194
- * }
195
- */
196
- cacheable(): CacheableConfig | undefined;
197
- /**
198
- * Opt into auto-persisted conversation behavior. Override on a subclass
199
- * to declare *which* user owns the thread and (optionally) which
200
- * specific thread, and the framework will load history before each
201
- * `prompt()`/`stream()` call and append the new turn after it — without
202
- * any caller having to remember `forUser()` / `continue()`.
203
- *
204
- * Returning `false` (the default) disables auto-persist; the agent runs
205
- * stateless. Returning a {@link ConversationalSpec} opts in:
206
- *
207
- * @example
208
- * class ChatAgent extends Agent {
209
- * conversational() {
210
- * return { user: Auth.user()?.id } // null user → falsy → opt-out
211
- * }
212
- * }
213
- *
214
- * await new ChatAgent().prompt('Hi') // auto-loads + auto-saves
215
- *
216
- * **Precedence (high → low):**
217
- * 1. Explicit `agent.forUser(id).prompt()` / `agent.continue(id).prompt()`
218
- * 2. Per-call `prompt(input, { conversation: false | {...} })`
219
- * 3. This method's return value
220
- *
221
- * Async returns are supported — useful when the user identity is fetched
222
- * from an async DI binding.
223
- */
224
- conversational(): false | ConversationalSpec | Promise<false | ConversationalSpec>;
225
- /**
226
- * Opt this agent class into per-user memory beyond conversation history
227
- * (#A4). Returns a {@link RemembersSpec} naming the user whose memory
228
- * the agent reads/writes, and how injection / extraction should behave.
229
- * Returning `false` (the default) leaves the agent memory-stateless.
230
- *
231
- * Phase 1 wires the declaration + the per-call precedence chain so
232
- * apps and downstream phases (auto-inject middleware in Phase 2,
233
- * auto-extract middleware in Phase 3) can read a consistent spec.
234
- * Calling this method directly today produces no runtime behavior
235
- * unless application code reads it via `resolveRemembersSpec()`.
236
- *
237
- * **Precedence (high → low):**
238
- * 1. Per-call `prompt(input, { memory: false | {...} })`
239
- * 2. This method's return value
240
- *
241
- * Async returns are supported — useful when the user identity is fetched
242
- * from an async DI binding.
243
- *
244
- * @example
245
- * class SupportAgent extends Agent {
246
- * remembers() { return { user: ctx.user.id, inject: 'auto', tags: ['support'] } }
247
- * }
248
- */
249
- remembers(): false | RemembersSpec | Promise<false | RemembersSpec>;
250
- /**
251
- * Default for `AgentPromptOptions.parallelTools`. When `true` (default),
252
- * multiple tool calls within a single step run their `execute()` functions
253
- * concurrently. Override on a subclass to flip the default for an agent
254
- * whose tools share non-idempotent state. Per-call options still win.
255
- */
256
- parallelTools(): boolean;
257
- /** Run the agent with a prompt (non-streaming) */
258
- prompt(input: string, options?: AgentPromptOptions): Promise<AgentResponse>;
259
- /** Run the agent with a prompt (streaming) */
260
- stream(input: string, options?: AgentPromptOptions): AgentStreamResponse;
261
- /** Queue the prompt for background execution */
262
- queue(input: string, options?: AgentPromptOptions): QueuedPromptBuilder;
263
- /** Set the user scope for conversation persistence */
264
- forUser(userId: string): ConversableAgent;
265
- /** Continue an existing conversation */
266
- continue(conversationId: string): ConversableAgent;
267
- /**
268
- * Wrap this agent as a tool another agent can call (the "subagents"
269
- * pattern). The returned tool is fully-formed — pass it directly into the
270
- * parent agent's `tools()` array. When the parent calls it, this agent
271
- * runs its own loop end-to-end (its own model, tools, middleware) and
272
- * returns a single result.
273
- *
274
- * Defaults are tuned for the zero-config case:
275
- * - `inputSchema` defaults to `{ prompt: string }` and the agent is
276
- * invoked with `input.prompt`.
277
- * - The parent model only sees `response.text` on its next step
278
- * (override with `modelOutput`); the UI still receives the full
279
- * `AgentResponse` via the `tool-result` chunk.
280
- *
281
- * @example Zero-config
282
- * const research = researchAgent.asTool({
283
- * name: 'research',
284
- * description: 'Research a topic in depth.',
285
- * })
286
- *
287
- * @example Custom schema + prompt mapper
288
- * const research = researchAgent.asTool({
289
- * name: 'research',
290
- * description: 'Research a topic in depth.',
291
- * inputSchema: z.object({ topic: z.string(), depth: z.enum(['quick', 'deep']) }),
292
- * prompt: ({ topic, depth }) => `Research ${topic} (${depth}).`,
293
- * })
294
- */
295
- asTool<TInput extends z.ZodType>(options: {
296
- name: string;
297
- description: string;
298
- inputSchema: TInput;
299
- prompt: (input: z.infer<TInput>) => string;
300
- modelOutput?: (response: AgentResponse) => string | Promise<string>;
301
- streaming?: AsToolStreamingOption;
302
- suspendable?: AsToolSuspendableOption;
303
- }): ServerToolBuilder<z.infer<TInput>, AgentResponse>;
304
- asTool(options: {
305
- name: string;
306
- description: string;
307
- modelOutput?: (response: AgentResponse) => string | Promise<string>;
308
- streaming?: AsToolStreamingOption;
309
- suspendable?: AsToolSuspendableOption;
310
- }): ServerToolBuilder<{
311
- prompt: string;
312
- }, AgentResponse>;
313
- /**
314
- * Resume a sub-agent run that previously paused with either
315
- * `pauseForClientTools` (client-tool pause) or `pauseForApproval`
316
- * (approval pause), typically from {@link Agent.asTool} with
317
- * `suspendable: { runStore }` set. The snapshot's `pauseKind`
318
- * (default `'client_tool'`) selects the resume contract:
319
- *
320
- * - **`client_tool`** — `clientToolResults` must carry one entry per
321
- * id in the snapshot's `pendingToolCallIds`. Results are appended
322
- * to the inner-agent message history and the loop re-runs.
323
- * - **`approval`** — `approvedToolCallIds` and/or
324
- * `rejectedToolCallIds` must reference the single pending id.
325
- * `clientToolResults` must be empty; the loop re-runs with the
326
- * approval decision injected via `AgentPromptOptions`.
327
- *
328
- * Returns either a `'completed'` result (the inner agent finished),
329
- * a `'paused'` continuation pointing at a fresh `subRunId` for the
330
- * next round-trip, or stays `'paused'` if the inner loop hits another
331
- * gate. The resume can pause on a different kind than it started on
332
- * (e.g. an approval pause that, once approved, hits a client-tool
333
- * pause on the next step).
334
- *
335
- * @example Client-tool resume
336
- * const r = await Agent.resumeAsTool(subRunId, browserResults, { runStore, agent: subAgent })
337
- *
338
- * @example Approval resume
339
- * const r = await Agent.resumeAsTool(subRunId, [], {
340
- * runStore, agent: subAgent,
341
- * approvedToolCallIds: ['inner-call-id'],
342
- * })
343
- */
344
- static resumeAsTool(subRunId: string, clientToolResults: ReadonlyArray<{
345
- toolCallId: string;
346
- result: unknown;
347
- }>, options: SubAgentResumeOptions): Promise<{
348
- kind: 'completed';
349
- response: AgentResponse;
350
- } | {
351
- kind: 'paused';
352
- subRunId: string;
353
- pauseKind: SubAgentPauseKind;
354
- pendingToolCallIds: string[];
355
- toolCall?: ToolCall;
356
- isClientTool?: boolean;
357
- }>;
358
- /**
359
- * Resume MANY paused sub-agents in one call and aggregate their pending
360
- * tool calls into a single client round-trip.
361
- *
362
- * When an orchestrator dispatches several sub-agents in one parent turn
363
- * and more than one pauses on a client tool (or approval gate), the host
364
- * would otherwise loop over {@link Agent.resumeAsTool} by hand and stitch
365
- * the pending sets back together. This does that: each request resumes its
366
- * own `(subRunId, agent)` snapshot, and the result carries the combined
367
- * `completed` / `paused` / `errors` partition plus the flattened
368
- * `pendingToolCallIds` the host collects the next batch of results for.
369
- *
370
- * Re-entrant: feed the next round of `clientToolResults` / approvals back
371
- * in as a fresh batch keyed off each paused item's NEW `subRunId` until
372
- * `allCompleted` is `true`.
373
- *
374
- * @example
375
- * let batch = await Agent.resumeManyAsTool(
376
- * paused.map(p => ({ subRunId: p.subRunId, agent: p.agent, clientToolResults: results[p.subRunId] })),
377
- * { runStore },
378
- * )
379
- * // batch.pendingToolCallIds → gather the next round from the browser, repeat.
380
- */
381
- static resumeManyAsTool(requests: ReadonlyArray<SubAgentResumeRequest>, options: SubAgentResumeManyOptions): Promise<SubAgentResumeManyResult>;
382
- }
383
- /**
384
- * Projects an inner-agent {@link StreamChunk} into a {@link SubAgentUpdate} the
385
- * host can render, or `null` to suppress it. Used by both {@link Agent.asTool}
386
- * (`streaming`) and the streaming resume path ({@link SubAgentResumeOptions.streaming}).
387
- *
388
- * On the resume paths the projector also receives a `ctx` 2nd arg carrying the
389
- * originating sub-run's `originalSubRunId` (and the host `key` when batched via
390
- * {@link Agent.resumeManyAsTool}), so a side-effect projector can fan a raw
391
- * chunk out to the correct per-sub-agent channel and return `null`:
392
- *
393
- * ```ts
394
- * streaming: (chunk, ctx) => { pumpToChannel(ctx!.originalSubRunId, chunk); return null }
395
- * ```
396
- *
397
- * `ctx` is optional — {@link Agent.asTool}'s initial-dispatch path omits it, and
398
- * existing projectors that ignore the arg are unaffected.
399
- */
400
- export type ChunkProjector = (chunk: StreamChunk, ctx?: {
401
- originalSubRunId: string;
402
- key?: string;
403
- }) => SubAgentUpdate | null;
404
- /**
405
- * Live-progress option shared by {@link Agent.asTool} and the streaming resume
406
- * surface: `true` uses {@link defaultSubAgentProjector}; a function is your own
407
- * {@link ChunkProjector}.
408
- */
409
- export type AsToolStreamingOption = boolean | ChunkProjector;
410
- type AsToolSuspendableOption = {
411
- runStore: SubAgentRunStore;
412
- };
413
- /**
414
- * Wraps an Agent to add conversation memory.
415
- * Created via `agent.forUser(id)` or `agent.continue(id)`.
416
- */
417
- export declare class ConversableAgent {
418
- private readonly agent;
419
- private _userId;
420
- private _conversationId;
421
- constructor(agent: Agent);
422
- forUser(userId: string): this;
423
- continue(conversationId: string): this;
424
- prompt(input: string, options?: AgentPromptOptions): Promise<AgentResponse>;
425
- stream(input: string, options?: AgentPromptOptions): AgentStreamResponse;
426
- /**
427
- * Translate the wrapper's explicit-form state (`forUser` / `continue`)
428
- * into a {@link ConversationalSpec}. The explicit chain bypasses the
429
- * agent's `conversational()` declaration entirely — `forUser` always
430
- * wins over class defaults.
431
- */
432
- private toSpec;
433
- }
434
- /**
435
- * Create an anonymous agent inline.
436
- *
437
- * @example
438
- * const response = await agent('You are helpful.').prompt('Hello')
439
- *
440
- * @example
441
- * const response = await agent({
442
- * instructions: 'You are a search assistant.',
443
- * tools: [searchTool],
444
- * model: 'anthropic/claude-sonnet-4-5',
445
- * }).prompt('Find users named John')
446
- */
447
- export declare function agent(instructionsOrOptions: string | {
448
- instructions: string;
449
- tools?: AnyTool[] | undefined;
450
- model?: string | undefined;
451
- middleware?: AiMiddleware[] | undefined;
452
- }): Agent & HasTools & HasMiddleware;
453
- /** Set the global conversation store (called by service provider or manually) */
454
- export declare function setConversationStore(store: ConversationStore): void;
455
- /**
456
- * Set the global {@link UserMemory} (called by `AiProvider` from
457
- * `AiConfig.memory`, or manually for tests / standalone setups).
458
- * Phase 2/3 middleware reads it via `resolveUserMemory()` —
459
- * imported by the persistence layer the same way
460
- * `resolveConversationStore` is wired today.
461
- */
462
- export declare function setUserMemory(memory: UserMemory): void;
463
- export declare function resolveUserMemory(): UserMemory | undefined;
464
- /**
465
- * Mutable state shared between the non-streaming and streaming agent loops.
466
- * Helpers (`runFailover`, `emitObserverFailed`, `emitObserverCompleted`,
467
- * `buildAgentResponse`) read and write this struct so the same orchestration
468
- * logic serves both `prompt()` and `stream()` callers.
469
- */
470
- export interface LoopContext {
471
- readonly agent: Agent;
472
- readonly input: string;
473
- readonly options: AgentPromptOptions | undefined;
474
- readonly modelString: string;
475
- readonly providerName: string;
476
- readonly tools: AnyTool[];
477
- readonly toolMap: Map<string, AnyTool>;
478
- readonly toolSchemas: ReturnType<typeof toolToSchema>[];
479
- readonly middlewares: AiMiddleware[];
480
- readonly loopStart: number;
481
- readonly ctx: MiddlewareContext & {
482
- readonly _aborted: boolean;
483
- readonly _abortReason: string;
484
- };
485
- readonly messages: AiMessage[];
486
- readonly steps: AgentStep[];
487
- readonly totalUsage: TokenUsage;
488
- readonly pendingClientToolCalls: ToolCall[];
489
- pendingApprovalToolCall: {
490
- toolCall: ToolCall;
491
- isClientTool: boolean;
492
- } | undefined;
493
- loopFinishReason: FinishReason | undefined;
494
- stopForClientTools: boolean;
495
- stopForApproval: boolean;
496
- resumedToolMessages: AiMessage[];
497
- failoverAttempts: number;
498
- /**
499
- * Set by the tool phase when the model called a {@link handoff} tool.
500
- * Triggers the parent loop to break and the handoff wrapper to construct
501
- * the child agent and continue with the carried message history.
502
- */
503
- pendingHandoff?: PendingHandoff;
504
- stopForHandoff: boolean;
505
- }
506
- export type { PendingHandoff } from './handoffs-driver.js';
507
- export type { InvalidToolArgumentsError } from './tool-helpers.js';
508
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}