db-mcp 2.0.0 → 3.0.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 (553) hide show
  1. package/README.md +96 -91
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/adapters/database-adapter.d.ts +173 -0
  4. package/dist/adapters/database-adapter.d.ts.map +1 -0
  5. package/dist/adapters/query-validation.d.ts +20 -0
  6. package/dist/adapters/query-validation.d.ts.map +1 -0
  7. package/dist/adapters/registration/index.d.ts +4 -0
  8. package/dist/adapters/registration/index.d.ts.map +1 -0
  9. package/dist/adapters/registration/prompts.d.ts +7 -0
  10. package/dist/adapters/registration/prompts.d.ts.map +1 -0
  11. package/dist/adapters/registration/resources.d.ts +7 -0
  12. package/dist/adapters/registration/resources.d.ts.map +1 -0
  13. package/dist/adapters/registration/tools.d.ts +9 -0
  14. package/dist/adapters/registration/tools.d.ts.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/json-utils.d.ts +100 -0
  18. package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
  19. package/dist/adapters/sqlite/prompts/analysis.d.ts +23 -0
  20. package/dist/adapters/sqlite/prompts/analysis.d.ts.map +1 -0
  21. package/dist/adapters/sqlite/prompts/index.d.ts +16 -0
  22. package/dist/adapters/sqlite/prompts/index.d.ts.map +1 -0
  23. package/dist/adapters/sqlite/prompts/query.d.ts +19 -0
  24. package/dist/adapters/sqlite/prompts/query.d.ts.map +1 -0
  25. package/dist/adapters/sqlite/prompts/schema.d.ts +20 -0
  26. package/dist/adapters/sqlite/prompts/schema.d.ts.map +1 -0
  27. package/dist/adapters/sqlite/query-executor.d.ts +38 -0
  28. package/dist/adapters/sqlite/query-executor.d.ts.map +1 -0
  29. package/dist/adapters/sqlite/resources.d.ts +13 -0
  30. package/dist/adapters/sqlite/resources.d.ts.map +1 -0
  31. package/dist/adapters/sqlite/schema-manager.d.ts +69 -0
  32. package/dist/adapters/sqlite/schema-manager.d.ts.map +1 -0
  33. package/dist/adapters/sqlite/schemas/admin.d.ts +459 -0
  34. package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -0
  35. package/dist/adapters/sqlite/schemas/codemode.d.ts +30 -0
  36. package/dist/adapters/sqlite/schemas/codemode.d.ts.map +1 -0
  37. package/dist/adapters/sqlite/schemas/common.d.ts +9 -0
  38. package/dist/adapters/sqlite/schemas/common.d.ts.map +1 -0
  39. package/dist/adapters/sqlite/schemas/core.d.ts +530 -0
  40. package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -0
  41. package/dist/adapters/sqlite/schemas/error-mixin.d.ts +10 -0
  42. package/dist/adapters/sqlite/schemas/error-mixin.d.ts.map +1 -0
  43. package/dist/adapters/sqlite/schemas/fts.d.ts +106 -0
  44. package/dist/adapters/sqlite/schemas/fts.d.ts.map +1 -0
  45. package/dist/adapters/sqlite/schemas/geo.d.ts +135 -0
  46. package/dist/adapters/sqlite/schemas/geo.d.ts.map +1 -0
  47. package/dist/adapters/sqlite/schemas/index.d.ts +23 -0
  48. package/dist/adapters/sqlite/schemas/index.d.ts.map +1 -0
  49. package/dist/adapters/sqlite/schemas/introspection.d.ts +583 -0
  50. package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -0
  51. package/dist/adapters/sqlite/schemas/json.d.ts +849 -0
  52. package/dist/adapters/sqlite/schemas/json.d.ts.map +1 -0
  53. package/dist/adapters/sqlite/schemas/migration.d.ts +220 -0
  54. package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -0
  55. package/dist/adapters/sqlite/schemas/native.d.ts +235 -0
  56. package/dist/adapters/sqlite/schemas/native.d.ts.map +1 -0
  57. package/dist/adapters/sqlite/schemas/server.d.ts +13 -0
  58. package/dist/adapters/sqlite/schemas/server.d.ts.map +1 -0
  59. package/dist/adapters/sqlite/schemas/spatialite.d.ts +114 -0
  60. package/dist/adapters/sqlite/schemas/spatialite.d.ts.map +1 -0
  61. package/dist/adapters/sqlite/schemas/stats.d.ts +780 -0
  62. package/dist/adapters/sqlite/schemas/stats.d.ts.map +1 -0
  63. package/dist/adapters/sqlite/schemas/text.d.ts +570 -0
  64. package/dist/adapters/sqlite/schemas/text.d.ts.map +1 -0
  65. package/dist/adapters/sqlite/schemas/vector.d.ts +252 -0
  66. package/dist/adapters/sqlite/schemas/vector.d.ts.map +1 -0
  67. package/dist/adapters/sqlite/schemas/virtual.d.ts +257 -0
  68. package/dist/adapters/sqlite/schemas/virtual.d.ts.map +1 -0
  69. package/dist/adapters/sqlite/schemas/where.d.ts +20 -0
  70. package/dist/adapters/sqlite/schemas/where.d.ts.map +1 -0
  71. package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts +13 -0
  72. package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts.map +1 -0
  73. package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts +7 -0
  74. package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts.map +1 -0
  75. package/dist/adapters/sqlite/sqlite-adapter.d.ts +138 -0
  76. package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -0
  77. package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts +7 -0
  78. package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts.map +1 -0
  79. package/dist/adapters/sqlite/tools/admin/backup/create.d.ts +11 -0
  80. package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -0
  81. package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts +7 -0
  82. package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -0
  83. package/dist/adapters/sqlite/tools/admin/backup/index.d.ts +7 -0
  84. package/dist/adapters/sqlite/tools/admin/backup/index.d.ts.map +1 -0
  85. package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts +7 -0
  86. package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts.map +1 -0
  87. package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts +7 -0
  88. package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts.map +1 -0
  89. package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts +7 -0
  90. package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -0
  91. package/dist/adapters/sqlite/tools/admin/helpers.d.ts +18 -0
  92. package/dist/adapters/sqlite/tools/admin/helpers.d.ts.map +1 -0
  93. package/dist/adapters/sqlite/tools/admin/index.d.ts +10 -0
  94. package/dist/adapters/sqlite/tools/admin/index.d.ts.map +1 -0
  95. package/dist/adapters/sqlite/tools/admin/pragma.d.ts +37 -0
  96. package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -0
  97. package/dist/adapters/sqlite/tools/admin/reindex.d.ts +10 -0
  98. package/dist/adapters/sqlite/tools/admin/reindex.d.ts.map +1 -0
  99. package/dist/adapters/sqlite/tools/admin/verify.d.ts +13 -0
  100. package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -0
  101. package/dist/adapters/sqlite/tools/admin/wal.d.ts +10 -0
  102. package/dist/adapters/sqlite/tools/admin/wal.d.ts.map +1 -0
  103. package/dist/adapters/sqlite/tools/codemode.d.ts +22 -0
  104. package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -0
  105. package/dist/adapters/sqlite/tools/column-validation.d.ts +26 -0
  106. package/dist/adapters/sqlite/tools/column-validation.d.ts.map +1 -0
  107. package/dist/adapters/sqlite/tools/core/alter-table.d.ts +11 -0
  108. package/dist/adapters/sqlite/tools/core/alter-table.d.ts.map +1 -0
  109. package/dist/adapters/sqlite/tools/core/constraints.d.ts +10 -0
  110. package/dist/adapters/sqlite/tools/core/constraints.d.ts.map +1 -0
  111. package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts +20 -0
  112. package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts.map +1 -0
  113. package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts +20 -0
  114. package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts.map +1 -0
  115. package/dist/adapters/sqlite/tools/core/convenience.d.ts +29 -0
  116. package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -0
  117. package/dist/adapters/sqlite/tools/core/datetime.d.ts +11 -0
  118. package/dist/adapters/sqlite/tools/core/datetime.d.ts.map +1 -0
  119. package/dist/adapters/sqlite/tools/core/index.d.ts +14 -0
  120. package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -0
  121. package/dist/adapters/sqlite/tools/core/indexes.d.ts +20 -0
  122. package/dist/adapters/sqlite/tools/core/indexes.d.ts.map +1 -0
  123. package/dist/adapters/sqlite/tools/core/queries.d.ts +16 -0
  124. package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -0
  125. package/dist/adapters/sqlite/tools/core/tables.d.ts +37 -0
  126. package/dist/adapters/sqlite/tools/core/tables.d.ts.map +1 -0
  127. package/dist/adapters/sqlite/tools/core/triggers.d.ts +18 -0
  128. package/dist/adapters/sqlite/tools/core/triggers.d.ts.map +1 -0
  129. package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
  130. package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
  131. package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
  132. package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
  133. package/dist/adapters/sqlite/tools/index.d.ts +33 -0
  134. package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
  135. package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts +10 -0
  136. package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts.map +1 -0
  137. package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts +11 -0
  138. package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts.map +1 -0
  139. package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts +10 -0
  140. package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts.map +1 -0
  141. package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts +9 -0
  142. package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts.map +1 -0
  143. package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts +40 -0
  144. package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts.map +1 -0
  145. package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts +9 -0
  146. package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts.map +1 -0
  147. package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts +10 -0
  148. package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts.map +1 -0
  149. package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts +10 -0
  150. package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts.map +1 -0
  151. package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts +10 -0
  152. package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts.map +1 -0
  153. package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts +44 -0
  154. package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts.map +1 -0
  155. package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts +9 -0
  156. package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts.map +1 -0
  157. package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts +12 -0
  158. package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -0
  159. package/dist/adapters/sqlite/tools/introspection/index.d.ts +17 -0
  160. package/dist/adapters/sqlite/tools/introspection/index.d.ts.map +1 -0
  161. package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts +21 -0
  162. package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts.map +1 -0
  163. package/dist/adapters/sqlite/tools/json-helpers/index.d.ts +17 -0
  164. package/dist/adapters/sqlite/tools/json-helpers/index.d.ts.map +1 -0
  165. package/dist/adapters/sqlite/tools/json-helpers/read.d.ts +24 -0
  166. package/dist/adapters/sqlite/tools/json-helpers/read.d.ts.map +1 -0
  167. package/dist/adapters/sqlite/tools/json-helpers/write.d.ts +24 -0
  168. package/dist/adapters/sqlite/tools/json-helpers/write.d.ts.map +1 -0
  169. package/dist/adapters/sqlite/tools/json-operations/crud.d.ts +39 -0
  170. package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -0
  171. package/dist/adapters/sqlite/tools/json-operations/diff.d.ts +11 -0
  172. package/dist/adapters/sqlite/tools/json-operations/diff.d.ts.map +1 -0
  173. package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts +18 -0
  174. package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts.map +1 -0
  175. package/dist/adapters/sqlite/tools/json-operations/index.d.ts +10 -0
  176. package/dist/adapters/sqlite/tools/json-operations/index.d.ts.map +1 -0
  177. package/dist/adapters/sqlite/tools/json-operations/query.d.ts +24 -0
  178. package/dist/adapters/sqlite/tools/json-operations/query.d.ts.map +1 -0
  179. package/dist/adapters/sqlite/tools/json-operations/security.d.ts +19 -0
  180. package/dist/adapters/sqlite/tools/json-operations/security.d.ts.map +1 -0
  181. package/dist/adapters/sqlite/tools/json-operations/transform.d.ts +24 -0
  182. package/dist/adapters/sqlite/tools/json-operations/transform.d.ts.map +1 -0
  183. package/dist/adapters/sqlite/tools/migration/helpers.d.ts +34 -0
  184. package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -0
  185. package/dist/adapters/sqlite/tools/migration/index.d.ts +15 -0
  186. package/dist/adapters/sqlite/tools/migration/index.d.ts.map +1 -0
  187. package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts +4 -0
  188. package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts.map +1 -0
  189. package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts +4 -0
  190. package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts.map +1 -0
  191. package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts +7 -0
  192. package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts.map +1 -0
  193. package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts +4 -0
  194. package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts.map +1 -0
  195. package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts +4 -0
  196. package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts.map +1 -0
  197. package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts +4 -0
  198. package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts.map +1 -0
  199. package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts +4 -0
  200. package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts.map +1 -0
  201. package/dist/adapters/sqlite/tools/stats/advanced.d.ts +28 -0
  202. package/dist/adapters/sqlite/tools/stats/advanced.d.ts.map +1 -0
  203. package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts +22 -0
  204. package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts.map +1 -0
  205. package/dist/adapters/sqlite/tools/stats/basic.d.ts +32 -0
  206. package/dist/adapters/sqlite/tools/stats/basic.d.ts.map +1 -0
  207. package/dist/adapters/sqlite/tools/stats/helpers.d.ts +27 -0
  208. package/dist/adapters/sqlite/tools/stats/helpers.d.ts.map +1 -0
  209. package/dist/adapters/sqlite/tools/stats/index.d.ts +12 -0
  210. package/dist/adapters/sqlite/tools/stats/index.d.ts.map +1 -0
  211. package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts +7 -0
  212. package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts.map +1 -0
  213. package/dist/adapters/sqlite/tools/stats/inference/index.d.ts +4 -0
  214. package/dist/adapters/sqlite/tools/stats/inference/index.d.ts.map +1 -0
  215. package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts +7 -0
  216. package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts.map +1 -0
  217. package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts +7 -0
  218. package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts.map +1 -0
  219. package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts +17 -0
  220. package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts.map +1 -0
  221. package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts +15 -0
  222. package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts.map +1 -0
  223. package/dist/adapters/sqlite/tools/text/formatting.d.ts +48 -0
  224. package/dist/adapters/sqlite/tools/text/formatting.d.ts.map +1 -0
  225. package/dist/adapters/sqlite/tools/text/helpers.d.ts +22 -0
  226. package/dist/adapters/sqlite/tools/text/helpers.d.ts.map +1 -0
  227. package/dist/adapters/sqlite/tools/text/index.d.ts +10 -0
  228. package/dist/adapters/sqlite/tools/text/index.d.ts.map +1 -0
  229. package/dist/adapters/sqlite/tools/text/regex.d.ts +21 -0
  230. package/dist/adapters/sqlite/tools/text/regex.d.ts.map +1 -0
  231. package/dist/adapters/sqlite/tools/text/search.d.ts +17 -0
  232. package/dist/adapters/sqlite/tools/text/search.d.ts.map +1 -0
  233. package/dist/adapters/sqlite/tools/text/sentiment.d.ts +13 -0
  234. package/dist/adapters/sqlite/tools/text/sentiment.d.ts.map +1 -0
  235. package/dist/adapters/sqlite/tools/text/validate.d.ts +11 -0
  236. package/dist/adapters/sqlite/tools/text/validate.d.ts.map +1 -0
  237. package/dist/adapters/sqlite/tools/vector/helpers.d.ts +11 -0
  238. package/dist/adapters/sqlite/tools/vector/helpers.d.ts.map +1 -0
  239. package/dist/adapters/sqlite/tools/vector/index.d.ts +14 -0
  240. package/dist/adapters/sqlite/tools/vector/index.d.ts.map +1 -0
  241. package/dist/adapters/sqlite/tools/vector/metadata.d.ts +28 -0
  242. package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -0
  243. package/dist/adapters/sqlite/tools/vector/search.d.ts +16 -0
  244. package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -0
  245. package/dist/adapters/sqlite/tools/vector/storage.d.ts +24 -0
  246. package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -0
  247. package/dist/adapters/sqlite/tools/vector/tools.d.ts +9 -0
  248. package/dist/adapters/sqlite/tools/vector/tools.d.ts.map +1 -0
  249. package/dist/adapters/sqlite/tools/virtual/analysis.d.ts +24 -0
  250. package/dist/adapters/sqlite/tools/virtual/analysis.d.ts.map +1 -0
  251. package/dist/adapters/sqlite/tools/virtual/extensions.d.ts +13 -0
  252. package/dist/adapters/sqlite/tools/virtual/extensions.d.ts.map +1 -0
  253. package/dist/adapters/sqlite/tools/virtual/helpers.d.ts +18 -0
  254. package/dist/adapters/sqlite/tools/virtual/helpers.d.ts.map +1 -0
  255. package/dist/adapters/sqlite/tools/virtual/index.d.ts +10 -0
  256. package/dist/adapters/sqlite/tools/virtual/index.d.ts.map +1 -0
  257. package/dist/adapters/sqlite/tools/virtual/views.d.ts +21 -0
  258. package/dist/adapters/sqlite/tools/virtual/views.d.ts.map +1 -0
  259. package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts +4 -0
  260. package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -0
  261. package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts +4 -0
  262. package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -0
  263. package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts +4 -0
  264. package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts.map +1 -0
  265. package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts +6 -0
  266. package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts.map +1 -0
  267. package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts +4 -0
  268. package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -0
  269. package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts +4 -0
  270. package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts.map +1 -0
  271. package/dist/adapters/sqlite/types.d.ts +89 -0
  272. package/dist/adapters/sqlite/types.d.ts.map +1 -0
  273. package/dist/adapters/sqlite-helpers.d.ts +51 -0
  274. package/dist/adapters/sqlite-helpers.d.ts.map +1 -0
  275. package/dist/adapters/sqlite-native/extensions.d.ts +17 -0
  276. package/dist/adapters/sqlite-native/extensions.d.ts.map +1 -0
  277. package/dist/adapters/sqlite-native/index.d.ts +11 -0
  278. package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
  279. package/dist/adapters/sqlite-native/native-query-executor.d.ts +24 -0
  280. package/dist/adapters/sqlite-native/native-query-executor.d.ts.map +1 -0
  281. package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts +160 -0
  282. package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts.map +1 -0
  283. package/dist/adapters/sqlite-native/registration/index.d.ts +12 -0
  284. package/dist/adapters/sqlite-native/registration/index.d.ts.map +1 -0
  285. package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts +23 -0
  286. package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts.map +1 -0
  287. package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts +15 -0
  288. package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts.map +1 -0
  289. package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts +22 -0
  290. package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts.map +1 -0
  291. package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts +78 -0
  292. package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts.map +1 -0
  293. package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts +30 -0
  294. package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts.map +1 -0
  295. package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
  296. package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
  297. package/dist/adapters/sqlite-native/tools/window.d.ts +7 -0
  298. package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
  299. package/dist/adapters/sqlite-native/transaction-methods.d.ts +36 -0
  300. package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -0
  301. package/dist/audit/backup-manager.d.ts +90 -0
  302. package/dist/audit/backup-manager.d.ts.map +1 -0
  303. package/dist/audit/index.d.ts +11 -0
  304. package/dist/audit/index.d.ts.map +1 -0
  305. package/dist/audit/interceptor.d.ts +54 -0
  306. package/dist/audit/interceptor.d.ts.map +1 -0
  307. package/dist/audit/logger.d.ts +62 -0
  308. package/dist/audit/logger.d.ts.map +1 -0
  309. package/dist/audit/types.d.ts +112 -0
  310. package/dist/audit/types.d.ts.map +1 -0
  311. package/dist/auth/auth-context.d.ts +28 -0
  312. package/dist/auth/auth-context.d.ts.map +1 -0
  313. package/dist/auth/authorization-server-discovery.d.ts +90 -0
  314. package/dist/auth/authorization-server-discovery.d.ts.map +1 -0
  315. package/dist/auth/errors.d.ts +74 -0
  316. package/dist/auth/errors.d.ts.map +1 -0
  317. package/dist/auth/middleware/core.d.ts +22 -0
  318. package/dist/auth/middleware/core.d.ts.map +1 -0
  319. package/dist/auth/middleware/express-auth.d.ts +13 -0
  320. package/dist/auth/middleware/express-auth.d.ts.map +1 -0
  321. package/dist/auth/middleware/express-scopes.d.ts +6 -0
  322. package/dist/auth/middleware/express-scopes.d.ts.map +1 -0
  323. package/dist/auth/middleware/extraction.d.ts +2 -0
  324. package/dist/auth/middleware/extraction.d.ts.map +1 -0
  325. package/dist/auth/middleware/index.d.ts +5 -0
  326. package/dist/auth/middleware/index.d.ts.map +1 -0
  327. package/dist/auth/oauth-resource-server.d.ts +74 -0
  328. package/dist/auth/oauth-resource-server.d.ts.map +1 -0
  329. package/dist/auth/scope-map.d.ts +24 -0
  330. package/dist/auth/scope-map.d.ts.map +1 -0
  331. package/dist/auth/scopes/constants.d.ts +40 -0
  332. package/dist/auth/scopes/constants.d.ts.map +1 -0
  333. package/dist/auth/scopes/display.d.ts +5 -0
  334. package/dist/auth/scopes/display.d.ts.map +1 -0
  335. package/dist/auth/scopes/enforcement.d.ts +27 -0
  336. package/dist/auth/scopes/enforcement.d.ts.map +1 -0
  337. package/dist/auth/scopes/index.d.ts +6 -0
  338. package/dist/auth/scopes/index.d.ts.map +1 -0
  339. package/dist/auth/scopes/mapping.d.ts +39 -0
  340. package/dist/auth/scopes/mapping.d.ts.map +1 -0
  341. package/dist/auth/scopes/validation.d.ts +27 -0
  342. package/dist/auth/scopes/validation.d.ts.map +1 -0
  343. package/dist/auth/token-validator.d.ts +63 -0
  344. package/dist/auth/token-validator.d.ts.map +1 -0
  345. package/dist/auth/transport-agnostic.d.ts +11 -0
  346. package/dist/auth/transport-agnostic.d.ts.map +1 -0
  347. package/dist/auth/types.d.ts +257 -0
  348. package/dist/auth/types.d.ts.map +1 -0
  349. package/dist/chunk-E5IESRTK.js +489 -0
  350. package/dist/{chunk-5Y42NPBP.js → chunk-FR65YPAH.js} +4657 -1830
  351. package/dist/{chunk-645ZEFLA.js → chunk-L552U3QS.js} +887 -309
  352. package/dist/{chunk-WBER5YY4.js → chunk-THATOQRT.js} +1026 -455
  353. package/dist/{chunk-Z7C2TM4L.js → chunk-W5WQVNVX.js} +169 -57
  354. package/dist/cli.d.ts +7 -0
  355. package/dist/cli.d.ts.map +1 -0
  356. package/dist/cli.js +47 -26
  357. package/dist/codemode/api-constants.d.ts +40 -0
  358. package/dist/codemode/api-constants.d.ts.map +1 -0
  359. package/dist/codemode/api.d.ts +70 -0
  360. package/dist/codemode/api.d.ts.map +1 -0
  361. package/dist/codemode/auto-return.d.ts +25 -0
  362. package/dist/codemode/auto-return.d.ts.map +1 -0
  363. package/dist/codemode/index.d.ts +12 -0
  364. package/dist/codemode/index.d.ts.map +1 -0
  365. package/dist/codemode/sandbox-factory.d.ts +72 -0
  366. package/dist/codemode/sandbox-factory.d.ts.map +1 -0
  367. package/dist/codemode/sandbox.d.ts +54 -0
  368. package/dist/codemode/sandbox.d.ts.map +1 -0
  369. package/dist/codemode/security.d.ts +45 -0
  370. package/dist/codemode/security.d.ts.map +1 -0
  371. package/dist/codemode/types.d.ts +167 -0
  372. package/dist/codemode/types.d.ts.map +1 -0
  373. package/dist/constants/server-instructions.d.ts +22 -0
  374. package/dist/constants/server-instructions.d.ts.map +1 -0
  375. package/dist/filtering/tool-constants.d.ts +45 -0
  376. package/dist/filtering/tool-constants.d.ts.map +1 -0
  377. package/dist/filtering/tool-filter.d.ts +82 -0
  378. package/dist/filtering/tool-filter.d.ts.map +1 -0
  379. package/dist/{http-6KF4ULDI.js → http-HWTUVFIA.js} +498 -391
  380. package/dist/index.d.ts +9 -1065
  381. package/dist/index.d.ts.map +1 -0
  382. package/dist/index.js +4 -6
  383. package/dist/server/mcp-server.d.ts +66 -0
  384. package/dist/server/mcp-server.d.ts.map +1 -0
  385. package/dist/server/registration/audit-tools.d.ts +13 -0
  386. package/dist/server/registration/audit-tools.d.ts.map +1 -0
  387. package/dist/server/registration/built-in-tools.d.ts +8 -0
  388. package/dist/server/registration/built-in-tools.d.ts.map +1 -0
  389. package/dist/server/registration/help-resources.d.ts +7 -0
  390. package/dist/server/registration/help-resources.d.ts.map +1 -0
  391. package/dist/server/registration/index.d.ts +4 -0
  392. package/dist/server/registration/index.d.ts.map +1 -0
  393. package/dist/{sqlite-U5KSYQXK.js → sqlite-6C3AJI4I.js} +61 -17
  394. package/dist/{sqlite-native-JXMCFQBA.js → sqlite-native-ZSSWCTYC.js} +459 -254
  395. package/dist/transports/http/index.d.ts +8 -0
  396. package/dist/transports/http/index.d.ts.map +1 -0
  397. package/dist/transports/http/middleware.d.ts +25 -0
  398. package/dist/transports/http/middleware.d.ts.map +1 -0
  399. package/dist/transports/http/oauth.d.ts +24 -0
  400. package/dist/transports/http/oauth.d.ts.map +1 -0
  401. package/dist/transports/http/session.d.ts +2 -0
  402. package/dist/transports/http/session.d.ts.map +1 -0
  403. package/dist/transports/http/sessions/index.d.ts +4 -0
  404. package/dist/transports/http/sessions/index.d.ts.map +1 -0
  405. package/dist/transports/http/sessions/legacy-sse.d.ts +6 -0
  406. package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -0
  407. package/dist/transports/http/sessions/mutex.d.ts +6 -0
  408. package/dist/transports/http/sessions/mutex.d.ts.map +1 -0
  409. package/dist/transports/http/sessions/stateful.d.ts +12 -0
  410. package/dist/transports/http/sessions/stateful.d.ts.map +1 -0
  411. package/dist/transports/http/sessions/stateless.d.ts +6 -0
  412. package/dist/transports/http/sessions/stateless.d.ts.map +1 -0
  413. package/dist/transports/http/transport.d.ts +65 -0
  414. package/dist/transports/http/transport.d.ts.map +1 -0
  415. package/dist/transports/http/type-adapters.d.ts +20 -0
  416. package/dist/transports/http/type-adapters.d.ts.map +1 -0
  417. package/dist/transports/http/types.d.ts +120 -0
  418. package/dist/transports/http/types.d.ts.map +1 -0
  419. package/dist/types/adapter.d.ts +138 -0
  420. package/dist/types/adapter.d.ts.map +1 -0
  421. package/dist/types/auth.d.ts +79 -0
  422. package/dist/types/auth.d.ts.map +1 -0
  423. package/dist/types/database.d.ts +100 -0
  424. package/dist/types/database.d.ts.map +1 -0
  425. package/dist/types/filtering.d.ts +41 -0
  426. package/dist/types/filtering.d.ts.map +1 -0
  427. package/dist/types/index.d.ts +13 -0
  428. package/dist/types/index.d.ts.map +1 -0
  429. package/dist/types/server.d.ts +48 -0
  430. package/dist/types/server.d.ts.map +1 -0
  431. package/dist/utils/annotations.d.ts +62 -0
  432. package/dist/utils/annotations.d.ts.map +1 -0
  433. package/dist/utils/errors/base.d.ts +33 -0
  434. package/dist/utils/errors/base.d.ts.map +1 -0
  435. package/dist/utils/errors/categories.d.ts +41 -0
  436. package/dist/utils/errors/categories.d.ts.map +1 -0
  437. package/dist/utils/errors/classes.d.ts +124 -0
  438. package/dist/utils/errors/classes.d.ts.map +1 -0
  439. package/dist/utils/errors/error-response-fields.d.ts +24 -0
  440. package/dist/utils/errors/error-response-fields.d.ts.map +1 -0
  441. package/dist/utils/errors/format.d.ts +74 -0
  442. package/dist/utils/errors/format.d.ts.map +1 -0
  443. package/dist/utils/errors/index.d.ts +11 -0
  444. package/dist/utils/errors/index.d.ts.map +1 -0
  445. package/dist/utils/errors/suggestions.d.ts +16 -0
  446. package/dist/utils/errors/suggestions.d.ts.map +1 -0
  447. package/dist/utils/icons.d.ts +19 -0
  448. package/dist/utils/icons.d.ts.map +1 -0
  449. package/dist/utils/identifiers.d.ts +121 -0
  450. package/dist/utils/identifiers.d.ts.map +1 -0
  451. package/dist/utils/index.d.ts +9 -0
  452. package/dist/utils/index.d.ts.map +1 -0
  453. package/dist/utils/insights-manager.d.ts +39 -0
  454. package/dist/utils/insights-manager.d.ts.map +1 -0
  455. package/dist/utils/logger/error-codes.d.ts +48 -0
  456. package/dist/utils/logger/error-codes.d.ts.map +1 -0
  457. package/dist/utils/logger/index.d.ts +22 -0
  458. package/dist/utils/logger/index.d.ts.map +1 -0
  459. package/dist/utils/logger/logger.d.ts +94 -0
  460. package/dist/utils/logger/logger.d.ts.map +1 -0
  461. package/dist/utils/logger/module-logger.d.ts +28 -0
  462. package/dist/utils/logger/module-logger.d.ts.map +1 -0
  463. package/dist/utils/logger/types.d.ts +36 -0
  464. package/dist/utils/logger/types.d.ts.map +1 -0
  465. package/dist/utils/progress-utils.d.ts +54 -0
  466. package/dist/utils/progress-utils.d.ts.map +1 -0
  467. package/dist/utils/redaction.d.ts +4 -0
  468. package/dist/utils/redaction.d.ts.map +1 -0
  469. package/dist/utils/resource-annotations.d.ts +36 -0
  470. package/dist/utils/resource-annotations.d.ts.map +1 -0
  471. package/dist/utils/validate-json-path.d.ts +43 -0
  472. package/dist/utils/validate-json-path.d.ts.map +1 -0
  473. package/dist/utils/validate-path.d.ts +37 -0
  474. package/dist/utils/validate-path.d.ts.map +1 -0
  475. package/dist/utils/where-clause.d.ts +42 -0
  476. package/dist/utils/where-clause.d.ts.map +1 -0
  477. package/dist/version.d.ts +10 -0
  478. package/dist/version.d.ts.map +1 -0
  479. package/package.json +25 -13
  480. package/.gitattributes +0 -2
  481. package/.gitleaks.toml +0 -9
  482. package/.trivyignore +0 -8
  483. package/dist/chunk-OKOVZ5QE.js +0 -28
  484. package/dist/chunk-SFJQCNG7.js +0 -131
  485. package/dist/chunk-VIDSICEL.js +0 -85
  486. package/dist/chunk-X3MUUOWM.js +0 -152
  487. package/dist/worker-script.d.ts +0 -2
  488. package/dist/worker-script.js +0 -150
  489. package/logs/.gitkeep +0 -1
  490. package/mcp-config-example.json +0 -83
  491. package/playwright.config.ts +0 -101
  492. package/scripts/generate-server-instructions.ts +0 -111
  493. package/scripts/update-badges.ts +0 -99
  494. package/server.json +0 -54
  495. package/test-server/README.md +0 -115
  496. package/test-server/code-map.md +0 -421
  497. package/test-server/fixtures/sample.csv +0 -6
  498. package/test-server/reset-database.ps1 +0 -415
  499. package/test-server/sample.csv +0 -11
  500. package/test-server/scripts/README.md +0 -27
  501. package/test-server/scripts/test-help-resources.mjs +0 -245
  502. package/test-server/scripts/test-prompts.mjs +0 -251
  503. package/test-server/scripts/test-tool-annotations.mjs +0 -162
  504. package/test-server/test-advanced/README.md +0 -70
  505. package/test-server/test-advanced/test-codemode-advanced-admin.md +0 -174
  506. package/test-server/test-advanced/test-codemode-advanced-core.md +0 -193
  507. package/test-server/test-advanced/test-codemode-advanced-geo.md +0 -157
  508. package/test-server/test-advanced/test-codemode-advanced-introspection.md +0 -171
  509. package/test-server/test-advanced/test-codemode-advanced-json.md +0 -169
  510. package/test-server/test-advanced/test-codemode-advanced-migration.md +0 -160
  511. package/test-server/test-advanced/test-codemode-advanced-stats.md +0 -185
  512. package/test-server/test-advanced/test-codemode-advanced-text.md +0 -183
  513. package/test-server/test-advanced/test-codemode-advanced-transactions.md +0 -136
  514. package/test-server/test-advanced/test-codemode-advanced-vector.md +0 -141
  515. package/test-server/test-codemode/README.md +0 -121
  516. package/test-server/test-codemode/test-codemode-admin.md +0 -223
  517. package/test-server/test-codemode/test-codemode-core.md +0 -286
  518. package/test-server/test-codemode/test-codemode-geo.md +0 -177
  519. package/test-server/test-codemode/test-codemode-introspection.md +0 -190
  520. package/test-server/test-codemode/test-codemode-json.md +0 -237
  521. package/test-server/test-codemode/test-codemode-migration.md +0 -278
  522. package/test-server/test-codemode/test-codemode-sandbox.md +0 -413
  523. package/test-server/test-codemode/test-codemode-stats.md +0 -232
  524. package/test-server/test-codemode/test-codemode-text.md +0 -237
  525. package/test-server/test-codemode/test-codemode-transactions.md +0 -236
  526. package/test-server/test-codemode/test-codemode-vector.md +0 -244
  527. package/test-server/test-codemode/test-codemode-wasm-degradation.md +0 -394
  528. package/test-server/test-database.sql +0 -424
  529. package/test-server/test-preflight.md +0 -53
  530. package/test-server/test-prompts.md +0 -354
  531. package/test-server/test-resources.md +0 -272
  532. package/test-server/test-tool-groups/README.md +0 -100
  533. package/test-server/test-tool-groups/test-admin-core.md +0 -165
  534. package/test-server/test-tool-groups/test-admin-extensions.md +0 -133
  535. package/test-server/test-tool-groups/test-core-data.md +0 -262
  536. package/test-server/test-tool-groups/test-core-schema.md +0 -240
  537. package/test-server/test-tool-groups/test-geo-haversine.md +0 -130
  538. package/test-server/test-tool-groups/test-geo-spatialite.md +0 -110
  539. package/test-server/test-tool-groups/test-introspection-diagnostics.md +0 -123
  540. package/test-server/test-tool-groups/test-introspection-schema.md +0 -133
  541. package/test-server/test-tool-groups/test-json-read.md +0 -219
  542. package/test-server/test-tool-groups/test-json-write.md +0 -157
  543. package/test-server/test-tool-groups/test-migration.md +0 -193
  544. package/test-server/test-tool-groups/test-stats-advanced.md +0 -118
  545. package/test-server/test-tool-groups/test-stats-basic.md +0 -156
  546. package/test-server/test-tool-groups/test-text-advanced.md +0 -169
  547. package/test-server/test-tool-groups/test-text-basic.md +0 -177
  548. package/test-server/test-tool-groups/test-transactions.md +0 -179
  549. package/test-server/test-tool-groups/test-vector-read.md +0 -130
  550. package/test-server/test-tool-groups/test-vector-write.md +0 -115
  551. package/test-server/tool-reference.md +0 -257
  552. package/tsconfig.build.json +0 -6
  553. package/tsconfig.test.json +0 -9
