@convex-dev/agent 0.1.18 → 0.2.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.
- package/dist/client/createTool.d.ts +30 -11
- package/dist/client/createTool.d.ts.map +1 -1
- package/dist/client/createTool.js +24 -10
- package/dist/client/createTool.js.map +1 -1
- package/dist/client/defaultComponent.d.ts +11 -0
- package/dist/client/defaultComponent.d.ts.map +1 -0
- package/dist/client/defaultComponent.js +7 -0
- package/dist/client/defaultComponent.js.map +1 -0
- package/dist/client/definePlaygroundAPI.d.ts +68 -23
- package/dist/client/definePlaygroundAPI.d.ts.map +1 -1
- package/dist/client/definePlaygroundAPI.js +7 -20
- package/dist/client/definePlaygroundAPI.js.map +1 -1
- package/dist/client/files.d.ts +14 -4
- package/dist/client/files.d.ts.map +1 -1
- package/dist/client/files.js +66 -11
- package/dist/client/files.js.map +1 -1
- package/dist/client/index.d.ts +323 -780
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +445 -543
- package/dist/client/index.js.map +1 -1
- package/dist/client/messages.d.ts +256 -0
- package/dist/client/messages.d.ts.map +1 -0
- package/dist/client/messages.js +97 -0
- package/dist/client/messages.js.map +1 -0
- package/dist/client/search.d.ts +35 -12
- package/dist/client/search.d.ts.map +1 -1
- package/dist/client/search.js +21 -4
- package/dist/client/search.js.map +1 -1
- package/dist/client/streaming.d.ts +21 -21
- package/dist/client/streaming.d.ts.map +1 -1
- package/dist/client/streaming.js +35 -40
- package/dist/client/streaming.js.map +1 -1
- package/dist/client/threads.d.ts +46 -0
- package/dist/client/threads.d.ts.map +1 -0
- package/dist/client/threads.js +49 -0
- package/dist/client/threads.js.map +1 -0
- package/dist/client/types.d.ts +159 -75
- package/dist/client/types.d.ts.map +1 -1
- package/dist/component/_generated/api.d.ts +261 -209
- package/dist/component/messages.d.ts +314 -105
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +141 -83
- package/dist/component/messages.js.map +1 -1
- package/dist/component/schema.d.ts +631 -870
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +11 -16
- package/dist/component/schema.js.map +1 -1
- package/dist/component/streams.d.ts +29 -149
- package/dist/component/streams.d.ts.map +1 -1
- package/dist/component/streams.js +104 -60
- package/dist/component/streams.js.map +1 -1
- package/dist/component/threads.d.ts +4 -4
- package/dist/component/users.d.ts +3 -3
- package/dist/mapping.d.ts +15 -16
- package/dist/mapping.d.ts.map +1 -1
- package/dist/mapping.js +208 -62
- package/dist/mapping.js.map +1 -1
- package/dist/parts.d.ts +3 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +34 -0
- package/dist/parts.js.map +1 -0
- package/dist/react/SmoothText.d.ts +5 -0
- package/dist/react/SmoothText.d.ts.map +1 -0
- package/dist/react/SmoothText.js +6 -0
- package/dist/react/SmoothText.js.map +1 -0
- package/dist/react/deltas.d.ts +3 -5
- package/dist/react/deltas.d.ts.map +1 -1
- package/dist/react/deltas.js +89 -53
- package/dist/react/deltas.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +31 -11
- package/dist/react/index.js.map +1 -1
- package/dist/react/optimisticallySendMessage.d.ts.map +1 -1
- package/dist/react/optimisticallySendMessage.js +2 -8
- package/dist/react/optimisticallySendMessage.js.map +1 -1
- package/dist/react/toUIMessages.d.ts +5 -4
- package/dist/react/toUIMessages.d.ts.map +1 -1
- package/dist/react/toUIMessages.js +103 -40
- package/dist/react/toUIMessages.js.map +1 -1
- package/dist/react/useSmoothText.d.ts +13 -12
- package/dist/react/useSmoothText.d.ts.map +1 -1
- package/dist/react/useSmoothText.js +1 -1
- package/dist/react/useSmoothText.js.map +1 -1
- package/dist/validators.d.ts +751 -1464
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +39 -80
- package/dist/validators.js.map +1 -1
- package/package.json +34 -30
- package/src/client/createTool.ts +66 -40
- package/src/client/defaultComponent.ts +17 -0
- package/src/client/definePlaygroundAPI.ts +17 -31
- package/src/client/files.ts +94 -17
- package/src/client/index.test.ts +28 -38
- package/src/client/index.ts +785 -977
- package/src/client/messages.ts +205 -0
- package/src/client/search.ts +37 -10
- package/src/client/streaming.ts +53 -56
- package/src/client/threads.ts +78 -0
- package/src/client/types.ts +239 -131
- package/src/component/_generated/api.d.ts +261 -209
- package/src/component/messages.test.ts +182 -40
- package/src/component/messages.ts +165 -108
- package/src/component/schema.ts +11 -17
- package/src/component/streams.ts +180 -69
- package/src/mapping.ts +253 -96
- package/src/parts.ts +39 -0
- package/src/react/SmoothText.tsx +9 -0
- package/src/react/deltas.test.ts +38 -42
- package/src/react/deltas.ts +116 -65
- package/src/react/index.ts +35 -13
- package/src/react/optimisticallySendMessage.ts +2 -8
- package/src/react/toUIMessages.test.ts +154 -36
- package/src/react/toUIMessages.ts +136 -57
- package/src/react/useSmoothText.ts +14 -15
- package/src/validators.test.ts +1 -117
- package/src/validators.ts +57 -107
- package/dist/client/listMessages.d.ts +0 -22
- package/dist/client/listMessages.d.ts.map +0 -1
- package/dist/client/listMessages.js +0 -25
- package/dist/client/listMessages.js.map +0 -1
- package/src/client/listMessages.ts +0 -38
package/dist/client/search.js
CHANGED
|
@@ -47,16 +47,16 @@ export async function fetchContextMessages(ctx, component, args) {
|
|
|
47
47
|
if (opts.searchOptions?.vectorSearch && !args.getEmbedding) {
|
|
48
48
|
throw new Error("You must provide an embedding and embeddingModel to use vector search");
|
|
49
49
|
}
|
|
50
|
-
const embeddingFields = opts.searchOptions?.vectorSearch
|
|
50
|
+
const embeddingFields = opts.searchOptions?.vectorSearch && text
|
|
51
51
|
? await args.getEmbedding?.(text)
|
|
52
52
|
: undefined;
|
|
53
53
|
const searchMessages = await ctx.runAction(component.messages.searchMessages, {
|
|
54
54
|
searchAllMessagesForUserId: opts?.searchOtherThreads
|
|
55
|
-
? args.userId ??
|
|
55
|
+
? (args.userId ??
|
|
56
56
|
(args.threadId &&
|
|
57
57
|
(await ctx.runQuery(component.threads.getThread, {
|
|
58
58
|
threadId: args.threadId,
|
|
59
|
-
}))?.userId)
|
|
59
|
+
}))?.userId))
|
|
60
60
|
: undefined,
|
|
61
61
|
threadId: args.threadId,
|
|
62
62
|
beforeMessageId: args.upToAndIncludingMessageId,
|
|
@@ -69,7 +69,9 @@ export async function fetchContextMessages(ctx, component, args) {
|
|
|
69
69
|
vectorScoreThreshold: opts.searchOptions?.vectorScoreThreshold ??
|
|
70
70
|
DEFAULT_VECTOR_SCORE_THRESHOLD,
|
|
71
71
|
embedding: embeddingFields?.embedding,
|
|
72
|
-
embeddingModel: embeddingFields?.
|
|
72
|
+
embeddingModel: embeddingFields?.textEmbeddingModel
|
|
73
|
+
? getModelName(embeddingFields.textEmbeddingModel)
|
|
74
|
+
: undefined,
|
|
73
75
|
});
|
|
74
76
|
// TODO: track what messages we used for context
|
|
75
77
|
contextMessages.unshift(...searchMessages.filter((m) => !included?.has(m._id)));
|
|
@@ -111,4 +113,19 @@ export function filterOutOrphanedToolMessages(docs) {
|
|
|
111
113
|
}
|
|
112
114
|
return result;
|
|
113
115
|
}
|
|
116
|
+
export function getModelName(embeddingModel) {
|
|
117
|
+
if (typeof embeddingModel === "string") {
|
|
118
|
+
if (embeddingModel.includes("/")) {
|
|
119
|
+
return embeddingModel.split("/").slice(1).join("/");
|
|
120
|
+
}
|
|
121
|
+
return embeddingModel;
|
|
122
|
+
}
|
|
123
|
+
return embeddingModel.modelId;
|
|
124
|
+
}
|
|
125
|
+
export function getProviderName(embeddingModel) {
|
|
126
|
+
if (typeof embeddingModel === "string") {
|
|
127
|
+
return embeddingModel.split("/").at(0);
|
|
128
|
+
}
|
|
129
|
+
return embeddingModel.provider;
|
|
130
|
+
}
|
|
114
131
|
//# sourceMappingURL=search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/client/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { type ChunkDetector, type StreamTextTransform, type ToolSet } from "ai";
|
|
2
|
-
import type { ProviderOptions, StreamArgs, StreamMessage
|
|
3
|
-
import type { MessageDoc } from "../component/schema.js";
|
|
1
|
+
import { type ChunkDetector, type StreamTextTransform, type TextStreamPart, type ToolSet } from "ai";
|
|
2
|
+
import type { ProviderOptions, StreamArgs, StreamMessage } from "../validators.js";
|
|
4
3
|
import type { AgentComponent, RunActionCtx, RunMutationCtx, RunQueryCtx, SyncStreamsReturnValue } from "./types.js";
|
|
5
4
|
/**
|
|
6
5
|
* A function that handles fetching stream deltas, used with the React hooks
|
|
@@ -64,30 +63,31 @@ export declare class DeltaStreamer {
|
|
|
64
63
|
readonly ctx: RunActionCtx;
|
|
65
64
|
readonly metadata: {
|
|
66
65
|
threadId: string;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
abortSignal
|
|
66
|
+
userId?: string;
|
|
67
|
+
order: number;
|
|
68
|
+
stepOrder: number;
|
|
69
|
+
agentName?: string;
|
|
70
|
+
model?: string;
|
|
71
|
+
provider?: string;
|
|
72
|
+
providerOptions?: ProviderOptions;
|
|
73
|
+
abortSignal?: AbortSignal;
|
|
75
74
|
};
|
|
76
75
|
streamId: string | undefined;
|
|
77
76
|
readonly options: Required<StreamingOptions>;
|
|
78
77
|
abortController: AbortController;
|
|
79
78
|
constructor(component: AgentComponent, ctx: RunActionCtx, options: true | StreamingOptions, metadata: {
|
|
80
79
|
threadId: string;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
abortSignal
|
|
80
|
+
userId?: string;
|
|
81
|
+
order: number;
|
|
82
|
+
stepOrder: number;
|
|
83
|
+
agentName?: string;
|
|
84
|
+
model?: string;
|
|
85
|
+
provider?: string;
|
|
86
|
+
providerOptions?: ProviderOptions;
|
|
87
|
+
abortSignal?: AbortSignal;
|
|
89
88
|
});
|
|
90
|
-
addParts(parts: TextStreamPart[]): Promise<void>;
|
|
91
|
-
finish(
|
|
89
|
+
addParts(parts: TextStreamPart<ToolSet>[]): Promise<void>;
|
|
90
|
+
finish(): Promise<void>;
|
|
91
|
+
fail(reason: string): Promise<void>;
|
|
92
92
|
}
|
|
93
93
|
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACb,MAAM,IAAI,CAAC;AACZ,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EAEV,aAAa,
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"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"}
|
package/dist/client/streaming.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { smoothStream, } from "ai";
|
|
2
2
|
import { omit } from "convex-helpers";
|
|
3
|
+
import { serializeTextStreamingPartsV5 } from "../parts.js";
|
|
3
4
|
/**
|
|
4
5
|
* A function that handles fetching stream deltas, used with the React hooks
|
|
5
6
|
* `useThreadMessages` or `useStreamingThreadMessages`.
|
|
@@ -90,8 +91,6 @@ export class DeltaStreamer {
|
|
|
90
91
|
streamId;
|
|
91
92
|
options;
|
|
92
93
|
#nextParts = [];
|
|
93
|
-
#nextOrder;
|
|
94
|
-
#nextStepOrder;
|
|
95
94
|
#latestWrite = 0;
|
|
96
95
|
#ongoingWrite;
|
|
97
96
|
#cursor = 0;
|
|
@@ -103,23 +102,21 @@ export class DeltaStreamer {
|
|
|
103
102
|
this.options =
|
|
104
103
|
typeof options === "boolean"
|
|
105
104
|
? DEFAULT_STREAMING_OPTIONS
|
|
106
|
-
: {
|
|
107
|
-
...DEFAULT_STREAMING_OPTIONS,
|
|
108
|
-
...options,
|
|
109
|
-
};
|
|
105
|
+
: { ...DEFAULT_STREAMING_OPTIONS, ...options };
|
|
110
106
|
this.#nextParts = [];
|
|
111
|
-
this.#nextOrder = metadata.order ?? 0;
|
|
112
|
-
this.#nextStepOrder = (metadata.stepOrder ?? 0) + 1;
|
|
113
107
|
this.abortController = new AbortController();
|
|
114
108
|
if (metadata.abortSignal) {
|
|
115
109
|
metadata.abortSignal.addEventListener("abort", async () => {
|
|
116
110
|
if (this.streamId) {
|
|
111
|
+
this.abortController.abort();
|
|
112
|
+
const finalDelta = this.#createDelta();
|
|
113
|
+
await this.#ongoingWrite;
|
|
117
114
|
await this.ctx.runMutation(this.component.streams.abort, {
|
|
118
115
|
streamId: this.streamId,
|
|
119
116
|
reason: "abortSignal",
|
|
117
|
+
finalDelta,
|
|
120
118
|
});
|
|
121
119
|
}
|
|
122
|
-
this.abortController.abort();
|
|
123
120
|
});
|
|
124
121
|
}
|
|
125
122
|
}
|
|
@@ -128,11 +125,7 @@ export class DeltaStreamer {
|
|
|
128
125
|
return;
|
|
129
126
|
}
|
|
130
127
|
if (!this.streamId) {
|
|
131
|
-
this.streamId = await this.ctx.runMutation(this.component.streams.create,
|
|
132
|
-
...omit(this.metadata, ["abortSignal"]),
|
|
133
|
-
order: this.#nextOrder,
|
|
134
|
-
stepOrder: this.#nextStepOrder,
|
|
135
|
-
});
|
|
128
|
+
this.streamId = await this.ctx.runMutation(this.component.streams.create, omit(this.metadata, ["abortSignal"]));
|
|
136
129
|
}
|
|
137
130
|
this.#nextParts.push(...parts);
|
|
138
131
|
if (!this.#ongoingWrite &&
|
|
@@ -145,6 +138,9 @@ export class DeltaStreamer {
|
|
|
145
138
|
return;
|
|
146
139
|
}
|
|
147
140
|
const delta = this.#createDelta();
|
|
141
|
+
if (!delta) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
148
144
|
this.#latestWrite = Date.now();
|
|
149
145
|
try {
|
|
150
146
|
const success = await this.ctx.runMutation(this.component.streams.addDelta, delta);
|
|
@@ -167,44 +163,43 @@ export class DeltaStreamer {
|
|
|
167
163
|
}
|
|
168
164
|
}
|
|
169
165
|
#createDelta() {
|
|
166
|
+
if (this.#nextParts.length === 0) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
170
169
|
const start = this.#cursor;
|
|
171
170
|
const end = start + this.#nextParts.length;
|
|
172
171
|
this.#cursor = end;
|
|
173
|
-
const parts = this.#nextParts;
|
|
172
|
+
const parts = serializeTextStreamingPartsV5(this.#nextParts);
|
|
174
173
|
this.#nextParts = [];
|
|
175
174
|
if (!this.streamId) {
|
|
176
175
|
throw new Error("Creating a delta before the stream is created");
|
|
177
176
|
}
|
|
178
|
-
return {
|
|
179
|
-
streamId: this.streamId,
|
|
180
|
-
start,
|
|
181
|
-
end,
|
|
182
|
-
parts,
|
|
183
|
-
};
|
|
177
|
+
return { streamId: this.streamId, start, end, parts };
|
|
184
178
|
}
|
|
185
|
-
async finish(
|
|
186
|
-
if (this.#ongoingWrite) {
|
|
187
|
-
await this.#ongoingWrite;
|
|
188
|
-
this.#ongoingWrite = undefined;
|
|
189
|
-
}
|
|
179
|
+
async finish() {
|
|
190
180
|
if (!this.streamId) {
|
|
191
|
-
|
|
181
|
+
return;
|
|
192
182
|
}
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
this
|
|
183
|
+
const finalDelta = this.#createDelta();
|
|
184
|
+
await this.#ongoingWrite;
|
|
185
|
+
await this.ctx.runMutation(this.component.streams.finish, {
|
|
186
|
+
streamId: this.streamId,
|
|
187
|
+
finalDelta,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
async fail(reason) {
|
|
191
|
+
if (this.abortController.signal.aborted) {
|
|
192
|
+
return;
|
|
197
193
|
}
|
|
198
|
-
|
|
199
|
-
|
|
194
|
+
this.abortController.abort();
|
|
195
|
+
if (!this.streamId) {
|
|
196
|
+
return;
|
|
200
197
|
}
|
|
201
|
-
const finalDelta = this.#
|
|
202
|
-
this.#
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
await this.ctx.runMutation(this.component.streams.finish, {
|
|
207
|
-
streamId,
|
|
198
|
+
const finalDelta = this.#createDelta();
|
|
199
|
+
await this.#ongoingWrite;
|
|
200
|
+
await this.ctx.runMutation(this.component.streams.abort, {
|
|
201
|
+
streamId: this.streamId,
|
|
202
|
+
reason,
|
|
208
203
|
finalDelta,
|
|
209
204
|
});
|
|
210
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/client/streaming.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { WithoutSystemFields } from "convex/server";
|
|
2
|
+
import type { ThreadDoc } from "../component/schema.js";
|
|
3
|
+
import type { AgentComponent, RunMutationCtx, RunQueryCtx } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Create a thread to store messages with an Agent.
|
|
6
|
+
* @param ctx The context from a mutation or action.
|
|
7
|
+
* @param component The Agent component, usually `components.agent`.
|
|
8
|
+
* @param args The associated thread metadata.
|
|
9
|
+
* @returns The id of the created thread.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createThread(ctx: RunMutationCtx, component: AgentComponent, args?: {
|
|
12
|
+
userId?: string | null;
|
|
13
|
+
title?: string;
|
|
14
|
+
summary?: string;
|
|
15
|
+
}): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Get the metadata for a thread.
|
|
18
|
+
* @param ctx A ctx object from a query, mutation, or action.
|
|
19
|
+
* @param args.threadId The thread to get the metadata for.
|
|
20
|
+
* @returns The metadata for the thread.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getThreadMetadata(ctx: RunQueryCtx, component: AgentComponent, args: {
|
|
23
|
+
threadId: string;
|
|
24
|
+
}): Promise<ThreadDoc>;
|
|
25
|
+
export declare function updateThreadMetadata(ctx: RunMutationCtx, component: AgentComponent, args: {
|
|
26
|
+
threadId: string;
|
|
27
|
+
patch: Partial<WithoutSystemFields<ThreadDoc>>;
|
|
28
|
+
}): Promise<{
|
|
29
|
+
_creationTime: number;
|
|
30
|
+
_id: string;
|
|
31
|
+
status: "active" | "archived";
|
|
32
|
+
summary?: string | undefined;
|
|
33
|
+
title?: string | undefined;
|
|
34
|
+
userId?: string | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Search for threads by title, paginated.
|
|
38
|
+
* @param ctx The context passed from the query/mutation/action.
|
|
39
|
+
* @returns The threads matching the search, paginated.
|
|
40
|
+
*/
|
|
41
|
+
export declare function searchThreadTitles(ctx: RunQueryCtx, component: AgentComponent, { userId, query, limit, }: {
|
|
42
|
+
userId?: string | undefined;
|
|
43
|
+
query: string;
|
|
44
|
+
limit?: number;
|
|
45
|
+
}): Promise<ThreadDoc[]>;
|
|
46
|
+
//# sourceMappingURL=threads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/client/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,cAAc,EACzB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,mBAWpE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAAC,SAAS,CAAC,CAQpB;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAA;CAAE;;;;;;;GAM3E;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,cAAc,EACzB,EACE,MAAM,EACN,KAAK,EACL,KAAK,GACN,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,OAAO,CAAC,SAAS,EAAE,CAAC,CAMtB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a thread to store messages with an Agent.
|
|
3
|
+
* @param ctx The context from a mutation or action.
|
|
4
|
+
* @param component The Agent component, usually `components.agent`.
|
|
5
|
+
* @param args The associated thread metadata.
|
|
6
|
+
* @returns The id of the created thread.
|
|
7
|
+
*/
|
|
8
|
+
export async function createThread(ctx, component, args) {
|
|
9
|
+
const { _id: threadId } = await ctx.runMutation(component.threads.createThread, {
|
|
10
|
+
userId: args?.userId ?? undefined,
|
|
11
|
+
title: args?.title,
|
|
12
|
+
summary: args?.summary,
|
|
13
|
+
});
|
|
14
|
+
return threadId;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get the metadata for a thread.
|
|
18
|
+
* @param ctx A ctx object from a query, mutation, or action.
|
|
19
|
+
* @param args.threadId The thread to get the metadata for.
|
|
20
|
+
* @returns The metadata for the thread.
|
|
21
|
+
*/
|
|
22
|
+
export async function getThreadMetadata(ctx, component, args) {
|
|
23
|
+
const thread = await ctx.runQuery(component.threads.getThread, {
|
|
24
|
+
threadId: args.threadId,
|
|
25
|
+
});
|
|
26
|
+
if (!thread) {
|
|
27
|
+
throw new Error("Thread not found");
|
|
28
|
+
}
|
|
29
|
+
return thread;
|
|
30
|
+
}
|
|
31
|
+
export async function updateThreadMetadata(ctx, component, args) {
|
|
32
|
+
return ctx.runMutation(component.threads.updateThread, {
|
|
33
|
+
threadId: args.threadId,
|
|
34
|
+
patch: args.patch,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Search for threads by title, paginated.
|
|
39
|
+
* @param ctx The context passed from the query/mutation/action.
|
|
40
|
+
* @returns The threads matching the search, paginated.
|
|
41
|
+
*/
|
|
42
|
+
export async function searchThreadTitles(ctx, component, { userId, query, limit, }) {
|
|
43
|
+
return ctx.runQuery(component.threads.searchThreadTitles, {
|
|
44
|
+
userId,
|
|
45
|
+
query,
|
|
46
|
+
limit: limit ?? 10,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=threads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../src/client/threads.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAmB,EACnB,SAAyB,EACzB,IAAmE;IAEnE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,WAAW,CAC7C,SAAS,CAAC,OAAO,CAAC,YAAY,EAC9B;QACE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,SAAS;QACjC,KAAK,EAAE,IAAI,EAAE,KAAK;QAClB,OAAO,EAAE,IAAI,EAAE,OAAO;KACvB,CACF,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAgB,EAChB,SAAyB,EACzB,IAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;QAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAmB,EACnB,SAAyB,EACzB,IAA0E;IAE1E,OAAO,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;QACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAgB,EAChB,SAAyB,EACzB,EACE,MAAM,EACN,KAAK,EACL,KAAK,GAC0D;IAEjE,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE;QACxD,MAAM;QACN,KAAK;QACL,KAAK,EAAE,KAAK,IAAI,EAAE;KACnB,CAAC,CAAC;AACL,CAAC"}
|