@convex-dev/agent 0.6.3 → 0.7.0-alpha.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/MIGRATION.md +60 -116
- package/dist/client/messages.d.ts +1 -398
- package/dist/client/messages.d.ts.map +1 -1
- package/dist/client/messages.js +3 -47
- package/dist/client/messages.js.map +1 -1
- package/dist/client/types.d.ts +1 -455
- package/dist/client/types.d.ts.map +1 -1
- package/dist/component/_generated/component.d.ts +805 -45
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/apiKeys.js +5 -5
- package/dist/component/apiKeys.js.map +1 -1
- package/dist/component/files.d.ts.map +1 -1
- package/dist/component/files.js +13 -11
- package/dist/component/files.js.map +1 -1
- package/dist/component/messages.d.ts +1252 -201
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +83 -47
- package/dist/component/messages.js.map +1 -1
- package/dist/component/schema.d.ts +2593 -332
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/streams.d.ts +7 -1
- package/dist/component/streams.d.ts.map +1 -1
- package/dist/component/streams.js +46 -47
- package/dist/component/streams.js.map +1 -1
- package/dist/component/threads.d.ts.map +1 -1
- package/dist/component/threads.js +8 -9
- package/dist/component/threads.js.map +1 -1
- package/dist/component/users.js +2 -2
- package/dist/component/users.js.map +1 -1
- package/dist/component/vector/index.d.ts.map +1 -1
- package/dist/component/vector/index.js +14 -8
- package/dist/component/vector/index.js.map +1 -1
- package/dist/react/index.d.ts +5 -5
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +5 -5
- package/dist/react/index.js.map +1 -1
- package/dist/shared.d.ts +19 -7
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +4 -4
- package/dist/shared.js.map +1 -1
- package/dist/streaming/materializePersistedUIMessageChunks.d.ts +16 -0
- package/dist/streaming/materializePersistedUIMessageChunks.d.ts.map +1 -0
- package/dist/streaming/materializePersistedUIMessageChunks.js +302 -0
- package/dist/streaming/materializePersistedUIMessageChunks.js.map +1 -0
- package/dist/streaming/persistedUIMessageChunks.d.ts +106 -0
- package/dist/streaming/persistedUIMessageChunks.d.ts.map +1 -0
- package/dist/streaming/persistedUIMessageChunks.js +475 -0
- package/dist/streaming/persistedUIMessageChunks.js.map +1 -0
- package/dist/validators.d.ts +10026 -1055
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +71 -9
- package/dist/validators.js.map +1 -1
- package/dist/{UIMessages.d.ts → vercel/UIMessages.d.ts} +1 -1
- package/dist/vercel/UIMessages.d.ts.map +1 -0
- package/dist/{UIMessages.js → vercel/UIMessages.js} +63 -1
- package/dist/vercel/UIMessages.js.map +1 -0
- package/dist/{client → vercel/client}/createTool.d.ts +23 -16
- package/dist/vercel/client/createTool.d.ts.map +1 -0
- package/dist/{client → vercel/client}/createTool.js +2 -0
- package/dist/vercel/client/createTool.js.map +1 -0
- package/dist/{client → vercel/client}/definePlaygroundAPI.d.ts +593 -134
- package/dist/{client → vercel/client}/definePlaygroundAPI.d.ts.map +1 -1
- package/dist/{client → vercel/client}/definePlaygroundAPI.js +13 -9
- package/dist/vercel/client/definePlaygroundAPI.js.map +1 -0
- package/dist/{client → vercel/client}/files.d.ts +2 -2
- package/dist/vercel/client/files.d.ts.map +1 -0
- package/dist/vercel/client/files.js.map +1 -0
- package/dist/vercel/client/messages.d.ts +542 -0
- package/dist/vercel/client/messages.d.ts.map +1 -0
- package/dist/vercel/client/messages.js +66 -0
- package/dist/vercel/client/messages.js.map +1 -0
- package/dist/{client → vercel/client}/mockModel.d.ts +17 -17
- package/dist/vercel/client/mockModel.d.ts.map +1 -0
- package/dist/{client → vercel/client}/mockModel.js +12 -13
- package/dist/vercel/client/mockModel.js.map +1 -0
- package/dist/{client → vercel/client}/saveInputMessages.d.ts +2 -2
- package/dist/vercel/client/saveInputMessages.d.ts.map +1 -0
- package/dist/vercel/client/saveInputMessages.js.map +1 -0
- package/dist/{client → vercel/client}/search.d.ts +119 -22
- package/dist/vercel/client/search.d.ts.map +1 -0
- package/dist/{client → vercel/client}/search.js +2 -2
- package/dist/vercel/client/search.js.map +1 -0
- package/dist/{client → vercel/client}/start.d.ts +26 -11
- package/dist/vercel/client/start.d.ts.map +1 -0
- package/dist/{client → vercel/client}/start.js +64 -22
- package/dist/vercel/client/start.js.map +1 -0
- package/dist/{client → vercel/client}/streamText.d.ts +13 -12
- package/dist/vercel/client/streamText.d.ts.map +1 -0
- package/dist/{client → vercel/client}/streamText.js +43 -9
- package/dist/vercel/client/streamText.js.map +1 -0
- package/dist/{client → vercel/client}/streaming.d.ts +1410 -183
- package/dist/vercel/client/streaming.d.ts.map +1 -0
- package/dist/{client → vercel/client}/streaming.js +120 -52
- package/dist/vercel/client/streaming.js.map +1 -0
- package/dist/vercel/client/types.d.ts +456 -0
- package/dist/vercel/client/types.d.ts.map +1 -0
- package/dist/vercel/client/types.js +3 -0
- package/dist/vercel/client/types.js.map +1 -0
- package/dist/{client → vercel/client}/utils.d.ts +3 -2
- package/dist/vercel/client/utils.d.ts.map +1 -0
- package/dist/{client → vercel/client}/utils.js +2 -2
- package/dist/vercel/client/utils.js.map +1 -0
- package/dist/vercel/deltas.d.ts +31 -0
- package/dist/vercel/deltas.d.ts.map +1 -0
- package/dist/vercel/deltas.js +525 -0
- package/dist/vercel/deltas.js.map +1 -0
- package/dist/{client → vercel}/index.d.ts +484 -97
- package/dist/vercel/index.d.ts.map +1 -0
- package/dist/{client → vercel}/index.js +65 -38
- package/dist/vercel/index.js.map +1 -0
- package/dist/{mapping.d.ts → vercel/mapping.d.ts} +5 -13
- package/dist/vercel/mapping.d.ts.map +1 -0
- package/dist/{mapping.js → vercel/mapping.js} +411 -112
- package/dist/vercel/mapping.js.map +1 -0
- package/dist/{react → vercel/react}/optimisticallySendMessage.d.ts +2 -2
- package/dist/vercel/react/optimisticallySendMessage.d.ts.map +1 -0
- package/dist/vercel/react/optimisticallySendMessage.js.map +1 -0
- package/dist/{react → vercel/react}/types.d.ts +1 -1
- package/dist/vercel/react/types.d.ts.map +1 -0
- package/dist/{react → vercel/react}/types.js.map +1 -1
- package/dist/{react → vercel/react}/useDeltaStreams.d.ts +1 -1
- package/dist/vercel/react/useDeltaStreams.d.ts.map +1 -0
- package/dist/{react → vercel/react}/useDeltaStreams.js +1 -1
- package/dist/vercel/react/useDeltaStreams.js.map +1 -0
- package/dist/{react → vercel/react}/useStreamingUIMessages.d.ts +1 -1
- package/dist/vercel/react/useStreamingUIMessages.d.ts.map +1 -0
- package/dist/vercel/react/useStreamingUIMessages.js +112 -0
- package/dist/vercel/react/useStreamingUIMessages.js.map +1 -0
- package/dist/{react → vercel/react}/useThreadMessages.d.ts +1 -1
- package/dist/vercel/react/useThreadMessages.d.ts.map +1 -0
- package/dist/{react → vercel/react}/useThreadMessages.js +1 -1
- package/dist/vercel/react/useThreadMessages.js.map +1 -0
- package/dist/{react → vercel/react}/useUIMessages.d.ts +2 -1
- package/dist/vercel/react/useUIMessages.d.ts.map +1 -0
- package/dist/{react → vercel/react}/useUIMessages.js +8 -4
- package/dist/vercel/react/useUIMessages.js.map +1 -0
- package/package.json +30 -22
- package/src/client/messages.ts +5 -107
- package/src/client/types.ts +0 -621
- package/src/component/_generated/component.ts +1089 -48
- package/src/component/apiKeys.ts +5 -5
- package/src/component/files.test.ts +1 -1
- package/src/component/files.ts +14 -12
- package/src/component/messages.test.ts +273 -1
- package/src/component/messages.ts +99 -57
- package/src/component/streams.ts +80 -64
- package/src/component/threads.ts +12 -9
- package/src/component/users.ts +2 -2
- package/src/component/vector/index.ts +14 -7
- package/src/eslintConfig.test.ts +44 -0
- package/src/react/index.ts +8 -5
- package/src/shared.ts +26 -36
- package/src/streaming/materializePersistedUIMessageChunks.test.ts +513 -0
- package/src/streaming/materializePersistedUIMessageChunks.ts +398 -0
- package/src/streaming/persistedUIMessageChunks.test.ts +205 -0
- package/src/streaming/persistedUIMessageChunks.ts +658 -0
- package/src/validators.test.ts +4 -1
- package/src/validators.ts +89 -8
- package/src/{UIMessages.combineUIMessages.test.ts → vercel/UIMessages.combineUIMessages.test.ts} +4 -1
- package/src/{UIMessages.ts → vercel/UIMessages.ts} +96 -5
- package/src/{client → vercel/client}/approval.test.ts +48 -19
- package/src/{client → vercel/client}/createTool.ts +63 -23
- package/src/{client → vercel/client}/definePlaygroundAPI.ts +44 -29
- package/src/{client → vercel/client}/files.ts +2 -2
- package/src/{client → vercel/client}/index.test.ts +162 -3
- package/src/vercel/client/messages.ts +182 -0
- package/src/{client → vercel/client}/mockModel.ts +38 -39
- package/src/{client → vercel/client}/saveInputMessages.test.ts +1 -1
- package/src/{client → vercel/client}/saveInputMessages.ts +7 -4
- package/src/{client → vercel/client}/search.test.ts +3 -3
- package/src/{client → vercel/client}/search.ts +4 -4
- package/src/{client → vercel/client}/setup.test.ts +6 -3
- package/src/vercel/client/start.test.ts +14 -0
- package/src/{client → vercel/client}/start.ts +147 -36
- package/src/vercel/client/streamText.test.ts +223 -0
- package/src/{client → vercel/client}/streamText.ts +102 -31
- package/src/{client → vercel/client}/streaming.integration.test.ts +40 -115
- package/src/{client → vercel/client}/streaming.test.ts +178 -4
- package/src/{client → vercel/client}/streaming.ts +114 -52
- package/src/vercel/client/types.test.ts +13 -0
- package/src/vercel/client/types.ts +679 -0
- package/src/{client → vercel/client}/utils.ts +13 -7
- package/src/vercel/deltas.test.ts +898 -0
- package/src/vercel/deltas.ts +633 -0
- package/src/{fromUIMessages.test.ts → vercel/fromUIMessages.test.ts} +17 -1
- package/src/{client → vercel}/index.ts +169 -62
- package/src/vercel/mapping.test.ts +965 -0
- package/src/{mapping.ts → vercel/mapping.ts} +501 -131
- package/src/{react → vercel/react}/optimisticallySendMessage.ts +2 -2
- package/src/{react → vercel/react}/types.ts +1 -1
- package/src/{react → vercel/react}/useDeltaStreams.ts +6 -2
- package/src/{react → vercel/react}/useStreamingUIMessages.ts +67 -35
- package/src/{react → vercel/react}/useThreadMessages.ts +2 -2
- package/src/{react → vercel/react}/useUIMessages.test.ts +80 -1
- package/src/{react → vercel/react}/useUIMessages.ts +13 -5
- package/src/{toUIMessages.test.ts → vercel/toUIMessages.test.ts} +49 -2
- package/dist/UIMessages.d.ts.map +0 -1
- package/dist/UIMessages.js.map +0 -1
- package/dist/client/createTool.d.ts.map +0 -1
- package/dist/client/createTool.js.map +0 -1
- package/dist/client/definePlaygroundAPI.js.map +0 -1
- package/dist/client/files.d.ts.map +0 -1
- package/dist/client/files.js.map +0 -1
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js.map +0 -1
- package/dist/client/mockModel.d.ts.map +0 -1
- package/dist/client/mockModel.js.map +0 -1
- package/dist/client/saveInputMessages.d.ts.map +0 -1
- package/dist/client/saveInputMessages.js.map +0 -1
- package/dist/client/search.d.ts.map +0 -1
- package/dist/client/search.js.map +0 -1
- package/dist/client/start.d.ts.map +0 -1
- package/dist/client/start.js.map +0 -1
- package/dist/client/streamText.d.ts.map +0 -1
- package/dist/client/streamText.js.map +0 -1
- package/dist/client/streaming.d.ts.map +0 -1
- package/dist/client/streaming.js.map +0 -1
- package/dist/client/utils.d.ts.map +0 -1
- package/dist/client/utils.js.map +0 -1
- package/dist/deltas.d.ts +0 -43
- package/dist/deltas.d.ts.map +0 -1
- package/dist/deltas.js +0 -446
- package/dist/deltas.js.map +0 -1
- package/dist/mapping.d.ts.map +0 -1
- package/dist/mapping.js.map +0 -1
- package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
- package/dist/react/optimisticallySendMessage.js.map +0 -1
- package/dist/react/types.d.ts.map +0 -1
- package/dist/react/useDeltaStreams.d.ts.map +0 -1
- package/dist/react/useDeltaStreams.js.map +0 -1
- package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
- package/dist/react/useStreamingUIMessages.js +0 -92
- package/dist/react/useStreamingUIMessages.js.map +0 -1
- package/dist/react/useThreadMessages.d.ts.map +0 -1
- package/dist/react/useThreadMessages.js.map +0 -1
- package/dist/react/useUIMessages.d.ts.map +0 -1
- package/dist/react/useUIMessages.js.map +0 -1
- package/src/client/streamText.test.ts +0 -102
- package/src/deltas.test.ts +0 -626
- package/src/deltas.ts +0 -569
- package/src/mapping.test.ts +0 -402
- /package/dist/{client → vercel/client}/files.js +0 -0
- /package/dist/{client → vercel/client}/saveInputMessages.js +0 -0
- /package/dist/{react → vercel/react}/optimisticallySendMessage.js +0 -0
- /package/dist/{react → vercel/react}/types.js +0 -0
- /package/src/{UIMessages.test.ts → vercel/UIMessages.test.ts} +0 -0
package/src/client/messages.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { ModelMessage } from "ai";
|
|
2
1
|
import type { PaginationOptions, PaginationResult } from "convex/server";
|
|
3
2
|
import type { MessageDoc } from "../validators.js";
|
|
4
3
|
import { validateVectorDimension } from "../component/vector/tables.js";
|
|
@@ -10,8 +9,6 @@ import {
|
|
|
10
9
|
type MessageStatus,
|
|
11
10
|
type MessageWithMetadata,
|
|
12
11
|
} from "../validators.js";
|
|
13
|
-
import { serializeMessage } from "../mapping.js";
|
|
14
|
-
import { toUIMessages, type UIMessage } from "../UIMessages.js";
|
|
15
12
|
import type {
|
|
16
13
|
AgentComponent,
|
|
17
14
|
MutationCtx,
|
|
@@ -62,18 +59,6 @@ export async function listMessages(
|
|
|
62
59
|
});
|
|
63
60
|
}
|
|
64
61
|
|
|
65
|
-
export async function listUIMessages(
|
|
66
|
-
ctx: QueryCtx | MutationCtx | ActionCtx,
|
|
67
|
-
component: AgentComponent,
|
|
68
|
-
args: {
|
|
69
|
-
threadId: string;
|
|
70
|
-
paginationOpts: PaginationOptions;
|
|
71
|
-
},
|
|
72
|
-
): Promise<PaginationResult<UIMessage>> {
|
|
73
|
-
const result = await listMessages(ctx, component, args);
|
|
74
|
-
return { ...result, page: toUIMessages(result.page) };
|
|
75
|
-
}
|
|
76
|
-
|
|
77
62
|
export type SaveMessagesArgs = {
|
|
78
63
|
threadId: string;
|
|
79
64
|
userId?: string | null;
|
|
@@ -85,7 +70,7 @@ export type SaveMessagesArgs = {
|
|
|
85
70
|
/**
|
|
86
71
|
* The messages to save.
|
|
87
72
|
*/
|
|
88
|
-
messages:
|
|
73
|
+
messages: Message[];
|
|
89
74
|
/**
|
|
90
75
|
* Metadata to save with the messages. Each element corresponds to the
|
|
91
76
|
* message at the same index.
|
|
@@ -138,100 +123,13 @@ export async function saveMessages(
|
|
|
138
123
|
promptMessageId: args.promptMessageId,
|
|
139
124
|
pendingMessageId: args.pendingMessageId,
|
|
140
125
|
embeddings,
|
|
141
|
-
messages:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const allFileIds = [...(base?.fileIds ?? [])];
|
|
146
|
-
if (fileIds) allFileIds.push(...fileIds);
|
|
147
|
-
|
|
148
|
-
return parse(vMessageWithMetadata, {
|
|
149
|
-
...base,
|
|
150
|
-
message,
|
|
151
|
-
...(allFileIds.length > 0 ? { fileIds: allFileIds } : {}),
|
|
152
|
-
});
|
|
126
|
+
messages: args.messages.map((message, i) =>
|
|
127
|
+
parse(vMessageWithMetadata, {
|
|
128
|
+
...args.metadata?.[i],
|
|
129
|
+
message,
|
|
153
130
|
}),
|
|
154
131
|
),
|
|
155
132
|
failPendingSteps: args.failPendingSteps ?? false,
|
|
156
133
|
});
|
|
157
134
|
return { messages: result.messages };
|
|
158
135
|
}
|
|
159
|
-
|
|
160
|
-
export type SaveMessageArgs = {
|
|
161
|
-
threadId: string;
|
|
162
|
-
userId?: string | null;
|
|
163
|
-
/**
|
|
164
|
-
* The message that these messages are in response to. They will be
|
|
165
|
-
* the same "order" as this message, at increasing stepOrder(s).
|
|
166
|
-
*/
|
|
167
|
-
promptMessageId?: string;
|
|
168
|
-
/**
|
|
169
|
-
* Metadata to save with the messages. Each element corresponds to the
|
|
170
|
-
* message at the same index.
|
|
171
|
-
*/
|
|
172
|
-
metadata?: Omit<MessageWithMetadata, "message">;
|
|
173
|
-
/**
|
|
174
|
-
* The embedding to save with the message.
|
|
175
|
-
*/
|
|
176
|
-
embedding?: { vector: number[]; model: string };
|
|
177
|
-
/**
|
|
178
|
-
* A pending message ID to replace with this message.
|
|
179
|
-
*/
|
|
180
|
-
pendingMessageId?: string;
|
|
181
|
-
} & (
|
|
182
|
-
| {
|
|
183
|
-
prompt?: undefined;
|
|
184
|
-
/**
|
|
185
|
-
* The message to save.
|
|
186
|
-
*/
|
|
187
|
-
message: ModelMessage | Message;
|
|
188
|
-
}
|
|
189
|
-
| {
|
|
190
|
-
/*
|
|
191
|
-
* The prompt to save with the message.
|
|
192
|
-
*/
|
|
193
|
-
prompt: string;
|
|
194
|
-
message?: undefined;
|
|
195
|
-
}
|
|
196
|
-
);
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Save a message to the thread.
|
|
200
|
-
* @param ctx A ctx object from a mutation or action.
|
|
201
|
-
* @param args The message and what to associate it with (user / thread)
|
|
202
|
-
* You can pass extra metadata alongside the message, e.g. associated fileIds.
|
|
203
|
-
* @returns The messageId of the saved message.
|
|
204
|
-
*/
|
|
205
|
-
export async function saveMessage(
|
|
206
|
-
ctx: MutationCtx | ActionCtx,
|
|
207
|
-
component: AgentComponent,
|
|
208
|
-
args: SaveMessageArgs & {
|
|
209
|
-
/**
|
|
210
|
-
* The agent name to associate with the message.
|
|
211
|
-
*/
|
|
212
|
-
agentName?: string;
|
|
213
|
-
},
|
|
214
|
-
) {
|
|
215
|
-
let embeddings: { vectors: number[][]; model: string } | undefined;
|
|
216
|
-
if (args.embedding && args.embedding.vector) {
|
|
217
|
-
embeddings = {
|
|
218
|
-
model: args.embedding.model,
|
|
219
|
-
vectors: [args.embedding.vector],
|
|
220
|
-
};
|
|
221
|
-
}
|
|
222
|
-
const { messages } = await saveMessages(ctx, component, {
|
|
223
|
-
threadId: args.threadId,
|
|
224
|
-
userId: args.userId ?? undefined,
|
|
225
|
-
agentName: args.agentName,
|
|
226
|
-
promptMessageId: args.promptMessageId,
|
|
227
|
-
pendingMessageId: args.pendingMessageId,
|
|
228
|
-
messages:
|
|
229
|
-
args.prompt !== undefined
|
|
230
|
-
? [{ role: "user", content: args.prompt }]
|
|
231
|
-
: [args.message],
|
|
232
|
-
metadata: args.metadata ? [args.metadata] : undefined,
|
|
233
|
-
embeddings,
|
|
234
|
-
});
|
|
235
|
-
const message = messages.at(-1)!;
|
|
236
|
-
return { messageId: message._id, message };
|
|
237
|
-
}
|