@convex-dev/agent 0.6.3 → 0.7.0-alpha.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 (246) hide show
  1. package/MIGRATION.md +60 -116
  2. package/dist/client/messages.d.ts +1 -398
  3. package/dist/client/messages.d.ts.map +1 -1
  4. package/dist/client/messages.js +3 -47
  5. package/dist/client/messages.js.map +1 -1
  6. package/dist/client/types.d.ts +1 -455
  7. package/dist/client/types.d.ts.map +1 -1
  8. package/dist/component/_generated/component.d.ts +805 -45
  9. package/dist/component/_generated/component.d.ts.map +1 -1
  10. package/dist/component/apiKeys.js +5 -5
  11. package/dist/component/apiKeys.js.map +1 -1
  12. package/dist/component/files.d.ts.map +1 -1
  13. package/dist/component/files.js +13 -11
  14. package/dist/component/files.js.map +1 -1
  15. package/dist/component/messages.d.ts +1252 -201
  16. package/dist/component/messages.d.ts.map +1 -1
  17. package/dist/component/messages.js +83 -47
  18. package/dist/component/messages.js.map +1 -1
  19. package/dist/component/schema.d.ts +2593 -332
  20. package/dist/component/schema.d.ts.map +1 -1
  21. package/dist/component/streams.d.ts +7 -1
  22. package/dist/component/streams.d.ts.map +1 -1
  23. package/dist/component/streams.js +46 -47
  24. package/dist/component/streams.js.map +1 -1
  25. package/dist/component/threads.d.ts.map +1 -1
  26. package/dist/component/threads.js +8 -9
  27. package/dist/component/threads.js.map +1 -1
  28. package/dist/component/users.js +2 -2
  29. package/dist/component/users.js.map +1 -1
  30. package/dist/component/vector/index.d.ts.map +1 -1
  31. package/dist/component/vector/index.js +14 -8
  32. package/dist/component/vector/index.js.map +1 -1
  33. package/dist/react/index.d.ts +5 -5
  34. package/dist/react/index.d.ts.map +1 -1
  35. package/dist/react/index.js +5 -5
  36. package/dist/react/index.js.map +1 -1
  37. package/dist/shared.d.ts +19 -7
  38. package/dist/shared.d.ts.map +1 -1
  39. package/dist/shared.js +4 -4
  40. package/dist/shared.js.map +1 -1
  41. package/dist/streaming/materializePersistedUIMessageChunks.d.ts +16 -0
  42. package/dist/streaming/materializePersistedUIMessageChunks.d.ts.map +1 -0
  43. package/dist/streaming/materializePersistedUIMessageChunks.js +302 -0
  44. package/dist/streaming/materializePersistedUIMessageChunks.js.map +1 -0
  45. package/dist/streaming/persistedUIMessageChunks.d.ts +106 -0
  46. package/dist/streaming/persistedUIMessageChunks.d.ts.map +1 -0
  47. package/dist/streaming/persistedUIMessageChunks.js +475 -0
  48. package/dist/streaming/persistedUIMessageChunks.js.map +1 -0
  49. package/dist/validators.d.ts +10026 -1055
  50. package/dist/validators.d.ts.map +1 -1
  51. package/dist/validators.js +71 -9
  52. package/dist/validators.js.map +1 -1
  53. package/dist/{UIMessages.d.ts → vercel/UIMessages.d.ts} +1 -1
  54. package/dist/vercel/UIMessages.d.ts.map +1 -0
  55. package/dist/{UIMessages.js → vercel/UIMessages.js} +63 -1
  56. package/dist/vercel/UIMessages.js.map +1 -0
  57. package/dist/{client → vercel/client}/createTool.d.ts +23 -16
  58. package/dist/vercel/client/createTool.d.ts.map +1 -0
  59. package/dist/{client → vercel/client}/createTool.js +2 -0
  60. package/dist/vercel/client/createTool.js.map +1 -0
  61. package/dist/{client → vercel/client}/definePlaygroundAPI.d.ts +593 -134
  62. package/dist/{client → vercel/client}/definePlaygroundAPI.d.ts.map +1 -1
  63. package/dist/{client → vercel/client}/definePlaygroundAPI.js +13 -9
  64. package/dist/vercel/client/definePlaygroundAPI.js.map +1 -0
  65. package/dist/{client → vercel/client}/files.d.ts +2 -2
  66. package/dist/vercel/client/files.d.ts.map +1 -0
  67. package/dist/vercel/client/files.js.map +1 -0
  68. package/dist/vercel/client/messages.d.ts +542 -0
  69. package/dist/vercel/client/messages.d.ts.map +1 -0
  70. package/dist/vercel/client/messages.js +66 -0
  71. package/dist/vercel/client/messages.js.map +1 -0
  72. package/dist/{client → vercel/client}/mockModel.d.ts +17 -17
  73. package/dist/vercel/client/mockModel.d.ts.map +1 -0
  74. package/dist/{client → vercel/client}/mockModel.js +12 -13
  75. package/dist/vercel/client/mockModel.js.map +1 -0
  76. package/dist/{client → vercel/client}/saveInputMessages.d.ts +2 -2
  77. package/dist/vercel/client/saveInputMessages.d.ts.map +1 -0
  78. package/dist/vercel/client/saveInputMessages.js.map +1 -0
  79. package/dist/{client → vercel/client}/search.d.ts +119 -22
  80. package/dist/vercel/client/search.d.ts.map +1 -0
  81. package/dist/{client → vercel/client}/search.js +2 -2
  82. package/dist/vercel/client/search.js.map +1 -0
  83. package/dist/{client → vercel/client}/start.d.ts +26 -11
  84. package/dist/vercel/client/start.d.ts.map +1 -0
  85. package/dist/{client → vercel/client}/start.js +64 -22
  86. package/dist/vercel/client/start.js.map +1 -0
  87. package/dist/{client → vercel/client}/streamText.d.ts +13 -12
  88. package/dist/vercel/client/streamText.d.ts.map +1 -0
  89. package/dist/{client → vercel/client}/streamText.js +43 -9
  90. package/dist/vercel/client/streamText.js.map +1 -0
  91. package/dist/{client → vercel/client}/streaming.d.ts +1410 -183
  92. package/dist/vercel/client/streaming.d.ts.map +1 -0
  93. package/dist/{client → vercel/client}/streaming.js +120 -52
  94. package/dist/vercel/client/streaming.js.map +1 -0
  95. package/dist/vercel/client/types.d.ts +456 -0
  96. package/dist/vercel/client/types.d.ts.map +1 -0
  97. package/dist/vercel/client/types.js +3 -0
  98. package/dist/vercel/client/types.js.map +1 -0
  99. package/dist/{client → vercel/client}/utils.d.ts +3 -2
  100. package/dist/vercel/client/utils.d.ts.map +1 -0
  101. package/dist/{client → vercel/client}/utils.js +2 -2
  102. package/dist/vercel/client/utils.js.map +1 -0
  103. package/dist/vercel/deltas.d.ts +31 -0
  104. package/dist/vercel/deltas.d.ts.map +1 -0
  105. package/dist/vercel/deltas.js +525 -0
  106. package/dist/vercel/deltas.js.map +1 -0
  107. package/dist/{client → vercel}/index.d.ts +484 -97
  108. package/dist/vercel/index.d.ts.map +1 -0
  109. package/dist/{client → vercel}/index.js +65 -38
  110. package/dist/vercel/index.js.map +1 -0
  111. package/dist/{mapping.d.ts → vercel/mapping.d.ts} +5 -13
  112. package/dist/vercel/mapping.d.ts.map +1 -0
  113. package/dist/{mapping.js → vercel/mapping.js} +411 -112
  114. package/dist/vercel/mapping.js.map +1 -0
  115. package/dist/{react → vercel/react}/optimisticallySendMessage.d.ts +2 -2
  116. package/dist/vercel/react/optimisticallySendMessage.d.ts.map +1 -0
  117. package/dist/vercel/react/optimisticallySendMessage.js.map +1 -0
  118. package/dist/{react → vercel/react}/types.d.ts +1 -1
  119. package/dist/vercel/react/types.d.ts.map +1 -0
  120. package/dist/{react → vercel/react}/types.js.map +1 -1
  121. package/dist/{react → vercel/react}/useDeltaStreams.d.ts +1 -1
  122. package/dist/vercel/react/useDeltaStreams.d.ts.map +1 -0
  123. package/dist/{react → vercel/react}/useDeltaStreams.js +1 -1
  124. package/dist/vercel/react/useDeltaStreams.js.map +1 -0
  125. package/dist/{react → vercel/react}/useStreamingUIMessages.d.ts +1 -1
  126. package/dist/vercel/react/useStreamingUIMessages.d.ts.map +1 -0
  127. package/dist/vercel/react/useStreamingUIMessages.js +112 -0
  128. package/dist/vercel/react/useStreamingUIMessages.js.map +1 -0
  129. package/dist/{react → vercel/react}/useThreadMessages.d.ts +1 -1
  130. package/dist/vercel/react/useThreadMessages.d.ts.map +1 -0
  131. package/dist/{react → vercel/react}/useThreadMessages.js +1 -1
  132. package/dist/vercel/react/useThreadMessages.js.map +1 -0
  133. package/dist/{react → vercel/react}/useUIMessages.d.ts +2 -1
  134. package/dist/vercel/react/useUIMessages.d.ts.map +1 -0
  135. package/dist/{react → vercel/react}/useUIMessages.js +8 -4
  136. package/dist/vercel/react/useUIMessages.js.map +1 -0
  137. package/package.json +30 -22
  138. package/src/client/messages.ts +5 -107
  139. package/src/client/types.ts +0 -621
  140. package/src/component/_generated/component.ts +1089 -48
  141. package/src/component/apiKeys.ts +5 -5
  142. package/src/component/files.test.ts +1 -1
  143. package/src/component/files.ts +14 -12
  144. package/src/component/messages.test.ts +273 -1
  145. package/src/component/messages.ts +99 -57
  146. package/src/component/streams.ts +80 -64
  147. package/src/component/threads.ts +12 -9
  148. package/src/component/users.ts +2 -2
  149. package/src/component/vector/index.ts +14 -7
  150. package/src/eslintConfig.test.ts +44 -0
  151. package/src/react/index.ts +8 -5
  152. package/src/shared.ts +26 -36
  153. package/src/streaming/materializePersistedUIMessageChunks.test.ts +513 -0
  154. package/src/streaming/materializePersistedUIMessageChunks.ts +398 -0
  155. package/src/streaming/persistedUIMessageChunks.test.ts +205 -0
  156. package/src/streaming/persistedUIMessageChunks.ts +658 -0
  157. package/src/validators.test.ts +4 -1
  158. package/src/validators.ts +89 -8
  159. package/src/{UIMessages.combineUIMessages.test.ts → vercel/UIMessages.combineUIMessages.test.ts} +4 -1
  160. package/src/{UIMessages.ts → vercel/UIMessages.ts} +96 -5
  161. package/src/{client → vercel/client}/approval.test.ts +48 -19
  162. package/src/{client → vercel/client}/createTool.ts +63 -23
  163. package/src/{client → vercel/client}/definePlaygroundAPI.ts +44 -29
  164. package/src/{client → vercel/client}/files.ts +2 -2
  165. package/src/{client → vercel/client}/index.test.ts +162 -3
  166. package/src/vercel/client/messages.ts +182 -0
  167. package/src/{client → vercel/client}/mockModel.ts +38 -39
  168. package/src/{client → vercel/client}/saveInputMessages.test.ts +1 -1
  169. package/src/{client → vercel/client}/saveInputMessages.ts +7 -4
  170. package/src/{client → vercel/client}/search.test.ts +3 -3
  171. package/src/{client → vercel/client}/search.ts +4 -4
  172. package/src/{client → vercel/client}/setup.test.ts +6 -3
  173. package/src/vercel/client/start.test.ts +14 -0
  174. package/src/{client → vercel/client}/start.ts +147 -36
  175. package/src/vercel/client/streamText.test.ts +223 -0
  176. package/src/{client → vercel/client}/streamText.ts +102 -31
  177. package/src/{client → vercel/client}/streaming.integration.test.ts +40 -115
  178. package/src/{client → vercel/client}/streaming.test.ts +178 -4
  179. package/src/{client → vercel/client}/streaming.ts +114 -52
  180. package/src/vercel/client/types.test.ts +13 -0
  181. package/src/vercel/client/types.ts +679 -0
  182. package/src/{client → vercel/client}/utils.ts +13 -7
  183. package/src/vercel/deltas.test.ts +898 -0
  184. package/src/vercel/deltas.ts +633 -0
  185. package/src/{fromUIMessages.test.ts → vercel/fromUIMessages.test.ts} +17 -1
  186. package/src/{client → vercel}/index.ts +169 -62
  187. package/src/vercel/mapping.test.ts +965 -0
  188. package/src/{mapping.ts → vercel/mapping.ts} +501 -131
  189. package/src/{react → vercel/react}/optimisticallySendMessage.ts +2 -2
  190. package/src/{react → vercel/react}/types.ts +1 -1
  191. package/src/{react → vercel/react}/useDeltaStreams.ts +6 -2
  192. package/src/{react → vercel/react}/useStreamingUIMessages.ts +67 -35
  193. package/src/{react → vercel/react}/useThreadMessages.ts +2 -2
  194. package/src/{react → vercel/react}/useUIMessages.test.ts +80 -1
  195. package/src/{react → vercel/react}/useUIMessages.ts +13 -5
  196. package/src/{toUIMessages.test.ts → vercel/toUIMessages.test.ts} +49 -2
  197. package/dist/UIMessages.d.ts.map +0 -1
  198. package/dist/UIMessages.js.map +0 -1
  199. package/dist/client/createTool.d.ts.map +0 -1
  200. package/dist/client/createTool.js.map +0 -1
  201. package/dist/client/definePlaygroundAPI.js.map +0 -1
  202. package/dist/client/files.d.ts.map +0 -1
  203. package/dist/client/files.js.map +0 -1
  204. package/dist/client/index.d.ts.map +0 -1
  205. package/dist/client/index.js.map +0 -1
  206. package/dist/client/mockModel.d.ts.map +0 -1
  207. package/dist/client/mockModel.js.map +0 -1
  208. package/dist/client/saveInputMessages.d.ts.map +0 -1
  209. package/dist/client/saveInputMessages.js.map +0 -1
  210. package/dist/client/search.d.ts.map +0 -1
  211. package/dist/client/search.js.map +0 -1
  212. package/dist/client/start.d.ts.map +0 -1
  213. package/dist/client/start.js.map +0 -1
  214. package/dist/client/streamText.d.ts.map +0 -1
  215. package/dist/client/streamText.js.map +0 -1
  216. package/dist/client/streaming.d.ts.map +0 -1
  217. package/dist/client/streaming.js.map +0 -1
  218. package/dist/client/utils.d.ts.map +0 -1
  219. package/dist/client/utils.js.map +0 -1
  220. package/dist/deltas.d.ts +0 -43
  221. package/dist/deltas.d.ts.map +0 -1
  222. package/dist/deltas.js +0 -446
  223. package/dist/deltas.js.map +0 -1
  224. package/dist/mapping.d.ts.map +0 -1
  225. package/dist/mapping.js.map +0 -1
  226. package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
  227. package/dist/react/optimisticallySendMessage.js.map +0 -1
  228. package/dist/react/types.d.ts.map +0 -1
  229. package/dist/react/useDeltaStreams.d.ts.map +0 -1
  230. package/dist/react/useDeltaStreams.js.map +0 -1
  231. package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
  232. package/dist/react/useStreamingUIMessages.js +0 -92
  233. package/dist/react/useStreamingUIMessages.js.map +0 -1
  234. package/dist/react/useThreadMessages.d.ts.map +0 -1
  235. package/dist/react/useThreadMessages.js.map +0 -1
  236. package/dist/react/useUIMessages.d.ts.map +0 -1
  237. package/dist/react/useUIMessages.js.map +0 -1
  238. package/src/client/streamText.test.ts +0 -102
  239. package/src/deltas.test.ts +0 -626
  240. package/src/deltas.ts +0 -569
  241. package/src/mapping.test.ts +0 -402
  242. /package/dist/{client → vercel/client}/files.js +0 -0
  243. /package/dist/{client → vercel/client}/saveInputMessages.js +0 -0
  244. /package/dist/{react → vercel/react}/optimisticallySendMessage.js +0 -0
  245. /package/dist/{react → vercel/react}/types.js +0 -0
  246. /package/src/{UIMessages.test.ts → vercel/UIMessages.test.ts} +0 -0
