@convex-dev/agent 0.1.10 → 0.1.11

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 (132) hide show
  1. package/dist/esm/client/index.d.ts.map +1 -1
  2. package/dist/esm/client/index.js +25 -24
  3. package/dist/esm/client/index.js.map +1 -1
  4. package/dist/esm/mapping.d.ts +1 -0
  5. package/dist/esm/mapping.d.ts.map +1 -1
  6. package/dist/esm/mapping.js +2 -2
  7. package/dist/esm/mapping.js.map +1 -1
  8. package/dist/esm.tsbuildinfo +1 -1
  9. package/package.json +23 -53
  10. package/src/client/index.ts +27 -27
  11. package/src/mapping.ts +9 -2
  12. package/dist/commonjs/client/_generated/_ignore.d.ts +0 -1
  13. package/dist/commonjs/client/_generated/_ignore.d.ts.map +0 -1
  14. package/dist/commonjs/client/_generated/_ignore.js +0 -3
  15. package/dist/commonjs/client/_generated/_ignore.js.map +0 -1
  16. package/dist/commonjs/client/createTool.d.ts +0 -47
  17. package/dist/commonjs/client/createTool.d.ts.map +0 -1
  18. package/dist/commonjs/client/createTool.js +0 -49
  19. package/dist/commonjs/client/createTool.js.map +0 -1
  20. package/dist/commonjs/client/files.d.ts +0 -56
  21. package/dist/commonjs/client/files.d.ts.map +0 -1
  22. package/dist/commonjs/client/files.js +0 -129
  23. package/dist/commonjs/client/files.js.map +0 -1
  24. package/dist/commonjs/client/index.d.ts +0 -1355
  25. package/dist/commonjs/client/index.d.ts.map +0 -1
  26. package/dist/commonjs/client/index.js +0 -1169
  27. package/dist/commonjs/client/index.js.map +0 -1
  28. package/dist/commonjs/client/streaming.d.ts +0 -57
  29. package/dist/commonjs/client/streaming.d.ts.map +0 -1
  30. package/dist/commonjs/client/streaming.js +0 -148
  31. package/dist/commonjs/client/streaming.js.map +0 -1
  32. package/dist/commonjs/client/types.d.ts +0 -352
  33. package/dist/commonjs/client/types.d.ts.map +0 -1
  34. package/dist/commonjs/client/types.js +0 -3
  35. package/dist/commonjs/client/types.js.map +0 -1
  36. package/dist/commonjs/component/_generated/api.d.ts +0 -1938
  37. package/dist/commonjs/component/_generated/api.d.ts.map +0 -1
  38. package/dist/commonjs/component/_generated/api.js +0 -25
  39. package/dist/commonjs/component/_generated/api.js.map +0 -1
  40. package/dist/commonjs/component/_generated/dataModel.d.ts +0 -60
  41. package/dist/commonjs/component/_generated/server.d.ts +0 -149
  42. package/dist/commonjs/component/_generated/server.d.ts.map +0 -1
  43. package/dist/commonjs/component/_generated/server.js +0 -77
  44. package/dist/commonjs/component/_generated/server.js.map +0 -1
  45. package/dist/commonjs/component/apiKeys.d.ts +0 -11
  46. package/dist/commonjs/component/apiKeys.d.ts.map +0 -1
  47. package/dist/commonjs/component/apiKeys.js +0 -72
  48. package/dist/commonjs/component/apiKeys.js.map +0 -1
  49. package/dist/commonjs/component/convex.config.d.ts +0 -3
  50. package/dist/commonjs/component/convex.config.d.ts.map +0 -1
  51. package/dist/commonjs/component/convex.config.js +0 -5
  52. package/dist/commonjs/component/convex.config.js.map +0 -1
  53. package/dist/commonjs/component/files.d.ts +0 -90
  54. package/dist/commonjs/component/files.d.ts.map +0 -1
  55. package/dist/commonjs/component/files.js +0 -157
  56. package/dist/commonjs/component/files.js.map +0 -1
  57. package/dist/commonjs/component/messages.d.ts +0 -1479
  58. package/dist/commonjs/component/messages.d.ts.map +0 -1
  59. package/dist/commonjs/component/messages.js +0 -483
  60. package/dist/commonjs/component/messages.js.map +0 -1
  61. package/dist/commonjs/component/schema.d.ts +0 -4582
  62. package/dist/commonjs/component/schema.d.ts.map +0 -1
  63. package/dist/commonjs/component/schema.js +0 -167
  64. package/dist/commonjs/component/schema.js.map +0 -1
  65. package/dist/commonjs/component/streams.d.ts +0 -242
  66. package/dist/commonjs/component/streams.d.ts.map +0 -1
  67. package/dist/commonjs/component/streams.js +0 -323
  68. package/dist/commonjs/component/streams.js.map +0 -1
  69. package/dist/commonjs/component/threads.d.ts +0 -101
  70. package/dist/commonjs/component/threads.d.ts.map +0 -1
  71. package/dist/commonjs/component/threads.js +0 -188
  72. package/dist/commonjs/component/threads.js.map +0 -1
  73. package/dist/commonjs/component/users.d.ts +0 -52
  74. package/dist/commonjs/component/users.d.ts.map +0 -1
  75. package/dist/commonjs/component/users.js +0 -233
  76. package/dist/commonjs/component/users.js.map +0 -1
  77. package/dist/commonjs/component/vector/index.d.ts +0 -61
  78. package/dist/commonjs/component/vector/index.d.ts.map +0 -1
  79. package/dist/commonjs/component/vector/index.js +0 -153
  80. package/dist/commonjs/component/vector/index.js.map +0 -1
  81. package/dist/commonjs/component/vector/tables.d.ts +0 -58
  82. package/dist/commonjs/component/vector/tables.d.ts.map +0 -1
  83. package/dist/commonjs/component/vector/tables.js +0 -62
  84. package/dist/commonjs/component/vector/tables.js.map +0 -1
  85. package/dist/commonjs/mapping.d.ts +0 -50
  86. package/dist/commonjs/mapping.d.ts.map +0 -1
  87. package/dist/commonjs/mapping.js +0 -272
  88. package/dist/commonjs/mapping.js.map +0 -1
  89. package/dist/commonjs/package.json +0 -3
  90. package/dist/commonjs/react/deltas.d.ts +0 -29
  91. package/dist/commonjs/react/deltas.d.ts.map +0 -1
  92. package/dist/commonjs/react/deltas.js +0 -274
  93. package/dist/commonjs/react/deltas.js.map +0 -1
  94. package/dist/commonjs/react/index.d.ts +0 -95
  95. package/dist/commonjs/react/index.d.ts.map +0 -1
  96. package/dist/commonjs/react/index.js +0 -219
  97. package/dist/commonjs/react/index.js.map +0 -1
  98. package/dist/commonjs/react/optimisticallySendMessage.d.ts +0 -8
  99. package/dist/commonjs/react/optimisticallySendMessage.d.ts.map +0 -1
  100. package/dist/commonjs/react/optimisticallySendMessage.js +0 -43
  101. package/dist/commonjs/react/optimisticallySendMessage.js.map +0 -1
  102. package/dist/commonjs/react/toUIMessages.d.ts +0 -13
  103. package/dist/commonjs/react/toUIMessages.d.ts.map +0 -1
  104. package/dist/commonjs/react/toUIMessages.js +0 -149
  105. package/dist/commonjs/react/toUIMessages.js.map +0 -1
  106. package/dist/commonjs/react/types.d.ts +0 -26
  107. package/dist/commonjs/react/types.d.ts.map +0 -1
  108. package/dist/commonjs/react/types.js +0 -3
  109. package/dist/commonjs/react/types.js.map +0 -1
  110. package/dist/commonjs/react/useSmoothText.d.ts +0 -20
  111. package/dist/commonjs/react/useSmoothText.d.ts.map +0 -1
  112. package/dist/commonjs/react/useSmoothText.js +0 -54
  113. package/dist/commonjs/react/useSmoothText.js.map +0 -1
  114. package/dist/commonjs/shared.d.ts +0 -10
  115. package/dist/commonjs/shared.d.ts.map +0 -1
  116. package/dist/commonjs/shared.js +0 -35
  117. package/dist/commonjs/shared.js.map +0 -1
  118. package/dist/commonjs/validators.d.ts +0 -5716
  119. package/dist/commonjs/validators.d.ts.map +0 -1
  120. package/dist/commonjs/validators.js +0 -319
  121. package/dist/commonjs/validators.js.map +0 -1
  122. package/dist/commonjs/vitest.config.d.ts +0 -3
  123. package/dist/commonjs/vitest.config.d.ts.map +0 -1
  124. package/dist/commonjs/vitest.config.js +0 -9
  125. package/dist/commonjs/vitest.config.js.map +0 -1
  126. package/dist/commonjs.tsbuildinfo +0 -1
  127. package/dist/esm/vitest.config.d.ts +0 -3
  128. package/dist/esm/vitest.config.d.ts.map +0 -1
  129. package/dist/esm/vitest.config.js +0 -7
  130. package/dist/esm/vitest.config.js.map +0 -1
  131. package/react/package.json +0 -5
  132. package/validators/package.json +0 -5
