@convex-dev/agent 0.1.9-alpha.2 → 0.1.9-alpha.3
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.
- package/dist/commonjs/component/_generated/api.d.ts +11 -3
- package/dist/commonjs/component/threads.d.ts +8 -2
- package/dist/commonjs/component/threads.d.ts.map +1 -1
- package/dist/commonjs/component/threads.js +44 -18
- package/dist/commonjs/component/threads.js.map +1 -1
- package/dist/commonjs.tsbuildinfo +1 -1
- package/dist/esm/component/_generated/api.d.ts +11 -3
- package/dist/esm/component/threads.d.ts +8 -2
- package/dist/esm/component/threads.d.ts.map +1 -1
- package/dist/esm/component/threads.js +44 -18
- package/dist/esm/component/threads.js.map +1 -1
- package/dist/esm.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/component/_generated/api.d.ts +11 -3
- package/src/component/threads.ts +48 -26
|
@@ -1663,13 +1663,21 @@ export type Mounts = {
|
|
|
1663
1663
|
deleteAllForThreadIdAsync: FunctionReference<
|
|
1664
1664
|
"mutation",
|
|
1665
1665
|
"public",
|
|
1666
|
-
{
|
|
1667
|
-
|
|
1666
|
+
{
|
|
1667
|
+
cursor?: string;
|
|
1668
|
+
deltaCursor?: string;
|
|
1669
|
+
limit?: number;
|
|
1670
|
+
messagesDone?: boolean;
|
|
1671
|
+
streamOrder?: number;
|
|
1672
|
+
streamsDone?: boolean;
|
|
1673
|
+
threadId: string;
|
|
1674
|
+
},
|
|
1675
|
+
{ isDone: boolean }
|
|
1668
1676
|
>;
|
|
1669
1677
|
deleteAllForThreadIdSync: FunctionReference<
|
|
1670
1678
|
"action",
|
|
1671
1679
|
"public",
|
|
1672
|
-
{
|
|
1680
|
+
{ limit?: number; threadId: string },
|
|
1673
1681
|
null
|
|
1674
1682
|
>;
|
|
1675
1683
|
getThread: FunctionReference<
|
|
@@ -69,12 +69,15 @@ export declare const updateThread: import("convex/server").RegisteredMutation<"p
|
|
|
69
69
|
*/
|
|
70
70
|
export declare const deleteAllForThreadIdSync: import("convex/server").RegisteredAction<"public", {
|
|
71
71
|
limit?: number | undefined;
|
|
72
|
-
cursor?: string | undefined;
|
|
73
72
|
threadId: import("convex/values").GenericId<"threads">;
|
|
74
73
|
}, Promise<void>>;
|
|
75
74
|
export declare const _deletePageForThreadId: import("convex/server").RegisteredMutation<"internal", {
|
|
76
75
|
limit?: number | undefined;
|
|
77
76
|
cursor?: string | undefined;
|
|
77
|
+
messagesDone?: boolean | undefined;
|
|
78
|
+
streamsDone?: boolean | undefined;
|
|
79
|
+
streamOrder?: number | undefined;
|
|
80
|
+
deltaCursor?: string | undefined;
|
|
78
81
|
threadId: import("convex/values").GenericId<"threads">;
|
|
79
82
|
}, Promise<{
|
|
80
83
|
isDone: boolean;
|
|
@@ -87,9 +90,12 @@ export declare const _deletePageForThreadId: import("convex/server").RegisteredM
|
|
|
87
90
|
export declare const deleteAllForThreadIdAsync: import("convex/server").RegisteredMutation<"public", {
|
|
88
91
|
limit?: number | undefined;
|
|
89
92
|
cursor?: string | undefined;
|
|
93
|
+
messagesDone?: boolean | undefined;
|
|
94
|
+
streamsDone?: boolean | undefined;
|
|
95
|
+
streamOrder?: number | undefined;
|
|
96
|
+
deltaCursor?: string | undefined;
|
|
90
97
|
threadId: import("convex/values").GenericId<"threads">;
|
|
91
98
|
}, Promise<{
|
|
92
99
|
isDone: boolean;
|
|
93
|
-
cursor: string;
|
|
94
100
|
}>>;
|
|
95
101
|
//# sourceMappingURL=threads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/component/threads.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -8,6 +8,7 @@ import { api, internal } from "./_generated/api.js";
|
|
|
8
8
|
import { action, internalMutation, mutation, query, } from "./_generated/server.js";
|
|
9
9
|
import { deleteMessage } from "./messages.js";
|
|
10
10
|
import { schema, v } from "./schema.js";
|
|
11
|
+
import { deleteStreamsPageForThreadId } from "./streams.js";
|
|
11
12
|
function publicThreadOrNull(thread) {
|
|
12
13
|
if (thread === null) {
|
|
13
14
|
return null;
|
|
@@ -80,24 +81,15 @@ export const updateThread = mutation({
|
|
|
80
81
|
// returns: vThreadDoc,
|
|
81
82
|
// });
|
|
82
83
|
// TODO: delete thread
|
|
83
|
-
const deleteThreadArgs = {
|
|
84
|
-
threadId: v.id("threads"),
|
|
85
|
-
cursor: v.optional(v.string()),
|
|
86
|
-
limit: v.optional(v.number()),
|
|
87
|
-
};
|
|
88
|
-
const deleteThreadReturns = {
|
|
89
|
-
cursor: v.string(),
|
|
90
|
-
isDone: v.boolean(),
|
|
91
|
-
};
|
|
92
84
|
/**
|
|
93
85
|
* Use this to delete a thread and everything it contains.
|
|
94
86
|
* It will try to delete all pages synchronously.
|
|
95
87
|
* If it times out or fails, you'll have to run it again.
|
|
96
88
|
*/
|
|
97
89
|
export const deleteAllForThreadIdSync = action({
|
|
98
|
-
args:
|
|
90
|
+
args: { threadId: v.id("threads"), limit: v.optional(v.number()) },
|
|
99
91
|
handler: async (ctx, args) => {
|
|
100
|
-
let cursor =
|
|
92
|
+
let cursor = undefined;
|
|
101
93
|
while (true) {
|
|
102
94
|
const result = await ctx.runMutation(internal.threads._deletePageForThreadId, { threadId: args.threadId, cursor, limit: args.limit });
|
|
103
95
|
if (result.isDone) {
|
|
@@ -111,6 +103,19 @@ export const deleteAllForThreadIdSync = action({
|
|
|
111
103
|
},
|
|
112
104
|
returns: v.null(),
|
|
113
105
|
});
|
|
106
|
+
const deleteThreadArgs = {
|
|
107
|
+
threadId: v.id("threads"),
|
|
108
|
+
cursor: v.optional(v.string()),
|
|
109
|
+
messagesDone: v.optional(v.boolean()),
|
|
110
|
+
streamsDone: v.optional(v.boolean()),
|
|
111
|
+
streamOrder: v.optional(v.number()),
|
|
112
|
+
deltaCursor: v.optional(v.string()),
|
|
113
|
+
limit: v.optional(v.number()),
|
|
114
|
+
};
|
|
115
|
+
const deleteThreadReturns = {
|
|
116
|
+
cursor: v.string(),
|
|
117
|
+
isDone: v.boolean(),
|
|
118
|
+
};
|
|
114
119
|
export const _deletePageForThreadId = internalMutation({
|
|
115
120
|
args: deleteThreadArgs,
|
|
116
121
|
handler: deletePageForThreadIdHandler,
|
|
@@ -123,18 +128,39 @@ export const _deletePageForThreadId = internalMutation({
|
|
|
123
128
|
export const deleteAllForThreadIdAsync = mutation({
|
|
124
129
|
args: deleteThreadArgs,
|
|
125
130
|
handler: async (ctx, args) => {
|
|
126
|
-
|
|
127
|
-
|
|
131
|
+
let messagesResult = {
|
|
132
|
+
isDone: args.messagesDone ?? false,
|
|
133
|
+
cursor: args.cursor,
|
|
134
|
+
};
|
|
135
|
+
if (!args.messagesDone) {
|
|
136
|
+
messagesResult = await deletePageForThreadIdHandler(ctx, args);
|
|
137
|
+
}
|
|
138
|
+
let streamResult = {
|
|
139
|
+
isDone: args.streamsDone ?? false,
|
|
140
|
+
streamOrder: args.streamOrder,
|
|
141
|
+
deltaCursor: args.deltaCursor,
|
|
142
|
+
};
|
|
143
|
+
if (!args.streamsDone) {
|
|
144
|
+
streamResult = await deleteStreamsPageForThreadId(ctx, {
|
|
145
|
+
threadId: args.threadId,
|
|
146
|
+
streamOrder: args.streamOrder,
|
|
147
|
+
deltaCursor: args.deltaCursor,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
const isDone = messagesResult.isDone && streamResult.isDone;
|
|
151
|
+
if (!isDone) {
|
|
128
152
|
await ctx.scheduler.runAfter(0, api.threads.deleteAllForThreadIdAsync, {
|
|
129
153
|
threadId: args.threadId,
|
|
130
|
-
cursor:
|
|
154
|
+
cursor: messagesResult.cursor,
|
|
155
|
+
messagesDone: messagesResult.isDone,
|
|
156
|
+
streamsDone: streamResult.isDone,
|
|
157
|
+
streamOrder: streamResult.streamOrder,
|
|
158
|
+
deltaCursor: streamResult.deltaCursor,
|
|
131
159
|
});
|
|
132
160
|
}
|
|
133
|
-
|
|
134
|
-
await ctx.scheduler.runAfter(0, api.streams.deleteAllStreamsForThreadIdSync, { threadId: args.threadId });
|
|
135
|
-
return result;
|
|
161
|
+
return { isDone };
|
|
136
162
|
},
|
|
137
|
-
returns:
|
|
163
|
+
returns: v.object({ isDone: v.boolean() }),
|
|
138
164
|
});
|
|
139
165
|
async function deletePageForThreadIdHandler(ctx, args) {
|
|
140
166
|
const messages = await paginator(ctx.db, schema)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/component/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAkB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,QAAQ,EAER,KAAK,GACN,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/component/threads.ts"],"names":[],"mappings":"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"}
|