@convex-dev/agent 0.0.1-alpha.0 → 0.0.1-alpha.1

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 (45) hide show
  1. package/dist/commonjs/client/index.d.ts +76 -41
  2. package/dist/commonjs/client/index.d.ts.map +1 -1
  3. package/dist/commonjs/client/index.js +104 -68
  4. package/dist/commonjs/client/index.js.map +1 -1
  5. package/dist/commonjs/component/messages.d.ts +12 -8
  6. package/dist/commonjs/component/messages.d.ts.map +1 -1
  7. package/dist/commonjs/component/messages.js +23 -6
  8. package/dist/commonjs/component/messages.js.map +1 -1
  9. package/dist/commonjs/component/schema.d.ts +6 -6
  10. package/dist/commonjs/component/schema.d.ts.map +1 -1
  11. package/dist/commonjs/component/schema.js +1 -1
  12. package/dist/commonjs/component/schema.js.map +1 -1
  13. package/dist/commonjs/component/vector/index.d.ts +41 -0
  14. package/dist/commonjs/component/vector/index.d.ts.map +1 -0
  15. package/dist/commonjs/component/vector/index.js +120 -0
  16. package/dist/commonjs/component/vector/index.js.map +1 -0
  17. package/dist/commonjs/component/vector/tables.d.ts.map +1 -1
  18. package/dist/commonjs/component/vector/tables.js +4 -2
  19. package/dist/commonjs/component/vector/tables.js.map +1 -1
  20. package/dist/esm/client/index.d.ts +76 -41
  21. package/dist/esm/client/index.d.ts.map +1 -1
  22. package/dist/esm/client/index.js +104 -68
  23. package/dist/esm/client/index.js.map +1 -1
  24. package/dist/esm/component/messages.d.ts +12 -8
  25. package/dist/esm/component/messages.d.ts.map +1 -1
  26. package/dist/esm/component/messages.js +23 -6
  27. package/dist/esm/component/messages.js.map +1 -1
  28. package/dist/esm/component/schema.d.ts +6 -6
  29. package/dist/esm/component/schema.d.ts.map +1 -1
  30. package/dist/esm/component/schema.js +1 -1
  31. package/dist/esm/component/schema.js.map +1 -1
  32. package/dist/esm/component/vector/index.d.ts +41 -0
  33. package/dist/esm/component/vector/index.d.ts.map +1 -0
  34. package/dist/esm/component/vector/index.js +120 -0
  35. package/dist/esm/component/vector/index.js.map +1 -0
  36. package/dist/esm/component/vector/tables.d.ts.map +1 -1
  37. package/dist/esm/component/vector/tables.js +4 -2
  38. package/dist/esm/component/vector/tables.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/client/index.ts +248 -154
  41. package/src/component/_generated/api.d.ts +131 -5
  42. package/src/component/messages.ts +30 -8
  43. package/src/component/schema.ts +1 -1
  44. package/src/component/vector/index.ts +144 -0
  45. package/src/component/vector/tables.ts +7 -5
@@ -1,8 +1,9 @@
1
- import { generateText, generateObject, streamText, streamObject, convertToCoreMessages, coreMessageSchema, } from "ai";
1
+ import { convertToCoreMessages, coreMessageSchema, generateObject, generateText, streamObject, streamText, } from "ai";
2
2
  // TODO: is this the only dependency that needs helpers in client?
3
3
  import { assert } from "convex-helpers";
4
- import { DEFAULT_MESSAGE_RANGE, extractText } from "../shared";
4
+ import { convexToZod } from "convex-helpers/server/zod";
5
5
  import { serializeMessageWithId, serializeNewMessagesInStep, serializeStep, } from "../mapping";
