db-mcp 1.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.
Files changed (208) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +860 -0
  3. package/dist/adapters/DatabaseAdapter.d.ts +141 -0
  4. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
  5. package/dist/adapters/DatabaseAdapter.js +131 -0
  6. package/dist/adapters/DatabaseAdapter.js.map +1 -0
  7. package/dist/adapters/sqlite/SchemaManager.d.ts +58 -0
  8. package/dist/adapters/sqlite/SchemaManager.d.ts.map +1 -0
  9. package/dist/adapters/sqlite/SchemaManager.js +187 -0
  10. package/dist/adapters/sqlite/SchemaManager.js.map +1 -0
  11. package/dist/adapters/sqlite/SqliteAdapter.d.ts +161 -0
  12. package/dist/adapters/sqlite/SqliteAdapter.d.ts.map +1 -0
  13. package/dist/adapters/sqlite/SqliteAdapter.js +741 -0
  14. package/dist/adapters/sqlite/SqliteAdapter.js.map +1 -0
  15. package/dist/adapters/sqlite/index.d.ts +9 -0
  16. package/dist/adapters/sqlite/index.d.ts.map +1 -0
  17. package/dist/adapters/sqlite/index.js +8 -0
  18. package/dist/adapters/sqlite/index.js.map +1 -0
  19. package/dist/adapters/sqlite/json-utils.d.ts +100 -0
  20. package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
  21. package/dist/adapters/sqlite/json-utils.js +274 -0
  22. package/dist/adapters/sqlite/json-utils.js.map +1 -0
  23. package/dist/adapters/sqlite/output-schemas.d.ts +1187 -0
  24. package/dist/adapters/sqlite/output-schemas.d.ts.map +1 -0
  25. package/dist/adapters/sqlite/output-schemas.js +1337 -0
  26. package/dist/adapters/sqlite/output-schemas.js.map +1 -0
  27. package/dist/adapters/sqlite/prompts.d.ts +13 -0
  28. package/dist/adapters/sqlite/prompts.d.ts.map +1 -0
  29. package/dist/adapters/sqlite/prompts.js +605 -0
  30. package/dist/adapters/sqlite/prompts.js.map +1 -0
  31. package/dist/adapters/sqlite/resources.d.ts +13 -0
  32. package/dist/adapters/sqlite/resources.d.ts.map +1 -0
  33. package/dist/adapters/sqlite/resources.js +251 -0
  34. package/dist/adapters/sqlite/resources.js.map +1 -0
  35. package/dist/adapters/sqlite/tools/admin.d.ts +14 -0
  36. package/dist/adapters/sqlite/tools/admin.d.ts.map +1 -0
  37. package/dist/adapters/sqlite/tools/admin.js +788 -0
  38. package/dist/adapters/sqlite/tools/admin.js.map +1 -0
  39. package/dist/adapters/sqlite/tools/core.d.ts +25 -0
  40. package/dist/adapters/sqlite/tools/core.d.ts.map +1 -0
  41. package/dist/adapters/sqlite/tools/core.js +359 -0
  42. package/dist/adapters/sqlite/tools/core.js.map +1 -0
  43. package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
  44. package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
  45. package/dist/adapters/sqlite/tools/fts.js +347 -0
  46. package/dist/adapters/sqlite/tools/fts.js.map +1 -0
  47. package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
  48. package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
  49. package/dist/adapters/sqlite/tools/geo.js +252 -0
  50. package/dist/adapters/sqlite/tools/geo.js.map +1 -0
  51. package/dist/adapters/sqlite/tools/index.d.ts +30 -0
  52. package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
  53. package/dist/adapters/sqlite/tools/index.js +61 -0
  54. package/dist/adapters/sqlite/tools/index.js.map +1 -0
  55. package/dist/adapters/sqlite/tools/json-helpers.d.ts +14 -0
  56. package/dist/adapters/sqlite/tools/json-helpers.d.ts.map +1 -0
  57. package/dist/adapters/sqlite/tools/json-helpers.js +477 -0
  58. package/dist/adapters/sqlite/tools/json-helpers.js.map +1 -0
  59. package/dist/adapters/sqlite/tools/json-operations.d.ts +14 -0
  60. package/dist/adapters/sqlite/tools/json-operations.d.ts.map +1 -0
  61. package/dist/adapters/sqlite/tools/json-operations.js +839 -0
  62. package/dist/adapters/sqlite/tools/json-operations.js.map +1 -0
  63. package/dist/adapters/sqlite/tools/stats.d.ts +15 -0
  64. package/dist/adapters/sqlite/tools/stats.d.ts.map +1 -0
  65. package/dist/adapters/sqlite/tools/stats.js +1219 -0
  66. package/dist/adapters/sqlite/tools/stats.js.map +1 -0
  67. package/dist/adapters/sqlite/tools/text.d.ts +14 -0
  68. package/dist/adapters/sqlite/tools/text.d.ts.map +1 -0
  69. package/dist/adapters/sqlite/tools/text.js +1141 -0
  70. package/dist/adapters/sqlite/tools/text.js.map +1 -0
  71. package/dist/adapters/sqlite/tools/vector.d.ts +14 -0
  72. package/dist/adapters/sqlite/tools/vector.d.ts.map +1 -0
  73. package/dist/adapters/sqlite/tools/vector.js +613 -0
  74. package/dist/adapters/sqlite/tools/vector.js.map +1 -0
  75. package/dist/adapters/sqlite/tools/virtual.d.ts +13 -0
  76. package/dist/adapters/sqlite/tools/virtual.d.ts.map +1 -0
  77. package/dist/adapters/sqlite/tools/virtual.js +930 -0
  78. package/dist/adapters/sqlite/tools/virtual.js.map +1 -0
  79. package/dist/adapters/sqlite/types.d.ts +207 -0
  80. package/dist/adapters/sqlite/types.d.ts.map +1 -0
  81. package/dist/adapters/sqlite/types.js +186 -0
  82. package/dist/adapters/sqlite/types.js.map +1 -0
  83. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts +163 -0
  84. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts.map +1 -0
  85. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js +748 -0
  86. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js.map +1 -0
  87. package/dist/adapters/sqlite-native/index.d.ts +11 -0
  88. package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
  89. package/dist/adapters/sqlite-native/index.js +11 -0
  90. package/dist/adapters/sqlite-native/index.js.map +1 -0
  91. package/dist/adapters/sqlite-native/tools/spatialite.d.ts +19 -0
  92. package/dist/adapters/sqlite-native/tools/spatialite.d.ts.map +1 -0
  93. package/dist/adapters/sqlite-native/tools/spatialite.js +628 -0
  94. package/dist/adapters/sqlite-native/tools/spatialite.js.map +1 -0
  95. package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
  96. package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
  97. package/dist/adapters/sqlite-native/tools/transactions.js +255 -0
  98. package/dist/adapters/sqlite-native/tools/transactions.js.map +1 -0
  99. package/dist/adapters/sqlite-native/tools/window.d.ts +12 -0
  100. package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
  101. package/dist/adapters/sqlite-native/tools/window.js +370 -0
  102. package/dist/adapters/sqlite-native/tools/window.js.map +1 -0
  103. package/dist/auth/AuthorizationServerDiscovery.d.ts +90 -0
  104. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
  105. package/dist/auth/AuthorizationServerDiscovery.js +204 -0
  106. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
  107. package/dist/auth/OAuthResourceServer.d.ts +65 -0
  108. package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
  109. package/dist/auth/OAuthResourceServer.js +121 -0
  110. package/dist/auth/OAuthResourceServer.js.map +1 -0
  111. package/dist/auth/TokenValidator.d.ts +60 -0
  112. package/dist/auth/TokenValidator.d.ts.map +1 -0
  113. package/dist/auth/TokenValidator.js +235 -0
  114. package/dist/auth/TokenValidator.js.map +1 -0
  115. package/dist/auth/errors.d.ts +74 -0
  116. package/dist/auth/errors.d.ts.map +1 -0
  117. package/dist/auth/errors.js +133 -0
  118. package/dist/auth/errors.js.map +1 -0
  119. package/dist/auth/index.d.ts +13 -0
  120. package/dist/auth/index.d.ts.map +1 -0
  121. package/dist/auth/index.js +15 -0
  122. package/dist/auth/index.js.map +1 -0
  123. package/dist/auth/middleware.d.ts +81 -0
  124. package/dist/auth/middleware.d.ts.map +1 -0
  125. package/dist/auth/middleware.js +291 -0
  126. package/dist/auth/middleware.js.map +1 -0
  127. package/dist/auth/scopes.d.ts +136 -0
  128. package/dist/auth/scopes.d.ts.map +1 -0
  129. package/dist/auth/scopes.js +349 -0
  130. package/dist/auth/scopes.js.map +1 -0
  131. package/dist/auth/types.d.ts +257 -0
  132. package/dist/auth/types.d.ts.map +1 -0
  133. package/dist/auth/types.js +8 -0
  134. package/dist/auth/types.js.map +1 -0
  135. package/dist/cli.d.ts +8 -0
  136. package/dist/cli.d.ts.map +1 -0
  137. package/dist/cli.js +236 -0
  138. package/dist/cli.js.map +1 -0
  139. package/dist/constants/ServerInstructions.d.ts +45 -0
  140. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  141. package/dist/constants/ServerInstructions.js +356 -0
  142. package/dist/constants/ServerInstructions.js.map +1 -0
  143. package/dist/filtering/ToolConstants.d.ts +34 -0
  144. package/dist/filtering/ToolConstants.d.ts.map +1 -0
  145. package/dist/filtering/ToolConstants.js +174 -0
  146. package/dist/filtering/ToolConstants.js.map +1 -0
  147. package/dist/filtering/ToolFilter.d.ts +82 -0
  148. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  149. package/dist/filtering/ToolFilter.js +296 -0
  150. package/dist/filtering/ToolFilter.js.map +1 -0
  151. package/dist/index.d.ts +13 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +17 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/server/McpServer.d.ts +61 -0
  156. package/dist/server/McpServer.d.ts.map +1 -0
  157. package/dist/server/McpServer.js +270 -0
  158. package/dist/server/McpServer.js.map +1 -0
  159. package/dist/transports/http.d.ts +134 -0
  160. package/dist/transports/http.d.ts.map +1 -0
  161. package/dist/transports/http.js +516 -0
  162. package/dist/transports/http.js.map +1 -0
  163. package/dist/transports/index.d.ts +5 -0
  164. package/dist/transports/index.d.ts.map +1 -0
  165. package/dist/transports/index.js +5 -0
  166. package/dist/transports/index.js.map +1 -0
  167. package/dist/types/index.d.ts +380 -0
  168. package/dist/types/index.d.ts.map +1 -0
  169. package/dist/types/index.js +68 -0
  170. package/dist/types/index.js.map +1 -0
  171. package/dist/utils/annotations.d.ts +44 -0
  172. package/dist/utils/annotations.d.ts.map +1 -0
  173. package/dist/utils/annotations.js +77 -0
  174. package/dist/utils/annotations.js.map +1 -0
  175. package/dist/utils/errors.d.ts +155 -0
  176. package/dist/utils/errors.d.ts.map +1 -0
  177. package/dist/utils/errors.js +329 -0
  178. package/dist/utils/errors.js.map +1 -0
  179. package/dist/utils/identifiers.d.ts +121 -0
  180. package/dist/utils/identifiers.d.ts.map +1 -0
  181. package/dist/utils/identifiers.js +319 -0
  182. package/dist/utils/identifiers.js.map +1 -0
  183. package/dist/utils/index.d.ts +7 -0
  184. package/dist/utils/index.d.ts.map +1 -0
  185. package/dist/utils/index.js +7 -0
  186. package/dist/utils/index.js.map +1 -0
  187. package/dist/utils/insightsManager.d.ts +39 -0
  188. package/dist/utils/insightsManager.d.ts.map +1 -0
  189. package/dist/utils/insightsManager.js +63 -0
  190. package/dist/utils/insightsManager.js.map +1 -0
  191. package/dist/utils/logger.d.ts +189 -0
  192. package/dist/utils/logger.d.ts.map +1 -0
  193. package/dist/utils/logger.js +394 -0
  194. package/dist/utils/logger.js.map +1 -0
  195. package/dist/utils/progress-utils.d.ts +54 -0
  196. package/dist/utils/progress-utils.d.ts.map +1 -0
  197. package/dist/utils/progress-utils.js +74 -0
  198. package/dist/utils/progress-utils.js.map +1 -0
  199. package/dist/utils/resourceAnnotations.d.ts +36 -0
  200. package/dist/utils/resourceAnnotations.d.ts.map +1 -0
  201. package/dist/utils/resourceAnnotations.js +57 -0
  202. package/dist/utils/resourceAnnotations.js.map +1 -0
  203. package/dist/utils/where-clause.d.ts +41 -0
  204. package/dist/utils/where-clause.d.ts.map +1 -0
  205. package/dist/utils/where-clause.js +116 -0
  206. package/dist/utils/where-clause.js.map +1 -0
  207. package/package.json +83 -0
  208. package/server.json +53 -0
