@convex-dev/agent 0.6.0-alpha.0 → 0.6.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 (192) hide show
  1. package/MIGRATION.md +153 -0
  2. package/package.json +4 -2
  3. package/src/UIMessages.ts +135 -0
  4. package/src/client/approval.test.ts +350 -0
  5. package/src/client/createTool.ts +50 -52
  6. package/src/client/index.ts +162 -1
  7. package/src/client/mockModel.ts +9 -2
  8. package/src/client/search.test.ts +4 -5
  9. package/src/client/search.ts +47 -2
  10. package/src/client/start.ts +41 -24
  11. package/src/client/streamText.ts +27 -3
  12. package/src/client/streaming.integration.test.ts +1206 -0
  13. package/src/client/streaming.ts +41 -12
  14. package/src/client/types.ts +14 -12
  15. package/src/component/_generated/component.ts +53 -64
  16. package/src/component/messages.ts +12 -2
  17. package/src/deltas.ts +0 -1
  18. package/src/mapping.test.ts +143 -1
  19. package/src/mapping.ts +115 -6
  20. package/src/react/useDeltaStreams.ts +6 -0
  21. package/dist/UIMessages.d.ts +0 -46
  22. package/dist/UIMessages.d.ts.map +0 -1
  23. package/dist/UIMessages.js +0 -546
  24. package/dist/UIMessages.js.map +0 -1
  25. package/dist/client/createTool.d.ts +0 -170
  26. package/dist/client/createTool.d.ts.map +0 -1
  27. package/dist/client/createTool.js +0 -115
  28. package/dist/client/createTool.js.map +0 -1
  29. package/dist/client/defaultComponent.d.ts +0 -11
  30. package/dist/client/defaultComponent.d.ts.map +0 -1
  31. package/dist/client/defaultComponent.js +0 -7
  32. package/dist/client/defaultComponent.js.map +0 -1
  33. package/dist/client/definePlaygroundAPI.d.ts +0 -1725
  34. package/dist/client/definePlaygroundAPI.d.ts.map +0 -1
  35. package/dist/client/definePlaygroundAPI.js +0 -271
  36. package/dist/client/definePlaygroundAPI.js.map +0 -1
  37. package/dist/client/files.d.ts +0 -69
  38. package/dist/client/files.d.ts.map +0 -1
  39. package/dist/client/files.js +0 -181
  40. package/dist/client/files.js.map +0 -1
  41. package/dist/client/index.d.ts +0 -2044
  42. package/dist/client/index.d.ts.map +0 -1
  43. package/dist/client/index.js +0 -804
  44. package/dist/client/index.js.map +0 -1
  45. package/dist/client/messages.d.ts +0 -461
  46. package/dist/client/messages.d.ts.map +0 -1
  47. package/dist/client/messages.js +0 -106
  48. package/dist/client/messages.js.map +0 -1
  49. package/dist/client/mockModel.d.ts +0 -42
  50. package/dist/client/mockModel.d.ts.map +0 -1
  51. package/dist/client/mockModel.js +0 -175
  52. package/dist/client/mockModel.js.map +0 -1
  53. package/dist/client/saveInputMessages.d.ts +0 -20
  54. package/dist/client/saveInputMessages.d.ts.map +0 -1
  55. package/dist/client/saveInputMessages.js +0 -58
  56. package/dist/client/saveInputMessages.js.map +0 -1
  57. package/dist/client/search.d.ts +0 -493
  58. package/dist/client/search.d.ts.map +0 -1
  59. package/dist/client/search.js +0 -425
  60. package/dist/client/search.js.map +0 -1
  61. package/dist/client/start.d.ts +0 -84
  62. package/dist/client/start.d.ts.map +0 -1
  63. package/dist/client/start.js +0 -171
  64. package/dist/client/start.js.map +0 -1
  65. package/dist/client/streamText.d.ts +0 -46
  66. package/dist/client/streamText.d.ts.map +0 -1
  67. package/dist/client/streamText.js +0 -93
  68. package/dist/client/streamText.js.map +0 -1
  69. package/dist/client/streaming.d.ts +0 -3767
  70. package/dist/client/streaming.d.ts.map +0 -1
  71. package/dist/client/streaming.js +0 -294
  72. package/dist/client/streaming.js.map +0 -1
  73. package/dist/client/threads.d.ts +0 -46
  74. package/dist/client/threads.d.ts.map +0 -1
  75. package/dist/client/threads.js +0 -49
  76. package/dist/client/threads.js.map +0 -1
  77. package/dist/client/types.d.ts +0 -460
  78. package/dist/client/types.d.ts.map +0 -1
  79. package/dist/client/types.js +0 -2
  80. package/dist/client/types.js.map +0 -1
  81. package/dist/client/utils.d.ts +0 -4
  82. package/dist/client/utils.d.ts.map +0 -1
  83. package/dist/client/utils.js +0 -21
  84. package/dist/client/utils.js.map +0 -1
  85. package/dist/component/_generated/api.d.ts +0 -48
  86. package/dist/component/_generated/api.d.ts.map +0 -1
  87. package/dist/component/_generated/api.js +0 -31
  88. package/dist/component/_generated/api.js.map +0 -1
  89. package/dist/component/_generated/component.d.ts +0 -3119
  90. package/dist/component/_generated/component.d.ts.map +0 -1
  91. package/dist/component/_generated/component.js +0 -11
  92. package/dist/component/_generated/component.js.map +0 -1
  93. package/dist/component/_generated/dataModel.d.ts +0 -46
  94. package/dist/component/_generated/dataModel.d.ts.map +0 -1
  95. package/dist/component/_generated/dataModel.js +0 -11
  96. package/dist/component/_generated/dataModel.js.map +0 -1
  97. package/dist/component/_generated/server.d.ts +0 -121
  98. package/dist/component/_generated/server.d.ts.map +0 -1
  99. package/dist/component/_generated/server.js +0 -78
  100. package/dist/component/_generated/server.js.map +0 -1
  101. package/dist/component/apiKeys.d.ts +0 -11
  102. package/dist/component/apiKeys.d.ts.map +0 -1
  103. package/dist/component/apiKeys.js +0 -69
  104. package/dist/component/apiKeys.js.map +0 -1
  105. package/dist/component/convex.config.d.ts +0 -3
  106. package/dist/component/convex.config.d.ts.map +0 -1
  107. package/dist/component/convex.config.js +0 -3
  108. package/dist/component/convex.config.js.map +0 -1
  109. package/dist/component/files.d.ts +0 -97
  110. package/dist/component/files.d.ts.map +0 -1
  111. package/dist/component/files.js +0 -190
  112. package/dist/component/files.js.map +0 -1
  113. package/dist/component/messages.d.ts +0 -3850
  114. package/dist/component/messages.d.ts.map +0 -1
  115. package/dist/component/messages.js +0 -747
  116. package/dist/component/messages.js.map +0 -1
  117. package/dist/component/schema.d.ts +0 -8026
  118. package/dist/component/schema.d.ts.map +0 -1
  119. package/dist/component/schema.js +0 -147
  120. package/dist/component/schema.js.map +0 -1
  121. package/dist/component/streams.d.ts +0 -128
  122. package/dist/component/streams.d.ts.map +0 -1
  123. package/dist/component/streams.js +0 -413
  124. package/dist/component/streams.js.map +0 -1
  125. package/dist/component/threads.d.ts +0 -115
  126. package/dist/component/threads.d.ts.map +0 -1
  127. package/dist/component/threads.js +0 -208
  128. package/dist/component/threads.js.map +0 -1
  129. package/dist/component/users.d.ts +0 -52
  130. package/dist/component/users.d.ts.map +0 -1
  131. package/dist/component/users.js +0 -229
  132. package/dist/component/users.js.map +0 -1
  133. package/dist/component/vector/index.d.ts +0 -61
  134. package/dist/component/vector/index.d.ts.map +0 -1
  135. package/dist/component/vector/index.js +0 -146
  136. package/dist/component/vector/index.js.map +0 -1
  137. package/dist/component/vector/tables.d.ts +0 -58
  138. package/dist/component/vector/tables.d.ts.map +0 -1
  139. package/dist/component/vector/tables.js +0 -56
  140. package/dist/component/vector/tables.js.map +0 -1
  141. package/dist/deltas.d.ts +0 -43
  142. package/dist/deltas.d.ts.map +0 -1
  143. package/dist/deltas.js +0 -447
  144. package/dist/deltas.js.map +0 -1
  145. package/dist/mapping.d.ts +0 -54
  146. package/dist/mapping.d.ts.map +0 -1
  147. package/dist/mapping.js +0 -626
  148. package/dist/mapping.js.map +0 -1
  149. package/dist/react/SmoothText.d.ts +0 -5
  150. package/dist/react/SmoothText.d.ts.map +0 -1
  151. package/dist/react/SmoothText.js +0 -6
  152. package/dist/react/SmoothText.js.map +0 -1
  153. package/dist/react/index.d.ts +0 -25
  154. package/dist/react/index.d.ts.map +0 -1
  155. package/dist/react/index.js +0 -70
  156. package/dist/react/index.js.map +0 -1
  157. package/dist/react/optimisticallySendMessage.d.ts +0 -42
  158. package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
  159. package/dist/react/optimisticallySendMessage.js +0 -74
  160. package/dist/react/optimisticallySendMessage.js.map +0 -1
  161. package/dist/react/types.d.ts +0 -12
  162. package/dist/react/types.d.ts.map +0 -1
  163. package/dist/react/types.js +0 -2
  164. package/dist/react/types.js.map +0 -1
  165. package/dist/react/useDeltaStreams.d.ts +0 -10
  166. package/dist/react/useDeltaStreams.d.ts.map +0 -1
  167. package/dist/react/useDeltaStreams.js +0 -101
  168. package/dist/react/useDeltaStreams.js.map +0 -1
  169. package/dist/react/useSmoothText.d.ts +0 -27
  170. package/dist/react/useSmoothText.d.ts.map +0 -1
  171. package/dist/react/useSmoothText.js +0 -68
  172. package/dist/react/useSmoothText.js.map +0 -1
  173. package/dist/react/useStreamingUIMessages.d.ts +0 -22
  174. package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
  175. package/dist/react/useStreamingUIMessages.js +0 -92
  176. package/dist/react/useStreamingUIMessages.js.map +0 -1
  177. package/dist/react/useThreadMessages.d.ts +0 -104
  178. package/dist/react/useThreadMessages.d.ts.map +0 -1
  179. package/dist/react/useThreadMessages.js +0 -148
  180. package/dist/react/useThreadMessages.js.map +0 -1
  181. package/dist/react/useUIMessages.d.ts +0 -96
  182. package/dist/react/useUIMessages.d.ts.map +0 -1
  183. package/dist/react/useUIMessages.js +0 -108
  184. package/dist/react/useUIMessages.js.map +0 -1
  185. package/dist/shared.d.ts +0 -26
  186. package/dist/shared.d.ts.map +0 -1
  187. package/dist/shared.js +0 -67
  188. package/dist/shared.js.map +0 -1
  189. package/dist/validators.d.ts +0 -24516
  190. package/dist/validators.d.ts.map +0 -1
  191. package/dist/validators.js +0 -475
  192. package/dist/validators.js.map +0 -1
