@convex-dev/agent 0.0.15-alpha.2 → 0.0.16-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 (84) hide show
  1. package/README.md +93 -29
  2. package/dist/commonjs/client/index.d.ts +768 -71
  3. package/dist/commonjs/client/index.d.ts.map +1 -1
  4. package/dist/commonjs/client/index.js +81 -42
  5. package/dist/commonjs/client/index.js.map +1 -1
  6. package/dist/commonjs/client/playground.d.ts +474 -0
  7. package/dist/commonjs/client/playground.d.ts.map +1 -0
  8. package/dist/commonjs/client/playground.js +178 -0
  9. package/dist/commonjs/client/playground.js.map +1 -0
  10. package/dist/commonjs/component/apiKeys.d.ts +11 -0
  11. package/dist/commonjs/component/apiKeys.d.ts.map +1 -0
  12. package/dist/commonjs/component/apiKeys.js +69 -0
  13. package/dist/commonjs/component/apiKeys.js.map +1 -0
  14. package/dist/commonjs/component/files.d.ts +31 -0
  15. package/dist/commonjs/component/files.d.ts.map +1 -0
  16. package/dist/commonjs/component/files.js +61 -0
  17. package/dist/commonjs/component/files.js.map +1 -0
  18. package/dist/commonjs/component/messages.d.ts +40 -109
  19. package/dist/commonjs/component/messages.d.ts.map +1 -1
  20. package/dist/commonjs/component/messages.js +44 -260
  21. package/dist/commonjs/component/messages.js.map +1 -1
  22. package/dist/commonjs/component/schema.d.ts +54 -10
  23. package/dist/commonjs/component/schema.d.ts.map +1 -1
  24. package/dist/commonjs/component/schema.js +7 -2
  25. package/dist/commonjs/component/schema.js.map +1 -1
  26. package/dist/commonjs/component/threads.d.ts +95 -0
  27. package/dist/commonjs/component/threads.d.ts.map +1 -0
  28. package/dist/commonjs/component/threads.js +151 -0
  29. package/dist/commonjs/component/threads.js.map +1 -0
  30. package/dist/commonjs/component/users.d.ts +37 -0
  31. package/dist/commonjs/component/users.d.ts.map +1 -0
  32. package/dist/commonjs/component/users.js +118 -0
  33. package/dist/commonjs/component/users.js.map +1 -0
  34. package/dist/commonjs/validators.d.ts +2 -6
  35. package/dist/commonjs/validators.d.ts.map +1 -1
  36. package/dist/commonjs/validators.js +0 -1
  37. package/dist/commonjs/validators.js.map +1 -1
  38. package/dist/esm/client/index.d.ts +768 -71
  39. package/dist/esm/client/index.d.ts.map +1 -1
  40. package/dist/esm/client/index.js +81 -42
  41. package/dist/esm/client/index.js.map +1 -1
  42. package/dist/esm/client/playground.d.ts +474 -0
  43. package/dist/esm/client/playground.d.ts.map +1 -0
  44. package/dist/esm/client/playground.js +178 -0
  45. package/dist/esm/client/playground.js.map +1 -0
  46. package/dist/esm/component/apiKeys.d.ts +11 -0
  47. package/dist/esm/component/apiKeys.d.ts.map +1 -0
  48. package/dist/esm/component/apiKeys.js +69 -0
  49. package/dist/esm/component/apiKeys.js.map +1 -0
  50. package/dist/esm/component/files.d.ts +31 -0
  51. package/dist/esm/component/files.d.ts.map +1 -0
  52. package/dist/esm/component/files.js +61 -0
  53. package/dist/esm/component/files.js.map +1 -0
  54. package/dist/esm/component/messages.d.ts +40 -109
  55. package/dist/esm/component/messages.d.ts.map +1 -1
  56. package/dist/esm/component/messages.js +44 -260
  57. package/dist/esm/component/messages.js.map +1 -1
  58. package/dist/esm/component/schema.d.ts +54 -10
  59. package/dist/esm/component/schema.d.ts.map +1 -1
  60. package/dist/esm/component/schema.js +7 -2
  61. package/dist/esm/component/schema.js.map +1 -1
  62. package/dist/esm/component/threads.d.ts +95 -0
  63. package/dist/esm/component/threads.d.ts.map +1 -0
  64. package/dist/esm/component/threads.js +151 -0
  65. package/dist/esm/component/threads.js.map +1 -0
  66. package/dist/esm/component/users.d.ts +37 -0
  67. package/dist/esm/component/users.d.ts.map +1 -0
  68. package/dist/esm/component/users.js +118 -0
  69. package/dist/esm/component/users.js.map +1 -0
  70. package/dist/esm/validators.d.ts +2 -6
  71. package/dist/esm/validators.d.ts.map +1 -1
  72. package/dist/esm/validators.js +0 -1
  73. package/dist/esm/validators.js.map +1 -1
  74. package/package.json +10 -2
  75. package/src/client/index.ts +150 -117
  76. package/src/client/playground.ts +231 -0
  77. package/src/component/_generated/api.d.ts +319 -107
  78. package/src/component/apiKeys.ts +74 -0
  79. package/src/component/files.ts +72 -0
  80. package/src/component/messages.ts +54 -308
  81. package/src/component/schema.ts +7 -2
  82. package/src/component/threads.ts +184 -0
  83. package/src/component/users.ts +145 -0
  84. package/src/validators.ts +0 -1
@@ -6,29 +6,748 @@ import { z } from "zod";
6
6
  import { Mounts } from "../component/_generated/api.js";
7
7
  import { type VectorDimension } from "../component/vector/tables.js";
8
8
  import { type AIMessageWithoutId } from "../mapping.js";
9
+ import { extractText, isTool } from "../shared.js";
9
10
  import { type CallSettings, MessageWithMetadata, type ProviderMetadata, type ProviderOptions, type SearchOptions, type Usage } from "../validators.js";
10
- import type { OpaqueIds, RunActionCtx, RunMutationCtx, RunQueryCtx, UseApi } from "./types.js";
11
- import schema from "../component/schema.js";
11
+ import type { RunActionCtx, RunMutationCtx, RunQueryCtx, UseApi } from "./types.js";
12
+ export { extractText, isTool };
12
13
  export type { Usage, ProviderMetadata };
13
14
  export { vUsage, vProviderMetadata, vUserMessage, vAssistantMessage, vToolMessage, vSystemMessage, vMessage, } from "../validators.js";