6
+ import { DEFAULT_MESSAGE_RANGE, extractText } from "../shared";
6
7
  export class Agent {
7
8
  component;
8
9
  options;
@@ -52,8 +53,10 @@ export class Agent {
52
53
  const searchMessages = await ctx.runAction(this.component.messages.searchMessages, {
53
54
  userId: args.searchOtherChats ? args.userId : undefined,
54
55
  chatId: args.chatId,
55
- ...(await this.searchWithDefaults(args, args.messages)),
56
+ parentMessageId: args.parentMessageId,
57
+ ...(await this.searchOptionsWithDefaults(args, args.messages)),
56
58
  });
59
+ // TODO: track what messages we used for context
57
60
  contextMessages.push(...searchMessages.map((m) => m.message));
58
61
  }
59
62
  if (args.chatId) {
@@ -61,6 +64,7 @@ export class Agent {
61
64
  chatId: args.chatId,
62
65
  isTool: args.includeToolMessages ?? false,
63
66
  limit: args.recentMessages,
67
+ parentMessageId: args.parentMessageId,
64
68
  order: "desc",
65
69
  statuses: ["success"],
66
70
  });
@@ -76,14 +80,13 @@ export class Agent {
76
80
  messages: args.messages.map(serializeMessageWithId),
77
81
  failPendingSteps: true,
78
82
  pending: args.pending ?? false,
83
+ parentMessageId: args.parentMessageId,
79
84
  });
80
85
  return {
81
- lastMessageId: result.messages.at(-1)?._id,
86
+ lastMessageId: result.messages.at(-1)._id,
87
+ messageIds: result.messages.map((m) => m._id),
82
88
  };
83
89
  }
84
- async replaceMessages(ctx, args) {
85
- throw new Error("Not implemented");
86
- }
87
90
  async saveStep(ctx, args) {
88
91
  const step = serializeStep(args.step);
89
92
  const messages = serializeNewMessagesInStep(args.step);
@@ -94,6 +97,7 @@ export class Agent {
94
97
  failPendingSteps: false,
95
98
  });
96
99
  }
