@convex-dev/agent 0.6.0 → 0.6.2

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.
Files changed (187) hide show
  1. package/dist/UIMessages.d.ts +46 -0
  2. package/dist/UIMessages.d.ts.map +1 -0
  3. package/dist/UIMessages.js +634 -0
  4. package/dist/UIMessages.js.map +1 -0
  5. package/dist/client/createTool.d.ts +167 -0
  6. package/dist/client/createTool.d.ts.map +1 -0
  7. package/dist/client/createTool.js +116 -0
  8. package/dist/client/createTool.js.map +1 -0
  9. package/dist/client/defaultComponent.d.ts +11 -0
  10. package/dist/client/defaultComponent.d.ts.map +1 -0
  11. package/dist/client/defaultComponent.js +7 -0
  12. package/dist/client/defaultComponent.js.map +1 -0
  13. package/dist/client/definePlaygroundAPI.d.ts +1725 -0
  14. package/dist/client/definePlaygroundAPI.d.ts.map +1 -0
  15. package/dist/client/definePlaygroundAPI.js +271 -0
  16. package/dist/client/definePlaygroundAPI.js.map +1 -0
  17. package/dist/client/files.d.ts +69 -0
  18. package/dist/client/files.d.ts.map +1 -0
  19. package/dist/client/files.js +181 -0
  20. package/dist/client/files.js.map +1 -0
  21. package/dist/client/index.d.ts +2093 -0
  22. package/dist/client/index.d.ts.map +1 -0
  23. package/dist/client/index.js +933 -0
  24. package/dist/client/index.js.map +1 -0
  25. package/dist/client/messages.d.ts +461 -0
  26. package/dist/client/messages.d.ts.map +1 -0
  27. package/dist/client/messages.js +106 -0
  28. package/dist/client/messages.js.map +1 -0
  29. package/dist/client/mockModel.d.ts +42 -0
  30. package/dist/client/mockModel.d.ts.map +1 -0
  31. package/dist/client/mockModel.js +182 -0
  32. package/dist/client/mockModel.js.map +1 -0
  33. package/dist/client/saveInputMessages.d.ts +20 -0
  34. package/dist/client/saveInputMessages.d.ts.map +1 -0
  35. package/dist/client/saveInputMessages.js +58 -0
  36. package/dist/client/saveInputMessages.js.map +1 -0
  37. package/dist/client/search.d.ts +493 -0
  38. package/dist/client/search.d.ts.map +1 -0
  39. package/dist/client/search.js +435 -0
  40. package/dist/client/search.js.map +1 -0
  41. package/dist/client/start.d.ts +84 -0
  42. package/dist/client/start.d.ts.map +1 -0
  43. package/dist/client/start.js +185 -0
  44. package/dist/client/start.js.map +1 -0
  45. package/dist/client/streamText.d.ts +46 -0
  46. package/dist/client/streamText.d.ts.map +1 -0
  47. package/dist/client/streamText.js +145 -0
  48. package/dist/client/streamText.js.map +1 -0
  49. package/dist/client/streaming.d.ts +3778 -0
  50. package/dist/client/streaming.d.ts.map +1 -0
  51. package/dist/client/streaming.js +344 -0
  52. package/dist/client/streaming.js.map +1 -0
  53. package/dist/client/threads.d.ts +46 -0
  54. package/dist/client/threads.d.ts.map +1 -0
  55. package/dist/client/threads.js +49 -0
  56. package/dist/client/threads.js.map +1 -0
  57. package/dist/client/types.d.ts +461 -0
  58. package/dist/client/types.d.ts.map +1 -0
  59. package/dist/client/types.js +2 -0
  60. package/dist/client/types.js.map +1 -0
  61. package/dist/client/utils.d.ts +12 -0
  62. package/dist/client/utils.d.ts.map +1 -0
  63. package/dist/client/utils.js +35 -0
  64. package/dist/client/utils.js.map +1 -0
  65. package/dist/component/_generated/api.d.ts +48 -0
  66. package/dist/component/_generated/api.d.ts.map +1 -0
  67. package/dist/component/_generated/api.js +31 -0
  68. package/dist/component/_generated/api.js.map +1 -0
  69. package/dist/component/_generated/component.d.ts +3120 -0
  70. package/dist/component/_generated/component.d.ts.map +1 -0
  71. package/dist/component/_generated/component.js +11 -0
  72. package/dist/component/_generated/component.js.map +1 -0
  73. package/dist/component/_generated/dataModel.d.ts +46 -0
  74. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  75. package/dist/component/_generated/dataModel.js +11 -0
  76. package/dist/component/_generated/dataModel.js.map +1 -0
  77. package/dist/component/_generated/server.d.ts +121 -0
  78. package/dist/component/_generated/server.d.ts.map +1 -0
  79. package/dist/component/_generated/server.js +78 -0
  80. package/dist/component/_generated/server.js.map +1 -0
  81. package/dist/component/apiKeys.d.ts +11 -0
  82. package/dist/component/apiKeys.d.ts.map +1 -0
  83. package/dist/component/apiKeys.js +69 -0
  84. package/dist/component/apiKeys.js.map +1 -0
  85. package/dist/component/convex.config.d.ts +3 -0
  86. package/dist/component/convex.config.d.ts.map +1 -0
  87. package/dist/component/convex.config.js +3 -0
  88. package/dist/component/convex.config.js.map +1 -0
  89. package/dist/component/files.d.ts +97 -0
  90. package/dist/component/files.d.ts.map +1 -0
  91. package/dist/component/files.js +190 -0
  92. package/dist/component/files.js.map +1 -0
  93. package/dist/component/messages.d.ts +3851 -0
  94. package/dist/component/messages.d.ts.map +1 -0
  95. package/dist/component/messages.js +757 -0
  96. package/dist/component/messages.js.map +1 -0
  97. package/dist/component/schema.d.ts +8029 -0
  98. package/dist/component/schema.d.ts.map +1 -0
  99. package/dist/component/schema.js +147 -0
  100. package/dist/component/schema.js.map +1 -0
  101. package/dist/component/streams.d.ts +128 -0
  102. package/dist/component/streams.d.ts.map +1 -0
  103. package/dist/component/streams.js +413 -0
  104. package/dist/component/streams.js.map +1 -0
  105. package/dist/component/threads.d.ts +115 -0
  106. package/dist/component/threads.d.ts.map +1 -0
  107. package/dist/component/threads.js +208 -0
  108. package/dist/component/threads.js.map +1 -0
  109. package/dist/component/users.d.ts +52 -0
  110. package/dist/component/users.d.ts.map +1 -0
  111. package/dist/component/users.js +229 -0
  112. package/dist/component/users.js.map +1 -0
  113. package/dist/component/vector/index.d.ts +61 -0
  114. package/dist/component/vector/index.d.ts.map +1 -0
  115. package/dist/component/vector/index.js +146 -0
  116. package/dist/component/vector/index.js.map +1 -0
  117. package/dist/component/vector/tables.d.ts +58 -0
  118. package/dist/component/vector/tables.d.ts.map +1 -0
  119. package/dist/component/vector/tables.js +56 -0
  120. package/dist/component/vector/tables.js.map +1 -0
  121. package/dist/deltas.d.ts +43 -0
  122. package/dist/deltas.d.ts.map +1 -0
  123. package/dist/deltas.js +446 -0
  124. package/dist/deltas.js.map +1 -0
  125. package/dist/mapping.d.ts +76 -0
  126. package/dist/mapping.d.ts.map +1 -0
  127. package/dist/mapping.js +720 -0
  128. package/dist/mapping.js.map +1 -0
  129. package/dist/react/SmoothText.d.ts +5 -0
  130. package/dist/react/SmoothText.d.ts.map +1 -0
  131. package/dist/react/SmoothText.js +6 -0
  132. package/dist/react/SmoothText.js.map +1 -0
  133. package/dist/react/index.d.ts +25 -0
  134. package/dist/react/index.d.ts.map +1 -0
  135. package/dist/react/index.js +70 -0
  136. package/dist/react/index.js.map +1 -0
  137. package/dist/react/optimisticallySendMessage.d.ts +42 -0
  138. package/dist/react/optimisticallySendMessage.d.ts.map +1 -0
  139. package/dist/react/optimisticallySendMessage.js +74 -0
  140. package/dist/react/optimisticallySendMessage.js.map +1 -0
  141. package/dist/react/types.d.ts +12 -0
  142. package/dist/react/types.d.ts.map +1 -0
  143. package/dist/react/types.js +2 -0
  144. package/dist/react/types.js.map +1 -0
  145. package/dist/react/useDeltaStreams.d.ts +10 -0
  146. package/dist/react/useDeltaStreams.d.ts.map +1 -0
  147. package/dist/react/useDeltaStreams.js +106 -0
  148. package/dist/react/useDeltaStreams.js.map +1 -0
  149. package/dist/react/useSmoothText.d.ts +27 -0
  150. package/dist/react/useSmoothText.d.ts.map +1 -0
  151. package/dist/react/useSmoothText.js +68 -0
  152. package/dist/react/useSmoothText.js.map +1 -0
  153. package/dist/react/useStreamingUIMessages.d.ts +22 -0
  154. package/dist/react/useStreamingUIMessages.d.ts.map +1 -0
  155. package/dist/react/useStreamingUIMessages.js +92 -0
  156. package/dist/react/useStreamingUIMessages.js.map +1 -0
  157. package/dist/react/useThreadMessages.d.ts +104 -0
  158. package/dist/react/useThreadMessages.d.ts.map +1 -0
  159. package/dist/react/useThreadMessages.js +148 -0
  160. package/dist/react/useThreadMessages.js.map +1 -0
  161. package/dist/react/useUIMessages.d.ts +96 -0
  162. package/dist/react/useUIMessages.d.ts.map +1 -0
  163. package/dist/react/useUIMessages.js +108 -0
  164. package/dist/react/useUIMessages.js.map +1 -0
  165. package/dist/shared.d.ts +26 -0
  166. package/dist/shared.d.ts.map +1 -0
  167. package/dist/shared.js +67 -0
  168. package/dist/shared.js.map +1 -0
  169. package/dist/validators.d.ts +24516 -0
  170. package/dist/validators.d.ts.map +1 -0
  171. package/dist/validators.js +475 -0
  172. package/dist/validators.js.map +1 -0
  173. package/package.json +44 -50
  174. package/src/UIMessages.ts +0 -9
  175. package/src/client/approval.test.ts +144 -0
  176. package/src/client/index.ts +26 -19
  177. package/src/client/search.ts +0 -29
  178. package/src/client/setup.test.ts +3 -5
  179. package/src/client/start.ts +2 -2
  180. package/src/client/streamText.test.ts +102 -0
  181. package/src/client/streamText.ts +35 -9
  182. package/src/client/streaming.ts +44 -23
  183. package/src/client/utils.ts +22 -1
  184. package/src/component/_generated/dataModel.ts +1 -1
  185. package/src/component/_generated/server.ts +0 -5
  186. package/src/mapping.ts +38 -22
  187. package/src/test.ts +3 -4
