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,30 @@
1
+ /**
2
+ * SQLite Tools Index
3
+ *
4
+ * Aggregates and exports all tool definitions from category modules.
5
+ */
6
+ import type { SqliteAdapter } from "../SqliteAdapter.js";
7
+ import type { ToolDefinition, ToolGroup } from "../../../types/index.js";
8
+ /**
9
+ * Get all tool definitions for the SQLite adapter
10
+ */
11
+ export declare function getAllToolDefinitions(adapter: SqliteAdapter): ToolDefinition[];
12
+ /**
13
+ * Get tools filtered by group
14
+ */
15
+ export declare function getToolsByGroup(adapter: SqliteAdapter, group: ToolGroup): ToolDefinition[];
16
+ /**
17
+ * Get tool count by group
18
+ */
19
+ export declare function getToolCountByGroup(adapter: SqliteAdapter): Record<ToolGroup, number>;
20
+ export { getCoreTools } from "./core.js";
21
+ export { getJsonHelperTools } from "./json-helpers.js";
22
+ export { getJsonOperationTools } from "./json-operations.js";
23
+ export { getTextTools } from "./text.js";
24
+ export { getFtsTools } from "./fts.js";
25
+ export { getStatsTools } from "./stats.js";
26
+ export { getVirtualTools } from "./virtual.js";
27
+ export { getVectorTools } from "./vector.js";
28
+ export { getGeoTools } from "./geo.js";
29
+ export { getAdminTools } from "./admin.js";
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAYzE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,GACrB,cAAc,EAAE,CAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,SAAS,GACf,cAAc,EAAE,CAElB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,GACrB,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAS3B;AAGD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * SQLite Tools Index
3
+ *
4
+ * Aggregates and exports all tool definitions from category modules.
5
+ */
6
+ import { getCoreTools } from "./core.js";
7
+ import { getJsonHelperTools } from "./json-helpers.js";
8
+ import { getJsonOperationTools } from "./json-operations.js";
9
+ import { getTextTools } from "./text.js";
10
+ import { getFtsTools } from "./fts.js";
11
+ import { getStatsTools } from "./stats.js";
12
+ import { getVirtualTools } from "./virtual.js";
13
+ import { getVectorTools } from "./vector.js";
14
+ import { getGeoTools } from "./geo.js";
15
+ import { getAdminTools } from "./admin.js";
16
+ /**
17
+ * Get all tool definitions for the SQLite adapter
18
+ */
19
+ export function getAllToolDefinitions(adapter) {
20
+ return [
21
+ ...getCoreTools(adapter),
22
+ ...getJsonHelperTools(adapter),
23
+ ...getJsonOperationTools(adapter),
24
+ ...getTextTools(adapter),
25
+ ...getFtsTools(adapter),
26
+ ...getStatsTools(adapter),
27
+ ...getVirtualTools(adapter),
28
+ ...getVectorTools(adapter),
29
+ ...getGeoTools(adapter),
30
+ ...getAdminTools(adapter),
31
+ ];
32
+ }
33
+ /**
34
+ * Get tools filtered by group
35
+ */
36
+ export function getToolsByGroup(adapter, group) {
37
+ return getAllToolDefinitions(adapter).filter((tool) => tool.group === group);
38
+ }
39
+ /**
40
+ * Get tool count by group
41
+ */
42
+ export function getToolCountByGroup(adapter) {
43
+ const tools = getAllToolDefinitions(adapter);
44
+ const counts = {};
45
+ for (const tool of tools) {
46
+ counts[tool.group] = (counts[tool.group] ?? 0) + 1;
47
+ }
48
+ return counts;
49
+ }
50
+ // Re-export individual tool modules
51
+ export { getCoreTools } from "./core.js";
52
+ export { getJsonHelperTools } from "./json-helpers.js";
53
+ export { getJsonOperationTools } from "./json-operations.js";
54
+ export { getTextTools } from "./text.js";
55
+ export { getFtsTools } from "./fts.js";
56
+ export { getStatsTools } from "./stats.js";
57
+ export { getVirtualTools } from "./virtual.js";
58
+ export { getVectorTools } from "./vector.js";
59
+ export { getGeoTools } from "./geo.js";
60
+ export { getAdminTools } from "./admin.js";
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAsB;IAEtB,OAAO;QACL,GAAG,YAAY,CAAC,OAAO,CAAC;QACxB,GAAG,kBAAkB,CAAC,OAAO,CAAC;QAC9B,GAAG,qBAAqB,CAAC,OAAO,CAAC;QACjC,GAAG,YAAY,CAAC,OAAO,CAAC;QACxB,GAAG,WAAW,CAAC,OAAO,CAAC;QACvB,GAAG,aAAa,CAAC,OAAO,CAAC;QACzB,GAAG,eAAe,CAAC,OAAO,CAAC;QAC3B,GAAG,cAAc,CAAC,OAAO,CAAC;QAC1B,GAAG,WAAW,CAAC,OAAO,CAAC;QACvB,GAAG,aAAa,CAAC,OAAO,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAsB,EACtB,KAAgB;IAEhB,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAsB;IAEtB,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAuC,EAAE,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,MAAmC,CAAC;AAC7C,CAAC;AAED,oCAAoC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SQLite JSON Helper Tools
3
+ *
4
+ * High-level JSON operations for common patterns:
5
+ * insert, update, select, query, validate path, merge, analyze schema, create collection.
6
+ * 8 tools total.
7
+ */
8
+ import type { SqliteAdapter } from "../SqliteAdapter.js";
9
+ import type { ToolDefinition } from "../../../types/index.js";
10
+ /**
11
+ * Get all JSON helper tools
12
+ */
13
+ export declare function getJsonHelperTools(adapter: SqliteAdapter): ToolDefinition[];
14
+ //# sourceMappingURL=json-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-helpers.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/json-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAgF9E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,EAAE,CAW3E"}
@@ -0,0 +1,477 @@
1
+ /**
2
+ * SQLite JSON Helper Tools
3
+ *
4
+ * High-level JSON operations for common patterns:
5
+ * insert, update, select, query, validate path, merge, analyze schema, create collection.
6
+ * 8 tools total.
7
+ */
8
+ import { readOnly, write } from "../../../utils/annotations.js";
9
+ import { sanitizeIdentifier } from "../../../utils/index.js";
10
+ import { JsonInsertSchema, JsonUpdateSchema, JsonSelectSchema, JsonQuerySchema, JsonValidatePathSchema, JsonMergeSchema, AnalyzeJsonSchemaSchema, CreateJsonCollectionSchema, } from "../types.js";
11
+ import { JsonInsertOutputSchema, JsonUpdateOutputSchema, JsonSelectOutputSchema, JsonQueryOutputSchema, JsonValidatePathOutputSchema, JsonMergeOutputSchema, AnalyzeJsonSchemaOutputSchema, CreateJsonCollectionOutputSchema, } from "../output-schemas.js";
12
+ import { normalizeJson } from "../json-utils.js";
13
+ /**
14
+ * Extract a meaningful column name from a JSONPath expression.
15
+ * Examples:
16
+ * $.name -> name
17
+ * $.user.email -> email
18
+ * $[0] -> item_0
19
+ * $[*].name -> name
20
+ * $.items[0].price -> price
21
+ */
22
+ function extractColumnNameFromPath(path) {
23
+ // Remove leading $
24
+ const remaining = path.slice(1);
25
+ // Find the last meaningful segment
26
+ // Match either .key or [index]
27
+ const segments = [];
28
+ const regex = /\.([a-zA-Z_][a-zA-Z0-9_]*)|\[(\d+|\*)\]/g;
29
+ let match;
30
+ while ((match = regex.exec(remaining)) !== null) {
31
+ if (match[1]) {
32
+ // Property access: .name
33
+ segments.push(match[1]);
34
+ }
35
+ else if (match[2]) {
36
+ // Array index or wildcard: [0] or [*]
37
+ segments.push(match[2] === "*" ? "items" : `item_${match[2]}`);
38
+ }
39
+ }
40
+ // Return the last segment, or fallback to "value"
41
+ const lastSegment = segments[segments.length - 1];
42
+ return lastSegment ?? "value";
43
+ }
44
+ /**
45
+ * Given an array of JSONPath expressions, return unique column names.
46
+ * Duplicates get numeric suffixes (e.g., name, name_2, name_3).
47
+ */
48
+ function getUniqueColumnNames(paths) {
49
+ const names = [];
50
+ const counts = {};
51
+ for (const path of paths) {
52
+ const baseName = extractColumnNameFromPath(path);
53
+ if ((counts[baseName] ?? 0) === 0) {
54
+ counts[baseName] = 1;
55
+ names.push(baseName);
56
+ }
57
+ else {
58
+ counts[baseName] = (counts[baseName] ?? 0) + 1;
59
+ names.push(`${baseName}_${counts[baseName]}`);
60
+ }
61
+ }
62
+ return names;
63
+ }
64
+ /**
65
+ * Get all JSON helper tools
66
+ */
67
+ export function getJsonHelperTools(adapter) {
68
+ return [
69
+ createJsonInsertTool(adapter),
70
+ createJsonUpdateTool(adapter),
71
+ createJsonSelectTool(adapter),
72
+ createJsonQueryTool(adapter),
73
+ createJsonValidatePathTool(),
74
+ createJsonMergeTool(adapter),
75
+ createAnalyzeJsonSchemaTool(adapter),
76
+ createJsonCollectionTool(adapter),
77
+ ];
78
+ }
79
+ /**
80
+ * Insert JSON data with auto-normalization
81
+ */
82
+ function createJsonInsertTool(adapter) {
83
+ return {
84
+ name: "sqlite_json_insert",
85
+ description: "Insert a row with JSON data. Automatically normalizes JSON for consistent storage.",
86
+ group: "json",
87
+ inputSchema: JsonInsertSchema,
88
+ outputSchema: JsonInsertOutputSchema,
89
+ requiredScopes: ["write"],
90
+ annotations: write("JSON Insert"),
91
+ handler: async (params, _context) => {
92
+ const input = JsonInsertSchema.parse(params);
93
+ // Normalize JSON data for consistent storage
94
+ const rawJson = typeof input.data === "string"
95
+ ? input.data
96
+ : JSON.stringify(input.data);
97
+ const { normalized: jsonStr } = normalizeJson(rawJson);
98
+ // Build column list
99
+ const columns = [input.column];
100
+ const placeholders = ["?"];
101
+ const values = [jsonStr];
102
+ if (input.additionalColumns) {
103
+ for (const [col, val] of Object.entries(input.additionalColumns)) {
104
+ // Validate column name
105
+ sanitizeIdentifier(col);
106
+ columns.push(col);
107
+ placeholders.push("?");
108
+ values.push(typeof val === "object" ? JSON.stringify(val) : val);
109
+ }
110
+ }
111
+ // Validate table name
112
+ sanitizeIdentifier(input.table);
113
+ const sql = `INSERT INTO "${input.table}" (${columns.map((c) => `"${c}"`).join(", ")}) VALUES (${placeholders.join(", ")})`;
114
+ const result = await adapter.executeWriteQuery(sql, values);
115
+ return {
116
+ success: true,
117
+ message: `Inserted row into ${input.table}`,
118
+ rowsAffected: result.rowsAffected,
119
+ };
120
+ },
121
+ };
122
+ }
123
+ /**
124
+ * Update JSON value at a specific path
125
+ */
126
+ function createJsonUpdateTool(adapter) {
127
+ return {
128
+ name: "sqlite_json_update",
129
+ description: "Update a value at a specific JSON path using json_set().",
130
+ group: "json",
131
+ inputSchema: JsonUpdateSchema,
132
+ outputSchema: JsonUpdateOutputSchema,
133
+ requiredScopes: ["write"],
134
+ annotations: write("JSON Update"),
135
+ handler: async (params, _context) => {
136
+ const input = JsonUpdateSchema.parse(params);
137
+ // Validate table and column names
138
+ sanitizeIdentifier(input.table);
139
+ sanitizeIdentifier(input.column);
140
+ // Validate JSON path format
141
+ if (!input.path.startsWith("$")) {
142
+ throw new Error("JSON path must start with $");
143
+ }
144
+ // String values must be JSON-stringified to produce valid JSON
145
+ // e.g., "New Title" -> '"New Title"' (with JSON quotes inside SQL quotes)
146
+ const valueStr = typeof input.value === "string"
147
+ ? `'${JSON.stringify(input.value).replace(/'/g, "''")}'`
148
+ : JSON.stringify(input.value);
149
+ const sql = `UPDATE "${input.table}" SET "${input.column}" = json_set("${input.column}", '${input.path}', json(${valueStr})) WHERE ${input.whereClause}`;
150
+ const result = await adapter.executeWriteQuery(sql);
151
+ return {
152
+ success: true,
153
+ message: `Updated ${input.path} in ${input.table}.${input.column}`,
154
+ rowsAffected: result.rowsAffected,
155
+ };
156
+ },
157
+ };
158
+ }
159
+ /**
160
+ * Select and extract JSON data
161
+ */
162
+ function createJsonSelectTool(adapter) {
163
+ return {
164
+ name: "sqlite_json_select",
165
+ description: "Select rows and optionally extract specific JSON paths.",
166
+ group: "json",
167
+ inputSchema: JsonSelectSchema,
168
+ outputSchema: JsonSelectOutputSchema,
169
+ requiredScopes: ["read"],
170
+ annotations: readOnly("JSON Select"),
171
+ handler: async (params, _context) => {
172
+ const input = JsonSelectSchema.parse(params);
173
+ // Validate names
174
+ sanitizeIdentifier(input.table);
175
+ sanitizeIdentifier(input.column);
176
+ let selectClause;
177
+ if (input.paths && input.paths.length > 0) {
178
+ // Extract specific paths with meaningful column names
179
+ const columnNames = getUniqueColumnNames(input.paths);
180
+ const extracts = input.paths.map((path, i) => {
181
+ if (!path.startsWith("$")) {
182
+ throw new Error(`JSON path must start with $: ${path}`);
183
+ }
184
+ return `json_extract("${input.column}", '${path}') as "${columnNames[i]}"`;
185
+ });
186
+ selectClause = extracts.join(", ");
187
+ }
188
+ else {
189
+ // Wrap with json() to ensure JSONB binary data is returned as readable text
190
+ // This handles both text JSON (no-op) and JSONB (converts to text)
191
+ selectClause = `json("${input.column}") as "${input.column}"`;
192
+ }
193
+ let sql = `SELECT ${selectClause} FROM "${input.table}"`;
194
+ if (input.whereClause) {
195
+ sql += ` WHERE ${input.whereClause}`;
196
+ }
197
+ const result = await adapter.executeReadQuery(sql);
198
+ return {
199
+ success: true,
200
+ rowCount: result.rows?.length ?? 0,
201
+ rows: result.rows,
202
+ };
203
+ },
204
+ };
205
+ }
206
+ /**
207
+ * Query JSON with path-based filtering
208
+ */
209
+ function createJsonQueryTool(adapter) {
210
+ return {
211
+ name: "sqlite_json_query",
212
+ description: "Query JSON data with path-based filters and projections.",
213
+ group: "json",
214
+ inputSchema: JsonQuerySchema,
215
+ outputSchema: JsonQueryOutputSchema,
216
+ requiredScopes: ["read"],
217
+ annotations: readOnly("JSON Query"),
218
+ handler: async (params, _context) => {
219
+ const input = JsonQuerySchema.parse(params);
220
+ // Validate names
221
+ sanitizeIdentifier(input.table);
222
+ sanitizeIdentifier(input.column);
223
+ // Build select clause with meaningful column names
224
+ let selectClause;
225
+ if (input.selectPaths && input.selectPaths.length > 0) {
226
+ const columnNames = getUniqueColumnNames(input.selectPaths);
227
+ const extracts = input.selectPaths.map((path, i) => {
228
+ if (!path.startsWith("$")) {
229
+ throw new Error(`JSON path must start with $: ${path}`);
230
+ }
231
+ return `json_extract("${input.column}", '${path}') as "${columnNames[i]}"`;
232
+ });
233
+ selectClause = extracts.join(", ");
234
+ }
235
+ else {
236
+ selectClause = `"${input.column}"`;
237
+ }
238
+ // Build where clause from filters
239
+ const conditions = [];
240
+ if (input.filterPaths) {
241
+ for (const [path, value] of Object.entries(input.filterPaths)) {
242
+ if (!path.startsWith("$")) {
243
+ throw new Error(`JSON path must start with $: ${path}`);
244
+ }
245
+ const valueStr = typeof value === "string"
246
+ ? `'${value.replace(/'/g, "''")}'`
247
+ : JSON.stringify(value);
248
+ conditions.push(`json_extract("${input.column}", '${path}') = ${valueStr}`);
249
+ }
250
+ }
251
+ let sql = `SELECT ${selectClause} FROM "${input.table}"`;
252
+ if (conditions.length > 0) {
253
+ sql += ` WHERE ${conditions.join(" AND ")}`;
254
+ }
255
+ sql += ` LIMIT ${input.limit ?? 100}`;
256
+ const result = await adapter.executeReadQuery(sql);
257
+ return {
258
+ success: true,
259
+ rowCount: result.rows?.length ?? 0,
260
+ rows: result.rows,
261
+ };
262
+ },
263
+ };
264
+ }
265
+ /**
266
+ * Validate a JSON path syntax
267
+ */
268
+ function createJsonValidatePathTool() {
269
+ return {
270
+ name: "sqlite_json_validate_path",
271
+ description: "Validate a JSON path syntax without executing a query.",
272
+ group: "json",
273
+ inputSchema: JsonValidatePathSchema,
274
+ outputSchema: JsonValidatePathOutputSchema,
275
+ requiredScopes: ["read"],
276
+ annotations: readOnly("Validate JSON Path"),
277
+ handler: (params, _context) => {
278
+ const input = JsonValidatePathSchema.parse(params);
279
+ const path = input.path;
280
+ const issues = [];
281
+ // Basic validation rules
282
+ if (!path.startsWith("$")) {
283
+ issues.push("Path must start with $");
284
+ }
285
+ // Check for valid path syntax
286
+ const validPattern = /^\$(\.[a-zA-Z_][a-zA-Z0-9_]*|\[\d+\]|\[\*\])*$/;
287
+ if (!validPattern.test(path)) {
288
+ issues.push("Invalid path syntax. Use $.key, $[0], or $[*] patterns");
289
+ }
290
+ return Promise.resolve({
291
+ success: issues.length === 0,
292
+ path,
293
+ valid: issues.length === 0,
294
+ issues: issues.length > 0 ? issues : undefined,
295
+ });
296
+ },
297
+ };
298
+ }
299
+ /**
300
+ * Merge JSON objects
301
+ */
302
+ function createJsonMergeTool(adapter) {
303
+ return {
304
+ name: "sqlite_json_merge",
305
+ description: "Merge JSON object into existing JSON column using json_patch().",
306
+ group: "json",
307
+ inputSchema: JsonMergeSchema,
308
+ outputSchema: JsonMergeOutputSchema,
309
+ requiredScopes: ["write"],
310
+ annotations: write("JSON Merge"),
311
+ handler: async (params, _context) => {
312
+ const input = JsonMergeSchema.parse(params);
313
+ // Validate names
314
+ sanitizeIdentifier(input.table);
315
+ sanitizeIdentifier(input.column);
316
+ const mergeJson = JSON.stringify(input.mergeData);
317
+ // Use json_patch for merging (shallow merge)
318
+ const sql = `UPDATE "${input.table}" SET "${input.column}" = json_patch("${input.column}", '${mergeJson.replace(/'/g, "''")}') WHERE ${input.whereClause}`;
319
+ const result = await adapter.executeWriteQuery(sql);
320
+ return {
321
+ success: true,
322
+ message: `Merged JSON into ${input.table}.${input.column}`,
323
+ rowsAffected: result.rowsAffected,
324
+ };
325
+ },
326
+ };
327
+ }
328
+ /**
329
+ * Analyze JSON schema from column data
330
+ */
331
+ function createAnalyzeJsonSchemaTool(adapter) {
332
+ return {
333
+ name: "sqlite_json_analyze_schema",
334
+ description: "Analyze JSON data in a column to infer its schema (types, nullability, counts).",
335
+ group: "json",
336
+ inputSchema: AnalyzeJsonSchemaSchema,
337
+ outputSchema: AnalyzeJsonSchemaOutputSchema,
338
+ requiredScopes: ["read"],
339
+ annotations: readOnly("Analyze JSON Schema"),
340
+ handler: async (params, _context) => {
341
+ const input = AnalyzeJsonSchemaSchema.parse(params);
342
+ // Validate names
343
+ sanitizeIdentifier(input.table);
344
+ sanitizeIdentifier(input.column);
345
+ // Sample rows - wrap column with json() to handle both text JSON and JSONB binary data
346
+ const sql = `SELECT json("${input.column}") as json_data FROM "${input.table}" LIMIT ${input.sampleSize}`;
347
+ const result = await adapter.executeReadQuery(sql);
348
+ // Infer schema
349
+ const properties = {};
350
+ let nullCount = 0;
351
+ let errorCount = 0;
352
+ for (const row of result.rows ?? []) {
353
+ const jsonData = row["json_data"];
354
+ if (jsonData === null || jsonData === undefined) {
355
+ nullCount++;
356
+ continue;
357
+ }
358
+ try {
359
+ const parsed = typeof jsonData === "string" ? JSON.parse(jsonData) : jsonData;
360
+ if (typeof parsed === "object" &&
361
+ parsed !== null &&
362
+ !Array.isArray(parsed)) {
363
+ for (const [key, value] of Object.entries(parsed)) {
364
+ properties[key] ??= {
365
+ type: "unknown",
366
+ nullable: false,
367
+ count: 0,
368
+ };
369
+ properties[key].count++;
370
+ // Determine type
371
+ let valueType;
372
+ if (value === null) {
373
+ valueType = "null";
374
+ properties[key].nullable = true;
375
+ }
376
+ else if (Array.isArray(value)) {
377
+ valueType = "array";
378
+ if (value.length > 0) {
379
+ properties[key].itemType = typeof value[0];
380
+ }
381
+ }
382
+ else {
383
+ valueType = typeof value;
384
+ }
385
+ // Set or merge type
386
+ if (properties[key].type === "unknown") {
387
+ properties[key].type = valueType;
388
+ }
389
+ else if (properties[key].type !== valueType &&
390
+ valueType !== "null") {
391
+ properties[key].type = "mixed";
392
+ }
393
+ }
394
+ }
395
+ }
396
+ catch {
397
+ errorCount++;
398
+ }
399
+ }
400
+ const sampleSize = result.rows?.length ?? 0;
401
+ // Mark missing properties as nullable
402
+ for (const prop of Object.values(properties)) {
403
+ if (prop.count < sampleSize - nullCount - errorCount) {
404
+ prop.nullable = true;
405
+ }
406
+ }
407
+ return {
408
+ success: true,
409
+ schema: {
410
+ type: "object",
411
+ properties,
412
+ sampleSize,
413
+ nullCount,
414
+ errorCount,
415
+ },
416
+ };
417
+ },
418
+ };
419
+ }
420
+ /**
421
+ * Create a JSON document collection table
422
+ */
423
+ function createJsonCollectionTool(adapter) {
424
+ return {
425
+ name: "sqlite_create_json_collection",
426
+ description: "Create an optimized JSON document collection table with ID, data column, optional timestamps, and JSON path indexes.",
427
+ group: "json",
428
+ inputSchema: CreateJsonCollectionSchema,
429
+ outputSchema: CreateJsonCollectionOutputSchema,
430
+ requiredScopes: ["write"],
431
+ annotations: write("Create JSON Collection"),
432
+ handler: async (params, _context) => {
433
+ const input = CreateJsonCollectionSchema.parse(params);
434
+ // Validate table name
435
+ sanitizeIdentifier(input.tableName);
436
+ const idCol = input.idColumn ?? "id";
437
+ const dataCol = input.dataColumn ?? "data";
438
+ const sqls = [];
439
+ // Build CREATE TABLE
440
+ const columns = [
441
+ `"${idCol}" TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(16))))`,
442
+ // Use json_type() IS NOT NULL instead of json_valid() to support both text JSON and JSONB
443
+ `"${dataCol}" TEXT NOT NULL CHECK(json_type("${dataCol}") IS NOT NULL)`,
444
+ ];
445
+ if (input.timestamps) {
446
+ columns.push(`created_at TEXT DEFAULT (datetime('now'))`);
447
+ columns.push(`updated_at TEXT DEFAULT (datetime('now'))`);
448
+ }
449
+ const createSql = `CREATE TABLE IF NOT EXISTS "${input.tableName}" (\n ${columns.join(",\n ")}\n)`;
450
+ sqls.push(createSql);
451
+ // Execute CREATE TABLE
452
+ await adapter.executeWriteQuery(createSql);
453
+ // Create indexes
454
+ let indexCount = 0;
455
+ if (input.indexes) {
456
+ for (const idx of input.indexes) {
457
+ if (!idx.path.startsWith("$")) {
458
+ throw new Error(`JSON path must start with $: ${idx.path}`);
459
+ }
460
+ const indexName = idx.name ??
461
+ `idx_${input.tableName}_${idx.path.replace(/[$.[\]]/g, "_")}`;
462
+ const indexSql = `CREATE INDEX IF NOT EXISTS "${indexName}" ON "${input.tableName}"(json_extract("${dataCol}", '${idx.path}'))`;
463
+ sqls.push(indexSql);
464
+ await adapter.executeWriteQuery(indexSql);
465
+ indexCount++;
466
+ }
467
+ }
468
+ return {
469
+ success: true,
470
+ message: `Created collection '${input.tableName}'${indexCount > 0 ? ` with ${indexCount} index(es)` : ""}`,
471
+ sql: sqls,
472
+ indexCount,
473
+ };
474
+ },
475
+ };
476
+ }
477
+ //# sourceMappingURL=json-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-helpers.js","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/json-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SQLite JSON Operation Tools
3
+ *
4
+ * Low-level JSON functions wrapping SQLite's JSON1 extension:
5
+ * validate, extract, set, remove, type, array/object operations, etc.
6
+ * 12 tools total.
7
+ */
8
+ import type { SqliteAdapter } from "../SqliteAdapter.js";
9
+ import type { ToolDefinition } from "../../../types/index.js";
10
+ /**
11
+ * Get all JSON operation tools
12
+ */
13
+ export declare function getJsonOperationTools(adapter: SqliteAdapter): ToolDefinition[];
14
+ //# sourceMappingURL=json-operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-operations.d.ts","sourceRoot":"","sources":["../../../../src/adapters/sqlite/tools/json-operations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAkI9E;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,GACrB,cAAc,EAAE,CAmBlB"}