100
+ // If you manually create a message, call this to either commit or reset it.
97
101
  async completeMessage(ctx, args) {
98
102
  const result = args.result;
99
103
  if (result.kind === "success") {
@@ -128,24 +132,25 @@ export class Agent {
128
132
  chatId,
129
133
  messages,
130
134
  });
131
- let messageId;
132
- if (chatId) {
133
- const { lastMessageId } = await this.saveMessages(ctx, {
134
- chatId,
135
- // TODO: only save the last message unless explicitly told to save all
136
- messages,
137
- pending: true,
138
- });
139
- messageId = lastMessageId;
140
- }
135
+ const { lastMessageId: messageId } = await this.saveMessages(ctx, {
136
+ chatId,
137
+ messages: args.saveAllInputMessages ? messages : messages.slice(-1),
138
+ pending: true,
139
+ parentMessageId: args.parentMessageId,
140
+ });
141
+ const defaults = this.options.tools;
142
+ const tools = wrapTools(ctx, chatId, userId, defaults, args.tools);
141
143
  try {
142
144
  const result = await generateText({
143
145
  model: this.options.chat,
144
146
  messages: [...contextMessages, ...messages],
145
147
  system: this.options.defaultSystemPrompt,
148
+ tools,
149
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
150
+ toolChoice: args.toolChoice,
146
151
  ...rest,
147
152
  onStepFinish: async (step) => {
148
- if (chatId && messageId) {
153
+ if (chatId && messageId && args.saveOutputMessages) {
149
154
  await this.saveStep(ctx, {
150
155
  chatId,
151
156
  messageId,
@@ -155,7 +160,7 @@ export class Agent {
155
160
  return args.onStepFinish?.(step);
156
161
  },
157
162
  });
158
- return result;
163
+ return { ...result, messageId };
159
164
  }
160
165
  catch (error) {
161
166
  if (chatId && messageId) {
@@ -176,20 +181,21 @@ export class Agent {
176
181
  chatId,
177
182
  messages,
178
183
  });
179
- let messageId;
180
- if (chatId) {
181
- const { lastMessageId } = await this.saveMessages(ctx, {
182
- chatId,
183
- // TODO: only save the last message unless explicitly told to save all
184
- messages,
185
- pending: true,
186
- });
187
- messageId = lastMessageId;
188
- }
189
- return streamText({
184
+ const { lastMessageId: messageId } = await this.saveMessages(ctx, {
185
+ chatId,
186
+ messages: args.saveAllInputMessages ? messages : messages.slice(-1),
187
+ pending: true,
188
+ parentMessageId: args.parentMessageId,
189
+ });
190
+ const defaults = this.options.tools;
191
+ const tools = wrapTools(ctx, chatId, userId, defaults, args.tools);
192
+ const result = streamText({
190
193
  model: this.options.chat,
191
194
  messages: [...contextMessages, ...messages],
192
195
  system: this.options.defaultSystemPrompt,
196
+ tools,
197
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
198
+ toolChoice: args.toolChoice,
193
199
  ...rest,
194
200
  onChunk: async (chunk) => {
195
201
  console.log("onChunk", chunk);
@@ -223,8 +229,9 @@ export class Agent {
223
229
  return args.onStepFinish?.(step);
224
230
  },
225
231
  });
232
+ return { ...result, messageId };
226
233
  }
227
- // TODO: not sure why it needs to extend string
234
+ // TODO: add the crazy number of overloads to get types through
228
235
  async generateObject(ctx, { userId, chatId }, args) {
229
236
  const { prompt, messages: raw, ...rest } = args;
230
237
  const messages = promptOrMessagesToCoreMessages({ prompt, messages: raw });
@@ -234,11 +241,17 @@ export class Agent {
234
241
  chatId,
235
242
  messages,
236
243
  });
237
- return generateObject({
244
+ const { lastMessageId: messageId } = await this.saveMessages(ctx, {
245
+ chatId,
246
+ messages: args.saveAllInputMessages ? messages : messages.slice(-1),
247
+ pending: true,
248
+ });
249
+ const result = (await generateObject({
238
250
  model: this.options.chat,
239
251
  messages: [...contextMessages, ...messages],
240
252
  ...rest,
241
- });
253
+ }));
254
+ return { ...result, messageId };
242
255
  }
243
256
  async streamObject(ctx, { userId, chatId }, args) {
244
257
  const { prompt, messages: raw, ...rest } = args;
@@ -249,7 +262,12 @@ export class Agent {
249
262
  chatId,
250
263
  messages,
251
264
  });
252
- return streamObject({
265
+ const { lastMessageId: messageId } = await this.saveMessages(ctx, {
266
+ chatId,
267
+ messages: args.saveAllInputMessages ? messages : messages.slice(-1),
268
+ pending: true,
269
+ });
270
+ const result = streamObject({
253
271
  model: this.options.chat,
254
272
  messages: [...contextMessages, ...messages],
255
273
  ...rest,
@@ -261,8 +279,9 @@ export class Agent {
261
279
  console.log("onFinish", result);
262
280
  },
263
281
  });
282
+ return { ...result, messageId };
264
283
  }
265
- async searchWithDefaults(searchArgs, messages) {
284
+ async searchOptionsWithDefaults(searchArgs, messages) {
266
285
  assert(searchArgs.searchOptions?.textSearch ||
267
286
  searchArgs.searchOptions?.vectorSearch, "searchOptions is required");
268
287
  assert(messages.length > 0, "Core messages cannot be empty");
@@ -302,40 +321,7 @@ export class Agent {
302
321
  isDone: messages.isDone,
303
322
  };
304
323
  }
305
- async getSteps(ctx, args) {
306
- return { steps: [] };
307
- }
308
324
  }
309
- // type ToolParameters = ZodTypeAny | Schema<unknown>; // TODO: support convex validator
310
- // type inferParameters<PARAMETERS extends ToolParameters> =
311
- // PARAMETERS extends Schema<unknown>
312
- // ? PARAMETERS["_type"]
313
- // : PARAMETERS extends z.ZodTypeAny
314
- // ? z.infer<PARAMETERS>
315
- // : never;
316
- // /**
317
- // * This is a wrapper around the ai.tool function that adds support for
318
- // * userId and chatId to the tool, if they're called within a chat from an agent.
319
- // * @param tool The AI tool. See https://sdk.vercel.ai/docs/ai-sdk-core/tools-and-tool-calling
320
- // * @returns The same tool, but with userId and chatId args support added.
321
- // */
322
- // export function tool<PARAMETERS extends ToolParameters, RESULT>(
323
- // tool: Tool<PARAMETERS, RESULT> & {
324
- // execute: (
325
- // args: inferParameters<PARAMETERS> & { userId?: string; chatId?: string },
326
- // options: ToolExecutionOptions
327
- // ) => PromiseLike<RESULT>;
328
- // }
329
- // ): Tool<PARAMETERS, RESULT> & {
330
- // execute: (
331
- // args: inferParameters<PARAMETERS>,
332
- // options: ToolExecutionOptions
333
- // ) => PromiseLike<RESULT>;
334
- // } {
335
- // // eslint-disable-next-line @typescript-eslint/no-explicit-any
336
- // (tool as any).__acceptUserIdAndChatId = true;
337
- // return tool;
338
- // }
339
325
  export function promptOrMessagesToCoreMessages(args) {
340
326
  const messages = [];
341
327
  if (args.system) {
@@ -359,6 +345,56 @@ export function promptOrMessagesToCoreMessages(args) {
359
345
  assert(messages.length > 0, "Messages must contain at least one message");
360
346
  return messages;
361
347
  }
348
+ // type ToolParameters = ZodTypeAny | Schema<unknown>; // TODO: support convex validator
349
+ // type inferParameters<PARAMETERS extends ToolParameters> =
350
+ // PARAMETERS extends Schema<unknown>
351
+ // ? PARAMETERS["_type"]
352
+ // : PARAMETERS extends z.ZodTypeAny
353
+ // ? z.infer<PARAMETERS>
354
+ // : never;
355
+ /**
356
+ * This is a wrapper around the ai.tool function that adds support for
357
+ * userId and chatId to the tool, if they're called within a chat from an agent.
358
+ * @param tool The AI tool. See https://sdk.vercel.ai/docs/ai-sdk-core/tools-and-tool-calling
359
+ * @returns The same tool, but with userId and chatId args support added.
360
+ */
361
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
362
+ export function tool(convexTool) {
363
+ const tool = {
364
+ __acceptUserIdAndChatId: true,
365
+ description: convexTool.description,
366
+ parameters: convexToZod(convexTool.args),
367
+ execute: async (args, options) => {
368
+ if (!convexTool.ctx) {
369
+ throw new Error("To use a Convex tool, you must either provide the ctx" +
370
+ " at definition time (dynamically in an action), or use the Agent to" +
371
+ " call it (which injects the ctx, userId and chatId)");
372
+ }
373
+ return convexTool.handler(convexTool.ctx, args, options);
374
+ },
375
+ };
376
+ return tool;
377
+ }
378
+ export function wrapTools(actionCtx, chatId, userId, ...toolSets) {
379
+ const ctx = { ...actionCtx, chatId, userId };
380
+ const output = {};
381
+ for (const toolSet of toolSets) {
382
+ if (!toolSet) {
383
+ continue;
384
+ }
385
+ for (const [name, tool] of Object.entries(toolSet)) {
386
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
387
+ if (!tool.__acceptUserIdAndChatId) {
388
+ output[name] = tool;
389
+ }
390
+ else {
391
+ const out = { ...tool, ctx };
392
+ output[name] = out;
393
+ }
394
+ }
395
+ }
396
+ return output;
397
+ }
362
398
  // export function convexValidatorSchema<T>(validator: Validator<unknown>) {
363
399
  // return ai.jsonSchema(convexToJsonSchema(validator));
364
400
  // }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -229,7 +229,6 @@ export declare const vMessageDoc: import("convex/values").VObject<{
229
229
  fileId?: import("convex/values").GenericId<"files"> | undefined;
230
230
  model?: string | undefined;
231
231
  userId?: string | undefined;
232
- order?: number | undefined;
233
232
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
234
233
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
235
234
  agentName?: string | undefined;
@@ -238,6 +237,7 @@ export declare const vMessageDoc: import("convex/values").VObject<{
238
237
  tool: boolean;
239
238
  chatId: import("convex/values").GenericId<"chats">;
240
239
  status: "pending" | "success" | "failed";
240
+ order: number;
241
241
  }, {
242
242
  id: import("convex/values").VString<string | undefined, "optional">;
243
243
  userId: import("convex/values").VString<string | undefined, "optional">;
@@ -731,7 +731,7 @@ export declare const vMessageDoc: import("convex/values").VObject<{
731
731
  text: import("convex/values").VString<string | undefined, "optional">;
732
732
  embeddingId: import("convex/values").VUnion<import("convex/values").GenericId<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096"> | undefined, import("convex/values").VId<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096", "required">[], "optional", never>;
733
733
  tool: import("convex/values").VBoolean<boolean, "required">;
734
- order: import("convex/values").VFloat64<number | undefined, "optional">;
734
+ order: import("convex/values").VFloat64<number, "required">;
735
735
  stepOrder: import("convex/values").VFloat64<number | undefined, "optional">;
736
736
  fileId: import("convex/values").VId<import("convex/values").GenericId<"files"> | undefined, "optional">;
737
737
  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>;
@@ -924,7 +924,6 @@ export declare const addMessages: import("convex/server").RegisteredMutation<"pu
924
924
  fileId?: import("convex/values").GenericId<"files"> | undefined;
925
925
  model?: string | undefined;
926
926
  userId?: string | undefined;
927
- order?: number | undefined;
928
927
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
929
928
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
930
929
  agentName?: string | undefined;
@@ -933,6 +932,7 @@ export declare const addMessages: import("convex/server").RegisteredMutation<"pu
933
932
  tool: boolean;
934
933
  chatId: import("convex/values").GenericId<"chats">;
935
934
  status: "pending" | "success" | "failed";
935
+ order: number;
936
936
  }[];
937
937
  }>>;
938
938
  export declare const addSteps: import("convex/server").RegisteredMutation<"public", {
@@ -1373,6 +1373,7 @@ export declare const commitMessage: import("convex/server").RegisteredMutation<"
1373
1373
  export declare const getChatMessages: import("convex/server").RegisteredQuery<"public", {
1374
1374
  limit?: number | undefined;
1375
1375
  order?: "asc" | "desc" | undefined;
1376
+ parentMessageId?: import("convex/values").GenericId<"messages"> | undefined;
1376
1377
  cursor?: string | undefined;
1377
1378
  statuses?: ("pending" | "success" | "failed")[] | undefined;
1378
1379
  isTool?: boolean | undefined;
@@ -1469,7 +1470,6 @@ export declare const getChatMessages: import("convex/server").RegisteredQuery<"p
1469
1470
  fileId?: import("convex/values").GenericId<"files"> | undefined;
1470
1471
  model?: string | undefined;
1471
1472
  userId?: string | undefined;
1472
- order?: number | undefined;
1473
1473
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
1474
1474
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
1475
1475
  agentName?: string | undefined;
@@ -1478,6 +1478,7 @@ export declare const getChatMessages: import("convex/server").RegisteredQuery<"p
1478
1478
  tool: boolean;
1479
1479
  chatId: import("convex/values").GenericId<"chats">;
1480
1480
  status: "pending" | "success" | "failed";
1481
+ order: number;
1481
1482
  }[];
1482
1483
  continueCursor: string;
1483
1484
  isDone: boolean;
@@ -1492,6 +1493,7 @@ export declare const searchMessages: import("convex/server").RegisteredAction<"p
1492
1493
  } | undefined;
1493
1494
  userId?: string | undefined;
1494
1495
  chatId?: import("convex/values").GenericId<"chats"> | undefined;
1496
+ parentMessageId?: import("convex/values").GenericId<"messages"> | undefined;
1495
1497
  limit: number;
1496
1498
  }, Promise<{
1497
1499
  _id: import("convex/values").GenericId<"messages">;
@@ -1584,7 +1586,6 @@ export declare const searchMessages: import("convex/server").RegisteredAction<"p
1584
1586
  fileId?: import("convex/values").GenericId<"files"> | undefined;
1585
1587
  model?: string | undefined;
1586
1588
  userId?: string | undefined;
1587
- order?: number | undefined;
1588
1589
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
1589
1590
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
1590
1591
  agentName?: string | undefined;
@@ -1593,10 +1594,12 @@ export declare const searchMessages: import("convex/server").RegisteredAction<"p
1593
1594
  tool: boolean;
1594
1595
  chatId: import("convex/values").GenericId<"chats">;
1595
1596
  status: "pending" | "success" | "failed";
1597
+ order: number;
1596
1598
  }[]>>;
1597
1599
  export declare const _fetchVectorMessages: import("convex/server").RegisteredQuery<"internal", {
1598
1600
  userId?: string | undefined;
1599
1601
  chatId?: import("convex/values").GenericId<"chats"> | undefined;
1602
+ parentMessageId?: import("convex/values").GenericId<"messages"> | undefined;
1600
1603
  textSearchMessages?: {
1601
1604
  id?: string | undefined;
1602
1605
  text?: string | undefined;
@@ -1686,7 +1689,6 @@ export declare const _fetchVectorMessages: import("convex/server").RegisteredQue
1686
1689
  fileId?: import("convex/values").GenericId<"files"> | undefined;
1687
1690
  model?: string | undefined;
1688
1691
  userId?: string | undefined;
1689
- order?: number | undefined;
1690
1692
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
1691
1693
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
1692
1694
  agentName?: string | undefined;
@@ -1695,9 +1697,11 @@ export declare const _fetchVectorMessages: import("convex/server").RegisteredQue
1695
1697
  tool: boolean;
1696
1698
  chatId: import("convex/values").GenericId<"chats">;
1697
1699
  status: "pending" | "success" | "failed";
1700
+ order: number;
1698
1701
  _creationTime: number;
1699
1702
  _id: import("convex/values").GenericId<"messages">;
1700
1703
  }[] | undefined;
1704
+ limit: number;
1701
1705
  messageRange: {
1702
1706
  before: number;
1703
1707
  after: number;
@@ -1794,7 +1798,6 @@ export declare const _fetchVectorMessages: import("convex/server").RegisteredQue
1794
1798
  fileId?: import("convex/values").GenericId<"files"> | undefined;
1795
1799
  model?: string | undefined;
1796
1800
  userId?: string | undefined;
1797
- order?: number | undefined;
1798
1801
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
1799
1802
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
1800
1803
  agentName?: string | undefined;
@@ -1803,6 +1806,7 @@ export declare const _fetchVectorMessages: import("convex/server").RegisteredQue
1803
1806
  tool: boolean;
1804
1807
  chatId: import("convex/values").GenericId<"chats">;
1805
1808
  status: "pending" | "success" | "failed";
1809
+ order: number;
1806
1810
  }[]>>;
1807
1811
  export declare const textSearch: import("convex/server").RegisteredQuery<"public", {
1808
1812
  userId?: string | undefined;
@@ -1900,7 +1904,6 @@ export declare const textSearch: import("convex/server").RegisteredQuery<"public
1900
1904
  fileId?: import("convex/values").GenericId<"files"> | undefined;
1901
1905
  model?: string | undefined;
1902
1906
  userId?: string | undefined;
1903
- order?: number | undefined;
1904
1907
  threadId?: import("convex/values").GenericId<"messages"> | undefined;
1905
1908
  stepId?: import("convex/values").GenericId<"steps"> | undefined;
1906
1909
  agentName?: string | undefined;
@@ -1909,5 +1912,6 @@ export declare const textSearch: import("convex/server").RegisteredQuery<"public
1909
1912
  tool: boolean;
1910
1913
  chatId: import("convex/values").GenericId<"chats">;
1911
1914
  status: "pending" | "success" | "failed";
1915
+ order: number;
1912
1916
  }[]>>;
1913
1917
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/component/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/component/messages.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAO,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAkBpD,eAAO,MAAM,OAAO;;;;;;;;;;;;UAMlB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;GAmC3B,CAAC;AAKH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;GAqBrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;GAqBrB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;GAStB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAsB7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;oBAalC,CAAC;AAeH,eAAO,MAAM,wBAAwB;;;;oBAInC,CAAC;AAqBH,eAAO,MAAM,oBAAoB;;;;;;;;GAI/B,CAAC;AAsEH,eAAO,MAAM,sBAAsB;;;;;;;GAUjC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;GAalC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;GAI/B,CAAC;AAuBH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;GAwB3B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2XAAmC,CAAC;AAC5D,eAAO,MAAM,eAAe,sCAE3B,CAAC;AAYF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAOtB,CAAC;AA6EH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAInB,CAAC;AAqDH,eAAO,MAAM,eAAe;;;iBAc1B,CAAC;AAEH,eAAO,MAAM,aAAa;eASI,EAAE,CAAC,UAAU,CAAC;iBAH1C,CAAC;AAuCH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqD1B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoEzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuF/B,CAAC;AAIH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoBrB,CAAC"}
@@ -459,14 +459,25 @@ export const getChatMessages = query({
459
459
  // Note: the other arguments cannot change from when the cursor was created.
460
460
  cursor: v.optional(v.string()),
461
461
  statuses: v.optional(v.array(vMessageStatus)),
462
+ parentMessageId: v.optional(v.id("messages")),
462
463
  },
463
464
  handler: async (ctx, args) => {
464
465
  const statuses = args.statuses ?? ["success"];
466
+ const parent = args.parentMessageId && (await ctx.db.get(args.parentMessageId));
465
467
  const toolOptions = args.isTool === undefined ? [true, false] : [args.isTool];
466
468
  const order = args.order ?? "desc";
467
469
  const streams = toolOptions.flatMap((tool) => statuses.map((status) => stream(ctx.db, schema)
468
470
  .query("messages")
469
- .withIndex("chatId_status_tool_order_stepOrder", (q) => q.eq("chatId", args.chatId).eq("status", status).eq("tool", tool))
471
+ .withIndex("chatId_status_tool_order_stepOrder", (q) => {
472
+ const qq = q
473
+ .eq("chatId", args.chatId)
474
+ .eq("status", status)
475
+ .eq("tool", tool);
476
+ if (parent) {
477
+ return qq.lte("order", parent.order);
478
+ }
479
+ return qq;
480
+ })
470
481
  .order(order)));
471
482
  const messages = await mergedStream(streams, [
472
483
  "order",
@@ -491,6 +502,7 @@ export const searchMessages = action({
491
502
  args: {
492
503
  userId: v.optional(v.string()),
493
504
  chatId: v.optional(v.id("chats")),
505
+ parentMessageId: v.optional(v.id("messages")),
494
506
  ...vSearchOptions.fields,
495
507
  },
496
508
  returns: v.array(v.doc("messages")),
@@ -535,10 +547,10 @@ export const searchMessages = action({
535
547
  userId: args.userId,
536
548
  chatId: args.chatId,
537
549
  vectorIds,
538
- textSearchMessages: textSearchMessages
539
- ?.filter((m) => !vectorIds.includes(m.embeddingId))
540
- .slice(0, limit - vectorIds.length),
550
+ textSearchMessages: textSearchMessages?.filter((m) => !vectorIds.includes(m.embeddingId)),
541
551
  messageRange: args.messageRange ?? DEFAULT_MESSAGE_RANGE,
552
+ parentMessageId: args.parentMessageId,
553
+ limit,
542
554
  });
543
555
  return messages;
544
556
  }
@@ -552,10 +564,13 @@ export const _fetchVectorMessages = internalQuery({
552
564
  vectorIds: v.array(vVectorId),
553
565
  textSearchMessages: v.optional(v.array(v.doc("messages"))),
554
566
  messageRange: v.object({ before: v.number(), after: v.number() }),
567
+ parentMessageId: v.optional(v.id("messages")),
568
+ limit: v.number(),
555
569
  },
556
570
  returns: v.array(v.doc("messages")),
557
571
  handler: async (ctx, args) => {
558
- const messages = (await Promise.all(args.vectorIds.map((embeddingId) => ctx.db
572
+ const parent = args.parentMessageId && (await ctx.db.get(args.parentMessageId));
573
+ let messages = (await Promise.all(args.vectorIds.map((embeddingId) => ctx.db
559
574
  .query("messages")
560
575
  .withIndex("embeddingId", (q) => q.eq("embeddingId", embeddingId))
561
576
  .filter((q) => args.userId
@@ -563,9 +578,11 @@ export const _fetchVectorMessages = internalQuery({
563
578
  : // eslint-disable-next-line @typescript-eslint/no-explicit-any
564
579
  q.eq("chatId", args.chatId) // not sure why it's failing...
565
580
  )
566
- .first()))).filter((m) => m !== undefined);
581
+ .first()))).filter((m) => m !== undefined && m !== null && (!parent || m.order <= parent.order));
567
582
  messages.push(...(args.textSearchMessages ?? []));
583
+ // TODO: prioritize more recent messages
568
584
  messages.sort((a, b) => a.order - b.order);
585
+ messages = messages.slice(0, args.limit);
569
586
  // Fetch the surrounding messages
570
587
  const included = {};
571
588
  for (const m of messages) {