@convex-dev/agent 0.6.0-alpha.1 → 0.6.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.
Files changed (181) hide show
  1. package/package.json +1 -1
  2. package/src/UIMessages.ts +135 -0
  3. package/src/client/index.ts +56 -14
  4. package/src/client/search.test.ts +4 -5
  5. package/src/client/search.ts +45 -4
  6. package/src/client/streaming.integration.test.ts +1206 -0
  7. package/src/client/streaming.ts +9 -2
  8. package/src/mapping.test.ts +136 -71
  9. package/src/mapping.ts +81 -28
  10. package/dist/UIMessages.d.ts +0 -46
  11. package/dist/UIMessages.d.ts.map +0 -1
  12. package/dist/UIMessages.js +0 -546
  13. package/dist/UIMessages.js.map +0 -1
  14. package/dist/client/createTool.d.ts +0 -167
  15. package/dist/client/createTool.d.ts.map +0 -1
  16. package/dist/client/createTool.js +0 -116
  17. package/dist/client/createTool.js.map +0 -1
  18. package/dist/client/defaultComponent.d.ts +0 -11
  19. package/dist/client/defaultComponent.d.ts.map +0 -1
  20. package/dist/client/defaultComponent.js +0 -7
  21. package/dist/client/defaultComponent.js.map +0 -1
  22. package/dist/client/definePlaygroundAPI.d.ts +0 -1725
  23. package/dist/client/definePlaygroundAPI.d.ts.map +0 -1
  24. package/dist/client/definePlaygroundAPI.js +0 -271
  25. package/dist/client/definePlaygroundAPI.js.map +0 -1
  26. package/dist/client/files.d.ts +0 -69
  27. package/dist/client/files.d.ts.map +0 -1
  28. package/dist/client/files.js +0 -181
  29. package/dist/client/files.js.map +0 -1
  30. package/dist/client/index.d.ts +0 -2091
  31. package/dist/client/index.d.ts.map +0 -1
  32. package/dist/client/index.js +0 -895
  33. package/dist/client/index.js.map +0 -1
  34. package/dist/client/messages.d.ts +0 -461
  35. package/dist/client/messages.d.ts.map +0 -1
  36. package/dist/client/messages.js +0 -106
  37. package/dist/client/messages.js.map +0 -1
  38. package/dist/client/mockModel.d.ts +0 -42
  39. package/dist/client/mockModel.d.ts.map +0 -1
  40. package/dist/client/mockModel.js +0 -182
  41. package/dist/client/mockModel.js.map +0 -1
  42. package/dist/client/saveInputMessages.d.ts +0 -20
  43. package/dist/client/saveInputMessages.d.ts.map +0 -1
  44. package/dist/client/saveInputMessages.js +0 -58
  45. package/dist/client/saveInputMessages.js.map +0 -1
  46. package/dist/client/search.d.ts +0 -493
  47. package/dist/client/search.d.ts.map +0 -1
  48. package/dist/client/search.js +0 -425
  49. package/dist/client/search.js.map +0 -1
  50. package/dist/client/start.d.ts +0 -84
  51. package/dist/client/start.d.ts.map +0 -1
  52. package/dist/client/start.js +0 -185
  53. package/dist/client/start.js.map +0 -1
  54. package/dist/client/streamText.d.ts +0 -46
  55. package/dist/client/streamText.d.ts.map +0 -1
  56. package/dist/client/streamText.js +0 -117
  57. package/dist/client/streamText.js.map +0 -1
  58. package/dist/client/streaming.d.ts +0 -3778
  59. package/dist/client/streaming.d.ts.map +0 -1
  60. package/dist/client/streaming.js +0 -314
  61. package/dist/client/streaming.js.map +0 -1
  62. package/dist/client/threads.d.ts +0 -46
  63. package/dist/client/threads.d.ts.map +0 -1
  64. package/dist/client/threads.js +0 -49
  65. package/dist/client/threads.js.map +0 -1
  66. package/dist/client/types.d.ts +0 -461
  67. package/dist/client/types.d.ts.map +0 -1
  68. package/dist/client/types.js +0 -2
  69. package/dist/client/types.js.map +0 -1
  70. package/dist/client/utils.d.ts +0 -4
  71. package/dist/client/utils.d.ts.map +0 -1
  72. package/dist/client/utils.js +0 -21
  73. package/dist/client/utils.js.map +0 -1
  74. package/dist/component/_generated/api.d.ts +0 -48
  75. package/dist/component/_generated/api.d.ts.map +0 -1
  76. package/dist/component/_generated/api.js +0 -31
  77. package/dist/component/_generated/api.js.map +0 -1
  78. package/dist/component/_generated/component.d.ts +0 -3120
  79. package/dist/component/_generated/component.d.ts.map +0 -1
  80. package/dist/component/_generated/component.js +0 -11
  81. package/dist/component/_generated/component.js.map +0 -1
  82. package/dist/component/_generated/dataModel.d.ts +0 -46
  83. package/dist/component/_generated/dataModel.d.ts.map +0 -1
  84. package/dist/component/_generated/dataModel.js +0 -11
  85. package/dist/component/_generated/dataModel.js.map +0 -1
  86. package/dist/component/_generated/server.d.ts +0 -121
  87. package/dist/component/_generated/server.d.ts.map +0 -1
  88. package/dist/component/_generated/server.js +0 -78
  89. package/dist/component/_generated/server.js.map +0 -1
  90. package/dist/component/apiKeys.d.ts +0 -11
  91. package/dist/component/apiKeys.d.ts.map +0 -1
  92. package/dist/component/apiKeys.js +0 -69
  93. package/dist/component/apiKeys.js.map +0 -1
  94. package/dist/component/convex.config.d.ts +0 -3
  95. package/dist/component/convex.config.d.ts.map +0 -1
  96. package/dist/component/convex.config.js +0 -3
  97. package/dist/component/convex.config.js.map +0 -1
  98. package/dist/component/files.d.ts +0 -97
  99. package/dist/component/files.d.ts.map +0 -1
  100. package/dist/component/files.js +0 -190
  101. package/dist/component/files.js.map +0 -1
  102. package/dist/component/messages.d.ts +0 -3851
  103. package/dist/component/messages.d.ts.map +0 -1
  104. package/dist/component/messages.js +0 -757
  105. package/dist/component/messages.js.map +0 -1
  106. package/dist/component/schema.d.ts +0 -8026
  107. package/dist/component/schema.d.ts.map +0 -1
  108. package/dist/component/schema.js +0 -147
  109. package/dist/component/schema.js.map +0 -1
  110. package/dist/component/streams.d.ts +0 -128
  111. package/dist/component/streams.d.ts.map +0 -1
  112. package/dist/component/streams.js +0 -413
  113. package/dist/component/streams.js.map +0 -1
  114. package/dist/component/threads.d.ts +0 -115
  115. package/dist/component/threads.d.ts.map +0 -1
  116. package/dist/component/threads.js +0 -208
  117. package/dist/component/threads.js.map +0 -1
  118. package/dist/component/users.d.ts +0 -52
  119. package/dist/component/users.d.ts.map +0 -1
  120. package/dist/component/users.js +0 -229
  121. package/dist/component/users.js.map +0 -1
  122. package/dist/component/vector/index.d.ts +0 -61
  123. package/dist/component/vector/index.d.ts.map +0 -1
  124. package/dist/component/vector/index.js +0 -146
  125. package/dist/component/vector/index.js.map +0 -1
  126. package/dist/component/vector/tables.d.ts +0 -58
  127. package/dist/component/vector/tables.d.ts.map +0 -1
  128. package/dist/component/vector/tables.js +0 -56
  129. package/dist/component/vector/tables.js.map +0 -1
  130. package/dist/deltas.d.ts +0 -43
  131. package/dist/deltas.d.ts.map +0 -1
  132. package/dist/deltas.js +0 -446
  133. package/dist/deltas.js.map +0 -1
  134. package/dist/mapping.d.ts +0 -72
  135. package/dist/mapping.d.ts.map +0 -1
  136. package/dist/mapping.js +0 -677
  137. package/dist/mapping.js.map +0 -1
  138. package/dist/react/SmoothText.d.ts +0 -5
  139. package/dist/react/SmoothText.d.ts.map +0 -1
  140. package/dist/react/SmoothText.js +0 -6
  141. package/dist/react/SmoothText.js.map +0 -1
  142. package/dist/react/index.d.ts +0 -25
  143. package/dist/react/index.d.ts.map +0 -1
  144. package/dist/react/index.js +0 -70
  145. package/dist/react/index.js.map +0 -1
  146. package/dist/react/optimisticallySendMessage.d.ts +0 -42
  147. package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
  148. package/dist/react/optimisticallySendMessage.js +0 -74
  149. package/dist/react/optimisticallySendMessage.js.map +0 -1
  150. package/dist/react/types.d.ts +0 -12
  151. package/dist/react/types.d.ts.map +0 -1
  152. package/dist/react/types.js +0 -2
  153. package/dist/react/types.js.map +0 -1
  154. package/dist/react/useDeltaStreams.d.ts +0 -10
  155. package/dist/react/useDeltaStreams.d.ts.map +0 -1
  156. package/dist/react/useDeltaStreams.js +0 -106
  157. package/dist/react/useDeltaStreams.js.map +0 -1
  158. package/dist/react/useSmoothText.d.ts +0 -27
  159. package/dist/react/useSmoothText.d.ts.map +0 -1
  160. package/dist/react/useSmoothText.js +0 -68
  161. package/dist/react/useSmoothText.js.map +0 -1
  162. package/dist/react/useStreamingUIMessages.d.ts +0 -22
  163. package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
  164. package/dist/react/useStreamingUIMessages.js +0 -92
  165. package/dist/react/useStreamingUIMessages.js.map +0 -1
  166. package/dist/react/useThreadMessages.d.ts +0 -104
  167. package/dist/react/useThreadMessages.d.ts.map +0 -1
  168. package/dist/react/useThreadMessages.js +0 -148
  169. package/dist/react/useThreadMessages.js.map +0 -1
  170. package/dist/react/useUIMessages.d.ts +0 -96
  171. package/dist/react/useUIMessages.d.ts.map +0 -1
  172. package/dist/react/useUIMessages.js +0 -108
  173. package/dist/react/useUIMessages.js.map +0 -1
  174. package/dist/shared.d.ts +0 -26
  175. package/dist/shared.d.ts.map +0 -1
  176. package/dist/shared.js +0 -67
  177. package/dist/shared.js.map +0 -1
  178. package/dist/validators.d.ts +0 -24516
  179. package/dist/validators.d.ts.map +0 -1
  180. package/dist/validators.js +0 -475
  181. package/dist/validators.js.map +0 -1
