@convex-dev/agent 0.1.14-alpha.5 → 0.1.15-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 (49) hide show
  1. package/README.md +10 -0
  2. package/dist/client/index.d.ts +2 -1
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +4 -3
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/streaming.d.ts.map +1 -1
  7. package/dist/client/streaming.js +7 -1
  8. package/dist/client/streaming.js.map +1 -1
  9. package/dist/component/_generated/api.d.ts +12 -1
  10. package/dist/component/messages.d.ts +1 -1
  11. package/dist/component/schema.d.ts +38 -28
  12. package/dist/component/schema.d.ts.map +1 -1
  13. package/dist/component/schema.js +3 -2
  14. package/dist/component/schema.js.map +1 -1
  15. package/dist/component/streams.d.ts +7 -0
  16. package/dist/component/streams.d.ts.map +1 -1
  17. package/dist/component/streams.js +49 -22
  18. package/dist/component/streams.js.map +1 -1
  19. package/dist/component/users.js +1 -1
  20. package/dist/component/users.js.map +1 -1
  21. package/dist/react/deltas.d.ts.map +1 -1
  22. package/dist/react/deltas.js +2 -2
  23. package/dist/react/deltas.js.map +1 -1
  24. package/dist/react/index.d.ts +4 -2
  25. package/dist/react/index.d.ts.map +1 -1
  26. package/dist/react/index.js +22 -9
  27. package/dist/react/index.js.map +1 -1
  28. package/dist/react/optimisticallySendMessage.js +1 -1
  29. package/dist/react/optimisticallySendMessage.js.map +1 -1
  30. package/dist/react/toUIMessages.js +7 -7
  31. package/dist/react/toUIMessages.js.map +1 -1
  32. package/dist/validators.d.ts +8 -3
  33. package/dist/validators.d.ts.map +1 -1
  34. package/dist/validators.js +2 -0
  35. package/dist/validators.js.map +1 -1
  36. package/package.json +2 -2
  37. package/src/client/index.ts +7 -4
  38. package/src/client/streaming.ts +7 -1
  39. package/src/component/_generated/api.d.ts +12 -1
  40. package/src/component/schema.ts +3 -2
  41. package/src/component/streams.ts +85 -39
  42. package/src/component/users.ts +1 -1
  43. package/src/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  44. package/src/react/deltas.ts +4 -2
  45. package/src/react/index.ts +23 -11
  46. package/src/react/optimisticallySendMessage.ts +1 -1
  47. package/src/react/toUIMessages.test.ts +7 -0
  48. package/src/react/toUIMessages.ts +7 -7
  49. package/src/validators.ts +6 -0
@@ -1,6 +1,7 @@
1
1
  import { describe, it, expect } from "vitest";
2
2
  import { toUIMessages } from "./toUIMessages.js";
3
3
  import type { MessageDoc } from "../client/index.js";
4
+ import { assert } from "convex-helpers";
4
5
 
5
6
  // Helper to create a base message doc
6
7
  function baseMessageDoc(overrides: Partial<MessageDoc> = {}): MessageDoc {
@@ -170,6 +171,12 @@ describe("toUIMessages", () => {
170
171
  expect(
171
172
  uiMessages[0].parts.filter((p) => p.type === "reasoning")
172
173
  ).toHaveLength(1);
174
+ expect(uiMessages[0].parts[0].type).toBe("reasoning");
175
+ assert(uiMessages[0].parts[0].type === "reasoning");
176
+ expect(uiMessages[0].parts[0].reasoning).toBe(
177
+ "I'm thinking...I'm thinking..."
178
+ );
179
+
173
180
  expect(uiMessages[0].parts.filter((p) => p.type === "text")).toHaveLength(
174
181
  1
175
182
  );
@@ -80,13 +80,6 @@ export function toUIMessages(
80
80
  }
81
81
  // update it to the last message's id
82
82
  assistantMessage.id = message.id ?? message._id;
83
- if (message.text) {
84
- assistantMessage.parts.push({
85
- type: "text",
86
- text: message.text,
87
- });
88
- assistantMessage.content += message.text;
89
- }
90
83
  if (message.reasoning) {
91
84
  assistantMessage.parts.push({
92
85
  type: "reasoning",
@@ -94,6 +87,13 @@ export function toUIMessages(
94
87
  details: message.reasoningDetails ?? [],
95
88
  });
96
89
  }
90
+ if (message.text) {
91
+ assistantMessage.parts.push({
92
+ type: "text",
93
+ text: message.text,
94
+ });
95
+ assistantMessage.content += message.text;
96
+ }
97
97
  for (const source of message.sources ?? []) {
98
98
  assistantMessage.parts.push({
99
99
  type: "source",
package/src/validators.ts CHANGED
@@ -460,6 +460,7 @@ export const vStreamArgs = v.optional(
460
460
  v.union(
461
461
  v.object({
462
462
  kind: v.literal("list"),
463
+ startOrder: v.optional(v.number()),
463
464
  }),
464
465
  v.object({
465
466
  kind: v.literal("deltas"),
@@ -471,6 +472,11 @@ export type StreamArgs = Infer<typeof vStreamArgs>;
471
472
 
472
473
  export const vStreamMessage = v.object({
473
474
  streamId: v.string(),
475
+ status: v.union(
476
+ v.literal("streaming"),
477
+ v.literal("finished"),
478
+ v.literal("aborted")
479
+ ),
474
480
  order: v.number(),
475
481
  stepOrder: v.number(),
476
482
  // metadata