@convex-dev/agent 0.6.4 → 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 (225) 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/messages.d.ts +1252 -201
  11. package/dist/component/messages.d.ts.map +1 -1
  12. package/dist/component/messages.js +49 -23
  13. package/dist/component/messages.js.map +1 -1
  14. package/dist/component/schema.d.ts +2593 -332
  15. package/dist/component/schema.d.ts.map +1 -1
  16. package/dist/component/streams.d.ts +7 -1
  17. package/dist/component/streams.d.ts.map +1 -1
  18. package/dist/component/streams.js +24 -30
  19. package/dist/component/streams.js.map +1 -1
  20. package/dist/component/threads.d.ts.map +1 -1
  21. package/dist/component/threads.js +1 -2
  22. package/dist/component/threads.js.map +1 -1
  23. package/dist/react/index.d.ts +5 -5
  24. package/dist/react/index.d.ts.map +1 -1
  25. package/dist/react/index.js +5 -5
  26. package/dist/react/index.js.map +1 -1
  27. package/dist/shared.d.ts +19 -7
  28. package/dist/shared.d.ts.map +1 -1
  29. package/dist/shared.js +4 -4
  30. package/dist/shared.js.map +1 -1
  31. package/dist/streaming/materializePersistedUIMessageChunks.d.ts +16 -0
  32. package/dist/streaming/materializePersistedUIMessageChunks.d.ts.map +1 -0
  33. package/dist/streaming/materializePersistedUIMessageChunks.js +302 -0
  34. package/dist/streaming/materializePersistedUIMessageChunks.js.map +1 -0
  35. package/dist/streaming/persistedUIMessageChunks.d.ts +106 -0
  36. package/dist/streaming/persistedUIMessageChunks.d.ts.map +1 -0
  37. package/dist/streaming/persistedUIMessageChunks.js +475 -0
  38. package/dist/streaming/persistedUIMessageChunks.js.map +1 -0
  39. package/dist/validators.d.ts +10026 -1055
  40. package/dist/validators.d.ts.map +1 -1
  41. package/dist/validators.js +71 -9
  42. package/dist/validators.js.map +1 -1
  43. package/dist/{UIMessages.d.ts → vercel/UIMessages.d.ts} +1 -1
  44. package/dist/vercel/UIMessages.d.ts.map +1 -0
  45. package/dist/{UIMessages.js → vercel/UIMessages.js} +63 -1
  46. package/dist/vercel/UIMessages.js.map +1 -0
  47. package/dist/{client → vercel/client}/createTool.d.ts +23 -16
  48. package/dist/vercel/client/createTool.d.ts.map +1 -0
  49. package/dist/{client → vercel/client}/createTool.js +2 -0
  50. package/dist/vercel/client/createTool.js.map +1 -0
  51. package/dist/{client → vercel/client}/definePlaygroundAPI.d.ts +533 -79
  52. package/dist/{client → vercel/client}/definePlaygroundAPI.d.ts.map +1 -1
  53. package/dist/{client → vercel/client}/definePlaygroundAPI.js +8 -7
  54. package/dist/vercel/client/definePlaygroundAPI.js.map +1 -0
  55. package/dist/{client → vercel/client}/files.d.ts +2 -2
  56. package/dist/vercel/client/files.d.ts.map +1 -0
  57. package/dist/vercel/client/files.js.map +1 -0
  58. package/dist/vercel/client/messages.d.ts +542 -0
  59. package/dist/vercel/client/messages.d.ts.map +1 -0
  60. package/dist/vercel/client/messages.js +66 -0
  61. package/dist/vercel/client/messages.js.map +1 -0
  62. package/dist/{client → vercel/client}/mockModel.d.ts +17 -17
  63. package/dist/vercel/client/mockModel.d.ts.map +1 -0
  64. package/dist/{client → vercel/client}/mockModel.js +12 -13
  65. package/dist/vercel/client/mockModel.js.map +1 -0
  66. package/dist/{client → vercel/client}/saveInputMessages.d.ts +2 -2
  67. package/dist/vercel/client/saveInputMessages.d.ts.map +1 -0
  68. package/dist/vercel/client/saveInputMessages.js.map +1 -0
  69. package/dist/{client → vercel/client}/search.d.ts +119 -22
  70. package/dist/vercel/client/search.d.ts.map +1 -0
  71. package/dist/{client → vercel/client}/search.js +2 -2
  72. package/dist/vercel/client/search.js.map +1 -0
  73. package/dist/{client → vercel/client}/start.d.ts +26 -11
  74. package/dist/vercel/client/start.d.ts.map +1 -0
  75. package/dist/{client → vercel/client}/start.js +64 -22
  76. package/dist/vercel/client/start.js.map +1 -0
  77. package/dist/{client → vercel/client}/streamText.d.ts +13 -12
  78. package/dist/vercel/client/streamText.d.ts.map +1 -0
  79. package/dist/{client → vercel/client}/streamText.js +43 -9
  80. package/dist/vercel/client/streamText.js.map +1 -0
  81. package/dist/{client → vercel/client}/streaming.d.ts +1410 -183
  82. package/dist/vercel/client/streaming.d.ts.map +1 -0
  83. package/dist/{client → vercel/client}/streaming.js +120 -52
  84. package/dist/vercel/client/streaming.js.map +1 -0
  85. package/dist/vercel/client/types.d.ts +456 -0
  86. package/dist/vercel/client/types.d.ts.map +1 -0
  87. package/dist/vercel/client/types.js +3 -0
  88. package/dist/vercel/client/types.js.map +1 -0
  89. package/dist/{client → vercel/client}/utils.d.ts +3 -2
  90. package/dist/vercel/client/utils.d.ts.map +1 -0
  91. package/dist/{client → vercel/client}/utils.js +2 -2
  92. package/dist/vercel/client/utils.js.map +1 -0
  93. package/dist/{deltas.d.ts → vercel/deltas.d.ts} +3 -4
  94. package/dist/vercel/deltas.d.ts.map +1 -0
  95. package/dist/{deltas.js → vercel/deltas.js} +195 -99
  96. package/dist/vercel/deltas.js.map +1 -0
  97. package/dist/{client → vercel}/index.d.ts +482 -106
  98. package/dist/vercel/index.d.ts.map +1 -0
  99. package/dist/{client → vercel}/index.js +64 -46
  100. package/dist/vercel/index.js.map +1 -0
  101. package/dist/{mapping.d.ts → vercel/mapping.d.ts} +5 -19
  102. package/dist/vercel/mapping.d.ts.map +1 -0
  103. package/dist/{mapping.js → vercel/mapping.js} +411 -114
  104. package/dist/vercel/mapping.js.map +1 -0
  105. package/dist/{react → vercel/react}/optimisticallySendMessage.d.ts +2 -2
  106. package/dist/vercel/react/optimisticallySendMessage.d.ts.map +1 -0
  107. package/dist/vercel/react/optimisticallySendMessage.js.map +1 -0
  108. package/dist/{react → vercel/react}/types.d.ts +1 -1
  109. package/dist/vercel/react/types.d.ts.map +1 -0
  110. package/dist/{react → vercel/react}/types.js.map +1 -1
  111. package/dist/{react → vercel/react}/useDeltaStreams.d.ts +1 -1
  112. package/dist/vercel/react/useDeltaStreams.d.ts.map +1 -0
  113. package/dist/{react → vercel/react}/useDeltaStreams.js +1 -1
  114. package/dist/vercel/react/useDeltaStreams.js.map +1 -0
  115. package/dist/{react → vercel/react}/useStreamingUIMessages.d.ts +1 -1
  116. package/dist/vercel/react/useStreamingUIMessages.d.ts.map +1 -0
  117. package/dist/{react → vercel/react}/useStreamingUIMessages.js +7 -3
  118. package/dist/vercel/react/useStreamingUIMessages.js.map +1 -0
  119. package/dist/{react → vercel/react}/useThreadMessages.d.ts +1 -1
  120. package/dist/vercel/react/useThreadMessages.d.ts.map +1 -0
  121. package/dist/{react → vercel/react}/useThreadMessages.js +1 -1
  122. package/dist/vercel/react/useThreadMessages.js.map +1 -0
  123. package/dist/{react → vercel/react}/useUIMessages.d.ts +1 -1
  124. package/dist/vercel/react/useUIMessages.d.ts.map +1 -0
  125. package/dist/{react → vercel/react}/useUIMessages.js +1 -1
  126. package/dist/vercel/react/useUIMessages.js.map +1 -0
  127. package/package.json +29 -22
  128. package/src/client/messages.ts +5 -107
  129. package/src/client/types.ts +0 -608
  130. package/src/component/_generated/component.ts +1089 -48
  131. package/src/component/messages.test.ts +273 -1
  132. package/src/component/messages.ts +62 -32
  133. package/src/component/streams.ts +47 -47
  134. package/src/component/threads.ts +5 -2
  135. package/src/eslintConfig.test.ts +44 -0
  136. package/src/react/index.ts +8 -5
  137. package/src/shared.ts +26 -36
  138. package/src/streaming/materializePersistedUIMessageChunks.test.ts +513 -0
  139. package/src/streaming/materializePersistedUIMessageChunks.ts +398 -0
  140. package/src/streaming/persistedUIMessageChunks.test.ts +205 -0
  141. package/src/streaming/persistedUIMessageChunks.ts +658 -0
  142. package/src/validators.test.ts +4 -1
  143. package/src/validators.ts +89 -8
  144. package/src/{UIMessages.combineUIMessages.test.ts → vercel/UIMessages.combineUIMessages.test.ts} +4 -1
  145. package/src/{UIMessages.ts → vercel/UIMessages.ts} +95 -3
  146. package/src/{client → vercel/client}/approval.test.ts +23 -13
  147. package/src/{client → vercel/client}/createTool.ts +62 -22
  148. package/src/{client → vercel/client}/definePlaygroundAPI.ts +15 -16
  149. package/src/{client → vercel/client}/files.ts +2 -2
  150. package/src/{client → vercel/client}/index.test.ts +99 -31
  151. package/src/vercel/client/messages.ts +182 -0
  152. package/src/{client → vercel/client}/mockModel.ts +38 -39
  153. package/src/{client → vercel/client}/saveInputMessages.test.ts +1 -1
  154. package/src/{client → vercel/client}/saveInputMessages.ts +3 -3
  155. package/src/{client → vercel/client}/search.test.ts +3 -3
  156. package/src/{client → vercel/client}/search.ts +4 -4
  157. package/src/{client → vercel/client}/setup.test.ts +6 -3
  158. package/src/vercel/client/start.test.ts +14 -0
  159. package/src/{client → vercel/client}/start.ts +147 -36
  160. package/src/vercel/client/streamText.test.ts +223 -0
  161. package/src/{client → vercel/client}/streamText.ts +102 -31
  162. package/src/{client → vercel/client}/streaming.integration.test.ts +6 -3
  163. package/src/{client → vercel/client}/streaming.test.ts +178 -4
  164. package/src/{client → vercel/client}/streaming.ts +114 -52
  165. package/src/vercel/client/types.test.ts +13 -0
  166. package/src/vercel/client/types.ts +679 -0
  167. package/src/{client → vercel/client}/utils.ts +13 -7
  168. package/src/{deltas.test.ts → vercel/deltas.test.ts} +384 -93
  169. package/src/{deltas.ts → vercel/deltas.ts} +218 -115
  170. package/src/{fromUIMessages.test.ts → vercel/fromUIMessages.test.ts} +17 -1
  171. package/src/{client → vercel}/index.ts +167 -84
  172. package/src/{mapping.test.ts → vercel/mapping.test.ts} +377 -92
  173. package/src/{mapping.ts → vercel/mapping.ts} +501 -137
  174. package/src/{react → vercel/react}/optimisticallySendMessage.ts +2 -2
  175. package/src/{react → vercel/react}/types.ts +1 -1
  176. package/src/{react → vercel/react}/useDeltaStreams.ts +6 -2
  177. package/src/{react → vercel/react}/useStreamingUIMessages.ts +7 -3
  178. package/src/{react → vercel/react}/useThreadMessages.ts +2 -2
  179. package/src/{react → vercel/react}/useUIMessages.ts +2 -2
  180. package/src/{toUIMessages.test.ts → vercel/toUIMessages.test.ts} +49 -2
  181. package/dist/UIMessages.d.ts.map +0 -1
  182. package/dist/UIMessages.js.map +0 -1
  183. package/dist/client/createTool.d.ts.map +0 -1
  184. package/dist/client/createTool.js.map +0 -1
  185. package/dist/client/definePlaygroundAPI.js.map +0 -1
  186. package/dist/client/files.d.ts.map +0 -1
  187. package/dist/client/files.js.map +0 -1
  188. package/dist/client/index.d.ts.map +0 -1
  189. package/dist/client/index.js.map +0 -1
  190. package/dist/client/mockModel.d.ts.map +0 -1
  191. package/dist/client/mockModel.js.map +0 -1
  192. package/dist/client/saveInputMessages.d.ts.map +0 -1
  193. package/dist/client/saveInputMessages.js.map +0 -1
  194. package/dist/client/search.d.ts.map +0 -1
  195. package/dist/client/search.js.map +0 -1
  196. package/dist/client/start.d.ts.map +0 -1
  197. package/dist/client/start.js.map +0 -1
  198. package/dist/client/streamText.d.ts.map +0 -1
  199. package/dist/client/streamText.js.map +0 -1
  200. package/dist/client/streaming.d.ts.map +0 -1
  201. package/dist/client/streaming.js.map +0 -1
  202. package/dist/client/utils.d.ts.map +0 -1
  203. package/dist/client/utils.js.map +0 -1
  204. package/dist/deltas.d.ts.map +0 -1
  205. package/dist/deltas.js.map +0 -1
  206. package/dist/mapping.d.ts.map +0 -1
  207. package/dist/mapping.js.map +0 -1
  208. package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
  209. package/dist/react/optimisticallySendMessage.js.map +0 -1
  210. package/dist/react/types.d.ts.map +0 -1
  211. package/dist/react/useDeltaStreams.d.ts.map +0 -1
  212. package/dist/react/useDeltaStreams.js.map +0 -1
  213. package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
  214. package/dist/react/useStreamingUIMessages.js.map +0 -1
  215. package/dist/react/useThreadMessages.d.ts.map +0 -1
  216. package/dist/react/useThreadMessages.js.map +0 -1
  217. package/dist/react/useUIMessages.d.ts.map +0 -1
  218. package/dist/react/useUIMessages.js.map +0 -1
  219. package/src/client/streamText.test.ts +0 -102
  220. /package/dist/{client → vercel/client}/files.js +0 -0
  221. /package/dist/{client → vercel/client}/saveInputMessages.js +0 -0
  222. /package/dist/{react → vercel/react}/optimisticallySendMessage.js +0 -0
  223. /package/dist/{react → vercel/react}/types.js +0 -0
  224. /package/src/{UIMessages.test.ts → vercel/UIMessages.test.ts} +0 -0
  225. /package/src/{react → vercel/react}/useUIMessages.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
  }>;