@@ -1,115 +0,0 @@
1
- # db-mcp Test Database — Agent Testing Instructions
2
-
3
- > **This README is optimized for AI agent consumption.** It serves as the primary orchestration document for running manual MCP functionality tests against the local SQLite database.
4
-
5
- ## Files
6
-
7
- | File | Size | Purpose | When to Read |
8
- | ---------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
9
- | `test-tool-groups/` | — | **10 self-contained test prompts** — one per tool group. Each is a complete, standalone prompt (paste directly). See `test-tool-groups/README.md` for details. | **Primary testing method** — use instead of `test-tools.md` + `test-group-tools.md` |
10
- | `test-codemode/` | — | **10 self-contained Code Mode test prompts** — one per tool group. Tests via `sqlite_execute_code` only. See `test-codemode/README.md`. | **Primary Code Mode testing method** |
11
- | `test-advanced/` | — | **10 self-contained advanced stress test prompts** — one per tool group. Second-pass edge cases via Code Mode. See `test-advanced/README.md`. | **Primary advanced testing method** |
12
- | `test-resources.md` | ~6KB | Resource testing plan (8 data + 7 help resources via `read_resource`) | When testing resources |
13
- | `test-preflight.md` | ~2KB | **Pre-flight check** — validates slim instructions, help resources, data resources, and tool-filter alignment in 5 steps | Before any test pass |
14
- | `test-prompts.md` | ~10KB | Prompt testing plan (10 prompts, tested manually since agents typically don't invoke prompts) | When testing prompts |
15
- | `tool-groups-list.md` | — | **Canonical tool inventory** — all 10 groups + codemode, 151 Native / 125 WASM tools. Source of truth for tool counts. | Reference / auditing |
16
- | `tool-reference.md` | ~18KB | **Complete Tool Reference** — Detailed list of all 151 Native / 125 WASM tools organized by group. | Reference |
17
- | [`code-map.md`](code-map.md) | ~12KB | **Source Code Map** — Directory tree, handler→tool mapping, type/schema locations, error hierarchy, constants, architecture patterns. | When debugging source code or making changes |
18
- | `reset-database.ps1` | ~11KB | PowerShell script to delete + re-seed `test.db` from `test-database.sql`. Verifies row counts. | After migration group testing or if data is polluted |
19
- | `test-database.sql` | ~21KB | Seed SQL (DDL + DML) for all `test_*` tables | Reference only — reset script consumes this |
20
- | `sample.csv` | <1KB | CSV fixture for `sqlite_create_csv_table` / `sqlite_analyze_csv_schema` testing | Used by admin group checklist |
21
-
22
- ## Test Database Schema
23
-
24
- | Table | Rows | Notable Columns |
25
- | ------------------- | ---- | ----------------------------------------------------------------------------------------------------------------- |
26
- | `test_products` | 16 | price (REAL), category (TEXT, lowercase). Row 16: `Café Décor Light` (accented) |
27
- | `test_orders` | 20 | product_id FK → test_products, status (TEXT) |
28
- | `test_jsonb_docs` | 6 | **doc** (JSON), **metadata** (nested JSON), **tags** (JSON array). Row 4: `$.nested.level1.level2 = "deep value"` |
29
- | `test_articles` | 8 | FTS5 searchable: SQLite, database, JSON, FTS, vector, API, search, MCP |
30
- | `test_users` | 9 | email, phone (`+1-555-...` format), bio. 1 NULL phone. |
31
- | `test_measurements` | 200 | sensor_id (INTEGER 1-5), temperature, humidity, pressure |
32
- | `test_embeddings` | 20 | 8-dim float vectors. Categories: tech, database, food, fitness, travel |
33
- | `test_locations` | 15 | latitude/longitude. Cities: NYC(3), Paris(3), London(3), Tokyo(2), Sydney(2), SF(2) |
34
- | `test_categories` | 17 | Hierarchical: name, path, level |
35
- | `test_events` | 100 | **payload** (JSON), event_type, user_id (INT, 8 values) |
36
-
37
- **Key FK:** `test_orders.product_id → test_products.id`
38
- **Redundant index (intentional):** `idx_orders_status` is a prefix of `idx_orders_status_date` — used to test index audit tools.
39
-
40
- ## Conventions
41
-
42
- | Convention | Rule |
43
- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
44
- | **Temp tables (basic tests)** | `temp_*` prefix → drop after testing |
45
- | **Temp tables (stress tests)** | `stress_*` prefix → drop after testing |
46
- | **String values** | Lowercase (`'electronics'`, not `'Electronics'`) |
47
- | **sensor_id** | INTEGER (use `= 1`, not `= 'S001'`) |
48
- | **Reporting** | ❌ Fail, ⚠️ Issue, 📦 Payload concern. ✅ inline only, omit from final summary. |
49
- | **Error testing** | Every tool: test (a) domain error + (b) Zod error (`{}`). Must return `{success: false, error: "..."}`, NOT raw MCP error. |
50
- | **Error item prefix** | All error-path checklist items use 🔴 prefix to distinguish from happy-path items |
51
- | **Code mode** | Don't pass `readonly: true` unless specifically testing read-only filtering |
52
- | **Post-test** | Clean up temps → plan fixes → implement → lint+typecheck → changelog → commit (no push) → re-test fixes |
53
- | **Database reset** | Run `.\reset-database.ps1` after migration testing or data pollution |
54
-
55
- ## WASM Parity Protocol
56
-
57
- To validate WASM mode produces identical results for shared tools:
58
-
59
- 1. **Configure for WASM**: Set `--sqlite` (not `--sqlite-native`) in your MCP client config
60
- 2. **Expected tool count**: 115 WASM vs 140 Native (25 fewer: 4 FTS5, 6 window, 8 transaction, 7 SpatiaLite)
61
- 3. **Run the same checklists**: Use `test-group-tools.md` but skip items marked `[NATIVE ONLY]`
62
- 4. **Verify shared tools**: All non-`[NATIVE ONLY]` items should produce identical output in both backends
63
- 5. **Verify absent tools**: Calling a Native-only tool in WASM mode should return a structured error (not crash)
64
- 6. **Key groups to verify**: text (FTS5 absent), stats (window functions absent), admin (transactions absent), geo (SpatiaLite absent)
65
-
66
- ## Integration Test Scripts
67
-
68
- These scripts test features that require separate server processes — they **cannot** be run via MCP tool calls. All scripts are Node.js (`.mjs`), require no dependencies beyond Node.js, and exit with code 0 on success.
69
-
70
- > [!IMPORTANT]
71
- > Always `npm run build` before running these scripts — they execute `dist/cli.js` directly.
72
-
73
- ### Script Reference
74
-
75
- | Script | Tests | Transport | Duration |
76
- | --------------------------- | --------------------------------------------------------------- | --------- | -------- |
77
- | `test-help-resources.mjs` | Slim instructions + `sqlite://help` resource filtering by group | stdio | ~15s |
78
- | `test-tool-annotations.mjs` | `tools/list` openWorldHint annotation presence and consistency | stdio | ~5s |
79
-
80
- ### Quick Run
81
-
82
- ```powershell
83
- cd C:\Users\chris\Desktop\db-mcp
84
- npm run build
85
-
86
- # Help resources
87
- node test-server/test-help-resources.mjs
88
-
89
- # Tool annotations
90
- node test-server/test-tool-annotations.mjs
91
- ```
92
-
93
- ### Success Criteria
94
-
95
- #### Help Resources
96
-
97
- - [ ] Instructions under 1000 chars (~680)
98
- - [ ] `sqlite://help` always registered
99
- - [ ] Group-specific help only for enabled groups
100
- - [ ] No old content leaked into slim instructions
101
-
102
- #### Tool Annotations
103
-
104
- - [ ] All tools have `annotations` object with `openWorldHint` set
105
- - [ ] All `openWorldHint` values are `false` (db-mcp tools are local-only)
106
- - [ ] 0 missing annotations
107
-
108
- ## Agent Workflow
109
-
110
- 1. Read `sqlite://help` resource (or `view_file` on `src/constants/server-instructions/gotchas.md`).
111
- 2. Open the target group prompt from `test-tool-groups/` (e.g., `test-admin-core.md`). Each file is self-contained.
112
- 3. Execute via direct MCP tool calls to test logic. Run both happy-path and error-path tests.
113
- 4. Clean up any temporary tables generated during execution.
114
- 5. Report findings using the designated reporting convention.
115
- 6. (Optional) Run stress tests from `test-advanced/` folder.
@@ -1,421 +0,0 @@
1
- # db-mcp Code Map
2
-
3
- > **Agent-optimized navigation reference.** Read this before searching the codebase. Covers directory layout, handler→tool mapping, type/schema locations, error hierarchy, and key constants.
4
- >
5
- > Last updated: May 16, 2026
6
-
7
- ---
8
-
9
- ## Directory Tree
10
-
11
- ```
12
- src/
13
- ├── cli.ts # CLI entry point (arg parsing, transport selection)
14
- ├── index.ts # Barrel re-export for library consumers
15
- ├── version.ts # SSoT version constant (reads package.json)
16
-
17
- ├── server/
18
- │ └── mcp-server.ts # McpServer setup, adapter registration, tool/resource/prompt wiring
19
-
20
- ├── types/ # Core TypeScript types (barrel: types/index.ts)
21
- │ ├── adapter.ts # ToolDefinition, ResourceDefinition, PromptDefinition, AdapterCapabilities
22
- │ ├── auth.ts # OAuthConfig, OAuthScope, TokenClaims, RequestContext
23
- │ ├── database.ts # DatabaseConfig, QueryResult, ColumnInfo, TableInfo, SchemaInfo, IndexInfo
24
- │ ├── filtering.ts # ToolGroup, MetaGroup, ToolFilterRule, ToolFilterConfig
25
- │ ├── server.ts # TransportType, McpServerConfig (incl. authToken, oauth)
26
- │ └── index.ts # Barrel — also re-exports error classes from utils/errors
27
-
28
- ├── constants/
29
- │ ├── server-instructions.ts # Generated: slim INSTRUCTIONS constant (~680 chars) + HELP_CONTENT map (per-group help)
30
- │ └── server-instructions/ # Source .md files for each help resource
31
- │ ├── overview.md # Root help content (sqlite://help)
32
- │ ├── gotchas.md # Common gotchas and critical usage patterns
33
- │ ├── admin.md # Admin group help
34
- │ ├── geo.md # Geo group help
35
- │ ├── introspection.md # Introspection group help
36
- │ ├── json.md # JSON group help
37
- │ ├── migration.md # Migration group help
38
- │ ├── stats.md # Stats group help
39
- │ ├── text.md # Text group help
40
- │ └── vector.md # Vector group help
41
-
42
- ├── filtering/
43
- │ ├── tool-constants.ts # TOOL_GROUPS arrays, META_GROUPS shortcuts, group→tools map
44
- │ └── tool-filter.ts # ToolFilter class — parse/apply --tool-filter expressions
45
-
46
- ├── utils/
47
- │ ├── annotations.ts # MCP tool annotation helpers (readOnly, destructive hints)
48
- │ ├── icons.ts # MCP icon definitions per tool group
49
- │ ├── identifiers.ts # SQL identifier validation/sanitization (table names, columns)
50
- │ ├── insights-manager.ts # memo://insights resource accumulator
51
- │ ├── progress-utils.ts # MCP progress notification helpers
52
- │ ├── resource-annotations.ts # MCP resource annotation helpers
53
- │ ├── where-clause.ts # WHERE clause builder/validator
54
- │ ├── index.ts # Barrel re-export
55
- │ ├── errors/ # Error class hierarchy (see § Error Classes below)
56
- │ │ ├── base.ts # DbMcpError (abstract base) — auto-refines generic codes via suggestions
57
- │ │ ├── categories.ts # ErrorCategory enum + ErrorResponse interface
58
- │ │ ├── classes.ts # 8 concrete error subclasses
59
- │ │ ├── error-response-fields.ts # ErrorResponseFields mixin (SSoT, re-exported from format.ts)
60
- │ │ ├── format.ts # formatHandlerError() — structured {success:false} builder
61
- │ │ ├── suggestions.ts # Error suggestion helpers (typo hints, table/column suggestions)
62
- │ │ └── index.ts # Barrel
63
- │ └── logger/
64
- │ ├── logger.ts # Logger class (structured JSON, severity filtering)
65
- │ ├── module-logger.ts # createModuleLogger() factory
66
- │ ├── error-codes.ts # Module-prefixed error code constants
67
- │ ├── types.ts # LogLevel, LogEntry types
68
- │ └── index.ts # Barrel
69
-
70
- ├── auth/ # OAuth 2.1 implementation
71
- │ ├── auth-context.ts # Auth context utilities
72
- │ ├── middleware/ # Express-style OAuth middleware (split from middleware.ts)
73
- │ │ └── index.ts
74
- │ ├── token-validator.ts # JWT/JWKS token validation
75
- │ ├── scopes/ # Scope parsing, enforcement (split from scopes.ts)
76
- │ │ └── index.ts
77
- │ ├── scope-map.ts # Tool→scope mapping
78
- │ ├── oauth-resource-server.ts # RFC 9728 /.well-known/oauth-protected-resource
79
- │ ├── authorization-server-discovery.ts # RFC 8414 auth server metadata discovery
80
- │ ├── transport-agnostic.ts # Non-Express auth re-exports for transport portability
81
- │ ├── errors.ts # OAuth-specific error classes
82
- │ └── types.ts # OAuth TypeScript types
83
-
84
- ├── audit/ # Audit logging subsystem
85
- │ ├── types.ts # AuditEntry, AuditConfig, BackupConfig, SnapshotMetadata types
86
- │ ├── logger.ts # AuditLogger — async-buffered JSONL writer with rotation
87
- │ ├── interceptor.ts # createAuditInterceptor() — wraps tool handlers with around(), reads OAuth identity from AsyncLocalStorage
88
- │ ├── backup-manager.ts # BackupManager — pre-mutation DDL snapshots (gzip)
89
- │ └── index.ts # Barrel
90
-
91
- ├── transports/
92
- │ └── http/
93
- │ ├── transport.ts # HTTP/SSE transport (Streamable HTTP + legacy SSE)
94
- │ ├── session.ts # Session management (stateful + stateless modes)
95
- │ ├── middleware.ts # Security headers, rate limiting, CORS, body parsing, DNS rebinding guard
96
- │ ├── oauth.ts # OAuth 2.1 integration + simple bearer auth middleware
97
- │ ├── type-adapters.ts # Hono→Express type bridges
98
- │ ├── types.ts # HTTP transport types
99
- │ └── index.ts # Barrel
100
-
101
- ├── codemode/ # Code Mode sandbox (secure JS execution)
102
- │ ├── sandbox.ts # SandboxPool lifecycle manager
103
- │ ├── sandbox-factory.ts # Sandbox creation factory
104
- │ ├── auto-return.ts # Last-expression auto-return transform (IIFE helper)
105
- │ ├── worker-sandbox.ts # Worker thread sandbox (MessagePort RPC bridge)
106
- │ ├── worker-script.ts # Worker thread entry point (runs inside vm)
107
- │ ├── api.ts # sqlite.* API bridge (exposes tools to sandbox)
108
- │ ├── api-constants.ts # API bridge constants and JSON-RPC codes
109
- │ ├── security.ts # Code validation (blocked patterns, injection prevention)
110
- │ ├── types.ts # Sandbox TypeScript types
111
- │ └── index.ts # Barrel
112
-
113
- ├── adapters/
114
- │ ├── database-adapter.ts # Abstract DatabaseAdapter base class
115
- │ ├── query-validation.ts # Shared query validation (SELECT vs write detection)
116
- │ ├── sqlite-helpers.ts # Shared SQLite helper utilities
117
- │ │
118
- │ ├── sqlite/ # ── WASM adapter (sql.js) ──
119
- │ │ ├── sqlite-adapter.ts # SqliteAdapter class (extends DatabaseAdapter)
120
- │ │ ├── query-executor.ts # WASM query execution
121
- │ │ ├── schema-manager.ts # Schema cache + metadata (TTL-based)
122
- │ │ ├── json-utils.ts # JSON column detection and normalization
123
- │ │ ├── types.ts # WASM-specific Zod schemas + TS types
124
- │ │ ├── resources.ts # 10 data MCP resources (schema, tables, indexes, compile_options, etc.)
125
- │ │ ├── index.ts # Barrel
126
- │ │ ├── output-schemas/ # Zod outputSchema definitions per group (see § below)
127
- │ │ ├── prompts/ # 10 MCP prompts (see § below)
128
- │ │ └── tools/ # Tool handler files (see § Handler Map below)
129
- │ │ ├── column-validation.ts # validateColumnExists() + validateTableExists() — used by geo, stats, text, FTS, window
130
- │ │ └── ... # Group subdirectories below
131
- │ │
132
- │ └── sqlite-native/ # ── Native adapter (better-sqlite3) ──
133
- │ ├── native-sqlite-adapter.ts # NativeSqliteAdapter class (extends DatabaseAdapter)
134
- │ ├── native-query-executor.ts # Native query execution
135
- │ ├── extensions.ts # Extension loader (CSV, SpatiaLite) — uses findProjectRoot()
136
- │ ├── transaction-methods.ts # Transaction state management
137
- │ ├── registration/ # Extracted tool/resource registration logic
138
- │ │ └── index.ts
139
- │ ├── index.ts # Barrel
140
- │ └── tools/ # Native-only tool handlers (see § below)
141
- ```
142
-
143
- ---
144
-
145
- ## Handler → Tool Mapping
146
-
147
- Each file below registers tools with `group` labels. Native-only tools are marked.
148
-
149
- ### WASM Handlers (`src/adapters/sqlite/tools/`)
150
-
151
- | Group | Handler File(s) | Tools | Key Exports |
152
- | ----------------- | ----------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------- |
153
- | **codemode** | `codemode.ts` | 1 | `sqlite_execute_code` |
154
- | **core** | `core/queries.ts` | 2 | `sqlite_read_query`, `sqlite_write_query` |
155
- | | `core/convenience.ts` | 5 | `sqlite_upsert`, `sqlite_batch_insert`, `sqlite_count`, `sqlite_exists`, `sqlite_truncate` |
156
- | | `core/tables.ts` | 4 | `create_table`, `list_tables`, `describe_table`, `drop_table` |
157
- | | `core/indexes.ts` | 3 | `get_indexes`, `create_index`, `drop_index` |
158
- | **json** | `json-operations/crud.ts` | 3 | `json_insert`, `json_update`, `json_select` |
159
- | | `json-operations/query.ts` | 4 | `json_query`, `json_validate_path`, `json_merge`, `json_analyze_schema` |
160
- | | `json-operations/transform.ts` | 4 | `json_valid`, `json_extract`, `json_set`, `json_remove` |
161
- | | `json-helpers/read.ts` | 7 | `json_type`, `json_array_length`, `json_keys`, `json_each`, `json_pretty`, `json_storage_info`, `json_group_array` |
162
- | | `json-helpers/write.ts` | 5 | `json_array_append`, `json_group_object`, `jsonb_convert`, `json_normalize_column`, `create_json_collection` |
163
- | **text** | `text/regex.ts` | 2 | `regex_extract`, `regex_match` |
164
- | | `text/formatting.ts` | 6 | `text_split`, `text_concat`, `text_replace`, `text_trim`, `text_case`, `text_substring` |
165
- | | `text/search.ts` | 3 | `fuzzy_match`, `phonetic_match`, `advanced_search` |
166
- | | `text/validate.ts` | 2 | `text_normalize`, `text_validate` |
167
- | | `text/sentiment.ts` | 1 | `text_sentiment` |
168
- | **text** (FTS5) | `fts.ts` | 5 | `fts_create`, `fts_search`, `fts_rebuild`, `fts_match_info`, `fts_headline` |
169
- | **stats** | `stats/basic.ts` | 7 | `stats_basic`, `stats_count`, `stats_group_by`, `stats_histogram`, `stats_percentile`, `stats_correlation`, `stats_top_n` |
170
- | | `stats/advanced.ts` | 6 | `stats_distinct`, `stats_summary`, `stats_frequency`, `stats_outliers`, `stats_regression`, `stats_hypothesis` |
171
- | | `stats/anomaly-detection.ts` | 2 | `stats_detect_anomalies`, `stats_detect_bloat` |
172
- | | `stats/schema-risks.ts` | 1 | `stats_detect_schema_risks` |
173
- | **vector** | `vector/storage.ts` | 4 | `vector_create_table`, `vector_store`, `vector_batch_store`, `vector_delete` |
174
- | | `vector/search.ts` | 2 | `vector_search`, `vector_get` |
175
- | | `vector/metadata.ts` | 5 | `vector_count`, `vector_stats`, `vector_dimensions`, `vector_normalize`, `vector_distance` |
176
- | **geo** | `geo.ts` | 4 | `geo_distance`, `geo_nearby`, `geo_bounding_box`, `geo_cluster` |
177
- | **admin** | `admin/backup/create.ts` | 1 | `backup` |
178
- | | `admin/backup/restore.ts` | 1 | `restore` |
179
- | | `admin/backup/analyze.ts` | 1 | `analyze` |
180
- | | `admin/backup/integrity.ts` | 1 | `integrity_check` |
181
- | | `admin/backup/optimize.ts` | 1 | `optimize` |
182
- | | `admin/verify.ts` | 2 | `verify_backup`, `index_stats` |
183
- | | `admin/pragma.ts` | 6 | `pragma_compile_options`, `pragma_database_list`, `pragma_optimize`, `pragma_settings`, `pragma_table_info`, `append_insight` |
184
- | | `virtual/views.ts` | 3 | `create_view`, `list_views`, `drop_view` |
185
- | | `virtual/vtable.ts` | 5 | `list_virtual_tables`, `virtual_table_info`, `drop_virtual_table`, `create_csv_table`, `analyze_csv_schema` |
186
- | | `virtual/extensions.ts` | 2 | `create_rtree_table`, `create_series_table` |
187
- | | `virtual/analysis.ts` | 3 | `generate_series`, `dbstat`, `vacuum` |
188
- | **introspection** | `introspection/graph/tools.ts` | 3 | `dependency_graph`, `topological_sort`, `cascade_simulator` |
189
- | | `introspection/analysis/constraints.ts` | 1 | `constraint_analysis` |
190
- | | `introspection/analysis/risks.ts` | 1 | `migration_risks` |
191
- | | `introspection/analysis/snapshot.ts` | 1 | `schema_snapshot` |
192
- | | `introspection/diagnostics/storage.ts` | 1 | `storage_analysis` |
193
- | | `introspection/diagnostics/indexes.ts` | 1 | `index_audit` |
194
- | | `introspection/diagnostics/query-plan.ts` | 1 | `query_plan` |
195
- | **migration** | `migration/tracking/init.ts` | 1 | `migration_init` |
196
- | | `migration/tracking/record.ts` | 1 | `migration_record` |
197
- | | `migration/tracking/apply.ts` | 1 | `migration_apply` |
198
- | | `migration/tracking/rollback.ts` | 1 | `migration_rollback` |
199
- | | `migration/tracking/history.ts` | 1 | `migration_history` |
200
- | | `migration/tracking/status.ts` | 1 | `migration_status` |
201
-
202
- ### Native-Only Handlers (`src/adapters/sqlite-native/tools/`)
203
-
204
- | Group | Handler File | Tools | Notes |
205
- | -------------------- | ------------------------ | ----- | ------------------------------------------------------------------------------------------------------------------ |
206
- | **stats** (window) | `window.ts` | 6 | `window_row_number`, `window_rank`, `window_lag_lead`, `window_running_total`, `window_moving_avg`, `window_ntile` |
207
- | **transactions** | `transactions.ts` | 8 | `transaction_begin/status/commit/rollback/savepoint/release/rollback_to/execute` |
208
- | **geo** (SpatiaLite) | `spatialite/tools.ts` | 4 | `spatialite_load/create_table/query/index` |
209
- | | `spatialite/analysis.ts` | 3 | `spatialite_analyze/transform/import` |
210
-
211
- ### Utility Files (no tools, shared helpers)
212
-
213
- Files that provide shared logic but do **not** register tools:
214
-
215
- | File | Purpose |
216
- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
217
- | `core/tables.ts` | Also exports `isSpatialiteSystemTable()`, `isSpatialiteSystemView()`, `isSpatialiteSystemIndex()` — used by core + introspection tools for `excludeSystemTables` filtering |
218
- | `column-validation.ts` | `validateColumnExists()`, `validateTableExists()` — used by geo, stats, text, FTS, window |
219
- | `json-operations/helpers.ts` | JSON path/value normalization |
220
- | `json-helpers/helpers.ts` | JSON helper utilities |
221
- | `text/helpers.ts` | Text processing shared logic |
222
- | `stats/helpers.ts` | Stats calculation utilities |
223
- | `stats/inference.ts` | Statistical type inference engine |
224
- | `stats/math-helpers.ts` | Math utility functions (median, std dev) |
225
- | `vector/helpers.ts` | Vector math utilities |
226
- | `vector/schemas.ts` | Zod schemas for vector tools |
227
- | `vector/tools.ts` | Vector tool registration barrel |
228
- | `admin/helpers.ts` | Admin tool shared utilities |
229
- | `migration/schemas.ts` | Zod input schemas for migration tools (re-exports output schemas from `output-schemas/migration.ts`) |
230
- | `virtual/helpers.ts` | Virtual table helper utilities |
231
- | `introspection/graph/helpers.ts` | FK graph traversal helpers |
232
- | `spatialite/schemas.ts` (native) | Zod schemas for SpatiaLite tools |
233
- | `spatialite/loader.ts` (native) | SpatiaLite extension loader + path resolution |
234
-
235
- ---
236
-
237
- ## Output Schemas (`src/adapters/sqlite/output-schemas/`)
238
-
239
- Zod schemas that define the `outputSchema` for MCP tool responses. All output schemas are centralized here with named exports — **zero inline definitions** remain across all tool groups.
240
-
241
- | File | Groups Covered |
242
- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
243
- | `common.ts` | Shared base schemas (e.g., success/error shape) |
244
- | `error-mixin.ts` | `ErrorFieldsMixin` — 6 optional error fields merged into all output schemas |
245
- | `core.ts` | Core group output schemas |
246
- | `json.ts` | JSON group output schemas |
247
- | `text.ts` | Text group output schemas (incl. `TextConcatOutputSchema`, `TextTrimOutputSchema`, `TextCaseOutputSchema`, `TextSubstringOutputSchema`, `AdvancedSearchOutputSchema`) |
248
- | `fts.ts` | FTS5 output schemas |
249
- | `stats.ts` | Stats group output schemas (incl. `StatsHypothesisOutputSchema`) |
250
- | `vector.ts` | Vector group output schemas |
251
- | `admin.ts` | Admin group output schemas (incl. `AppendInsightOutputSchema`, `DbstatOutputSchema`) |
252
- | `geo.ts` | Geo group output schemas |
253
- | `introspection.ts` | Introspection group output schemas (9 schemas: DependencyGraph, TopologicalSort, CascadeSimulator, SchemaSnapshot, ConstraintAnalysis, MigrationRisks, StorageAnalysis, IndexAudit, QueryPlan) |
254
- | `migration.ts` | Migration group output schemas (7 schemas: MigrationInit, MigrationRecord, MigrationApply, MigrationRollback, MigrationHistory, MigrationStatus + MigrationRecordEntry) |
255
- | `virtual.ts` | Virtual table output schemas (7 schemas: ListVirtualTables, VirtualTableInfo, DropVirtualTable, CreateCsvTable, AnalyzeCsvSchema, CreateRtreeTable, CreateSeriesTable) |
256
- | `native.ts` | Native-only output schemas (transactions — 8 schemas, window functions — 6 schemas) |
257
- | `spatialite.ts` | SpatiaLite output schemas (7 tools — native only) |
258
- | `server.ts` | Type aliases for core output schemas (built-in tools use `content` pattern, not `structuredContent`) |
259
- | `index.ts` | Barrel re-export |
260
-
261
- ---
262
-
263
- ## Prompts (`src/adapters/sqlite/prompts/`)
264
-
265
- | File | Prompts |
266
- | ------------- | ----------------------------------------------------------------------------- |
267
- | `analysis.ts` | `sqlite_data_analysis`, `sqlite_summarize_table`, `sqlite_demo` |
268
- | `query.ts` | `sqlite_query_builder`, `sqlite_debug_query`, `sqlite_hybrid_search_workflow` |
269
- | `schema.ts` | `sqlite_explain_schema`, `sqlite_documentation`, `sqlite_migration` |
270
- | `index.ts` | Barrel + `sqlite_optimization` |
271
-
272
- Prompts with required arguments expose typed `argsSchema` via `prompts/list`. All-optional and zero-arg prompts correctly omit `argsSchema`.
273
-
274
- ---
275
-
276
- ## Error Class Hierarchy
277
-
278
- All errors extend `DbMcpError` (defined in `src/utils/errors/base.ts`). Every tool returns structured `{success: false, error, code, category, suggestion, recoverable}` via `formatHandlerError()` — never raw MCP exceptions.
279
-
280
- The `DbMcpError` constructor auto-refines generic codes (`DB_QUERY_FAILED`, `DB_WRITE_FAILED`, `QUERY_ERROR`, `RESOURCE_ERROR`, `UNKNOWN_ERROR`) to more specific codes (e.g., `TABLE_NOT_FOUND`, `COLUMN_NOT_FOUND`, `VIEW_NOT_FOUND`, `FILE_NOT_FOUND`, `MALFORMED_JSON`, `TRANSACTION_CONFLICT`) when the error message matches a suggestion pattern.
281
-
282
- ```
283
- DbMcpError (base.ts)
284
- ├── ValidationError code: VALIDATION_ERROR category: validation
285
- ├── ConnectionError code: CONNECTION_ERROR category: connection recoverable: true
286
- ├── QueryError code: QUERY_ERROR category: query accepts: sql option
287
- ├── PermissionError code: PERMISSION_ERROR category: permission
288
- ├── ResourceNotFoundError code: RESOURCE_NOT_FOUND category: resource accepts: resourceType, resourceName
289
- ├── ConfigurationError code: CONFIG_ERROR category: config
290
- ├── InternalError code: INTERNAL_ERROR category: internal
291
- ├── AuthenticationError code: AUTHENTICATION_ERROR category: authentication
292
- ├── AuthorizationError code: AUTHORIZATION_ERROR category: authorization
293
- ├── TransactionError code: TRANSACTION_ERROR category: query recoverable: true
294
- └── ExtensionNotAvailableError code: EXTENSION_MISSING category: config accepts: extensionName
295
- ```
296
-
297
- **Usage pattern** — all tool handlers:
298
-
299
- ```typescript
300
- import { ValidationError } from "../../utils/errors/index.js";
301
- import { formatHandlerError } from "../../utils/errors/index.js";
302
-
303
- // Throw typed errors:
304
- throw new ValidationError("Table name required", "TABLE_NAME_REQUIRED", {
305
- suggestion: "Provide a valid table name",
306
- });
307
-
308
- // Catch at handler boundary:
309
- catch (error) {
310
- return formatHandlerError(error);
311
- }
312
- ```
313
-
314
- **Error suggestions** — `src/utils/errors/suggestions.ts` provides:
315
-
316
- - `suggestTableName(input, existingTables)` — fuzzy-matches typos
317
- - `suggestColumnName(input, existingColumns)` — fuzzy-matches columns
318
- - `suggestToolName(input)` — suggests similar tool names
319
- - Pattern-based refinement: `TABLE_NOT_FOUND`, `COLUMN_NOT_FOUND`, `VIEW_NOT_FOUND`, `FILE_NOT_FOUND`, `MALFORMED_JSON`, `TRANSACTION_CONFLICT`, `DUPLICATE_MIGRATION`, `DUPLICATE_VERSION`, `ALREADY_ROLLED_BACK`, `DIMENSION_MISMATCH`, `VECTOR_NOT_FOUND`
320
-
321
- ---
322
-
323
- ## Key Constants & Config
324
-
325
- | What | Where | Notes |
326
- | ---------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
327
- | Server instructions (agent prompt) | `src/constants/server-instructions.ts` | Generated: slim `INSTRUCTIONS` (~680 chars) + `HELP_CONTENT` map. Source: `server-instructions/*.md` |
328
- | Tool group arrays | `src/filtering/tool-constants.ts` | `TOOL_GROUPS` map, `META_GROUPS` shortcuts |
329
- | Tool filter logic | `src/filtering/tool-filter.ts` | `ToolFilter` class |
330
- | JSON-RPC constants | `src/codemode/api-constants.ts` | Error codes, method names for sandbox RPC |
331
- | Logger error codes | `src/utils/logger/error-codes.ts` | Module-prefixed codes (`DB_`, `AUTH_`, etc.) |
332
- | Version SSoT | `src/version.ts` | Reads from `package.json` at runtime. Both adapters `import { VERSION }` — **never hardcode version strings** |
333
-
334
- ---
335
-
336
- ## Architecture Patterns (Quick Reference)
337
-
338
- | Pattern | Description |
339
- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
340
- | **Structured Errors** | Every tool returns `{success: false, error, code, category, suggestion, recoverable}` — never raw exceptions. Uses `formatHandlerError()`. |
341
- | **Adapter Pattern** | `DatabaseAdapter` (abstract) → `SqliteAdapter` (WASM) / `NativeSqliteAdapter` (Native). Both share tool handler files from `sqlite/tools/`. |
342
- | **Schema Cache** | `SchemaManager` caches table/column metadata with configurable TTL. Auto-invalidates on DDL ops. |
343
- | **Code Mode Bridge** | `sqlite.*` API in worker thread communicates via MessagePort RPC to main thread tool handlers. All 9 groups exposed (`core`, `json`, `text`, `stats`, `vector`, `geo`, `admin`, `introspection`, `migration`). |
344
- | **Tool Filtering** | `ToolFilter` parses `--tool-filter` string → whitelist/blacklist of tool names. `codemode` auto-injected unless excluded. Help resources filtered to match enabled groups. |
345
- | **Output Schemas** | All Zod output schemas live in `output-schemas/` with named exports — **never inline** in handler files. Handlers import from `../../output-schemas/index.js`. All schemas extend `ErrorFieldsMixin.shape`. Domain-specific fields are optional so error responses pass validation. |
346
- | **Input Coercion** | All numeric params use `z.preprocess(coerceNumber, ...)` so wrong-type strings fall to defaults. Required enums use `z.string()` + handler validation. Optional enums use `coerceEnumValues()` factory. Array params coerce non-arrays to empty arrays for SDK `.partial()` compatibility. |
347
- | **Readonly Guard** | Code mode `isWriteTool()` uses fail-closed logic (`readOnlyHint === true`) — tools without annotations are blocked in readonly mode. |
348
- | **Parameter Aliases** | Core tools support backward-compatible aliases (`tableName`→`table`, `sql`→`query`, `name`→`indexName`) via `resolveAliases()` in handlers. Canonical names take precedence. |
349
- | **Barrel Re-exports** | Every directory has `index.ts` barrel. Import from `./module/index.js` (with `.js` extension for ESM). |
350
- | **Module Logger** | `createModuleLogger("moduleName")` → structured logs with `[module]` prefix. |
351
- | **Help Resources** | Pull-based `sqlite://help` + `sqlite://help/{group}` replace the old push-based `--instruction-level` flag. Per-group `.md` sources in `server-instructions/`. |
352
- | **DNS Rebinding Guard** | `localhostHostValidation()` middleware from MCP SDK on HTTP transport. |
353
-
354
- ---
355
-
356
- ## Import Path Conventions
357
-
358
- - All imports use **`.js` extension** (ESM requirement): `import { x } from "./foo/index.js"`
359
- - After splitting `foo.ts` → `foo/` directory: update imports from `./foo.js` → `./foo/index.js`
360
- - Error classes can be imported from either:
361
- - `../../utils/errors/index.js` (direct)
362
- - `../../types/index.js` (re-exported subset: `DbMcpError`, `ValidationError`, `ConnectionError`, `QueryError`, `AuthenticationError`, `AuthorizationError`)
363
-
364
- ---
365
-
366
- ## Test Infrastructure
367
-
368
- | File / Directory | Purpose |
369
- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
370
- | `test-server/README.md` | Agent testing orchestration doc |
371
- | `test-server/test-database.sql` | Seed DDL+DML (10 tables, ~400 rows) |
372
- | `test-server/reset-database.ps1` | Reset script — drops + re-seeds `test.db` |
373
- | `test-server/tool-reference.md` | Complete 151/125 tool inventory with descriptions |
374
- | `test-server/test-preflight.md` | Pre-test verification checklist |
375
- | `test-server/test-tool-groups/` | 10 self-contained test prompts — one per tool group. Direct calls only. |
376
- | `test-server/test-codemode/` | 10 self-contained test prompts — one per tool group. Code Mode execution only. |
377
- | `test-server/test-advanced/` | 10 self-contained advanced stress test prompts — one per tool group. |
378
- | `test-server/test-resources.md` | MCP resource verification prompts |
379
- | `test-server/test-prompts.md` | MCP prompt verification prompts |
380
- | `test-server/test-agent-experience.md` | 20 open-ended scenarios — validates help resource sufficiency |
381
- | `test-server/test-help-resources.mjs` | Integration test — slim instructions + help resource filtering |
382
- | `test-server/test-tool-annotations.mjs` | Integration test — openWorldHint annotation verification |
383
- | `test-server/fixtures/` | Test fixture files (e.g., `sample.csv`) |
384
- | `tests/adapters/tool-annotations.test.ts` | Vitest invariant — every tool has `annotations` with explicit `readOnlyHint`, per-group checks, title validation |
385
- | `tests/adapters/tool-output-schemas.test.ts` | Vitest invariant — every tool has `outputSchema`, error response acceptance, centralized schema wiring, no orphans |
386
- | `tests/` | Vitest unit tests (per-module) |
387
- | `tests/e2e/` | Playwright E2E tests (~50 spec files, ~300+ tests) — HTTP/SSE transport parity |
388
- | `benchmarks/` | Vitest bench performance benchmarks |
389
-
390
- ### E2E Spec Files (`tests/e2e/`)
391
-
392
- | Spec File | Coverage |
393
- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
394
- | `zod-sweep.spec.ts` | Zod validation sweep — every WASM tool called with `{}` |
395
- | `zod-sweep-native.spec.ts` | Zod validation sweep — 20 native-only tools (FTS5, window, transactions, SpatiaLite) |
396
- | `errors.spec.ts` | Basic error path tests |
397
- | `errors-extended.spec.ts` | Per-group domain error paths |
398
- | `errors-native.spec.ts` | Native-only error paths (20 tests) |
399
- | `codemode.spec.ts` | Sandbox lifecycle, security, readonly, workflows, window function smoke tests, API discoverability |
400
- | `codemode-groups.spec.ts` | All 9 groups via `sqlite.*` API |
401
- | `codemode-introspection.spec.ts` | Introspection code-mode-only params (~16 tests) |
402
- | `numeric-coercion.spec.ts` | String-typed numeric param coercion |
403
- | `numeric-coercion-native.spec.ts` | Native-only numeric coercion (8 tests) |
404
- | `boundary.spec.ts` | Empty tables, NULLs, idempotency, edge cases, vector empty table edges |
405
- | `help-resources.spec.ts` | Root + 8 group help resources listed, readable, non-empty |
406
- | `aliases.spec.ts` | Backward-compatible parameter aliases (14 tests) |
407
- | `resources.spec.ts` | MCP resource verification (schema, tables, indexes, health, meta, insights, help) |
408
- | `prompts.spec.ts` | MCP prompt verification (argsSchema, required args, content assertions) |
409
- | `transactions-nested.spec.ts` | Nested savepoint data correctness (~4 tests) |
410
- | `integration-workflows.spec.ts` | Cross-group pipelines (~8 tests) |
411
- | `payloads-*.spec.ts` | Per-group payload correctness (core, json, text, fts, stats, vector, geo, admin, introspection, migration, spatialite, transactions, window, virtual, csv) |
412
- | `auth.spec.ts`, `oauth-discovery.spec.ts` | OAuth 2.1 and RFC 9728 metadata |
413
- | `health.spec.ts` | Health endpoint verification |
414
- | `security.spec.ts` | Security header assertions, HSTS |
415
- | `sessions.spec.ts`, `session-advanced.spec.ts` | Session management (cross-protocol, sequential isolation, post-DELETE) |
416
- | `streaming.spec.ts`, `streamable-http.spec.ts` | Raw SSE streaming verification |
417
- | `rate-limiting.spec.ts` | 429 burst, Retry-After header, health exemption |
418
- | `protocols.spec.ts` | Transport protocol tests |
419
- | `stateless.spec.ts` | Stateless mode tests |
420
- | `tools.spec.ts` | Core tool listing and invocation |
421
- | `native.spec.ts`, `wasm.spec.ts` | Backend-specific tests |
@@ -1,6 +0,0 @@
1
- id,name,category,price,in_stock
2
- 1,Widget A,hardware,9.99,true
3
- 2,Widget B,hardware,14.50,true
4
- 3,Gadget X,electronics,29.99,false
5
- 4,Gadget Y,electronics,49.99,true
6
- 5,Tool Z,accessories,5.25,true