@@ -1,146 +0,0 @@
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
@@ -1 +0,0 @@
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,YAAY,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElC,OAAO,EAEL,QAAQ,EAER,KAAK,GACN,MAAM,yBAAyB,CAAC;AACjC,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAEL,kBAAkB,EAElB,oCAAoC,EACpC,gBAAgB,EAChB,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;IAC5B,IAAI,EAAE;QACJ,eAAe,EAAE,gBAAgB;QACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;KAC3B,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;aAC5C,KAAK,CAAC,SAAS,CAAC;aAChB,SAAS,CAAC,sBAA6B,EAAE,CAAC,CAAC,EAAE,EAAE,CAC9C,IAAI,CAAC,KAAK;YACR,CAAC,CAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAS,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YAClE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CACpC;aACA,QAAQ,CAAC;YACR,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,eAAe,EAAE,GAAG;SACrB,CAAC,CAAC;QACL,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC3C,IAAI,EAAE;QACJ,eAAe,EAAE,gBAAgB;QACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;QACnB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;KAC3B,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,YAAY,CAChC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC;aACnB,KAAK,CAAC,SAAS,CAAC;aAChB,SAAS,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC;aACE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;aACvB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;aAClB,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CACjC,CACJ,EACD,CAAC,UAAU,CAAC,CACb,CAAC,QAAQ,CAAC;YACT,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK;YACpB,eAAe,EAAE,GAAG;SACrB,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE;QACJ,eAAe,EAAE,gBAAgB;QACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,oCAAoC,CAAC,MAAM;YAC9C,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;SACxC,CAAC,CACH;KACF;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YACrE,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAgB,EAChB,SAA0B,EAC1B,CAAsC;IAEtC,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;QAClD,GAAG,CAAC;QACJ,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACvE,oBAAoB,EAAE,CAAC,CAAC,QAAQ;YAC9B,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAc,EACd,MAAgB,EAChB,IAQC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE;QAC3C,MAAM;QACN,gEAAgE;QAChE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,IAAI,CAAC,0BAA0B;YAC7B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,EAAE;gBACzB,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,0BAA0B;aAChC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,EAAE;gBAC3B,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,KAAK;gBACV,IAAI,CAAC,QAAS;aACf,CAAC;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,CAAC,KAAK,CACd,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3B,8CAA8C;YAC9C,sDAAsD;YACtD,iEAAiE;YACjE,cAAc;SACf,CAAC,CACH;KACF;IACD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC7B,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;YACzB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC,CACH,CACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE;QACJ,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;KACxB;IACD,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE;IACjB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF,CAAC,CAAC"}
@@ -1,58 +0,0 @@
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, import("convex/values").VLiteral<128 | 256 | 512 | 768 | 1024 | 1408 | 1536 | 2048 | 3072 | 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", 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
@@ -1 +0,0 @@
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,6MAAgC,CAAC;AAC9D,eAAO,MAAM,gBAAgB,idAAgC,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"}
@@ -1,56 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/component/vector/tables.ts"],"names":[],"mappings":"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"}
package/dist/deltas.d.ts DELETED
@@ -1,43 +0,0 @@
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
@@ -1 +0,0 @@
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"}