@@ -0,0 +1,146 @@
1
+ import { paginator } from "convex-helpers/server/pagination";
2
+ import { mergedStream, stream } from "convex-helpers/server/stream";
3
+ import { v } from "convex/values";
4
+ import { mutation, query, } from "../_generated/server.js";
5
+ import schema from "../schema.js";
6
+ import { getVectorTableName, vEmbeddingsWithoutDenormalizedFields, vVectorDimension, vVectorId, } from "./tables.js";
7
+ export const paginate = query({
8
+ args: {
9
+ vectorDimension: vVectorDimension,
10
+ targetModel: v.string(),
11
+ table: v.optional(v.string()),
12
+ cursor: v.optional(v.string()),
13
+ limit: v.number(),
14
+ },
15
+ returns: v.object({
16
+ ids: v.array(vVectorId),
17
+ isDone: v.boolean(),
18
+ continueCursor: v.string(),
19
+ }),
20
+ handler: async (ctx, args) => {
21
+ const tableName = getVectorTableName(args.vectorDimension);
22
+ const vectors = await paginator(ctx.db, schema)
23
+ .query(tableName)
24
+ .withIndex("model_table_threadId", (q) => args.table
25
+ ? q.eq("model", args.targetModel).eq("table", args.table)
26
+ : q.eq("model", args.targetModel))
27
+ .paginate({
28
+ cursor: args.cursor ?? null,
29
+ numItems: args.limit,
30
+ maximumRowsRead: 300,
31
+ });
32
+ return {
33
+ ids: vectors.page.map((v) => v._id),
34
+ isDone: vectors.isDone,
35
+ continueCursor: vectors.continueCursor,
36
+ };
37
+ },
38
+ });
39
+ export const deleteBatchForThread = mutation({
40
+ args: {
41
+ vectorDimension: vVectorDimension,
42
+ model: v.string(),
43
+ threadId: v.string(),
44
+ cursor: v.optional(v.string()),
45
+ limit: v.number(),
46
+ },
47
+ returns: v.object({
48
+ isDone: v.boolean(),
49
+ continueCursor: v.string(),
50
+ }),
51
+ handler: async (ctx, args) => {
52
+ const tableName = getVectorTableName(args.vectorDimension);
53
+ const vectors = await mergedStream(["thread", "memory"].map((table) => stream(ctx.db, schema)
54
+ .query(tableName)
55
+ .withIndex("model_table_threadId", (q) => q
56
+ .eq("model", args.model)
57
+ .eq("table", table)
58
+ .eq("threadId", args.threadId))), ["threadId"]).paginate({
59
+ cursor: args.cursor ?? null,
60
+ numItems: args.limit,
61
+ maximumRowsRead: 300,
62
+ });
63
+ await Promise.all(vectors.page.map((v) => ctx.db.delete(v._id)));
64
+ return {
65
+ isDone: vectors.isDone,
66
+ continueCursor: vectors.continueCursor,
67
+ };
68
+ },
69
+ });
70
+ export const insertBatch = mutation({
71
+ args: {
72
+ vectorDimension: vVectorDimension,
73
+ vectors: v.array(v.object({
74
+ ...vEmbeddingsWithoutDenormalizedFields.fields,
75
+ messageId: v.optional(v.id("messages")),
76
+ })),
77
+ },
78
+ returns: v.array(vVectorId),
79
+ handler: async (ctx, args) => {
80
+ return Promise.all(args.vectors.map(async ({ messageId, ...v }) => {
81
+ const embeddingId = await insertVector(ctx, args.vectorDimension, v);
82
+ if (messageId) {
83
+ await ctx.db.patch(messageId, { embeddingId });
84
+ }
85
+ return embeddingId;
86
+ }));
87
+ },
88
+ });
89
+ export async function insertVector(ctx, dimension, v) {
90
+ return ctx.db.insert(getVectorTableName(dimension), {
91
+ ...v,
92
+ model_table_userId: v.userId ? [v.model, v.table, v.userId] : undefined,
93
+ model_table_threadId: v.threadId
94
+ ? [v.model, v.table, v.threadId]
95
+ : undefined,
96
+ });
97
+ }
98
+ export function searchVectors(ctx, vector, args) {
99
+ const tableName = getVectorTableName(args.dimension);
100
+ return ctx.vectorSearch(tableName, "vector", {
101
+ vector,
102
+ // TODO: to support more tables, add more "OR" clauses for each.
103
+ filter: (q) => args.searchAllMessagesForUserId
104
+ ? q.eq("model_table_userId", [
105
+ args.model,
106
+ args.table,
107
+ args.searchAllMessagesForUserId,
108
+ ])
109
+ : q.eq("model_table_threadId", [
110
+ args.model,
111
+ args.table,
112
+ args.threadId,
113
+ ]),
114
+ limit: args.limit,
115
+ });
116
+ }
117
+ export const updateBatch = mutation({
118
+ args: {
119
+ vectors: v.array(v.object({
120
+ model: v.string(),
121
+ id: vVectorId,
122
+ vector: v.array(v.number()),
123
+ // TODO: support changing the vector length by
124
+ // deleting from one table and inserting into another.
125
+ // However this requires updating all the messages that reference
126
+ // the vector.
127
+ })),
128
+ },
129
+ returns: v.null(),
130
+ handler: async (ctx, args) => {
131
+ await Promise.all(args.vectors.map((embedding) => ctx.db.patch(embedding.id, {
132
+ model: embedding.model,
133
+ vector: embedding.vector,
134
+ })));
135
+ },
136
+ });
137
+ export const deleteBatch = mutation({
138
+ args: {
139
+ ids: v.array(vVectorId),
140
+ },
141
+ returns: v.null(),
142
+ handler: async (ctx, args) => {
143
+ await Promise.all(args.ids.map((id) => ctx.db.delete(id)));
144
+ },
145
+ });
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/component/vector/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { type GenericTableSearchIndexes, type SchemaDefinition, type TableDefinition } from "convex/server";
2
+ import { type GenericId, type Infer, type ObjectType, type VId, type VObject, type VUnion } from "convex/values";
3
+ import type { QueryCtx } from "../_generated/server.js";
4
+ declare const embeddings: {
5
+ model: import("convex/values").VString<string, "required">;
6
+ table: import("convex/values").VString<string, "required">;
7
+ userId: import("convex/values").VString<string | undefined, "optional">;
8
+ threadId: import("convex/values").VString<string | undefined, "optional">;
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
+ vector: import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">;
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
+ }, {
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
+ vector: import("convex/values").VArray<number[], import("convex/values").VFloat64<number, "required">, "required">;
25
+ }, "required", "userId" | "threadId" | "model" | "table" | "vector">;
26
+ export type EmbeddingsWithoutDenormalizedFields = Infer<typeof vEmbeddingsWithoutDenormalizedFields>;
27
+ type VectorTable<D extends number> = TableDefinition<VObject<ObjectType<typeof embeddings>, typeof embeddings>, {
28
+ model_table_threadId: ["model", "table", "threadId", "_creationTime"];
29
+ }, GenericTableSearchIndexes, VectorIndex<D>>;
30
+ type VectorIndex<D extends number> = {
31
+ vector: {
32
+ vectorField: "vector";
33
+ dimensions: D;
34
+ filterFields: "model_table_userId" | "model_table_threadId";
35
+ };
36
+ };
37
+ export type VectorSchema = SchemaDefinition<{
38
+ [key in VectorTableName]: VectorTable<128>;
39
+ }, true>;
40
+ export declare const VectorDimensions: readonly [128, 256, 512, 768, 1024, 1408, 1536, 2048, 3072, 4096];
41
+ export declare function validateVectorDimension(dimension: number): asserts dimension is VectorDimension;
42
+ export type VectorDimension = (typeof VectorDimensions)[number];
43
+ export declare const VectorTableNames: `embeddings_${(typeof VectorDimensions)[number]}`[];
44
+ export type VectorTableName = (typeof VectorTableNames)[number];
45
+ export type VectorTableId = GenericId<(typeof VectorTableNames)[number]>;
46
+ export declare const vVectorDimension: VUnion<128 | 256 | 512 | 768 | 1024 | 1408 | 1536 | 2048 | 3072 | 4096, NoInfer<[import("convex/values").VLiteral<128, "required">, import("convex/values").VLiteral<256, "required">, import("convex/values").VLiteral<512, "required">, import("convex/values").VLiteral<768, "required">, import("convex/values").VLiteral<1024, "required">, import("convex/values").VLiteral<1408, "required">, import("convex/values").VLiteral<1536, "required">, import("convex/values").VLiteral<2048, "required">, import("convex/values").VLiteral<3072, "required">, import("convex/values").VLiteral<4096, "required">]>, "required", never>;
47
+ export declare const vVectorTableName: VUnion<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1408" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096", NoInfer<import("convex/values").VLiteral<"embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1408" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096", "required">[]>, "required", never>;
48
+ export declare const vVectorId: VUnion<GenericId<(typeof VectorTableNames)[number]>, VId<(typeof VectorTableNames)[number]>[]>;
49
+ export declare function getVectorTableName(dimension: VectorDimension): VectorTableName;
50
+ export declare function getVectorIdInfo(ctx: QueryCtx, id: VectorTableId): {
51
+ tableName: "embeddings_128" | "embeddings_256" | "embeddings_512" | "embeddings_768" | "embeddings_1024" | "embeddings_1408" | "embeddings_1536" | "embeddings_2048" | "embeddings_3072" | "embeddings_4096";
52
+ dimension: 128 | 256 | 512 | 768 | 1024 | 1408 | 1536 | 2048 | 3072 | 4096;
53
+ };
54
+ declare const tables: {
55
+ [K in keyof typeof VectorDimensions & number as `embeddings_${(typeof VectorDimensions)[K]}`]: VectorTable<(typeof VectorDimensions)[K]>;
56
+ };
57
+ export default tables;
58
+ //# sourceMappingURL=tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/component/vector/tables.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,UAAU,EAEf,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,MAAM,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,QAAA,MAAM,UAAU;;;;;;;;CAUf,CAAC;AAEF,eAAO,MAAM,oCAAoC;;;;;;;;;;;;oEAEhD,CAAC;AACF,MAAM,MAAM,mCAAmC,GAAG,KAAK,CACrD,OAAO,oCAAoC,CAC5C,CAAC;AAYF,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,eAAe,CAClD,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC,EACzD;IAAE,oBAAoB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CAAA;CAAE,EACzE,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,oBAAoB,GAAG,sBAAsB,CAAC;KAC7D,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,CACzC;KAAG,GAAG,IAAI,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC;CAAE,EAC9C,IAAI,CACL,CAAC;AAEF,eAAO,MAAM,gBAAgB,mEAEnB,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,2mBAAgC,CAAC;AAC9D,eAAO,MAAM,gBAAgB,0dAAgC,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,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,WAAW,CACpE,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAC7B;CASF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { omit } from "convex-helpers";
2
+ import { literals } from "convex-helpers/validators";
3
+ import { defineTable, } from "convex/server";
4
+ import { v, } from "convex/values";
5
+ // We only generate embeddings for non-tool, non-system messages
6
+ const embeddings = {
7
+ model: v.string(),
8
+ // What table it's stored in. (usually messages or memories)
9
+ table: v.string(),
10
+ userId: v.optional(v.string()),
11
+ threadId: v.optional(v.string()),
12
+ // not set for private threads
13
+ model_table_userId: v.optional(v.array(v.string())),
14
+ model_table_threadId: v.optional(v.array(v.string())),
15
+ vector: v.array(v.number()),
16
+ };
17
+ export const vEmbeddingsWithoutDenormalizedFields = v.object(omit(embeddings, ["model_table_userId", "model_table_threadId"]));
18
+ function table(dimensions) {
19
+ return defineTable(embeddings)
20
+ .vectorIndex("vector", {
21
+ vectorField: "vector",
22
+ dimensions,
23
+ filterFields: ["model_table_userId", "model_table_threadId"],
24
+ })
25
+ .index("model_table_threadId", ["model", "table", "threadId"]);
26
+ }
27
+ export const VectorDimensions = [
28
+ 128, 256, 512, 768, 1024, 1408, 1536, 2048, 3072, 4096,
29
+ ];
30
+ export function validateVectorDimension(dimension) {
31
+ if (!VectorDimensions.includes(dimension)) {
32
+ throw new Error(`Unsupported vector dimension${dimension}. Supported: ${VectorDimensions.join(", ")}`);
33
+ }
34
+ }
35
+ export const VectorTableNames = VectorDimensions.map((d) => `embeddings_${d}`);
36
+ export const vVectorDimension = literals(...VectorDimensions);
37
+ export const vVectorTableName = literals(...VectorTableNames);
38
+ export const vVectorId = v.union(...VectorTableNames.map((name) => v.id(name)));
39
+ export function getVectorTableName(dimension) {
40
+ return `embeddings_${dimension}`;
41
+ }
42
+ export function getVectorIdInfo(ctx, id) {
43
+ for (const dimension of VectorDimensions) {
44
+ const tableName = getVectorTableName(dimension);
45
+ if (ctx.db.normalizeId(tableName, id)) {
46
+ return { tableName, dimension };
47
+ }
48
+ }
49
+ throw new Error(`Unknown vector table id: ${id}`);
50
+ }
51
+ const tables = Object.fromEntries(VectorDimensions.map((dimensions) => [
52
+ `embeddings_${dimensions}`,
53
+ table(dimensions),
54
+ ]));
55
+ export default tables;
56
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/component/vector/tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type UIMessageChunk } from "ai";
2
+ import { type UIMessage } from "./UIMessages.js";
3
+ import { type MessageStatus, type StreamDelta, type StreamMessage } from "./validators.js";
4
+ export declare function blankUIMessage<METADATA = unknown>(streamMessage: StreamMessage & {
5
+ metadata?: METADATA;
6
+ }, threadId: string): UIMessage<METADATA>;
7
+ export declare function statusFromStreamStatus(status: StreamMessage["status"]): MessageStatus | "streaming";
8
+ export declare function updateFromUIMessageChunks(uiMessage: UIMessage, parts: UIMessageChunk[]): Promise<UIMessage>;
9
+ export declare function deriveUIMessagesFromDeltas(threadId: string, streamMessages: StreamMessage[], allDeltas: StreamDelta[]): Promise<UIMessage[]>;
10
+ /**
11
+ *
12
+ */
13
+ export declare function deriveUIMessagesFromTextStreamParts(threadId: string, streamMessages: StreamMessage[], existingStreams: Array<{
14
+ streamId: string;
15
+ cursor: number;
16
+ message: UIMessage;
17
+ }>, allDeltas: StreamDelta[]): [
18
+ UIMessage[],
19
+ Array<{
20
+ streamId: string;
21
+ cursor: number;
22
+ message: UIMessage;
23
+ }>,
24
+ boolean
25
+ ];
26
+ export declare function getParts<T extends StreamDelta["parts"][number]>(deltas: StreamDelta[], fromCursor?: number): {
27
+ parts: T[];
28
+ cursor: number;
29
+ };
30
+ /**
31
+ * This is historically from when we would use the onChunk callback instead of
32
+ * consuming the full UIMessageStream.
33
+ */
34
+ export declare function updateFromTextStreamParts(threadId: string, streamMessage: StreamMessage, existing: {
35
+ streamId: string;
36
+ cursor: number;
37
+ message: UIMessage;
38
+ } | undefined, deltas: StreamDelta[]): [{
39
+ streamId: string;
40
+ cursor: number;
41
+ message: UIMessage;
42
+ }, boolean];
43
+ //# sourceMappingURL=deltas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deltas.d.ts","sourceRoot":"","sources":["../src/deltas.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,cAAc,EACpB,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAGzB,wBAAgB,cAAc,CAAC,QAAQ,GAAG,OAAO,EAC/C,aAAa,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,EACtD,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,QAAQ,CAAC,CAcrB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAC9B,aAAa,GAAG,WAAW,CAW7B;AAED,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc,EAAE,sBAmDxB;AAED,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,aAAa,EAAE,EAC/B,SAAS,EAAE,WAAW,EAAE,GACvB,OAAO,CAAC,SAAS,EAAE,CAAC,CAwBtB;AAED;;GAEG;AAEH,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,aAAa,EAAE,EAC/B,eAAe,EAAE,KAAK,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC,EACF,SAAS,EAAE,WAAW,EAAE,GACvB;IACD,SAAS,EAAE;IACX,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC;IAC/D,OAAO;CACR,CAgCA;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAC7D,MAAM,EAAE,WAAW,EAAE,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA0BhC;AAED;;;GAGG;AAGH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EACJ;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,GACxD,SAAS,EACb,MAAM,EAAE,WAAW,EAAE,GACpB,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,EAAE,OAAO,CAAC,CAsTrE"}