db-mcp 2.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-WBER5YY4.js → chunk-37G4DLL6.js} +1010 -409
  350. package/dist/chunk-E5IESRTK.js +489 -0
  351. package/dist/{chunk-645ZEFLA.js → chunk-L552U3QS.js} +887 -309
  352. package/dist/{chunk-5Y42NPBP.js → chunk-NV34JSQM.js} +4656 -1829
  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-TB56Z7G3.js} +61 -17
  394. package/dist/{sqlite-native-JXMCFQBA.js → sqlite-native-IF75BB3O.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 +26 -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,3 +1,5 @@
1
+ import { AsyncLocalStorage } from 'async_hooks';
2
+
1
3
  // src/filtering/tool-constants.ts
2
4
  var ALL_TOOL_GROUPS = [
3
5
  "core",
@@ -27,7 +29,14 @@ var TOOL_GROUPS = {
27
29
  "batch_insert",
28
30
  "count",
29
31
  "exists",
30
- "truncate"
32
+ "truncate",
33
+ "list_triggers",
34
+ "create_trigger",
35
+ "drop_trigger",
36
+ "list_constraints",
37
+ "date_add",
38
+ "date_diff",
39
+ "alter_table"
31
40
  ],
32
41
  json: [
33
42
  // CRUD + Query + Collection (8: crud.ts, query.ts, write.ts)
@@ -57,7 +66,9 @@ var TOOL_GROUPS = {
57
66
  "json_storage_info",
58
67
  "json_normalize_column",
59
68
  // Security (1: security.ts)
60
- "json_security_scan"
69
+ "json_security_scan",
70
+ // Diff (1: diff.ts)
71
+ "json_diff"
61
72
  ],
62
73
  text: [
63
74
  // Text Tools (14 WASM)
@@ -107,7 +118,9 @@ var TOOL_GROUPS = {
107
118
  "window_lag_lead",
108
119
  "window_running_total",
109
120
  "window_moving_avg",
110
- "window_ntile"
121
+ "window_ntile",
122
+ // Sampling (1 WASM)
123
+ "stats_sample"
111
124
  ],
112
125
  vector: [
113
126
  "vector_create_table",
@@ -123,7 +136,7 @@ var TOOL_GROUPS = {
123
136
  "vector_distance"
124
137
  ],
125
138
  admin: [
126
- // Admin Tools (13: backup.ts, verify.ts, pragma.ts)
139
+ // Admin Tools (15: backup.ts, verify.ts, pragma.ts, reindex.ts, wal.ts)
127
140
  "backup",
128
141
  "analyze",
129
142
  "integrity_check",
@@ -150,7 +163,14 @@ var TOOL_GROUPS = {
150
163
  "create_csv_table",
151
164
  "analyze_csv_schema",
152
165
  "create_rtree_table",
153
- "create_series_table"
166
+ "create_series_table",
167
+ // Database management (5: pragma.ts, backup/create.ts, reindex.ts, wal.ts)
168
+ "attach_database",
169
+ "detach_database",
170
+ "vacuum_into",
171
+ "dump",
172
+ "reindex",
173
+ "wal"
154
174
  ],
155
175
  transactions: [
156
176
  // Transaction Tools (8 Native-only)
@@ -181,8 +201,9 @@ var TOOL_GROUPS = {
181
201
  "dependency_graph",
182
202
  "topological_sort",
183
203
  "cascade_simulator",
184
- // Schema Analysis (3 from introspection/analysis.ts)
204
+ // Schema Analysis (4 from introspection/analysis.ts)
185
205
  "schema_snapshot",
206
+ "schema_diff",
186
207
  "constraint_analysis",
187
208
  "migration_risks",
188
209
  // Diagnostics (3 from introspection/diagnostics.ts)
@@ -202,19 +223,19 @@ var TOOL_GROUPS = {
202
223
  codemode: ["execute_code"]
203
224
  };
204
225
  var META_GROUPS = {
205
- // General development - Core + JSON + Text + Codemode (53 WASM / 58 Native)
226
+ // General development - Core + JSON + Text (60 WASM / 65 Native)
206
227
  starter: ["core", "json", "text", "codemode"],
207
- // Data analysis - Core + JSON + Stats + Codemode (55 WASM / 61 Native)
228
+ // Data analysis - Core + JSON + Stats (63 WASM / 69 Native)
208
229
  analytics: ["core", "json", "stats", "codemode"],
209
- // Search workloads - Core + Text + Vector + Codemode (40 WASM / 45 Native)
230
+ // Search workloads - Core + Text + Vector (46 WASM / 51 Native)
210
231
  search: ["core", "text", "vector", "codemode"],
211
- // Geospatial workloads - Core + Geo + Vector + Codemode (30 WASM / 37 Native)
232
+ // Geospatial workloads - Core + Geo + Vector (36 WASM / 43 Native)
212
233
  spatial: ["core", "geo", "vector", "codemode"],
213
- // Schema development - Core + Introspection + Migration + Codemode (30 tools)
234
+ // Schema development - Core + Introspection + Migration (37 tools)
214
235
  "dev-schema": ["core", "introspection", "migration", "codemode"],
215
- // Bare minimum - Core + Codemode (15 tools)
236
+ // Bare minimum - Core (21 tools)
216
237
  minimal: ["core", "codemode"],
217
- // All tools enabled (125 WASM / 151 Native)
238
+ // All group tools enabled (166 Native / 139 WASM — see TOOL COUNT TAXONOMY above)
218
239
  full: [
219
240
  "core",
220
241
  "json",
@@ -335,14 +356,6 @@ function parseToolFilter(filterString) {
335
356
  }
336
357
  }
337
358
  }
338
- if (!startsWithExclude && enabledGroups.size > 0) {
339
- const codemodeExplicitlyExcluded = parts.some(
340
- (p) => p === "-codemode" || p === "-sqlite_execute_code"
341
- );
342
- if (!codemodeExplicitlyExcluded) {
343
- enabledGroups.add("codemode");
344
- }
345
- }
346
359
  return {
347
360
  raw: filterString,
348
361
  rules,
@@ -362,6 +375,14 @@ function isToolEnabled(tool, config) {
362
375
  if (config.includedTools.has(tool.name) || config.includedTools.has(baseName)) {
363
376
  return true;
364
377
  }
378
+ if (tool.group === "codemode") {
379
+ const explicitlyExcludedGroup = config.rules.some(
380
+ (r) => r.type === "exclude" && r.target === "codemode"
381
+ );
382
+ if (!explicitlyExcludedGroup) {
383
+ return true;
384
+ }
385
+ }
365
386
  return config.enabledGroups.has(tool.group);
366
387
  }
367
388
  function filterTools(tools, config) {
@@ -397,296 +418,40 @@ function getFilterSummary(config) {
397
418
  return lines.join("\n");
398
419
  }
399
420
 
400
- // src/utils/errors/suggestions.ts
401
- var ERROR_SUGGESTIONS = [
402
- // Validation errors
403
- {
404
- pattern: /invalid table name/i,
405
- suggestion: "Table names must start with a letter or underscore, followed by letters, numbers, or underscores only.",
406
- category: "validation" /* VALIDATION */
407
- },
408
- {
409
- pattern: /invalid column name/i,
410
- suggestion: "Column names must start with a letter or underscore, followed by letters, numbers, or underscores only.",
411
- category: "validation" /* VALIDATION */
412
- },
413
- {
414
- pattern: /invalid (view|index) name/i,
415
- suggestion: "Names must start with a letter or underscore, followed by alphanumeric characters only.",
416
- category: "validation" /* VALIDATION */
417
- },
418
- {
419
- pattern: /json path must start with \$/i,
420
- suggestion: "JSON paths use $ as the root. Example: $.name, $.items[0], $.nested.property",
421
- category: "validation" /* VALIDATION */
422
- },
423
- {
424
- pattern: /vector dimensions must match/i,
425
- suggestion: "All vectors in comparison must have the same number of dimensions.",
426
- category: "validation" /* VALIDATION */
427
- },
428
- {
429
- pattern: /insufficient data/i,
430
- suggestion: "Not enough data points for the requested analysis. Add more data or reduce the degree.",
431
- category: "validation" /* VALIDATION */
432
- },
433
- // Resource errors — specific codes for table/column not found
434
- {
435
- pattern: /no such table[:\s]*(['"]?)(\w+)\1/i,
436
- suggestion: "Table not found. Run sqlite_list_tables to see available tables.",
437
- category: "resource" /* RESOURCE */,
438
- code: "TABLE_NOT_FOUND"
439
- },
440
- {
441
- pattern: /no such column[:\s]*(['"]?)(\w+)\1/i,
442
- suggestion: "Column not found. Use sqlite_describe_table to see available columns.",
443
- category: "resource" /* RESOURCE */,
444
- code: "COLUMN_NOT_FOUND"
445
- },
446
- {
447
- pattern: /has no column named/i,
448
- suggestion: "Column not found in target table. Use sqlite_describe_table to verify column names before INSERT or UPDATE.",
449
- category: "resource" /* RESOURCE */,
450
- code: "COLUMN_NOT_FOUND"
451
- },
452
- {
453
- pattern: /no such view[:\s]*(['"]?)(\w+)\1/i,
454
- suggestion: "View not found. Run sqlite_list_views to see available views.",
455
- category: "resource" /* RESOURCE */,
456
- code: "VIEW_NOT_FOUND"
457
- },
458
- {
459
- pattern: /filename.*does not exist/i,
460
- suggestion: "File not found. Verify the absolute path exists and is readable.",
461
- category: "resource" /* RESOURCE */,
462
- code: "FILE_NOT_FOUND"
463
- },
464
- {
465
- pattern: /table .* already exists/i,
466
- suggestion: "Table already exists. Use CREATE TABLE IF NOT EXISTS or drop the existing table first.",
467
- category: "resource" /* RESOURCE */,
468
- code: "TABLE_ALREADY_EXISTS"
469
- },
470
- {
471
- pattern: /index .* already exists/i,
472
- suggestion: "Index already exists. Use CREATE INDEX IF NOT EXISTS or drop the existing index first.",
473
- category: "resource" /* RESOURCE */,
474
- code: "INDEX_ALREADY_EXISTS"
475
- },
476
- // JSON-specific errors — often caused by wrong column name
477
- {
478
- pattern: /malformed JSON/i,
479
- suggestion: "The JSON data is malformed. This commonly occurs when the column name is incorrect \u2014 SQLite treats the unresolved identifier as a literal string. Verify the column exists with sqlite_describe_table.",
480
- category: "query" /* QUERY */,
481
- code: "MALFORMED_JSON"
482
- },
483
- // Query errors
484
- {
485
- pattern: /syntax error/i,
486
- suggestion: "Check SQL syntax. Common issues: missing quotes, commas, parentheses, or reserved word conflicts.",
487
- category: "query" /* QUERY */
488
- },
489
- {
490
- pattern: /UNIQUE constraint failed/i,
491
- suggestion: "A row with this value already exists. Use UPDATE to modify existing data or check for duplicates.",
492
- category: "query" /* QUERY */,
493
- code: "CONSTRAINT_VIOLATION"
494
- },
495
- {
496
- pattern: /FOREIGN KEY constraint failed/i,
497
- suggestion: "The referenced row does not exist. Ensure the parent record exists before inserting.",
498
- category: "query" /* QUERY */,
499
- code: "CONSTRAINT_VIOLATION"
500
- },
501
- {
502
- pattern: /NOT NULL constraint failed/i,
503
- suggestion: "A required column is missing a value. Provide a value or set a default.",
504
- category: "query" /* QUERY */,
505
- code: "CONSTRAINT_VIOLATION"
506
- },
507
- {
508
- pattern: /CHECK constraint failed/i,
509
- suggestion: "The value does not meet the column's check constraint requirements.",
510
- category: "query" /* QUERY */,
511
- code: "CONSTRAINT_VIOLATION"
512
- },
513
- {
514
- pattern: /incomplete input/i,
515
- suggestion: "SQL statement is incomplete. Check for missing clauses, closing parentheses, or semicolons.",
516
- category: "query" /* QUERY */
517
- },
518
- {
519
- pattern: /more than one statement/i,
520
- suggestion: "Only one SQL statement per call is allowed. Split multiple statements into separate calls or use sqlite_execute_code for multi-step operations.",
521
- category: "query" /* QUERY */
522
- },
523
- {
524
- pattern: /too few parameter/i,
525
- suggestion: "Not enough parameter values provided for the prepared statement placeholders (?). Ensure params array matches the number of ? placeholders in the query.",
526
- category: "query" /* QUERY */
527
- },
528
- // Connection errors
529
- {
530
- pattern: /not connected/i,
531
- suggestion: "Database connection not established. Ensure the database is configured and connected.",
532
- category: "connection" /* CONNECTION */
533
- },
534
- {
535
- pattern: /cannot start a transaction within a transaction/i,
536
- suggestion: "A transaction is already active. Commit or rollback the current transaction first, or use sqlite_transaction_execute for atomic multi-statement operations.",
537
- category: "query" /* QUERY */,
538
- code: "TRANSACTION_CONFLICT"
539
- },
540
- {
541
- pattern: /no transaction is active/i,
542
- suggestion: "No transaction is active. Start a transaction using sqlite_transaction_begin first.",
543
- category: "query" /* QUERY */,
544
- code: "TRANSACTION_NOT_ACTIVE"
545
- },
546
- {
547
- pattern: /no such savepoint/i,
548
- suggestion: "The specified savepoint does not exist. Verify the savepoint name and ensure it hasn't already been released or rolled back.",
549
- category: "query" /* QUERY */,
550
- code: "SAVEPOINT_NOT_FOUND"
551
- },
552
- {
553
- pattern: /database is locked/i,
554
- suggestion: "Database is being used by another process. Wait and retry, or check for long-running transactions.",
555
- category: "connection" /* CONNECTION */
556
- },
557
- // Permission errors
558
- {
559
- pattern: /readonly database/i,
560
- suggestion: "Database is in read-only mode. Check file permissions or connection settings.",
561
- category: "permission" /* PERMISSION */
562
- },
563
- {
564
- pattern: /attempt to write a readonly/i,
565
- suggestion: "Write operations are not allowed. Check database configuration.",
566
- category: "permission" /* PERMISSION */
567
- },
568
- // Codemode errors
569
- {
570
- pattern: /code validation failed/i,
571
- suggestion: "Check for blocked patterns: require(), process., eval(), Function(), import(). Use sqlite.* API instead.",
572
- category: "validation" /* VALIDATION */
573
- },
574
- {
575
- pattern: /rate limit exceeded/i,
576
- suggestion: "Wait before retrying. Combine multiple operations into fewer execute_code calls.",
577
- category: "permission" /* PERMISSION */
578
- },
579
- {
580
- pattern: /execution timed out/i,
581
- suggestion: "Reduce code complexity or increase timeout (max 30s). Break into smaller operations.",
582
- category: "query" /* QUERY */
421
+ // src/utils/logger/error-codes.ts
422
+ function createErrorCode(module, code) {
423
+ return {
424
+ module: module.toUpperCase(),
425
+ code: code.toUpperCase(),
426
+ full: `${module.toUpperCase()}_${code.toUpperCase()}`
427
+ };
428
+ }
429
+ var ERROR_CODES = {
430
+ // Auth module
431
+ AUTH: {
432
+ TOKEN_INVALID: createErrorCode("AUTH", "TOKEN_INVALID"),
433
+ TOKEN_EXPIRED: createErrorCode("AUTH", "TOKEN_EXPIRED"),
434
+ TOKEN_MISSING: createErrorCode("AUTH", "TOKEN_MISSING"),
435
+ SIGNATURE_INVALID: createErrorCode("AUTH", "SIGNATURE_INVALID"),
436
+ SCOPE_DENIED: createErrorCode("AUTH", "SCOPE_DENIED"),
437
+ DISCOVERY_FAILED: createErrorCode("AUTH", "DISCOVERY_FAILED"),
438
+ JWKS_FETCH_FAILED: createErrorCode("AUTH", "JWKS_FETCH_FAILED"),
439
+ REGISTRATION_FAILED: createErrorCode("AUTH", "REGISTRATION_FAILED")
583
440
  },
584
- {
585
- pattern: /sandbox.*not initialized/i,
586
- suggestion: "Internal sandbox error. Retry the operation.",
587
- category: "internal" /* INTERNAL */
441
+ // Server module
442
+ SERVER: {
443
+ START_FAILED: createErrorCode("SERVER", "START_FAILED"),
444
+ SHUTDOWN_FAILED: createErrorCode("SERVER", "SHUTDOWN_FAILED"),
445
+ TRANSPORT_ERROR: createErrorCode("SERVER", "TRANSPORT_ERROR")
588
446
  },
589
- // Extension errors
590
- {
591
- pattern: /extension.*not (available|installed|loaded|found)/i,
592
- suggestion: "Extension is not available. Check CLI flags, environment variables, or platform compatibility.",
593
- category: "config" /* CONFIGURATION */,
594
- code: "EXTENSION_MISSING"
595
- }
596
- ];
597
- function findSuggestion(message) {
598
- for (const entry of ERROR_SUGGESTIONS) {
599
- if (entry.pattern.test(message)) {
600
- return {
601
- suggestion: entry.suggestion,
602
- category: entry.category,
603
- code: entry.code
604
- };
605
- }
447
+ // Database module
448
+ DB: {
449
+ CONNECT_FAILED: createErrorCode("DB", "CONNECT_FAILED"),
450
+ QUERY_FAILED: createErrorCode("DB", "QUERY_FAILED"),
451
+ DISCONNECT_FAILED: createErrorCode("DB", "DISCONNECT_FAILED"),
452
+ ADAPTER_NOT_FOUND: createErrorCode("DB", "ADAPTER_NOT_FOUND")
606
453
  }
607
- return null;
608
- }
609
-
610
- // src/utils/errors/base.ts
611
- var REFINABLE_CODES = /* @__PURE__ */ new Set([
612
- "DB_QUERY_FAILED",
613
- "DB_WRITE_FAILED",
614
- "QUERY_ERROR",
615
- "RESOURCE_ERROR",
616
- "UNKNOWN_ERROR"
617
- ]);
618
- var DbMcpError = class extends Error {
619
- /** Error category for classification */
620
- category;
621
- /** Module-prefixed error code (e.g., DB_QUERY_FAILED) */
622
- code;
623
- /** Actionable suggestion for resolving the error */
624
- suggestion;
625
- /** Additional error details */
626
- details;
627
- /** Whether the error is recoverable (can retry) */
628
- recoverable;
629
- constructor(message, code, category, options) {
630
- super(message, { cause: options?.cause });
631
- this.name = this.constructor.name;
632
- this.category = category;
633
- this.recoverable = options?.recoverable ?? false;
634
- this.details = options?.details;
635
- const match = findSuggestion(message);
636
- this.suggestion = options?.suggestion ?? match?.suggestion;
637
- this.code = match?.code && REFINABLE_CODES.has(code) ? match.code : code;
638
- Error.captureStackTrace?.(this, this.constructor);
639
- }
640
- /**
641
- * Convert to structured response object
642
- */
643
- toResponse() {
644
- return {
645
- success: false,
646
- error: this.message,
647
- code: this.code,
648
- category: this.category,
649
- suggestion: this.suggestion,
650
- recoverable: this.recoverable,
651
- details: this.details
652
- };
653
- }
654
- };
655
-
656
- // src/utils/logger/error-codes.ts
657
- function createErrorCode(module, code) {
658
- return {
659
- module: module.toUpperCase(),
660
- code: code.toUpperCase(),
661
- full: `${module.toUpperCase()}_${code.toUpperCase()}`
662
- };
663
- }
664
- var ERROR_CODES = {
665
- // Auth module
666
- AUTH: {
667
- TOKEN_INVALID: createErrorCode("AUTH", "TOKEN_INVALID"),
668
- TOKEN_EXPIRED: createErrorCode("AUTH", "TOKEN_EXPIRED"),
669
- TOKEN_MISSING: createErrorCode("AUTH", "TOKEN_MISSING"),
670
- SIGNATURE_INVALID: createErrorCode("AUTH", "SIGNATURE_INVALID"),
671
- SCOPE_DENIED: createErrorCode("AUTH", "SCOPE_DENIED"),
672
- DISCOVERY_FAILED: createErrorCode("AUTH", "DISCOVERY_FAILED"),
673
- JWKS_FETCH_FAILED: createErrorCode("AUTH", "JWKS_FETCH_FAILED"),
674
- REGISTRATION_FAILED: createErrorCode("AUTH", "REGISTRATION_FAILED")
675
- },
676
- // Server module
677
- SERVER: {
678
- START_FAILED: createErrorCode("SERVER", "START_FAILED"),
679
- SHUTDOWN_FAILED: createErrorCode("SERVER", "SHUTDOWN_FAILED"),
680
- TRANSPORT_ERROR: createErrorCode("SERVER", "TRANSPORT_ERROR")
681
- },
682
- // Database module
683
- DB: {
684
- CONNECT_FAILED: createErrorCode("DB", "CONNECT_FAILED"),
685
- QUERY_FAILED: createErrorCode("DB", "QUERY_FAILED"),
686
- DISCONNECT_FAILED: createErrorCode("DB", "DISCONNECT_FAILED"),
687
- ADAPTER_NOT_FOUND: createErrorCode("DB", "ADAPTER_NOT_FOUND")
688
- }
689
- };
454
+ };
690
455
 
691
456
  // src/utils/logger/module-logger.ts
692
457
  var ModuleLogger = class {
@@ -977,4 +742,817 @@ if (envLevel && envLevel in LEVEL_PRIORITY_CHECK) {
977
742
  logger.setLevel(envLevel);
978
743
  }
979
744
 
980
- export { ALL_TOOL_GROUPS, DbMcpError, ERROR_CODES, META_GROUPS, TOOL_GROUPS, createModuleLogger, filterTools, findSuggestion, getFilterSummary, getToolFilterFromEnv, isToolEnabled, logger, parseToolFilter };
745
+ // src/utils/errors/suggestions.ts
746
+ var ERROR_SUGGESTIONS = [
747
+ // Validation errors
748
+ {
749
+ pattern: /invalid table name/i,
750
+ suggestion: "Table names must start with a letter or underscore, followed by letters, numbers, or underscores only.",
751
+ category: "validation" /* VALIDATION */
752
+ },
753
+ {
754
+ pattern: /invalid column name/i,
755
+ suggestion: "Column names must start with a letter or underscore, followed by letters, numbers, or underscores only.",
756
+ category: "validation" /* VALIDATION */
757
+ },
758
+ {
759
+ pattern: /invalid (view|index) name/i,
760
+ suggestion: "Names must start with a letter or underscore, followed by alphanumeric characters only.",
761
+ category: "validation" /* VALIDATION */
762
+ },
763
+ {
764
+ pattern: /json path must start with \$/i,
765
+ suggestion: "JSON paths use $ as the root. Example: $.name, $.items[0], $.nested.property",
766
+ category: "validation" /* VALIDATION */
767
+ },
768
+ {
769
+ pattern: /vector dimensions must match/i,
770
+ suggestion: "All vectors in comparison must have the same number of dimensions.",
771
+ category: "validation" /* VALIDATION */
772
+ },
773
+ {
774
+ pattern: /insufficient data/i,
775
+ suggestion: "Not enough data points for the requested analysis. Add more data or reduce the degree.",
776
+ category: "validation" /* VALIDATION */
777
+ },
778
+ // Resource errors — specific codes for table/column not found
779
+ {
780
+ pattern: /no such table[:\s]*(['"]?)([\w.]+)\1/i,
781
+ suggestion: "Table not found. Run sqlite_list_tables to see available tables.",
782
+ category: "resource" /* RESOURCE */,
783
+ code: "TABLE_NOT_FOUND"
784
+ },
785
+ {
786
+ pattern: /no such column[:\s]*(['"]?)([\w.]+)\1/i,
787
+ suggestion: "Column not found. Use sqlite_describe_table to see available columns.",
788
+ category: "resource" /* RESOURCE */,
789
+ code: "COLUMN_NOT_FOUND"
790
+ },
791
+ {
792
+ pattern: /has no column named/i,
793
+ suggestion: "Column not found in target table. Use sqlite_describe_table to verify column names before INSERT or UPDATE.",
794
+ category: "resource" /* RESOURCE */,
795
+ code: "COLUMN_NOT_FOUND"
796
+ },
797
+ {
798
+ pattern: /no such view[:\s]*(['"]?)([\w.]+)\1/i,
799
+ suggestion: "View not found. Run sqlite_list_views to see available views.",
800
+ category: "resource" /* RESOURCE */,
801
+ code: "VIEW_NOT_FOUND"
802
+ },
803
+ {
804
+ pattern: /filename.*does not exist/i,
805
+ suggestion: "File not found. Verify the absolute path exists and is readable.",
806
+ category: "resource" /* RESOURCE */,
807
+ code: "FILE_NOT_FOUND"
808
+ },
809
+ {
810
+ pattern: /table .* already exists/i,
811
+ suggestion: "Table already exists. Use CREATE TABLE IF NOT EXISTS or drop the existing table first.",
812
+ category: "resource" /* RESOURCE */,
813
+ code: "TABLE_ALREADY_EXISTS"
814
+ },
815
+ {
816
+ pattern: /index .* already exists/i,
817
+ suggestion: "Index already exists. Use CREATE INDEX IF NOT EXISTS or drop the existing index first.",
818
+ category: "resource" /* RESOURCE */,
819
+ code: "INDEX_ALREADY_EXISTS"
820
+ },
821
+ // JSON-specific errors — often caused by wrong column name
822
+ {
823
+ pattern: /malformed JSON/i,
824
+ suggestion: "The JSON data is malformed. This commonly occurs when the column name is incorrect \u2014 SQLite treats the unresolved identifier as a literal string. Verify the column exists with sqlite_describe_table.",
825
+ category: "query" /* QUERY */,
826
+ code: "MALFORMED_JSON"
827
+ },
828
+ // Query errors
829
+ {
830
+ pattern: /syntax error/i,
831
+ suggestion: "Check SQL syntax. Common issues: missing quotes, commas, parentheses, or reserved word conflicts.",
832
+ category: "query" /* QUERY */
833
+ },
834
+ {
835
+ pattern: /UNIQUE constraint failed/i,
836
+ suggestion: "A row with this value already exists. Use UPDATE to modify existing data or check for duplicates.",
837
+ category: "query" /* QUERY */,
838
+ code: "CONSTRAINT_VIOLATION"
839
+ },
840
+ {
841
+ pattern: /FOREIGN KEY constraint failed/i,
842
+ suggestion: "The referenced row does not exist. Ensure the parent record exists before inserting.",
843
+ category: "query" /* QUERY */,
844
+ code: "CONSTRAINT_VIOLATION"
845
+ },
846
+ {
847
+ pattern: /NOT NULL constraint failed/i,
848
+ suggestion: "A required column is missing a value. Provide a value or set a default.",
849
+ category: "query" /* QUERY */,
850
+ code: "CONSTRAINT_VIOLATION"
851
+ },
852
+ {
853
+ pattern: /CHECK constraint failed/i,
854
+ suggestion: "The value does not meet the column's check constraint requirements.",
855
+ category: "query" /* QUERY */,
856
+ code: "CONSTRAINT_VIOLATION"
857
+ },
858
+ {
859
+ pattern: /incomplete input/i,
860
+ suggestion: "SQL statement is incomplete. Check for missing clauses, closing parentheses, or semicolons.",
861
+ category: "query" /* QUERY */
862
+ },
863
+ {
864
+ pattern: /more than one statement/i,
865
+ suggestion: "Only one SQL statement per call is allowed. Split multiple statements into separate calls or use sqlite_execute_code for multi-step operations.",
866
+ category: "query" /* QUERY */
867
+ },
868
+ {
869
+ pattern: /too few parameter/i,
870
+ suggestion: "Not enough parameter values provided for the prepared statement placeholders (?). Ensure params array matches the number of ? placeholders in the query.",
871
+ category: "query" /* QUERY */
872
+ },
873
+ // Connection errors
874
+ {
875
+ pattern: /not connected/i,
876
+ suggestion: "Database connection not established. Ensure the database is configured and connected.",
877
+ category: "connection" /* CONNECTION */
878
+ },
879
+ {
880
+ pattern: /cannot start a transaction within a transaction/i,
881
+ suggestion: "A transaction is already active. Commit or rollback the current transaction first, or use sqlite_transaction_execute for atomic multi-statement operations.",
882
+ category: "query" /* QUERY */,
883
+ code: "TRANSACTION_CONFLICT"
884
+ },
885
+ {
886
+ pattern: /no transaction is active/i,
887
+ suggestion: "No transaction is active. Start a transaction using sqlite_transaction_begin first.",
888
+ category: "query" /* QUERY */,
889
+ code: "TRANSACTION_NOT_ACTIVE"
890
+ },
891
+ {
892
+ pattern: /no such savepoint/i,
893
+ suggestion: "The specified savepoint does not exist. Verify the savepoint name and ensure it hasn't already been released or rolled back.",
894
+ category: "query" /* QUERY */,
895
+ code: "SAVEPOINT_NOT_FOUND"
896
+ },
897
+ {
898
+ pattern: /database is locked/i,
899
+ suggestion: "Database is being used by another process. Wait and retry, or check for long-running transactions.",
900
+ category: "connection" /* CONNECTION */
901
+ },
902
+ // Permission errors
903
+ {
904
+ pattern: /readonly database/i,
905
+ suggestion: "Database is in read-only mode. Check file permissions or connection settings.",
906
+ category: "permission" /* PERMISSION */
907
+ },
908
+ {
909
+ pattern: /attempt to write a readonly/i,
910
+ suggestion: "Write operations are not allowed. Check database configuration.",
911
+ category: "permission" /* PERMISSION */
912
+ },
913
+ // Codemode errors
914
+ {
915
+ pattern: /code validation failed/i,
916
+ suggestion: "Check for blocked patterns: require(), process., eval(), Function(), import(). Use sqlite.* API instead.",
917
+ category: "validation" /* VALIDATION */
918
+ },
919
+ {
920
+ pattern: /rate limit exceeded/i,
921
+ suggestion: "Wait before retrying. Combine multiple operations into fewer execute_code calls.",
922
+ category: "permission" /* PERMISSION */
923
+ },
924
+ {
925
+ pattern: /execution timed out/i,
926
+ suggestion: "Reduce code complexity or increase timeout (max 30s). Break into smaller operations.",
927
+ category: "query" /* QUERY */
928
+ },
929
+ {
930
+ pattern: /sandbox.*not initialized/i,
931
+ suggestion: "Internal sandbox error. Retry the operation.",
932
+ category: "internal" /* INTERNAL */
933
+ },
934
+ // Extension errors
935
+ {
936
+ pattern: /extension.*not (available|installed|loaded|found)/i,
937
+ suggestion: "Extension is not available. Check CLI flags, environment variables, or platform compatibility.",
938
+ category: "config" /* CONFIGURATION */,
939
+ code: "EXTENSION_MISSING"
940
+ },
941
+ // Custom JS errors mapped from tools
942
+ {
943
+ pattern: /invalid identifier/i,
944
+ suggestion: "Identifiers must start with a letter or underscore and contain only alphanumeric characters or underscores. Ensure the name follows SQLite identifier rules.",
945
+ category: "validation" /* VALIDATION */,
946
+ code: "INVALID_IDENTIFIER"
947
+ },
948
+ {
949
+ pattern: /(expected property name|unexpected token|in JSON at position|Expected double-quoted property name)/i,
950
+ suggestion: "The JSON data provided is malformed. Ensure the input string is valid JSON.",
951
+ category: "validation" /* VALIDATION */,
952
+ code: "MALFORMED_JSON"
953
+ }
954
+ ];
955
+ function findSuggestion(message) {
956
+ for (const entry of ERROR_SUGGESTIONS) {
957
+ if (entry.pattern.test(message)) {
958
+ return {
959
+ suggestion: entry.suggestion,
960
+ category: entry.category,
961
+ code: entry.code
962
+ };
963
+ }
964
+ }
965
+ return null;
966
+ }
967
+
968
+ // src/utils/errors/base.ts
969
+ var REFINABLE_CODES = /* @__PURE__ */ new Set([
970
+ "DB_QUERY_FAILED",
971
+ "DB_WRITE_FAILED",
972
+ "QUERY_ERROR",
973
+ "RESOURCE_ERROR",
974
+ "UNKNOWN_ERROR"
975
+ ]);
976
+ var DbMcpError = class extends Error {
977
+ /** Error category for classification */
978
+ category;
979
+ /** Module-prefixed error code (e.g., DB_QUERY_FAILED) */
980
+ code;
981
+ /** Actionable suggestion for resolving the error */
982
+ suggestion;
983
+ /** Additional error details */
984
+ details;
985
+ /** Whether the error is recoverable (can retry) */
986
+ recoverable;
987
+ constructor(message, code, category, options) {
988
+ super(message, { cause: options?.cause });
989
+ this.name = this.constructor.name;
990
+ this.category = category;
991
+ this.recoverable = options?.recoverable ?? false;
992
+ this.details = options?.details;
993
+ const match = findSuggestion(message);
994
+ this.suggestion = options?.suggestion ?? match?.suggestion;
995
+ this.code = match?.code && REFINABLE_CODES.has(code) ? match.code : code;
996
+ Error.captureStackTrace?.(this, this.constructor);
997
+ }
998
+ /**
999
+ * Convert to structured response object
1000
+ */
1001
+ toResponse() {
1002
+ return {
1003
+ success: false,
1004
+ error: this.message,
1005
+ code: this.code,
1006
+ category: this.category,
1007
+ suggestion: this.suggestion,
1008
+ recoverable: this.recoverable,
1009
+ details: this.details
1010
+ };
1011
+ }
1012
+ };
1013
+
1014
+ // src/utils/errors/classes.ts
1015
+ var ValidationError = class extends DbMcpError {
1016
+ constructor(message, code = "VALIDATION_ERROR", options) {
1017
+ super(message, code, "validation" /* VALIDATION */, {
1018
+ ...options,
1019
+ recoverable: false
1020
+ });
1021
+ }
1022
+ };
1023
+ var ConnectionError = class extends DbMcpError {
1024
+ constructor(message, code = "CONNECTION_ERROR", options) {
1025
+ super(message, code, "connection" /* CONNECTION */, {
1026
+ ...options,
1027
+ recoverable: true
1028
+ // Connection errors are often transient
1029
+ });
1030
+ }
1031
+ };
1032
+ var QueryError = class extends DbMcpError {
1033
+ constructor(message, code = "QUERY_ERROR", options) {
1034
+ super(message, code, "query" /* QUERY */, {
1035
+ ...options,
1036
+ details: {
1037
+ ...options?.details,
1038
+ sql: options?.sql
1039
+ },
1040
+ recoverable: false
1041
+ });
1042
+ }
1043
+ };
1044
+ var ResourceNotFoundError = class extends DbMcpError {
1045
+ constructor(message, code = "RESOURCE_NOT_FOUND", options) {
1046
+ super(message, code, "resource" /* RESOURCE */, {
1047
+ ...options,
1048
+ details: {
1049
+ ...options?.details,
1050
+ resourceType: options?.resourceType,
1051
+ resourceName: options?.resourceName
1052
+ },
1053
+ recoverable: false
1054
+ });
1055
+ }
1056
+ };
1057
+ var ConfigurationError = class extends DbMcpError {
1058
+ constructor(message, code = "CONFIG_ERROR", options) {
1059
+ super(message, code, "config" /* CONFIGURATION */, {
1060
+ ...options,
1061
+ recoverable: false
1062
+ });
1063
+ }
1064
+ };
1065
+ var AuthenticationError = class extends DbMcpError {
1066
+ constructor(message, code = "AUTHENTICATION_ERROR", options) {
1067
+ super(message, code, "authentication" /* AUTHENTICATION */, {
1068
+ ...options,
1069
+ recoverable: false
1070
+ });
1071
+ }
1072
+ };
1073
+ var AuthorizationError = class extends DbMcpError {
1074
+ constructor(message, code = "AUTHORIZATION_ERROR", options) {
1075
+ super(message, code, "authorization" /* AUTHORIZATION */, {
1076
+ ...options,
1077
+ recoverable: false
1078
+ });
1079
+ }
1080
+ };
1081
+ var ExtensionNotAvailableError = class extends DbMcpError {
1082
+ constructor(extensionName, options) {
1083
+ const isWasm = options?.wasmLimitation ?? options?.details?.["wasmLimitation"] ?? false;
1084
+ const baseMessage = `Extension '${extensionName}' is not installed or available`;
1085
+ const message = isWasm === true ? `${baseMessage} in WASM mode` : baseMessage;
1086
+ super(message, "EXTENSION_MISSING", "config" /* CONFIGURATION */, {
1087
+ suggestion: options?.suggestion ?? `Install or enable the '${extensionName}' extension. Check environment variable or CLI flag configuration.`,
1088
+ details: {
1089
+ extension: extensionName,
1090
+ ...options?.details,
1091
+ ...isWasm === true ? { wasmLimitation: true } : {}
1092
+ },
1093
+ recoverable: false,
1094
+ cause: options?.cause
1095
+ });
1096
+ }
1097
+ };
1098
+
1099
+ // src/utils/errors/format.ts
1100
+ function sanitizeErrorMessage(msg) {
1101
+ if (!msg || typeof msg !== "string") return msg;
1102
+ return msg.replace(/[a-zA-Z]:\\[^:\n]*\\/g, "<redacted_path>\\").replace(/(file:|sqlite:|\/)[^:\s]+(\/[^:\s]*)/g, "<redacted_path>").replace(
1103
+ /([a-zA-Z0-9+.-]+:\/\/[^:]+:)[^@\s]+(@)/g,
1104
+ "$1<redacted_credential>$2"
1105
+ ).replace(
1106
+ /([?&](?:password|secret|key|token)=)[^&\s]+/gi,
1107
+ "$1<redacted_credential>"
1108
+ ).replace(
1109
+ /(password|secret|key|token)[=:]\s*["']?[^"'\s,;]+["']?/gi,
1110
+ "$1=<redacted_credential>"
1111
+ );
1112
+ }
1113
+ var CATEGORY_DEFAULT_CODES = {
1114
+ ["validation" /* VALIDATION */]: "VALIDATION_ERROR",
1115
+ ["connection" /* CONNECTION */]: "CONNECTION_ERROR",
1116
+ ["query" /* QUERY */]: "QUERY_ERROR",
1117
+ ["permission" /* PERMISSION */]: "PERMISSION_ERROR",
1118
+ ["config" /* CONFIGURATION */]: "CONFIG_ERROR",
1119
+ ["resource" /* RESOURCE */]: "RESOURCE_ERROR",
1120
+ ["authentication" /* AUTHENTICATION */]: "AUTHENTICATION_ERROR",
1121
+ ["authorization" /* AUTHORIZATION */]: "AUTHORIZATION_ERROR",
1122
+ ["internal" /* INTERNAL */]: "UNKNOWN_ERROR"
1123
+ };
1124
+ function formatZodError(error) {
1125
+ if (!("issues" in error) || !Array.isArray(error["issues"])) {
1126
+ return null;
1127
+ }
1128
+ const issues = error["issues"];
1129
+ return issues.map((issue) => {
1130
+ const pathStr = Array.isArray(issue.path) && issue.path.length > 0 ? `${issue.path.join(".")}: ` : "";
1131
+ return `${pathStr}${issue.message ?? "Unknown validation error"}`;
1132
+ }).join("; ");
1133
+ }
1134
+ function formatHandlerError(error, _context) {
1135
+ if (error instanceof DbMcpError) {
1136
+ const res = error.toResponse();
1137
+ res.error = sanitizeErrorMessage(res.error);
1138
+ return res;
1139
+ }
1140
+ if (error instanceof Error) {
1141
+ const zodMessage = formatZodError(error);
1142
+ if (zodMessage !== null) {
1143
+ return {
1144
+ success: false,
1145
+ error: sanitizeErrorMessage(zodMessage),
1146
+ code: "VALIDATION_ERROR",
1147
+ category: "validation" /* VALIDATION */,
1148
+ suggestion: void 0,
1149
+ recoverable: false,
1150
+ details: void 0
1151
+ };
1152
+ }
1153
+ }
1154
+ if (error instanceof Error) {
1155
+ const match = findSuggestion(error.message);
1156
+ const category = match?.category ?? "internal" /* INTERNAL */;
1157
+ return {
1158
+ success: false,
1159
+ error: sanitizeErrorMessage(error.message),
1160
+ code: match?.code ?? CATEGORY_DEFAULT_CODES[category],
1161
+ category,
1162
+ suggestion: match?.suggestion,
1163
+ recoverable: false,
1164
+ details: void 0
1165
+ };
1166
+ }
1167
+ return {
1168
+ success: false,
1169
+ error: sanitizeErrorMessage(String(error)),
1170
+ code: "UNKNOWN_ERROR",
1171
+ category: "internal" /* INTERNAL */,
1172
+ suggestion: void 0,
1173
+ recoverable: false,
1174
+ details: void 0
1175
+ };
1176
+ }
1177
+ var authContextStorage = new AsyncLocalStorage();
1178
+ function runWithAuthContext(context, fn) {
1179
+ return authContextStorage.run(context, fn);
1180
+ }
1181
+ function getAuthContext() {
1182
+ return authContextStorage.getStore();
1183
+ }
1184
+
1185
+ // src/auth/scopes/constants.ts
1186
+ var SCOPES = {
1187
+ /** Read-only access to all databases */
1188
+ READ: "read",
1189
+ /** Read and write access to all databases */
1190
+ WRITE: "write",
1191
+ /** Administrative access */
1192
+ ADMIN: "admin",
1193
+ /** Unrestricted access to all operations */
1194
+ FULL: "full"
1195
+ };
1196
+ var BASE_SCOPES = ["read", "write", "admin", "full"];
1197
+ var SUPPORTED_SCOPES = ["read", "write", "admin", "full"];
1198
+ function parseScopes(scopeString) {
1199
+ return scopeString.split(/\s+/).map((s) => s.trim()).filter((s) => s.length > 0);
1200
+ }
1201
+
1202
+ // src/auth/scopes/mapping.ts
1203
+ var TOOL_GROUP_SCOPES = {
1204
+ core: SCOPES.READ,
1205
+ json: SCOPES.READ,
1206
+ text: SCOPES.READ,
1207
+ stats: SCOPES.READ,
1208
+ vector: SCOPES.READ,
1209
+ geo: SCOPES.READ,
1210
+ introspection: SCOPES.READ,
1211
+ migration: SCOPES.WRITE,
1212
+ transactions: SCOPES.WRITE,
1213
+ admin: SCOPES.ADMIN,
1214
+ codemode: SCOPES.ADMIN
1215
+ };
1216
+ var groupsForScope = (maxScope) => {
1217
+ const hierarchy = {
1218
+ read: 0,
1219
+ write: 1,
1220
+ admin: 2,
1221
+ full: 3
1222
+ };
1223
+ const maxLevel = hierarchy[maxScope];
1224
+ return Object.entries(TOOL_GROUP_SCOPES).filter(([, scope]) => hierarchy[scope] <= maxLevel).map(([group]) => group);
1225
+ };
1226
+ groupsForScope(SCOPES.READ);
1227
+ groupsForScope(SCOPES.WRITE);
1228
+ groupsForScope(SCOPES.ADMIN);
1229
+ function withSqlitePrefix(names) {
1230
+ const set = /* @__PURE__ */ new Set();
1231
+ for (const name of names) {
1232
+ set.add(name);
1233
+ set.add(`sqlite_${name}`);
1234
+ }
1235
+ return set;
1236
+ }
1237
+ var adminToolNames = [];
1238
+ for (const [group, scope] of Object.entries(TOOL_GROUP_SCOPES)) {
1239
+ if (scope === SCOPES.ADMIN) {
1240
+ const tools = TOOL_GROUPS[group];
1241
+ adminToolNames.push(...tools);
1242
+ }
1243
+ }
1244
+ adminToolNames.push(
1245
+ "sqlite_audit_list_backups",
1246
+ "sqlite_audit_get_backup",
1247
+ "sqlite_audit_cleanup",
1248
+ "sqlite_audit_diff_backup",
1249
+ "sqlite_audit_restore_backup",
1250
+ "drop_table"
1251
+ // explicitly admin since it is destructive, despite being in core
1252
+ );
1253
+ withSqlitePrefix(adminToolNames);
1254
+ var READ_ONLY_TOOLS = withSqlitePrefix([
1255
+ // Core read operations
1256
+ "read_query",
1257
+ "list_tables",
1258
+ "describe_table",
1259
+ "get_indexes",
1260
+ "count",
1261
+ "exists",
1262
+ "list_triggers",
1263
+ "list_constraints",
1264
+ "date_add",
1265
+ "date_diff",
1266
+ // JSON read operations
1267
+ "json_valid",
1268
+ "json_extract",
1269
+ "json_type",
1270
+ "json_array_length",
1271
+ "json_keys",
1272
+ "json_each",
1273
+ "json_group_array",
1274
+ "json_group_object",
1275
+ "json_pretty",
1276
+ "json_query",
1277
+ "json_select",
1278
+ "json_validate_path",
1279
+ "json_analyze_schema",
1280
+ "json_storage_info",
1281
+ "json_diff",
1282
+ "json_security_scan",
1283
+ // Text read operations
1284
+ "regex_extract",
1285
+ "regex_match",
1286
+ "text_split",
1287
+ "text_concat",
1288
+ "text_replace",
1289
+ "text_trim",
1290
+ "text_case",
1291
+ "text_substring",
1292
+ "fuzzy_match",
1293
+ "phonetic_match",
1294
+ "text_normalize",
1295
+ "text_validate",
1296
+ "advanced_search",
1297
+ "text_sentiment",
1298
+ "fts_search",
1299
+ "fts_match_info",
1300
+ "fts_headline",
1301
+ // Stats (all read-only)
1302
+ "stats_basic",
1303
+ "stats_count",
1304
+ "stats_group_by",
1305
+ "stats_histogram",
1306
+ "stats_percentile",
1307
+ "stats_correlation",
1308
+ "stats_top_n",
1309
+ "stats_distinct",
1310
+ "stats_summary",
1311
+ "stats_frequency",
1312
+ "stats_outliers",
1313
+ "stats_regression",
1314
+ "stats_hypothesis",
1315
+ "stats_detect_anomalies",
1316
+ "stats_detect_bloat",
1317
+ "stats_detect_schema_risks",
1318
+ "stats_sample",
1319
+ "window_row_number",
1320
+ "window_rank",
1321
+ "window_lag_lead",
1322
+ "window_running_total",
1323
+ "window_moving_avg",
1324
+ "window_ntile",
1325
+ // Vector read operations
1326
+ "vector_search",
1327
+ "vector_get",
1328
+ "vector_count",
1329
+ "vector_stats",
1330
+ "vector_dimensions",
1331
+ "vector_normalize",
1332
+ "vector_distance",
1333
+ // Geo read operations
1334
+ "geo_distance",
1335
+ "geo_nearby",
1336
+ "geo_bounding_box",
1337
+ "geo_cluster",
1338
+ // Introspection (all read-only)
1339
+ "dependency_graph",
1340
+ "topological_sort",
1341
+ "cascade_simulator",
1342
+ "schema_snapshot",
1343
+ "schema_diff",
1344
+ "constraint_analysis",
1345
+ "migration_risks",
1346
+ "storage_analysis",
1347
+ "index_audit",
1348
+ "query_plan"
1349
+ ]);
1350
+ var WRITE_TOOLS = withSqlitePrefix([
1351
+ // Core write operations
1352
+ "write_query",
1353
+ "create_table",
1354
+ "create_index",
1355
+ "drop_index",
1356
+ "upsert",
1357
+ "batch_insert",
1358
+ "truncate",
1359
+ "create_trigger",
1360
+ "drop_trigger",
1361
+ "alter_table",
1362
+ // JSON write operations
1363
+ "json_insert",
1364
+ "json_update",
1365
+ "json_set",
1366
+ "json_remove",
1367
+ "json_array_append",
1368
+ "json_merge",
1369
+ "create_json_collection",
1370
+ "jsonb_convert",
1371
+ "json_normalize_column",
1372
+ // Text write operations
1373
+ "fts_create",
1374
+ "fts_rebuild",
1375
+ // Vector write operations
1376
+ "vector_create_table",
1377
+ "vector_store",
1378
+ "vector_batch_store",
1379
+ "vector_delete",
1380
+ // Geo write operations
1381
+ "spatialite_load",
1382
+ "spatialite_create_table",
1383
+ "spatialite_query",
1384
+ "spatialite_analyze",
1385
+ "spatialite_index",
1386
+ "spatialite_transform",
1387
+ "spatialite_import",
1388
+ // Migration (write scope group)
1389
+ "migration_init",
1390
+ "migration_record",
1391
+ "migration_apply",
1392
+ "migration_rollback",
1393
+ "migration_history",
1394
+ "migration_status",
1395
+ // Transactions (write scope group)
1396
+ "transaction_begin",
1397
+ "transaction_status",
1398
+ "transaction_commit",
1399
+ "transaction_rollback",
1400
+ "transaction_savepoint",
1401
+ "transaction_release",
1402
+ "transaction_rollback_to",
1403
+ "transaction_execute"
1404
+ ]);
1405
+
1406
+ // src/auth/scopes/validation.ts
1407
+ function hasAdminScope(scopes) {
1408
+ return scopes.includes("admin") || scopes.includes("full");
1409
+ }
1410
+ function hasWriteScope(scopes) {
1411
+ return scopes.includes("write") || hasAdminScope(scopes);
1412
+ }
1413
+ function hasReadScope(scopes) {
1414
+ return scopes.includes("read") || hasWriteScope(scopes);
1415
+ }
1416
+
1417
+ // src/auth/scopes/enforcement.ts
1418
+ var toolScopeMap = /* @__PURE__ */ new Map();
1419
+ function registerToolScopes(map) {
1420
+ for (const [key, val] of map.entries()) {
1421
+ toolScopeMap.set(key, val);
1422
+ }
1423
+ }
1424
+ function scopeGrantsToolAccess(scope, toolName) {
1425
+ if (scope === "full" || scope === "admin") {
1426
+ return true;
1427
+ }
1428
+ if (toolScopeMap.size > 0) {
1429
+ const required = toolScopeMap.get(toolName);
1430
+ if (required) {
1431
+ if (required.includes(scope)) {
1432
+ return true;
1433
+ }
1434
+ if (scope === "write" && required.includes("read")) {
1435
+ return true;
1436
+ }
1437
+ return false;
1438
+ }
1439
+ return false;
1440
+ }
1441
+ if (scope === "write") {
1442
+ return WRITE_TOOLS.has(toolName) || READ_ONLY_TOOLS.has(toolName);
1443
+ }
1444
+ if (scope === "read") {
1445
+ return READ_ONLY_TOOLS.has(toolName);
1446
+ }
1447
+ return false;
1448
+ }
1449
+ function scopesGrantToolAccess(scopes, toolName) {
1450
+ return scopes.some((scope) => scopeGrantsToolAccess(scope, toolName));
1451
+ }
1452
+
1453
+ // src/auth/errors.ts
1454
+ var OAuthError = class extends DbMcpError {
1455
+ /** HTTP status code for this error */
1456
+ httpStatus;
1457
+ /** WWW-Authenticate header value */
1458
+ wwwAuthenticate;
1459
+ constructor(message, code, httpStatus, details, wwwAuthenticate) {
1460
+ super(message, code, "authentication" /* AUTHENTICATION */, { details });
1461
+ this.name = "OAuthError";
1462
+ this.httpStatus = httpStatus;
1463
+ this.wwwAuthenticate = wwwAuthenticate;
1464
+ }
1465
+ };
1466
+ var TokenMissingError = class extends OAuthError {
1467
+ constructor(realm = "db-mcp") {
1468
+ super(
1469
+ "No access token provided",
1470
+ ERROR_CODES.AUTH.TOKEN_MISSING.full,
1471
+ 401,
1472
+ void 0,
1473
+ `Bearer realm="${realm}"`
1474
+ );
1475
+ this.name = "TokenMissingError";
1476
+ }
1477
+ };
1478
+ var InvalidTokenError = class extends OAuthError {
1479
+ constructor(message = "Invalid access token", details) {
1480
+ super(
1481
+ message,
1482
+ ERROR_CODES.AUTH.TOKEN_INVALID.full,
1483
+ 401,
1484
+ details,
1485
+ 'Bearer error="invalid_token"'
1486
+ );
1487
+ this.name = "InvalidTokenError";
1488
+ }
1489
+ };
1490
+ var TokenExpiredError = class extends OAuthError {
1491
+ constructor(expiredAt) {
1492
+ super(
1493
+ "Access token has expired",
1494
+ ERROR_CODES.AUTH.TOKEN_EXPIRED.full,
1495
+ 401,
1496
+ expiredAt ? { expiredAt: expiredAt.toISOString() } : void 0,
1497
+ 'Bearer error="invalid_token", error_description="Token has expired"'
1498
+ );
1499
+ this.name = "TokenExpiredError";
1500
+ }
1501
+ };
1502
+ var InvalidSignatureError = class extends OAuthError {
1503
+ constructor(message = "Token signature verification failed") {
1504
+ super(
1505
+ message,
1506
+ ERROR_CODES.AUTH.SIGNATURE_INVALID.full,
1507
+ 401,
1508
+ void 0,
1509
+ 'Bearer error="invalid_token", error_description="Signature verification failed"'
1510
+ );
1511
+ this.name = "InvalidSignatureError";
1512
+ }
1513
+ };
1514
+ var InsufficientScopeError = class extends OAuthError {
1515
+ constructor(_requiredScope, _providedScopes) {
1516
+ super(
1517
+ `Insufficient scope.`,
1518
+ ERROR_CODES.AUTH.SCOPE_DENIED.full,
1519
+ 403,
1520
+ void 0,
1521
+ `Bearer error="insufficient_scope"`
1522
+ );
1523
+ this.name = "InsufficientScopeError";
1524
+ }
1525
+ };
1526
+ var AuthServerDiscoveryError = class extends OAuthError {
1527
+ constructor(serverUrl, cause) {
1528
+ super(
1529
+ `Failed to discover authorization server metadata: ${serverUrl}`,
1530
+ ERROR_CODES.AUTH.DISCOVERY_FAILED.full,
1531
+ 500,
1532
+ {
1533
+ serverUrl,
1534
+ cause: cause?.message
1535
+ }
1536
+ );
1537
+ this.name = "AuthServerDiscoveryError";
1538
+ }
1539
+ };
1540
+ var JwksFetchError = class extends OAuthError {
1541
+ constructor(jwksUri, cause) {
1542
+ super(
1543
+ `Failed to fetch JWKS: ${jwksUri}`,
1544
+ ERROR_CODES.AUTH.JWKS_FETCH_FAILED.full,
1545
+ 500,
1546
+ {
1547
+ jwksUri,
1548
+ cause: cause?.message
1549
+ }
1550
+ );
1551
+ this.name = "JwksFetchError";
1552
+ }
1553
+ };
1554
+ function isOAuthError(error) {
1555
+ return error instanceof OAuthError;
1556
+ }
1557
+
1558
+ export { ALL_TOOL_GROUPS, AuthServerDiscoveryError, AuthenticationError, AuthorizationError, BASE_SCOPES, ConfigurationError, ConnectionError, DbMcpError, ERROR_CODES, ExtensionNotAvailableError, InsufficientScopeError, InvalidSignatureError, InvalidTokenError, JwksFetchError, META_GROUPS, QueryError, ResourceNotFoundError, SCOPES, SUPPORTED_SCOPES, TOOL_GROUPS, TokenExpiredError, TokenMissingError, ValidationError, createModuleLogger, filterTools, findSuggestion, formatHandlerError, getAuthContext, getFilterSummary, getToolFilterFromEnv, hasAdminScope, hasReadScope, isOAuthError, isToolEnabled, logger, parseScopes, parseToolFilter, registerToolScopes, runWithAuthContext, sanitizeErrorMessage, scopesGrantToolAccess };