@convex-dev/agent 0.1.6 → 0.1.7-alpha.1
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/README.md +23 -12
- package/dist/commonjs/client/_generated/_ignore.d.ts +1 -0
- package/dist/commonjs/client/_generated/_ignore.d.ts.map +1 -0
- package/dist/commonjs/client/_generated/_ignore.js +3 -0
- package/dist/commonjs/client/_generated/_ignore.js.map +1 -0
- package/dist/commonjs/client/files.d.ts +57 -0
- package/dist/commonjs/client/files.d.ts.map +1 -0
- package/dist/commonjs/client/files.js +124 -0
- package/dist/commonjs/client/files.js.map +1 -0
- package/dist/commonjs/client/index.d.ts +487 -318
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +652 -550
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/client/types.d.ts +35 -5
- package/dist/commonjs/client/types.d.ts.map +1 -1
- package/dist/commonjs/component/_generated/api.d.ts +47 -711
- package/dist/commonjs/component/files.d.ts +66 -21
- package/dist/commonjs/component/files.d.ts.map +1 -1
- package/dist/commonjs/component/files.js +71 -26
- package/dist/commonjs/component/files.js.map +1 -1
- package/dist/commonjs/component/messages.d.ts +31 -499
- package/dist/commonjs/component/messages.d.ts.map +1 -1
- package/dist/commonjs/component/messages.js +45 -125
- package/dist/commonjs/component/messages.js.map +1 -1
- package/dist/commonjs/component/schema.d.ts +949 -3785
- package/dist/commonjs/component/schema.d.ts.map +1 -1
- package/dist/commonjs/component/schema.js +9 -25
- package/dist/commonjs/component/schema.js.map +1 -1
- package/dist/commonjs/component/streams.d.ts +3 -3
- package/dist/commonjs/mapping.d.ts +28 -19
- package/dist/commonjs/mapping.d.ts.map +1 -1
- package/dist/commonjs/mapping.js +136 -81
- package/dist/commonjs/mapping.js.map +1 -1
- package/dist/commonjs/react/toUIMessages.d.ts.map +1 -1
- package/dist/commonjs/react/toUIMessages.js +12 -6
- package/dist/commonjs/react/toUIMessages.js.map +1 -1
- package/dist/commonjs/react/usePaginatedQuery.d.ts.map +1 -1
- package/dist/commonjs/react/usePaginatedQuery.js +0 -19
- package/dist/commonjs/react/usePaginatedQuery.js.map +1 -1
- package/dist/commonjs/validators.d.ts +851 -3388
- package/dist/commonjs/validators.d.ts.map +1 -1
- package/dist/commonjs/validators.js +11 -37
- package/dist/commonjs/validators.js.map +1 -1
- package/dist/commonjs.tsbuildinfo +1 -1
- package/dist/esm/client/_generated/_ignore.d.ts +1 -0
- package/dist/esm/client/_generated/_ignore.d.ts.map +1 -0
- package/dist/esm/client/_generated/_ignore.js +3 -0
- package/dist/esm/client/_generated/_ignore.js.map +1 -0
- package/dist/esm/client/files.d.ts +57 -0
- package/dist/esm/client/files.d.ts.map +1 -0
- package/dist/esm/client/files.js +124 -0
- package/dist/esm/client/files.js.map +1 -0
- package/dist/esm/client/index.d.ts +487 -318
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +652 -550
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/types.d.ts +35 -5
- package/dist/esm/client/types.d.ts.map +1 -1
- package/dist/esm/component/_generated/api.d.ts +47 -711
- package/dist/esm/component/files.d.ts +66 -21
- package/dist/esm/component/files.d.ts.map +1 -1
- package/dist/esm/component/files.js +71 -26
- package/dist/esm/component/files.js.map +1 -1
- package/dist/esm/component/messages.d.ts +31 -499
- package/dist/esm/component/messages.d.ts.map +1 -1
- package/dist/esm/component/messages.js +45 -125
- package/dist/esm/component/messages.js.map +1 -1
- package/dist/esm/component/schema.d.ts +949 -3785
- package/dist/esm/component/schema.d.ts.map +1 -1
- package/dist/esm/component/schema.js +9 -25
- package/dist/esm/component/schema.js.map +1 -1
- package/dist/esm/component/streams.d.ts +3 -3
- package/dist/esm/mapping.d.ts +28 -19
- package/dist/esm/mapping.d.ts.map +1 -1
- package/dist/esm/mapping.js +136 -81
- package/dist/esm/mapping.js.map +1 -1
- package/dist/esm/react/toUIMessages.d.ts.map +1 -1
- package/dist/esm/react/toUIMessages.js +12 -6
- package/dist/esm/react/toUIMessages.js.map +1 -1
- package/dist/esm/react/usePaginatedQuery.d.ts.map +1 -1
- package/dist/esm/react/usePaginatedQuery.js +0 -19
- package/dist/esm/react/usePaginatedQuery.js.map +1 -1
- package/dist/esm/validators.d.ts +851 -3388
- package/dist/esm/validators.d.ts.map +1 -1
- package/dist/esm/validators.js +11 -37
- package/dist/esm/validators.js.map +1 -1
- package/dist/esm.tsbuildinfo +1 -1
- package/package.json +11 -9
- package/src/client/_generated/_ignore.ts +1 -0
- package/src/client/files.ts +167 -0
- package/src/client/index.test.ts +127 -1
- package/src/client/index.ts +970 -812
- package/src/client/setup.test.ts +29 -0
- package/src/client/types.ts +41 -3
- package/src/component/_generated/api.d.ts +47 -711
- package/src/component/files.test.ts +130 -0
- package/src/component/files.ts +83 -27
- package/src/component/messages.test.ts +2 -1
- package/src/component/messages.ts +47 -137
- package/src/component/schema.ts +8 -28
- package/src/mapping.test.ts +163 -0
- package/src/mapping.ts +173 -103
- package/src/react/deltas.test.ts +4 -1
- package/src/react/toUIMessages.ts +12 -6
- package/src/react/usePaginatedQuery.ts +0 -31
- package/src/validators.ts +33 -47
|
@@ -67,7 +67,6 @@ type UsePaginatedQueryState = {
|
|
|
67
67
|
const splitQuery =
|
|
68
68
|
(key: QueryPageKey, splitCursor: string, continueCursor: string) =>
|
|
69
69
|
(prevState: UsePaginatedQueryState) => {
|
|
70
|
-
console.log("splitQuery", key, splitCursor, continueCursor);
|
|
71
70
|
const queries = { ...prevState.queries };
|
|
72
71
|
const splitKey1 = prevState.nextPageKey;
|
|
73
72
|
const splitKey2 = prevState.nextPageKey + 1;
|
|
@@ -105,7 +104,6 @@ const splitQuery =
|
|
|
105
104
|
|
|
106
105
|
const completeSplitQuery =
|
|
107
106
|
(key: QueryPageKey) => (prevState: UsePaginatedQueryState) => {
|
|
108
|
-
console.log("completeSplitQuery", key);
|
|
109
107
|
const completedSplit = prevState.ongoingSplits[key];
|
|
110
108
|
if (completedSplit === undefined) {
|
|
111
109
|
return prevState;
|
|
@@ -143,7 +141,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
143
141
|
args: PaginatedQueryArgs<Query> | "skip",
|
|
144
142
|
options: { initialNumItems: number }
|
|
145
143
|
): UsePaginatedQueryReturnType<Query> {
|
|
146
|
-
console.log("usePaginatedQuery", query, args, options);
|
|
147
144
|
if (
|
|
148
145
|
typeof options?.initialNumItems !== "number" ||
|
|
149
146
|
options.initialNumItems < 0
|
|
@@ -158,7 +155,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
158
155
|
const createInitialState = useMemo(() => {
|
|
159
156
|
return () => {
|
|
160
157
|
const id = nextPaginationId();
|
|
161
|
-
console.log("createInitialState", id, queryName, argsObject);
|
|
162
158
|
return {
|
|
163
159
|
query,
|
|
164
160
|
args: argsObject as Record<string, Value>,
|
|
@@ -208,7 +204,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
208
204
|
skip !== state.skip
|
|
209
205
|
) {
|
|
210
206
|
currState = createInitialState();
|
|
211
|
-
console.log("resetting state", currState);
|
|
212
207
|
setState(currState);
|
|
213
208
|
}
|
|
214
209
|
const convexClient = useConvex();
|
|
@@ -225,14 +220,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
225
220
|
const allItems = [];
|
|
226
221
|
for (const pageKey of currState.pageKeys) {
|
|
227
222
|
currResult = resultsObject[pageKey];
|
|
228
|
-
console.log({
|
|
229
|
-
pageKey,
|
|
230
|
-
continue: currResult?.continueCursor,
|
|
231
|
-
cursor: currState.queries[pageKey]?.args?.paginationOpts?.cursor,
|
|
232
|
-
split: currResult?.splitCursor,
|
|
233
|
-
status: currResult?.pageStatus,
|
|
234
|
-
length: currResult?.page?.length,
|
|
235
|
-
});
|
|
236
223
|
if (currResult === undefined) {
|
|
237
224
|
break;
|
|
238
225
|
}
|
|
@@ -264,13 +251,11 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
264
251
|
}
|
|
265
252
|
const ongoingSplit = currState.ongoingSplits[pageKey];
|
|
266
253
|
if (ongoingSplit !== undefined) {
|
|
267
|
-
console.log("ongoingSplit", pageKey, ongoingSplit);
|
|
268
254
|
if (
|
|
269
255
|
resultsObject[ongoingSplit[0]] !== undefined &&
|
|
270
256
|
resultsObject[ongoingSplit[1]] !== undefined
|
|
271
257
|
) {
|
|
272
258
|
// Both pages of the split have results now. Swap them in.
|
|
273
|
-
console.log("completeSplitQuery", pageKey);
|
|
274
259
|
setState(completeSplitQuery(pageKey));
|
|
275
260
|
}
|
|
276
261
|
} else if (
|
|
@@ -279,12 +264,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
279
264
|
currResult.pageStatus === "SplitRequired" ||
|
|
280
265
|
currResult.page.length > options.initialNumItems * 2)
|
|
281
266
|
) {
|
|
282
|
-
console.log(
|
|
283
|
-
"splitQuery",
|
|
284
|
-
pageKey,
|
|
285
|
-
currResult.pageStatus,
|
|
286
|
-
currResult.page.length
|
|
287
|
-
);
|
|
288
267
|
// If a single page has more than double the expected number of items,
|
|
289
268
|
// or if the server requests a split, split the page into two.
|
|
290
269
|
setState(
|
|
@@ -321,7 +300,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
321
300
|
},
|
|
322
301
|
} as const;
|
|
323
302
|
} else {
|
|
324
|
-
console.log("LoadingMore", maybeLastResult);
|
|
325
303
|
return {
|
|
326
304
|
status: "LoadingMore",
|
|
327
305
|
isLoading: true,
|
|
@@ -332,7 +310,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
332
310
|
}
|
|
333
311
|
}
|
|
334
312
|
if (maybeLastResult.isDone) {
|
|
335
|
-
console.log("Exhausted", maybeLastResult);
|
|
336
313
|
return {
|
|
337
314
|
status: "Exhausted",
|
|
338
315
|
isLoading: false,
|
|
@@ -356,14 +333,6 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
|
|
|
356
333
|
const nextPageKey = prevState.nextPageKey + 2;
|
|
357
334
|
const pageKeys = prevState.pageKeys; //[...prevState.pageKeys, prevState.nextPageKey];
|
|
358
335
|
const queries = { ...prevState.queries };
|
|
359
|
-
console.log(
|
|
360
|
-
"loading more",
|
|
361
|
-
lastPageKey,
|
|
362
|
-
replaceKey,
|
|
363
|
-
newKey,
|
|
364
|
-
nextPageKey,
|
|
365
|
-
pageKeys
|
|
366
|
-
);
|
|
367
336
|
|
|
368
337
|
queries[replaceKey] = {
|
|
369
338
|
query: prevState.query,
|
package/src/validators.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
type ObjectType,
|
|
5
5
|
type Validator,
|
|
6
6
|
type Value,
|
|
7
|
+
type VObject,
|
|
7
8
|
} from "convex/values";
|
|
8
9
|
import { vVectorDimension } from "./component/vector/tables.js";
|
|
9
10
|
|
|
@@ -59,18 +60,6 @@ export const vFilePart = v.object({
|
|
|
59
60
|
providerOptions,
|
|
60
61
|
});
|
|
61
62
|
|
|
62
|
-
export const vFile = v.object({
|
|
63
|
-
data: v.optional(v.union(v.bytes(), v.string())),
|
|
64
|
-
url: v.optional(v.string()),
|
|
65
|
-
mimeType: v.string(),
|
|
66
|
-
fileId: v.optional(v.id("files")),
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
export const vFileWithStringId = v.object({
|
|
70
|
-
...vFile.fields,
|
|
71
|
-
fileId: v.optional(v.string()),
|
|
72
|
-
});
|
|
73
|
-
|
|
74
63
|
export const vUserContent = v.union(
|
|
75
64
|
v.string(),
|
|
76
65
|
v.array(v.union(vTextPart, vImagePart, vFilePart))
|
|
@@ -260,11 +249,11 @@ export const vLanguageModelV1CallWarning = v.union(
|
|
|
260
249
|
})
|
|
261
250
|
);
|
|
262
251
|
|
|
263
|
-
export const
|
|
252
|
+
export const vMessageWithMetadataInternal = v.object({
|
|
264
253
|
id: v.optional(v.string()), // external id, e.g. from Vercel AI SDK
|
|
265
254
|
message: vMessage,
|
|
266
255
|
text: v.optional(v.string()),
|
|
267
|
-
|
|
256
|
+
fileIds: v.optional(v.array(v.id("files"))),
|
|
268
257
|
// metadata
|
|
269
258
|
finishReason: v.optional(vFinishReason),
|
|
270
259
|
model: v.optional(v.string()),
|
|
@@ -277,6 +266,10 @@ export const vMessageWithMetadata = v.object({
|
|
|
277
266
|
warnings: v.optional(v.array(vLanguageModelV1CallWarning)),
|
|
278
267
|
error: v.optional(v.string()),
|
|
279
268
|
});
|
|
269
|
+
export const vMessageWithMetadata = v.object({
|
|
270
|
+
...vMessageWithMetadataInternal.fields,
|
|
271
|
+
fileIds: v.optional(v.array(v.string())),
|
|
272
|
+
});
|
|
280
273
|
export type MessageWithMetadata = Infer<typeof vMessageWithMetadata>;
|
|
281
274
|
|
|
282
275
|
export const vMessageEmbeddings = v.object({
|
|
@@ -285,37 +278,6 @@ export const vMessageEmbeddings = v.object({
|
|
|
285
278
|
vectors: v.array(v.union(v.array(v.number()), v.null())),
|
|
286
279
|
});
|
|
287
280
|
|
|
288
|
-
export const vStep = v.object({
|
|
289
|
-
files: v.optional(v.array(v.any())),
|
|
290
|
-
finishReason: vFinishReason,
|
|
291
|
-
isContinued: v.boolean(),
|
|
292
|
-
logprobs: v.optional(v.any()),
|
|
293
|
-
providerMetadata,
|
|
294
|
-
experimental_providerMetadata: providerMetadata,
|
|
295
|
-
reasoning: v.optional(v.string()),
|
|
296
|
-
reasoningDetails: v.optional(vReasoningDetails),
|
|
297
|
-
request: v.optional(vRequest),
|
|
298
|
-
response: v.optional(vResponse),
|
|
299
|
-
sources: v.optional(v.array(vSource)),
|
|
300
|
-
stepType: v.union(
|
|
301
|
-
v.literal("initial"),
|
|
302
|
-
v.literal("continue"),
|
|
303
|
-
v.literal("tool-result")
|
|
304
|
-
),
|
|
305
|
-
text: v.string(),
|
|
306
|
-
toolCalls: v.array(vToolCallPart),
|
|
307
|
-
toolResults: v.array(vToolResultPart),
|
|
308
|
-
usage: v.optional(vUsage),
|
|
309
|
-
warnings: v.optional(v.array(vLanguageModelV1CallWarning)),
|
|
310
|
-
});
|
|
311
|
-
export type Step = Infer<typeof vStep>;
|
|
312
|
-
|
|
313
|
-
export const vStepWithMessages = v.object({
|
|
314
|
-
step: vStep,
|
|
315
|
-
messages: v.array(vMessageWithMetadata),
|
|
316
|
-
embeddings: v.optional(vMessageEmbeddings),
|
|
317
|
-
});
|
|
318
|
-
export type StepWithMessagesWithMetadata = Infer<typeof vStepWithMessages>;
|
|
319
281
|
|
|
320
282
|
export const vObjectResult = v.object({
|
|
321
283
|
request: vRequest,
|
|
@@ -353,10 +315,34 @@ export const vContextOptions = v.object({
|
|
|
353
315
|
});
|
|
354
316
|
|
|
355
317
|
export const vStorageOptions = v.object({
|
|
318
|
+
saveMessages: v.optional(
|
|
319
|
+
v.union(v.literal("all"), v.literal("none"), v.literal("promptAndOutput"))
|
|
320
|
+
),
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
const vStorageOptionsIncludingDeprecated = v.object({
|
|
324
|
+
...vStorageOptions.fields,
|
|
356
325
|
saveAllInputMessages: v.optional(v.boolean()),
|
|
357
326
|
saveAnyInputMessages: v.optional(v.boolean()),
|
|
358
327
|
saveOutputMessages: v.optional(v.boolean()),
|
|
359
|
-
})
|
|
328
|
+
}) as VObject<
|
|
329
|
+
{
|
|
330
|
+
saveMessages?: "all" | "none" | "promptAndOutput";
|
|
331
|
+
/**
|
|
332
|
+
* @deprecated Use saveMessages instead.
|
|
333
|
+
*/
|
|
334
|
+
saveAllInputMessages?: boolean;
|
|
335
|
+
/**
|
|
336
|
+
* @deprecated Use saveMessages instead.
|
|
337
|
+
*/
|
|
338
|
+
saveAnyInputMessages?: boolean;
|
|
339
|
+
/**
|
|
340
|
+
* @deprecated Use saveMessages instead.
|
|
341
|
+
*/
|
|
342
|
+
saveOutputMessages?: boolean;
|
|
343
|
+
},
|
|
344
|
+
typeof vStorageOptions.fields
|
|
345
|
+
>;
|
|
360
346
|
|
|
361
347
|
const vPromptFields = {
|
|
362
348
|
system: v.optional(v.string()),
|
|
@@ -382,7 +368,7 @@ const vCommonArgs = {
|
|
|
382
368
|
userId: v.optional(v.string()),
|
|
383
369
|
threadId: v.optional(v.string()),
|
|
384
370
|
contextOptions: v.optional(vContextOptions),
|
|
385
|
-
storageOptions: v.optional(
|
|
371
|
+
storageOptions: v.optional(vStorageOptionsIncludingDeprecated),
|
|
386
372
|
providerOptions,
|
|
387
373
|
...vCallSettingsFields,
|
|
388
374
|
...vPromptFields,
|