@convex-dev/agent 0.1.9-alpha.4 → 0.1.9-alpha.5

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 (57) hide show
  1. package/dist/commonjs/client/index.d.ts +72 -71
  2. package/dist/commonjs/client/index.d.ts.map +1 -1
  3. package/dist/commonjs/client/index.js +2 -0
  4. package/dist/commonjs/client/index.js.map +1 -1
  5. package/dist/commonjs/component/_generated/api.d.ts +6 -1
  6. package/dist/commonjs/component/messages.d.ts +210 -210
  7. package/dist/commonjs/component/schema.d.ts +677 -707
  8. package/dist/commonjs/component/schema.d.ts.map +1 -1
  9. package/dist/commonjs/component/schema.js +0 -3
  10. package/dist/commonjs/component/schema.js.map +1 -1
  11. package/dist/commonjs/component/streams.d.ts +13 -11
  12. package/dist/commonjs/component/streams.d.ts.map +1 -1
  13. package/dist/commonjs/component/streams.js +8 -6
  14. package/dist/commonjs/component/streams.js.map +1 -1
  15. package/dist/commonjs/component/threads.d.ts +18 -18
  16. package/dist/commonjs/component/vector/index.d.ts +3 -3
  17. package/dist/commonjs/component/vector/tables.d.ts +2 -2
  18. package/dist/commonjs/react/deltas.d.ts.map +1 -1
  19. package/dist/commonjs/react/deltas.js +2 -2
  20. package/dist/commonjs/react/deltas.js.map +1 -1
  21. package/dist/commonjs/validators.d.ts +162 -160
  22. package/dist/commonjs/validators.d.ts.map +1 -1
  23. package/dist/commonjs/validators.js +1 -0
  24. package/dist/commonjs/validators.js.map +1 -1
  25. package/dist/commonjs.tsbuildinfo +1 -1
  26. package/dist/esm/client/index.d.ts +20 -19
  27. package/dist/esm/client/index.d.ts.map +1 -1
  28. package/dist/esm/client/index.js +2 -0
  29. package/dist/esm/client/index.js.map +1 -1
  30. package/dist/esm/component/_generated/api.d.ts +6 -1
  31. package/dist/esm/component/messages.d.ts +37 -37
  32. package/dist/esm/component/schema.d.ts +677 -707
  33. package/dist/esm/component/schema.d.ts.map +1 -1
  34. package/dist/esm/component/schema.js +0 -3
  35. package/dist/esm/component/schema.js.map +1 -1
  36. package/dist/esm/component/streams.d.ts +2 -0
  37. package/dist/esm/component/streams.d.ts.map +1 -1
  38. package/dist/esm/component/streams.js +8 -6
  39. package/dist/esm/component/streams.js.map +1 -1
  40. package/dist/esm/component/threads.d.ts +15 -15
  41. package/dist/esm/component/vector/index.d.ts +3 -3
  42. package/dist/esm/component/vector/tables.d.ts +2 -2
  43. package/dist/esm/react/deltas.d.ts.map +1 -1
  44. package/dist/esm/react/deltas.js +2 -2
  45. package/dist/esm/react/deltas.js.map +1 -1
  46. package/dist/esm/validators.d.ts +162 -160
  47. package/dist/esm/validators.d.ts.map +1 -1
  48. package/dist/esm/validators.js +1 -0
  49. package/dist/esm/validators.js.map +1 -1
  50. package/dist/esm.tsbuildinfo +1 -1
  51. package/package.json +1 -1
  52. package/src/client/index.ts +4 -0
  53. package/src/component/_generated/api.d.ts +6 -1
  54. package/src/component/schema.ts +0 -4
  55. package/src/component/streams.ts +38 -24
  56. package/src/react/deltas.ts +4 -2
  57. package/src/validators.ts +5 -0
