db-mcp 1.1.1 → 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 (508) hide show
  1. package/README.md +247 -169
  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-TVIZ3XJH.js → chunk-FR65YPAH.js} +8509 -3925
  351. package/dist/{chunk-AOUL5SHS.js → chunk-L552U3QS.js} +880 -252
  352. package/dist/chunk-THATOQRT.js +2624 -0
  353. package/dist/chunk-W5WQVNVX.js +568 -0
  354. package/dist/cli.d.ts +7 -0
  355. package/dist/cli.d.ts.map +1 -0
  356. package/dist/cli.js +114 -19
  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-VSB7DBJR.js → http-HWTUVFIA.js} +587 -358
  380. package/dist/index.d.ts +9 -842
  381. package/dist/index.d.ts.map +1 -0
  382. package/dist/index.js +4 -5
  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-26V3Y4MK.js → sqlite-6C3AJI4I.js} +115 -147
  394. package/dist/{sqlite-native-5O7FZJGB.js → sqlite-native-ZSSWCTYC.js} +1016 -349
  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 +33 -20
  480. package/.gitattributes +0 -2
  481. package/dist/chunk-4IA3DB5C.js +0 -135
  482. package/dist/chunk-FW7UCRLN.js +0 -82
  483. package/dist/chunk-RHVEZ42P.js +0 -873
  484. package/dist/chunk-Z2GFQU3G.js +0 -363
  485. package/dist/worker-script.d.ts +0 -2
  486. package/dist/worker-script.js +0 -126
  487. package/playwright.config.ts +0 -101
  488. package/scripts/generate-server-instructions.ts +0 -111
  489. package/server.json +0 -52
  490. package/test-server/README.md +0 -118
  491. package/test-server/code-map.md +0 -409
  492. package/test-server/fixtures/sample.csv +0 -6
  493. package/test-server/reset-database.ps1 +0 -373
  494. package/test-server/sample.csv +0 -11
  495. package/test-server/test-agent-experience.md +0 -243
  496. package/test-server/test-database.sql +0 -388
  497. package/test-server/test-group-tools.md +0 -861
  498. package/test-server/test-help-resources.mjs +0 -238
  499. package/test-server/test-preflight.md +0 -53
  500. package/test-server/test-prompts.md +0 -354
  501. package/test-server/test-resources.md +0 -245
  502. package/test-server/test-tool-annotations.mjs +0 -157
  503. package/test-server/test-tools-advanced-1.md +0 -517
  504. package/test-server/test-tools-advanced-2.md +0 -487
  505. package/test-server/test-tools-codemode.md +0 -629
  506. package/test-server/test-tools.md +0 -176
  507. package/test-server/tool-reference.md +0 -236
  508. package/tsconfig.test.json +0 -9