14
- export type ThreadDoc = OpaqueIds<{
15
- _id: string;
15
+ export declare const vThreadDoc: import("convex/values").VObject<{
16
+ userId?: string | undefined;
17
+ title?: string | undefined;
18
+ summary?: string | undefined;
19
+ status: "active" | "archived";
16
20
  _creationTime: number;
17
- } & Infer<typeof schema.tables.threads.validator>>;
18
- export type MessageDoc = OpaqueIds<{
19
21
  _id: string;
22
+ }, {
23
+ _id: import("convex/values").VString<string, "required">;
24
+ _creationTime: import("convex/values").VFloat64<number, "required">;
25
+ userId: import("convex/values").VString<string | undefined, "optional">;
26
+ title: import("convex/values").VString<string | undefined, "optional">;
27
+ summary: import("convex/values").VString<string | undefined, "optional">;
28
+ status: import("convex/values").VUnion<"active" | "archived", [import("convex/values").VLiteral<"active", "required">, import("convex/values").VLiteral<"archived", "required">], "required", never>;
29
+ }, "required", "status" | "userId" | "title" | "summary" | "_creationTime" | "_id">;
30
+ export type ThreadDoc = Infer<typeof vThreadDoc>;
31
+ export declare const vMessageDoc: import("convex/values").VObject<{
32
+ id?: string | undefined;
33
+ userId?: string | undefined;
34
+ parentMessageId?: string | undefined;
35
+ stepId?: string | undefined;
36
+ agentName?: string | undefined;
37
+ message?: {
38
+ providerOptions?: Record<string, any> | undefined;
39
+ experimental_providerMetadata?: Record<string, any> | undefined;
40
+ role: "user";
41
+ content: string | ({
42
+ providerOptions?: Record<string, any> | undefined;
43
+ experimental_providerMetadata?: Record<string, any> | undefined;
44
+ type: "text";
45
+ text: string;
46
+ } | {
47
+ providerOptions?: Record<string, any> | undefined;
48
+ experimental_providerMetadata?: Record<string, any> | undefined;
49
+ mimeType?: string | undefined;
50
+ type: "image";
51
+ image: string | ArrayBuffer;
52
+ } | {
53
+ providerOptions?: Record<string, any> | undefined;
54
+ experimental_providerMetadata?: Record<string, any> | undefined;
55
+ type: "file";
56
+ mimeType: string;
57
+ data: string | ArrayBuffer;
58
+ })[];
59
+ } | {
60
+ providerOptions?: Record<string, any> | undefined;
61
+ experimental_providerMetadata?: Record<string, any> | undefined;
62
+ role: "assistant";
63
+ content: string | ({
64
+ providerOptions?: Record<string, any> | undefined;
65
+ experimental_providerMetadata?: Record<string, any> | undefined;
66
+ type: "text";
67
+ text: string;
68
+ } | {
69
+ providerOptions?: Record<string, any> | undefined;
70
+ experimental_providerMetadata?: Record<string, any> | undefined;
71
+ type: "file";
72
+ mimeType: string;
73
+ data: string | ArrayBuffer;
74
+ } | {
75
+ providerOptions?: Record<string, any> | undefined;
76
+ experimental_providerMetadata?: Record<string, any> | undefined;
77
+ type: "reasoning";
78
+ text: string;
79
+ } | {
80
+ providerOptions?: Record<string, any> | undefined;
81
+ experimental_providerMetadata?: Record<string, any> | undefined;
82
+ type: "redacted-reasoning";
83
+ data: string;
84
+ } | {
85
+ providerOptions?: Record<string, any> | undefined;
86
+ experimental_providerMetadata?: Record<string, any> | undefined;
87
+ type: "tool-call";
88
+ toolCallId: string;
89
+ toolName: string;
90
+ args: any;
91
+ })[];
92
+ } | {
93
+ providerOptions?: Record<string, any> | undefined;
94
+ experimental_providerMetadata?: Record<string, any> | undefined;
95
+ role: "tool";
96
+ content: {
97
+ providerOptions?: Record<string, any> | undefined;
98
+ experimental_providerMetadata?: Record<string, any> | undefined;
99
+ args?: any;
100
+ experimental_content?: ({
101
+ type: "text";
102
+ text: string;
103
+ } | {
104
+ mimeType?: string | undefined;
105
+ type: "image";
106
+ data: string;
107
+ })[] | undefined;
108
+ isError?: boolean | undefined;
109
+ type: "tool-result";
110
+ toolCallId: string;
111
+ toolName: string;
112
+ result: any;
113
+ }[];
114
+ } | {
115
+ providerOptions?: Record<string, any> | undefined;
116
+ experimental_providerMetadata?: Record<string, any> | undefined;
117
+ role: "system";
118
+ content: string;
119
+ } | undefined;
120
+ text?: string | undefined;
121
+ reasoning?: string | undefined;
122
+ error?: string | undefined;
123
+ model?: string | undefined;
124
+ provider?: string | undefined;
125
+ embeddingId?: string | undefined;
126
+ usage?: {
127
+ promptTokens: number;
128
+ completionTokens: number;
129
+ totalTokens: number;
130
+ } | undefined;
131
+ finishReason?: "length" | "error" | "stop" | "content-filter" | "tool-calls" | "other" | "unknown" | undefined;
132
+ providerMetadata?: Record<string, any> | undefined;
133
+ sources?: {
134
+ title?: string | undefined;
135
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
136
+ id: string;
137
+ sourceType: "url";
138
+ url: string;
139
+ }[] | undefined;
140
+ warnings?: ({
141
+ details?: string | undefined;
142
+ type: "unsupported-setting";
143
+ setting: string;
144
+ } | {
145
+ details?: string | undefined;
146
+ type: "unsupported-tool";
147
+ tool: any;
148
+ } | {
149
+ type: "other";
150
+ message: string;
151
+ })[] | undefined;
152
+ fileId?: string | undefined;
153
+ status: "pending" | "success" | "failed";
154
+ order: number;
20
155
  _creationTime: number;
21
- } & Infer<typeof schema.tables.messages.validator>>;
156
+ threadId: string;
157
+ tool: boolean;
158
+ stepOrder: number;
159
+ _id: string;
160
+ }, {
161
+ threadId: import("convex/values").VString<string, "required">;
162
+ parentMessageId: import("convex/values").VString<string | undefined, "optional">;
163
+ stepId: import("convex/values").VString<string | undefined, "optional">;
164
+ embeddingId: import("convex/values").VString<string | undefined, "optional">;
165
+ fileId: import("convex/values").VString<string | undefined, "optional">;
166
+ id: import("convex/values").VString<string | undefined, "optional">;
167
+ userId: import("convex/values").VString<string | undefined, "optional">;
168
+ agentName: import("convex/values").VString<string | undefined, "optional">;
169
+ message: import("convex/values").VUnion<{
170
+ providerOptions?: Record<string, any> | undefined;
171
+ experimental_providerMetadata?: Record<string, any> | undefined;
172
+ role: "user";
173
+ content: string | ({
174
+ providerOptions?: Record<string, any> | undefined;
175
+ experimental_providerMetadata?: Record<string, any> | undefined;
176
+ type: "text";
177
+ text: string;
178
+ } | {
179
+ providerOptions?: Record<string, any> | undefined;
180
+ experimental_providerMetadata?: Record<string, any> | undefined;
181
+ mimeType?: string | undefined;
182
+ type: "image";
183
+ image: string | ArrayBuffer;
184
+ } | {
185
+ providerOptions?: Record<string, any> | undefined;
186
+ experimental_providerMetadata?: Record<string, any> | undefined;
187
+ type: "file";
188
+ mimeType: string;
189
+ data: string | ArrayBuffer;
190
+ })[];
191
+ } | {
192
+ providerOptions?: Record<string, any> | undefined;
193
+ experimental_providerMetadata?: Record<string, any> | undefined;
194
+ role: "assistant";
195
+ content: string | ({
196
+ providerOptions?: Record<string, any> | undefined;
197
+ experimental_providerMetadata?: Record<string, any> | undefined;
198
+ type: "text";
199
+ text: string;
200
+ } | {
201
+ providerOptions?: Record<string, any> | undefined;
202
+ experimental_providerMetadata?: Record<string, any> | undefined;
203
+ type: "file";
204
+ mimeType: string;
205
+ data: string | ArrayBuffer;
206
+ } | {
207
+ providerOptions?: Record<string, any> | undefined;
208
+ experimental_providerMetadata?: Record<string, any> | undefined;
209
+ type: "reasoning";
210
+ text: string;
211
+ } | {
212
+ providerOptions?: Record<string, any> | undefined;
213
+ experimental_providerMetadata?: Record<string, any> | undefined;
214
+ type: "redacted-reasoning";
215
+ data: string;
216
+ } | {
217
+ providerOptions?: Record<string, any> | undefined;
218
+ experimental_providerMetadata?: Record<string, any> | undefined;
219
+ type: "tool-call";
220
+ toolCallId: string;
221
+ toolName: string;
222
+ args: any;
223
+ })[];
224
+ } | {
225
+ providerOptions?: Record<string, any> | undefined;
226
+ experimental_providerMetadata?: Record<string, any> | undefined;
227
+ role: "tool";
228
+ content: {
229
+ providerOptions?: Record<string, any> | undefined;
230
+ experimental_providerMetadata?: Record<string, any> | undefined;
231
+ args?: any;
232
+ experimental_content?: ({
233
+ type: "text";
234
+ text: string;
235
+ } | {
236
+ mimeType?: string | undefined;
237
+ type: "image";
238
+ data: string;
239
+ })[] | undefined;
240
+ isError?: boolean | undefined;
241
+ type: "tool-result";
242
+ toolCallId: string;
243
+ toolName: string;
244
+ result: any;
245
+ }[];
246
+ } | {
247
+ providerOptions?: Record<string, any> | undefined;
248
+ experimental_providerMetadata?: Record<string, any> | undefined;
249
+ role: "system";
250
+ content: string;
251
+ } | undefined, [import("convex/values").VObject<{
252
+ providerOptions?: Record<string, any> | undefined;
253
+ experimental_providerMetadata?: Record<string, any> | undefined;
254
+ role: "user";
255
+ content: string | ({
256
+ providerOptions?: Record<string, any> | undefined;
257
+ experimental_providerMetadata?: Record<string, any> | undefined;
258
+ type: "text";
259
+ text: string;
260
+ } | {
261
+ providerOptions?: Record<string, any> | undefined;
262
+ experimental_providerMetadata?: Record<string, any> | undefined;
263
+ mimeType?: string | undefined;
264
+ type: "image";
265
+ image: string | ArrayBuffer;
266
+ } | {
267
+ providerOptions?: Record<string, any> | undefined;
268
+ experimental_providerMetadata?: Record<string, any> | undefined;
269
+ type: "file";
270
+ mimeType: string;
271
+ data: string | ArrayBuffer;
272
+ })[];
273
+ }, {
274
+ role: import("convex/values").VLiteral<"user", "required">;
275
+ content: import("convex/values").VUnion<string | ({
276
+ providerOptions?: Record<string, any> | undefined;
277
+ experimental_providerMetadata?: Record<string, any> | undefined;
278
+ type: "text";
279
+ text: string;
280
+ } | {
281
+ providerOptions?: Record<string, any> | undefined;
282
+ experimental_providerMetadata?: Record<string, any> | undefined;
283
+ mimeType?: string | undefined;
284
+ type: "image";
285
+ image: string | ArrayBuffer;
286
+ } | {
287
+ providerOptions?: Record<string, any> | undefined;
288
+ experimental_providerMetadata?: Record<string, any> | undefined;
289
+ type: "file";
290
+ mimeType: string;
291
+ data: string | ArrayBuffer;
292
+ })[], [import("convex/values").VString<string, "required">, import("convex/values").VArray<({
293
+ providerOptions?: Record<string, any> | undefined;
294
+ experimental_providerMetadata?: Record<string, any> | undefined;
295
+ type: "text";
296
+ text: string;
297
+ } | {
298
+ providerOptions?: Record<string, any> | undefined;
299
+ experimental_providerMetadata?: Record<string, any> | undefined;
300
+ mimeType?: string | undefined;
301
+ type: "image";
302
+ image: string | ArrayBuffer;
303
+ } | {
304
+ providerOptions?: Record<string, any> | undefined;
305
+ experimental_providerMetadata?: Record<string, any> | undefined;
306
+ type: "file";
307
+ mimeType: string;
308
+ data: string | ArrayBuffer;
309
+ })[], import("convex/values").VUnion<{
310
+ providerOptions?: Record<string, any> | undefined;
311
+ experimental_providerMetadata?: Record<string, any> | undefined;
312
+ type: "text";
313
+ text: string;
314
+ } | {
315
+ providerOptions?: Record<string, any> | undefined;
316
+ experimental_providerMetadata?: Record<string, any> | undefined;
317
+ mimeType?: string | undefined;
318
+ type: "image";
319
+ image: string | ArrayBuffer;
320
+ } | {
321
+ providerOptions?: Record<string, any> | undefined;
322
+ experimental_providerMetadata?: Record<string, any> | undefined;
323
+ type: "file";
324
+ mimeType: string;
325
+ data: string | ArrayBuffer;
326
+ }, [import("convex/values").VObject<{
327
+ providerOptions?: Record<string, any> | undefined;
328
+ experimental_providerMetadata?: Record<string, any> | undefined;
329
+ type: "text";
330
+ text: string;
331
+ }, {
332
+ type: import("convex/values").VLiteral<"text", "required">;
333
+ text: import("convex/values").VString<string, "required">;
334
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
335
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
336
+ }, "required", "type" | "text" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}`>, import("convex/values").VObject<{
337
+ providerOptions?: Record<string, any> | undefined;
338
+ experimental_providerMetadata?: Record<string, any> | undefined;
339
+ mimeType?: string | undefined;
340
+ type: "image";
341
+ image: string | ArrayBuffer;
342
+ }, {
343
+ type: import("convex/values").VLiteral<"image", "required">;
344
+ image: import("convex/values").VUnion<string | ArrayBuffer, [import("convex/values").VString<string, "required">, import("convex/values").VBytes<ArrayBuffer, "required">], "required", never>;
345
+ mimeType: import("convex/values").VString<string | undefined, "optional">;
346
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
347
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
348
+ }, "required", "type" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "image" | "mimeType">, import("convex/values").VObject<{
349
+ providerOptions?: Record<string, any> | undefined;
350
+ experimental_providerMetadata?: Record<string, any> | undefined;
351
+ type: "file";
352
+ mimeType: string;
353
+ data: string | ArrayBuffer;
354
+ }, {
355
+ type: import("convex/values").VLiteral<"file", "required">;
356
+ data: import("convex/values").VUnion<string | ArrayBuffer, [import("convex/values").VString<string, "required">, import("convex/values").VBytes<ArrayBuffer, "required">], "required", never>;
357
+ mimeType: import("convex/values").VString<string, "required">;
358
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
359
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
360
+ }, "required", "type" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "mimeType" | "data">], "required", "type" | "text" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "image" | "mimeType" | "data">, "required">], "required", never>;
361
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
362
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
363
+ }, "required", "role" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "content">, import("convex/values").VObject<{
364
+ providerOptions?: Record<string, any> | undefined;
365
+ experimental_providerMetadata?: Record<string, any> | undefined;
366
+ role: "assistant";
367
+ content: string | ({
368
+ providerOptions?: Record<string, any> | undefined;
369
+ experimental_providerMetadata?: Record<string, any> | undefined;
370
+ type: "text";
371
+ text: string;
372
+ } | {
373
+ providerOptions?: Record<string, any> | undefined;
374
+ experimental_providerMetadata?: Record<string, any> | undefined;
375
+ type: "file";
376
+ mimeType: string;
377
+ data: string | ArrayBuffer;
378
+ } | {
379
+ providerOptions?: Record<string, any> | undefined;
380
+ experimental_providerMetadata?: Record<string, any> | undefined;
381
+ type: "reasoning";
382
+ text: string;
383
+ } | {
384
+ providerOptions?: Record<string, any> | undefined;
385
+ experimental_providerMetadata?: Record<string, any> | undefined;
386
+ type: "redacted-reasoning";
387
+ data: string;
388
+ } | {
389
+ providerOptions?: Record<string, any> | undefined;
390
+ experimental_providerMetadata?: Record<string, any> | undefined;
391
+ type: "tool-call";
392
+ toolCallId: string;
393
+ toolName: string;
394
+ args: any;
395
+ })[];
396
+ }, {
397
+ role: import("convex/values").VLiteral<"assistant", "required">;
398
+ content: import("convex/values").VUnion<string | ({
399
+ providerOptions?: Record<string, any> | undefined;
400
+ experimental_providerMetadata?: Record<string, any> | undefined;
401
+ type: "text";
402
+ text: string;
403
+ } | {
404
+ providerOptions?: Record<string, any> | undefined;
405
+ experimental_providerMetadata?: Record<string, any> | undefined;
406
+ type: "file";
407
+ mimeType: string;
408
+ data: string | ArrayBuffer;
409
+ } | {
410
+ providerOptions?: Record<string, any> | undefined;
411
+ experimental_providerMetadata?: Record<string, any> | undefined;
412
+ type: "reasoning";
413
+ text: string;
414
+ } | {
415
+ providerOptions?: Record<string, any> | undefined;
416
+ experimental_providerMetadata?: Record<string, any> | undefined;
417
+ type: "redacted-reasoning";
418
+ data: string;
419
+ } | {
420
+ providerOptions?: Record<string, any> | undefined;
421
+ experimental_providerMetadata?: Record<string, any> | undefined;
422
+ type: "tool-call";
423
+ toolCallId: string;
424
+ toolName: string;
425
+ args: any;
426
+ })[], [import("convex/values").VString<string, "required">, import("convex/values").VArray<({
427
+ providerOptions?: Record<string, any> | undefined;
428
+ experimental_providerMetadata?: Record<string, any> | undefined;
429
+ type: "text";
430
+ text: string;
431
+ } | {
432
+ providerOptions?: Record<string, any> | undefined;
433
+ experimental_providerMetadata?: Record<string, any> | undefined;
434
+ type: "file";
435
+ mimeType: string;
436
+ data: string | ArrayBuffer;
437
+ } | {
438
+ providerOptions?: Record<string, any> | undefined;
439
+ experimental_providerMetadata?: Record<string, any> | undefined;
440
+ type: "reasoning";
441
+ text: string;
442
+ } | {
443
+ providerOptions?: Record<string, any> | undefined;
444
+ experimental_providerMetadata?: Record<string, any> | undefined;
445
+ type: "redacted-reasoning";
446
+ data: string;
447
+ } | {
448
+ providerOptions?: Record<string, any> | undefined;
449
+ experimental_providerMetadata?: Record<string, any> | undefined;
450
+ type: "tool-call";
451
+ toolCallId: string;
452
+ toolName: string;
453
+ args: any;
454
+ })[], import("convex/values").VUnion<{
455
+ providerOptions?: Record<string, any> | undefined;
456
+ experimental_providerMetadata?: Record<string, any> | undefined;
457
+ type: "text";
458
+ text: string;
459
+ } | {
460
+ providerOptions?: Record<string, any> | undefined;
461
+ experimental_providerMetadata?: Record<string, any> | undefined;
462
+ type: "file";
463
+ mimeType: string;
464
+ data: string | ArrayBuffer;
465
+ } | {
466
+ providerOptions?: Record<string, any> | undefined;
467
+ experimental_providerMetadata?: Record<string, any> | undefined;
468
+ type: "reasoning";
469
+ text: string;
470
+ } | {
471
+ providerOptions?: Record<string, any> | undefined;
472
+ experimental_providerMetadata?: Record<string, any> | undefined;
473
+ type: "redacted-reasoning";
474
+ data: string;
475
+ } | {
476
+ providerOptions?: Record<string, any> | undefined;
477
+ experimental_providerMetadata?: Record<string, any> | undefined;
478
+ type: "tool-call";
479
+ toolCallId: string;
480
+ toolName: string;
481
+ args: any;
482
+ }, [import("convex/values").VObject<{
483
+ providerOptions?: Record<string, any> | undefined;
484
+ experimental_providerMetadata?: Record<string, any> | undefined;
485
+ type: "text";
486
+ text: string;
487
+ }, {
488
+ type: import("convex/values").VLiteral<"text", "required">;
489
+ text: import("convex/values").VString<string, "required">;
490
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
491
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
492
+ }, "required", "type" | "text" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}`>, import("convex/values").VObject<{
493
+ providerOptions?: Record<string, any> | undefined;
494
+ experimental_providerMetadata?: Record<string, any> | undefined;
495
+ type: "file";
496
+ mimeType: string;
497
+ data: string | ArrayBuffer;
498
+ }, {
499
+ type: import("convex/values").VLiteral<"file", "required">;
500
+ data: import("convex/values").VUnion<string | ArrayBuffer, [import("convex/values").VString<string, "required">, import("convex/values").VBytes<ArrayBuffer, "required">], "required", never>;
501
+ mimeType: import("convex/values").VString<string, "required">;
502
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
503
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
504
+ }, "required", "type" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "mimeType" | "data">, import("convex/values").VObject<{
505
+ providerOptions?: Record<string, any> | undefined;
506
+ experimental_providerMetadata?: Record<string, any> | undefined;
507
+ type: "reasoning";
508
+ text: string;
509
+ }, {
510
+ type: import("convex/values").VLiteral<"reasoning", "required">;
511
+ text: import("convex/values").VString<string, "required">;
512
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
513
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
514
+ }, "required", "type" | "text" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}`>, import("convex/values").VObject<{
515
+ providerOptions?: Record<string, any> | undefined;
516
+ experimental_providerMetadata?: Record<string, any> | undefined;
517
+ type: "redacted-reasoning";
518
+ data: string;
519
+ }, {
520
+ type: import("convex/values").VLiteral<"redacted-reasoning", "required">;
521
+ data: import("convex/values").VString<string, "required">;
522
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
523
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
524
+ }, "required", "type" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "data">, import("convex/values").VObject<{
525
+ providerOptions?: Record<string, any> | undefined;
526
+ experimental_providerMetadata?: Record<string, any> | undefined;
527
+ type: "tool-call";
528
+ toolCallId: string;
529
+ toolName: string;
530
+ args: any;
531
+ }, {
532
+ type: import("convex/values").VLiteral<"tool-call", "required">;
533
+ toolCallId: import("convex/values").VString<string, "required">;
534
+ toolName: import("convex/values").VString<string, "required">;
535
+ args: import("convex/values").VAny<any, "required", string>;
536
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
537
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
538
+ }, "required", "type" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "toolCallId" | "toolName" | "args" | `args.${string}`>], "required", "type" | "text" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "mimeType" | "data" | "toolCallId" | "toolName" | "args" | `args.${string}`>, "required">], "required", never>;
539
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
540
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
541
+ }, "required", "role" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "content">, import("convex/values").VObject<{
542
+ providerOptions?: Record<string, any> | undefined;
543
+ experimental_providerMetadata?: Record<string, any> | undefined;
544
+ role: "tool";
545
+ content: {
546
+ providerOptions?: Record<string, any> | undefined;
547
+ experimental_providerMetadata?: Record<string, any> | undefined;
548
+ args?: any;
549
+ experimental_content?: ({
550
+ type: "text";
551
+ text: string;
552
+ } | {
553
+ mimeType?: string | undefined;
554
+ type: "image";
555
+ data: string;
556
+ })[] | undefined;
557
+ isError?: boolean | undefined;
558
+ type: "tool-result";
559
+ toolCallId: string;
560
+ toolName: string;
561
+ result: any;
562
+ }[];
563
+ }, {
564
+ role: import("convex/values").VLiteral<"tool", "required">;
565
+ content: import("convex/values").VArray<{
566
+ providerOptions?: Record<string, any> | undefined;
567
+ experimental_providerMetadata?: Record<string, any> | undefined;
568
+ args?: any;
569
+ experimental_content?: ({
570
+ type: "text";
571
+ text: string;
572
+ } | {
573
+ mimeType?: string | undefined;
574
+ type: "image";
575
+ data: string;
576
+ })[] | undefined;
577
+ isError?: boolean | undefined;
578
+ type: "tool-result";
579
+ toolCallId: string;
580
+ toolName: string;
581
+ result: any;
582
+ }[], import("convex/values").VObject<{
583
+ providerOptions?: Record<string, any> | undefined;
584
+ experimental_providerMetadata?: Record<string, any> | undefined;
585
+ args?: any;
586
+ experimental_content?: ({
587
+ type: "text";
588
+ text: string;
589
+ } | {
590
+ mimeType?: string | undefined;
591
+ type: "image";
592
+ data: string;
593
+ })[] | undefined;
594
+ isError?: boolean | undefined;
595
+ type: "tool-result";
596
+ toolCallId: string;
597
+ toolName: string;
598
+ result: any;
599
+ }, {
600
+ type: import("convex/values").VLiteral<"tool-result", "required">;
601
+ toolCallId: import("convex/values").VString<string, "required">;
602
+ toolName: import("convex/values").VString<string, "required">;
603
+ result: import("convex/values").VAny<any, "required", string>;
604
+ args: import("convex/values").VAny<any, "optional", string>;
605
+ experimental_content: import("convex/values").VArray<({
606
+ type: "text";
607
+ text: string;
608
+ } | {
609
+ mimeType?: string | undefined;
610
+ type: "image";
611
+ data: string;
612
+ })[] | undefined, import("convex/values").VUnion<{
613
+ type: "text";
614
+ text: string;
615
+ } | {
616
+ mimeType?: string | undefined;
617
+ type: "image";
618
+ data: string;
619
+ }, [import("convex/values").VObject<{
620
+ type: "text";
621
+ text: string;
622
+ }, {
623
+ type: import("convex/values").VLiteral<"text", "required">;
624
+ text: import("convex/values").VString<string, "required">;
625
+ }, "required", "type" | "text">, import("convex/values").VObject<{
626
+ mimeType?: string | undefined;
627
+ type: "image";
628
+ data: string;
629
+ }, {
630
+ type: import("convex/values").VLiteral<"image", "required">;
631
+ data: import("convex/values").VString<string, "required">;
632
+ mimeType: import("convex/values").VString<string | undefined, "optional">;
633
+ }, "required", "type" | "mimeType" | "data">], "required", "type" | "text" | "mimeType" | "data">, "optional">;
634
+ isError: import("convex/values").VBoolean<boolean | undefined, "optional">;
635
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
636
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
637
+ }, "required", "type" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "toolCallId" | "toolName" | "args" | `args.${string}` | "result" | "experimental_content" | "isError" | `result.${string}`>, "required">;
638
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
639
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
640
+ }, "required", "role" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "content">, import("convex/values").VObject<{
641
+ providerOptions?: Record<string, any> | undefined;
642
+ experimental_providerMetadata?: Record<string, any> | undefined;
643
+ role: "system";
644
+ content: string;
645
+ }, {
646
+ role: import("convex/values").VLiteral<"system", "required">;
647
+ content: import("convex/values").VString<string, "required">;
648
+ providerOptions: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
649
+ experimental_providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
650
+ }, "required", "role" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "content">], "optional", "role" | "providerOptions" | "experimental_providerMetadata" | `providerOptions.${string}` | `experimental_providerMetadata.${string}` | "content">;
651
+ error: import("convex/values").VString<string | undefined, "optional">;
652
+ model: import("convex/values").VString<string | undefined, "optional">;
653
+ provider: import("convex/values").VString<string | undefined, "optional">;
654
+ text: import("convex/values").VString<string | undefined, "optional">;
655
+ tool: import("convex/values").VBoolean<boolean, "required">;
656
+ order: import("convex/values").VFloat64<number, "required">;
657
+ stepOrder: import("convex/values").VFloat64<number, "required">;
658
+ usage: import("convex/values").VObject<{
659
+ promptTokens: number;
660
+ completionTokens: number;
661
+ totalTokens: number;
662
+ } | undefined, {
663
+ promptTokens: import("convex/values").VFloat64<number, "required">;
664
+ completionTokens: import("convex/values").VFloat64<number, "required">;
665
+ totalTokens: import("convex/values").VFloat64<number, "required">;
666
+ }, "optional", "promptTokens" | "completionTokens" | "totalTokens">;
667
+ finishReason: import("convex/values").VUnion<"length" | "error" | "stop" | "content-filter" | "tool-calls" | "other" | "unknown" | undefined, [import("convex/values").VLiteral<"stop", "required">, import("convex/values").VLiteral<"length", "required">, import("convex/values").VLiteral<"content-filter", "required">, import("convex/values").VLiteral<"tool-calls", "required">, import("convex/values").VLiteral<"error", "required">, import("convex/values").VLiteral<"other", "required">, import("convex/values").VLiteral<"unknown", "required">], "optional", never>;
668
+ providerMetadata: import("convex/values").VRecord<Record<string, any> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "optional", string>;
669
+ sources: import("convex/values").VArray<{
670
+ title?: string | undefined;
671
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
672
+ id: string;
673
+ sourceType: "url";
674
+ url: string;
675
+ }[] | undefined, import("convex/values").VObject<{
676
+ title?: string | undefined;
677
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
678
+ id: string;
679
+ sourceType: "url";
680
+ url: string;
681
+ }, {
682
+ sourceType: import("convex/values").VLiteral<"url", "required">;
683
+ id: import("convex/values").VString<string, "required">;
684
+ url: import("convex/values").VString<string, "required">;
685
+ title: import("convex/values").VString<string | undefined, "optional">;
686
+ providerMetadata: import("convex/values").VRecord<Record<string, Record<string, any>> | undefined, import("convex/values").VString<string, "required">, import("convex/values").VRecord<Record<string, any>, import("convex/values").VString<string, "required">, import("convex/values").VAny<any, "required", string>, "required", string>, "optional", string>;
687
+ }, "required", "id" | "title" | "providerMetadata" | "sourceType" | "url" | `providerMetadata.${string}`>, "optional">;
688
+ reasoning: import("convex/values").VString<string | undefined, "optional">;
689
+ warnings: import("convex/values").VArray<({
690
+ details?: string | undefined;
691
+ type: "unsupported-setting";
692
+ setting: string;
693
+ } | {
694
+ details?: string | undefined;
695
+ type: "unsupported-tool";
696
+ tool: any;
697
+ } | {
698
+ type: "other";
699
+ message: string;
700
+ })[] | undefined, import("convex/values").VUnion<{
701
+ details?: string | undefined;
702
+ type: "unsupported-setting";
703
+ setting: string;
704
+ } | {
705
+ details?: string | undefined;
706
+ type: "unsupported-tool";
707
+ tool: any;
708
+ } | {
709
+ type: "other";
710
+ message: string;
711
+ }, [import("convex/values").VObject<{
712
+ details?: string | undefined;
713
+ type: "unsupported-setting";
714
+ setting: string;
715
+ }, {
716
+ type: import("convex/values").VLiteral<"unsupported-setting", "required">;
717
+ setting: import("convex/values").VString<string, "required">;
718
+ details: import("convex/values").VString<string | undefined, "optional">;
719
+ }, "required", "type" | "setting" | "details">, import("convex/values").VObject<{
720
+ details?: string | undefined;
721
+ type: "unsupported-tool";
722
+ tool: any;
723
+ }, {
724
+ type: import("convex/values").VLiteral<"unsupported-tool", "required">;
725
+ tool: import("convex/values").VAny<any, "required", string>;
726
+ details: import("convex/values").VString<string | undefined, "optional">;
727
+ }, "required", "type" | "tool" | "details" | `tool.${string}`>, import("convex/values").VObject<{
728
+ type: "other";
729
+ message: string;
730
+ }, {
731
+ type: import("convex/values").VLiteral<"other", "required">;
732
+ message: import("convex/values").VString<string, "required">;
733
+ }, "required", "type" | "message">], "required", "type" | "message" | "tool" | "setting" | "details" | `tool.${string}`>, "optional">;
734
+ status: import("convex/values").VUnion<"pending" | "success" | "failed", [import("convex/values").VLiteral<"pending", "required">, import("convex/values").VLiteral<"success", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>;
735
+ _id: import("convex/values").VString<string, "required">;
736
+ _creationTime: import("convex/values").VFloat64<number, "required">;
737
+ }, "required", "id" | "status" | "userId" | "order" | "_creationTime" | "threadId" | "parentMessageId" | "stepId" | "agentName" | "message" | "text" | "reasoning" | "tool" | "error" | "model" | "provider" | "embeddingId" | "stepOrder" | "usage" | "finishReason" | "providerMetadata" | "sources" | `providerMetadata.${string}` | "warnings" | "fileId" | "message.role" | "message.providerOptions" | "message.experimental_providerMetadata" | `message.providerOptions.${string}` | `message.experimental_providerMetadata.${string}` | "message.content" | "usage.promptTokens" | "usage.completionTokens" | "usage.totalTokens" | "_id">;
738
+ export type MessageDoc = Infer<typeof vMessageDoc>;
22
739
  /**
23
740
  * Options to configure what messages are fetched as context,
24
741
  * automatically with thread.generateText, or directly via search.
25
742
  */
26
743
  export type ContextOptions = {
744
+ /** @deprecated Use excludeToolMessages instead. */
745
+ includeToolCalls?: boolean;
27
746
  /**
28
747
  * Whether to include tool messages in the context.
29
748
  * By default, tool calls and results are not included.
30
749
  */
31
- includeToolCalls?: boolean;
750
+ excludeToolMessages?: boolean;
32
751
  /**
33
752
  * How many recent messages to include. These are added after the search
34
753
  * messages, and do not count against the search limit.
@@ -346,7 +1065,12 @@ export declare class Agent<AgentTools extends ToolSet> {
346
1065
  userId: string | undefined;
347
1066
  threadId: string | undefined;
348
1067
  messages: CoreMessage[];
349
- parentMessageId?: string;
1068
+ /**
1069
+ * If provided, it will search for messages before this message.
1070
+ * Note: if this is far in the past, the search results may be more
1071
+ * limited, as it's post-filtering the results.
1072
+ */
1073
+ beforeMessageId?: string;
350
1074
  contextOptions: ContextOptions | undefined;
351
1075
  }): Promise<CoreMessage[]>;
352
1076
  /**
@@ -381,13 +1105,8 @@ export declare class Agent<AgentTools extends ToolSet> {
381
1105
  */
382
1106
  pending?: boolean;
383
1107
  /**
384
- * The message that this is responding to.
385
- */
386
- parentMessageId?: string;
387
- /**
388
- * Whether to mark all pending messages in the thread as failed.
389
- * This is used to recover from a failure via a retry that wipes the slate clean.
390
- * Defaults to true.
1108
+ * If true, it will fail any pending steps.
1109
+ * Defaults to false.
391
1110
  */
392
1111
  failPendingSteps?: boolean;
393
1112
  }): Promise<{
@@ -405,7 +1124,7 @@ export declare class Agent<AgentTools extends ToolSet> {
405
1124
  /**
406
1125
  * The message this step is in response to.
407
1126
  */
408
- messageId: string;
1127
+ parentMessageId: string;
409
1128
  /**
410
1129
  * The step to save, possibly including multiple tool calls.
411
1130
  */
@@ -463,7 +1182,7 @@ export declare class Agent<AgentTools extends ToolSet> {
463
1182
  * The tools to use for this thread. Overrides any tools passed in the agent constructor.
464
1183
  */
465
1184
  tools?: ToolSet;
466
- }, args: TextArgs<AgentTools, TOOLS, OUTPUT, OUTPUT_PARTIAL>): Promise<GenerateTextResult<TOOLS extends undefined ? AgentTools : TOOLS, OUTPUT> & GenerationOutputMetadata>;
1185
+ }, args: TextArgs<AgentTools, TOOLS, OUTPUT, OUTPUT_PARTIAL>, options?: Options): Promise<GenerateTextResult<TOOLS extends undefined ? AgentTools : TOOLS, OUTPUT> & GenerationOutputMetadata>;
467
1186
  /**
468
1187
  * This behaves like {@link streamText} from the "ai" package except that
469
1188
  * it add context based on the userId and threadId and saves the input and
@@ -486,19 +1205,16 @@ export declare class Agent<AgentTools extends ToolSet> {
486
1205
  threadId?: string;
487
1206
  usageHandler?: UsageHandler;
488
1207
  tools?: ToolSet;
489
- }, args: StreamingTextArgs<AgentTools, TOOLS, OUTPUT, PARTIAL_OUTPUT>): Promise<StreamTextResult<TOOLS extends undefined ? AgentTools : TOOLS, PARTIAL_OUTPUT> & GenerationOutputMetadata>;
1208
+ }, args: StreamingTextArgs<AgentTools, TOOLS, OUTPUT, PARTIAL_OUTPUT>, options?: Options): Promise<StreamTextResult<TOOLS extends undefined ? AgentTools : TOOLS, PARTIAL_OUTPUT> & GenerationOutputMetadata>;
490
1209
  saveMessagesAndFetchContext<T extends {
491
1210
  id?: string;
492
1211
  prompt?: string;
493
1212
  messages?: CoreMessage[] | AIMessageWithoutId[];
494
1213
  system?: string;
495
- }>(ctx: RunActionCtx | RunMutationCtx, { id, userId, threadId, parentMessageId, system, ...args }: {
1214
+ }>(ctx: RunActionCtx | RunMutationCtx, args: T, { userId, threadId, contextOptions, storageOptions, }: {
496
1215
  userId: string | undefined;
497
1216
  threadId: string | undefined;
498
- parentMessageId?: string;
499
- contextOptions?: ContextOptions;
500
- storageOptions?: StorageOptions;
501
- } & T): Promise<{
1217
+ } & Options): Promise<{
502
1218
  args: T;
503
1219
  messageId: string | undefined;
504
1220
  }>;
@@ -518,7 +1234,7 @@ export declare class Agent<AgentTools extends ToolSet> {
518
1234
  userId?: string;
519
1235
  threadId?: string;
520
1236
  usageHandler?: UsageHandler;
521
- }, args: OurObjectArgs<T>): Promise<GenerateObjectResult<T> & GenerationOutputMetadata>;
1237
+ }, args: OurObjectArgs<T>, options?: Options): Promise<GenerateObjectResult<T> & GenerationOutputMetadata>;
522
1238
  /**
523
1239
  * This behaves like {@link streamObject} from the "ai" package except that
524
1240
  * it add context based on the userId and threadId and saves the input and
@@ -535,7 +1251,7 @@ export declare class Agent<AgentTools extends ToolSet> {
535
1251
  userId?: string;
536
1252
  threadId?: string;
537
1253
  usageHandler?: UsageHandler;
538
- }, args: OurStreamObjectArgs<T>): Promise<StreamObjectResult<DeepPartial<T>, T, never> & GenerationOutputMetadata>;
1254
+ }, args: OurStreamObjectArgs<T>, options?: Options): Promise<StreamObjectResult<DeepPartial<T>, T, never> & GenerationOutputMetadata>;
539
1255
  /**
540
1256
  * Manually save the result of a generateObject call to the thread.
541
1257
  * This happens automatically when using {@link generateObject} or {@link streamObject}
@@ -546,7 +1262,7 @@ export declare class Agent<AgentTools extends ToolSet> {
546
1262
  saveObject(ctx: RunMutationCtx, args: {
547
1263
  userId: string | undefined;
548
1264
  threadId: string;
549
- messageId: string;
1265
+ parentMessageId: string;
550
1266
  result: GenerateObjectResult<unknown>;
551
1267
  metadata?: Omit<MessageWithMetadata, "message">;
552
1268
  }): Promise<void>;
@@ -586,10 +1302,10 @@ export declare class Agent<AgentTools extends ToolSet> {
586
1302
  asTextAction(spec?: {
587
1303
  contextOptions?: ContextOptions;
588
1304
  maxSteps?: number;
1305
+ storageOptions?: StorageOptions;
589
1306
  }): import("convex/server").RegisteredAction<"internal", {
590
1307
  userId?: string | undefined;
591
1308
  threadId?: string | undefined;
592
- parentMessageId?: string | undefined;
593
1309
  messages?: ({
594
1310
  providerOptions?: Record<string, any> | undefined;
595
1311
  experimental_providerMetadata?: Record<string, any> | undefined;
@@ -720,10 +1436,12 @@ export declare class Agent<AgentTools extends ToolSet> {
720
1436
  */
721
1437
  asObjectAction<T>(spec: OurObjectArgs<T> & {
722
1438
  maxSteps?: number;
1439
+ }, options?: {
1440
+ contextOptions?: ContextOptions;
1441
+ storageOptions?: StorageOptions;
723
1442
  }): import("convex/server").RegisteredAction<"internal", {
724
1443
  userId?: string | undefined;
725
1444
  threadId?: string | undefined;
726
- parentMessageId?: string | undefined;
727
1445
  messages?: ({
728
1446
  providerOptions?: Record<string, any> | undefined;
729
1447
  experimental_providerMetadata?: Record<string, any> | undefined;
@@ -879,6 +1597,16 @@ export declare function createTool<PARAMETERS extends ToolParameters, RESULT>(t:
879
1597
  }): Tool<PARAMETERS, RESULT> & {
880
1598
  execute: (args: inferParameters<PARAMETERS>, options: ToolExecutionOptions) => PromiseLike<RESULT>;
881
1599
  };
1600
+ type Options = {
1601
+ /**
1602
+ * The context options to use for passing in message history to the LLM.
1603
+ */
1604
+ contextOptions?: ContextOptions;
1605
+ /**
1606
+ * The storage options to use for saving the input and output messages to the thread.
1607
+ */
1608
+ storageOptions?: StorageOptions;
1609
+ };
882
1610
  type TextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, OUTPUT_PARTIAL = never> = Omit<Parameters<typeof generateText<TOOLS extends undefined ? AgentTools : TOOLS, OUTPUT, OUTPUT_PARTIAL>>[0], "toolChoice" | "tools" | "model"> & {
883
1611
  /**
884
1612
  * The model to use for the tool calls. This will override the model specified
@@ -895,19 +1623,8 @@ type TextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet | undefined = un
895
1623
  * specified in the tools array. e.g. {toolName: "getWeather", type: "tool"}
896
1624
  */
897
1625
  toolChoice?: ToolChoice<TOOLS extends undefined ? AgentTools : TOOLS>;
898
- /**
899
- * The parent message id to use for the tool calls.
900
- */
901
- parentMessageId?: string;
902
- /**
903
- * The context options to use for passing in message history to the LLM.
904
- */
905
- contextOptions?: ContextOptions;
906
- /**
907
- * The storage options to use for saving the input and output messages to the thread.
908
- */
909
- storageOptions?: StorageOptions;
910
- } & ContextOptions & StorageOptions;
1626
+ } & ContextOptions & // DEPRECATED: pass them in the subsequent parameter instead
1627
+ StorageOptions;
911
1628
  type StreamingTextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, OUTPUT_PARTIAL = never> = Omit<Parameters<typeof streamText<TOOLS extends undefined ? AgentTools : TOOLS, OUTPUT, OUTPUT_PARTIAL>>[0], "toolChoice" | "tools" | "model"> & {
912
1629
  /**
913
1630
  * The model to use for the tool calls. This will override the model specified
@@ -924,18 +1641,6 @@ type StreamingTextArgs<AgentTools extends ToolSet, TOOLS extends ToolSet | undef
924
1641
  * specified in the tools array. e.g. {toolName: "getWeather", type: "tool"}
925
1642
  */
926
1643
  toolChoice?: ToolChoice<TOOLS extends undefined ? AgentTools : TOOLS>;
927
- /**
928
- * The parent message id to use for the tool calls.
929
- */
930
- parentMessageId?: string;
931
- /**
932
- * The context options to use for passing in message history to the LLM.
933
- */
934
- contextOptions?: ContextOptions;
935
- /**
936
- * The storage options to use for saving the input and output messages to the thread.
937
- */
938
- storageOptions?: StorageOptions;
939
1644
  } & ContextOptions & StorageOptions;
940
1645
  type BaseGenerateObjectOptions = StorageOptions & ContextOptions & CallSettings & {
941
1646
  /**
@@ -963,18 +1668,6 @@ type BaseGenerateObjectOptions = StorageOptions & ContextOptions & CallSettings
963
1668
  experimental_telemetry?: TelemetrySettings;
964
1669
  providerOptions?: ProviderOptions;
965
1670
  experimental_providerMetadata?: ProviderMetadata;
966
- /**
967
- * The parent message id to use for the object generation.
968
- */
969
- parentMessageId?: string;
970
- /**
971
- * The context options to use for passing in message history to the LLM.
972
- */
973
- contextOptions?: ContextOptions;
974
- /**
975
- * The storage options to use for saving the input and output messages to the thread.
976
- */
977
- storageOptions?: StorageOptions;
978
1671
  };
979
1672
  type GenerateObjectObjectOptions<T extends Record<string, unknown>> = BaseGenerateObjectOptions & {
980
1673
  output?: "object";
@@ -1006,6 +1699,10 @@ type OurStreamObjectArgs<T> = StreamObjectArgs<T> & Pick<Parameters<typeof strea
1006
1699
  type ThreadOutputMetadata = GenerationOutputMetadata & {
1007
1700
  messageId: string;
1008
1701
  };
1702
+ /**
1703
+ * The interface for a thread returned from {@link createThread} or {@link continueThread}.
1704
+ * This is contextual to a thread and/or user.
1705
+ */
1009
1706
  interface Thread<DefaultTools extends ToolSet> {
1010
1707
  /**
1011
1708
  * The target threadId, from the startThread or continueThread initializers.
@@ -1021,7 +1718,7 @@ interface Thread<DefaultTools extends ToolSet> {
1021
1718
  * for the {@link ContextOptions} and {@link StorageOptions}.
1022
1719
  * @returns The result of the generateText function.
1023
1720
  */
1024
- generateText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, OUTPUT_PARTIAL = never>(args: TextArgs<TOOLS extends undefined ? DefaultTools : TOOLS, TOOLS, OUTPUT, OUTPUT_PARTIAL>): Promise<GenerateTextResult<TOOLS extends undefined ? DefaultTools : TOOLS, OUTPUT> & ThreadOutputMetadata>;
1721
+ generateText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, OUTPUT_PARTIAL = never>(args: TextArgs<TOOLS extends undefined ? DefaultTools : TOOLS, TOOLS, OUTPUT, OUTPUT_PARTIAL>, options?: Options): Promise<GenerateTextResult<TOOLS extends undefined ? DefaultTools : TOOLS, OUTPUT> & ThreadOutputMetadata>;
1025
1722
  /**
1026
1723
  * This behaves like {@link streamText} from the "ai" package except that
1027
1724
  * it add context based on the userId and threadId and saves the input and
@@ -1032,7 +1729,7 @@ interface Thread<DefaultTools extends ToolSet> {
1032
1729
  * for the {@link ContextOptions} and {@link StorageOptions}.
1033
1730
  * @returns The result of the streamText function.
1034
1731
  */
1035
- streamText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, PARTIAL_OUTPUT = never>(args: StreamingTextArgs<TOOLS extends undefined ? DefaultTools : TOOLS, TOOLS, OUTPUT, PARTIAL_OUTPUT>): Promise<StreamTextResult<TOOLS extends undefined ? DefaultTools : TOOLS, PARTIAL_OUTPUT> & ThreadOutputMetadata>;
1732
+ streamText<TOOLS extends ToolSet | undefined = undefined, OUTPUT = never, PARTIAL_OUTPUT = never>(args: StreamingTextArgs<TOOLS extends undefined ? DefaultTools : TOOLS, TOOLS, OUTPUT, PARTIAL_OUTPUT>, options?: Options): Promise<StreamTextResult<TOOLS extends undefined ? DefaultTools : TOOLS, PARTIAL_OUTPUT> & ThreadOutputMetadata>;
1036
1733
  /**
1037
1734
  * This behaves like {@link generateObject} from the "ai" package except that
1038
1735
  * it add context based on the userId and threadId and saves the input and
@@ -1043,7 +1740,7 @@ interface Thread<DefaultTools extends ToolSet> {
1043
1740
  * for the {@link ContextOptions} and {@link StorageOptions}.
1044
1741
  * @returns The result of the generateObject function.
1045
1742
  */
1046
- generateObject<T>(args: OurObjectArgs<T>): Promise<GenerateObjectResult<T> & ThreadOutputMetadata>;
1743
+ generateObject<T>(args: OurObjectArgs<T>, options?: Options): Promise<GenerateObjectResult<T> & ThreadOutputMetadata>;
1047
1744
  /**
1048
1745
  * This behaves like {@link generateObject} from the "ai" package except that
1049
1746
  * it add context based on the userId and threadId and saves the input and
@@ -1054,7 +1751,7 @@ interface Thread<DefaultTools extends ToolSet> {
1054
1751
  * for the {@link ContextOptions} and {@link StorageOptions}.
1055
1752
  * @returns The result of the generateObject function.
1056
1753
  */
1057
- generateObject(args: GenerateObjectNoSchemaOptions): Promise<GenerateObjectResult<JSONValue> & ThreadOutputMetadata>;
1754
+ generateObject(args: GenerateObjectNoSchemaOptions, options?: Options): Promise<GenerateObjectResult<JSONValue> & ThreadOutputMetadata>;
1058
1755
  /**
1059
1756
  * This behaves like {@link streamObject} from the "ai" package except that
1060
1757
  * it add context based on the userId and threadId and saves the input and
@@ -1065,6 +1762,6 @@ interface Thread<DefaultTools extends ToolSet> {
1065
1762
  * for the {@link ContextOptions} and {@link StorageOptions}.
1066
1763
  * @returns The result of the streamObject function.
1067
1764
  */
1068
- streamObject<T>(args: OurStreamObjectArgs<T>): Promise<StreamObjectResult<DeepPartial<T>, T, never> & ThreadOutputMetadata>;
1765
+ streamObject<T>(args: OurStreamObjectArgs<T>, options?: Options): Promise<StreamObjectResult<DeepPartial<T>, T, never> & ThreadOutputMetadata>;
1069
1766
  }
1070
1767
  //# sourceMappingURL=index.d.ts.map