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.
- package/README.md +96 -91
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapters/database-adapter.d.ts +173 -0
- package/dist/adapters/database-adapter.d.ts.map +1 -0
- package/dist/adapters/query-validation.d.ts +20 -0
- package/dist/adapters/query-validation.d.ts.map +1 -0
- package/dist/adapters/registration/index.d.ts +4 -0
- package/dist/adapters/registration/index.d.ts.map +1 -0
- package/dist/adapters/registration/prompts.d.ts +7 -0
- package/dist/adapters/registration/prompts.d.ts.map +1 -0
- package/dist/adapters/registration/resources.d.ts +7 -0
- package/dist/adapters/registration/resources.d.ts.map +1 -0
- package/dist/adapters/registration/tools.d.ts +9 -0
- package/dist/adapters/registration/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/index.d.ts +9 -0
- package/dist/adapters/sqlite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/json-utils.d.ts +100 -0
- package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/analysis.d.ts +23 -0
- package/dist/adapters/sqlite/prompts/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/index.d.ts +16 -0
- package/dist/adapters/sqlite/prompts/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/query.d.ts +19 -0
- package/dist/adapters/sqlite/prompts/query.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/schema.d.ts +20 -0
- package/dist/adapters/sqlite/prompts/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/query-executor.d.ts +38 -0
- package/dist/adapters/sqlite/query-executor.d.ts.map +1 -0
- package/dist/adapters/sqlite/resources.d.ts +13 -0
- package/dist/adapters/sqlite/resources.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema-manager.d.ts +69 -0
- package/dist/adapters/sqlite/schema-manager.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts +459 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/codemode.d.ts +30 -0
- package/dist/adapters/sqlite/schemas/codemode.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/common.d.ts +9 -0
- package/dist/adapters/sqlite/schemas/common.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/core.d.ts +530 -0
- package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/error-mixin.d.ts +10 -0
- package/dist/adapters/sqlite/schemas/error-mixin.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts +106 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/geo.d.ts +135 -0
- package/dist/adapters/sqlite/schemas/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/index.d.ts +23 -0
- package/dist/adapters/sqlite/schemas/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/introspection.d.ts +583 -0
- package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/json.d.ts +849 -0
- package/dist/adapters/sqlite/schemas/json.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/migration.d.ts +220 -0
- package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/native.d.ts +235 -0
- package/dist/adapters/sqlite/schemas/native.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/server.d.ts +13 -0
- package/dist/adapters/sqlite/schemas/server.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts +114 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/stats.d.ts +780 -0
- package/dist/adapters/sqlite/schemas/stats.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/text.d.ts +570 -0
- package/dist/adapters/sqlite/schemas/text.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/vector.d.ts +252 -0
- package/dist/adapters/sqlite/schemas/vector.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/virtual.d.ts +257 -0
- package/dist/adapters/sqlite/schemas/virtual.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/where.d.ts +20 -0
- package/dist/adapters/sqlite/schemas/where.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts +13 -0
- package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts +7 -0
- package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts +138 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts +11 -0
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/index.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/admin/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts +37 -0
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/reindex.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/reindex.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/verify.d.ts +13 -0
- package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/wal.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/wal.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/codemode.d.ts +22 -0
- package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/column-validation.d.ts +26 -0
- package/dist/adapters/sqlite/tools/column-validation.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/alter-table.d.ts +11 -0
- package/dist/adapters/sqlite/tools/core/alter-table.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/constraints.d.ts +10 -0
- package/dist/adapters/sqlite/tools/core/constraints.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience.d.ts +29 -0
- package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/datetime.d.ts +11 -0
- package/dist/adapters/sqlite/tools/core/datetime.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/index.d.ts +14 -0
- package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/indexes.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/indexes.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/queries.d.ts +16 -0
- package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/tables.d.ts +37 -0
- package/dist/adapters/sqlite/tools/core/tables.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/triggers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/core/triggers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
- package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
- package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/index.d.ts +33 -0
- package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts +11 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts +40 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts +44 -0
- package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts +12 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/index.d.ts +17 -0
- package/dist/adapters/sqlite/tools/introspection/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts +21 -0
- package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/index.d.ts +17 -0
- package/dist/adapters/sqlite/tools/json-helpers/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/write.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-helpers/write.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts +39 -0
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/diff.d.ts +11 -0
- package/dist/adapters/sqlite/tools/json-operations/diff.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/json-operations/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/security.d.ts +19 -0
- package/dist/adapters/sqlite/tools/json-operations/security.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/transform.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-operations/transform.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts +34 -0
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/index.d.ts +15 -0
- package/dist/adapters/sqlite/tools/migration/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts +7 -0
- package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/advanced.d.ts +28 -0
- package/dist/adapters/sqlite/tools/stats/advanced.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts +22 -0
- package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/basic.d.ts +32 -0
- package/dist/adapters/sqlite/tools/stats/basic.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/helpers.d.ts +27 -0
- package/dist/adapters/sqlite/tools/stats/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/index.d.ts +12 -0
- package/dist/adapters/sqlite/tools/stats/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/index.d.ts +4 -0
- package/dist/adapters/sqlite/tools/stats/inference/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts +17 -0
- package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts +15 -0
- package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/formatting.d.ts +48 -0
- package/dist/adapters/sqlite/tools/text/formatting.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts +22 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/text/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/regex.d.ts +21 -0
- package/dist/adapters/sqlite/tools/text/regex.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts +17 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/sentiment.d.ts +13 -0
- package/dist/adapters/sqlite/tools/text/sentiment.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/validate.d.ts +11 -0
- package/dist/adapters/sqlite/tools/text/validate.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/helpers.d.ts +11 -0
- package/dist/adapters/sqlite/tools/vector/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/index.d.ts +14 -0
- package/dist/adapters/sqlite/tools/vector/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts +28 -0
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/search.d.ts +16 -0
- package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/storage.d.ts +24 -0
- package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/tools.d.ts +9 -0
- package/dist/adapters/sqlite/tools/vector/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/analysis.d.ts +24 -0
- package/dist/adapters/sqlite/tools/virtual/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/extensions.d.ts +13 -0
- package/dist/adapters/sqlite/tools/virtual/extensions.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/virtual/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/virtual/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/views.d.ts +21 -0
- package/dist/adapters/sqlite/tools/virtual/views.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts +6 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts.map +1 -0
- package/dist/adapters/sqlite/types.d.ts +89 -0
- package/dist/adapters/sqlite/types.d.ts.map +1 -0
- package/dist/adapters/sqlite-helpers.d.ts +51 -0
- package/dist/adapters/sqlite-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/extensions.d.ts +17 -0
- package/dist/adapters/sqlite-native/extensions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/index.d.ts +11 -0
- package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/native-query-executor.d.ts +24 -0
- package/dist/adapters/sqlite-native/native-query-executor.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts +160 -0
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/registration/index.d.ts +12 -0
- package/dist/adapters/sqlite-native/registration/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts +23 -0
- package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts +15 -0
- package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts +22 -0
- package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts +78 -0
- package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts +30 -0
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts +36 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -0
- package/dist/audit/backup-manager.d.ts +90 -0
- package/dist/audit/backup-manager.d.ts.map +1 -0
- package/dist/audit/index.d.ts +11 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/interceptor.d.ts +54 -0
- package/dist/audit/interceptor.d.ts.map +1 -0
- package/dist/audit/logger.d.ts +62 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/types.d.ts +112 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/auth/auth-context.d.ts +28 -0
- package/dist/auth/auth-context.d.ts.map +1 -0
- package/dist/auth/authorization-server-discovery.d.ts +90 -0
- package/dist/auth/authorization-server-discovery.d.ts.map +1 -0
- package/dist/auth/errors.d.ts +74 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/middleware/core.d.ts +22 -0
- package/dist/auth/middleware/core.d.ts.map +1 -0
- package/dist/auth/middleware/express-auth.d.ts +13 -0
- package/dist/auth/middleware/express-auth.d.ts.map +1 -0
- package/dist/auth/middleware/express-scopes.d.ts +6 -0
- package/dist/auth/middleware/express-scopes.d.ts.map +1 -0
- package/dist/auth/middleware/extraction.d.ts +2 -0
- package/dist/auth/middleware/extraction.d.ts.map +1 -0
- package/dist/auth/middleware/index.d.ts +5 -0
- package/dist/auth/middleware/index.d.ts.map +1 -0
- package/dist/auth/oauth-resource-server.d.ts +74 -0
- package/dist/auth/oauth-resource-server.d.ts.map +1 -0
- package/dist/auth/scope-map.d.ts +24 -0
- package/dist/auth/scope-map.d.ts.map +1 -0
- package/dist/auth/scopes/constants.d.ts +40 -0
- package/dist/auth/scopes/constants.d.ts.map +1 -0
- package/dist/auth/scopes/display.d.ts +5 -0
- package/dist/auth/scopes/display.d.ts.map +1 -0
- package/dist/auth/scopes/enforcement.d.ts +27 -0
- package/dist/auth/scopes/enforcement.d.ts.map +1 -0
- package/dist/auth/scopes/index.d.ts +6 -0
- package/dist/auth/scopes/index.d.ts.map +1 -0
- package/dist/auth/scopes/mapping.d.ts +39 -0
- package/dist/auth/scopes/mapping.d.ts.map +1 -0
- package/dist/auth/scopes/validation.d.ts +27 -0
- package/dist/auth/scopes/validation.d.ts.map +1 -0
- package/dist/auth/token-validator.d.ts +63 -0
- package/dist/auth/token-validator.d.ts.map +1 -0
- package/dist/auth/transport-agnostic.d.ts +11 -0
- package/dist/auth/transport-agnostic.d.ts.map +1 -0
- package/dist/auth/types.d.ts +257 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/{chunk-WBER5YY4.js → chunk-37G4DLL6.js} +1010 -409
- package/dist/chunk-E5IESRTK.js +489 -0
- package/dist/{chunk-645ZEFLA.js → chunk-L552U3QS.js} +887 -309
- package/dist/{chunk-5Y42NPBP.js → chunk-NV34JSQM.js} +4656 -1829
- package/dist/{chunk-Z7C2TM4L.js → chunk-W5WQVNVX.js} +169 -57
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +47 -26
- package/dist/codemode/api-constants.d.ts +40 -0
- package/dist/codemode/api-constants.d.ts.map +1 -0
- package/dist/codemode/api.d.ts +70 -0
- package/dist/codemode/api.d.ts.map +1 -0
- package/dist/codemode/auto-return.d.ts +25 -0
- package/dist/codemode/auto-return.d.ts.map +1 -0
- package/dist/codemode/index.d.ts +12 -0
- package/dist/codemode/index.d.ts.map +1 -0
- package/dist/codemode/sandbox-factory.d.ts +72 -0
- package/dist/codemode/sandbox-factory.d.ts.map +1 -0
- package/dist/codemode/sandbox.d.ts +54 -0
- package/dist/codemode/sandbox.d.ts.map +1 -0
- package/dist/codemode/security.d.ts +45 -0
- package/dist/codemode/security.d.ts.map +1 -0
- package/dist/codemode/types.d.ts +167 -0
- package/dist/codemode/types.d.ts.map +1 -0
- package/dist/constants/server-instructions.d.ts +22 -0
- package/dist/constants/server-instructions.d.ts.map +1 -0
- package/dist/filtering/tool-constants.d.ts +45 -0
- package/dist/filtering/tool-constants.d.ts.map +1 -0
- package/dist/filtering/tool-filter.d.ts +82 -0
- package/dist/filtering/tool-filter.d.ts.map +1 -0
- package/dist/{http-6KF4ULDI.js → http-HWTUVFIA.js} +498 -391
- package/dist/index.d.ts +9 -1065
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -6
- package/dist/server/mcp-server.d.ts +66 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/registration/audit-tools.d.ts +13 -0
- package/dist/server/registration/audit-tools.d.ts.map +1 -0
- package/dist/server/registration/built-in-tools.d.ts +8 -0
- package/dist/server/registration/built-in-tools.d.ts.map +1 -0
- package/dist/server/registration/help-resources.d.ts +7 -0
- package/dist/server/registration/help-resources.d.ts.map +1 -0
- package/dist/server/registration/index.d.ts +4 -0
- package/dist/server/registration/index.d.ts.map +1 -0
- package/dist/{sqlite-U5KSYQXK.js → sqlite-TB56Z7G3.js} +61 -17
- package/dist/{sqlite-native-JXMCFQBA.js → sqlite-native-IF75BB3O.js} +459 -254
- package/dist/transports/http/index.d.ts +8 -0
- package/dist/transports/http/index.d.ts.map +1 -0
- package/dist/transports/http/middleware.d.ts +25 -0
- package/dist/transports/http/middleware.d.ts.map +1 -0
- package/dist/transports/http/oauth.d.ts +24 -0
- package/dist/transports/http/oauth.d.ts.map +1 -0
- package/dist/transports/http/session.d.ts +2 -0
- package/dist/transports/http/session.d.ts.map +1 -0
- package/dist/transports/http/sessions/index.d.ts +4 -0
- package/dist/transports/http/sessions/index.d.ts.map +1 -0
- package/dist/transports/http/sessions/legacy-sse.d.ts +6 -0
- package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -0
- package/dist/transports/http/sessions/mutex.d.ts +6 -0
- package/dist/transports/http/sessions/mutex.d.ts.map +1 -0
- package/dist/transports/http/sessions/stateful.d.ts +12 -0
- package/dist/transports/http/sessions/stateful.d.ts.map +1 -0
- package/dist/transports/http/sessions/stateless.d.ts +6 -0
- package/dist/transports/http/sessions/stateless.d.ts.map +1 -0
- package/dist/transports/http/transport.d.ts +65 -0
- package/dist/transports/http/transport.d.ts.map +1 -0
- package/dist/transports/http/type-adapters.d.ts +20 -0
- package/dist/transports/http/type-adapters.d.ts.map +1 -0
- package/dist/transports/http/types.d.ts +120 -0
- package/dist/transports/http/types.d.ts.map +1 -0
- package/dist/types/adapter.d.ts +138 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/auth.d.ts +79 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/database.d.ts +100 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/filtering.d.ts +41 -0
- package/dist/types/filtering.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/server.d.ts +48 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/utils/annotations.d.ts +62 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/errors/base.d.ts +33 -0
- package/dist/utils/errors/base.d.ts.map +1 -0
- package/dist/utils/errors/categories.d.ts +41 -0
- package/dist/utils/errors/categories.d.ts.map +1 -0
- package/dist/utils/errors/classes.d.ts +124 -0
- package/dist/utils/errors/classes.d.ts.map +1 -0
- package/dist/utils/errors/error-response-fields.d.ts +24 -0
- package/dist/utils/errors/error-response-fields.d.ts.map +1 -0
- package/dist/utils/errors/format.d.ts +74 -0
- package/dist/utils/errors/format.d.ts.map +1 -0
- package/dist/utils/errors/index.d.ts +11 -0
- package/dist/utils/errors/index.d.ts.map +1 -0
- package/dist/utils/errors/suggestions.d.ts +16 -0
- package/dist/utils/errors/suggestions.d.ts.map +1 -0
- package/dist/utils/icons.d.ts +19 -0
- package/dist/utils/icons.d.ts.map +1 -0
- package/dist/utils/identifiers.d.ts +121 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/insights-manager.d.ts +39 -0
- package/dist/utils/insights-manager.d.ts.map +1 -0
- package/dist/utils/logger/error-codes.d.ts +48 -0
- package/dist/utils/logger/error-codes.d.ts.map +1 -0
- package/dist/utils/logger/index.d.ts +22 -0
- package/dist/utils/logger/index.d.ts.map +1 -0
- package/dist/utils/logger/logger.d.ts +94 -0
- package/dist/utils/logger/logger.d.ts.map +1 -0
- package/dist/utils/logger/module-logger.d.ts +28 -0
- package/dist/utils/logger/module-logger.d.ts.map +1 -0
- package/dist/utils/logger/types.d.ts +36 -0
- package/dist/utils/logger/types.d.ts.map +1 -0
- package/dist/utils/progress-utils.d.ts +54 -0
- package/dist/utils/progress-utils.d.ts.map +1 -0
- package/dist/utils/redaction.d.ts +4 -0
- package/dist/utils/redaction.d.ts.map +1 -0
- package/dist/utils/resource-annotations.d.ts +36 -0
- package/dist/utils/resource-annotations.d.ts.map +1 -0
- package/dist/utils/validate-json-path.d.ts +43 -0
- package/dist/utils/validate-json-path.d.ts.map +1 -0
- package/dist/utils/validate-path.d.ts +37 -0
- package/dist/utils/validate-path.d.ts.map +1 -0
- package/dist/utils/where-clause.d.ts +42 -0
- package/dist/utils/where-clause.d.ts.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +26 -13
- package/.gitattributes +0 -2
- package/.gitleaks.toml +0 -9
- package/.trivyignore +0 -8
- package/dist/chunk-OKOVZ5QE.js +0 -28
- package/dist/chunk-SFJQCNG7.js +0 -131
- package/dist/chunk-VIDSICEL.js +0 -85
- package/dist/chunk-X3MUUOWM.js +0 -152
- package/dist/worker-script.d.ts +0 -2
- package/dist/worker-script.js +0 -150
- package/logs/.gitkeep +0 -1
- package/mcp-config-example.json +0 -83
- package/playwright.config.ts +0 -101
- package/scripts/generate-server-instructions.ts +0 -111
- package/scripts/update-badges.ts +0 -99
- package/server.json +0 -54
- package/test-server/README.md +0 -115
- package/test-server/code-map.md +0 -421
- package/test-server/fixtures/sample.csv +0 -6
- package/test-server/reset-database.ps1 +0 -415
- package/test-server/sample.csv +0 -11
- package/test-server/scripts/README.md +0 -27
- package/test-server/scripts/test-help-resources.mjs +0 -245
- package/test-server/scripts/test-prompts.mjs +0 -251
- package/test-server/scripts/test-tool-annotations.mjs +0 -162
- package/test-server/test-advanced/README.md +0 -70
- package/test-server/test-advanced/test-codemode-advanced-admin.md +0 -174
- package/test-server/test-advanced/test-codemode-advanced-core.md +0 -193
- package/test-server/test-advanced/test-codemode-advanced-geo.md +0 -157
- package/test-server/test-advanced/test-codemode-advanced-introspection.md +0 -171
- package/test-server/test-advanced/test-codemode-advanced-json.md +0 -169
- package/test-server/test-advanced/test-codemode-advanced-migration.md +0 -160
- package/test-server/test-advanced/test-codemode-advanced-stats.md +0 -185
- package/test-server/test-advanced/test-codemode-advanced-text.md +0 -183
- package/test-server/test-advanced/test-codemode-advanced-transactions.md +0 -136
- package/test-server/test-advanced/test-codemode-advanced-vector.md +0 -141
- package/test-server/test-codemode/README.md +0 -121
- package/test-server/test-codemode/test-codemode-admin.md +0 -223
- package/test-server/test-codemode/test-codemode-core.md +0 -286
- package/test-server/test-codemode/test-codemode-geo.md +0 -177
- package/test-server/test-codemode/test-codemode-introspection.md +0 -190
- package/test-server/test-codemode/test-codemode-json.md +0 -237
- package/test-server/test-codemode/test-codemode-migration.md +0 -278
- package/test-server/test-codemode/test-codemode-sandbox.md +0 -413
- package/test-server/test-codemode/test-codemode-stats.md +0 -232
- package/test-server/test-codemode/test-codemode-text.md +0 -237
- package/test-server/test-codemode/test-codemode-transactions.md +0 -236
- package/test-server/test-codemode/test-codemode-vector.md +0 -244
- package/test-server/test-codemode/test-codemode-wasm-degradation.md +0 -394
- package/test-server/test-database.sql +0 -424
- package/test-server/test-preflight.md +0 -53
- package/test-server/test-prompts.md +0 -354
- package/test-server/test-resources.md +0 -272
- package/test-server/test-tool-groups/README.md +0 -100
- package/test-server/test-tool-groups/test-admin-core.md +0 -165
- package/test-server/test-tool-groups/test-admin-extensions.md +0 -133
- package/test-server/test-tool-groups/test-core-data.md +0 -262
- package/test-server/test-tool-groups/test-core-schema.md +0 -240
- package/test-server/test-tool-groups/test-geo-haversine.md +0 -130
- package/test-server/test-tool-groups/test-geo-spatialite.md +0 -110
- package/test-server/test-tool-groups/test-introspection-diagnostics.md +0 -123
- package/test-server/test-tool-groups/test-introspection-schema.md +0 -133
- package/test-server/test-tool-groups/test-json-read.md +0 -219
- package/test-server/test-tool-groups/test-json-write.md +0 -157
- package/test-server/test-tool-groups/test-migration.md +0 -193
- package/test-server/test-tool-groups/test-stats-advanced.md +0 -118
- package/test-server/test-tool-groups/test-stats-basic.md +0 -156
- package/test-server/test-tool-groups/test-text-advanced.md +0 -169
- package/test-server/test-tool-groups/test-text-basic.md +0 -177
- package/test-server/test-tool-groups/test-transactions.md +0 -179
- package/test-server/test-tool-groups/test-vector-read.md +0 -130
- package/test-server/test-tool-groups/test-vector-write.md +0 -115
- package/test-server/tool-reference.md +0 -257
- package/tsconfig.build.json +0 -6
- package/tsconfig.test.json +0 -9
|
@@ -1,80 +1,175 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isToolEnabled } from './chunk-
|
|
1
|
+
import { registerToolScope } from './chunk-E5IESRTK.js';
|
|
2
|
+
import { ValidationError, getAuthContext, isToolEnabled, ConnectionError, registerToolScopes, scopesGrantToolAccess, InsufficientScopeError, formatHandlerError } from './chunk-L552U3QS.js';
|
|
3
|
+
import sqliteParser from 'sqlite-parser';
|
|
3
4
|
import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
5
|
import { z } from 'zod';
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
];
|
|
7
|
+
var UNSAFE_FUNCTIONS = /* @__PURE__ */ new Set([
|
|
8
|
+
"LOAD_EXTENSION",
|
|
9
|
+
"WRITEFILE",
|
|
10
|
+
"READFILE",
|
|
11
|
+
"ATTACH",
|
|
12
|
+
"DETACH"
|
|
13
|
+
]);
|
|
14
|
+
var BLOCKED_PRAGMAS = /* @__PURE__ */ new Set([
|
|
15
|
+
"writable_schema",
|
|
16
|
+
"trusted_schema",
|
|
17
|
+
"defensive",
|
|
18
|
+
"cell_size_check",
|
|
19
|
+
"temp_store_directory",
|
|
20
|
+
"journal_mode",
|
|
21
|
+
"synchronous",
|
|
22
|
+
"page_size",
|
|
23
|
+
"temp_store",
|
|
24
|
+
"wal_autocheckpoint",
|
|
25
|
+
"locking_mode",
|
|
26
|
+
"mmap_size",
|
|
27
|
+
"busy_timeout",
|
|
28
|
+
"cache_size"
|
|
29
|
+
]);
|
|
30
30
|
function validateQuery(sql, isReadOnly) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
if (!sql || sql.trim() === "") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
let stripped = "";
|
|
35
|
+
let inString = false;
|
|
36
|
+
let stringChar = "";
|
|
37
|
+
let inBlockComment = false;
|
|
38
|
+
let inLineComment = false;
|
|
39
|
+
for (let i = 0; i < sql.length; i++) {
|
|
40
|
+
const c = sql[i];
|
|
41
|
+
const next = sql[i + 1] || "";
|
|
42
|
+
if (inBlockComment) {
|
|
43
|
+
if (c === "*" && next === "/") {
|
|
44
|
+
inBlockComment = false;
|
|
45
|
+
i++;
|
|
39
46
|
}
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (inLineComment) {
|
|
50
|
+
if (c === "\n") {
|
|
51
|
+
inLineComment = false;
|
|
52
|
+
}
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (inString) {
|
|
56
|
+
if (c === stringChar) {
|
|
57
|
+
if (next === stringChar) {
|
|
58
|
+
i++;
|
|
59
|
+
} else {
|
|
60
|
+
inString = false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (c === "'" || c === '"' || c === "`" || c === "[") {
|
|
66
|
+
inString = true;
|
|
67
|
+
stringChar = c === "[" ? "]" : c;
|
|
68
|
+
continue;
|
|
40
69
|
}
|
|
70
|
+
if (c === "-" && next === "-") {
|
|
71
|
+
inLineComment = true;
|
|
72
|
+
i++;
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
if (c === "/" && next === "*") {
|
|
76
|
+
inBlockComment = true;
|
|
77
|
+
i++;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
stripped += c;
|
|
41
81
|
}
|
|
42
|
-
|
|
43
|
-
|
|
82
|
+
const pragmaMatches = stripped.matchAll(
|
|
83
|
+
/\bPRAGMA\s+(?:[a-zA-Z_]+\.)?([a-zA-Z_]+)\s*(?:=|\()/gi
|
|
84
|
+
);
|
|
85
|
+
for (const match2 of pragmaMatches) {
|
|
86
|
+
if (match2[1] && BLOCKED_PRAGMAS.has(match2[1].toLowerCase())) {
|
|
44
87
|
throw new ValidationError(
|
|
45
|
-
|
|
88
|
+
`Mutating PRAGMA '${match2[1]}' is blocked for security`,
|
|
46
89
|
"DB_DANGEROUS_PATTERN"
|
|
47
90
|
);
|
|
48
91
|
}
|
|
49
92
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
93
|
+
let ast = null;
|
|
94
|
+
let parseError = false;
|
|
95
|
+
try {
|
|
96
|
+
ast = sqliteParser(stripped);
|
|
97
|
+
} catch {
|
|
98
|
+
parseError = true;
|
|
99
|
+
}
|
|
100
|
+
if (ast !== null && typeof ast === "object" && "statement" in ast && Array.isArray(ast.statement)) {
|
|
101
|
+
if (ast.statement.length > 1) {
|
|
102
|
+
throw new ValidationError(
|
|
103
|
+
"Multiple stacked statements are not allowed.",
|
|
104
|
+
"DB_DANGEROUS_PATTERN"
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
} else if (parseError) {
|
|
108
|
+
if (/;\s*(?:INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|REPLACE|UPSERT|PRAGMA|TRUNCATE)\b/i.test(
|
|
109
|
+
stripped
|
|
110
|
+
)) {
|
|
53
111
|
throw new ValidationError(
|
|
54
|
-
"
|
|
112
|
+
"Multiple stacked statements are not allowed.",
|
|
55
113
|
"DB_DANGEROUS_PATTERN"
|
|
56
114
|
);
|
|
57
115
|
}
|
|
58
116
|
}
|
|
117
|
+
const rootStmt = stripped.trim();
|
|
118
|
+
if (isReadOnly) {
|
|
119
|
+
const isSafeRead = /^\s*(?:WITH\s+[\s\S]+?)?(?:SELECT|EXPLAIN|PRAGMA)\b/i.test(rootStmt);
|
|
120
|
+
const writeMatch = /\b(INSERT|UPDATE|DELETE|REPLACE|DROP|CREATE|ALTER|VACUUM|ANALYZE|TRUNCATE)\b/i.exec(
|
|
121
|
+
rootStmt
|
|
122
|
+
);
|
|
123
|
+
if (writeMatch) {
|
|
124
|
+
throw new ValidationError(
|
|
125
|
+
`Read-only mode: ${writeMatch[1]?.toUpperCase() ?? "WRITE"} statements are not allowed`,
|
|
126
|
+
"DB_READ_ONLY_VIOLATION"
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
if (!isSafeRead) {
|
|
130
|
+
throw new ValidationError(
|
|
131
|
+
`Read-only mode violation: statement contains disallowed keywords`,
|
|
132
|
+
"DB_READ_ONLY_VIOLATION"
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
} else {
|
|
136
|
+
const ddlPattern = /^\s*(?:BEGIN\s+)?(?:WITH\s+[\s\S]+?)?(CREATE|DROP|ALTER|VACUUM|ANALYZE)\b/i;
|
|
137
|
+
if (ddlPattern.test(stripped)) {
|
|
138
|
+
const authCtx = getAuthContext();
|
|
139
|
+
if (authCtx && authCtx.authenticated && !authCtx.scopes.includes("admin") && !authCtx.scopes.includes("full")) {
|
|
140
|
+
throw new ValidationError(
|
|
141
|
+
"DDL operations (CREATE, DROP, ALTER) require 'admin' or 'full' scope",
|
|
142
|
+
"DB_ADMIN_REQUIRED"
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
const unsafePattern = new RegExp(
|
|
148
|
+
`\\b(${Array.from(UNSAFE_FUNCTIONS).join("|")})\\b`,
|
|
149
|
+
"i"
|
|
150
|
+
);
|
|
151
|
+
const match = unsafePattern.exec(stripped);
|
|
152
|
+
if (match) {
|
|
153
|
+
throw new ValidationError(
|
|
154
|
+
`Unsafe function call detected: ${match[0].toUpperCase()}`,
|
|
155
|
+
"DB_DANGEROUS_PATTERN"
|
|
156
|
+
);
|
|
157
|
+
}
|
|
59
158
|
}
|
|
60
159
|
|
|
61
160
|
// src/adapters/registration/tools.ts
|
|
62
161
|
function registerToolImpl(adapter, server, tool) {
|
|
162
|
+
const safeDescription = tool.description && tool.description.length > 2e3 ? tool.description.substring(0, 2e3) + "... (truncated)" : tool.description;
|
|
63
163
|
const toolOptions = {
|
|
64
|
-
description:
|
|
164
|
+
description: safeDescription,
|
|
165
|
+
...tool.annotations?.title ? { title: tool.annotations.title.substring(0, 256) } : {}
|
|
65
166
|
};
|
|
167
|
+
const requiredScope = tool.requiredScopes?.[0] ?? "admin";
|
|
168
|
+
registerToolScope(tool.name, requiredScope);
|
|
169
|
+
registerToolScopes(/* @__PURE__ */ new Map([[tool.name, tool.requiredScopes ?? ["admin"]]]));
|
|
66
170
|
if (tool.inputSchema !== void 0) {
|
|
67
171
|
const schema = tool.inputSchema;
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
toolOptions["inputSchema"] = schema.partial().passthrough();
|
|
71
|
-
} catch (e) {
|
|
72
|
-
console.error(`Error applying .partial() to ${tool.name}:`, e);
|
|
73
|
-
toolOptions["inputSchema"] = schema;
|
|
74
|
-
}
|
|
75
|
-
} else {
|
|
76
|
-
toolOptions["inputSchema"] = schema;
|
|
77
|
-
}
|
|
172
|
+
toolOptions["inputSchema"] = schema;
|
|
78
173
|
}
|
|
79
174
|
if (tool.outputSchema !== void 0) {
|
|
80
175
|
toolOptions["outputSchema"] = tool.outputSchema;
|
|
@@ -101,6 +196,12 @@ function registerToolImpl(adapter, server, tool) {
|
|
|
101
196
|
progressToken
|
|
102
197
|
);
|
|
103
198
|
const execFn = async () => {
|
|
199
|
+
const authCtx = getAuthContext();
|
|
200
|
+
const requiredScopes = tool.requiredScopes ?? ["admin"];
|
|
201
|
+
const userScopes = authCtx?.scopes ?? [];
|
|
202
|
+
if (authCtx && !scopesGrantToolAccess(userScopes, tool.name)) {
|
|
203
|
+
throw new InsufficientScopeError(requiredScopes, userScopes);
|
|
204
|
+
}
|
|
104
205
|
const result = await tool.handler(args, context);
|
|
105
206
|
if (hasOutputSchema) {
|
|
106
207
|
const enriched = JSON.stringify({
|
|
@@ -114,7 +215,7 @@ function registerToolImpl(adapter, server, tool) {
|
|
|
114
215
|
'"tokenEstimate":0',
|
|
115
216
|
`"tokenEstimate":${String(tokenEstimate)}`
|
|
116
217
|
);
|
|
117
|
-
|
|
218
|
+
const response = {
|
|
118
219
|
content: [
|
|
119
220
|
{
|
|
120
221
|
type: "text",
|
|
@@ -123,6 +224,10 @@ function registerToolImpl(adapter, server, tool) {
|
|
|
123
224
|
],
|
|
124
225
|
structuredContent: result
|
|
125
226
|
};
|
|
227
|
+
if (result["success"] === false) {
|
|
228
|
+
response.isError = true;
|
|
229
|
+
}
|
|
230
|
+
return response;
|
|
126
231
|
}
|
|
127
232
|
if (typeof result === "object" && result !== null) {
|
|
128
233
|
const withMeta = JSON.stringify(
|
|
@@ -137,9 +242,13 @@ function registerToolImpl(adapter, server, tool) {
|
|
|
137
242
|
'"tokenEstimate": 0',
|
|
138
243
|
`"tokenEstimate": ${String(tokenEstimate)}`
|
|
139
244
|
);
|
|
140
|
-
|
|
245
|
+
const response = {
|
|
141
246
|
content: [{ type: "text", text: finalText }]
|
|
142
247
|
};
|
|
248
|
+
if (result["success"] === false) {
|
|
249
|
+
response.isError = true;
|
|
250
|
+
}
|
|
251
|
+
return response;
|
|
143
252
|
}
|
|
144
253
|
return {
|
|
145
254
|
content: [
|
|
@@ -267,7 +376,7 @@ function buildArgsSchema(args) {
|
|
|
267
376
|
if (!hasRequired) return void 0;
|
|
268
377
|
const schema = {};
|
|
269
378
|
for (const arg of args) {
|
|
270
|
-
const field = z.string().describe(arg.description);
|
|
379
|
+
const field = z.string().max(200, "Argument too long").describe(arg.description);
|
|
271
380
|
schema[arg.name] = arg.required ? field : field.optional();
|
|
272
381
|
}
|
|
273
382
|
return schema;
|
|
@@ -413,9 +522,12 @@ var DatabaseAdapter = class {
|
|
|
413
522
|
* @param progressToken Optional progress token from client request _meta
|
|
414
523
|
*/
|
|
415
524
|
createContext(requestId, server, progressToken) {
|
|
525
|
+
const authContext = getAuthContext();
|
|
416
526
|
const context = {
|
|
417
527
|
timestamp: /* @__PURE__ */ new Date(),
|
|
418
|
-
requestId: requestId ?? crypto.randomUUID()
|
|
528
|
+
requestId: requestId ?? crypto.randomUUID(),
|
|
529
|
+
auth: authContext?.claims,
|
|
530
|
+
clientIp: authContext?.clientIp
|
|
419
531
|
};
|
|
420
532
|
if (server !== void 0) {
|
|
421
533
|
context.server = server;
|
|
@@ -453,4 +565,4 @@ var DatabaseAdapter = class {
|
|
|
453
565
|
}
|
|
454
566
|
};
|
|
455
567
|
|
|
456
|
-
export { DatabaseAdapter };
|
|
568
|
+
export { DatabaseAdapter, validateQuery };
|
package/dist/cli.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { DEFAULT_CONFIG, createServer } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import {
|
|
5
|
-
import './chunk-645ZEFLA.js';
|
|
2
|
+
import { DEFAULT_CONFIG, createServer } from './chunk-37G4DLL6.js';
|
|
3
|
+
import { VERSION } from './chunk-E5IESRTK.js';
|
|
4
|
+
import { logger } from './chunk-L552U3QS.js';
|
|
6
5
|
|
|
7
6
|
// src/audit/types.ts
|
|
8
7
|
var DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES = 10 * 1024 * 1024;
|
|
@@ -18,7 +17,7 @@ function parseArgs() {
|
|
|
18
17
|
let enableCsv = false;
|
|
19
18
|
let enableSpatialite = false;
|
|
20
19
|
let auditLogPath;
|
|
21
|
-
let auditRedact =
|
|
20
|
+
let auditRedact = true;
|
|
22
21
|
let auditReads = false;
|
|
23
22
|
let auditBackup = false;
|
|
24
23
|
let auditBackupData = false;
|
|
@@ -43,11 +42,8 @@ function parseArgs() {
|
|
|
43
42
|
config.statelessHttp = true;
|
|
44
43
|
} else if (arg === "--enable-hsts") {
|
|
45
44
|
config.enableHSTS = true;
|
|
46
|
-
} else if (arg === "--auth-
|
|
47
|
-
|
|
48
|
-
if (tokenValue) {
|
|
49
|
-
config.authToken = tokenValue;
|
|
50
|
-
}
|
|
45
|
+
} else if (arg === "--no-auth-enforcement") {
|
|
46
|
+
config.noAuthEnforcement = true;
|
|
51
47
|
} else if (arg === "--oauth-enabled" || arg === "-o") {
|
|
52
48
|
if (!config.oauth) {
|
|
53
49
|
config.oauth = { enabled: true };
|
|
@@ -132,8 +128,8 @@ function parseArgs() {
|
|
|
132
128
|
if (logPath) {
|
|
133
129
|
auditLogPath = logPath;
|
|
134
130
|
}
|
|
135
|
-
} else if (arg === "--audit-redact") {
|
|
136
|
-
auditRedact =
|
|
131
|
+
} else if (arg === "--audit-no-redact") {
|
|
132
|
+
auditRedact = false;
|
|
137
133
|
} else if (arg === "--audit-reads") {
|
|
138
134
|
auditReads = true;
|
|
139
135
|
} else if (arg === "--audit-backup") {
|
|
@@ -177,19 +173,19 @@ Usage: db-mcp [options]
|
|
|
177
173
|
Transport Options:
|
|
178
174
|
--transport, -t <type> Transport type: stdio (default), http, sse
|
|
179
175
|
--port, -p <port> HTTP port (default: 3000)
|
|
180
|
-
--server-host <host> Host/IP to bind to (default:
|
|
181
|
-
Use 127.0.0.1
|
|
176
|
+
--server-host <host> Host/IP to bind to (default: 127.0.0.1)
|
|
177
|
+
Use 127.0.0.1 for local, 0.0.0.0 to allow external connections
|
|
182
178
|
--stateless Use stateless HTTP mode (no session management, no SSE)
|
|
183
179
|
Ideal for serverless deployments (Lambda, Workers)
|
|
184
180
|
--enable-hsts Enable HSTS header (use when behind HTTPS)
|
|
185
181
|
|
|
186
182
|
Authentication Options:
|
|
187
|
-
--auth-
|
|
183
|
+
--no-auth-enforcement Explicitly bypass auth enforcement for HTTP
|
|
188
184
|
--oauth-enabled, -o Enable OAuth 2.1 authentication
|
|
189
185
|
--oauth-issuer <url> Authorization server URL (issuer)
|
|
190
186
|
--oauth-audience <aud> Expected token audience
|
|
191
187
|
--oauth-jwks-uri <url> JWKS URI (auto-discovered from issuer if not set)
|
|
192
|
-
--oauth-clock-tolerance <seconds> Clock tolerance in seconds (default:
|
|
188
|
+
--oauth-clock-tolerance <seconds> Clock tolerance in seconds (default: 30)
|
|
193
189
|
|
|
194
190
|
Database Options:
|
|
195
191
|
--sqlite <path> Add SQLite database (WASM/sql.js)
|
|
@@ -201,7 +197,7 @@ Extension Options (Native only):
|
|
|
201
197
|
|
|
202
198
|
Audit Options:
|
|
203
199
|
--audit-log <path> Enable audit logging (JSONL file path, or "stderr")
|
|
204
|
-
--audit-redact
|
|
200
|
+
--audit-no-redact Include tool arguments in audit entries (default: redacted)
|
|
205
201
|
--audit-reads Also log read-scoped tool invocations
|
|
206
202
|
--audit-backup Enable pre-mutation DDL snapshots
|
|
207
203
|
--audit-backup-data Include sample data rows in snapshots
|
|
@@ -216,8 +212,8 @@ Server Options:
|
|
|
216
212
|
Legacy: -vector,-geo (exclusion from all)
|
|
217
213
|
|
|
218
214
|
Environment Variables:
|
|
219
|
-
MCP_HOST Host/IP to bind to (default:
|
|
220
|
-
MCP_AUTH_TOKEN Simple bearer token
|
|
215
|
+
MCP_HOST Host/IP to bind to (default: 127.0.0.1)
|
|
216
|
+
MCP_AUTH_TOKEN Simple bearer token
|
|
221
217
|
OAUTH_ENABLED Enable OAuth 2.1 (same as --oauth-enabled)
|
|
222
218
|
OAUTH_ISSUER Authorization server URL
|
|
223
219
|
OAUTH_AUDIENCE Expected token audience
|
|
@@ -229,7 +225,7 @@ Environment Variables:
|
|
|
229
225
|
CSV_EXTENSION_PATH Custom path to CSV extension binary
|
|
230
226
|
SPATIALITE_PATH Custom path to SpatiaLite extension binary
|
|
231
227
|
AUDIT_LOG Audit log file path (or "stderr")
|
|
232
|
-
AUDIT_REDACT Redact arguments (true
|
|
228
|
+
AUDIT_REDACT Redact arguments (default: true, set false to include args)
|
|
233
229
|
AUDIT_READS Log reads (true/false)
|
|
234
230
|
AUDIT_BACKUP Enable backups (true/false)
|
|
235
231
|
AUDIT_BACKUP_DATA Include data (true/false)
|
|
@@ -252,8 +248,19 @@ function loadEnvConfig() {
|
|
|
252
248
|
}
|
|
253
249
|
const authToken = process.env["MCP_AUTH_TOKEN"];
|
|
254
250
|
if (authToken) {
|
|
251
|
+
if (authToken.length < 32) {
|
|
252
|
+
logger.warning(
|
|
253
|
+
"MCP_AUTH_TOKEN is too short (< 32 chars). Use a cryptographically random token."
|
|
254
|
+
);
|
|
255
|
+
}
|
|
255
256
|
config.authToken = authToken;
|
|
256
257
|
}
|
|
258
|
+
if (process.env["NO_AUTH_ENFORCEMENT"] === "true") {
|
|
259
|
+
logger.warning(
|
|
260
|
+
"Auth enforcement explicitly disabled via NO_AUTH_ENFORCEMENT. Ensure this is not running in production."
|
|
261
|
+
);
|
|
262
|
+
config.noAuthEnforcement = true;
|
|
263
|
+
}
|
|
257
264
|
const oauthEnabled = process.env["OAUTH_ENABLED"] === "true";
|
|
258
265
|
if (oauthEnabled) {
|
|
259
266
|
const oauth = { enabled: true };
|
|
@@ -279,7 +286,7 @@ function loadEnvConfig() {
|
|
|
279
286
|
config.audit = {
|
|
280
287
|
enabled: true,
|
|
281
288
|
logPath: auditLog,
|
|
282
|
-
redact: process.env["AUDIT_REDACT"]
|
|
289
|
+
redact: process.env["AUDIT_REDACT"] !== "false",
|
|
283
290
|
auditReads: process.env["AUDIT_READS"] === "true",
|
|
284
291
|
maxSizeBytes: DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES,
|
|
285
292
|
...process.env["AUDIT_BACKUP"] === "true" && {
|
|
@@ -315,6 +322,13 @@ async function main() {
|
|
|
315
322
|
...cliConfig.databases ?? []
|
|
316
323
|
]
|
|
317
324
|
};
|
|
325
|
+
if (process.env["NODE_ENV"] === "production" && config.transport === "http" && !config.oauth?.enabled && !config.authToken && !config.noAuthEnforcement) {
|
|
326
|
+
logger.error(
|
|
327
|
+
"FATAL SECURITY ERROR: HTTP transport in production requires authentication (--oauth-enabled or --auth-token). If you intend to run without authentication, you must explicitly pass --no-auth-enforcement.",
|
|
328
|
+
{ module: "SERVER" }
|
|
329
|
+
);
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
318
332
|
const server = createServer(config);
|
|
319
333
|
process.on("SIGINT", () => {
|
|
320
334
|
void server.shutdown().then(() => {
|
|
@@ -330,25 +344,32 @@ async function main() {
|
|
|
330
344
|
if (dbConfig.type === "sqlite") {
|
|
331
345
|
const options = dbConfig.options;
|
|
332
346
|
if (options?.backend === "better-sqlite3") {
|
|
333
|
-
const { NativeSqliteAdapter } = await import('./sqlite-native-
|
|
347
|
+
const { NativeSqliteAdapter } = await import('./sqlite-native-IF75BB3O.js');
|
|
334
348
|
const adapter = new NativeSqliteAdapter();
|
|
335
349
|
await server.registerAdapter(adapter, dbConfig);
|
|
336
350
|
} else {
|
|
337
|
-
const { SqliteAdapter } = await import('./sqlite-
|
|
351
|
+
const { SqliteAdapter } = await import('./sqlite-TB56Z7G3.js');
|
|
338
352
|
const adapter = new SqliteAdapter();
|
|
339
353
|
await server.registerAdapter(adapter, dbConfig);
|
|
340
354
|
}
|
|
341
355
|
}
|
|
342
356
|
}
|
|
343
357
|
if (config.databases.length === 0) {
|
|
344
|
-
|
|
358
|
+
logger.warning(
|
|
345
359
|
"Warning: No databases configured. Use --sqlite or --sqlite-native, or set SQLITE_DATABASE"
|
|
346
360
|
);
|
|
347
361
|
}
|
|
348
362
|
await server.start();
|
|
349
363
|
} catch (error) {
|
|
350
|
-
|
|
364
|
+
logger.error("Fatal error", {
|
|
365
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
366
|
+
});
|
|
351
367
|
process.exit(1);
|
|
352
368
|
}
|
|
353
369
|
}
|
|
354
|
-
main().catch(
|
|
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"}
|