@@ -1,31 +1,38 @@
1
+ /**
2
+ * Internal AI SDK implementation for the Agent API.
3
+ *
4
+ * Consumers continue to import this API from `@convex-dev/agent`. A public
5
+ * `@convex-dev/agent/vercel` entry point is intentionally deferred until its
6
+ * provider-adapter API is defined.
7
+ */
1
8
  import type { JSONValue } from "@ai-sdk/provider";
2
- import type { FlexibleSchema, IdGenerator, InferSchema } from "@ai-sdk/provider-utils";
3
- import type { CallSettings, GenerateObjectResult, GenerateTextResult, LanguageModel, ModelMessage, StepResult, StopCondition, StreamTextResult, ToolSet } from "ai";
9
+ import type { Context, FlexibleSchema, IdGenerator, InferSchema } from "@ai-sdk/provider-utils";
10
+ import type { GenerateObjectResult, GenerateTextResult, LanguageModel, Instructions, ModelMessage, Output as AISDKOutput, StepResult, StopCondition, StreamTextResult, ToolSet } from "ai";
4
11
  import { streamObject } from "ai";
5
12
  import { type GenericDataModel, type PaginationOptions, type PaginationResult } from "convex/server";
6
13
  import type { threadFieldsSupportingPatch } from "../component/threads.js";
7
14
  import { type VectorDimension } from "../component/vector/tables.js";
8
15
  import { type Message, type MessageDoc, type MessageStatus, type MessageWithMetadata, type ProviderMetadata, type StreamArgs, type ThreadDoc } from "../validators.js";
