@convex-dev/agent 0.6.0-alpha.0 → 0.6.0-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 (66) hide show
  1. package/MIGRATION.md +153 -0
  2. package/dist/client/createTool.d.ts +18 -21
  3. package/dist/client/createTool.d.ts.map +1 -1
  4. package/dist/client/createTool.js +3 -2
  5. package/dist/client/createTool.js.map +1 -1
  6. package/dist/client/definePlaygroundAPI.d.ts +48 -48
  7. package/dist/client/index.d.ts +109 -62
  8. package/dist/client/index.d.ts.map +1 -1
  9. package/dist/client/index.js +92 -1
  10. package/dist/client/index.js.map +1 -1
  11. package/dist/client/messages.d.ts +12 -12
  12. package/dist/client/mockModel.d.ts.map +1 -1
  13. package/dist/client/mockModel.js +9 -2
  14. package/dist/client/mockModel.js.map +1 -1
  15. package/dist/client/search.d.ts +12 -12
  16. package/dist/client/search.d.ts.map +1 -1
  17. package/dist/client/search.js +3 -3
  18. package/dist/client/search.js.map +1 -1
  19. package/dist/client/start.d.ts +1 -1
  20. package/dist/client/start.d.ts.map +1 -1
  21. package/dist/client/start.js +28 -14
  22. package/dist/client/start.js.map +1 -1
  23. package/dist/client/streamText.d.ts.map +1 -1
  24. package/dist/client/streamText.js +27 -3
  25. package/dist/client/streamText.js.map +1 -1
  26. package/dist/client/streaming.d.ts +105 -94
  27. package/dist/client/streaming.d.ts.map +1 -1
  28. package/dist/client/streaming.js +28 -8
  29. package/dist/client/streaming.js.map +1 -1
  30. package/dist/client/types.d.ts +13 -12
  31. package/dist/client/types.d.ts.map +1 -1
  32. package/dist/component/_generated/component.d.ts +1 -0
  33. package/dist/component/_generated/component.d.ts.map +1 -1
  34. package/dist/component/messages.d.ts +143 -142
  35. package/dist/component/messages.d.ts.map +1 -1
  36. package/dist/component/messages.js +13 -3
  37. package/dist/component/messages.js.map +1 -1
  38. package/dist/component/streams.d.ts +5 -5
  39. package/dist/component/threads.d.ts +19 -19
  40. package/dist/component/users.d.ts +3 -3
  41. package/dist/deltas.d.ts.map +1 -1
  42. package/dist/deltas.js +0 -1
  43. package/dist/deltas.js.map +1 -1
  44. package/dist/mapping.d.ts +19 -1
  45. package/dist/mapping.d.ts.map +1 -1
  46. package/dist/mapping.js +57 -6
  47. package/dist/mapping.js.map +1 -1
  48. package/dist/react/useDeltaStreams.d.ts.map +1 -1
  49. package/dist/react/useDeltaStreams.js +5 -0
  50. package/dist/react/useDeltaStreams.js.map +1 -1
  51. package/package.json +4 -2
  52. package/src/client/approval.test.ts +350 -0
  53. package/src/client/createTool.ts +50 -52
  54. package/src/client/index.ts +120 -1
  55. package/src/client/mockModel.ts +9 -2
  56. package/src/client/search.ts +7 -3
  57. package/src/client/start.ts +41 -24
  58. package/src/client/streamText.ts +27 -3
  59. package/src/client/streaming.ts +33 -11
  60. package/src/client/types.ts +14 -12
  61. package/src/component/_generated/component.ts +53 -64
  62. package/src/component/messages.ts +12 -2
  63. package/src/deltas.ts +0 -1
  64. package/src/mapping.test.ts +77 -0
  65. package/src/mapping.ts +62 -6
  66. package/src/react/useDeltaStreams.ts +6 -0
@@ -24,6 +24,8 @@ options) {
24
24
  const { threadId } = options ?? {};
25
25
  const { args, userId, order, stepOrder, promptMessageId, ...call } = await startGeneration(ctx, component, streamTextArgs, options);
26
26
  const steps = [];
27
+ // Track the final step for atomic save with stream finish (issue #181)
28
+ let pendingFinalStep;
27
29
  const streamer = threadId && options.saveStreamDeltas
28
30
  ? new DeltaStreamer(component, ctx, {
29
31
  throttleMs: typeof options.saveStreamDeltas === "object"
@@ -71,7 +73,15 @@ options) {
71
73
  onStepFinish: async (step) => {
72
74
  steps.push(step);
73
75
  const createPendingMessage = await willContinue(steps, args.stopWhen);
74
- await call.save({ step }, createPendingMessage);
76
+ if (!createPendingMessage && streamer) {
77
+ // This is the final step with streaming enabled.
78
+ // Defer saving until stream consumption completes for atomic finish (issue #181).
79
+ streamer.markFinishedExternally();
80
+ pendingFinalStep = step;
81
+ }
82
+ else {
83
+ await call.save({ step }, createPendingMessage);
84
+ }
75
85
  return args.onStepFinish?.(step);
76
86
  },
77
87
  });
@@ -79,8 +89,22 @@ options) {
79
89
  if ((typeof options?.saveStreamDeltas === "object" &&
80
90
  !options.saveStreamDeltas.returnImmediately) ||
81
91
  options?.saveStreamDeltas === true) {
82
- await stream;
83
- await result.consumeStream();
92
+ try {
93
+ await stream;
94
+ await result.consumeStream();
95
+ }
96
+ catch (e) {
97
+ // If the stream errored (e.g. onStepFinish threw), the DeltaStreamer's
98
+ // finish() was never called, leaving the streaming message stuck in
99
+ // "streaming" state. Clean it up by marking it as aborted.
100
+ await streamer?.fail(e instanceof Error ? e.message : String(e));
101
+ throw e;
102
+ }
103
+ }
104
+ // If we deferred the final step save, do it now with atomic stream finish.
105
+ if (pendingFinalStep && streamer) {
106
+ const finishStreamId = await streamer.getOrCreateStreamId();
107
+ await call.save({ step: pendingFinalStep }, false, finishStreamId);
84
108
  }
85
109
  const metadata = {
86
110
  promptMessageId,
@@ -1 +1 @@
1
- {"version":3,"file":"streamText.js","sourceRoot":"","sources":["../../src/client/streamText.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamText.js","sourceRoot":"","sources":["../../src/client/streamText.ts"],"names":[],"mappings":"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"}