@convex-dev/agent 0.2.3-alpha.0 → 0.2.4-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 (59) hide show
  1. package/dist/client/definePlaygroundAPI.d.ts +59 -5
  2. package/dist/client/definePlaygroundAPI.d.ts.map +1 -1
  3. package/dist/client/files.d.ts +1 -1
  4. package/dist/client/files.d.ts.map +1 -1
  5. package/dist/client/files.js.map +1 -1
  6. package/dist/client/index.d.ts +46 -4
  7. package/dist/client/index.d.ts.map +1 -1
  8. package/dist/client/index.js +14 -13
  9. package/dist/client/index.js.map +1 -1
  10. package/dist/client/messages.d.ts +14 -2
  11. package/dist/client/messages.d.ts.map +1 -1
  12. package/dist/client/search.d.ts +14 -2
  13. package/dist/client/search.d.ts.map +1 -1
  14. package/dist/client/search.js +2 -4
  15. package/dist/client/search.js.map +1 -1
  16. package/dist/client/streaming.d.ts +132 -23
  17. package/dist/client/streaming.d.ts.map +1 -1
  18. package/dist/component/_generated/api.d.ts +189 -0
  19. package/dist/component/messages.d.ts +149 -20
  20. package/dist/component/messages.d.ts.map +1 -1
  21. package/dist/component/messages.js +4 -4
  22. package/dist/component/messages.js.map +1 -1
  23. package/dist/component/schema.d.ts +342 -63
  24. package/dist/component/schema.d.ts.map +1 -1
  25. package/dist/mapping.d.ts +4 -4
  26. package/dist/mapping.d.ts.map +1 -1
  27. package/dist/mapping.js +67 -36
  28. package/dist/mapping.js.map +1 -1
  29. package/dist/react/deltas.d.ts +3 -3
  30. package/dist/react/deltas.d.ts.map +1 -1
  31. package/dist/react/deltas.js +302 -30
  32. package/dist/react/deltas.js.map +1 -1
  33. package/dist/react/toUIMessages.d.ts.map +1 -1
  34. package/dist/react/toUIMessages.js +289 -180
  35. package/dist/react/toUIMessages.js.map +1 -1
  36. package/dist/react/useSmoothText.d.ts.map +1 -1
  37. package/dist/react/useSmoothText.js +15 -6
  38. package/dist/react/useSmoothText.js.map +1 -1
  39. package/dist/shared.d.ts +4 -0
  40. package/dist/shared.d.ts.map +1 -1
  41. package/dist/shared.js +8 -0
  42. package/dist/shared.js.map +1 -1
  43. package/dist/validators.d.ts +662 -104
  44. package/dist/validators.d.ts.map +1 -1
  45. package/dist/validators.js +8 -0
  46. package/dist/validators.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/client/files.ts +4 -4
  49. package/src/client/index.ts +21 -20
  50. package/src/client/search.ts +2 -6
  51. package/src/component/_generated/api.d.ts +189 -0
  52. package/src/component/messages.ts +4 -3
  53. package/src/mapping.ts +99 -51
  54. package/src/react/deltas.ts +368 -48
  55. package/src/react/toUIMessages.test.ts +186 -0
  56. package/src/react/toUIMessages.ts +366 -192
  57. package/src/react/useSmoothText.ts +25 -13
  58. package/src/shared.ts +14 -0
  59. package/src/validators.ts +8 -0
@@ -120,6 +120,7 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
120
120
  role: "user";