9
- import { type SaveMessageArgs, type SaveMessagesArgs } from "./messages.js";
10
- import { type StreamingOptions } from "./streaming.js";
11
- import type { ActionCtx, AgentComponent, Config, ContextOptions, GenerateObjectArgs, GenerationOutputMetadata, MaybeCustomCtx, ObjectMode, Options, RawRequestResponseHandler, MutationCtx, StorageOptions, StreamingTextArgs, StreamObjectArgs, SyncStreamsReturnValue, TextArgs, Thread, UsageHandler, QueryCtx, AgentPrompt, Output } from "./types.js";
12
- import { hasSuccessfulToolCall } from "./utils.js";
13
- export { stepCountIs } from "ai";
16
+ import { type SaveMessageArgs, type SaveMessagesArgs } from "./client/messages.js";
17
+ import { type StreamingOptions } from "./client/streaming.js";
18
+ import type { ActionCtx, AgentComponent, Config, ContextOptions, GenerateObjectArgs, GenerationOutputMetadata, MaybeCustomCtx, ObjectMode, Options, RawRequestResponseHandler, MutationCtx, StorageOptions, StreamingTextArgs, StreamObjectArgs, SyncStreamsReturnValue, TextArgs, Thread, UsageHandler, QueryCtx, AgentPrompt, AgentCallSettings } from "./client/types.js";
19
+ import { hasSuccessfulToolCall } from "./client/utils.js";
20
+ export { isStepCount, stepCountIs } from "ai";
14
21
  export { hasSuccessfulToolCall };
15
- export { docsToModelMessages, toModelMessage, toModelMessage as deserializeMessage, guessMimeType, serializeDataOrUrl, serializeMessage, toUIFilePart, } from "../mapping.js";
22
+ export { docsToModelMessages, toModelMessage, toModelMessage as deserializeMessage, guessMimeType, serializeDataOrUrl, serializeMessage, toUIFilePart, } from "./mapping.js";
16
23
  export { extractText, isTool, sorted } from "../shared.js";
17
24
  export { vAssistantMessage, vContent, vContextOptions, vMessage, vMessageDoc, vPaginationResult, vProviderMetadata, vSource, vStorageOptions, vStreamArgs, vSystemMessage, vThreadDoc, vToolMessage, vUsage, vUserMessage, type Message, type MessageDoc, type SourcePart, type ThreadDoc, type Usage, } from "../validators.js";
18
- export { createTool, type ToolCtx } from "./createTool.js";
19
- export { definePlaygroundAPI, type AgentsFn, type PlaygroundAPI, } from "./definePlaygroundAPI.js";
20
- export { getFile, storeFile } from "./files.js";
21
- export { listMessages, listUIMessages, saveMessage, saveMessages, type SaveMessageArgs, type SaveMessagesArgs, } from "./messages.js";
22
- export { mockModel } from "./mockModel.js";
23
- export { fetchContextMessages, filterOutOrphanedToolMessages, fetchContextWithPrompt, generateAndSaveEmbeddings, embedMessages, embedMany, } from "./search.js";
24
- export { startGeneration } from "./start.js";
25
- export { DEFAULT_STREAMING_OPTIONS, DeltaStreamer, abortStream, compressUIMessageChunks, listStreams, syncStreams, vStreamMessagesReturnValue, } from "./streaming.js";
26
- export { createThread, getThreadMetadata, searchThreadTitles, updateThreadMetadata, } from "./threads.js";
27
- export type { ContextHandler } from "./types.js";
28
- export { toUIMessages, fromUIMessages, type UIMessage } from "../UIMessages.js";
25
+ export { createTool, type ToolCtx } from "./client/createTool.js";
26
+ export { definePlaygroundAPI, type AgentsFn, type PlaygroundAPI, } from "./client/definePlaygroundAPI.js";
27
+ export { getFile, storeFile } from "./client/files.js";
28
+ export { listMessages, listUIMessages, saveMessage, saveMessages, type SaveMessageArgs, type SaveMessagesArgs, } from "./client/messages.js";
29
+ export { mockModel } from "./client/mockModel.js";
30
+ export { fetchContextMessages, filterOutOrphanedToolMessages, fetchContextWithPrompt, generateAndSaveEmbeddings, embedMessages, embedMany, } from "./client/search.js";
31
+ export { startGeneration } from "./client/start.js";
32
+ export { DEFAULT_STREAMING_OPTIONS, DeltaStreamer, abortStream, compressUIMessageChunks, listStreams, syncStreams, vStreamMessagesReturnValue, } from "./client/streaming.js";
33
+ export { createThread, getThreadMetadata, searchThreadTitles, updateThreadMetadata, } from "../client/threads.js";
34
+ export type { ContextHandler } from "./client/types.js";
35
+ export { toUIMessages, fromUIMessages, type UIMessage } from "./UIMessages.js";
29
36
  export type { AgentComponent, Config, ContextOptions, ProviderMetadata, RawRequestResponseHandler, StorageOptions, StreamArgs, SyncStreamsReturnValue, Thread, UsageHandler, };
30
37
  export declare class Agent<
31
38
  /**
@@ -67,7 +74,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
67
74
  * The default system prompt to put in each request.
68
75
  * Override per-prompt by passing the "system" parameter.
69
76
  */
70
- instructions?: string;
77
+ instructions?: Instructions;
71
78
  /**
72
79
  * Tools that the agent can call out to and get responses from.
73
80
  * They can be AI SDK tools (import {tool} from "ai")
@@ -99,7 +106,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
99
106
  * The default system prompt to put in each request.
100
107
  * Override per-prompt by passing the "system" parameter.
101
108
  */
102
- instructions?: string;
109
+ instructions?: Instructions;
103
110
  /**
104
111
  * Tools that the agent can call out to and get responses from.
105
112
  * They can be AI SDK tools (import {tool} from "ai")
@@ -197,7 +204,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
197
204
  _internal?: {
198
205
  generateId?: IdGenerator;
199
206
  };
200
- }>(ctx: ActionCtx & CustomCtx,
207
+ }, RUNTIME_CONTEXT extends Context = Context>(ctx: ActionCtx & CustomCtx,
201
208
  /**
202
209
  * These are the arguments you'll pass to the LLM call such as
203
210
  * `generateText` or `streamText`. This function will look up the context
@@ -217,25 +224,28 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
217
224
  * aborted, it will trigger this signal when detected.
218
225
  */
219
226
  abortSignal?: AbortSignal;
220
- stopWhen?: StopCondition<TOOLS extends undefined ? AgentTools : TOOLS> | Array<StopCondition<TOOLS extends undefined ? AgentTools : TOOLS>>;
227
+ runtimeContext?: RUNTIME_CONTEXT;
228
+ stopWhen?: StopCondition<TOOLS extends undefined ? AgentTools : TOOLS, RUNTIME_CONTEXT> | Array<StopCondition<TOOLS extends undefined ? AgentTools : TOOLS, RUNTIME_CONTEXT>>;
221
229
  }, options?: Options & {
222
230
  userId?: string | null;
223
231
  threadId?: string;
224
- }): Promise<{
232
+ }, operation?: "generateText" | "streamText" | "generateObject" | "streamObject"): Promise<{
225
233
  args: T & {
226
- system?: string;
234
+ instructions?: Instructions;
227
235
  model: LanguageModel;
228
236
  prompt?: never;
229
237
  messages: ModelMessage[];
238
+ runtimeContext?: RUNTIME_CONTEXT;
230
239
  tools?: TOOLS extends undefined ? AgentTools : TOOLS;
231
- } & CallSettings;
240
+ } & AgentCallSettings;
232
241
  order: number;
233
242
  stepOrder: number;
234
243
  userId: string | undefined;
235
244
  promptMessageId: string | undefined;
236
245
  updateModel: (model: LanguageModel | undefined) => void;
237
246
  save: <TOOLS extends ToolSet>(toSave: {
238
- step: StepResult<TOOLS>;
247
+ step: StepResult<TOOLS, RUNTIME_CONTEXT>;
248
+ responseMessages?: ModelMessage[];
239
249
  } | {
240
250
  object: GenerateObjectResult<unknown>;
241
251
  }, createPendingMessage?: boolean) => Promise<void>;
@@ -255,7 +265,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
255
265
  * @param options Extra controls for the {@link ContextOptions} and {@link StorageOptions}.
256
266
  * @returns The result of the generateText function.
257
267
  */
