@convex-dev/agent 0.3.1 → 0.3.2

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.
@@ -102,12 +102,12 @@ export const deleteByOrder = mutation({
102
102
  lastOrder?: number;
103
103
  lastStepOrder?: number;
104
104
  }> => {
105
- const messages = await orderedMessagesStream(
106
- ctx,
107
- args.threadId,
108
- "asc",
109
- args.startOrder,
110
- )
105
+ const messages = await orderedMessagesStream(ctx, {
106
+ threadId: args.threadId,
107
+ sortOrder: "asc",
108
+ startOrder: args.startOrder,
109
+ startOrderBound: "gte",
110
+ })
111
111
  .narrow({
112
112
  lowerBound: args.startStepOrder
113
113
  ? [args.startOrder, args.startStepOrder]
@@ -312,14 +312,22 @@ export async function getMaxMessage(
312
312
  threadId: Id<"threads">,
313
313
  order?: number,
314
314
  ) {
315
- return orderedMessagesStream(ctx, threadId, "desc", order).first();
315
+ return orderedMessagesStream(ctx, {
316
+ threadId,
317
+ sortOrder: "desc",
318
+ startOrder: order,
319
+ startOrderBound: "eq",
320
+ }).first();
316
321
  }
317
322
 
318
323
  function orderedMessagesStream(
319
324
  ctx: QueryCtx,
320
- threadId: Id<"threads">,
321
- sortOrder: "asc" | "desc",
322
- order?: number,
325
+ args: {
326
+ threadId: Id<"threads">;
327
+ sortOrder: "asc" | "desc";
328
+ startOrder?: number;
329
+ startOrderBound?: "gte" | "eq";
330
+ },
323
331
  ) {
324
332
  return mergedStream(
325
333
  [true, false].flatMap((tool) =>
@@ -328,15 +336,19 @@ function orderedMessagesStream(
328
336
  .query("messages")
329
337
  .withIndex("threadId_status_tool_order_stepOrder", (q) => {
330
338
  const qq = q
331
- .eq("threadId", threadId)
339
+ .eq("threadId", args.threadId)
332
340
  .eq("status", status)
333
341
  .eq("tool", tool);
334
- if (order !== undefined) {
335
- return qq.eq("order", order);
342
+ if (args.startOrder !== undefined) {
343
+ if (args.startOrderBound === "gte") {
344
+ return qq.gte("order", args.startOrder);
345
+ } else {
346
+ return qq.eq("order", args.startOrder);
347
+ }
336
348
  }
337
349
  return qq;
338
350
  })
339
- .order(sortOrder),
351
+ .order(args.sortOrder),
340
352
  ),
341
353
  ),
342
354
  ["order", "stepOrder"],