@@ -1,413 +0,0 @@
1
- import { omit, pick } from "convex-helpers";
2
- import { v } from "convex/values";
3
- import { vStreamDelta, vStreamMessage, } from "../validators.js";
4
- import { api, internal } from "./_generated/api.js";
5
- import { internalMutation, mutation, query, action, } from "./_generated/server.js";
6
- import schema from "./schema.js";
7
- import { stream } from "convex-helpers/server/stream";
8
- import { mergedStream } from "convex-helpers/server/stream";
9
- import { paginator } from "convex-helpers/server/pagination";
10
- import { deriveUIMessagesFromDeltas } from "../deltas.js";
11
- import { fromUIMessages } from "../UIMessages.js";
12
- const SECOND = 1000;
13
- const MINUTE = 60 * SECOND;
14
- const MAX_DELTAS_PER_REQUEST = 1000;
15
- const MAX_DELTAS_PER_STREAM = 100;
16
- const TIMEOUT_INTERVAL = 10 * MINUTE;
17
- const DELETE_STREAM_DELAY = MINUTE * 5; // 5 minutes
18
- const deltaValidator = schema.tables.streamDeltas.validator;
19
- export const addDelta = mutation({
20
- args: deltaValidator,
21
- returns: v.boolean(),
22
- handler: async (ctx, args) => {
23
- const stream = await ctx.db.get(args.streamId);
24
- if (!stream) {
25
- console.warn("Stream not found", args.streamId);
26
- return false;
27
- }
28
- if (stream.state.kind !== "streaming") {
29
- return false;
30
- }
31
- await ctx.db.insert("streamDeltas", args);
32
- await heartbeatStream(ctx, { streamId: args.streamId });
33
- return true;
34
- },
35
- });
36
- export const listDeltas = query({
37
- args: {
38
- threadId: v.id("threads"),
39
- cursors: v.array(v.object({ streamId: v.id("streamingMessages"), cursor: v.number() })),
40
- },
41
- returns: v.array(vStreamDelta),
42
- handler: async (ctx, args) => {
43
- let totalDeltas = 0;
44
- const deltas = [];
45
- for (const cursor of args.cursors) {
46
- const streamDeltas = await ctx.db
47
- .query("streamDeltas")
48
- .withIndex("streamId_start_end", (q) => q.eq("streamId", cursor.streamId).gte("start", cursor.cursor))
49
- .take(Math.min(MAX_DELTAS_PER_STREAM, MAX_DELTAS_PER_REQUEST - totalDeltas));
50
- totalDeltas += streamDeltas.length;
51
- deltas.push(...streamDeltas.map((d) => pick(d, ["streamId", "start", "end", "parts"])));
52
- if (totalDeltas >= MAX_DELTAS_PER_REQUEST) {
53
- break;
54
- }
55
- }
56
- return deltas;
57
- },
58
- });
59
- export const create = mutation({
60
- args: omit(schema.tables.streamingMessages.validator.fields, ["state"]),
61
- returns: v.id("streamingMessages"),
62
- handler: async (ctx, args) => {
63
- const state = { kind: "streaming", lastHeartbeat: Date.now() };
64
- // TODO: enforce order/stepOrder uniqueness?
65
- const streamId = await ctx.db.insert("streamingMessages", {
66
- ...args,
67
- state,
68
- });
69
- const timeoutFnId = await ctx.scheduler.runAfter(TIMEOUT_INTERVAL, internal.streams.timeoutStream, { streamId });
70
- await ctx.db.patch(streamId, { state: { ...state, timeoutFnId } });
71
- return streamId;
72
- },
73
- });
74
- export const list = query({
75
- args: {
76
- threadId: v.id("threads"),
77
- startOrder: v.optional(v.number()),
78
- statuses: v.optional(v.array(v.union(v.literal("streaming"), v.literal("finished"), v.literal("aborted")))),
79
- },
80
- returns: v.array(vStreamMessage),
81
- handler: async (ctx, args) => {
82
- const statuses = args.statuses ?? ["streaming"];
83
- const messages = await mergedStream(statuses.map((status) => stream(ctx.db, schema)
84
- .query("streamingMessages")
85
- .withIndex("threadId_state_order_stepOrder", (q) => q
86
- .eq("threadId", args.threadId)
87
- .eq("state.kind", status)
88
- .gte("order", args.startOrder ?? 0))
89
- .order("desc")), ["order", "stepOrder"]).take(100);
90
- return messages.map((m) => publicStreamMessage(m));
91
- },
92
- });
93
- function publicStreamMessage(m) {
94
- return {
95
- streamId: m._id,
96
- status: m.state.kind,
97
- ...pick(m, [
98
- "format",
99
- "order",
100
- "stepOrder",
101
- "userId",
102
- "agentName",
103
- "model",
104
- "provider",
105
- "providerOptions",
106
- ]),
107
- };
108
- }
109
- export const abortByOrder = mutation({
110
- args: { threadId: v.id("threads"), order: v.number(), reason: v.string() },
111
- returns: v.boolean(),
112
- handler: async (ctx, args) => {
113
- const streams = await ctx.db
114
- .query("streamingMessages")
115
- .withIndex("threadId_state_order_stepOrder", (q) => q
116
- .eq("threadId", args.threadId)
117
- .eq("state.kind", "streaming")
118
- .eq("order", args.order))
119
- .take(100);
120
- for (const stream of streams) {
121
- await abortById(ctx, { streamId: stream._id, reason: args.reason });
122
- }
123
- return streams.length > 0;
124
- },
125
- });
126
- export const abort = mutation({
127
- args: {
128
- streamId: v.id("streamingMessages"),
129
- reason: v.string(),
130
- finalDelta: v.optional(deltaValidator),
131
- },
132
- returns: v.boolean(),
133
- handler: abortById,
134
- });
135
- async function abortById(ctx, args) {
136
- const stream = await ctx.db.get(args.streamId);
137
- if (!stream) {
138
- throw new Error(`Stream not found: ${args.streamId}`);
139
- }
140
- if (args.finalDelta) {
141
- await ctx.db.insert("streamDeltas", args.finalDelta);
142
- }
143
- if (stream.state.kind !== "streaming") {
144
- return false;
145
- }
146
- await cleanupTimeoutFn(ctx, stream);
147
- await ctx.db.patch(args.streamId, {
148
- state: { kind: "aborted", reason: args.reason },
149
- });
150
- return true;
151
- }
152
- async function cleanupTimeoutFn(ctx, stream) {
153
- if (stream.state.kind === "streaming" && stream.state.timeoutFnId) {
154
- const timeoutFn = await ctx.db.system.get(stream.state.timeoutFnId);
155
- if (timeoutFn?.state.kind === "pending") {
156
- await ctx.scheduler.cancel(stream.state.timeoutFnId);
157
- }
158
- }
159
- }
160
- // No longer used from the DeltaStreamer
161
- export const finish = mutation({
162
- args: {
163
- streamId: v.id("streamingMessages"),
164
- finalDelta: v.optional(deltaValidator),
165
- },
166
- returns: v.null(),
167
- handler: finishHandler,
168
- });
169
- export async function finishHandler(ctx, args) {
170
- if (args.finalDelta) {
171
- await ctx.db.insert("streamDeltas", args.finalDelta);
172
- }
173
- const stream = await ctx.db.get(args.streamId);
174
- if (!stream) {
175
- throw new Error(`Stream not found: ${args.streamId}`);
176
- }
177
- if (stream.state.kind !== "streaming") {
178
- console.warn(`Stream trying to finish ${args.streamId} but is ${stream.state.kind}`);
179
- return;
180
- }
181
- await cleanupTimeoutFn(ctx, stream);
182
- const cleanupFnId = await ctx.scheduler.runAfter(DELETE_STREAM_DELAY, api.streams.deleteStreamAsync, { streamId: args.streamId });
183
- await ctx.db.patch(args.streamId, {
184
- state: { kind: "finished", endedAt: Date.now(), cleanupFnId },
185
- });
186
- }
187
- // TODO: use this heartbeat while streaming, every 30 seconds or so,
188
- // then reduce the timeout to 60 seconds.
189
- export const heartbeat = mutation({
190
- args: { streamId: v.id("streamingMessages") },
191
- returns: v.null(),
192
- handler: heartbeatStream,
193
- });
194
- async function heartbeatStream(ctx, args) {
195
- const stream = await ctx.db.get(args.streamId);
196
- if (!stream) {
197
- console.warn("Stream not found", args.streamId);
198
- return;
199
- }
200
- if (stream.state.kind !== "streaming") {
201
- return;
202
- }
203
- if (Date.now() - stream.state.lastHeartbeat < TIMEOUT_INTERVAL / 4) {
204
- // Debounce heartbeating.
205
- return;
206
- }
207
- if (!stream.state.timeoutFnId) {
208
- throw new Error("Stream has no timeout function");
209
- }
210
- const timeoutFn = await ctx.db.system.get(stream.state.timeoutFnId);
211
- if (!timeoutFn) {
212
- throw new Error("Timeout function not found");
213
- }
214
- if (timeoutFn.state.kind !== "pending") {
215
- throw new Error("Timeout function is not pending");
216
- }
217
- await ctx.scheduler.cancel(stream.state.timeoutFnId);
218
- const timeoutFnId = await ctx.scheduler.runAfter(TIMEOUT_INTERVAL, internal.streams.timeoutStream, { streamId: args.streamId });
219
- await ctx.db.patch(args.streamId, {
220
- state: { kind: "streaming", lastHeartbeat: Date.now(), timeoutFnId },
221
- });
222
- }
223
- export const timeoutStream = internalMutation({
224
- args: { streamId: v.id("streamingMessages") },
225
- returns: v.null(),
226
- handler: async (ctx, args) => {
227
- const stream = await ctx.db.get(args.streamId);
228
- if (!stream || stream.state.kind !== "streaming") {
229
- console.warn("Stream not found", args.streamId);
230
- return;
231
- }
232
- await ctx.db.patch(args.streamId, {
233
- state: { kind: "aborted", reason: "timeout" },
234
- });
235
- },
236
- });
237
- async function deletePageForStreamId(ctx, args) {
238
- const deltas = await paginator(ctx.db, schema)
239
- .query("streamDeltas")
240
- .withIndex("streamId_start_end", (q) => q.eq("streamId", args.streamId))
241
- .paginate({
242
- numItems: MAX_DELTAS_PER_REQUEST,
243
- cursor: args.cursor ?? null,
244
- });
245
- await Promise.all(deltas.page.map((d) => ctx.db.delete(d._id)));
246
- if (deltas.isDone) {
247
- const stream = await ctx.db.get(args.streamId);
248
- if (stream) {
249
- await cleanupTimeoutFn(ctx, stream);
250
- if (stream.state.kind === "finished" && stream.state.cleanupFnId) {
251
- await ctx.scheduler.cancel(stream.state.cleanupFnId);
252
- }
253
- await ctx.db.delete(args.streamId);
254
- }
255
- }
256
- return deltas;
257
- }
258
- export async function deleteStreamsPageForThreadId(ctx, args) {
259
- const allStreamMessages = schema.tables.streamingMessages.validator.fields.state.members
260
- .flatMap((state) => state.fields.kind.value)
261
- .map((stateKind) => stream(ctx.db, schema)
262
- .query("streamingMessages")
263
- .withIndex("threadId_state_order_stepOrder", (q) => q
264
- .eq("threadId", args.threadId)
265
- .eq("state.kind", stateKind)
266
- .gte("order", args.streamOrder ?? 0)));
267
- let deltaCursor = args.deltaCursor;
268
- const streamMessage = await mergedStream(allStreamMessages, [
269
- "threadId",
270
- "state.kind",
271
- "order",
272
- "stepOrder",
273
- ]).first();
274
- if (!streamMessage) {
275
- return { isDone: true, streamOrder: undefined, deltaCursor: undefined };
276
- }
277
- const result = await deletePageForStreamId(ctx, {
278
- streamId: streamMessage._id,
279
- cursor: deltaCursor,
280
- });
281
- if (result.isDone) {
282
- deltaCursor = undefined;
283
- }
284
- return { isDone: false, streamOrder: streamMessage.order, deltaCursor };
285
- }
286
- export const deleteStreamsPageForThreadIdMutation = internalMutation({
287
- args: {
288
- threadId: v.id("threads"),
289
- streamOrder: v.optional(v.number()),
290
- deltaCursor: v.optional(v.string()),
291
- },
292
- returns: v.object({
293
- isDone: v.boolean(),
294
- streamOrder: v.optional(v.number()),
295
- deltaCursor: v.optional(v.string()),
296
- }),
297
- handler: deleteStreamsPageForThreadId,
298
- });
299
- export const deleteAllStreamsForThreadIdAsync = mutation({
300
- args: {
301
- threadId: v.id("threads"),
302
- streamOrder: v.optional(v.number()),
303
- deltaCursor: v.optional(v.string()),
304
- },
305
- returns: v.object({
306
- isDone: v.boolean(),
307
- streamOrder: v.optional(v.number()),
308
- deltaCursor: v.optional(v.string()),
309
- }),
310
- handler: async (ctx, args) => {
311
- const result = await deleteStreamsPageForThreadId(ctx, args);
312
- if (!result.isDone) {
313
- await ctx.scheduler.runAfter(0, api.streams.deleteAllStreamsForThreadIdAsync, {
314
- threadId: args.threadId,
315
- streamOrder: result.streamOrder,
316
- deltaCursor: result.deltaCursor,
317
- });
318
- }
319
- else {
320
- await ctx.db.delete(args.threadId);
321
- }
322
- return result;
323
- },
324
- });
325
- export const deleteStreamSync = mutation({
326
- args: { streamId: v.id("streamingMessages") },
327
- returns: v.null(),
328
- handler: async (ctx, args) => {
329
- let deltas = await deletePageForStreamId(ctx, args);
330
- while (!deltas.isDone) {
331
- deltas = await deletePageForStreamId(ctx, {
332
- ...args,
333
- cursor: deltas.continueCursor,
334
- });
335
- }
336
- },
337
- });
338
- export const deleteStreamAsync = mutation({
339
- args: { streamId: v.id("streamingMessages"), cursor: v.optional(v.string()) },
340
- returns: v.null(),
341
- handler: async (ctx, args) => {
342
- const result = await deletePageForStreamId(ctx, args);
343
- if (!result.isDone) {
344
- await ctx.scheduler.runAfter(0, api.streams.deleteStreamAsync, {
345
- streamId: args.streamId,
346
- cursor: result.continueCursor,
347
- });
348
- }
349
- },
350
- });
351
- export const deleteAllStreamsForThreadIdSync = action({
352
- args: { threadId: v.id("threads") },
353
- returns: v.null(),
354
- handler: async (ctx, args) => {
355
- let result = await ctx.runMutation(internal.streams.deleteStreamsPageForThreadIdMutation, args);
356
- while (!result.isDone) {
357
- result = await ctx.runMutation(internal.streams.deleteStreamsPageForThreadIdMutation, {
358
- ...args,
359
- streamOrder: result.streamOrder,
360
- deltaCursor: result.deltaCursor,
361
- });
362
- }
363
- },
364
- });
365
- export async function getStreamingMessages(ctx, threadId, order, stepOrder) {
366
- return mergedStream(["aborted", "streaming", "finished"].map((state) => stream(ctx.db, schema)
367
- .query("streamingMessages")
368
- .withIndex("threadId_state_order_stepOrder", (q) => q
369
- .eq("threadId", threadId)
370
- .eq("state.kind", state)
371
- .eq("order", order)
372
- .lte("stepOrder", stepOrder))
373
- .order("desc")), ["stepOrder"]).take(10);
374
- }
375
- export async function getStreamingMessagesWithMetadata(ctx, { threadId, order, stepOrder, }, metadata) {
376
- // See if there are any streaming messages for this order
377
- const streamingMessages = await getStreamingMessages(ctx, threadId, order, stepOrder);
378
- const messages = (await Promise.all(streamingMessages.map(async (streamingMessage) => {
379
- const deltas = await ctx.db
380
- .query("streamDeltas")
381
- .withIndex("streamId_start_end", (q) => q.eq("streamId", streamingMessage._id))
382
- .take(1000);
383
- const uiMessages = await deriveUIMessagesFromDeltas(threadId, [publicStreamMessage(streamingMessage)], deltas);
384
- // We don't save messages that have already been saved
385
- const numToSkip = stepOrder - streamingMessage.stepOrder;
386
- const messages = await Promise.all((await fromUIMessages(uiMessages, streamingMessage))
387
- .slice(numToSkip)
388
- .filter((m) => m.message !== undefined)
389
- .map(async (msg) => {
390
- return {
391
- ...pick(msg, [
392
- "message",
393
- "fileIds",
394
- "status",
395
- "finishReason",
396
- "model",
397
- "provider",
398
- "providerMetadata",
399
- "sources",
400
- "reasoning",
401
- "reasoningDetails",
402
- "usage",
403
- "warnings",
404
- "error",
405
- ]),
406
- ...metadata,
407
- };
408
- }));
409
- return messages;
410
- }))).flat();
411
- return messages;
412
- }
413
- //# sourceMappingURL=streams.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streams.js","sourceRoot":"","sources":["../../src/component/streams.ts"],"names":[],"mappings":"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"}
@@ -1,115 +0,0 @@
1
- export declare const getThread: import("convex/server").RegisteredQuery<"public", {
2
- threadId: import("convex/values").GenericId<"threads">;
3
- }, Promise<{
4
- userId?: string | undefined;
5
- title?: string | undefined;
6
- summary?: string | undefined;
7
- status: "active" | "archived";
8
- _creationTime: number;
9
- _id: string;
10
- } | null>>;
11
- export declare const listThreadsByUserId: import("convex/server").RegisteredQuery<"public", {
12
- userId?: string | undefined;
13
- order?: "asc" | "desc" | undefined;
14
- paginationOpts?: {
15
- id?: number;
16
- endCursor?: string | null;
17
- maximumRowsRead?: number;
18
- maximumBytesRead?: number;
19
- numItems: number;
20
- cursor: string | null;
21
- } | undefined;
22
- }, Promise<{
23
- page: {
24
- userId?: string | undefined;
25
- title?: string | undefined;
26
- summary?: string | undefined;
27
- status: "active" | "archived";
28
- _creationTime: number;
29
- _id: string;
30
- }[];
31
- isDone: boolean;
32
- continueCursor: import("convex/server").Cursor;
33
- splitCursor?: import("convex/server").Cursor | null;
34
- pageStatus?: "SplitRecommended" | "SplitRequired" | null;
35
- }>>;
36
- export declare const createThread: import("convex/server").RegisteredMutation<"public", {
37
- userId?: string | undefined;
38
- title?: string | undefined;
39
- summary?: string | undefined;
40
- defaultSystemPrompt?: string | undefined;
41
- parentThreadIds?: import("convex/values").GenericId<"threads">[] | undefined;
42
- }, Promise<{
43
- userId?: string | undefined;
44
- title?: string | undefined;
45
- summary?: string | undefined;
46
- status: "active" | "archived";
47
- _creationTime: number;
48
- _id: string;
49
- }>>;
50
- export declare const threadFieldsSupportingPatch: ("status" | "userId" | "title" | "summary")[];
51
- export declare const updateThread: import("convex/server").RegisteredMutation<"public", {
52
- threadId: import("convex/values").GenericId<"threads">;
53
- patch: {
54
- status?: "active" | "archived" | undefined;
55
- userId?: string | undefined;
56
- title?: string | undefined;
57
- summary?: string | undefined;
58
- };
59
- }, Promise<{
60
- userId?: string | undefined;
61
- title?: string | undefined;
62
- summary?: string | undefined;
63
- status: "active" | "archived";
64
- _creationTime: number;
65
- _id: string;
66
- }>>;
67
- export declare const searchThreadTitles: import("convex/server").RegisteredQuery<"public", {
68
- userId?: string | null | undefined;
69
- limit: number;
70
- query: string;
71
- }, Promise<{
72
- userId?: string | undefined;
73
- title?: string | undefined;
74
- summary?: string | undefined;
75
- status: "active" | "archived";
76
- _creationTime: number;
77
- _id: string;
78
- }[]>>;
79
- /**
80
- * Use this to delete a thread and everything it contains.
81
- * It will try to delete all pages synchronously.
82
- * If it times out or fails, you'll have to run it again.
83
- */
84
- export declare const deleteAllForThreadIdSync: import("convex/server").RegisteredAction<"public", {
85
- limit?: number | undefined;
86
- threadId: import("convex/values").GenericId<"threads">;
87
- }, Promise<void>>;
88
- export declare const _deletePageForThreadId: import("convex/server").RegisteredMutation<"internal", {
89
- limit?: number | undefined;
90
- cursor?: string | undefined;
91
- deltaCursor?: string | undefined;
92
- streamOrder?: number | undefined;
93
- messagesDone?: boolean | undefined;
94
- streamsDone?: boolean | undefined;
95
- threadId: import("convex/values").GenericId<"threads">;
96
- }, Promise<{
97
- isDone: boolean;
98
- cursor: string;
99
- }>>;
100
- /**
101
- * Use this to delete a thread and everything it contains.
102
- * It will continue deleting pages asynchronously.
103
- */
104
- export declare const deleteAllForThreadIdAsync: import("convex/server").RegisteredMutation<"public", {
105
- limit?: number | undefined;
106
- cursor?: string | undefined;
107
- deltaCursor?: string | undefined;
108
- streamOrder?: number | undefined;
109
- messagesDone?: boolean | undefined;
110
- streamsDone?: boolean | undefined;
111
- threadId: import("convex/values").GenericId<"threads">;
112
- }, Promise<{
113
- isDone: boolean;
114
- }>>;
115
- //# sourceMappingURL=threads.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/component/threads.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,SAAS;;;;;;;;;UAMpB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;GAkB9B,CAAC;AAIH,eAAO,MAAM,YAAY;;;;;;;;;;;;;GAUvB,CAAC;AAEH,eAAO,MAAM,2BAA2B,+CAKvC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;GAYvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;KAkB7B,CAAC;AAgBH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;iBAmBnC,CAAC;AAkBH,eAAO,MAAM,sBAAsB;;;;;;;;;;;GAIjC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;GAoCpC,CAAC"}