258
- generateText<TOOLS extends ToolSet | undefined = undefined, OUTPUT extends Output<any, any, any> = never>(ctx: ActionCtx & CustomCtx, threadOpts: {
268
+ generateText<TOOLS extends ToolSet | undefined = undefined, OUTPUT extends AISDKOutput.Output<any, any, any> = AISDKOutput.Output<string, string>, RUNTIME_CONTEXT extends Context = Context>(ctx: ActionCtx & CustomCtx, threadOpts: {
259
269
  userId?: string | null;
260
270
  threadId?: string;
261
271
  },
@@ -263,7 +273,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
263
273
  * The arguments to the generateText function, similar to the ai sdk's
264
274
  * {@link generateText} function, along with Agent prompt options.
265
275
  */
266
- generateTextArgs: AgentPrompt & TextArgs<AgentTools, TOOLS, OUTPUT>, options?: Options): Promise<GenerateTextResult<TOOLS extends undefined ? AgentTools : TOOLS, OUTPUT> & GenerationOutputMetadata>;
276
+ generateTextArgs: TextArgs<AgentTools, TOOLS, OUTPUT, RUNTIME_CONTEXT>, options?: Options): Promise<GenerateTextResult<TOOLS extends undefined ? AgentTools : TOOLS, RUNTIME_CONTEXT, OUTPUT> & GenerationOutputMetadata>;
267
277
  /**
268
278
  * This behaves like {@link streamText} from the "ai" package except that
269
279
  * it add context based on the userId and threadId and saves the input and
@@ -271,7 +281,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
271
281
  * Use {@link continueThread} to get a version of this function already scoped
272
282
  * to a thread (and optionally userId).
273
283
  */
274
- streamText<TOOLS extends ToolSet | undefined = undefined, OUTPUT extends Output<any, any, any> = never>(ctx: ActionCtx & CustomCtx, threadOpts: {
284
+ streamText<TOOLS extends ToolSet | undefined = undefined, OUTPUT extends AISDKOutput.Output<any, any, any> = AISDKOutput.Output<string, string, never>, RUNTIME_CONTEXT extends Context = Context>(ctx: ActionCtx & CustomCtx, threadOpts: {
275
285
  userId?: string | null;
276
286
  threadId?: string;
277
287
  },
@@ -279,7 +289,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
279
289
  * The arguments to the streamText function, similar to the ai sdk's
280
290
  * {@link streamText} function, along with Agent prompt options.
281
291
  */
282
- streamTextArgs: AgentPrompt & StreamingTextArgs<AgentTools, TOOLS, OUTPUT>,
292
+ streamTextArgs: StreamingTextArgs<AgentTools, TOOLS, OUTPUT, RUNTIME_CONTEXT>,
283
293
  /**
284
294
  * The {@link ContextOptions} and {@link StorageOptions}
285
295
  * options to use for fetching contextual messages and saving input/output messages.
@@ -296,7 +306,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
296
306
  * iterating over the text, streaming it over HTTP, etc.
297
307
  */
298
308
  saveStreamDeltas?: boolean | StreamingOptions;
299
- }): Promise<StreamTextResult<TOOLS extends undefined ? AgentTools : TOOLS, OUTPUT> & GenerationOutputMetadata>;
309
+ }): Promise<StreamTextResult<TOOLS extends undefined ? AgentTools : TOOLS, RUNTIME_CONTEXT, OUTPUT> & GenerationOutputMetadata>;
300
310
  /**
301
311
  * This behaves like {@link generateObject} from the "ai" package except that
302
312
  * it add context based on the userId and threadId and saves the input and
@@ -312,7 +322,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
312
322
  * The arguments to the generateObject function, similar to the ai sdk's
313
323
  * {@link generateObject} function, along with Agent prompt options.
314
324
  */
315
- generateObjectArgs: AgentPrompt & GenerateObjectArgs<SCHEMA, OUTPUT, RESULT>,
325
+ generateObjectArgs: GenerateObjectArgs<SCHEMA, OUTPUT, RESULT>,
316
326
  /**
317
327
  * The {@link ContextOptions} and {@link StorageOptions}
318
328
  * options to use for fetching contextual messages and saving input/output messages.
@@ -333,7 +343,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
333
343
  * The arguments to the streamObject function, similar to the ai sdk's
334
344
  * {@link streamObject} function, along with Agent prompt options.
335
345
  */
336
- streamObjectArgs: AgentPrompt & StreamObjectArgs<SCHEMA, OUTPUT, RESULT>,
346
+ streamObjectArgs: StreamObjectArgs<SCHEMA, OUTPUT, RESULT>,
337
347
  /**
338
348
  * The {@link ContextOptions} and {@link StorageOptions}
339
349
  * options to use for fetching contextual messages and saving input/output messages.
@@ -357,6 +367,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
357
367
  }): Promise<{
358
368
  messageId: string;
359
369
  message: {
370
+ text?: string | undefined;
371
+ reasoning?: string | undefined;
360
372
  id?: string | undefined;
361
373
  userId?: string | undefined;
362
374
  embeddingId?: string | undefined;
@@ -372,14 +384,17 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
372
384
  content: string | ({
373
385
  providerOptions?: Record<string, Record<string, any>> | undefined;
374
386
  providerMetadata?: Record<string, Record<string, any>> | undefined;
375
- type: "text";
376
387
  text: string;
388
+ type: "text";
377
389
  } | {
378
390
  providerOptions?: Record<string, Record<string, any>> | undefined;
379
391
  mediaType?: string | undefined;
380
392
  mimeType?: string | undefined;
381
393
  type: "image";
382
- image: string | ArrayBuffer;
394
+ image: string | ArrayBuffer | {
395
+ type: "reference";
396
+ reference: Record<string, string>;
397
+ };
383
398
  } | {
384
399
  providerOptions?: Record<string, Record<string, any>> | undefined;
385
400
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -387,7 +402,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
387
402
  mimeType?: string | undefined;
388
403
  filename?: string | undefined;
389
404
  type: "file";
390
- data: string | ArrayBuffer;
405
+ data: string | ArrayBuffer | {
406
+ type: "reference";
407
+ reference: Record<string, string>;
408
+ };
391
409
  })[];
392
410
  } | {
393
411
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -395,8 +413,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
395
413
  content: string | ({
396
414
  providerOptions?: Record<string, Record<string, any>> | undefined;
397
415
  providerMetadata?: Record<string, Record<string, any>> | undefined;
398
- type: "text";
399
416
  text: string;
417
+ type: "text";
400
418
  } | {
401
419
  providerOptions?: Record<string, Record<string, any>> | undefined;
402
420
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -404,32 +422,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
404
422
  mimeType?: string | undefined;
405
423
  filename?: string | undefined;
406
424
  type: "file";
407
- data: string | ArrayBuffer;
425
+ data: string | ArrayBuffer | {
426
+ type: "reference";
427
+ reference: Record<string, string>;
428
+ };
408
429
  } | {
409
430
  providerOptions?: Record<string, Record<string, any>> | undefined;
410
431
  providerMetadata?: Record<string, Record<string, any>> | undefined;
411
432
  signature?: string | undefined;
412
- type: "reasoning";
413
433
  text: string;
434
+ type: "reasoning";
435
+ } | {
436
+ providerOptions?: Record<string, Record<string, any>> | undefined;
437
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
438
+ data?: string | ArrayBuffer | undefined;
439
+ url?: string | undefined;
440
+ type: "reasoning-file";
441
+ mediaType: string;
442
+ } | {
443
+ providerOptions?: Record<string, Record<string, any>> | undefined;
444
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
445
+ type: "custom";
446
+ kind: string;
414
447
  } | {
415
448
  providerOptions?: Record<string, Record<string, any>> | undefined;
416
449
  providerMetadata?: Record<string, Record<string, any>> | undefined;
417
450
  type: "redacted-reasoning";
418
451
  data: string;
419
452
  } | {
453
+ title?: string | undefined;
420
454
  providerOptions?: Record<string, Record<string, any>> | undefined;
421
455
  providerMetadata?: Record<string, Record<string, any>> | undefined;
422
456
  args?: any;
423
457
  providerExecuted?: boolean | undefined;
458
+ toolMetadata?: Record<string, any> | undefined;
424
459
  type: "tool-call";
425
460
  toolCallId: string;
426
461
  toolName: string;
427
462
  input: any;
428
463
  } | {
464
+ title?: string | undefined;
429
465
  providerOptions?: Record<string, Record<string, any>> | undefined;
430
466
  providerMetadata?: Record<string, Record<string, any>> | undefined;
431
467
  input?: any;
432
468
  providerExecuted?: boolean | undefined;
469
+ toolMetadata?: Record<string, any> | undefined;
433
470
  type: "tool-call";
434
471
  toolCallId: string;
435
472
  toolName: string;
@@ -463,8 +500,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
463
500
  type: "content";
464
501
  value: ({
465
502
  providerOptions?: Record<string, Record<string, any>> | undefined;
466
- type: "text";
467
503
  text: string;
504
+ type: "text";
505
+ } | {
506
+ providerOptions?: Record<string, Record<string, any>> | undefined;
507
+ filename?: string | undefined;
508
+ type: "file";
509
+ mediaType: string;
510
+ data: {
511
+ type: "reference";
512
+ reference: Record<string, string>;
513
+ } | {
514
+ type: "url";
515
+ url: string;
516
+ } | {
517
+ type: "data";
518
+ data: string | ArrayBuffer;
519
+ } | {
520
+ text: string;
521
+ type: "text";
522
+ };
468
523
  } | {
469
524
  type: "media";
470
525
  mediaType: string;
@@ -477,17 +532,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
477
532
  data: string;
478
533
  } | {
479
534
  providerOptions?: Record<string, Record<string, any>> | undefined;
535
+ mediaType?: string | undefined;
480
536
  type: "file-url";
481
537
  url: string;
482
538
  } | {
483
539
  providerOptions?: Record<string, Record<string, any>> | undefined;
484
540
  type: "file-id";
485
541
  fileId: string | Record<string, string>;
542
+ } | {
543
+ providerOptions?: Record<string, Record<string, any>> | undefined;
544
+ type: "file-reference";
545
+ providerReference: Record<string, string>;
486
546
  } | {
487
547
  providerOptions?: Record<string, Record<string, any>> | undefined;
488
548
  type: "image-data";
489
549
  mediaType: string;
490
550
  data: string;
551
+ } | {
552
+ providerOptions?: Record<string, Record<string, any>> | undefined;
553
+ type: "image-file-reference";
554
+ providerReference: Record<string, string>;
491
555
  } | {
492
556
  providerOptions?: Record<string, Record<string, any>> | undefined;
493
557
  type: "image-url";
@@ -504,8 +568,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
504
568
  result?: any;
505
569
  isError?: boolean | undefined;
506
570
  experimental_content?: ({
507
- type: "text";
508
571
  text: string;
572
+ type: "text";
509
573
  } | {
510
574
  mimeType?: string | undefined;
511
575
  type: "image";
@@ -534,6 +598,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
534
598
  } | {
535
599
  providerOptions?: Record<string, Record<string, any>> | undefined;
536
600
  providerMetadata?: Record<string, Record<string, any>> | undefined;
601
+ signature?: string | undefined;
602
+ isAutomatic?: boolean | undefined;
537
603
  type: "tool-approval-request";
538
604
  toolCallId: string;
539
605
  approvalId: string;
@@ -570,8 +636,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
570
636
  type: "content";
571
637
  value: ({
572
638
  providerOptions?: Record<string, Record<string, any>> | undefined;
573
- type: "text";
574
639
  text: string;
640
+ type: "text";
641
+ } | {
642
+ providerOptions?: Record<string, Record<string, any>> | undefined;
643
+ filename?: string | undefined;
644
+ type: "file";
645
+ mediaType: string;
646
+ data: {
647
+ type: "reference";
648
+ reference: Record<string, string>;
649
+ } | {
650
+ type: "url";
651
+ url: string;
652
+ } | {
653
+ type: "data";
654
+ data: string | ArrayBuffer;
655
+ } | {
656
+ text: string;
657
+ type: "text";
658
+ };
575
659
  } | {
576
660
  type: "media";
577
661
  mediaType: string;
@@ -584,17 +668,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
584
668
  data: string;
585
669
  } | {
586
670
  providerOptions?: Record<string, Record<string, any>> | undefined;
671
+ mediaType?: string | undefined;
587
672
  type: "file-url";
588
673
  url: string;
589
674
  } | {
590
675
  providerOptions?: Record<string, Record<string, any>> | undefined;
591
676
  type: "file-id";
592
677
  fileId: string | Record<string, string>;
678
+ } | {
679
+ providerOptions?: Record<string, Record<string, any>> | undefined;
680
+ type: "file-reference";
681
+ providerReference: Record<string, string>;
593
682
  } | {
594
683
  providerOptions?: Record<string, Record<string, any>> | undefined;
595
684
  type: "image-data";
596
685
  mediaType: string;
597
686
  data: string;
687
+ } | {
688
+ providerOptions?: Record<string, Record<string, any>> | undefined;
689
+ type: "image-file-reference";
690
+ providerReference: Record<string, string>;
598
691
  } | {
599
692
  providerOptions?: Record<string, Record<string, any>> | undefined;
600
693
  type: "image-url";
@@ -611,8 +704,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
611
704
  result?: any;
612
705
  isError?: boolean | undefined;
613
706
  experimental_content?: ({
614
- type: "text";
615
707
  text: string;
708
+ type: "text";
616
709
  } | {
617
710
  mimeType?: string | undefined;
618
711
  type: "image";
@@ -635,15 +728,17 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
635
728
  role: "system";
636
729
  content: string;
637
730
  } | undefined;
638
- text?: string | undefined;
639
731
  providerMetadata?: Record<string, Record<string, any>> | undefined;
640
- reasoning?: string | undefined;
641
732
  usage?: {
733
+ promptTokens?: number | undefined;
734
+ completionTokens?: number | undefined;
735
+ totalTokens?: number | undefined;
642
736
  reasoningTokens?: number | undefined;
643
737
  cachedInputTokens?: number | undefined;
644
- promptTokens: number;
645
- completionTokens: number;
646
- totalTokens: number;
738
+ nonCachedInputTokens?: number | undefined;
739
+ cacheWriteInputTokens?: number | undefined;
740
+ textOutputTokens?: number | undefined;
741
+ raw?: Record<string, any> | undefined;
647
742
  } | undefined;
648
743
  sources?: ({
649
744
  title?: string | undefined;
@@ -664,13 +759,25 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
664
759
  sourceType: "document";
665
760
  })[] | undefined;
666
761
  warnings?: ({
762
+ details?: string | undefined;
763
+ type: "unsupported";
764
+ feature: string;
765
+ } | {
766
+ details?: string | undefined;
767
+ type: "compatibility";
768
+ feature: string;
769
+ } | {
770
+ type: "deprecated";
771
+ message: string;
772
+ setting: string;
773
+ } | {
667
774
  details?: string | undefined;
668
775
  type: "unsupported-setting";
669
776
  setting: string;
670
777
  } | {
671
778
  details?: string | undefined;
672
- type: "unsupported-tool";
673
779
  tool: any;
780
+ type: "unsupported-tool";
674
781
  } | {
675
782
  type: "other";
676
783
  message: string;
@@ -680,22 +787,22 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
680
787
  providerOptions?: Record<string, Record<string, any>> | undefined;
681
788
  providerMetadata?: Record<string, Record<string, any>> | undefined;
682
789
  signature?: string | undefined;
683
- type: "reasoning";
684
790
  text: string;
791
+ type: "reasoning";
685
792
  } | {
686
793
  signature?: string | undefined;
687
- type: "text";
688
794
  text: string;
795
+ type: "text";
689
796
  } | {
690
797
  type: "redacted";
691
798
  data: string;
692
799
  })[] | undefined;
800
+ tool: boolean;
693
801
  status: "pending" | "success" | "failed";
694
802
  order: number;
695
803
  _creationTime: number;
696
804
  threadId: string;
697
805
  stepOrder: number;
698
- tool: boolean;
699
806
  _id: string;
700
807
  };
701
808
  }>;
@@ -869,7 +976,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
869
976
  private respondToToolCallApproval;
870
977
  private findApprovalContext;
871
978
  /**
872
- * Explicitly save a "step" created by the AI SDK.
979
+ * Explicitly save a "step" created by the AI SDK. For multi-step generation
980
+ * loops, each SDK 7 step already owns its response messages.
873
981
  * @param ctx The ctx argument to a mutation or action.
874
982
  * @param args The Step generated by the AI SDK.
875
983
  */