@@ -870,8 +977,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
870
977
  private findApprovalContext;
871
978
  /**
872
979
  * Explicitly save a "step" created by the AI SDK. For multi-step generation
873
- * loops, pass `previousStep` so we save only the new response messages
874
- * see the arg JSDoc for why.
980
+ * loops, each SDK 7 step already owns its response messages.
875
981
  * @param ctx The ctx argument to a mutation or action.
876
982
  * @param args The Step generated by the AI SDK.
877
983
  */
@@ -886,14 +992,7 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
886
992
  * The step to save, possibly including multiple tool calls.
887
993
  */
888
994
  step: StepResult<TOOLS>;
889
- /**
890
- * The previous step in the same generation loop, if any. Pass it so we
891
- * can compute how many of `step.response.messages` are already saved.
892
- * Omit for the first step. AI SDK v6's `step.response.messages` is
893
- * cumulative across steps; without this, multi-step callers duplicate
894
- * every prior message on every save — the exact failure mode this fix
895
- * addresses, just at the public-API layer.
896
- */
995
+ /** @deprecated SDK 7 response messages are step-local. */
897
996
  previousStep?: StepResult<TOOLS>;
898
997
  /**
899
998
  * The model used to generate the step.
@@ -1107,25 +1206,36 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1107
1206
  * Defaults to the {@link Agent["options"].stopWhen} option.
1108
1207
  */