@@ -1575,13 +1575,18 @@ export type Mounts = {
1575
1575
  list: FunctionReference<
1576
1576
  "query",
1577
1577
  "public",
1578
- { startOrder?: number; threadId: string },
1578
+ {
1579
+ startOrder?: number;
1580
+ statuses?: Array<"streaming" | "finished" | "aborted">;
1581
+ threadId: string;
1582
+ },
1579
1583
  Array<{
1580
1584
  agentName?: string;
1581
1585
  model?: string;
1582
1586
  order: number;
1583
1587
  provider?: string;
1584
1588
  providerOptions?: Record<string, Record<string, any>>;
1589
+ status: "streaming" | "finished" | "aborted";
1585
1590
  stepOrder: number;
1586
1591
  streamId: string;
1587
1592
  userId?: string;
@@ -112,10 +112,6 @@ export const schema = defineSchema({
112
112
  v.object({
113
113
  kind: v.literal("aborted"),
114
114
  reason: v.string(),
115
- }),
116
- v.object({
117
- kind: v.literal("error"),
118
- error: v.string(),
119
115
  })
120
116
  ),
121
117
  })
@@ -103,33 +103,47 @@ export const list = query({
103
103
  args: {
104
104
  threadId: v.id("threads"),
105
105
  startOrder: v.optional(v.number()),
106
+ statuses: v.optional(
107
+ v.array(
108
+ v.union(
109
+ v.literal("streaming"),
110
+ v.literal("finished"),
111
+ v.literal("aborted")
112
+ )
113
+ )
114
+ ),
106
115
  },
107
116
  returns: v.array(vStreamMessage),
108
117
  handler: async (ctx, args) => {
109
- return ctx.db
110
- .query("streamingMessages")
111
- .withIndex("threadId_state_order_stepOrder", (q) =>
112
- q
113
- .eq("threadId", args.threadId)
114
- .eq("state.kind", "streaming")
115
- .gte("order", args.startOrder ?? 0)
116
- )
117
- .order("desc")
118
- .take(100)
119
- .then((msgs) =>
120
- msgs.map((m) => ({
121
- streamId: m._id,
122
- ...pick(m, [
123
- "order",
124
- "stepOrder",
125
- "userId",
126
- "agentName",
127
- "model",
128
- "provider",
129
- "providerOptions",
130
- ]),
131
- }))
132
- );
118
+ const statuses = args.statuses ?? ["streaming"];
119
+ const messages = await mergedStream(
120
+ statuses.map((status) =>
121
+ stream(ctx.db, schema)
122
+ .query("streamingMessages")
123
+ .withIndex("threadId_state_order_stepOrder", (q) =>
124
+ q
125
+ .eq("threadId", args.threadId)
126
+ .eq("state.kind", status)
127
+ .gte("order", args.startOrder ?? 0)
128
+ )
129
+ .order("desc")
130
+ ),
131
+ ["order", "stepOrder"]
132
+ ).take(100);
133
+
134
+ return messages.map((m) => ({
135
+ streamId: m._id,
136
+ status: m.state.kind,
137
+ ...pick(m, [
138
+ "order",
139
+ "stepOrder",
140
+ "userId",
141
+ "agentName",
142
+ "model",
143
+ "provider",
144
+ "providerOptions",
145
+ ]),
146
+ }));
133
147
  },
134
148
  });
135
149
 
@@ -255,12 +255,14 @@ export function createStreamingMessage(
255
255
  ): MessageDoc {
256
256
  const { streamId, ...rest } = message;
257
257
  const metadata: MessageDoc = {
258
+ ...rest,
258
259
  _id: `${streamId}-${index}`,
259
260
  _creationTime: Date.now(),
260
- status: "pending",
261
+ status: (
262
+ { streaming: "pending", finished: "success", aborted: "failed" } as const
263
+ )[message.status],
261
264
  threadId,
262
265
  tool: false,
263
- ...rest,
264
266
  };
265
267
  switch (part.type) {
266
268
  case "text-delta":
package/src/validators.ts CHANGED
@@ -472,6 +472,11 @@ export type StreamArgs = Infer<typeof vStreamArgs>;
472
472
 
473
473
  export const vStreamMessage = v.object({
474
474
  streamId: v.string(),
475
+ status: v.union(
476
+ v.literal("streaming"),
477
+ v.literal("finished"),
478
+ v.literal("aborted")
479
+ ),
475
480
  order: v.number(),
476
481
  stepOrder: v.number(),
477
482
  // metadata