@@ -884,6 +992,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
884
992
  * The step to save, possibly including multiple tool calls.
885
993
  */
886
994
  step: StepResult<TOOLS>;
995
+ /** @deprecated SDK 7 response messages are step-local. */
996
+ previousStep?: StepResult<TOOLS>;
887
997
  /**
888
998
  * The model used to generate the step.
889
999
  * Defaults to the chat model for the Agent.
@@ -1096,25 +1206,36 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1096
1206
  * Defaults to the {@link Agent["options"].stopWhen} option.
1097
1207
  */
1098
1208
  stopWhen?: StopCondition<AgentTools> | Array<StopCondition<AgentTools>>;
1099
- } & Options, overrides?: CallSettings): import("convex/server").RegisteredAction<"internal", {
1209
+ } & Options, overrides?: AgentCallSettings): import("convex/server").RegisteredAction<"internal", {
1210
+ system?: string | {
1211
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1212
+ role: "system";
1213
+ content: string;
1214
+ } | {
1215
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1216
+ role: "system";
1217
+ content: string;
1218
+ }[] | undefined;
1100
1219
  userId?: string | undefined;
1101
1220
  threadId?: string | undefined;
1102
1221
  providerOptions?: Record<string, Record<string, any>> | undefined;
1103
- system?: string | undefined;
1104
1222
  messages?: ({
1105
1223
  providerOptions?: Record<string, Record<string, any>> | undefined;
1106
1224
  role: "user";
1107
1225
  content: string | ({
1108
1226
  providerOptions?: Record<string, Record<string, any>> | undefined;
1109
1227
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1110
- type: "text";
1111
1228
  text: string;
1229
+ type: "text";
1112
1230
  } | {
1113
1231
  providerOptions?: Record<string, Record<string, any>> | undefined;
1114
1232
  mediaType?: string | undefined;
1115
1233
  mimeType?: string | undefined;
1116
1234
  type: "image";
1117
- image: string | ArrayBuffer;
1235
+ image: string | ArrayBuffer | {
1236
+ type: "reference";
1237
+ reference: Record<string, string>;
1238
+ };
1118
1239
  } | {
1119
1240
  providerOptions?: Record<string, Record<string, any>> | undefined;
1120
1241
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1122,7 +1243,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1122
1243
  mimeType?: string | undefined;
1123
1244
  filename?: string | undefined;
1124
1245
  type: "file";
1125
- data: string | ArrayBuffer;
1246
+ data: string | ArrayBuffer | {
1247
+ type: "reference";
1248
+ reference: Record<string, string>;
1249
+ };
1126
1250
  })[];
1127
1251
  } | {
1128
1252
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -1130,8 +1254,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1130
1254
  content: string | ({
1131
1255
  providerOptions?: Record<string, Record<string, any>> | undefined;
1132
1256
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1133
- type: "text";
1134
1257
  text: string;
1258
+ type: "text";
1135
1259
  } | {
1136
1260
  providerOptions?: Record<string, Record<string, any>> | undefined;
1137
1261
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1139,32 +1263,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1139
1263
  mimeType?: string | undefined;
1140
1264
  filename?: string | undefined;
1141
1265
  type: "file";
1142
- data: string | ArrayBuffer;
1266
+ data: string | ArrayBuffer | {
1267
+ type: "reference";
1268
+ reference: Record<string, string>;
1269
+ };
1143
1270
  } | {
1144
1271
  providerOptions?: Record<string, Record<string, any>> | undefined;
1145
1272
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1146
1273
  signature?: string | undefined;
1147
- type: "reasoning";
1148
1274
  text: string;
1275
+ type: "reasoning";
1276
+ } | {
1277
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1278
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
1279
+ data?: string | ArrayBuffer | undefined;
1280
+ url?: string | undefined;
1281
+ type: "reasoning-file";
1282
+ mediaType: string;
1283
+ } | {
1284
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1285
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
1286
+ type: "custom";
1287
+ kind: string;
1149
1288
  } | {
1150
1289
  providerOptions?: Record<string, Record<string, any>> | undefined;
1151
1290
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1152
1291
  type: "redacted-reasoning";
1153
1292
  data: string;
1154
1293
  } | {
1294
+ title?: string | undefined;
1155
1295
  providerOptions?: Record<string, Record<string, any>> | undefined;
1156
1296
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1157
1297
  args?: any;
1158
1298
  providerExecuted?: boolean | undefined;
1299
+ toolMetadata?: Record<string, any> | undefined;
1159
1300
  type: "tool-call";
1160
1301
  toolCallId: string;
1161
1302
  toolName: string;
1162
1303
  input: any;
1163
1304
  } | {
1305
+ title?: string | undefined;
1164
1306
  providerOptions?: Record<string, Record<string, any>> | undefined;
1165
1307
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1166
1308
  input?: any;
1167
1309
  providerExecuted?: boolean | undefined;
1310
+ toolMetadata?: Record<string, any> | undefined;
1168
1311
  type: "tool-call";
1169
1312
  toolCallId: string;
1170
1313
  toolName: string;
@@ -1198,8 +1341,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1198
1341
  type: "content";
1199
1342
  value: ({
1200
1343
  providerOptions?: Record<string, Record<string, any>> | undefined;
1201
- type: "text";
1202
1344
  text: string;
1345
+ type: "text";
1346
+ } | {
1347
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1348
+ filename?: string | undefined;
1349
+ type: "file";
1350
+ mediaType: string;
1351
+ data: {
1352
+ type: "reference";
1353
+ reference: Record<string, string>;
1354
+ } | {
1355
+ type: "url";
1356
+ url: string;
1357
+ } | {
1358
+ type: "data";
1359
+ data: string | ArrayBuffer;
1360
+ } | {
1361
+ text: string;
1362
+ type: "text";
1363
+ };
1203
1364
  } | {
1204
1365
  type: "media";
1205
1366
  mediaType: string;
@@ -1212,17 +1373,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1212
1373
  data: string;
1213
1374
  } | {
1214
1375
  providerOptions?: Record<string, Record<string, any>> | undefined;
1376
+ mediaType?: string | undefined;
1215
1377
  type: "file-url";
1216
1378
  url: string;
1217
1379
  } | {
1218
1380
  providerOptions?: Record<string, Record<string, any>> | undefined;
1219
1381
  type: "file-id";
1220
1382
  fileId: string | Record<string, string>;
1383
+ } | {
1384
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1385
+ type: "file-reference";
1386
+ providerReference: Record<string, string>;
1221
1387
  } | {
1222
1388
  providerOptions?: Record<string, Record<string, any>> | undefined;
1223
1389
  type: "image-data";
1224
1390
  mediaType: string;
1225
1391
  data: string;
1392
+ } | {
1393
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1394
+ type: "image-file-reference";
1395
+ providerReference: Record<string, string>;
1226
1396
  } | {
1227
1397
  providerOptions?: Record<string, Record<string, any>> | undefined;
1228
1398
  type: "image-url";
@@ -1239,8 +1409,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1239
1409
  result?: any;
1240
1410
  isError?: boolean | undefined;
1241
1411
  experimental_content?: ({
1242
- type: "text";
1243
1412
  text: string;
1413
+ type: "text";
1244
1414
  } | {
1245
1415
  mimeType?: string | undefined;
1246
1416
  type: "image";
@@ -1269,6 +1439,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1269
1439
  } | {
1270
1440
  providerOptions?: Record<string, Record<string, any>> | undefined;
1271
1441
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1442
+ signature?: string | undefined;
1443
+ isAutomatic?: boolean | undefined;
1272
1444
  type: "tool-approval-request";
1273
1445
  toolCallId: string;
1274
1446
  approvalId: string;
@@ -1305,8 +1477,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1305
1477
  type: "content";
1306
1478
  value: ({
1307
1479
  providerOptions?: Record<string, Record<string, any>> | undefined;
1308
- type: "text";
1309
1480
  text: string;
1481
+ type: "text";
1482
+ } | {
1483
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1484
+ filename?: string | undefined;
1485
+ type: "file";
1486
+ mediaType: string;
1487
+ data: {
1488
+ type: "reference";
1489
+ reference: Record<string, string>;
1490
+ } | {
1491
+ type: "url";
1492
+ url: string;
1493
+ } | {
1494
+ type: "data";
1495
+ data: string | ArrayBuffer;
1496
+ } | {
1497
+ text: string;
1498
+ type: "text";
1499
+ };
1310
1500
  } | {
1311
1501
  type: "media";
1312
1502
  mediaType: string;
@@ -1319,17 +1509,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1319
1509
  data: string;
1320
1510
  } | {
1321
1511
  providerOptions?: Record<string, Record<string, any>> | undefined;
1512
+ mediaType?: string | undefined;
1322
1513
  type: "file-url";
1323
1514
  url: string;
1324
1515
  } | {
1325
1516
  providerOptions?: Record<string, Record<string, any>> | undefined;
1326
1517
  type: "file-id";
1327
1518
  fileId: string | Record<string, string>;
1519
+ } | {
1520
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1521
+ type: "file-reference";
1522
+ providerReference: Record<string, string>;
1328
1523
  } | {
1329
1524
  providerOptions?: Record<string, Record<string, any>> | undefined;
1330
1525
  type: "image-data";
1331
1526
  mediaType: string;
1332
1527
  data: string;
1528
+ } | {
1529
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1530
+ type: "image-file-reference";
1531
+ providerReference: Record<string, string>;
1333
1532
  } | {
1334
1533
  providerOptions?: Record<string, Record<string, any>> | undefined;
1335
1534
  type: "image-url";
@@ -1346,8 +1545,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1346
1545
  result?: any;
1347
1546
  isError?: boolean | undefined;
1348
1547
  experimental_content?: ({
1349
- type: "text";
1350
1548
  text: string;
1549
+ type: "text";
1351
1550
  } | {
1352
1551
  mimeType?: string | undefined;
1353
1552
  type: "image";
@@ -1409,12 +1608,13 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1409
1608
  seed?: number | undefined;
1410
1609
  maxRetries?: number | undefined;
1411
1610
  } | undefined;
1611
+ allowSystemInMessages?: boolean | undefined;
1412
1612
  }, Promise<{
1413
1613
  text: string;
1414
1614
  promptMessageId: string | undefined;
1415
1615
  order: number | undefined;
1416
1616
  finishReason: import("ai").FinishReason;
1417
- warnings: import("@ai-sdk/provider").SharedV3Warning[] | undefined;
1617
+ warnings: import("@ai-sdk/provider").SharedV4Warning[] | undefined;
1418
1618
  savedMessageIds: string[];
1419
1619
  }>>;
1420
1620
  /**
@@ -1425,24 +1625,35 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1425
1625
  * and stopWhen.
1426
1626
  */
1427
1627
  asObjectAction<T, DataModel extends GenericDataModel>(objectArgs: GenerateObjectArgs<FlexibleSchema<T>> & Partial<AgentPrompt>, options?: Options & MaybeCustomCtx<CustomCtx, DataModel, AgentTools>): import("convex/server").RegisteredAction<"internal", {
1628
+ system?: string | {
1629
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1630
+ role: "system";
1631
+ content: string;
1632
+ } | {
1633
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1634
+ role: "system";
1635
+ content: string;
1636
+ }[] | undefined;
1428
1637
  userId?: string | undefined;
1429
1638
  threadId?: string | undefined;
1430
1639
  providerOptions?: Record<string, Record<string, any>> | undefined;
1431
- system?: string | undefined;
1432
1640
  messages?: ({
1433
1641
  providerOptions?: Record<string, Record<string, any>> | undefined;
1434
1642
  role: "user";
1435
1643
  content: string | ({
1436
1644
  providerOptions?: Record<string, Record<string, any>> | undefined;
1437
1645
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1438
- type: "text";
1439
1646
  text: string;
1647
+ type: "text";
1440
1648
  } | {
1441
1649
  providerOptions?: Record<string, Record<string, any>> | undefined;
1442
1650
  mediaType?: string | undefined;
1443
1651
  mimeType?: string | undefined;
1444
1652
  type: "image";
1445
- image: string | ArrayBuffer;
1653
+ image: string | ArrayBuffer | {
1654
+ type: "reference";
1655
+ reference: Record<string, string>;
1656
+ };
1446
1657
  } | {
1447
1658
  providerOptions?: Record<string, Record<string, any>> | undefined;
1448
1659
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1450,7 +1661,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1450
1661
  mimeType?: string | undefined;
1451
1662
  filename?: string | undefined;
1452
1663
  type: "file";
1453
- data: string | ArrayBuffer;
1664
+ data: string | ArrayBuffer | {
1665
+ type: "reference";
1666
+ reference: Record<string, string>;
1667
+ };
1454
1668
  })[];
1455
1669
  } | {
1456
1670
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -1458,8 +1672,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1458
1672
  content: string | ({
1459
1673
  providerOptions?: Record<string, Record<string, any>> | undefined;
1460
1674
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1461
- type: "text";
1462
1675
  text: string;
1676
+ type: "text";
1463
1677
  } | {
1464
1678
  providerOptions?: Record<string, Record<string, any>> | undefined;
1465
1679
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1467,32 +1681,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1467
1681
  mimeType?: string | undefined;
1468
1682
  filename?: string | undefined;
1469
1683
  type: "file";
1470
- data: string | ArrayBuffer;
1684
+ data: string | ArrayBuffer | {
1685
+ type: "reference";
1686
+ reference: Record<string, string>;
1687
+ };
1471
1688
  } | {
1472
1689
  providerOptions?: Record<string, Record<string, any>> | undefined;
1473
1690
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1474
1691
  signature?: string | undefined;
1475
- type: "reasoning";
1476
1692
  text: string;
1693
+ type: "reasoning";
1694
+ } | {
1695
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1696
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
1697
+ data?: string | ArrayBuffer | undefined;
1698
+ url?: string | undefined;
1699
+ type: "reasoning-file";
1700
+ mediaType: string;
1701
+ } | {
1702
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1703
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
1704
+ type: "custom";
1705
+ kind: string;
1477
1706
  } | {
1478
1707
  providerOptions?: Record<string, Record<string, any>> | undefined;
1479
1708
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1480
1709
  type: "redacted-reasoning";
1481
1710
  data: string;
1482
1711
  } | {
1712
+ title?: string | undefined;
1483
1713
  providerOptions?: Record<string, Record<string, any>> | undefined;
1484
1714
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1485
1715
  args?: any;
1486
1716
  providerExecuted?: boolean | undefined;
1717
+ toolMetadata?: Record<string, any> | undefined;
1487
1718
  type: "tool-call";
1488
1719
  toolCallId: string;
1489
1720
  toolName: string;
1490
1721
  input: any;
1491
1722
  } | {
1723
+ title?: string | undefined;
1492
1724
  providerOptions?: Record<string, Record<string, any>> | undefined;
1493
1725
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1494
1726
  input?: any;
1495
1727
  providerExecuted?: boolean | undefined;
1728
+ toolMetadata?: Record<string, any> | undefined;
1496
1729
  type: "tool-call";
1497
1730
  toolCallId: string;
1498
1731
  toolName: string;
@@ -1526,8 +1759,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1526
1759
  type: "content";
1527
1760
  value: ({
1528
1761
  providerOptions?: Record<string, Record<string, any>> | undefined;
1529
- type: "text";
1530
1762
  text: string;
1763
+ type: "text";
1764
+ } | {
1765
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1766
+ filename?: string | undefined;
1767
+ type: "file";
1768
+ mediaType: string;
1769
+ data: {
1770
+ type: "reference";
1771
+ reference: Record<string, string>;
1772
+ } | {
1773
+ type: "url";
1774
+ url: string;
1775
+ } | {
1776
+ type: "data";
1777
+ data: string | ArrayBuffer;
1778
+ } | {
1779
+ text: string;
1780
+ type: "text";
1781
+ };
1531
1782
  } | {
1532
1783
  type: "media";
1533
1784
  mediaType: string;
@@ -1540,17 +1791,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1540
1791
  data: string;
1541
1792
  } | {
1542
1793
  providerOptions?: Record<string, Record<string, any>> | undefined;
1794
+ mediaType?: string | undefined;
1543
1795
  type: "file-url";
1544
1796
  url: string;
1545
1797
  } | {
1546
1798
  providerOptions?: Record<string, Record<string, any>> | undefined;
1547
1799
  type: "file-id";
1548
1800
  fileId: string | Record<string, string>;
1801
+ } | {
1802
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1803
+ type: "file-reference";
1804
+ providerReference: Record<string, string>;
1549
1805
  } | {
1550
1806
  providerOptions?: Record<string, Record<string, any>> | undefined;
1551
1807
  type: "image-data";
1552
1808
  mediaType: string;
1553
1809
  data: string;
1810
+ } | {
1811
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1812
+ type: "image-file-reference";
1813
+ providerReference: Record<string, string>;
1554
1814
  } | {
1555
1815
  providerOptions?: Record<string, Record<string, any>> | undefined;
1556
1816
  type: "image-url";
@@ -1567,8 +1827,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1567
1827
  result?: any;
1568
1828
  isError?: boolean | undefined;
1569
1829
  experimental_content?: ({
1570
- type: "text";
1571
1830
  text: string;
1831
+ type: "text";
1572
1832
  } | {
1573
1833
  mimeType?: string | undefined;
1574
1834
  type: "image";
@@ -1597,6 +1857,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1597
1857
  } | {
1598
1858
  providerOptions?: Record<string, Record<string, any>> | undefined;
1599
1859
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1860
+ signature?: string | undefined;
1861
+ isAutomatic?: boolean | undefined;
1600
1862
  type: "tool-approval-request";
1601
1863
  toolCallId: string;
1602
1864
  approvalId: string;
@@ -1633,8 +1895,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1633
1895
  type: "content";
1634
1896
  value: ({
1635
1897
  providerOptions?: Record<string, Record<string, any>> | undefined;
1636
- type: "text";
1637
1898
  text: string;
1899
+ type: "text";
1900
+ } | {
1901
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1902
+ filename?: string | undefined;
1903
+ type: "file";
1904
+ mediaType: string;
1905
+ data: {
1906
+ type: "reference";
1907
+ reference: Record<string, string>;
1908
+ } | {
1909
+ type: "url";
1910
+ url: string;
1911
+ } | {
1912
+ type: "data";
1913
+ data: string | ArrayBuffer;
1914
+ } | {
1915
+ text: string;
1916
+ type: "text";
1917
+ };
1638
1918
  } | {
1639
1919
  type: "media";
1640
1920
  mediaType: string;
@@ -1647,17 +1927,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1647
1927
  data: string;
1648
1928
  } | {
1649
1929
  providerOptions?: Record<string, Record<string, any>> | undefined;
1930
+ mediaType?: string | undefined;
1650
1931
  type: "file-url";
1651
1932
  url: string;
1652
1933
  } | {
1653
1934
  providerOptions?: Record<string, Record<string, any>> | undefined;
1654
1935
  type: "file-id";
1655
1936
  fileId: string | Record<string, string>;
1937
+ } | {
1938
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1939
+ type: "file-reference";
1940
+ providerReference: Record<string, string>;
1656
1941
  } | {
1657
1942
  providerOptions?: Record<string, Record<string, any>> | undefined;
1658
1943
  type: "image-data";
1659
1944
  mediaType: string;
1660
1945
  data: string;
1946
+ } | {
1947
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1948
+ type: "image-file-reference";
1949
+ providerReference: Record<string, string>;
1661
1950
  } | {
1662
1951
  providerOptions?: Record<string, Record<string, any>> | undefined;
1663
1952
  type: "image-url";
@@ -1674,8 +1963,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1674
1963
  result?: any;
1675
1964
  isError?: boolean | undefined;
1676
1965
  experimental_content?: ({
1677
- type: "text";
1678
1966
  text: string;
1967
+ type: "text";
1679
1968
  } | {
1680
1969
  mimeType?: string | undefined;
1681
1970
  type: "image";
@@ -1730,12 +2019,13 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1730
2019
  seed?: number | undefined;
1731
2020
  maxRetries?: number | undefined;
1732
2021
  } | undefined;
2022
+ allowSystemInMessages?: boolean | undefined;
1733
2023
  }, Promise<{
1734
2024
  object: T;
1735
2025
  promptMessageId: string | undefined;
1736
2026
  order: number | undefined;
1737
2027
  finishReason: import("ai").FinishReason;
1738
- warnings: import("@ai-sdk/provider").SharedV3Warning[] | undefined;
2028
+ warnings: import("@ai-sdk/provider").SharedV4Warning[] | undefined;
1739
2029
  savedMessageIds: string[];
1740
2030
  }>>;
1741
2031
  /**
@@ -1751,20 +2041,24 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1751
2041
  failPendingSteps?: boolean | undefined;
1752
2042
  threadId: string;
1753
2043
  messages: {
2044
+ text?: string | undefined;
2045
+ reasoning?: string | undefined;
1754
2046
  status?: "pending" | "success" | "failed" | undefined;
1755
2047
  fileIds?: string[] | undefined;
1756
2048
  error?: string | undefined;
1757
2049
  model?: string | undefined;
1758
2050
  provider?: string | undefined;
1759
- text?: string | undefined;
1760
2051
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1761
- reasoning?: string | undefined;
1762
2052
  usage?: {
2053
+ promptTokens?: number | undefined;
2054
+ completionTokens?: number | undefined;
2055
+ totalTokens?: number | undefined;
1763
2056
  reasoningTokens?: number | undefined;
1764
2057
  cachedInputTokens?: number | undefined;
1765
- promptTokens: number;
1766
- completionTokens: number;
1767
- totalTokens: number;
2058
+ nonCachedInputTokens?: number | undefined;
2059
+ cacheWriteInputTokens?: number | undefined;
2060
+ textOutputTokens?: number | undefined;
2061
+ raw?: Record<string, any> | undefined;
1768
2062
  } | undefined;
1769
2063
  sources?: ({
1770
2064
  title?: string | undefined;
@@ -1785,13 +2079,25 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1785
2079
  sourceType: "document";
1786
2080
  })[] | undefined;
1787
2081
  warnings?: ({
2082
+ details?: string | undefined;
2083
+ type: "unsupported";
2084
+ feature: string;
2085
+ } | {
2086
+ details?: string | undefined;
2087
+ type: "compatibility";
2088
+ feature: string;
2089
+ } | {
2090
+ type: "deprecated";
2091
+ message: string;
2092
+ setting: string;
2093
+ } | {
1788
2094
  details?: string | undefined;
1789
2095
  type: "unsupported-setting";
1790
2096
  setting: string;
1791
2097
  } | {
1792
2098
  details?: string | undefined;
1793
- type: "unsupported-tool";
1794
2099
  tool: any;
2100
+ type: "unsupported-tool";
1795
2101
  } | {
1796
2102
  type: "other";
1797
2103
  message: string;
@@ -1801,12 +2107,12 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1801
2107
  providerOptions?: Record<string, Record<string, any>> | undefined;
1802
2108
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1803
2109
  signature?: string | undefined;
1804
- type: "reasoning";
1805
2110
  text: string;
2111
+ type: "reasoning";
1806
2112
  } | {
1807
2113
  signature?: string | undefined;
1808
- type: "text";
1809
2114
  text: string;
2115
+ type: "text";
1810
2116
  } | {
1811
2117
  type: "redacted";
1812
2118
  data: string;
@@ -1817,14 +2123,17 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1817
2123
  content: string | ({
1818
2124
  providerOptions?: Record<string, Record<string, any>> | undefined;
1819
2125
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1820
- type: "text";
1821
2126
  text: string;
2127
+ type: "text";
1822
2128
  } | {
1823
2129
  providerOptions?: Record<string, Record<string, any>> | undefined;
1824
2130
  mediaType?: string | undefined;
1825
2131
  mimeType?: string | undefined;
1826
2132
  type: "image";
1827
- image: string | ArrayBuffer;
2133
+ image: string | ArrayBuffer | {
2134
+ type: "reference";
2135
+ reference: Record<string, string>;
2136
+ };
1828
2137
  } | {
1829
2138
  providerOptions?: Record<string, Record<string, any>> | undefined;
1830
2139
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1832,7 +2141,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1832
2141
  mimeType?: string | undefined;
1833
2142
  filename?: string | undefined;
1834
2143
  type: "file";
1835
- data: string | ArrayBuffer;
2144
+ data: string | ArrayBuffer | {
2145
+ type: "reference";
2146
+ reference: Record<string, string>;
2147
+ };
1836
2148
  })[];
1837
2149
  } | {
1838
2150
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -1840,8 +2152,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1840
2152
  content: string | ({
1841
2153
  providerOptions?: Record<string, Record<string, any>> | undefined;
1842
2154
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1843
- type: "text";
1844
2155
  text: string;
2156
+ type: "text";
1845
2157
  } | {
1846
2158
  providerOptions?: Record<string, Record<string, any>> | undefined;
1847
2159
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1849,32 +2161,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1849
2161
  mimeType?: string | undefined;
1850
2162
  filename?: string | undefined;
1851
2163
  type: "file";
1852
- data: string | ArrayBuffer;
2164
+ data: string | ArrayBuffer | {
2165
+ type: "reference";
2166
+ reference: Record<string, string>;
2167
+ };
1853
2168
  } | {
1854
2169
  providerOptions?: Record<string, Record<string, any>> | undefined;
1855
2170
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1856
2171
  signature?: string | undefined;
1857
- type: "reasoning";
1858
2172
  text: string;
2173
+ type: "reasoning";
2174
+ } | {
2175
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2176
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
2177
+ data?: string | ArrayBuffer | undefined;
2178
+ url?: string | undefined;
2179
+ type: "reasoning-file";
2180
+ mediaType: string;
2181
+ } | {
2182
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2183
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
2184
+ type: "custom";
2185
+ kind: string;
1859
2186
  } | {
1860
2187
  providerOptions?: Record<string, Record<string, any>> | undefined;
1861
2188
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1862
2189
  type: "redacted-reasoning";
1863
2190
  data: string;
1864
2191
  } | {
2192
+ title?: string | undefined;
1865
2193
  providerOptions?: Record<string, Record<string, any>> | undefined;
1866
2194
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1867
2195
  args?: any;
1868
2196
  providerExecuted?: boolean | undefined;
2197
+ toolMetadata?: Record<string, any> | undefined;
1869
2198
  type: "tool-call";
1870
2199
  toolCallId: string;
1871
2200
  toolName: string;
1872
2201
  input: any;
1873
2202
  } | {
2203
+ title?: string | undefined;
1874
2204
  providerOptions?: Record<string, Record<string, any>> | undefined;
1875
2205
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1876
2206
  input?: any;
1877
2207
  providerExecuted?: boolean | undefined;
2208
+ toolMetadata?: Record<string, any> | undefined;
1878
2209
  type: "tool-call";
1879
2210
  toolCallId: string;
1880
2211
  toolName: string;
@@ -1908,8 +2239,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1908
2239
  type: "content";
1909
2240
  value: ({
1910
2241
  providerOptions?: Record<string, Record<string, any>> | undefined;
1911
- type: "text";
1912
2242
  text: string;
2243
+ type: "text";
2244
+ } | {
2245
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2246
+ filename?: string | undefined;
2247
+ type: "file";
2248
+ mediaType: string;
2249
+ data: {
2250
+ type: "reference";
2251
+ reference: Record<string, string>;
2252
+ } | {
2253
+ type: "url";
2254
+ url: string;
2255
+ } | {
2256
+ type: "data";
2257
+ data: string | ArrayBuffer;
2258
+ } | {
2259
+ text: string;
2260
+ type: "text";
2261
+ };
1913
2262
  } | {
1914
2263
  type: "media";
1915
2264
  mediaType: string;
@@ -1922,17 +2271,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1922
2271
  data: string;
1923
2272
  } | {
1924
2273
  providerOptions?: Record<string, Record<string, any>> | undefined;
2274
+ mediaType?: string | undefined;
1925
2275
  type: "file-url";
1926
2276
  url: string;
1927
2277
  } | {
1928
2278
  providerOptions?: Record<string, Record<string, any>> | undefined;
1929
2279
  type: "file-id";
1930
2280
  fileId: string | Record<string, string>;
2281
+ } | {
2282
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2283
+ type: "file-reference";
2284
+ providerReference: Record<string, string>;
1931
2285
  } | {
1932
2286
  providerOptions?: Record<string, Record<string, any>> | undefined;
1933
2287
  type: "image-data";
1934
2288
  mediaType: string;
1935
2289
  data: string;
2290
+ } | {
2291
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2292
+ type: "image-file-reference";
2293
+ providerReference: Record<string, string>;
1936
2294
  } | {
1937
2295
  providerOptions?: Record<string, Record<string, any>> | undefined;
1938
2296
  type: "image-url";
@@ -1949,8 +2307,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1949
2307
  result?: any;
1950
2308
  isError?: boolean | undefined;
1951
2309
  experimental_content?: ({
1952
- type: "text";
1953
2310
  text: string;
2311
+ type: "text";
1954
2312
  } | {
1955
2313
  mimeType?: string | undefined;
1956
2314
  type: "image";
@@ -1979,6 +2337,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1979
2337
  } | {
1980
2338
  providerOptions?: Record<string, Record<string, any>> | undefined;
1981
2339
  providerMetadata?: Record<string, Record<string, any>> | undefined;
2340
+ signature?: string | undefined;
2341
+ isAutomatic?: boolean | undefined;
1982
2342
  type: "tool-approval-request";
1983
2343
  toolCallId: string;
1984
2344
  approvalId: string;
@@ -2015,8 +2375,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
2015
2375
  type: "content";
2016
2376
  value: ({
2017
2377
  providerOptions?: Record<string, Record<string, any>> | undefined;
2018
- type: "text";
2019
2378
  text: string;
2379
+ type: "text";
2380
+ } | {
2381
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2382
+ filename?: string | undefined;
2383
+ type: "file";
2384
+ mediaType: string;
2385
+ data: {
2386
+ type: "reference";
2387
+ reference: Record<string, string>;
2388
+ } | {
2389
+ type: "url";
2390
+ url: string;
2391
+ } | {
2392
+ type: "data";
2393
+ data: string | ArrayBuffer;
2394
+ } | {
2395
+ text: string;
2396
+ type: "text";
2397
+ };
2020
2398
  } | {
2021
2399
  type: "media";
2022
2400
  mediaType: string;
@@ -2029,17 +2407,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
2029
2407
  data: string;
2030
2408
  } | {
2031
2409
  providerOptions?: Record<string, Record<string, any>> | undefined;
2410
+ mediaType?: string | undefined;
2032
2411
  type: "file-url";
2033
2412
  url: string;
2034
2413
  } | {
2035
2414
  providerOptions?: Record<string, Record<string, any>> | undefined;
2036
2415
  type: "file-id";
2037
2416
  fileId: string | Record<string, string>;
2417
+ } | {
2418
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2419
+ type: "file-reference";
2420
+ providerReference: Record<string, string>;
2038
2421
  } | {
2039
2422
  providerOptions?: Record<string, Record<string, any>> | undefined;
2040
2423
  type: "image-data";
2041
2424
  mediaType: string;
2042
2425
  data: string;
2426
+ } | {
2427
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2428
+ type: "image-file-reference";
2429
+ providerReference: Record<string, string>;
2043
2430
  } | {
2044
2431
  providerOptions?: Record<string, Record<string, any>> | undefined;
2045
2432
  type: "image-url";
@@ -2056,8 +2443,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
2056
2443
  result?: any;
2057
2444
  isError?: boolean | undefined;
2058
2445
  experimental_content?: ({
2059
- type: "text";
2060
2446
  text: string;
2447
+ type: "text";
2061
2448
  } | {
2062
2449
  mimeType?: string | undefined;
2063
2450
  type: "image";