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,80 +1,175 @@
1
- import { ConnectionError, formatHandlerError, ValidationError } from './chunk-X3MUUOWM.js';
2
- import { isToolEnabled } from './chunk-645ZEFLA.js';
1
+ import { registerToolScope } from './chunk-E5IESRTK.js';
2
+ import { ValidationError, getAuthContext, isToolEnabled, ConnectionError, registerToolScopes, scopesGrantToolAccess, InsufficientScopeError, formatHandlerError } from './chunk-L552U3QS.js';
3
+ import sqliteParser from 'sqlite-parser';
3
4
  import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
4
5
  import { z } from 'zod';
5
6
 
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
- ];
7
+ var UNSAFE_FUNCTIONS = /* @__PURE__ */ new Set([
8
+ "LOAD_EXTENSION",
9
+ "WRITEFILE",
10
+ "READFILE",
11
+ "ATTACH",
12
+ "DETACH"
13
+ ]);
14
+ var BLOCKED_PRAGMAS = /* @__PURE__ */ new Set([
15
+ "writable_schema",
16
+ "trusted_schema",
17
+ "defensive",
18
+ "cell_size_check",
19
+ "temp_store_directory",
20
+ "journal_mode",
21
+ "synchronous",
22
+ "page_size",
23
+ "temp_store",
24
+ "wal_autocheckpoint",
25
+ "locking_mode",
26
+ "mmap_size",
27
+ "busy_timeout",
28
+ "cache_size"
29
+ ]);
30
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
- );
31
+ if (!sql || sql.trim() === "") {
32
+ return;
33
+ }
34
+ let stripped = "";
35
+ let inString = false;
36
+ let stringChar = "";
37
+ let inBlockComment = false;
38
+ let inLineComment = false;
39
+ for (let i = 0; i < sql.length; i++) {
40
+ const c = sql[i];
41
+ const next = sql[i + 1] || "";
42
+ if (inBlockComment) {
43
+ if (c === "*" && next === "/") {
44
+ inBlockComment = false;
45
+ i++;
39
46
  }
47
+ continue;
48
+ }
49
+ if (inLineComment) {
50
+ if (c === "\n") {
51
+ inLineComment = false;
52
+ }
53
+ continue;
54
+ }
55
+ if (inString) {
56
+ if (c === stringChar) {
57
+ if (next === stringChar) {
58
+ i++;
59
+ } else {
60
+ inString = false;
61
+ }
62
+ }
63
+ continue;
64
+ }
65
+ if (c === "'" || c === '"' || c === "`" || c === "[") {
66
+ inString = true;
67
+ stringChar = c === "[" ? "]" : c;
68
+ continue;
40
69
  }
70
+ if (c === "-" && next === "-") {
71
+ inLineComment = true;
72
+ i++;
73
+ continue;
74
+ }
75
+ if (c === "/" && next === "*") {
76
+ inBlockComment = true;
77
+ i++;
78
+ continue;
79
+ }
80
+ stripped += c;
41
81
  }