@@ -0,0 +1,613 @@
1
+ /**
2
+ * SQLite Vector Search Tools
3
+ *
4
+ * Vector similarity search and embedding operations.
5
+ * Uses JSON arrays for vector storage (no external extensions needed).
6
+ * 11 tools total.
7
+ */
8
+ import { z } from "zod";
9
+ import { readOnly, write, idempotent, destructive, } from "../../../utils/annotations.js";
10
+ import { validateWhereClause, sanitizeIdentifier, } from "../../../utils/index.js";
11
+ import { CreateTableOutputSchema, VectorStoreOutputSchema, VectorBatchStoreOutputSchema, VectorGetOutputSchema, VectorSearchOutputSchema, VectorDeleteOutputSchema, VectorCountOutputSchema, VectorStatsOutputSchema, VectorDimensionsOutputSchema, VectorNormalizeOutputSchema, VectorDistanceOutputSchema, } from "../output-schemas.js";
12
+ // Vector schemas
13
+ const VectorStoreSchema = z.object({
14
+ table: z.string().describe("Table name"),
15
+ idColumn: z.string().describe("ID column name"),
16
+ vectorColumn: z.string().describe("Column to store vector (as JSON)"),
17
+ id: z.union([z.string(), z.number()]).describe("Row identifier"),
18
+ vector: z.array(z.number()).describe("Vector as array of numbers"),
19
+ });
20
+ const VectorSearchSchema = z.object({
21
+ table: z.string().describe("Table name"),
22
+ vectorColumn: z.string().describe("Vector column name"),
23
+ queryVector: z.array(z.number()).describe("Query vector"),
24
+ metric: z.enum(["cosine", "euclidean", "dot"]).optional().default("cosine"),
25
+ limit: z.number().optional().default(10),
26
+ whereClause: z.string().optional(),
27
+ returnColumns: z.array(z.string()).optional().describe("Columns to return"),
28
+ });
29
+ const VectorCreateTableSchema = z.object({
30
+ tableName: z.string().describe("Table name"),
31
+ dimensions: z.number().describe("Vector dimensions"),
32
+ additionalColumns: z
33
+ .array(z.object({
34
+ name: z.string(),
35
+ type: z.string(),
36
+ }))
37
+ .optional(),
38
+ });
39
+ const VectorNormalizeSchema = z.object({
40
+ vector: z.array(z.number()).describe("Vector to normalize"),
41
+ });
42
+ const VectorDistanceSchema = z.object({
43
+ vector1: z.array(z.number()).describe("First vector"),
44
+ vector2: z.array(z.number()).describe("Second vector"),
45
+ metric: z.enum(["cosine", "euclidean", "dot"]).optional().default("cosine"),
46
+ });
47
+ const VectorBatchStoreSchema = z.object({
48
+ table: z.string().describe("Table name"),
49
+ idColumn: z.string().describe("ID column name"),
50
+ vectorColumn: z.string().describe("Vector column name"),
51
+ items: z
52
+ .array(z.object({
53
+ id: z.union([z.string(), z.number()]),
54
+ vector: z.array(z.number()),
55
+ }))
56
+ .describe("Items to store"),
57
+ });
58
+ const VectorDeleteSchema = z.object({
59
+ table: z.string().describe("Table name"),
60
+ idColumn: z.string().describe("ID column name"),
61
+ ids: z.array(z.union([z.string(), z.number()])).describe("IDs to delete"),
62
+ });
63
+ const VectorGetSchema = z.object({
64
+ table: z.string().describe("Table name"),
65
+ idColumn: z.string().describe("ID column name"),
66
+ vectorColumn: z.string().describe("Vector column name"),
67
+ id: z.union([z.string(), z.number()]).describe("Row identifier"),
68
+ });
69
+ const VectorCountSchema = z.object({
70
+ table: z.string().describe("Table name"),
71
+ dimensions: z.number().optional().describe("Filter by dimension count"),
72
+ });
73
+ const VectorStatsSchema = z.object({
74
+ table: z.string().describe("Table name"),
75
+ vectorColumn: z.string().describe("Vector column name"),
76
+ sampleSize: z.number().optional().default(100),
77
+ });
78
+ const VectorDimensionsSchema = z.object({
79
+ table: z.string().describe("Table name"),
80
+ vectorColumn: z.string().describe("Vector column name"),
81
+ });
82
+ /**
83
+ * Get all vector tools
84
+ */
85
+ export function getVectorTools(adapter) {
86
+ return [
87
+ createVectorCreateTableTool(adapter),
88
+ createVectorStoreTool(adapter),
89
+ createVectorBatchStoreTool(adapter),
90
+ createVectorSearchTool(adapter),
91
+ createVectorGetTool(adapter),
92
+ createVectorDeleteTool(adapter),
93
+ createVectorCountTool(adapter),
94
+ createVectorStatsTool(adapter),
95
+ createVectorDimensionsTool(adapter),
96
+ createVectorNormalizeTool(),
97
+ createVectorDistanceTool(),
98
+ ];
99
+ }
100
+ // Helper functions for vector operations
101
+ function cosineSimilarity(a, b) {
102
+ if (a.length !== b.length)
103
+ throw new Error("Vector dimensions must match");
104
+ let dotProd = 0;
105
+ let normA = 0;
106
+ let normB = 0;
107
+ for (let i = 0; i < a.length; i++) {
108
+ const aVal = a[i] ?? 0;
109
+ const bVal = b[i] ?? 0;
110
+ dotProd += aVal * bVal;
111
+ normA += aVal * aVal;
112
+ normB += bVal * bVal;
113
+ }
114
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
115
+ return magnitude === 0 ? 0 : dotProd / magnitude;
116
+ }
117
+ function euclideanDistance(a, b) {
118
+ if (a.length !== b.length)
119
+ throw new Error("Vector dimensions must match");
120
+ let sum = 0;
121
+ for (let i = 0; i < a.length; i++) {
122
+ const aVal = a[i] ?? 0;
123
+ const bVal = b[i] ?? 0;
124
+ const diff = aVal - bVal;
125
+ sum += diff * diff;
126
+ }
127
+ return Math.sqrt(sum);
128
+ }
129
+ function dotProduct(a, b) {
130
+ if (a.length !== b.length)
131
+ throw new Error("Vector dimensions must match");
132
+ let sum = 0;
133
+ for (let i = 0; i < a.length; i++) {
134
+ sum += (a[i] ?? 0) * (b[i] ?? 0);
135
+ }
136
+ return sum;
137
+ }
138
+ function normalizeVector(v) {
139
+ const norm = Math.sqrt(v.reduce((sum, x) => sum + x * x, 0));
140
+ if (norm === 0)
141
+ return v;
142
+ return v.map((x) => x / norm);
143
+ }
144
+ function parseVector(value) {
145
+ if (Array.isArray(value)) {
146
+ return value.map(Number);
147
+ }
148
+ if (typeof value === "string") {
149
+ try {
150
+ const parsed = JSON.parse(value);
151
+ if (Array.isArray(parsed)) {
152
+ return parsed.map(Number);
153
+ }
154
+ }
155
+ catch {
156
+ // Not valid JSON
157
+ }
158
+ }
159
+ throw new Error("Invalid vector format");
160
+ }
161
+ /**
162
+ * Create a table for vector storage
163
+ */
164
+ function createVectorCreateTableTool(adapter) {
165
+ return {
166
+ name: "sqlite_vector_create_table",
167
+ description: "Create a table optimized for vector storage with JSON vector column.",
168
+ group: "vector",
169
+ inputSchema: VectorCreateTableSchema,
170
+ outputSchema: CreateTableOutputSchema,
171
+ requiredScopes: ["write"],
172
+ annotations: idempotent("Create Vector Table"),
173
+ handler: async (params, _context) => {
174
+ const input = VectorCreateTableSchema.parse(params);
175
+ // Validate and quote table name
176
+ const tableName = sanitizeIdentifier(input.tableName);
177
+ const columns = [
178
+ "id INTEGER PRIMARY KEY",
179
+ "vector TEXT NOT NULL", // JSON array
180
+ `dimensions INTEGER DEFAULT ${input.dimensions}`,
181
+ ];
182
+ if (input.additionalColumns) {
183
+ for (const col of input.additionalColumns) {
184
+ const colName = sanitizeIdentifier(col.name);
185
+ columns.push(`${colName} ${col.type}`);
186
+ }
187
+ }
188
+ const sql = `CREATE TABLE IF NOT EXISTS ${tableName} (${columns.join(", ")})`;
189
+ await adapter.executeQuery(sql);
190
+ return {
191
+ success: true,
192
+ message: `Vector table '${input.tableName}' created with ${input.dimensions} dimensions`,
193
+ sql,
194
+ };
195
+ },
196
+ };
197
+ }
198
+ /**
199
+ * Store a vector
200
+ */
201
+ function createVectorStoreTool(adapter) {
202
+ return {
203
+ name: "sqlite_vector_store",
204
+ description: "Store or update a vector in the database.",
205
+ group: "vector",
206
+ inputSchema: VectorStoreSchema,
207
+ outputSchema: VectorStoreOutputSchema,
208
+ requiredScopes: ["write"],
209
+ annotations: write("Store Vector"),
210
+ handler: async (params, _context) => {
211
+ const input = VectorStoreSchema.parse(params);
212
+ // Validate and quote identifiers
213
+ const table = sanitizeIdentifier(input.table);
214
+ const idColumn = sanitizeIdentifier(input.idColumn);
215
+ const vectorColumn = sanitizeIdentifier(input.vectorColumn);
216
+ const vectorJson = JSON.stringify(input.vector);
217
+ const idValue = typeof input.id === "string" ? `'${input.id}'` : input.id;
218
+ // Try update first, then insert
219
+ const updateSql = `UPDATE ${table} SET ${vectorColumn} = '${vectorJson}' WHERE ${idColumn} = ${idValue}`;
220
+ const updateResult = await adapter.executeWriteQuery(updateSql);
221
+ if (updateResult.rowsAffected === 0) {
222
+ const insertSql = `INSERT INTO ${table} (${idColumn}, ${vectorColumn}) VALUES (${idValue}, '${vectorJson}')`;
223
+ await adapter.executeWriteQuery(insertSql);
224
+ }
225
+ return {
226
+ success: true,
227
+ id: input.id,
228
+ dimensions: input.vector.length,
229
+ };
230
+ },
231
+ };
232
+ }
233
+ /**
234
+ * Batch store vectors
235
+ */
236
+ function createVectorBatchStoreTool(adapter) {
237
+ return {
238
+ name: "sqlite_vector_batch_store",
239
+ description: "Store multiple vectors in a batch operation.",
240
+ group: "vector",
241
+ inputSchema: VectorBatchStoreSchema,
242
+ outputSchema: VectorBatchStoreOutputSchema,
243
+ requiredScopes: ["write"],
244
+ annotations: write("Batch Store Vectors"),
245
+ handler: async (params, _context) => {
246
+ const input = VectorBatchStoreSchema.parse(params);
247
+ // Validate and quote identifiers
248
+ const table = sanitizeIdentifier(input.table);
249
+ const idColumn = sanitizeIdentifier(input.idColumn);
250
+ const vectorColumn = sanitizeIdentifier(input.vectorColumn);
251
+ let stored = 0;
252
+ for (const item of input.items) {
253
+ const vectorJson = JSON.stringify(item.vector);
254
+ const idValue = typeof item.id === "string" ? `'${item.id}'` : item.id;
255
+ const sql = `INSERT OR REPLACE INTO ${table} (${idColumn}, ${vectorColumn}) VALUES (${idValue}, '${vectorJson}')`;
256
+ await adapter.executeWriteQuery(sql);
257
+ stored++;
258
+ }
259
+ return {
260
+ success: true,
261
+ stored,
262
+ dimensions: input.items[0]?.vector.length,
263
+ };
264
+ },
265
+ };
266
+ }
267
+ /**
268
+ * Vector similarity search
269
+ */
270
+ function createVectorSearchTool(adapter) {
271
+ return {
272
+ name: "sqlite_vector_search",
273
+ description: "Find similar vectors using cosine, euclidean, or dot product similarity.",
274
+ group: "vector",
275
+ inputSchema: VectorSearchSchema,
276
+ outputSchema: VectorSearchOutputSchema,
277
+ requiredScopes: ["read"],
278
+ annotations: readOnly("Vector Search"),
279
+ handler: async (params, _context) => {
280
+ const input = VectorSearchSchema.parse(params);
281
+ // Validate and quote identifiers
282
+ const table = sanitizeIdentifier(input.table);
283
+ const vectorColumn = sanitizeIdentifier(input.vectorColumn);
284
+ // Build select clause
285
+ // Determine if vector column should be included in final results
286
+ const includeVectorInResults = !input.returnColumns ||
287
+ input.returnColumns.length === 0 ||
288
+ input.returnColumns.includes(input.vectorColumn);
289
+ let selectCols = "*";
290
+ if (input.returnColumns && input.returnColumns.length > 0) {
291
+ const quotedCols = input.returnColumns.map((c) => sanitizeIdentifier(c));
292
+ selectCols = quotedCols.join(", ");
293
+ }
294
+ // Always fetch vector column for similarity calculation, but may remove from results
295
+ let sql = `SELECT ${selectCols}, ${vectorColumn} FROM ${table}`;
296
+ if (input.whereClause) {
297
+ validateWhereClause(input.whereClause);
298
+ sql += ` WHERE ${input.whereClause}`;
299
+ }
300
+ const result = await adapter.executeReadQuery(sql);
301
+ // Calculate similarities in JavaScript
302
+ const queryVector = input.queryVector;
303
+ const scored = (result.rows ?? [])
304
+ .map((row) => {
305
+ try {
306
+ const storedVector = parseVector(row[input.vectorColumn]);
307
+ let score;
308
+ switch (input.metric) {
309
+ case "euclidean":
310
+ // Invert so lower distance = higher score
311
+ score = 1 / (1 + euclideanDistance(queryVector, storedVector));
312
+ break;
313
+ case "dot":
314
+ score = dotProduct(queryVector, storedVector);
315
+ break;
316
+ case "cosine":
317
+ default:
318
+ score = cosineSimilarity(queryVector, storedVector);
319
+ }
320
+ return { ...row, _similarity: Math.round(score * 10000) / 10000 };
321
+ }
322
+ catch {
323
+ return { ...row, _similarity: -1 };
324
+ }
325
+ })
326
+ .filter((r) => r._similarity >= 0);
327
+ // Sort by similarity (descending) and limit
328
+ scored.sort((a, b) => b._similarity - a._similarity);
329
+ const limited = scored.slice(0, input.limit);
330
+ // Apply returnColumns filtering (payload optimization)
331
+ // If returnColumns specified, only include those columns plus _similarity
332
+ const results = limited.map((row) => {
333
+ // Cast row for proper indexing since it's a spread of result row + _similarity
334
+ const rowData = row;
335
+ if (input.returnColumns && input.returnColumns.length > 0) {
336
+ // Build filtered result with only requested columns
337
+ const filtered = {};
338
+ for (const col of input.returnColumns) {
339
+ if (col in rowData) {
340
+ filtered[col] = rowData[col];
341
+ }
342
+ }
343
+ filtered["_similarity"] = row._similarity;
344
+ return filtered;
345
+ }
346
+ // No returnColumns specified: include all except vector column (for cleaner output)
347
+ if (!includeVectorInResults) {
348
+ return Object.fromEntries(Object.entries(rowData).filter(([key]) => key !== input.vectorColumn));
349
+ }
350
+ return row;
351
+ });
352
+ return {
353
+ success: true,
354
+ metric: input.metric,
355
+ count: results.length,
356
+ results,
357
+ };
358
+ },
359
+ };
360
+ }
361
+ /**
362
+ * Get a vector by ID
363
+ */
364
+ function createVectorGetTool(adapter) {
365
+ return {
366
+ name: "sqlite_vector_get",
367
+ description: "Retrieve a vector by its ID.",
368
+ group: "vector",
369
+ inputSchema: VectorGetSchema,
370
+ outputSchema: VectorGetOutputSchema,
371
+ requiredScopes: ["read"],
372
+ annotations: readOnly("Get Vector"),
373
+ handler: async (params, _context) => {
374
+ const input = VectorGetSchema.parse(params);
375
+ // Validate and quote identifiers
376
+ const table = sanitizeIdentifier(input.table);
377
+ const idColumn = sanitizeIdentifier(input.idColumn);
378
+ // Keep vectorColumn raw for JS object access, but validate
379
+ sanitizeIdentifier(input.vectorColumn);
380
+ const idValue = typeof input.id === "string" ? `'${input.id}'` : input.id;
381
+ const sql = `SELECT * FROM ${table} WHERE ${idColumn} = ${idValue}`;
382
+ const result = await adapter.executeReadQuery(sql);
383
+ if (!result.rows || result.rows.length === 0) {
384
+ return { success: false, error: "Vector not found" };
385
+ }
386
+ const row = result.rows[0];
387
+ if (!row) {
388
+ return { success: false, error: "Vector not found" };
389
+ }
390
+ const vectorData = parseVector(row[input.vectorColumn]);
391
+ return {
392
+ success: true,
393
+ id: input.id,
394
+ dimensions: vectorData.length,
395
+ vector: vectorData,
396
+ metadata: row,
397
+ };
398
+ },
399
+ };
400
+ }
401
+ /**
402
+ * Delete vectors by ID
403
+ */
404
+ function createVectorDeleteTool(adapter) {
405
+ return {
406
+ name: "sqlite_vector_delete",
407
+ description: "Delete vectors by their IDs.",
408
+ group: "vector",
409
+ inputSchema: VectorDeleteSchema,
410
+ outputSchema: VectorDeleteOutputSchema,
411
+ requiredScopes: ["write"],
412
+ annotations: destructive("Delete Vectors"),
413
+ handler: async (params, _context) => {
414
+ const input = VectorDeleteSchema.parse(params);
415
+ // Validate and quote identifiers
416
+ const table = sanitizeIdentifier(input.table);
417
+ const idColumn = sanitizeIdentifier(input.idColumn);
418
+ const idValues = input.ids
419
+ .map((id) => (typeof id === "string" ? `'${id}'` : String(id)))
420
+ .join(", ");
421
+ const sql = `DELETE FROM ${table} WHERE ${idColumn} IN (${idValues})`;
422
+ const result = await adapter.executeWriteQuery(sql);
423
+ return {
424
+ success: true,
425
+ deleted: result.rowsAffected,
426
+ };
427
+ },
428
+ };
429
+ }
430
+ /**
431
+ * Count vectors
432
+ */
433
+ function createVectorCountTool(adapter) {
434
+ return {
435
+ name: "sqlite_vector_count",
436
+ description: "Count vectors in a table.",
437
+ group: "vector",
438
+ inputSchema: VectorCountSchema,
439
+ outputSchema: VectorCountOutputSchema,
440
+ requiredScopes: ["read"],
441
+ annotations: readOnly("Count Vectors"),
442
+ handler: async (params, _context) => {
443
+ const input = VectorCountSchema.parse(params);
444
+ // Validate and quote table name
445
+ const table = sanitizeIdentifier(input.table);
446
+ const sql = `SELECT COUNT(*) as count FROM ${table}`;
447
+ const result = await adapter.executeReadQuery(sql);
448
+ return {
449
+ success: true,
450
+ count: result.rows?.[0]?.["count"] ?? 0,
451
+ };
452
+ },
453
+ };
454
+ }
455
+ /**
456
+ * Vector statistics
457
+ */
458
+ function createVectorStatsTool(adapter) {
459
+ return {
460
+ name: "sqlite_vector_stats",
461
+ description: "Get statistics about vectors in a table.",
462
+ group: "vector",
463
+ inputSchema: VectorStatsSchema,
464
+ outputSchema: VectorStatsOutputSchema,
465
+ requiredScopes: ["read"],
466
+ annotations: readOnly("Vector Stats"),
467
+ handler: async (params, _context) => {
468
+ const input = VectorStatsSchema.parse(params);
469
+ // Validate and quote identifiers
470
+ const table = sanitizeIdentifier(input.table);
471
+ const vectorColumn = sanitizeIdentifier(input.vectorColumn);
472
+ // Get sample of vectors
473
+ const sql = `SELECT ${vectorColumn} FROM ${table} LIMIT ${input.sampleSize}`;
474
+ const result = await adapter.executeReadQuery(sql);
475
+ const vectors = (result.rows ?? [])
476
+ .map((row) => {
477
+ try {
478
+ return parseVector(row[input.vectorColumn]);
479
+ }
480
+ catch {
481
+ return null;
482
+ }
483
+ })
484
+ .filter((v) => v !== null);
485
+ if (vectors.length === 0) {
486
+ return {
487
+ success: true,
488
+ count: 0,
489
+ message: "No valid vectors found",
490
+ };
491
+ }
492
+ const firstVector = vectors[0];
493
+ if (!firstVector) {
494
+ return {
495
+ success: true,
496
+ count: 0,
497
+ message: "No valid vectors found",
498
+ };
499
+ }
500
+ const dimensions = firstVector.length;
501
+ const magnitudes = vectors.map((v) => Math.sqrt(v.reduce((s, x) => s + x * x, 0)));
502
+ return {
503
+ success: true,
504
+ sampleSize: vectors.length,
505
+ dimensions,
506
+ magnitudeStats: {
507
+ min: Math.min(...magnitudes),
508
+ max: Math.max(...magnitudes),
509
+ avg: magnitudes.reduce((s, m) => s + m, 0) / magnitudes.length,
510
+ },
511
+ };
512
+ },
513
+ };
514
+ }
515
+ /**
516
+ * Get vector dimensions
517
+ */
518
+ function createVectorDimensionsTool(adapter) {
519
+ return {
520
+ name: "sqlite_vector_dimensions",
521
+ description: "Get the dimensions of vectors in a table.",
522
+ group: "vector",
523
+ inputSchema: VectorDimensionsSchema,
524
+ outputSchema: VectorDimensionsOutputSchema,
525
+ requiredScopes: ["read"],
526
+ annotations: readOnly("Vector Dimensions"),
527
+ handler: async (params, _context) => {
528
+ const input = VectorDimensionsSchema.parse(params);
529
+ // Validate and quote identifiers
530
+ const table = sanitizeIdentifier(input.table);
531
+ const vectorColumn = sanitizeIdentifier(input.vectorColumn);
532
+ const sql = `SELECT ${vectorColumn} FROM ${table} LIMIT 1`;
533
+ const result = await adapter.executeReadQuery(sql);
534
+ if (!result.rows || result.rows.length === 0) {
535
+ return { success: true, dimensions: null, message: "No vectors found" };
536
+ }
537
+ const firstRow = result.rows[0];
538
+ if (!firstRow) {
539
+ return { success: true, dimensions: null, message: "No vectors found" };
540
+ }
541
+ const vector = parseVector(firstRow[input.vectorColumn]);
542
+ return {
543
+ success: true,
544
+ dimensions: vector.length,
545
+ };
546
+ },
547
+ };
548
+ }
549
+ /**
550
+ * Normalize a vector
551
+ */
552
+ function createVectorNormalizeTool() {
553
+ return {
554
+ name: "sqlite_vector_normalize",
555
+ description: "Normalize a vector to unit length.",
556
+ group: "vector",
557
+ inputSchema: VectorNormalizeSchema,
558
+ outputSchema: VectorNormalizeOutputSchema,
559
+ requiredScopes: ["read"],
560
+ annotations: readOnly("Normalize Vector"),
561
+ handler: (params, _context) => {
562
+ const input = VectorNormalizeSchema.parse(params);
563
+ const normalized = normalizeVector(input.vector);
564
+ return Promise.resolve({
565
+ success: true,
566
+ original: input.vector,
567
+ normalized,
568
+ originalMagnitude: Math.sqrt(input.vector.reduce((s, x) => s + x * x, 0)),
569
+ });
570
+ },
571
+ };
572
+ }
573
+ /**
574
+ * Calculate distance between two vectors
575
+ */
576
+ function createVectorDistanceTool() {
577
+ return {
578
+ name: "sqlite_vector_distance",
579
+ description: "Calculate distance or similarity between two vectors.",
580
+ group: "vector",
581
+ inputSchema: VectorDistanceSchema,
582
+ outputSchema: VectorDistanceOutputSchema,
583
+ requiredScopes: ["read"],
584
+ annotations: readOnly("Vector Distance"),
585
+ handler: (params, _context) => {
586
+ const input = VectorDistanceSchema.parse(params);
587
+ if (input.vector1.length !== input.vector2.length) {
588
+ return Promise.resolve({
589
+ success: false,
590
+ error: "Vector dimensions must match",
591
+ });
592
+ }
593
+ let result;
594
+ switch (input.metric) {
595
+ case "euclidean":
596
+ result = euclideanDistance(input.vector1, input.vector2);
597
+ break;
598
+ case "dot":
599
+ result = dotProduct(input.vector1, input.vector2);
600
+ break;
601
+ case "cosine":
602
+ default:
603
+ result = cosineSimilarity(input.vector1, input.vector2);
604
+ }
605
+ return Promise.resolve({
606
+ success: true,
607
+ metric: input.metric,
608
+ value: Math.round(result * 10000) / 10000,
609
+ });
610
+ },
611
+ };
612
+ }
613
+ //# sourceMappingURL=vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/vector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SQLite Virtual Table Tools
3
+ *
4
+ * Create and manage virtual tables for CSV, R-Tree, generation, etc.
5
+ * 13 tools total.
6
+ */
7
+ import type { SqliteAdapter } from "../SqliteAdapter.js";
8
+ import type { ToolDefinition } from "../../../types/index.js";
9
+ /**
10
+ * Get all virtual table tools
11
+ */
12
+ export declare function getVirtualTools(adapter: SqliteAdapter): ToolDefinition[];
13
+ //# sourceMappingURL=virtual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/virtual.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAuI9E;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,EAAE,CAiBxE"}