@@ -1,323 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteAllStreamsForThreadIdSync = exports.deleteStreamAsync = exports.deleteStreamSync = exports.deleteAllStreamsForThreadIdAsync = exports.deleteStreamsPageForThreadIdMutation = exports.timeoutStream = exports.finish = exports.list = exports.create = exports.listDeltas = exports.addDelta = void 0;
4
- exports.deleteStreamsPageForThreadId = deleteStreamsPageForThreadId;
5
- const convex_helpers_1 = require("convex-helpers");
6
- const values_1 = require("convex/values");
7
- const validators_js_1 = require("../validators.js");
8
- const api_js_1 = require("./_generated/api.js");
9
- const server_js_1 = require("./_generated/server.js");
10
- const schema_js_1 = require("./schema.js");
11
- const stream_1 = require("convex-helpers/server/stream");
12
- const stream_2 = require("convex-helpers/server/stream");
13
- const pagination_1 = require("convex-helpers/server/pagination");
14
- const SECOND = 1000;
15
- const MINUTE = 60 * SECOND;
16
- const MAX_DELTAS_PER_REQUEST = 1000;
17
- const MAX_DELTAS_PER_STREAM = 100;
18
- const TIMEOUT_INTERVAL = 10 * MINUTE;
19
- const DELETE_STREAM_DELAY = MINUTE * 5; // 5 minutes
20
- const deltaValidator = schema_js_1.default.tables.streamDeltas.validator;
21
- exports.addDelta = (0, server_js_1.mutation)({
22
- args: deltaValidator,
23
- returns: values_1.v.boolean(),
24
- handler: async (ctx, args) => {
25
- await ctx.db.insert("streamDeltas", args);
26
- await heartbeatStream(ctx, { streamId: args.streamId });
27
- const stream = await ctx.db.get(args.streamId);
28
- if (stream?.state.kind !== "streaming") {
29
- console.warn(`Stream is not streaming: ${args.streamId}`);
30
- return false;
31
- }
32
- return true;
33
- },
34
- });
35
- exports.listDeltas = (0, server_js_1.query)({
36
- args: {
37
- threadId: values_1.v.id("threads"),
38
- cursors: values_1.v.array(values_1.v.object({
39
- streamId: values_1.v.id("streamingMessages"),
40
- cursor: values_1.v.number(),
41
- })),
42
- },
43
- returns: values_1.v.array(validators_js_1.vStreamDelta),
44
- handler: async (ctx, args) => {
45
- let totalDeltas = 0;
46
- const deltas = [];
47
- for (const cursor of args.cursors) {
48
- const streamDeltas = await ctx.db
49
- .query("streamDeltas")
50
- .withIndex("streamId_start_end", (q) => q.eq("streamId", cursor.streamId).gte("start", cursor.cursor))
51
- .take(Math.min(MAX_DELTAS_PER_STREAM, MAX_DELTAS_PER_REQUEST - totalDeltas));
52
- totalDeltas += streamDeltas.length;
53
- deltas.push(...streamDeltas.map((d) => (0, convex_helpers_1.pick)(d, ["streamId", "start", "end", "parts"])));
54
- if (totalDeltas >= MAX_DELTAS_PER_REQUEST) {
55
- break;
56
- }
57
- }
58
- return deltas;
59
- },
60
- });
61
- exports.create = (0, server_js_1.mutation)({
62
- args: (0, convex_helpers_1.omit)(schema_js_1.default.tables.streamingMessages.validator.fields, ["state"]),
63
- returns: values_1.v.id("streamingMessages"),
64
- handler: async (ctx, args) => {
65
- const state = {
66
- kind: "streaming",
67
- lastHeartbeat: Date.now(),
68
- };
69
- const streamId = await ctx.db.insert("streamingMessages", {
70
- ...args,
71
- state,
72
- });
73
- const timeoutFnId = await ctx.scheduler.runAfter(TIMEOUT_INTERVAL, api_js_1.internal.streams.timeoutStream, { streamId });
74
- await ctx.db.patch(streamId, { state: { ...state, timeoutFnId } });
75
- return streamId;
76
- },
77
- });
78
- exports.list = (0, server_js_1.query)({
79
- args: {
80
- threadId: values_1.v.id("threads"),
81
- },
82
- returns: values_1.v.array(validators_js_1.vStreamMessage),
83
- handler: async (ctx, args) => {
84
- return ctx.db
85
- .query("streamingMessages")
86
- .withIndex("threadId_state_order_stepOrder", (q) => q.eq("threadId", args.threadId).eq("state.kind", "streaming"))
87
- .order("desc")
88
- .take(100)
89
- .then((msgs) => msgs.map((m) => ({
90
- streamId: m._id,
91
- ...(0, convex_helpers_1.pick)(m, [
92
- "order",
93
- "stepOrder",
94
- "userId",
95
- "agentName",
96
- "model",
97
- "provider",
98
- "providerOptions",
99
- ]),
100
- })));
101
- },
102
- });
103
- exports.finish = (0, server_js_1.mutation)({
104
- args: {
105
- streamId: values_1.v.id("streamingMessages"),
106
- finalDelta: values_1.v.optional(deltaValidator),
107
- },
108
- returns: values_1.v.null(),
109
- handler: async (ctx, args) => {
110
- if (args.finalDelta) {
111
- await ctx.db.insert("streamDeltas", args.finalDelta);
112
- }
113
- const stream = await ctx.db.get(args.streamId);
114
- if (!stream) {
115
- throw new Error(`Stream not found: ${args.streamId}`);
116
- }
117
- if (stream.state.kind !== "streaming") {
118
- console.warn(`Stream trying to finish but not currently streaming: ${args.streamId}`);
119
- return;
120
- }
121
- if (stream.state.timeoutFnId) {
122
- const timeoutFn = await ctx.db.system.get(stream.state.timeoutFnId);
123
- if (timeoutFn?.state.kind === "pending") {
124
- await ctx.scheduler.cancel(stream.state.timeoutFnId);
125
- }
126
- }
127
- await ctx.db.patch(args.streamId, {
128
- state: { kind: "finished", endedAt: Date.now() },
129
- });
130
- await ctx.scheduler.runAfter(DELETE_STREAM_DELAY, api_js_1.api.streams.deleteStreamAsync, { streamId: args.streamId });
131
- },
132
- });
133
- async function heartbeatStream(ctx, args) {
134
- const stream = await ctx.db.get(args.streamId);
135
- if (!stream) {
136
- console.warn("Stream not found", args.streamId);
137
- return;
138
- }
139
- if (stream.state.kind !== "streaming") {
140
- console.warn("Stream is not streaming", args.streamId);
141
- return;
142
- }
143
- if (Date.now() - stream.state.lastHeartbeat < TIMEOUT_INTERVAL / 4) {
144
- // Debounce heartbeating.
145
- return;
146
- }
147
- if (!stream.state.timeoutFnId) {
148
- throw new Error("Stream has no timeout function");
149
- }
150
- const timeoutFn = await ctx.db.system.get(stream.state.timeoutFnId);
151
- if (!timeoutFn) {
152
- throw new Error("Timeout function not found");
153
- }
154
- if (timeoutFn.state.kind !== "pending") {
155
- throw new Error("Timeout function is not pending");
156
- }
157
- await ctx.scheduler.cancel(stream.state.timeoutFnId);
158
- const timeoutFnId = await ctx.scheduler.runAfter(TIMEOUT_INTERVAL, api_js_1.internal.streams.timeoutStream, { streamId: args.streamId });
159
- await ctx.db.patch(args.streamId, {
160
- state: {
161
- kind: "streaming",
162
- lastHeartbeat: Date.now(),
163
- timeoutFnId,
164
- },
165
- });
166
- }
167
- exports.timeoutStream = (0, server_js_1.internalMutation)({
168
- args: { streamId: values_1.v.id("streamingMessages") },
169
- returns: values_1.v.null(),
170
- handler: async (ctx, args) => {
171
- const stream = await ctx.db.get(args.streamId);
172
- if (!stream || stream.state.kind !== "streaming") {
173
- console.warn("Stream not found", args.streamId);
174
- return;
175
- }
176
- await ctx.db.patch(args.streamId, {
177
- state: {
178
- kind: "finished",
179
- endedAt: Date.now(),
180
- },
181
- });
182
- },
183
- });
184
- async function deletePageForStreamId(ctx, args) {
185
- const deltas = await (0, pagination_1.paginator)(ctx.db, schema_js_1.default)
186
- .query("streamDeltas")
187
- .withIndex("streamId_start_end", (q) => q.eq("streamId", args.streamId))
188
- .paginate({
189
- numItems: MAX_DELTAS_PER_REQUEST,
190
- cursor: args.cursor ?? null,
191
- });
192
- await Promise.all(deltas.page.map((d) => ctx.db.delete(d._id)));
193
- if (deltas.isDone) {
194
- const stream = await ctx.db.get(args.streamId);
195
- if (stream) {
196
- const state = stream.state;
197
- if (state.kind === "streaming" && state.timeoutFnId) {
198
- const timeoutFn = await ctx.db.system.get(state.timeoutFnId);
199
- if (timeoutFn?.state.kind === "pending") {
200
- await ctx.scheduler.cancel(state.timeoutFnId);
201
- }
202
- }
203
- await ctx.db.delete(args.streamId);
204
- }
205
- }
206
- return deltas;
207
- }
208
- async function deleteStreamsPageForThreadId(ctx, args) {
209
- const allStreamMessages = schema_js_1.default.tables.streamingMessages.validator.fields.state.members
210
- .flatMap((state) => state.fields.kind.value)
211
- .map((stateKind) => (0, stream_1.stream)(ctx.db, schema_js_1.default)
212
- .query("streamingMessages")
213
- .withIndex("threadId_state_order_stepOrder", (q) => q
214
- .eq("threadId", args.threadId)
215
- .eq("state.kind", stateKind)
216
- .gte("order", args.streamOrder ?? 0)));
217
- let deltaCursor = args.deltaCursor;
218
- const streamMessage = await (0, stream_2.mergedStream)(allStreamMessages, [
219
- "threadId",
220
- "state.kind",
221
- "order",
222
- "stepOrder",
223
- ]).first();
224
- if (!streamMessage) {
225
- return {
226
- isDone: true,
227
- streamOrder: undefined,
228
- deltaCursor: undefined,
229
- };
230
- }
231
- const result = await deletePageForStreamId(ctx, {
232
- streamId: streamMessage._id,
233
- cursor: deltaCursor,
234
- });
235
- if (result.isDone) {
236
- deltaCursor = undefined;
237
- }
238
- return {
239
- isDone: false,
240
- streamOrder: streamMessage.order,
241
- deltaCursor,
242
- };
243
- }
244
- exports.deleteStreamsPageForThreadIdMutation = (0, server_js_1.internalMutation)({
245
- args: {
246
- threadId: values_1.v.id("threads"),
247
- streamOrder: values_1.v.optional(values_1.v.number()),
248
- deltaCursor: values_1.v.optional(values_1.v.string()),
249
- },
250
- returns: values_1.v.object({
251
- isDone: values_1.v.boolean(),
252
- streamOrder: values_1.v.optional(values_1.v.number()),
253
- deltaCursor: values_1.v.optional(values_1.v.string()),
254
- }),
255
- handler: deleteStreamsPageForThreadId,
256
- });
257
- exports.deleteAllStreamsForThreadIdAsync = (0, server_js_1.mutation)({
258
- args: {
259
- threadId: values_1.v.id("threads"),
260
- streamOrder: values_1.v.optional(values_1.v.number()),
261
- deltaCursor: values_1.v.optional(values_1.v.string()),
262
- },
263
- returns: values_1.v.object({
264
- isDone: values_1.v.boolean(),
265
- streamOrder: values_1.v.optional(values_1.v.number()),
266
- deltaCursor: values_1.v.optional(values_1.v.string()),
267
- }),
268
- handler: async (ctx, args) => {
269
- const result = await deleteStreamsPageForThreadId(ctx, args);
270
- if (!result.isDone) {
271
- await ctx.scheduler.runAfter(0, api_js_1.api.streams.deleteAllStreamsForThreadIdAsync, {
272
- threadId: args.threadId,
273
- streamOrder: result.streamOrder,
274
- deltaCursor: result.deltaCursor,
275
- });
276
- }
277
- else {
278
- await ctx.db.delete(args.threadId);
279
- }
280
- return result;
281
- },
282
- });
283
- exports.deleteStreamSync = (0, server_js_1.mutation)({
284
- args: { streamId: values_1.v.id("streamingMessages") },
285
- returns: values_1.v.null(),
286
- handler: async (ctx, args) => {
287
- let deltas = await deletePageForStreamId(ctx, args);
288
- while (!deltas.isDone) {
289
- deltas = await deletePageForStreamId(ctx, {
290
- ...args,
291
- cursor: deltas.continueCursor,
292
- });
293
- }
294
- },
295
- });
296
- exports.deleteStreamAsync = (0, server_js_1.mutation)({
297
- args: { streamId: values_1.v.id("streamingMessages"), cursor: values_1.v.optional(values_1.v.string()) },
298
- returns: values_1.v.null(),
299
- handler: async (ctx, args) => {
300
- const result = await deletePageForStreamId(ctx, args);
301
- if (!result.isDone) {
302
- await ctx.scheduler.runAfter(0, api_js_1.api.streams.deleteStreamAsync, {
303
- streamId: args.streamId,
304
- cursor: result.continueCursor,
305
- });
306
- }
307
- },
308
- });
309
- exports.deleteAllStreamsForThreadIdSync = (0, server_js_1.action)({
310
- args: { threadId: values_1.v.id("threads") },
311
- returns: values_1.v.null(),
312
- handler: async (ctx, args) => {
313
- let result = await ctx.runMutation(api_js_1.internal.streams.deleteStreamsPageForThreadIdMutation, args);
314
- while (!result.isDone) {
315
- result = await ctx.runMutation(api_js_1.internal.streams.deleteStreamsPageForThreadIdMutation, {
316
- ...args,
317
- streamOrder: result.streamOrder,
318
- deltaCursor: result.deltaCursor,
319
- });
320
- }
321
- },
322
- });
323
- //# 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,101 +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
- _id: string;
8
- _creationTime: number;
9
- status: "active" | "archived";
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 | undefined;
16
- endCursor?: string | null | undefined;
17
- maximumRowsRead?: number | undefined;
18
- maximumBytesRead?: number | undefined;
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
- _id: string;
28
- _creationTime: number;
29
- status: "active" | "archived";
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
- _id: string;
47
- _creationTime: number;
48
- status: "active" | "archived";
49
- }>>;
50
- export declare const updateThread: import("convex/server").RegisteredMutation<"public", {
51
- threadId: import("convex/values").GenericId<"threads">;
52
- patch: {
53
- status?: "active" | "archived" | undefined;
54
- title?: string | undefined;
55
- summary?: string | undefined;
56
- };
57
- }, Promise<{
58
- userId?: string | undefined;
59
- title?: string | undefined;
60
- summary?: string | undefined;
61
- _id: string;
62
- _creationTime: number;
63
- status: "active" | "archived";
64
- }>>;
65
- /**
66
- * Use this to delete a thread and everything it contains.
67
- * It will try to delete all pages synchronously.
68
- * If it times out or fails, you'll have to run it again.
69
- */
70
- export declare const deleteAllForThreadIdSync: import("convex/server").RegisteredAction<"public", {
71
- limit?: number | undefined;
72
- threadId: import("convex/values").GenericId<"threads">;
73
- }, Promise<void>>;
74
- export declare const _deletePageForThreadId: import("convex/server").RegisteredMutation<"internal", {
75
- limit?: number | undefined;
76
- cursor?: string | undefined;
77
- messagesDone?: boolean | undefined;
78
- streamsDone?: boolean | undefined;
79
- streamOrder?: number | undefined;
80
- deltaCursor?: string | undefined;
81
- threadId: import("convex/values").GenericId<"threads">;
82
- }, Promise<{
83
- isDone: boolean;
84
- cursor: string;
85
- }>>;
86
- /**
87
- * Use this to delete a thread and everything it contains.
88
- * It will continue deleting pages asynchronously.
89
- */
90
- export declare const deleteAllForThreadIdAsync: import("convex/server").RegisteredMutation<"public", {
91
- limit?: number | undefined;
92
- cursor?: string | undefined;
93
- messagesDone?: boolean | undefined;
94
- streamsDone?: boolean | undefined;
95
- streamOrder?: number | undefined;
96
- deltaCursor?: string | undefined;
97
- threadId: import("convex/values").GenericId<"threads">;
98
- }, Promise<{
99
- isDone: boolean;
100
- }>>;
101
- //# 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,YAAY;;;;;;;;;;;;;;GAcvB,CAAC;AAgBH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;iBAmBnC,CAAC;AAkBH,eAAO,MAAM,sBAAsB;;;;;;;;;;;GAIjC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;GAoCpC,CAAC"}
@@ -1,188 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteAllForThreadIdAsync = exports._deletePageForThreadId = exports.deleteAllForThreadIdSync = exports.updateThread = exports.createThread = exports.listThreadsByUserId = exports.getThread = void 0;
4
- const convex_helpers_1 = require("convex-helpers");
5
- const pagination_1 = require("convex-helpers/server/pagination");
6
- const validators_1 = require("convex-helpers/validators");
7
- const server_1 = require("convex/server");
8
- const index_js_1 = require("../client/index.js");
9
- const validators_js_1 = require("../validators.js");
10
- const api_js_1 = require("./_generated/api.js");
11
- const server_js_1 = require("./_generated/server.js");
12
- const messages_js_1 = require("./messages.js");
13
- const schema_js_1 = require("./schema.js");
14
- const streams_js_1 = require("./streams.js");
15
- function publicThreadOrNull(thread) {
16
- if (thread === null) {
17
- return null;
18
- }
19
- return publicThread(thread);
20
- }
21
- function publicThread(thread) {
22
- return (0, convex_helpers_1.omit)(thread, ["defaultSystemPrompt", "parentThreadIds", "order"]);
23
- }
24
- exports.getThread = (0, server_js_1.query)({
25
- args: { threadId: schema_js_1.v.id("threads") },
26
- handler: async (ctx, args) => {
27
- return publicThreadOrNull(await ctx.db.get(args.threadId));
28
- },
29
- returns: schema_js_1.v.union(index_js_1.vThreadDoc, schema_js_1.v.null()),
30
- });
31
- exports.listThreadsByUserId = (0, server_js_1.query)({
32
- args: {
33
- userId: schema_js_1.v.optional(schema_js_1.v.string()),
34
- order: schema_js_1.v.optional(schema_js_1.v.union(schema_js_1.v.literal("asc"), schema_js_1.v.literal("desc"))),
35
- paginationOpts: schema_js_1.v.optional(server_1.paginationOptsValidator),
36
- },
37
- handler: async (ctx, args) => {
38
- const threads = await (0, pagination_1.paginator)(ctx.db, schema_js_1.schema)
39
- .query("threads")
40
- .withIndex("userId", (q) => q.eq("userId", args.userId))
41
- .order(args.order ?? "desc")
42
- .paginate(args.paginationOpts ?? { cursor: null, numItems: 100 });
43
- return {
44
- ...threads,
45
- page: threads.page.map(publicThread),
46
- };
47
- },
48
- returns: (0, validators_js_1.vPaginationResult)(index_js_1.vThreadDoc),
49
- });
50
- const vThread = schema_js_1.schema.tables.threads.validator;
51
- exports.createThread = (0, server_js_1.mutation)({
52
- args: (0, convex_helpers_1.omit)(vThread.fields, ["order", "status"]),
53
- handler: async (ctx, args) => {
54
- const threadId = await ctx.db.insert("threads", {
55
- ...args,
56
- status: "active",
57
- });
58
- return publicThread((await ctx.db.get(threadId)));
59
- },
60
- returns: index_js_1.vThreadDoc,
61
- });
62
- exports.updateThread = (0, server_js_1.mutation)({
63
- args: {
64
- threadId: schema_js_1.v.id("threads"),
65
- patch: schema_js_1.v.object((0, validators_1.partial)((0, convex_helpers_1.pick)(vThread.fields, ["title", "summary", "status"]))),
66
- },
67
- handler: async (ctx, args) => {
68
- const thread = await ctx.db.get(args.threadId);
69
- (0, convex_helpers_1.assert)(thread, `Thread ${args.threadId} not found`);
70
- await ctx.db.patch(args.threadId, args.patch);
71
- return publicThread((await ctx.db.get(args.threadId)));
72
- },
73
- returns: index_js_1.vThreadDoc,
74
- });
75
- // When we expose this, we need to also hide all the messages and steps
76
- // export const archiveThread = mutation({
77
- // args: { threadId: v.id("threads") },
78
- // handler: async (ctx, args) => {
79
- // const thread = await ctx.db.get(args.threadId);
80
- // assert(thread, `Thread ${args.threadId} not found`);
81
- // await ctx.db.patch(args.threadId, { status: "archived" });
82
- // return publicThread((await ctx.db.get(args.threadId))!);
83
- // },
84
- // returns: vThreadDoc,
85
- // });
86
- // TODO: delete thread
87
- /**
88
- * Use this to delete a thread and everything it contains.
89
- * It will try to delete all pages synchronously.
90
- * If it times out or fails, you'll have to run it again.
91
- */
92
- exports.deleteAllForThreadIdSync = (0, server_js_1.action)({
93
- args: { threadId: schema_js_1.v.id("threads"), limit: schema_js_1.v.optional(schema_js_1.v.number()) },
94
- handler: async (ctx, args) => {
95
- let cursor = undefined;
96
- while (true) {
97
- const result = await ctx.runMutation(api_js_1.internal.threads._deletePageForThreadId, { threadId: args.threadId, cursor, limit: args.limit });
98
- if (result.isDone) {
99
- break;
100
- }
101
- cursor = result.cursor;
102
- }
103
- await ctx.runAction(api_js_1.api.streams.deleteAllStreamsForThreadIdSync, {
104
- threadId: args.threadId,
105
- });
106
- },
107
- returns: schema_js_1.v.null(),
108
- });
109
- const deleteThreadArgs = {
110
- threadId: schema_js_1.v.id("threads"),
111
- cursor: schema_js_1.v.optional(schema_js_1.v.string()),
112
- messagesDone: schema_js_1.v.optional(schema_js_1.v.boolean()),
113
- streamsDone: schema_js_1.v.optional(schema_js_1.v.boolean()),
114
- streamOrder: schema_js_1.v.optional(schema_js_1.v.number()),
115
- deltaCursor: schema_js_1.v.optional(schema_js_1.v.string()),
116
- limit: schema_js_1.v.optional(schema_js_1.v.number()),
117
- };
118
- const deleteThreadReturns = {
119
- cursor: schema_js_1.v.string(),
120
- isDone: schema_js_1.v.boolean(),
121
- };
122
- exports._deletePageForThreadId = (0, server_js_1.internalMutation)({
123
- args: deleteThreadArgs,
124
- handler: deletePageForThreadIdHandler,
125
- returns: deleteThreadReturns,
126
- });
127
- /**
128
- * Use this to delete a thread and everything it contains.
129
- * It will continue deleting pages asynchronously.
130
- */
131
- exports.deleteAllForThreadIdAsync = (0, server_js_1.mutation)({
132
- args: deleteThreadArgs,
133
- handler: async (ctx, args) => {
134
- let messagesResult = {
135
- isDone: args.messagesDone ?? false,
136
- cursor: args.cursor,
137
- };
138
- if (!args.messagesDone) {
139
- messagesResult = await deletePageForThreadIdHandler(ctx, args);
140
- }
141
- let streamResult = {
142
- isDone: args.streamsDone ?? false,
143
- streamOrder: args.streamOrder,
144
- deltaCursor: args.deltaCursor,
145
- };
146
- if (!args.streamsDone) {
147
- streamResult = await (0, streams_js_1.deleteStreamsPageForThreadId)(ctx, {
148
- threadId: args.threadId,
149
- streamOrder: args.streamOrder,
150
- deltaCursor: args.deltaCursor,
151
- });
152
- }
153
- const isDone = messagesResult.isDone && streamResult.isDone;
154
- if (!isDone) {
155
- await ctx.scheduler.runAfter(0, api_js_1.api.threads.deleteAllForThreadIdAsync, {
156
- threadId: args.threadId,
157
- cursor: messagesResult.cursor,
158
- messagesDone: messagesResult.isDone,
159
- streamsDone: streamResult.isDone,
160
- streamOrder: streamResult.streamOrder,
161
- deltaCursor: streamResult.deltaCursor,
162
- });
163
- }
164
- return { isDone };
165
- },
166
- returns: schema_js_1.v.object({ isDone: schema_js_1.v.boolean() }),
167
- });
168
- async function deletePageForThreadIdHandler(ctx, args) {
169
- const messages = await (0, pagination_1.paginator)(ctx.db, schema_js_1.schema)
170
- .query("messages")
171
- .withIndex("threadId_status_tool_order_stepOrder", (q) => q.eq("threadId", args.threadId))
172
- .paginate({
173
- numItems: args.limit ?? 100,
174
- cursor: args.cursor ?? null,
175
- });
176
- await Promise.all(messages.page.map((m) => (0, messages_js_1.deleteMessage)(ctx, m)));
177
- if (messages.isDone) {
178
- const thread = await ctx.db.get(args.threadId);
179
- if (thread) {
180
- await ctx.db.delete(args.threadId);
181
- }
182
- }
183
- return {
184
- cursor: messages.continueCursor,
185
- isDone: messages.isDone,
186
- };
187
- }
188
- //# sourceMappingURL=threads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/component/threads.ts"],"names":[],"mappings":"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"}