42
- for (const pattern of DANGEROUS_SQL_PATTERNS) {
43
- if (pattern.test(sql)) {
82
+ const pragmaMatches = stripped.matchAll(
83
+ /\bPRAGMA\s+(?:[a-zA-Z_]+\.)?([a-zA-Z_]+)\s*(?:=|\()/gi
84
+ );
85
+ for (const match2 of pragmaMatches) {
86
+ if (match2[1] && BLOCKED_PRAGMAS.has(match2[1].toLowerCase())) {
44
87
  throw new ValidationError(
45
- "Query contains potentially dangerous patterns",
88
+ `Mutating PRAGMA '${match2[1]}' is blocked for security`,
46
89
  "DB_DANGEROUS_PATTERN"
47
90
  );
48
91
  }
49
92
  }
50
- const sqlWithoutStrings = stripSqlStringLiterals(sql);
51
- for (const pattern of COMMENT_SQL_PATTERNS) {
52
- if (pattern.test(sqlWithoutStrings)) {
93
+ let ast = null;
94
+ let parseError = false;
95
+ try {
96
+ ast = sqliteParser(stripped);
97
+ } catch {
98
+ parseError = true;
99
+ }
100
+ if (ast !== null && typeof ast === "object" && "statement" in ast && Array.isArray(ast.statement)) {
101
+ if (ast.statement.length > 1) {
102
+ throw new ValidationError(
103
+ "Multiple stacked statements are not allowed.",
104
+ "DB_DANGEROUS_PATTERN"
105
+ );
106
+ }
107
+ } else if (parseError) {
108
+ if (/;\s*(?:INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|REPLACE|UPSERT|PRAGMA|TRUNCATE)\b/i.test(
109
+ stripped
110
+ )) {
53
111
  throw new ValidationError(
54
- "Query contains potentially dangerous patterns",
112
+ "Multiple stacked statements are not allowed.",
55
113
  "DB_DANGEROUS_PATTERN"
56
114
  );
57
115
  }
58
116
  }
117
+ const rootStmt = stripped.trim();
118
+ if (isReadOnly) {
119
+ const isSafeRead = /^\s*(?:WITH\s+[\s\S]+?)?(?:SELECT|EXPLAIN|PRAGMA)\b/i.test(rootStmt);
120
+ const writeMatch = /\b(INSERT|UPDATE|DELETE|REPLACE|DROP|CREATE|ALTER|VACUUM|ANALYZE|TRUNCATE)\b/i.exec(
121
+ rootStmt
122
+ );
123
+ if (writeMatch) {
124
+ throw new ValidationError(
125
+ `Read-only mode: ${writeMatch[1]?.toUpperCase() ?? "WRITE"} statements are not allowed`,
126
+ "DB_READ_ONLY_VIOLATION"
127
+ );
128
+ }
129
+ if (!isSafeRead) {
130
+ throw new ValidationError(
131
+ `Read-only mode violation: statement contains disallowed keywords`,
132
+ "DB_READ_ONLY_VIOLATION"
133
+ );
134
+ }
135
+ } else {
136
+ const ddlPattern = /^\s*(?:BEGIN\s+)?(?:WITH\s+[\s\S]+?)?(CREATE|DROP|ALTER|VACUUM|ANALYZE)\b/i;
137
+ if (ddlPattern.test(stripped)) {
138
+ const authCtx = getAuthContext();
139
+ if (authCtx && authCtx.authenticated && !authCtx.scopes.includes("admin") && !authCtx.scopes.includes("full")) {
140
+ throw new ValidationError(
141
+ "DDL operations (CREATE, DROP, ALTER) require 'admin' or 'full' scope",
142
+ "DB_ADMIN_REQUIRED"
143
+ );
144
+ }
145
+ }
146
+ }
147
+ const unsafePattern = new RegExp(
148
+ `\\b(${Array.from(UNSAFE_FUNCTIONS).join("|")})\\b`,
149
+ "i"
150
+ );
151
+ const match = unsafePattern.exec(stripped);
152
+ if (match) {
153
+ throw new ValidationError(
154
+ `Unsafe function call detected: ${match[0].toUpperCase()}`,
155
+ "DB_DANGEROUS_PATTERN"
156
+ );
157
+ }
59
158
  }
60
159
 
61
160
  // src/adapters/registration/tools.ts
62
161
  function registerToolImpl(adapter, server, tool) {
162
+ const safeDescription = tool.description && tool.description.length > 2e3 ? tool.description.substring(0, 2e3) + "... (truncated)" : tool.description;
63
163
  const toolOptions = {
64
- description: tool.description
164
+ description: safeDescription,
165
+ ...tool.annotations?.title ? { title: tool.annotations.title.substring(0, 256) } : {}
65
166
  };
167
+ const requiredScope = tool.requiredScopes?.[0] ?? "admin";
168
+ registerToolScope(tool.name, requiredScope);
169
+ registerToolScopes(/* @__PURE__ */ new Map([[tool.name, tool.requiredScopes ?? ["admin"]]]));
66
170
  if (tool.inputSchema !== void 0) {
67
171
  const schema = tool.inputSchema;
68
- if (typeof schema === "object" && schema !== null && "partial" in schema && typeof schema["partial"] === "function") {
69
- try {
70
- toolOptions["inputSchema"] = schema.partial().passthrough();
71
- } catch (e) {
72
- console.error(`Error applying .partial() to ${tool.name}:`, e);
73
- toolOptions["inputSchema"] = schema;
74
- }
75
- } else {
76
- toolOptions["inputSchema"] = schema;
77
- }
172
+ toolOptions["inputSchema"] = schema;
78
173
  }
79
174
  if (tool.outputSchema !== void 0) {
80
175
  toolOptions["outputSchema"] = tool.outputSchema;
@@ -101,6 +196,12 @@ function registerToolImpl(adapter, server, tool) {
101
196
  progressToken
102
197
  );
103
198
  const execFn = async () => {
199
+ const authCtx = getAuthContext();
200
+ const requiredScopes = tool.requiredScopes ?? ["admin"];
201
+ const userScopes = authCtx?.scopes ?? [];
202
+ if (authCtx && !scopesGrantToolAccess(userScopes, tool.name)) {
203
+ throw new InsufficientScopeError(requiredScopes, userScopes);
204
+ }
104
205
  const result = await tool.handler(args, context);
105
206
  if (hasOutputSchema) {
106
207
  const enriched = JSON.stringify({
@@ -114,7 +215,7 @@ function registerToolImpl(adapter, server, tool) {
114
215
  '"tokenEstimate":0',
115
216
  `"tokenEstimate":${String(tokenEstimate)}`
116
217
  );
117
- return {
218
+ const response = {
118
219
  content: [
119
220
  {
120
221
  type: "text",
@@ -123,6 +224,10 @@ function registerToolImpl(adapter, server, tool) {
123
224
  ],
124
225
  structuredContent: result
125
226
  };
227
+ if (result["success"] === false) {
228
+ response.isError = true;
229
+ }
230
+ return response;
126
231
  }
127
232
  if (typeof result === "object" && result !== null) {
128
233
  const withMeta = JSON.stringify(
@@ -137,9 +242,13 @@ function registerToolImpl(adapter, server, tool) {
137
242
  '"tokenEstimate": 0',
138
243
  `"tokenEstimate": ${String(tokenEstimate)}`
139
244
  );
140
- return {
245
+ const response = {
141
246
  content: [{ type: "text", text: finalText }]
142
247
  };
248
+ if (result["success"] === false) {
249
+ response.isError = true;
250
+ }
251
+ return response;
143
252
  }
144
253
  return {
145
254
  content: [
@@ -267,7 +376,7 @@ function buildArgsSchema(args) {
267
376
  if (!hasRequired) return void 0;
268
377
  const schema = {};
269
378
  for (const arg of args) {
270
- const field = z.string().describe(arg.description);
379
+ const field = z.string().max(200, "Argument too long").describe(arg.description);
271
380
  schema[arg.name] = arg.required ? field : field.optional();
272
381
  }
273
382
  return schema;
@@ -413,9 +522,12 @@ var DatabaseAdapter = class {
413
522
  * @param progressToken Optional progress token from client request _meta
414
523
  */
415
524
  createContext(requestId, server, progressToken) {
525
+ const authContext = getAuthContext();
416
526
  const context = {
417
527
  timestamp: /* @__PURE__ */ new Date(),
418
- requestId: requestId ?? crypto.randomUUID()
528
+ requestId: requestId ?? crypto.randomUUID(),
529
+ auth: authContext?.claims,
530
+ clientIp: authContext?.clientIp
419
531
  };
420
532
  if (server !== void 0) {
421
533
  context.server = server;
@@ -453,4 +565,4 @@ var DatabaseAdapter = class {
453
565
  }
454
566
  };
455
567
 
456
- export { DatabaseAdapter };
568
+ export { DatabaseAdapter, validateQuery };
package/dist/cli.d.ts CHANGED
@@ -1 +1,8 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * db-mcp - Command Line Interface
4
+ *
5
+ * Entry point for running the db-mcp server from the command line.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
package/dist/cli.js CHANGED
@@ -1,8 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { DEFAULT_CONFIG, createServer } from './chunk-WBER5YY4.js';
3
- import './chunk-SFJQCNG7.js';
4
- import { VERSION } from './chunk-VIDSICEL.js';
5
- import './chunk-645ZEFLA.js';
2
+ import { DEFAULT_CONFIG, createServer } from './chunk-THATOQRT.js';
3
+ import { VERSION } from './chunk-E5IESRTK.js';
4
+ import { logger } from './chunk-L552U3QS.js';
6
5
 
7
6
  // src/audit/types.ts
8
7
  var DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES = 10 * 1024 * 1024;
@@ -18,7 +17,7 @@ function parseArgs() {
18
17
  let enableCsv = false;
19
18
  let enableSpatialite = false;
20
19
  let auditLogPath;
21
- let auditRedact = false;
20
+ let auditRedact = true;
22
21
  let auditReads = false;
23
22
  let auditBackup = false;
24
23
  let auditBackupData = false;
@@ -43,11 +42,8 @@ function parseArgs() {
43
42
  config.statelessHttp = true;
44
43
  } else if (arg === "--enable-hsts") {
45
44
  config.enableHSTS = true;
46
- } else if (arg === "--auth-token") {
47
- const tokenValue = args[++i];
48
- if (tokenValue) {
49
- config.authToken = tokenValue;
50
- }
45
+ } else if (arg === "--no-auth-enforcement") {
46
+ config.noAuthEnforcement = true;
51
47
  } else if (arg === "--oauth-enabled" || arg === "-o") {
52
48
  if (!config.oauth) {
53
49
  config.oauth = { enabled: true };
@@ -132,8 +128,8 @@ function parseArgs() {
132
128
  if (logPath) {
133
129
  auditLogPath = logPath;
134
130
  }
135
- } else if (arg === "--audit-redact") {
136
- auditRedact = true;
131
+ } else if (arg === "--audit-no-redact") {
132
+ auditRedact = false;
137
133
  } else if (arg === "--audit-reads") {
138
134
  auditReads = true;
139
135
  } else if (arg === "--audit-backup") {
@@ -177,19 +173,19 @@ Usage: db-mcp [options]
177
173
  Transport Options:
178
174
  --transport, -t <type> Transport type: stdio (default), http, sse
179
175
  --port, -p <port> HTTP port (default: 3000)
180
- --server-host <host> Host/IP to bind to (default: 0.0.0.0)
181
- Use 127.0.0.1 to restrict to local connections
176
+ --server-host <host> Host/IP to bind to (default: 127.0.0.1)
177
+ Use 127.0.0.1 for local, 0.0.0.0 to allow external connections
182
178
  --stateless Use stateless HTTP mode (no session management, no SSE)
183
179
  Ideal for serverless deployments (Lambda, Workers)
184
180
  --enable-hsts Enable HSTS header (use when behind HTTPS)
185
181
 
186
182
  Authentication Options:
187
- --auth-token <token> Simple bearer token for HTTP authentication
183
+ --no-auth-enforcement Explicitly bypass auth enforcement for HTTP
188
184
  --oauth-enabled, -o Enable OAuth 2.1 authentication
189
185
  --oauth-issuer <url> Authorization server URL (issuer)
190
186
  --oauth-audience <aud> Expected token audience
191
187
  --oauth-jwks-uri <url> JWKS URI (auto-discovered from issuer if not set)
192
- --oauth-clock-tolerance <seconds> Clock tolerance in seconds (default: 60)
188
+ --oauth-clock-tolerance <seconds> Clock tolerance in seconds (default: 30)
193
189
 
194
190
  Database Options:
195
191
  --sqlite <path> Add SQLite database (WASM/sql.js)
@@ -201,7 +197,7 @@ Extension Options (Native only):
201
197
 
202
198
  Audit Options:
203
199
  --audit-log <path> Enable audit logging (JSONL file path, or "stderr")
204
- --audit-redact Redact tool arguments from audit entries
200
+ --audit-no-redact Include tool arguments in audit entries (default: redacted)
205
201
  --audit-reads Also log read-scoped tool invocations
206
202
  --audit-backup Enable pre-mutation DDL snapshots
207
203
  --audit-backup-data Include sample data rows in snapshots
@@ -216,8 +212,8 @@ Server Options:
216
212
  Legacy: -vector,-geo (exclusion from all)
217
213
 
218
214
  Environment Variables:
219
- MCP_HOST Host/IP to bind to (default: 0.0.0.0)
220
- MCP_AUTH_TOKEN Simple bearer token (same as --auth-token)
215
+ MCP_HOST Host/IP to bind to (default: 127.0.0.1)
216
+ MCP_AUTH_TOKEN Simple bearer token
221
217
  OAUTH_ENABLED Enable OAuth 2.1 (same as --oauth-enabled)
222
218
  OAUTH_ISSUER Authorization server URL
223
219
  OAUTH_AUDIENCE Expected token audience
@@ -229,7 +225,7 @@ Environment Variables:
229
225
  CSV_EXTENSION_PATH Custom path to CSV extension binary
230
226
  SPATIALITE_PATH Custom path to SpatiaLite extension binary
231
227
  AUDIT_LOG Audit log file path (or "stderr")
232
- AUDIT_REDACT Redact arguments (true/false)
228
+ AUDIT_REDACT Redact arguments (default: true, set false to include args)
233
229
  AUDIT_READS Log reads (true/false)
234
230
  AUDIT_BACKUP Enable backups (true/false)
235
231
  AUDIT_BACKUP_DATA Include data (true/false)
@@ -252,8 +248,19 @@ function loadEnvConfig() {
252
248
  }
253
249
  const authToken = process.env["MCP_AUTH_TOKEN"];
254
250
  if (authToken) {
251
+ if (authToken.length < 32) {
252
+ logger.warning(
253
+ "MCP_AUTH_TOKEN is too short (< 32 chars). Use a cryptographically random token."
254
+ );
255
+ }
255
256
  config.authToken = authToken;
256
257
  }
258
+ if (process.env["NO_AUTH_ENFORCEMENT"] === "true") {
259
+ logger.warning(
260
+ "Auth enforcement explicitly disabled via NO_AUTH_ENFORCEMENT. Ensure this is not running in production."
261
+ );
262
+ config.noAuthEnforcement = true;
263
+ }
257
264
  const oauthEnabled = process.env["OAUTH_ENABLED"] === "true";
258
265
  if (oauthEnabled) {
259
266
  const oauth = { enabled: true };
@@ -279,7 +286,7 @@ function loadEnvConfig() {
279
286
  config.audit = {
280
287
  enabled: true,
281
288
  logPath: auditLog,
282
- redact: process.env["AUDIT_REDACT"] === "true",
289
+ redact: process.env["AUDIT_REDACT"] !== "false",
283
290
  auditReads: process.env["AUDIT_READS"] === "true",
284
291
  maxSizeBytes: DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES,
285
292
  ...process.env["AUDIT_BACKUP"] === "true" && {
@@ -315,6 +322,13 @@ async function main() {
315
322
  ...cliConfig.databases ?? []
316
323
  ]
317
324
  };
325
+ if (process.env["NODE_ENV"] === "production" && config.transport === "http" && !config.oauth?.enabled && !config.authToken && !config.noAuthEnforcement) {
326
+ logger.error(
327
+ "FATAL SECURITY ERROR: HTTP transport in production requires authentication (--oauth-enabled or --auth-token). If you intend to run without authentication, you must explicitly pass --no-auth-enforcement.",
328
+ { module: "SERVER" }
329
+ );
330
+ process.exit(1);
331
+ }
318
332
  const server = createServer(config);
319
333
  process.on("SIGINT", () => {
320
334
  void server.shutdown().then(() => {
@@ -330,25 +344,32 @@ async function main() {
330
344
  if (dbConfig.type === "sqlite") {
331
345
  const options = dbConfig.options;
332
346
  if (options?.backend === "better-sqlite3") {
333
- const { NativeSqliteAdapter } = await import('./sqlite-native-JXMCFQBA.js');
347
+ const { NativeSqliteAdapter } = await import('./sqlite-native-ZSSWCTYC.js');
334
348
  const adapter = new NativeSqliteAdapter();
335
349
  await server.registerAdapter(adapter, dbConfig);
336
350
  } else {
337
- const { SqliteAdapter } = await import('./sqlite-U5KSYQXK.js');
351
+ const { SqliteAdapter } = await import('./sqlite-6C3AJI4I.js');
338
352
  const adapter = new SqliteAdapter();
339
353
  await server.registerAdapter(adapter, dbConfig);
340
354
  }
341
355
  }
342
356
  }
343
357
  if (config.databases.length === 0) {
344
- console.error(
358
+ logger.warning(
345
359
  "Warning: No databases configured. Use --sqlite or --sqlite-native, or set SQLITE_DATABASE"
346
360
  );
347
361
  }
348
362
  await server.start();
349
363
  } catch (error) {
350
- console.error("Fatal error:", error);
364
+ logger.error("Fatal error", {
365
+ error: error instanceof Error ? error : new Error(String(error))
366
+ });
351
367
  process.exit(1);
352
368
  }
353
369
  }
354
- main().catch(console.error);
370
+ main().catch((error) => {
371
+ logger.error("Unhandled fatal error", {
372
+ error: error instanceof Error ? error : new Error(String(error))
373
+ });
374
+ process.exit(1);
375
+ });
@@ -0,0 +1,40 @@
1
+ /**
2
+ * db-mcp - Code Mode API Constants
3
+ *
4
+ * Static constant maps for the sandbox API:
5
+ * - METHOD_ALIASES: shorthand names within each group
6
+ * - GROUP_EXAMPLES: help() output per group
7
+ * - POSITIONAL_PARAM_MAP: positional → named arg mapping
8
+ * - GROUP_PREFIX_MAP: tool name prefix stripping rules
9
+ * - KEEP_PREFIX_GROUPS: groups that retain their prefix in method names
10
+ */
11
+ /**
12
+ * Aliases for common naming shortcuts within each group.
13
+ * Maps alias name → canonical method name.
14
+ */
15
+ export declare const METHOD_ALIASES: Record<string, Record<string, string>>;
16
+ /**
17
+ * Usage examples for each group's help() output
18
+ */
19
+ export declare const GROUP_EXAMPLES: Record<string, string[]>;
20
+ /**
21
+ * Maps method names to their parameter names for positional argument support.
22
+ * Single string = first positional arg maps to this key.
23
+ * Array = multiple positional args map to these keys in order.
24
+ *
25
+ * Enables:
26
+ * - `sqlite.core.readQuery("SELECT...")` → `{ query: "SELECT..." }`
27
+ * - `sqlite.core.describeTable("users")` → `{ table: "users" }`
28
+ */
29
+ export declare const POSITIONAL_PARAM_MAP: Record<string, string | string[]>;
30
+ /**
31
+ * Map group name to the prefix used in tool names.
32
+ * Some groups use different prefixes.
33
+ */
34
+ export declare const GROUP_PREFIX_MAP: Record<string, string>;
35
+ /**
36
+ * Groups where the prefix should be kept in the method name
37
+ * (because it's semantically part of the method identity)
38
+ */
39
+ export declare const KEEP_PREFIX_GROUPS: Set<string>;
40
+ //# sourceMappingURL=api-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-constants.d.ts","sourceRoot":"","sources":["../../src/codemode/api-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsEjE,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAwDnD,CAAC;AAMF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkIlE,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAA2C,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * db-mcp - Code Mode API
3
+ *
4
+ * Generates the `sqlite.*` API object that is injected into the sandbox.
5
+ * Each tool group becomes a namespace (e.g., `sqlite.core.readQuery()`).
6
+ *
7
+ * Architecture:
8
+ * - Reads tool definitions from the adapter
9
+ * - Groups tools by their `group` property
10
+ * - Converts tool names to camelCase method names
11
+ * - Creates proxy methods that normalize positional args and call handlers
12
+ * - Exposes `help()` at top level and per-group for discoverability
13
+ */
14
+ import type { ToolDefinition, ToolGroup, RequestContext } from "../types/index.js";
15
+ /**
16
+ * Convert tool name to camelCase method name.
17
+ *
18
+ * Examples:
19
+ * sqlite_read_query (core) → readQuery
20
+ * sqlite_json_extract (json) → extract
21
+ * sqlite_stats_basic (stats) → statsBasic
22
+ * sqlite_vector_search (vector) → search
23
+ * sqlite_geo_distance (geo) → distance
24
+ * sqlite_backup (admin) → backup
25
+ * sqlite_transaction_begin (admin) → transactionBegin
26
+ * sqlite_transaction_begin (transactions) → begin
27
+ */
28
+ export declare function toolNameToMethodName(toolName: string, groupName: string): string;
29
+ /** Type alias for group API record */
30
+ type GroupApiRecord = Record<string, (...args: unknown[]) => Promise<unknown>>;
31
+ /**
32
+ * Main API class exposing all SQLite tool groups.
33
+ * This is the object injected as `sqlite` in the sandbox.
34
+ */
35
+ export declare class SqliteApi {
36
+ readonly core: GroupApiRecord;
37
+ readonly json: GroupApiRecord;
38
+ readonly text: GroupApiRecord;
39
+ readonly stats: GroupApiRecord;
40
+ readonly vector: GroupApiRecord;
41
+ readonly admin: GroupApiRecord;
42
+ readonly transactions: GroupApiRecord;
43
+ readonly geo: GroupApiRecord;
44
+ readonly introspection: GroupApiRecord;
45
+ readonly migration: GroupApiRecord;
46
+ private readonly toolsByGroup;
47
+ private readonly baseContext;
48
+ constructor(tools: ToolDefinition[], baseContext?: RequestContext);
49
+ /**
50
+ * Get all available groups
51
+ */
52
+ getGroups(): string[];
53
+ /**
54
+ * Get method names for a group
55
+ */
56
+ getGroupMethods(group: ToolGroup): string[];
57
+ /**
58
+ * Create the sandbox bindings object.
59
+ * This is the object injected as `sqlite` in the sandbox.
60
+ * Includes group namespaces + top-level aliases for common operations.
61
+ */
62
+ createSandboxBindings(): Record<string, unknown>;
63
+ }
64
+ /**
65
+ * Create a SqliteApi instance from tool definitions.
66
+ * Convenience factory for use in tool handler setup.
67
+ */
68
+ export declare function createSqliteApi(tools: ToolDefinition[], baseContext?: RequestContext): SqliteApi;
69
+ export {};
70
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/codemode/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACf,MAAM,mBAAmB,CAAC;AAW3B;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AA6GD,sCAAsC;AACtC,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AA8E/E;;;GAGG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAE7C,KAAK,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC,EAAE,cAAc;IAkEjE;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE;IAU3C;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAuDjD;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EAAE,EACvB,WAAW,CAAC,EAAE,cAAc,GAC3B,SAAS,CAEX"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * db-mcp — Code Mode Auto-Return Transform
3
+ *
4
+ * Transforms user code so the last expression statement is implicitly
5
+ * returned from the async IIFE wrapper. Mimics Node REPL / Chrome
6
+ * DevTools semantics where bare expressions surface their value.
7
+ *
8
+ * The transform is intentionally heuristic (string-based, not AST)
9
+ * because the code runs in a sandboxed vm.Script that already
10
+ * handles syntax errors. Edge-case misfires are safe — they either
11
+ * produce a benign return of the last expression or leave the code
12
+ * unchanged (returning undefined, the previous behavior).
13
+ */
14
+ /**
15
+ * Transform user code so the last expression statement gets an
16
+ * implicit `return`, enabling the IIFE wrapper to propagate the value.
17
+ *
18
+ * Examples:
19
+ * `sqlite.help()` → `return sqlite.help()`
20
+ * `const r = await foo(); r` → `const r = await foo(); return r`
21
+ * `return 42` → `return 42` (no change)
22
+ * `for (const x of xs) { ... }` → unchanged (control flow)
23
+ */
24
+ export declare function transformAutoReturn(code: string): string;
25
+ //# sourceMappingURL=auto-return.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-return.d.ts","sourceRoot":"","sources":["../../src/codemode/auto-return.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsCxD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * db-mcp - Code Mode Module
3
+ *
4
+ * Exports for the sandboxed code execution environment.
5
+ */
6
+ export type { SandboxOptions, PoolOptions, SandboxResult, ExecutionMetrics, SecurityConfig, ValidationResult, ExecutionRecord, ExecuteCodeOptions, ExecuteCodeResult, GroupApi, } from "./types.js";
7
+ export { DEFAULT_SANDBOX_OPTIONS, DEFAULT_POOL_OPTIONS, DEFAULT_SECURITY_CONFIG, } from "./types.js";
8
+ export { CodeModeSandbox, SandboxPool } from "./sandbox.js";
9
+ export { setDefaultSandboxMode, getDefaultSandboxMode, getAvailableSandboxModes, createSandbox, createSandboxPool, getSandboxModeInfo, type SandboxMode, type ISandbox, type ISandboxPool, type SandboxModeInfo, } from "./sandbox-factory.js";
10
+ export { CodeModeSecurityManager } from "./security.js";
11
+ export { SqliteApi, createSqliteApi } from "./api.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codemode/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}