@convex-dev/agent 0.0.1-alpha.4 → 0.0.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 +9 -7
- package/dist/commonjs/client/index.d.ts +12 -5
- package/dist/commonjs/client/index.d.ts.map +1 -1
- package/dist/commonjs/client/index.js +127 -44
- package/dist/commonjs/client/index.js.map +1 -1
- package/dist/commonjs/component/messages.d.ts +114 -103
- package/dist/commonjs/component/messages.d.ts.map +1 -1
- package/dist/commonjs/component/messages.js +143 -246
- package/dist/commonjs/component/messages.js.map +1 -1
- package/dist/commonjs/component/schema.d.ts +808 -738
- package/dist/commonjs/component/schema.d.ts.map +1 -1
- package/dist/commonjs/component/schema.js +12 -3
- package/dist/commonjs/component/schema.js.map +1 -1
- package/dist/commonjs/component/vector/index.d.ts +21 -6
- package/dist/commonjs/component/vector/index.d.ts.map +1 -1
- package/dist/commonjs/component/vector/index.js +33 -21
- package/dist/commonjs/component/vector/index.js.map +1 -1
- package/dist/commonjs/component/vector/tables.d.ts +25 -5
- package/dist/commonjs/component/vector/tables.d.ts.map +1 -1
- package/dist/commonjs/component/vector/tables.js +14 -6
- package/dist/commonjs/component/vector/tables.js.map +1 -1
- package/dist/commonjs/validators.d.ts +101 -89
- package/dist/commonjs/validators.d.ts.map +1 -1
- package/dist/commonjs/validators.js +8 -1
- package/dist/commonjs/validators.js.map +1 -1
- package/dist/esm/client/index.d.ts +12 -5
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +127 -44
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/component/messages.d.ts +114 -103
- package/dist/esm/component/messages.d.ts.map +1 -1
- package/dist/esm/component/messages.js +143 -246
- package/dist/esm/component/messages.js.map +1 -1
- package/dist/esm/component/schema.d.ts +808 -738
- package/dist/esm/component/schema.d.ts.map +1 -1
- package/dist/esm/component/schema.js +12 -3
- package/dist/esm/component/schema.js.map +1 -1
- package/dist/esm/component/vector/index.d.ts +21 -6
- package/dist/esm/component/vector/index.d.ts.map +1 -1
- package/dist/esm/component/vector/index.js +33 -21
- package/dist/esm/component/vector/index.js.map +1 -1
- package/dist/esm/component/vector/tables.d.ts +25 -5
- package/dist/esm/component/vector/tables.d.ts.map +1 -1
- package/dist/esm/component/vector/tables.js +14 -6
- package/dist/esm/component/vector/tables.js.map +1 -1
- package/dist/esm/validators.d.ts +101 -89
- package/dist/esm/validators.d.ts.map +1 -1
- package/dist/esm/validators.js +8 -1
- package/dist/esm/validators.js.map +1 -1
- package/package.json +1 -1
- package/src/client/index.ts +149 -50
- package/src/component/_generated/api.d.ts +28 -16
- package/src/component/messages.ts +175 -289
- package/src/component/schema.ts +13 -3
- package/src/component/vector/index.ts +65 -26
- package/src/component/vector/tables.ts +38 -6
- package/src/validators.ts +11 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/component/schema.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/component/schema.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA0GjB,CAAC;AAEH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gMAIuqL,eAAgB,qEAAqE,CAAC,mJAAkJ,aAAc,+MAA+M,eAAe;;mFAA0W,GAAG,gDAAwB,WAAW,2BAA0B,WAAY;;;CAJhiN,CAAC;AACjC,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;AAEnB,eAAe,MAAM,CAAC"}
|
|
@@ -16,12 +16,12 @@ export const schema = defineSchema({
|
|
|
16
16
|
// the parent thread(s). There are multiple if the thread is a merging of
|
|
17
17
|
// multiple threads.
|
|
18
18
|
parentThreadIds: v.optional(v.array(v.id("threads"))),
|
|
19
|
-
}).index("
|
|
19
|
+
}).index("userId_status_order", ["userId", "status", "order"]),
|
|
20
20
|
// TODO: text search on title/ summary
|
|
21
21
|
messages: defineTable({
|
|
22
22
|
id: v.optional(v.string()), // external id, e.g. from Vercel AI SDK
|
|
23
23
|
userId: v.optional(v.string()), // useful for future indexes (text search)
|
|
24
|
-
threadId: v.
|
|
24
|
+
threadId: v.id("threads"),
|
|
25
25
|
parentMessageId: v.optional(v.id("messages")),
|
|
26
26
|
stepId: v.optional(v.id("steps")),
|
|
27
27
|
agentName: v.optional(v.string()),
|
|
@@ -34,7 +34,7 @@ export const schema = defineSchema({
|
|
|
34
34
|
// Repeats until a non-tool message.
|
|
35
35
|
// Unset if it's not in a thread.
|
|
36
36
|
order: v.number(),
|
|
37
|
-
stepOrder: v.
|
|
37
|
+
stepOrder: v.number(),
|
|
38
38
|
fileId: v.optional(v.id("files")),
|
|
39
39
|
status: vMessageStatus,
|
|
40
40
|
})
|
|
@@ -89,6 +89,15 @@ export const schema = defineSchema({
|
|
|
89
89
|
"order",
|
|
90
90
|
"stepOrder",
|
|
91
91
|
]),
|
|
92
|
+
memories: defineTable({
|
|
93
|
+
threadId: v.optional(v.id("threads")),
|
|
94
|
+
userId: v.optional(v.string()),
|
|
95
|
+
memory: v.string(),
|
|
96
|
+
embeddingId: v.optional(vVectorId),
|
|
97
|
+
})
|
|
98
|
+
.index("threadId", ["threadId"])
|
|
99
|
+
.index("userId", ["userId"])
|
|
100
|
+
.index("embeddingId", ["embeddingId"]),
|
|
92
101
|
files: defineTable({
|
|
93
102
|
storageId: v.string(),
|
|
94
103
|
hash: v.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/component/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;IACjC,OAAO,EAAE,WAAW,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,sBAAsB;QACtD,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,kBAAkB;QACjD,yCAAyC;QACzC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,EAAE,aAAa;QACrB,yEAAyE;QACzE,yEAAyE;QACzE,oBAAoB;QACpB,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;KACtD,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,sCAAsC;IACtC,QAAQ,EAAE,WAAW,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,uCAAuC;QACnE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,0CAA0C;QAC1E,QAAQ,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/component/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { ActionCtx, MutationCtx } from "../_generated/server";
|
|
2
|
+
import { EmbeddingsWithoutDenormalizedFields, VectorDimension } from "./tables";
|
|
1
3
|
export declare const paginate: import("convex/server").RegisteredQuery<"public", {
|
|
4
|
+
table?: string | undefined;
|
|
2
5
|
cursor?: string | undefined;
|
|
3
6
|
limit: number;
|
|
4
7
|
vectorDimension: 128 | 256 | 512 | 768 | 1024 | 1536 | 2048 | 3072 | 4096;
|
|
@@ -10,29 +13,41 @@ export declare const paginate: import("convex/server").RegisteredQuery<"public",
|
|
|
10
13
|
}>>;
|
|
11
14
|
export declare const deleteBatchForThread: import("convex/server").RegisteredMutation<"public", {
|
|
12
15
|
cursor?: string | undefined;
|
|
13
|
-
limit: number;
|
|
14
|
-
model: string;
|
|
15
16
|
threadId: string;
|
|
17
|
+
model: string;
|
|
18
|
+
limit: number;
|
|
16
19
|
vectorDimension: 128 | 256 | 512 | 768 | 1024 | 1536 | 2048 | 3072 | 4096;
|
|
17
20
|
}, Promise<{
|
|
18
21
|
isDone: boolean;
|
|
19
22
|
continueCursor: string;
|
|
20
23
|
}>>;
|
|
21
24
|
export declare const insertBatch: import("convex/server").RegisteredMutation<"public", {
|
|
22
|
-
vectorDimension: 128 | 256 | 512 | 768 | 1024 | 1536 | 2048 | 3072 | 4096;
|
|
23
25
|
vectors: {
|
|
24
26
|
userId?: string | undefined;
|
|
25
27
|
threadId?: string | undefined;
|
|
26
|
-
vector: number[];
|
|
27
28
|
model: string;
|
|
28
|
-
|
|
29
|
+
table: string;
|
|
30
|
+
vector: number[];
|
|
29
31
|
}[];
|
|
32
|
+
vectorDimension: 128 | 256 | 512 | 768 | 1024 | 1536 | 2048 | 3072 | 4096;
|
|
30
33
|
}, Promise<void>>;
|
|
34
|
+
export declare function insertVector(ctx: MutationCtx, dimension: VectorDimension, v: EmbeddingsWithoutDenormalizedFields): Promise<import("convex/values").GenericId<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096">>;
|
|
35
|
+
export declare function searchVectors(ctx: ActionCtx, vector: number[], args: {
|
|
36
|
+
dimension: VectorDimension;
|
|
37
|
+
model: string;
|
|
38
|
+
table: string;
|
|
39
|
+
userId?: string;
|
|
40
|
+
threadId?: string;
|
|
41
|
+
limit?: number;
|
|
42
|
+
}): Promise<{
|
|
43
|
+
_id: import("convex/values").GenericId<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096">;
|
|
44
|
+
_score: number;
|
|
45
|
+
}[]>;
|
|
31
46
|
export declare const updateBatch: import("convex/server").RegisteredMutation<"public", {
|
|
32
47
|
vectors: {
|
|
33
48
|
id: import("convex/values").GenericId<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096">;
|
|
34
|
-
vector: number[];
|
|
35
49
|
model: string;
|
|
50
|
+
vector: number[];
|
|
36
51
|
}[];
|
|
37
52
|
}, Promise<void>>;
|
|
38
53
|
export declare const deleteBatch: import("convex/server").RegisteredMutation<"public", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/component/vector/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/component/vector/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAET,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,mCAAmC,EAEnC,eAAe,EAIhB,MAAM,UAAU,CAAC;AAKlB,eAAO,MAAM,QAAQ;;;;;;;;;;GAmCnB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;GAsC/B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;iBAWtB,CAAC;AAEH,wBAAsB,YAAY,CAChC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,eAAe,EAC1B,CAAC,EAAE,mCAAmC,6NASvC;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE;IACJ,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;KAgBF;AAED,eAAO,MAAM,WAAW;;;;;;iBAqBtB,CAAC;AAEH,eAAO,MAAM,WAAW;;iBAQtB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { paginator } from "convex-helpers/server/pagination";
|
|
2
2
|
import { v } from "convex/values";
|
|
3
|
-
import { mutation, query } from "../_generated/server";
|
|
4
|
-
import { getVectorTableName, vVectorDimension, vVectorId } from "./tables";
|
|
3
|
+
import { mutation, query, } from "../_generated/server";
|
|
4
|
+
import { getVectorTableName, vEmbeddingsWithoutDenormalizedFields, vVectorDimension, vVectorId, } from "./tables";
|
|
5
5
|
import schema from "../schema";
|
|
6
6
|
import { mergedStream } from "convex-helpers/server/stream";
|
|
7
7
|
import { stream } from "convex-helpers/server/stream";
|
|
@@ -9,6 +9,7 @@ export const paginate = query({
|
|
|
9
9
|
args: {
|
|
10
10
|
vectorDimension: vVectorDimension,
|
|
11
11
|
targetModel: v.string(),
|
|
12
|
+
table: v.optional(v.string()),
|
|
12
13
|
cursor: v.optional(v.string()),
|
|
13
14
|
limit: v.number(),
|
|
14
15
|
},
|
|
@@ -22,7 +23,10 @@ export const paginate = query({
|
|
|
22
23
|
const vectors = await paginator(ctx.db, schema)
|
|
23
24
|
.query(tableName)
|
|
24
25
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
-
.withIndex("
|
|
26
|
+
.withIndex("model_table_threadId", (q) => args.table
|
|
27
|
+
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
q.eq("model", args.targetModel).eq("table", args.table)
|
|
29
|
+
: q.eq("model", args.targetModel))
|
|
26
30
|
.paginate({
|
|
27
31
|
cursor: args.cursor ?? null,
|
|
28
32
|
numItems: args.limit,
|
|
@@ -71,29 +75,37 @@ export const deleteBatchForThread = mutation({
|
|
|
71
75
|
export const insertBatch = mutation({
|
|
72
76
|
args: {
|
|
73
77
|
vectorDimension: vVectorDimension,
|
|
74
|
-
vectors: v.array(
|
|
75
|
-
model: v.string(),
|
|
76
|
-
kind: v.union(v.literal("thread"), v.literal("memory")),
|
|
77
|
-
userId: v.optional(v.string()),
|
|
78
|
-
threadId: v.optional(v.string()),
|
|
79
|
-
vector: v.array(v.number()),
|
|
80
|
-
})),
|
|
78
|
+
vectors: v.array(vEmbeddingsWithoutDenormalizedFields),
|
|
81
79
|
},
|
|
82
80
|
returns: v.null(),
|
|
83
81
|
handler: async (ctx, args) => {
|
|
84
|
-
await Promise.all(args.vectors.map((v) => ctx
|
|
85
|
-
model: v.model,
|
|
86
|
-
kind: v.kind,
|
|
87
|
-
userId: v.userId,
|
|
88
|
-
threadId: v.threadId,
|
|
89
|
-
vector: v.vector,
|
|
90
|
-
model_kind_userId: v.userId ? [v.model, v.kind, v.userId] : undefined,
|
|
91
|
-
model_kind_threadId: v.threadId
|
|
92
|
-
? [v.model, v.kind, v.threadId]
|
|
93
|
-
: undefined,
|
|
94
|
-
})));
|
|
82
|
+
await Promise.all(args.vectors.map((v) => insertVector(ctx, args.vectorDimension, v)));
|
|
95
83
|
},
|
|
96
84
|
});
|
|
85
|
+
export async function insertVector(ctx, dimension, v) {
|
|
86
|
+
return ctx.db.insert(getVectorTableName(dimension), {
|
|
87
|
+
...v,
|
|
88
|
+
model_table_userId: v.userId ? [v.model, v.table, v.userId] : undefined,
|
|
89
|
+
model_table_threadId: v.threadId
|
|
90
|
+
? [v.model, v.table, v.threadId]
|
|
91
|
+
: undefined,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export function searchVectors(ctx, vector, args) {
|
|
95
|
+
const tableName = getVectorTableName(args.dimension);
|
|
96
|
+
return ctx.vectorSearch(tableName, "vector", {
|
|
97
|
+
vector,
|
|
98
|
+
// TODO: to support more tables, add more "OR" clauses for each.
|
|
99
|
+
filter: (q) => args.userId
|
|
100
|
+
? q.eq("model_table_userId", [args.model, args.table, args.userId])
|
|
101
|
+
: q.eq("model_table_threadId", [
|
|
102
|
+
args.model,
|
|
103
|
+
args.table,
|
|
104
|
+
args.threadId,
|
|
105
|
+
]),
|
|
106
|
+
limit: args.limit,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
97
109
|
export const updateBatch = mutation({
|
|
98
110
|
args: {
|
|
99
111
|
vectors: v.array(v.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/component/vector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/component/vector/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,36 @@
|
|
|
1
|
-
import { GenericTableSearchIndexes, TableDefinition } from "convex/server";
|
|
2
|
-
import { GenericId, ObjectType, VId, VObject, VUnion } from "convex/values";
|
|
1
|
+
import { GenericTableSearchIndexes, SchemaDefinition, TableDefinition } from "convex/server";
|
|
2
|
+
import { GenericId, Infer, ObjectType, VId, VObject, VUnion } from "convex/values";
|
|
3
3
|
import { QueryCtx } from "../_generated/server";
|
|
4
4
|
declare const embeddings: {
|
|
5
5
|
model: import("convex/values").VString<string, "required">;
|
|
6
|
-
|
|
6
|
+
table: import("convex/values").VString<string, "required">;
|
|
7
7
|
userId: import("convex/values").VString<string | undefined, "optional">;
|
|
8
8
|
threadId: import("convex/values").VString<string | undefined, "optional">;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
model_table_userId: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
|
|
10
|
+
model_table_threadId: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
|
|
11
11
|
vector: import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">;
|
|
12
12
|
};
|
|
13
|
+
export declare const vEmbeddingsWithoutDenormalizedFields: VObject<{
|
|
14
|
+
userId?: string | undefined;
|
|
15
|
+
threadId?: string | undefined;
|
|
16
|
+
model: string;
|
|
17
|
+
table: string;
|
|
18
|
+
vector: number[];
|
|
19
|
+
}, import("convex-helpers").BetterOmit<{
|
|
20
|
+
model: import("convex/values").VString<string, "required">;
|
|
21
|
+
table: import("convex/values").VString<string, "required">;
|
|
22
|
+
userId: import("convex/values").VString<string | undefined, "optional">;
|
|
23
|
+
threadId: import("convex/values").VString<string | undefined, "optional">;
|
|
24
|
+
model_table_userId: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
|
|
25
|
+
model_table_threadId: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
|
|
26
|
+
vector: import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">;
|
|
27
|
+
}, "model_table_userId" | "model_table_threadId">, "required", "userId" | "threadId" | "model" | "table" | "vector">;
|
|
28
|
+
export type EmbeddingsWithoutDenormalizedFields = Infer<typeof vEmbeddingsWithoutDenormalizedFields>;
|
|
29
|
+
export type VectorSchema = SchemaDefinition<{
|
|
30
|
+
[key in VectorTableName]: Table<128>;
|
|
31
|
+
}, true>;
|
|
13
32
|
export declare const VectorDimensions: readonly [128, 256, 512, 768, 1024, 1536, 2048, 3072, 4096];
|
|
33
|
+
export declare function validateVectorDimension(dimension: number): asserts dimension is VectorDimension;
|
|
14
34
|
export type VectorDimension = (typeof VectorDimensions)[number];
|
|
15
35
|
export declare const VectorTableNames: `embeddings_${(typeof VectorDimensions)[number]}`[];
|
|
16
36
|
export type VectorTableName = (typeof VectorTableNames)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../src/component/vector/tables.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../src/component/vector/tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,KAAK,EACL,UAAU,EAEV,GAAG,EACH,OAAO,EACP,MAAM,EACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,QAAA,MAAM,UAAU;;;;;;;;CAUf,CAAC;AAEF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;oHAEhD,CAAC;AACF,MAAM,MAAM,mCAAmC,GAAG,KAAK,CACrD,OAAO,oCAAoC,CAC5C,CAAC;AAYF,MAAM,MAAM,YAAY,GAAG,gBAAgB,CACzC;KAAG,GAAG,IAAI,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC;CAAE,EACxC,IAAI,CACL,CAAC;AAEF,eAAO,MAAM,gBAAgB,6DAEnB,CAAC;AACX,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,IAAI,eAAe,CAMtC;AACD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,eAAO,MAAM,gBAAgB,EAExB,cAAc,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AACzD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,eAAO,MAAM,gBAAgB,wFAAgC,CAAC;AAC9D,eAAO,MAAM,gBAAgB,6MAAgC,CAAC;AAC9D,eAAO,MAAM,SAAS,EAEjB,MAAM,CACT,SAAS,CAAC,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAC5C,GAAG,CAAC,CAAC,OAAO,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,CACzC,CAAC;AAEF,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,eAAe,CAC5C,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC,EACzD;IAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;CAAE,EACd,yBAAyB,EACzB,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAEF,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IACnC,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ,CAAC;QACtB,UAAU,EAAE,CAAC,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,eAAe,GACvB,eAAe,CACpD;AACD,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa;;;EAQ/D;AAED,QAAA,MAAM,MAAM,EAAE;KACX,CAAC,IAAI,MAAM,OAAO,gBAAgB,GACjC,MAAM,IAAI,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAC9D,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAC7B;CASF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,29 +1,37 @@
|
|
|
1
|
+
import { omit } from "convex-helpers";
|
|
1
2
|
import { literals } from "convex-helpers/validators";
|
|
2
3
|
import { defineTable, } from "convex/server";
|
|
3
|
-
import { v } from "convex/values";
|
|
4
|
+
import { v, } from "convex/values";
|
|
4
5
|
// We only generate embeddings for non-tool, non-system messages
|
|
5
6
|
const embeddings = {
|
|
6
7
|
model: v.string(),
|
|
7
|
-
|
|
8
|
+
// What table it's stored in. (usually messages or memories)
|
|
9
|
+
table: v.string(),
|
|
8
10
|
userId: v.optional(v.string()),
|
|
9
11
|
threadId: v.optional(v.string()),
|
|
10
12
|
// not set for private threads
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
model_table_userId: v.optional(v.array(v.string())),
|
|
14
|
+
model_table_threadId: v.optional(v.array(v.string())),
|
|
13
15
|
vector: v.array(v.number()),
|
|
14
16
|
};
|
|
17
|
+
export const vEmbeddingsWithoutDenormalizedFields = v.object(omit(embeddings, ["model_table_userId", "model_table_threadId"]));
|
|
15
18
|
function table(dimensions) {
|
|
16
19
|
return defineTable(embeddings)
|
|
17
20
|
.vectorIndex("vector", {
|
|
18
21
|
vectorField: "vector",
|
|
19
22
|
dimensions,
|
|
20
|
-
filterFields: ["
|
|
23
|
+
filterFields: ["model_table_userId", "model_table_threadId"],
|
|
21
24
|
})
|
|
22
|
-
.index("
|
|
25
|
+
.index("model_table_threadId", ["model", "table", "threadId"]);
|
|
23
26
|
}
|
|
24
27
|
export const VectorDimensions = [
|
|
25
28
|
128, 256, 512, 768, 1024, 1536, 2048, 3072, 4096,
|
|
26
29
|
];
|
|
30
|
+
export function validateVectorDimension(dimension) {
|
|
31
|
+
if (!VectorDimensions.includes(dimension)) {
|
|
32
|
+
throw new Error(`Unsupported vector dimension${dimension}. Supported: ${VectorDimensions.join(", ")}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
27
35
|
export const VectorTableNames = VectorDimensions.map((d) => `embeddings_${d}`);
|
|
28
36
|
export const vVectorDimension = literals(...VectorDimensions);
|
|
29
37
|
export const vVectorTableName = literals(...VectorTableNames);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/component/vector/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/component/vector/tables.ts"],"names":[],"mappings":"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"}
|