1109
1208
  stopWhen?: StopCondition<AgentTools> | Array<StopCondition<AgentTools>>;
1110
- } & 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;
1111
1219
  userId?: string | undefined;
1112
1220
  threadId?: string | undefined;
1113
1221
  providerOptions?: Record<string, Record<string, any>> | undefined;
1114
- system?: string | undefined;
1115
1222
  messages?: ({
1116
1223
  providerOptions?: Record<string, Record<string, any>> | undefined;
1117
1224
  role: "user";
1118
1225
  content: string | ({
1119
1226
  providerOptions?: Record<string, Record<string, any>> | undefined;
1120
1227
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1121
- type: "text";
1122
1228
  text: string;
1229
+ type: "text";
1123
1230
  } | {
1124
1231
  providerOptions?: Record<string, Record<string, any>> | undefined;
1125
1232
  mediaType?: string | undefined;
1126
1233
  mimeType?: string | undefined;
1127
1234
  type: "image";
1128
- image: string | ArrayBuffer;
1235
+ image: string | ArrayBuffer | {
1236
+ type: "reference";
1237
+ reference: Record<string, string>;
1238
+ };
1129
1239
  } | {
1130
1240
  providerOptions?: Record<string, Record<string, any>> | undefined;
1131
1241
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1133,7 +1243,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1133
1243
  mimeType?: string | undefined;
1134
1244
  filename?: string | undefined;
1135
1245
  type: "file";
1136
- data: string | ArrayBuffer;
1246
+ data: string | ArrayBuffer | {
1247
+ type: "reference";
1248
+ reference: Record<string, string>;
1249
+ };
1137
1250
  })[];
1138
1251
  } | {
1139
1252
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -1141,8 +1254,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1141
1254
  content: string | ({
1142
1255
  providerOptions?: Record<string, Record<string, any>> | undefined;
1143
1256
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1144
- type: "text";
1145
1257
  text: string;
1258
+ type: "text";
1146
1259
  } | {
1147
1260
  providerOptions?: Record<string, Record<string, any>> | undefined;
1148
1261
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1150,32 +1263,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1150
1263
  mimeType?: string | undefined;
1151
1264
  filename?: string | undefined;
1152
1265
  type: "file";
1153
- data: string | ArrayBuffer;
1266
+ data: string | ArrayBuffer | {
1267
+ type: "reference";
1268
+ reference: Record<string, string>;
1269
+ };
1154
1270
  } | {
1155
1271
  providerOptions?: Record<string, Record<string, any>> | undefined;
1156
1272
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1157
1273
  signature?: string | undefined;
1158
- type: "reasoning";
1159
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;
1160
1288
  } | {
1161
1289
  providerOptions?: Record<string, Record<string, any>> | undefined;
1162
1290
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1163
1291
  type: "redacted-reasoning";
1164
1292
  data: string;
1165
1293
  } | {
1294
+ title?: string | undefined;
1166
1295
  providerOptions?: Record<string, Record<string, any>> | undefined;
1167
1296
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1168
1297
  args?: any;
1169
1298
  providerExecuted?: boolean | undefined;
1299
+ toolMetadata?: Record<string, any> | undefined;
1170
1300
  type: "tool-call";
1171
1301
  toolCallId: string;
1172
1302
  toolName: string;
1173
1303
  input: any;
1174
1304
  } | {
1305
+ title?: string | undefined;
1175
1306
  providerOptions?: Record<string, Record<string, any>> | undefined;
1176
1307
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1177
1308
  input?: any;
1178
1309
  providerExecuted?: boolean | undefined;
1310
+ toolMetadata?: Record<string, any> | undefined;
1179
1311
  type: "tool-call";
1180
1312
  toolCallId: string;
1181
1313
  toolName: string;
@@ -1209,8 +1341,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1209
1341
  type: "content";
1210
1342
  value: ({
1211
1343
  providerOptions?: Record<string, Record<string, any>> | undefined;
1212
- type: "text";
1213
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
+ };
1214
1364
  } | {
1215
1365
  type: "media";
1216
1366
  mediaType: string;
@@ -1223,17 +1373,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1223
1373
  data: string;
1224
1374
  } | {
1225
1375
  providerOptions?: Record<string, Record<string, any>> | undefined;
1376
+ mediaType?: string | undefined;
1226
1377
  type: "file-url";
1227
1378
  url: string;
1228
1379
  } | {
1229
1380
  providerOptions?: Record<string, Record<string, any>> | undefined;
1230
1381
  type: "file-id";
1231
1382
  fileId: string | Record<string, string>;
1383
+ } | {
1384
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1385
+ type: "file-reference";
1386
+ providerReference: Record<string, string>;
1232
1387
  } | {
1233
1388
  providerOptions?: Record<string, Record<string, any>> | undefined;
1234
1389
  type: "image-data";
1235
1390
  mediaType: string;
1236
1391
  data: string;
1392
+ } | {
1393
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1394
+ type: "image-file-reference";
1395
+ providerReference: Record<string, string>;
1237
1396
  } | {
1238
1397
  providerOptions?: Record<string, Record<string, any>> | undefined;
1239
1398
  type: "image-url";
@@ -1250,8 +1409,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1250
1409
  result?: any;
1251
1410
  isError?: boolean | undefined;
1252
1411
  experimental_content?: ({
1253
- type: "text";
1254
1412
  text: string;
1413
+ type: "text";
1255
1414
  } | {
1256
1415
  mimeType?: string | undefined;
1257
1416
  type: "image";
@@ -1280,6 +1439,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1280
1439
  } | {
1281
1440
  providerOptions?: Record<string, Record<string, any>> | undefined;
1282
1441
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1442
+ signature?: string | undefined;
1443
+ isAutomatic?: boolean | undefined;
1283
1444
  type: "tool-approval-request";
1284
1445
  toolCallId: string;
1285
1446
  approvalId: string;
@@ -1316,8 +1477,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1316
1477
  type: "content";
1317
1478
  value: ({
1318
1479
  providerOptions?: Record<string, Record<string, any>> | undefined;
1319
- type: "text";
1320
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
+ };
1321
1500
  } | {
1322
1501
  type: "media";
1323
1502
  mediaType: string;
@@ -1330,17 +1509,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1330
1509
  data: string;
1331
1510
  } | {
1332
1511
  providerOptions?: Record<string, Record<string, any>> | undefined;
1512
+ mediaType?: string | undefined;
1333
1513
  type: "file-url";
1334
1514
  url: string;
1335
1515
  } | {
1336
1516
  providerOptions?: Record<string, Record<string, any>> | undefined;
1337
1517
  type: "file-id";
1338
1518
  fileId: string | Record<string, string>;
1519
+ } | {
1520
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1521
+ type: "file-reference";
1522
+ providerReference: Record<string, string>;
1339
1523
  } | {
1340
1524
  providerOptions?: Record<string, Record<string, any>> | undefined;
1341
1525
  type: "image-data";
1342
1526
  mediaType: string;
1343
1527
  data: string;
1528
+ } | {
1529
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1530
+ type: "image-file-reference";
1531
+ providerReference: Record<string, string>;
1344
1532
  } | {
1345
1533
  providerOptions?: Record<string, Record<string, any>> | undefined;
1346
1534
  type: "image-url";
@@ -1357,8 +1545,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1357
1545
  result?: any;
1358
1546
  isError?: boolean | undefined;
1359
1547
  experimental_content?: ({
1360
- type: "text";
1361
1548
  text: string;
1549
+ type: "text";
1362
1550
  } | {
1363
1551
  mimeType?: string | undefined;
1364
1552
  type: "image";
@@ -1420,12 +1608,13 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1420
1608
  seed?: number | undefined;
1421
1609
  maxRetries?: number | undefined;
1422
1610
  } | undefined;
1611
+ allowSystemInMessages?: boolean | undefined;
1423
1612
  }, Promise<{
1424
1613
  text: string;
1425
1614
  promptMessageId: string | undefined;
1426
1615
  order: number | undefined;
1427
1616
  finishReason: import("ai").FinishReason;
1428
- warnings: import("@ai-sdk/provider").SharedV3Warning[] | undefined;
1617
+ warnings: import("@ai-sdk/provider").SharedV4Warning[] | undefined;
1429
1618
  savedMessageIds: string[];
1430
1619
  }>>;
1431
1620
  /**
@@ -1436,24 +1625,35 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1436
1625
  * and stopWhen.
1437
1626
  */
1438
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;
1439
1637
  userId?: string | undefined;
1440
1638
  threadId?: string | undefined;
1441
1639
  providerOptions?: Record<string, Record<string, any>> | undefined;
1442
- system?: string | undefined;
1443
1640
  messages?: ({
1444
1641
  providerOptions?: Record<string, Record<string, any>> | undefined;
1445
1642
  role: "user";
1446
1643
  content: string | ({
1447
1644
  providerOptions?: Record<string, Record<string, any>> | undefined;
1448
1645
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1449
- type: "text";
1450
1646
  text: string;
1647
+ type: "text";
1451
1648
  } | {
1452
1649
  providerOptions?: Record<string, Record<string, any>> | undefined;
1453
1650
  mediaType?: string | undefined;
1454
1651
  mimeType?: string | undefined;
1455
1652
  type: "image";
1456
- image: string | ArrayBuffer;
1653
+ image: string | ArrayBuffer | {
1654
+ type: "reference";
1655
+ reference: Record<string, string>;
1656
+ };
1457
1657
  } | {
1458
1658
  providerOptions?: Record<string, Record<string, any>> | undefined;
1459
1659
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1461,7 +1661,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1461
1661
  mimeType?: string | undefined;
1462
1662
  filename?: string | undefined;
1463
1663
  type: "file";
1464
- data: string | ArrayBuffer;
1664
+ data: string | ArrayBuffer | {
1665
+ type: "reference";
1666
+ reference: Record<string, string>;
1667
+ };
1465
1668
  })[];
1466
1669
  } | {
1467
1670
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -1469,8 +1672,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1469
1672
  content: string | ({
1470
1673
  providerOptions?: Record<string, Record<string, any>> | undefined;
1471
1674
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1472
- type: "text";
1473
1675
  text: string;
1676
+ type: "text";
1474
1677
  } | {
1475
1678
  providerOptions?: Record<string, Record<string, any>> | undefined;
1476
1679
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1478,32 +1681,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1478
1681
  mimeType?: string | undefined;
1479
1682
  filename?: string | undefined;
1480
1683
  type: "file";
1481
- data: string | ArrayBuffer;
1684
+ data: string | ArrayBuffer | {
1685
+ type: "reference";
1686
+ reference: Record<string, string>;
1687
+ };
1482
1688
  } | {
1483
1689
  providerOptions?: Record<string, Record<string, any>> | undefined;
1484
1690
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1485
1691
  signature?: string | undefined;
1486
- type: "reasoning";
1487
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;
1488
1706
  } | {
1489
1707
  providerOptions?: Record<string, Record<string, any>> | undefined;
1490
1708
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1491
1709
  type: "redacted-reasoning";
1492
1710
  data: string;
1493
1711
  } | {
1712
+ title?: string | undefined;
1494
1713
  providerOptions?: Record<string, Record<string, any>> | undefined;
1495
1714
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1496
1715
  args?: any;
1497
1716
  providerExecuted?: boolean | undefined;
1717
+ toolMetadata?: Record<string, any> | undefined;
1498
1718
  type: "tool-call";
1499
1719
  toolCallId: string;
1500
1720
  toolName: string;
1501
1721
  input: any;
1502
1722
  } | {
1723
+ title?: string | undefined;
1503
1724
  providerOptions?: Record<string, Record<string, any>> | undefined;
1504
1725
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1505
1726
  input?: any;
1506
1727
  providerExecuted?: boolean | undefined;
1728
+ toolMetadata?: Record<string, any> | undefined;
1507
1729
  type: "tool-call";
1508
1730
  toolCallId: string;
1509
1731
  toolName: string;
@@ -1537,8 +1759,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1537
1759
  type: "content";
1538
1760
  value: ({
1539
1761
  providerOptions?: Record<string, Record<string, any>> | undefined;
1540
- type: "text";
1541
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
+ };
1542
1782
  } | {
1543
1783
  type: "media";
1544
1784
  mediaType: string;
@@ -1551,17 +1791,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1551
1791
  data: string;
1552
1792
  } | {
1553
1793
  providerOptions?: Record<string, Record<string, any>> | undefined;
1794
+ mediaType?: string | undefined;
1554
1795
  type: "file-url";
1555
1796
  url: string;
1556
1797
  } | {
1557
1798
  providerOptions?: Record<string, Record<string, any>> | undefined;
1558
1799
  type: "file-id";
1559
1800
  fileId: string | Record<string, string>;
1801
+ } | {
1802
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1803
+ type: "file-reference";
1804
+ providerReference: Record<string, string>;
1560
1805
  } | {
1561
1806
  providerOptions?: Record<string, Record<string, any>> | undefined;
1562
1807
  type: "image-data";
1563
1808
  mediaType: string;
1564
1809
  data: string;
1810
+ } | {
1811
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1812
+ type: "image-file-reference";
1813
+ providerReference: Record<string, string>;
1565
1814
  } | {
1566
1815
  providerOptions?: Record<string, Record<string, any>> | undefined;
1567
1816
  type: "image-url";
@@ -1578,8 +1827,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1578
1827
  result?: any;
1579
1828
  isError?: boolean | undefined;
1580
1829
  experimental_content?: ({
1581
- type: "text";
1582
1830
  text: string;
1831
+ type: "text";
1583
1832
  } | {
1584
1833
  mimeType?: string | undefined;
1585
1834
  type: "image";
@@ -1608,6 +1857,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1608
1857
  } | {
1609
1858
  providerOptions?: Record<string, Record<string, any>> | undefined;
1610
1859
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1860
+ signature?: string | undefined;
1861
+ isAutomatic?: boolean | undefined;
1611
1862
  type: "tool-approval-request";
1612
1863
  toolCallId: string;
1613
1864
  approvalId: string;
@@ -1644,8 +1895,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1644
1895
  type: "content";
1645
1896
  value: ({
1646
1897
  providerOptions?: Record<string, Record<string, any>> | undefined;
1647
- type: "text";
1648
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
+ };
1649
1918
  } | {
1650
1919
  type: "media";
1651
1920
  mediaType: string;
@@ -1658,17 +1927,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1658
1927
  data: string;
1659
1928
  } | {
1660
1929
  providerOptions?: Record<string, Record<string, any>> | undefined;
1930
+ mediaType?: string | undefined;
1661
1931
  type: "file-url";
1662
1932
  url: string;
1663
1933
  } | {
1664
1934
  providerOptions?: Record<string, Record<string, any>> | undefined;
1665
1935
  type: "file-id";
1666
1936
  fileId: string | Record<string, string>;
1937
+ } | {
1938
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1939
+ type: "file-reference";
1940
+ providerReference: Record<string, string>;
1667
1941
  } | {
1668
1942
  providerOptions?: Record<string, Record<string, any>> | undefined;
1669
1943
  type: "image-data";
1670
1944
  mediaType: string;
1671
1945
  data: string;
1946
+ } | {
1947
+ providerOptions?: Record<string, Record<string, any>> | undefined;
1948
+ type: "image-file-reference";
1949
+ providerReference: Record<string, string>;
1672
1950
  } | {
1673
1951
  providerOptions?: Record<string, Record<string, any>> | undefined;
1674
1952
  type: "image-url";
@@ -1685,8 +1963,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1685
1963
  result?: any;
1686
1964
  isError?: boolean | undefined;
1687
1965
  experimental_content?: ({
1688
- type: "text";
1689
1966
  text: string;
1967
+ type: "text";
1690
1968
  } | {
1691
1969
  mimeType?: string | undefined;
1692
1970
  type: "image";
@@ -1741,12 +2019,13 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1741
2019
  seed?: number | undefined;
1742
2020
  maxRetries?: number | undefined;
1743
2021
  } | undefined;
2022
+ allowSystemInMessages?: boolean | undefined;
1744
2023
  }, Promise<{
1745
2024
  object: T;
1746
2025
  promptMessageId: string | undefined;
1747
2026
  order: number | undefined;
1748
2027
  finishReason: import("ai").FinishReason;
1749
- warnings: import("@ai-sdk/provider").SharedV3Warning[] | undefined;
2028
+ warnings: import("@ai-sdk/provider").SharedV4Warning[] | undefined;
1750
2029
  savedMessageIds: string[];
1751
2030
  }>>;
1752
2031
  /**
@@ -1762,20 +2041,24 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1762
2041
  failPendingSteps?: boolean | undefined;
1763
2042
  threadId: string;
1764
2043
  messages: {
2044
+ text?: string | undefined;
2045
+ reasoning?: string | undefined;
1765
2046
  status?: "pending" | "success" | "failed" | undefined;
1766
2047
  fileIds?: string[] | undefined;
1767
2048
  error?: string | undefined;
1768
2049
  model?: string | undefined;
1769
2050
  provider?: string | undefined;
1770
- text?: string | undefined;
1771
2051
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1772
- reasoning?: string | undefined;
1773
2052
  usage?: {
2053
+ promptTokens?: number | undefined;
2054
+ completionTokens?: number | undefined;
2055
+ totalTokens?: number | undefined;
1774
2056
  reasoningTokens?: number | undefined;
1775
2057
  cachedInputTokens?: number | undefined;
1776
- promptTokens: number;
1777
- completionTokens: number;
1778
- totalTokens: number;
2058
+ nonCachedInputTokens?: number | undefined;
2059
+ cacheWriteInputTokens?: number | undefined;
2060
+ textOutputTokens?: number | undefined;
2061
+ raw?: Record<string, any> | undefined;
1779
2062
  } | undefined;
1780
2063
  sources?: ({
1781
2064
  title?: string | undefined;
@@ -1796,13 +2079,25 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1796
2079
  sourceType: "document";
1797
2080
  })[] | undefined;
1798
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
+ } | {
1799
2094
  details?: string | undefined;
1800
2095
  type: "unsupported-setting";
1801
2096
  setting: string;
1802
2097
  } | {
1803
2098
  details?: string | undefined;
1804
- type: "unsupported-tool";
1805
2099
  tool: any;
2100
+ type: "unsupported-tool";
1806
2101
  } | {
1807
2102
  type: "other";
1808
2103
  message: string;
@@ -1812,12 +2107,12 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1812
2107
  providerOptions?: Record<string, Record<string, any>> | undefined;
1813
2108
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1814
2109
  signature?: string | undefined;
1815
- type: "reasoning";
1816
2110
  text: string;
2111
+ type: "reasoning";
1817
2112
  } | {
1818
2113
  signature?: string | undefined;
1819
- type: "text";
1820
2114
  text: string;
2115
+ type: "text";
1821
2116
  } | {
1822
2117
  type: "redacted";
1823
2118
  data: string;
@@ -1828,14 +2123,17 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1828
2123
  content: string | ({
1829
2124
  providerOptions?: Record<string, Record<string, any>> | undefined;
1830
2125
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1831
- type: "text";
1832
2126
  text: string;
2127
+ type: "text";
1833
2128
  } | {
1834
2129
  providerOptions?: Record<string, Record<string, any>> | undefined;
1835
2130
  mediaType?: string | undefined;
1836
2131
  mimeType?: string | undefined;
1837
2132
  type: "image";
1838
- image: string | ArrayBuffer;
2133
+ image: string | ArrayBuffer | {
2134
+ type: "reference";
2135
+ reference: Record<string, string>;
2136
+ };
1839
2137
  } | {
1840
2138
  providerOptions?: Record<string, Record<string, any>> | undefined;
1841
2139
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1843,7 +2141,10 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1843
2141
  mimeType?: string | undefined;
1844
2142
  filename?: string | undefined;
1845
2143
  type: "file";
1846
- data: string | ArrayBuffer;
2144
+ data: string | ArrayBuffer | {
2145
+ type: "reference";
2146
+ reference: Record<string, string>;
2147
+ };
1847
2148
  })[];
1848
2149
  } | {
1849
2150
  providerOptions?: Record<string, Record<string, any>> | undefined;
@@ -1851,8 +2152,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1851
2152
  content: string | ({
1852
2153
  providerOptions?: Record<string, Record<string, any>> | undefined;
1853
2154
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1854
- type: "text";
1855
2155
  text: string;
2156
+ type: "text";
1856
2157
  } | {
1857
2158
  providerOptions?: Record<string, Record<string, any>> | undefined;
1858
2159
  providerMetadata?: Record<string, Record<string, any>> | undefined;
@@ -1860,32 +2161,51 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1860
2161
  mimeType?: string | undefined;
1861
2162
  filename?: string | undefined;
1862
2163
  type: "file";
1863
- data: string | ArrayBuffer;
2164
+ data: string | ArrayBuffer | {
2165
+ type: "reference";
2166
+ reference: Record<string, string>;
2167
+ };
1864
2168
  } | {
1865
2169
  providerOptions?: Record<string, Record<string, any>> | undefined;
1866
2170
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1867
2171
  signature?: string | undefined;
1868
- type: "reasoning";
1869
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;
1870
2186
  } | {
1871
2187
  providerOptions?: Record<string, Record<string, any>> | undefined;
1872
2188
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1873
2189
  type: "redacted-reasoning";
1874
2190
  data: string;
1875
2191
  } | {
2192
+ title?: string | undefined;
1876
2193
  providerOptions?: Record<string, Record<string, any>> | undefined;
1877
2194
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1878
2195
  args?: any;
1879
2196
  providerExecuted?: boolean | undefined;
2197
+ toolMetadata?: Record<string, any> | undefined;
1880
2198
  type: "tool-call";
1881
2199
  toolCallId: string;
1882
2200
  toolName: string;
1883
2201
  input: any;
1884
2202
  } | {
2203
+ title?: string | undefined;
1885
2204
  providerOptions?: Record<string, Record<string, any>> | undefined;
1886
2205
  providerMetadata?: Record<string, Record<string, any>> | undefined;
1887
2206
  input?: any;
1888
2207
  providerExecuted?: boolean | undefined;
2208
+ toolMetadata?: Record<string, any> | undefined;
1889
2209
  type: "tool-call";
1890
2210
  toolCallId: string;
1891
2211
  toolName: string;
@@ -1919,8 +2239,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1919
2239
  type: "content";
1920
2240
  value: ({
1921
2241
  providerOptions?: Record<string, Record<string, any>> | undefined;
1922
- type: "text";
1923
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
+ };
1924
2262
  } | {
1925
2263
  type: "media";
1926
2264
  mediaType: string;
@@ -1933,17 +2271,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1933
2271
  data: string;
1934
2272
  } | {
1935
2273
  providerOptions?: Record<string, Record<string, any>> | undefined;
2274
+ mediaType?: string | undefined;
1936
2275
  type: "file-url";
1937
2276
  url: string;
1938
2277
  } | {
1939
2278
  providerOptions?: Record<string, Record<string, any>> | undefined;
1940
2279
  type: "file-id";
1941
2280
  fileId: string | Record<string, string>;
2281
+ } | {
2282
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2283
+ type: "file-reference";
2284
+ providerReference: Record<string, string>;
1942
2285
  } | {
1943
2286
  providerOptions?: Record<string, Record<string, any>> | undefined;
1944
2287
  type: "image-data";
1945
2288
  mediaType: string;
1946
2289
  data: string;
2290
+ } | {
2291
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2292
+ type: "image-file-reference";
2293
+ providerReference: Record<string, string>;
1947
2294
  } | {
1948
2295
  providerOptions?: Record<string, Record<string, any>> | undefined;
1949
2296
  type: "image-url";
@@ -1960,8 +2307,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1960
2307
  result?: any;
1961
2308
  isError?: boolean | undefined;
1962
2309
  experimental_content?: ({
1963
- type: "text";
1964
2310
  text: string;
2311
+ type: "text";
1965
2312
  } | {
1966
2313
  mimeType?: string | undefined;
1967
2314
  type: "image";
@@ -1990,6 +2337,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
1990
2337
  } | {
1991
2338
  providerOptions?: Record<string, Record<string, any>> | undefined;
1992
2339
  providerMetadata?: Record<string, Record<string, any>> | undefined;
2340
+ signature?: string | undefined;
2341
+ isAutomatic?: boolean | undefined;
1993
2342
  type: "tool-approval-request";
1994
2343
  toolCallId: string;
1995
2344
  approvalId: string;
@@ -2026,8 +2375,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
2026
2375
  type: "content";
2027
2376
  value: ({
2028
2377
  providerOptions?: Record<string, Record<string, any>> | undefined;
2029
- type: "text";
2030
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
+ };
2031
2398
  } | {
2032
2399
  type: "media";
2033
2400
  mediaType: string;
@@ -2040,17 +2407,26 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
2040
2407
  data: string;
2041
2408
  } | {
2042
2409
  providerOptions?: Record<string, Record<string, any>> | undefined;
2410
+ mediaType?: string | undefined;
2043
2411
  type: "file-url";
2044
2412
  url: string;
2045
2413
  } | {
2046
2414
  providerOptions?: Record<string, Record<string, any>> | undefined;
2047
2415
  type: "file-id";
2048
2416
  fileId: string | Record<string, string>;
2417
+ } | {
2418
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2419
+ type: "file-reference";
2420
+ providerReference: Record<string, string>;
2049
2421
  } | {
2050
2422
  providerOptions?: Record<string, Record<string, any>> | undefined;
2051
2423
  type: "image-data";
2052
2424
  mediaType: string;
2053
2425
  data: string;
2426
+ } | {
2427
+ providerOptions?: Record<string, Record<string, any>> | undefined;
2428
+ type: "image-file-reference";
2429
+ providerReference: Record<string, string>;
2054
2430
  } | {
2055
2431
  providerOptions?: Record<string, Record<string, any>> | undefined;
2056
2432
  type: "image-url";
@@ -2067,8 +2443,8 @@ CustomCtx extends object = object, AgentTools extends ToolSet = any> {
2067
2443
  result?: any;
2068
2444
  isError?: boolean | undefined;
2069
2445
  experimental_content?: ({
2070
- type: "text";
2071
2446
  text: string;
2447
+ type: "text";
2072
2448
  } | {
2073
2449
  mimeType?: string | undefined;
2074
2450
  type: "image";