@@ -1,363 +0,0 @@
1
- import { ConnectionError, formatHandlerError, ValidationError } from './chunk-4IA3DB5C.js';
2
- import { isToolEnabled } from './chunk-AOUL5SHS.js';
3
- import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- import { z } from 'zod';
5
-
6
- // src/adapters/query-validation.ts
7
- var DANGEROUS_SQL_PATTERNS = [
8
- /;\s*DROP\s+/i,
9
- /;\s*DELETE\s+/i,
10
- /;\s*TRUNCATE\s+/i,
11
- /;\s*ALTER\s+/i,
12
- /;\s*UNION\s+ALL\s+SELECT/i,
13
- /;\s*UNION\s+SELECT/i,
14
- /;\s*ATTACH\s+/i,
15
- /;\s*DETACH\s+/i
16
- ];
17
- var COMMENT_SQL_PATTERNS = [/--.*$/m, /\/\*[\s\S]*?\*\//];
18
- function stripSqlStringLiterals(sql) {
19
- return sql.replace(/'(?:''|[^'])*'/g, "''");
20
- }
21
- var WRITE_PREFIXES = [
22
- "INSERT",
23
- "UPDATE",
24
- "DELETE",
25
- "DROP",
26
- "CREATE",
27
- "ALTER",
28
- "TRUNCATE"
29
- ];
30
- function validateQuery(sql, isReadOnly) {
31
- const trimmedSql = sql.trim().toUpperCase();
32
- if (isReadOnly) {
33
- for (const prefix of WRITE_PREFIXES) {
34
- if (trimmedSql.startsWith(prefix)) {
35
- throw new ValidationError(
36
- `Read-only mode: ${prefix} statements are not allowed`,
37
- "DB_READ_ONLY_VIOLATION"
38
- );
39
- }
40
- }
41
- }
42
- for (const pattern of DANGEROUS_SQL_PATTERNS) {
43
- if (pattern.test(sql)) {
44
- throw new ValidationError(
45
- "Query contains potentially dangerous patterns",
46
- "DB_DANGEROUS_PATTERN"
47
- );
48
- }
49
- }
50
- const sqlWithoutStrings = stripSqlStringLiterals(sql);
51
- for (const pattern of COMMENT_SQL_PATTERNS) {
52
- if (pattern.test(sqlWithoutStrings)) {
53
- throw new ValidationError(
54
- "Query contains potentially dangerous patterns",
55
- "DB_DANGEROUS_PATTERN"
56
- );
57
- }
58
- }
59
- }
60
-
61
- // src/adapters/registration/tools.ts
62
- function registerToolImpl(adapter, server, tool) {
63
- const toolOptions = {
64
- description: tool.description
65
- };
66
- if (tool.inputSchema !== void 0) {
67
- const schema = tool.inputSchema;
68
- if (typeof schema === "object" && schema !== null && "partial" in schema && typeof schema.partial === "function") {
69
- toolOptions["inputSchema"] = schema.partial().passthrough();
70
- } else {
71
- toolOptions["inputSchema"] = schema;
72
- }
73
- }
74
- if (tool.outputSchema !== void 0) {
75
- toolOptions["outputSchema"] = tool.outputSchema;
76
- }
77
- if (tool.annotations) {
78
- toolOptions["annotations"] = tool.annotations;
79
- }
80
- if (tool.icons) {
81
- toolOptions["icons"] = tool.icons;
82
- }
83
- const hasOutputSchema = Boolean(tool.outputSchema);
84
- server.registerTool(
85
- tool.name,
86
- toolOptions,
87
- async (args, extra) => {
88
- try {
89
- const extraMeta = extra;
90
- const progressToken = extraMeta?._meta?.progressToken;
91
- const context = adapter.createContext(
92
- void 0,
93
- server.server,
94
- progressToken
95
- );
96
- const result = await tool.handler(args, context);
97
- if (hasOutputSchema) {
98
- return {
99
- content: [
100
- {
101
- type: "text",
102
- text: JSON.stringify(result)
103
- }
104
- ],
105
- structuredContent: result
106
- };
107
- }
108
- return {
109
- content: [
110
- {
111
- type: "text",
112
- text: typeof result === "string" ? result : JSON.stringify(result)
113
- }
114
- ]
115
- };
116
- } catch (error) {
117
- const structured = formatHandlerError(error);
118
- if (hasOutputSchema) {
119
- return {
120
- content: [
121
- {
122
- type: "text",
123
- text: JSON.stringify(structured, null, 2)
124
- }
125
- ],
126
- structuredContent: structured,
127
- isError: true
128
- };
129
- }
130
- return {
131
- content: [
132
- {
133
- type: "text",
134
- text: JSON.stringify(structured, null, 2)
135
- }
136
- ],
137
- isError: true
138
- };
139
- }
140
- }
141
- );
142
- }
143
- function registerResourceImpl(adapter, server, resource) {
144
- const isTemplate = /\{[^}]+\}/.test(resource.uri);
145
- if (isTemplate) {
146
- const template = new ResourceTemplate(resource.uri, { list: void 0 });
147
- server.registerResource(
148
- resource.name,
149
- template,
150
- {
151
- mimeType: resource.mimeType ?? "application/json",
152
- description: resource.description,
153
- ...resource.icons ? { icons: resource.icons } : {}
154
- },
155
- async (resourceUri, _variables) => {
156
- const context = adapter.createContext();
157
- const content = await resource.handler(resourceUri.toString(), context);
158
- return {
159
- contents: [
160
- {
161
- uri: resourceUri.toString(),
162
- mimeType: resource.mimeType ?? "application/json",
163
- text: typeof content === "string" ? content : JSON.stringify(content, null, 2)
164
- }
165
- ]
166
- };
167
- }
168
- );
169
- } else {
170
- server.registerResource(
171
- resource.name,
172
- resource.uri,
173
- {
174
- mimeType: resource.mimeType ?? "application/json",
175
- description: resource.description,
176
- ...resource.icons ? { icons: resource.icons } : {}
177
- },
178
- async (resourceUri) => {
179
- const context = adapter.createContext();
180
- const content = await resource.handler(resourceUri.toString(), context);
181
- return {
182
- contents: [
183
- {
184
- uri: resourceUri.toString(),
185
- mimeType: resource.mimeType ?? "application/json",
186
- text: typeof content === "string" ? content : JSON.stringify(content, null, 2)
187
- }
188
- ]
189
- };
190
- }
191
- );
192
- }
193
- }
194
- function buildArgsSchema(args) {
195
- if (!args || args.length === 0) return void 0;
196
- const hasRequired = args.some((a) => a.required === true);
197
- if (!hasRequired) return void 0;
198
- const schema = {};
199
- for (const arg of args) {
200
- const field = z.string().describe(arg.description);
201
- schema[arg.name] = arg.required ? field : field.optional();
202
- }
203
- return schema;
204
- }
205
- function registerPromptImpl(adapter, server, prompt) {
206
- const argsSchema = buildArgsSchema(prompt.arguments);
207
- const iconOpts = prompt.icons ? { icons: prompt.icons } : {};
208
- const handleResult = async (args) => {
209
- const context = adapter.createContext();
210
- const safeArgs = args ?? {};
211
- const result = await prompt.handler(safeArgs, context);
212
- const messages = Array.isArray(result) ? result : [
213
- {
214
- role: "assistant",
215
- content: {
216
- type: "text",
217
- text: typeof result === "string" ? result : JSON.stringify(result)
218
- }
219
- }
220
- ];
221
- return { messages };
222
- };
223
- if (argsSchema) {
224
- server.registerPrompt(
225
- prompt.name,
226
- { description: prompt.description, argsSchema, ...iconOpts },
227
- async (args) => handleResult(args)
228
- );
229
- } else {
230
- server.registerPrompt(
231
- prompt.name,
232
- { description: prompt.description, ...iconOpts },
233
- async (args) => handleResult(args)
234
- );
235
- }
236
- }
237
-
238
- // src/adapters/database-adapter.ts
239
- var DatabaseAdapter = class {
240
- /** Connection status */
241
- connected = false;
242
- /** Database configuration */
243
- config = null;
244
- /**
245
- * Check if connected to the database
246
- */
247
- isConnected() {
248
- return this.connected;
249
- }
250
- /**
251
- * Register tools with the MCP server
252
- * @param server - MCP server instance
253
- * @param filterConfig - Tool filter configuration
254
- */
255
- registerTools(server, filterConfig) {
256
- const tools = this.getToolDefinitions();
257
- for (const tool of tools) {
258
- if (!isToolEnabled(tool, filterConfig)) {
259
- continue;
260
- }
261
- this.registerTool(server, tool);
262
- }
263
- }
264
- /**
265
- * Register a single tool with the MCP server.
266
- * Uses modern registerTool() API for MCP 2025-11-25 compliance.
267
- * Subclasses may override for custom behavior.
268
- */
269
- registerTool(server, tool) {
270
- registerToolImpl(this, server, tool);
271
- }
272
- /**
273
- * Register resources with the MCP server
274
- */
275
- registerResources(server) {
276
- const resources = this.getResourceDefinitions();
277
- for (const resource of resources) {
278
- this.registerResource(server, resource);
279
- }
280
- }
281
- /**
282
- * Register a single resource with the MCP server.
283
- * Handles both static resources and URI templates.
284
- * Subclasses may override for custom behavior.
285
- */
286
- registerResource(server, resource) {
287
- registerResourceImpl(this, server, resource);
288
- }
289
- /**
290
- * Register prompts with the MCP server
291
- */
292
- registerPrompts(server) {
293
- const prompts = this.getPromptDefinitions();
294
- for (const prompt of prompts) {
295
- this.registerPrompt(server, prompt);
296
- }
297
- }
298
- /**
299
- * Register a single prompt with the MCP server.
300
- * Subclasses may override for custom behavior.
301
- */
302
- registerPrompt(server, prompt) {
303
- registerPromptImpl(this, server, prompt);
304
- }
305
- // ===========================================================================
306
- // Utility Methods
307
- // ===========================================================================
308
- /**
309
- * Validate query for safety (SQL injection prevention)
310
- * @param sql - SQL query to validate
311
- * @param isReadOnly - Whether to enforce read-only restrictions
312
- */
313
- validateQuery(sql, isReadOnly) {
314
- validateQuery(sql, isReadOnly);
315
- }
316
- /**
317
- * Create a request context for tool execution
318
- * @param requestId Optional request ID for tracing
319
- * @param server Optional MCP Server instance for progress notifications
320
- * @param progressToken Optional progress token from client request _meta
321
- */
322
- createContext(requestId, server, progressToken) {
323
- const context = {
324
- timestamp: /* @__PURE__ */ new Date(),
325
- requestId: requestId ?? crypto.randomUUID()
326
- };
327
- if (server !== void 0) {
328
- context.server = server;
329
- }
330
- if (progressToken !== void 0) {
331
- context.progressToken = progressToken;
332
- }
333
- return context;
334
- }
335
- /**
336
- * Ensure the adapter is connected to the database.
337
- * Throws ConnectionError if not connected.
338
- * Subclasses may override to add additional checks (e.g., db instance null).
339
- */
340
- ensureConnected() {
341
- if (!this.connected) {
342
- throw new ConnectionError(
343
- "Not connected to database",
344
- "DB_NOT_CONNECTED"
345
- );
346
- }
347
- }
348
- /**
349
- * Get adapter info for logging/debugging
350
- */
351
- getInfo() {
352
- return {
353
- type: this.type,
354
- name: this.name,
355
- version: this.version,
356
- connected: this.connected,
357
- capabilities: this.getCapabilities(),
358
- toolGroups: this.getSupportedToolGroups()
359
- };
360
- }
361
- };
362
-
363
- export { DatabaseAdapter };
@@ -1,2 +0,0 @@
1
-
2
- export { }
@@ -1,126 +0,0 @@
1
- import { workerData, parentPort } from 'worker_threads';
2
- import vm from 'vm';
3
-
4
- // src/codemode/worker-script.ts
5
- function buildSqliteProxy(bindings, rpcPort) {
6
- const pending = /* @__PURE__ */ new Map();
7
- let nextId = 0;
8
- rpcPort.on("message", (msg) => {
9
- const p = pending.get(msg.id);
10
- if (p) {
11
- pending.delete(msg.id);
12
- if (msg.error) {
13
- p.reject(new Error(msg.error));
14
- } else {
15
- p.resolve(msg.result);
16
- }
17
- }
18
- });
19
- const sqlite = {};
20
- const groupNames = [];
21
- for (const [key, methods] of Object.entries(bindings)) {
22
- if (key === "_topLevel") continue;
23
- groupNames.push(key);
24
- const groupApi = {};
25
- for (const method of methods) {
26
- if (method === "help") continue;
27
- groupApi[method] = (...args) => new Promise((resolve, reject) => {
28
- const id = nextId++;
29
- pending.set(id, { resolve, reject });
30
- rpcPort.postMessage({ id, group: key, method, args });
31
- });
32
- }
33
- groupApi["help"] = () => ({
34
- group: key,
35
- methods: methods.filter((m) => m !== "help")
36
- });
37
- sqlite[key] = groupApi;
38
- }
39
- const topLevel = bindings["_topLevel"];
40
- if (topLevel) {
41
- for (const method of topLevel) {
42
- if (method === "help") {
43
- sqlite["help"] = () => ({
44
- groups: groupNames
45
- });
46
- } else {
47
- sqlite[method] = (...args) => new Promise((resolve, reject) => {
48
- const id = nextId++;
49
- pending.set(id, { resolve, reject });
50
- rpcPort.postMessage({
51
- id,
52
- group: "_topLevel",
53
- method,
54
- args
55
- });
56
- });
57
- }
58
- }
59
- }
60
- if (sqlite["help"] === void 0) {
61
- sqlite["help"] = () => ({
62
- groups: groupNames
63
- });
64
- }
65
- return sqlite;
66
- }
67
- async function executeInWorker() {
68
- const data = workerData;
69
- const { code, apiBindings, timeout, rpcPort } = data;
70
- try {
71
- rpcPort.ref();
72
- const sqlite = buildSqliteProxy(apiBindings, rpcPort);
73
- const sandbox = {
74
- sqlite,
75
- console: {
76
- log: () => {
77
- },
78
- error: () => {
79
- },
80
- warn: () => {
81
- },
82
- info: () => {
83
- },
84
- debug: () => {
85
- }
86
- },
87
- setTimeout: void 0,
88
- setInterval: void 0,
89
- setImmediate: void 0,
90
- process: void 0,
91
- require: void 0,
92
- __dirname: void 0,
93
- __filename: void 0,
94
- globalThis: void 0,
95
- global: void 0
96
- };
97
- const context = vm.createContext(sandbox, {
98
- name: "worker-sandbox"
99
- });
100
- const wrappedCode = `(async () => { ${code} })()`;
101
- const script = new vm.Script(wrappedCode, {
102
- filename: "user-code.js"
103
- });
104
- const result = await script.runInContext(context, {
105
- timeout,
106
- displayErrors: true
107
- });
108
- rpcPort.unref();
109
- rpcPort.close();
110
- const response = {
111
- success: true,
112
- result
113
- };
114
- parentPort?.postMessage(response);
115
- } catch (error) {
116
- rpcPort.unref();
117
- rpcPort.close();
118
- const response = {
119
- success: false,
120
- error: error instanceof Error ? error.message : String(error),
121
- stack: error instanceof Error ? error.stack : void 0
122
- };
123
- parentPort?.postMessage(response);
124
- }
125
- }
126
- void executeInWorker();
@@ -1,101 +0,0 @@
1
- import { defineConfig, devices } from "@playwright/test";
2
-
3
- export default defineConfig({
4
- testDir: "./tests/e2e",
5
- fullyParallel: false,
6
- forbidOnly: !!process.env.CI,
7
- retries: process.env.CI ? 2 : 0,
8
- // MCP SDK McpServer only supports one active transport at a time.
9
- // Parallel workers create competing SSE connections that steal each other's transport.
10
- workers: 1,
11
- reporter: "list",
12
- use: {
13
- trace: "on-first-retry",
14
- // 60s timeout — allows slow operations (vector stats, code mode ETL)
15
- // to complete without flaky timeouts from rate-limit backpressure
16
- actionTimeout: 0,
17
- },
18
- timeout: 60_000,
19
- projects: [
20
- {
21
- name: "wasm",
22
- use: {
23
- ...devices["Desktop Chrome"],
24
- baseURL: "http://localhost:3000",
25
- },
26
- testIgnore: [
27
- /native\./,
28
- /auth\./,
29
- /payloads-window\./,
30
- /payloads-fts\./,
31
- /payloads-transactions\./,
32
- /payloads-spatialite\./,
33
- /payloads-csv\./,
34
- /transactions-nested\./,
35
- /integration-workflows\./,
36
- /codemode-introspection\./,
37
- ],
38
- },
39
- {
40
- name: "native",
41
- use: {
42
- ...devices["Desktop Chrome"],
43
- baseURL: "http://localhost:3001",
44
- },
45
- testIgnore: [/wasm\./, /auth\./],
46
- dependencies: ["wasm"],
47
- },
48
- {
49
- name: "auth",
50
- use: {
51
- ...devices["Desktop Chrome"],
52
- baseURL: "http://localhost:3003",
53
- },
54
- testMatch: /auth\./,
55
- dependencies: ["native"],
56
- },
57
- ],
58
- webServer: [
59
- {
60
- command:
61
- "node dist/cli.js --transport http --port 3000 --sqlite ./test-server/test.db --tool-filter +all",
62
- url: "http://localhost:3000/health",
63
- reuseExistingServer: !process.env.CI,
64
- timeout: 30000,
65
- stdout: "pipe",
66
- stderr: "pipe",
67
- env: {
68
- ...process.env,
69
- MCP_RATE_LIMIT_MAX: "10000",
70
- MCP_CODEMODE_RATE_LIMIT: "10000",
71
- },
72
- },
73
- {
74
- command:
75
- "node dist/cli.js --transport http --port 3001 --sqlite-native ./test-server/test.db --csv --spatialite --tool-filter +all",
76
- url: "http://localhost:3001/health",
77
- reuseExistingServer: !process.env.CI,
78
- timeout: 30000,
79
- stdout: "pipe",
80
- stderr: "pipe",
81
- env: {
82
- ...process.env,
83
- MCP_RATE_LIMIT_MAX: "10000",
84
- MCP_CODEMODE_RATE_LIMIT: "10000",
85
- SPATIALITE_PATH:
86
- "./extensions/mod_spatialite-5.1.0-win-amd64/mod_spatialite.dll",
87
- CSV_EXTENSION_PATH: "./extensions/xsv0.dll",
88
- },
89
- },
90
- {
91
- command:
92
- "node dist/cli.js --transport http --port 3003 --auth-token test-secret --sqlite ./test-server/test.db --tool-filter +all",
93
- url: "http://localhost:3003/health",
94
- reuseExistingServer: !process.env.CI,
95
- timeout: 30000,
96
- stdout: "pipe",
97
- stderr: "pipe",
98
- env: { ...process.env, MCP_RATE_LIMIT_MAX: "10000" },
99
- },
100
- ],
101
- });
@@ -1,111 +0,0 @@
1
- /**
2
- * Generates src/constants/server-instructions.ts from per-group markdown files.
3
- *
4
- * Reads server-instructions/*.md, escapes for template literals, and wraps them
5
- * in a TypeScript module with a slim INSTRUCTIONS constant and a HELP_CONTENT map.
6
- *
7
- * Usage: node scripts/generate-server-instructions.ts
8
- */
9
-
10
- import { readFileSync, readdirSync, writeFileSync } from "node:fs";
11
- import { dirname, resolve, basename } from "node:path";
12
- import { fileURLToPath } from "node:url";
13
-
14
- const __dirname = dirname(fileURLToPath(import.meta.url));
15
- const projectRoot = resolve(__dirname, "..");
16
- const constantsDir = resolve(projectRoot, "src/constants");
17
- const helpDir = resolve(constantsDir, "server-instructions");
18
-
19
- /**
20
- * Escape content for use inside a JS/TS template literal.
21
- * Handles: backslashes, backticks, and template expressions (${).
22
- */
23
- function escapeForTemplateLiteral(content: string): string {
24
- return content
25
- .replace(/\\/g, "\\\\")
26
- .replace(/`/g, "\\`")
27
- .replace(/\$\{/g, "\\${");
28
- }
29
-
30
- // Read overview (slim instructions field content)
31
- const overviewMd = readFileSync(
32
- resolve(helpDir, "overview.md"),
33
- "utf-8",
34
- ).trim();
35
- const overviewEscaped = escapeForTemplateLiteral(overviewMd);
36
-
37
- // Read all help files (everything except overview.md)
38
- const helpFiles = readdirSync(helpDir)
39
- .filter((f) => f.endsWith(".md") && f !== "overview.md")
40
- .sort();
41
-
42
- const helpEntries: { key: string; content: string }[] = [];
43
- for (const file of helpFiles) {
44
- const key = basename(file, ".md"); // "gotchas", "json", "stats", etc.
45
- const content = readFileSync(resolve(helpDir, file), "utf-8").trim();
46
- helpEntries.push({ key, content });
47
- }
48
-
49
- // Use backtick char for building string to avoid nesting issues
50
- const BT = "`";
51
-
52
- // Build the TypeScript file using string concatenation
53
- const lines: string[] = [];
54
-
55
- lines.push("/**");
56
- lines.push(" * Server instructions for db-mcp (SQLite MCP Server).");
57
- lines.push(" *");
58
- lines.push(
59
- " * \u26a0\ufe0f AUTO-GENERATED \u2014 DO NOT EDIT THIS FILE DIRECTLY",
60
- );
61
- lines.push(" * Edit src/constants/server-instructions/*.md instead,");
62
- lines.push(" * then run: npm run generate:instructions");
63
- lines.push(" *");
64
- lines.push(
65
- " * Slim instructions are sent to MCP clients during initialization.",
66
- );
67
- lines.push(
68
- " * Detailed help is available on-demand via sqlite://help resources.",
69
- );
70
- lines.push(" */");
71
- lines.push("");
72
- lines.push("/**");
73
- lines.push(" * Slim instructions for the MCP instructions field (~600 chars).");
74
- lines.push(
75
- " * Points agents to sqlite://help resources for detailed reference.",
76
- );
77
- lines.push(" */");
78
- lines.push("export const INSTRUCTIONS = " + BT + overviewEscaped + BT + ";");
79
- lines.push("");
80
- lines.push("/**");
81
- lines.push(" * Help content keyed by group name.");
82
- lines.push(" * 'gotchas' is the always-available help (sqlite://help).");
83
- lines.push(" * Other keys are tool groups (sqlite://help/{group}).");
84
- lines.push(" */");
85
- lines.push(
86
- "export const HELP_CONTENT: ReadonlyMap<string, string> = new Map([",
87
- );
88
- for (const { key, content } of helpEntries) {
89
- const escaped = escapeForTemplateLiteral(content);
90
- lines.push(" [" + JSON.stringify(key) + ", " + BT + escaped + BT + "],");
91
- }
92
- lines.push("]);");
93
- lines.push("");
94
-
95
- const tsContent = lines.join("\n");
96
- const tsPath = resolve(constantsDir, "server-instructions.ts");
97
- writeFileSync(tsPath, tsContent, "utf-8");
98
-
99
- process.stderr.write(
100
- [
101
- "",
102
- "\u2705 Generated server-instructions.ts (" +
103
- tsContent.length.toLocaleString() +
104
- " bytes) from " +
105
- (helpEntries.length + 1) +
106
- " markdown files",
107
- " Overview: " + overviewMd.length.toLocaleString() + " chars",
108
- " Help entries: " + helpEntries.map((e) => e.key).join(", "),
109
- "",
110
- ].join("\n"),
111
- );