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
package/dist/cli.js CHANGED
@@ -1,7 +1,13 @@
1
1
  #!/usr/bin/env node
2
- import { DEFAULT_CONFIG, createServer } from './chunk-RHVEZ42P.js';
3
- import { VERSION } from './chunk-FW7UCRLN.js';
4
- import './chunk-AOUL5SHS.js';
2
+ import { DEFAULT_CONFIG, createServer } from './chunk-THATOQRT.js';
3
+ import { VERSION } from './chunk-E5IESRTK.js';
4
+ import { logger } from './chunk-L552U3QS.js';
5
+
6
+ // src/audit/types.ts
7
+ var DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES = 10 * 1024 * 1024;
8
+ var DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES = 50 * 1024 * 1024;
9
+ var DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS = 30;
10
+ var DEFAULT_AUDIT_BACKUP_MAX_COUNT = 1e3;
5
11
 
6
12
  // src/cli.ts
7
13
  function parseArgs() {
@@ -10,6 +16,11 @@ function parseArgs() {
10
16
  const databases = [];
11
17
  let enableCsv = false;
12
18
  let enableSpatialite = false;
19
+ let auditLogPath;
20
+ let auditRedact = true;
21
+ let auditReads = false;
22
+ let auditBackup = false;
23
+ let auditBackupData = false;
13
24
  for (let i = 0; i < args.length; i++) {
14
25
  const arg = args[i];
15
26
  if (arg === "--transport" || arg === "-t") {
@@ -31,11 +42,8 @@ function parseArgs() {
31
42
  config.statelessHttp = true;
32
43
  } else if (arg === "--enable-hsts") {
33
44
  config.enableHSTS = true;
34
- } else if (arg === "--auth-token") {
35
- const tokenValue = args[++i];
36
- if (tokenValue) {
37
- config.authToken = tokenValue;
38
- }
45
+ } else if (arg === "--no-auth-enforcement") {
46
+ config.noAuthEnforcement = true;
39
47
  } else if (arg === "--oauth-enabled" || arg === "-o") {
40
48
  if (!config.oauth) {
41
49
  config.oauth = { enabled: true };
@@ -115,6 +123,19 @@ function parseArgs() {
115
123
  if (lastDb?.options && "backend" in lastDb.options) {
116
124
  lastDb.options["spatialite"] = true;
117
125
  }
126
+ } else if (arg === "--audit-log") {
127
+ const logPath = args[++i];
128
+ if (logPath) {
129
+ auditLogPath = logPath;
130
+ }
131
+ } else if (arg === "--audit-no-redact") {
132
+ auditRedact = false;
133
+ } else if (arg === "--audit-reads") {
134
+ auditReads = true;
135
+ } else if (arg === "--audit-backup") {
136
+ auditBackup = true;
137
+ } else if (arg === "--audit-backup-data") {
138
+ auditBackupData = true;
118
139
  } else if (arg === "--help" || arg === "-h") {
119
140
  printHelp();
120
141
  process.exit(0);
@@ -123,6 +144,24 @@ function parseArgs() {
123
144
  if (databases.length > 0) {
124
145
  config.databases = databases;
125
146
  }
147
+ if (auditLogPath) {
148
+ config.audit = {
149
+ enabled: true,
150
+ logPath: auditLogPath,
151
+ redact: auditRedact,
152
+ auditReads,
153
+ maxSizeBytes: DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES,
154
+ ...auditBackup && {
155
+ backup: {
156
+ enabled: true,
157
+ includeData: auditBackupData,
158
+ maxAgeDays: DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS,
159
+ maxCount: DEFAULT_AUDIT_BACKUP_MAX_COUNT,
160
+ maxDataSizeBytes: DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES
161
+ }
162
+ }
163
+ };
164
+ }
126
165
  return config;
127
166
  }
128
167
  function printHelp() {
@@ -134,19 +173,19 @@ Usage: db-mcp [options]
134
173
  Transport Options:
135
174
  --transport, -t <type> Transport type: stdio (default), http, sse
136
175
  --port, -p <port> HTTP port (default: 3000)
137
- --server-host <host> Host/IP to bind to (default: 0.0.0.0)
138
- 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
139
178
  --stateless Use stateless HTTP mode (no session management, no SSE)
140
179
  Ideal for serverless deployments (Lambda, Workers)
141
180
  --enable-hsts Enable HSTS header (use when behind HTTPS)
142
181
 
143
182
  Authentication Options:
144
- --auth-token <token> Simple bearer token for HTTP authentication
183
+ --no-auth-enforcement Explicitly bypass auth enforcement for HTTP
145
184
  --oauth-enabled, -o Enable OAuth 2.1 authentication
146
185
  --oauth-issuer <url> Authorization server URL (issuer)
147
186
  --oauth-audience <aud> Expected token audience
148
187
  --oauth-jwks-uri <url> JWKS URI (auto-discovered from issuer if not set)
149
- --oauth-clock-tolerance <seconds> Clock tolerance in seconds (default: 60)
188
+ --oauth-clock-tolerance <seconds> Clock tolerance in seconds (default: 30)
150
189
 
151
190
  Database Options:
152
191
  --sqlite <path> Add SQLite database (WASM/sql.js)
@@ -156,6 +195,13 @@ Extension Options (Native only):
156
195
  --csv Load CSV extension for CSV virtual tables
157
196
  --spatialite Load SpatiaLite extension for GIS capabilities
158
197
 
198
+ Audit Options:
199
+ --audit-log <path> Enable audit logging (JSONL file path, or "stderr")
200
+ --audit-no-redact Include tool arguments in audit entries (default: redacted)
201
+ --audit-reads Also log read-scoped tool invocations
202
+ --audit-backup Enable pre-mutation DDL snapshots
203
+ --audit-backup-data Include sample data rows in snapshots
204
+
159
205
  Server Options:
160
206
  --name <name> Server name (default: db-mcp)
161
207
  --version <version> Server version (default: ${VERSION})
@@ -166,8 +212,8 @@ Server Options:
166
212
  Legacy: -vector,-geo (exclusion from all)
167
213
 
168
214
  Environment Variables:
169
- MCP_HOST Host/IP to bind to (default: 0.0.0.0)
170
- 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
171
217
  OAUTH_ENABLED Enable OAuth 2.1 (same as --oauth-enabled)
172
218
  OAUTH_ISSUER Authorization server URL
173
219
  OAUTH_AUDIENCE Expected token audience
@@ -178,6 +224,11 @@ Environment Variables:
178
224
  SQLITE_DATABASE SQLite database path
179
225
  CSV_EXTENSION_PATH Custom path to CSV extension binary
180
226
  SPATIALITE_PATH Custom path to SpatiaLite extension binary
227
+ AUDIT_LOG Audit log file path (or "stderr")
228
+ AUDIT_REDACT Redact arguments (default: true, set false to include args)
229
+ AUDIT_READS Log reads (true/false)
230
+ AUDIT_BACKUP Enable backups (true/false)
231
+ AUDIT_BACKUP_DATA Include data (true/false)
181
232
 
182
233
  Examples:
183
234
  db-mcp --sqlite-native ./data.db
@@ -197,8 +248,19 @@ function loadEnvConfig() {
197
248
  }
198
249
  const authToken = process.env["MCP_AUTH_TOKEN"];
199
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
+ }
200
256
  config.authToken = authToken;
201
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
+ }
202
264
  const oauthEnabled = process.env["OAUTH_ENABLED"] === "true";
203
265
  if (oauthEnabled) {
204
266
  const oauth = { enabled: true };
@@ -219,6 +281,25 @@ function loadEnvConfig() {
219
281
  if (toolFilter) {
220
282
  config.toolFilter = toolFilter;
221
283
  }
284
+ const auditLog = process.env["AUDIT_LOG"];
285
+ if (auditLog) {
286
+ config.audit = {
287
+ enabled: true,
288
+ logPath: auditLog,
289
+ redact: process.env["AUDIT_REDACT"] !== "false",
290
+ auditReads: process.env["AUDIT_READS"] === "true",
291
+ maxSizeBytes: DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES,
292
+ ...process.env["AUDIT_BACKUP"] === "true" && {
293
+ backup: {
294
+ enabled: true,
295
+ includeData: process.env["AUDIT_BACKUP_DATA"] === "true",
296
+ maxAgeDays: DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS,
297
+ maxCount: DEFAULT_AUDIT_BACKUP_MAX_COUNT,
298
+ maxDataSizeBytes: DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES
299
+ }
300
+ }
301
+ };
302
+ }
222
303
  const sqliteUri = process.env["SQLITE_DATABASE"] ?? process.env["SQLITE_PATH"];
223
304
  if (sqliteUri) {
224
305
  databases.push({ type: "sqlite", connectionString: sqliteUri });
@@ -241,6 +322,13 @@ async function main() {
241
322
  ...cliConfig.databases ?? []
242
323
  ]
243
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
+ }
244
332
  const server = createServer(config);
245
333
  process.on("SIGINT", () => {
246
334
  void server.shutdown().then(() => {
@@ -256,25 +344,32 @@ async function main() {
256
344
  if (dbConfig.type === "sqlite") {
257
345
  const options = dbConfig.options;
258
346
  if (options?.backend === "better-sqlite3") {
259
- const { NativeSqliteAdapter } = await import('./sqlite-native-5O7FZJGB.js');
347
+ const { NativeSqliteAdapter } = await import('./sqlite-native-ZSSWCTYC.js');
260
348
  const adapter = new NativeSqliteAdapter();
261
349
  await server.registerAdapter(adapter, dbConfig);
262
350
  } else {
263
- const { SqliteAdapter } = await import('./sqlite-26V3Y4MK.js');
351
+ const { SqliteAdapter } = await import('./sqlite-6C3AJI4I.js');
264
352
  const adapter = new SqliteAdapter();
265
353
  await server.registerAdapter(adapter, dbConfig);
266
354
  }
267
355
  }
268
356
  }
269
357
  if (config.databases.length === 0) {
270
- console.error(
358
+ logger.warning(
271
359
  "Warning: No databases configured. Use --sqlite or --sqlite-native, or set SQLITE_DATABASE"
272
360
  );
273
361
  }
274
362
  await server.start();
275
363
  } catch (error) {
276
- console.error("Fatal error:", error);
364
+ logger.error("Fatal error", {
365
+ error: error instanceof Error ? error : new Error(String(error))
366
+ });
277
367
  process.exit(1);
278
368
  }
279
369
  }
280
- 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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * db-mcp - Sandbox Factory
3
+ *
4
+ * Factory functions for creating sandbox instances with configurable isolation modes.
5
+ * Allows runtime selection between isolated-vm and worker-based sandboxes.
6
+ */
7
+ import type { SandboxOptions, PoolOptions, SandboxResult } from "./types.js";
8
+ /**
9
+ * Sandbox isolation mode
10
+ */
11
+ export type SandboxMode = "isolate";
12
+ /**
13
+ * Unified sandbox interface
14
+ */
15
+ export interface ISandbox {
16
+ execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
17
+ isHealthy(): boolean;
18
+ dispose(): void;
19
+ }
20
+ /**
21
+ * Unified sandbox pool interface
22
+ */
23
+ export interface ISandboxPool {
24
+ initialize(): void;
25
+ execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
26
+ getStats(): {
27
+ available: number;
28
+ inUse: number;
29
+ max: number;
30
+ };
31
+ dispose(): void;
32
+ }
33
+ /**
34
+ * Mode info for documentation/selection
35
+ */
36
+ export interface SandboxModeInfo {
37
+ name: string;
38
+ isolation: string;
39
+ performance: string;
40
+ security: string;
41
+ requirements: string;
42
+ }
43
+ /**
44
+ * Set the default sandbox mode
45
+ */
46
+ export declare function setDefaultSandboxMode(mode: SandboxMode): void;
47
+ /**
48
+ * Get the current default mode
49
+ */
50
+ export declare function getDefaultSandboxMode(): SandboxMode;
51
+ /**
52
+ * Get available sandbox modes
53
+ */
54
+ export declare function getAvailableSandboxModes(): SandboxMode[];
55
+ /**
56
+ * Create a sandbox instance
57
+ * @param mode - Isolation mode ('isolate' or 'worker')
58
+ * @param options - Sandbox options
59
+ */
60
+ export declare function createSandbox(mode?: SandboxMode, options?: SandboxOptions): ISandbox;
61
+ /**
62
+ * Create a sandbox pool
63
+ * @param mode - Isolation mode ('isolate' or 'worker')
64
+ * @param poolOptions - Pool configuration
65
+ * @param sandboxOptions - Sandbox configuration
66
+ */
67
+ export declare function createSandboxPool(mode?: SandboxMode, poolOptions?: PoolOptions, sandboxOptions?: SandboxOptions): ISandboxPool;
68
+ /**
69
+ * Get mode characteristics for documentation/selection
70
+ */
71
+ export declare function getSandboxModeInfo(_mode: SandboxMode): SandboxModeInfo;
72
+ //# sourceMappingURL=sandbox-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-factory.d.ts","sourceRoot":"","sources":["../../src/codemode/sandbox-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAK7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAEnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,EAAE,CAExD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,QAAQ,CASV;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,WAAW,EACzB,cAAc,CAAC,EAAE,cAAc,GAC9B,YAAY,CASd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAQtE"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * db-mcp - Code Mode Sandbox
3
+ *
4
+ * Sandboxed execution environment using isolated-vm.
5
+ * Provides true V8 isolate separation for maximum security.
6
+ */
7
+ import type ivm from "isolated-vm";
8
+ import { type SandboxOptions, type PoolOptions, type SandboxResult } from "./types.js";
9
+ /**
10
+ * A sandboxed execution context using isolated-vm
11
+ */
12
+ export declare class CodeModeSandbox {
13
+ private readonly options;
14
+ private disposed;
15
+ private accumulatedLogs;
16
+ private constructor();
17
+ /**
18
+ * Create a new sandbox instance
19
+ */
20
+ static create(options?: SandboxOptions): CodeModeSandbox;
21
+ /**
22
+ * Execute code in the sandbox
23
+ */
24
+ execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
25
+ getConsoleOutput(): string[];
26
+ clearConsoleOutput(): void;
27
+ isHealthy(): boolean;
28
+ dispose(): void;
29
+ }
30
+ /**
31
+ * Pool of sandbox instances for reuse
32
+ */
33
+ export declare class SandboxPool {
34
+ private readonly options;
35
+ private readonly sandboxOptions;
36
+ private inUseCount;
37
+ private readonly idlePool;
38
+ private static ivmPromise;
39
+ private static cachedIvmLib;
40
+ constructor(poolOptions?: PoolOptions, sandboxOptions?: SandboxOptions);
41
+ static getIvmLib(): typeof ivm;
42
+ static initialize(): Promise<void>;
43
+ initialize(): Promise<void>;
44
+ execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
45
+ cleanup(): void;
46
+ getStats(): {
47
+ available: number;
48
+ inUse: number;
49
+ max: number;
50
+ idle: number;
51
+ };
52
+ dispose(): void;
53
+ }
54
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/codemode/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,eAAe;IAQxD;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAwSzB,gBAAgB,IAAI,MAAM,EAAE;IAI5B,kBAAkB,IAAI,IAAI;IAI1B,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,IAAI;CAIhB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAoC;IAC7D,OAAO,CAAC,MAAM,CAAC,YAAY,CAA2B;gBAE1C,WAAW,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc;IAKtE,MAAM,CAAC,SAAS,IAAI,OAAO,GAAG;WAOjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAgCzB,OAAO,IAAI,IAAI;IAOf,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAS3E,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * db-mcp - Code Mode Security
3
+ *
4
+ * Input validation, rate limiting, and audit logging for code execution.
5
+ */
6
+ import { type SecurityConfig, type ValidationResult, type ExecutionRecord, type SandboxResult } from "./types.js";
7
+ /**
8
+ * Security manager for Code Mode executions
9
+ */
10
+ export declare class CodeModeSecurityManager {
11
+ private readonly config;
12
+ private readonly rateLimitMap;
13
+ private redisClient?;
14
+ constructor(config?: Partial<SecurityConfig>);
15
+ /**
16
+ * Validate code before execution
17
+ */
18
+ validateCode(code: string): ValidationResult;
19
+ /**
20
+ * Check rate limit for a client
21
+ * @returns true if within limits, false if rate limited
22
+ */
23
+ checkRateLimit(clientId: string): Promise<boolean>;
24
+ /**
25
+ * Get remaining rate limit for a client
26
+ */
27
+ getRateLimitRemaining(clientId: string): Promise<number>;
28
+ /**
29
+ * Sanitize and truncate result if too large
30
+ */
31
+ sanitizeResult(result: unknown): unknown;
32
+ /**
33
+ * Log execution for audit purposes
34
+ */
35
+ auditLog(execution: ExecutionRecord): void;
36
+ /**
37
+ * Create execution record for audit
38
+ */
39
+ createExecutionRecord(code: string, result: SandboxResult, readonly: boolean, clientId?: string): ExecutionRecord;
40
+ /**
41
+ * Clean up old rate limit entries
42
+ */
43
+ cleanupRateLimits(): void;
44
+ }
45
+ //# sourceMappingURL=security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/codemode/security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGzB;IACJ,OAAO,CAAC,WAAW,CAAC,CAAkB;gBAE1B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAa5C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IA2C5C;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsDxD;;OAEG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB9D;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IA8BxC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAqC1C;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe;IAclB;;OAEG;IACH,iBAAiB,IAAI,IAAI;CAQ1B"}