121
121
  content: string | ({
122
122
  providerOptions?: Record<string, Record<string, any>> | undefined;
123
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
123
124
  type: "text";
124
125
  text: string;
125
126
  } | {
@@ -129,6 +130,7 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
129
130
  image: string | ArrayBuffer;
130
131
  } | {
131
132
  providerOptions?: Record<string, Record<string, any>> | undefined;
133
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
132
134
  filename?: string | undefined;
133
135
  type: "file";
134
136
  mimeType: string;
@@ -139,25 +141,30 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
139
141
  role: "assistant";
140
142
  content: string | ({
141
143
  providerOptions?: Record<string, Record<string, any>> | undefined;
144
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
142
145
  type: "text";
143
146
  text: string;
144
147
  } | {
145
148
  providerOptions?: Record<string, Record<string, any>> | undefined;
149
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
146
150
  filename?: string | undefined;
147
151
  type: "file";
148
152
  mimeType: string;
149
153
  data: string | ArrayBuffer;
150
154
  } | {
151
155
  providerOptions?: Record<string, Record<string, any>> | undefined;
156
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
152
157
  signature?: string | undefined;
153
158
  type: "reasoning";
154
159
  text: string;
155
160
  } | {
156
161
  providerOptions?: Record<string, Record<string, any>> | undefined;
162
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
157
163
  type: "redacted-reasoning";
158
164
  data: string;
159
165
  } | {
160
166
  providerOptions?: Record<string, Record<string, any>> | undefined;
167
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
161
168
  providerExecuted?: boolean | undefined;
162
169
  type: "tool-call";
163
170
  toolCallId: string;
@@ -165,6 +172,7 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
165
172
  args: any;
166
173
  } | {
167
174
  providerOptions?: Record<string, Record<string, any>> | undefined;
175
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
168
176
  args?: any;
169
177
  providerExecuted?: boolean | undefined;
170
178
  isError?: boolean | undefined;
@@ -186,6 +194,7 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
186
194
  role: "tool";
187
195
  content: {
188
196
  providerOptions?: Record<string, Record<string, any>> | undefined;
197
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
189
198
  args?: any;
190
199
  providerExecuted?: boolean | undefined;
191
200
  isError?: boolean | undefined;
@@ -208,6 +217,7 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
208
217
  content: string;
209
218
  } | undefined;
210
219
  text?: string | undefined;
220
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
211
221
  reasoning?: string | undefined;
212
222
  usage?: {
213
223
  reasoningTokens?: number | undefined;
@@ -216,17 +226,18 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
216
226
  completionTokens: number;
217
227
  totalTokens: number;
218
228
  } | undefined;
219
- providerMetadata?: Record<string, Record<string, any>> | undefined;
220
229
  sources?: ({
221
230
  title?: string | undefined;
222
231
  type?: "source" | undefined;
223
232
  providerOptions?: Record<string, Record<string, any>> | undefined;
233
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
224
234
  id: string;
225
235
  sourceType: "url";
226
236
  url: string;
227
237
  } | {
228
- filename?: string | undefined;
238
+ providerOptions?: Record<string, Record<string, any>> | undefined;
229
239
  providerMetadata?: Record<string, Record<string, any>> | undefined;
240
+ filename?: string | undefined;
230
241
  id: string;
231
242
  title: string;
232
243
  type: "source";
@@ -248,6 +259,7 @@ export declare function saveMessage(ctx: RunMutationCtx, component: AgentCompone
248
259
  finishReason?: "length" | "error" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
249
260
  reasoningDetails?: ({
250
261
  providerOptions?: Record<string, Record<string, any>> | undefined;
262
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
251
263
  signature?: string | undefined;
252
264
  type: "reasoning";
253
265
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/client/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/client/messages.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,7 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
47
47
  role: "user";
48
48
  content: string | ({
49
49
  providerOptions?: Record<string, Record<string, any>> | undefined;
50
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
50
51
  type: "text";
51
52
  text: string;
52
53
  } | {
@@ -56,6 +57,7 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
56
57
  image: string | ArrayBuffer;
57
58
  } | {
58
59
  providerOptions?: Record<string, Record<string, any>> | undefined;
60
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
59
61
  filename?: string | undefined;
60
62
  type: "file";
61
63
  mimeType: string;
@@ -66,25 +68,30 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
66
68
  role: "assistant";
67
69
  content: string | ({
68
70
  providerOptions?: Record<string, Record<string, any>> | undefined;
71
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
69
72
  type: "text";
70
73
  text: string;
71
74
  } | {
72
75
  providerOptions?: Record<string, Record<string, any>> | undefined;
76
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
73
77
  filename?: string | undefined;
74
78
  type: "file";
75
79
  mimeType: string;
76
80
  data: string | ArrayBuffer;
77
81
  } | {
78
82
  providerOptions?: Record<string, Record<string, any>> | undefined;
83
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
79
84
  signature?: string | undefined;
80
85
  type: "reasoning";
81
86
  text: string;
82
87
  } | {
83
88
  providerOptions?: Record<string, Record<string, any>> | undefined;
89
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
84
90
  type: "redacted-reasoning";
85
91
  data: string;
86
92
  } | {
87
93
  providerOptions?: Record<string, Record<string, any>> | undefined;
94
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
88
95
  providerExecuted?: boolean | undefined;
89
96
  type: "tool-call";
90
97
  toolCallId: string;
@@ -92,6 +99,7 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
92
99
  args: any;
93
100
  } | {
94
101
  providerOptions?: Record<string, Record<string, any>> | undefined;
102
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
95
103
  args?: any;
96
104
  providerExecuted?: boolean | undefined;
97
105
  isError?: boolean | undefined;
@@ -113,6 +121,7 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
113
121
  role: "tool";
114
122
  content: {
115
123
  providerOptions?: Record<string, Record<string, any>> | undefined;
124
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
116
125
  args?: any;
117
126
  providerExecuted?: boolean | undefined;
118
127
  isError?: boolean | undefined;
@@ -135,6 +144,7 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
135
144
  content: string;
136
145
  } | undefined;
137
146
  text?: string | undefined;
147
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
138
148
  reasoning?: string | undefined;
139
149
  usage?: {
140
150
  reasoningTokens?: number | undefined;
@@ -143,17 +153,18 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
143
153
  completionTokens: number;
144
154
  totalTokens: number;
145
155
  } | undefined;
146
- providerMetadata?: Record<string, Record<string, any>> | undefined;
147
156
  sources?: ({
148
157
  title?: string | undefined;
149
158
  type?: "source" | undefined;
150
159
  providerOptions?: Record<string, Record<string, any>> | undefined;
160
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
151
161
  id: string;
152
162
  sourceType: "url";
153
163
  url: string;
154
164
  } | {
155
- filename?: string | undefined;
165
+ providerOptions?: Record<string, Record<string, any>> | undefined;
156
166
  providerMetadata?: Record<string, Record<string, any>> | undefined;
167
+ filename?: string | undefined;
157
168
  id: string;
158
169
  title: string;
159
170
  type: "source";
@@ -175,6 +186,7 @@ export declare function filterOutOrphanedToolMessages(docs: MessageDoc[]): {
175
186
  finishReason?: "length" | "error" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
176
187
  reasoningDetails?: ({
177
188
  providerOptions?: Record<string, Record<string, any>> | undefined;
189
+ providerMetadata?: Record<string, Record<string, any>> | undefined;
178
190
  signature?: string | undefined;
179
191
  type: "reasoning";
180
192
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAOtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;CACrD,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,GAAG,YAAY,EAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GACA,OAAO,CAAC,UAAU,EAAE,CAAC,CAmGvB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyB/D;AAED,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,GAC9D,MAAM,CAQR;AAED,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,GAC9D,MAAM,CAKR"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAQtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kBAAkB,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;CACrD,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,WAAW,GAAG,YAAY,EAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GACA,OAAO,CAAC,UAAU,EAAE,CAAC,CA8FvB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyB/D;AAED,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,GAC9D,MAAM,CAQR;AAED,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,aAAa,GAC9D,MAAM,CAKR"}
@@ -1,5 +1,5 @@
1
1
  import { assert } from "convex-helpers";
2
- import { DEFAULT_MESSAGE_RANGE, DEFAULT_RECENT_MESSAGES, extractText, } from "../shared.js";
2
+ import { DEFAULT_MESSAGE_RANGE, DEFAULT_RECENT_MESSAGES, extractText, sorted, } from "../shared.js";
3
3
  const DEFAULT_VECTOR_SCORE_THRESHOLD = 0.0;
4
4
  /**
5
5
  * Fetch the context messages for a thread.
@@ -78,9 +78,7 @@ export async function fetchContextMessages(ctx, component, args) {
78
78
  contextMessages.unshift(...searchMessages.filter((m) => !included?.has(m._id)));
79
79
  }
80
80
  // Ensure we don't include tool messages without a corresponding tool call
81
- return filterOutOrphanedToolMessages(contextMessages.sort((a, b) =>
82
- // Sort the raw MessageDocs by order and stepOrder
83
- a.order === b.order ? a.stepOrder - b.stepOrder : a.order - b.order));
81
+ return filterOutOrphanedToolMessages(sorted(contextMessages));
84
82
  }
85
83
  /**
86
84
  * Filter out tool messages that don't have both a tool call and response.
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"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"}