db-mcp 1.1.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +247 -169
- 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-E5IESRTK.js +489 -0
- package/dist/{chunk-TVIZ3XJH.js → chunk-FR65YPAH.js} +8509 -3925
- package/dist/{chunk-AOUL5SHS.js → chunk-L552U3QS.js} +880 -252
- package/dist/chunk-THATOQRT.js +2624 -0
- package/dist/chunk-W5WQVNVX.js +568 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +114 -19
- 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-VSB7DBJR.js → http-HWTUVFIA.js} +587 -358
- package/dist/index.d.ts +9 -842
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -5
- 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-26V3Y4MK.js → sqlite-6C3AJI4I.js} +115 -147
- package/dist/{sqlite-native-5O7FZJGB.js → sqlite-native-ZSSWCTYC.js} +1016 -349
- 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 +33 -20
- package/.gitattributes +0 -2
- package/dist/chunk-4IA3DB5C.js +0 -135
- package/dist/chunk-FW7UCRLN.js +0 -82
- package/dist/chunk-RHVEZ42P.js +0 -873
- package/dist/chunk-Z2GFQU3G.js +0 -363
- package/dist/worker-script.d.ts +0 -2
- package/dist/worker-script.js +0 -126
- package/playwright.config.ts +0 -101
- package/scripts/generate-server-instructions.ts +0 -111
- package/server.json +0 -52
- package/test-server/README.md +0 -118
- package/test-server/code-map.md +0 -409
- package/test-server/fixtures/sample.csv +0 -6
- package/test-server/reset-database.ps1 +0 -373
- package/test-server/sample.csv +0 -11
- package/test-server/test-agent-experience.md +0 -243
- package/test-server/test-database.sql +0 -388
- package/test-server/test-group-tools.md +0 -861
- package/test-server/test-help-resources.mjs +0 -238
- package/test-server/test-preflight.md +0 -53
- package/test-server/test-prompts.md +0 -354
- package/test-server/test-resources.md +0 -245
- package/test-server/test-tool-annotations.mjs +0 -157
- package/test-server/test-tools-advanced-1.md +0 -517
- package/test-server/test-tools-advanced-2.md +0 -487
- package/test-server/test-tools-codemode.md +0 -629
- package/test-server/test-tools.md +0 -176
- package/test-server/tool-reference.md +0 -236
- package/tsconfig.test.json +0 -9
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { DEFAULT_CONFIG, createServer } from './chunk-
|
|
3
|
-
import { VERSION } from './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
import { DEFAULT_CONFIG, createServer } from './chunk-THATOQRT.js';
|
|
3
|
+
import { VERSION } from './chunk-E5IESRTK.js';
|
|
4
|
+
import { logger } from './chunk-L552U3QS.js';
|
|
5
|
+
|
|
6
|
+
// src/audit/types.ts
|
|
7
|
+
var DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES = 10 * 1024 * 1024;
|
|
8
|
+
var DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES = 50 * 1024 * 1024;
|
|
9
|
+
var DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS = 30;
|
|
10
|
+
var DEFAULT_AUDIT_BACKUP_MAX_COUNT = 1e3;
|
|
5
11
|
|
|
6
12
|
// src/cli.ts
|
|
7
13
|
function parseArgs() {
|
|
@@ -10,6 +16,11 @@ function parseArgs() {
|
|
|
10
16
|
const databases = [];
|
|
11
17
|
let enableCsv = false;
|
|
12
18
|
let enableSpatialite = false;
|
|
19
|
+
let auditLogPath;
|
|
20
|
+
let auditRedact = true;
|
|
21
|
+
let auditReads = false;
|
|
22
|
+
let auditBackup = false;
|
|
23
|
+
let auditBackupData = false;
|
|
13
24
|
for (let i = 0; i < args.length; i++) {
|
|
14
25
|
const arg = args[i];
|
|
15
26
|
if (arg === "--transport" || arg === "-t") {
|
|
@@ -31,11 +42,8 @@ function parseArgs() {
|
|
|
31
42
|
config.statelessHttp = true;
|
|
32
43
|
} else if (arg === "--enable-hsts") {
|
|
33
44
|
config.enableHSTS = true;
|
|
34
|
-
} else if (arg === "--auth-
|
|
35
|
-
|
|
36
|
-
if (tokenValue) {
|
|
37
|
-
config.authToken = tokenValue;
|
|
38
|
-
}
|
|
45
|
+
} else if (arg === "--no-auth-enforcement") {
|
|
46
|
+
config.noAuthEnforcement = true;
|
|
39
47
|
} else if (arg === "--oauth-enabled" || arg === "-o") {
|
|
40
48
|
if (!config.oauth) {
|
|
41
49
|
config.oauth = { enabled: true };
|
|
@@ -115,6 +123,19 @@ function parseArgs() {
|
|
|
115
123
|
if (lastDb?.options && "backend" in lastDb.options) {
|
|
116
124
|
lastDb.options["spatialite"] = true;
|
|
117
125
|
}
|
|
126
|
+
} else if (arg === "--audit-log") {
|
|
127
|
+
const logPath = args[++i];
|
|
128
|
+
if (logPath) {
|
|
129
|
+
auditLogPath = logPath;
|
|
130
|
+
}
|
|
131
|
+
} else if (arg === "--audit-no-redact") {
|
|
132
|
+
auditRedact = false;
|
|
133
|
+
} else if (arg === "--audit-reads") {
|
|
134
|
+
auditReads = true;
|
|
135
|
+
} else if (arg === "--audit-backup") {
|
|
136
|
+
auditBackup = true;
|
|
137
|
+
} else if (arg === "--audit-backup-data") {
|
|
138
|
+
auditBackupData = true;
|
|
118
139
|
} else if (arg === "--help" || arg === "-h") {
|
|
119
140
|
printHelp();
|
|
120
141
|
process.exit(0);
|
|
@@ -123,6 +144,24 @@ function parseArgs() {
|
|
|
123
144
|
if (databases.length > 0) {
|
|
124
145
|
config.databases = databases;
|
|
125
146
|
}
|
|
147
|
+
if (auditLogPath) {
|
|
148
|
+
config.audit = {
|
|
149
|
+
enabled: true,
|
|
150
|
+
logPath: auditLogPath,
|
|
151
|
+
redact: auditRedact,
|
|
152
|
+
auditReads,
|
|
153
|
+
maxSizeBytes: DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES,
|
|
154
|
+
...auditBackup && {
|
|
155
|
+
backup: {
|
|
156
|
+
enabled: true,
|
|
157
|
+
includeData: auditBackupData,
|
|
158
|
+
maxAgeDays: DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS,
|
|
159
|
+
maxCount: DEFAULT_AUDIT_BACKUP_MAX_COUNT,
|
|
160
|
+
maxDataSizeBytes: DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
126
165
|
return config;
|
|
127
166
|
}
|
|
128
167
|
function printHelp() {
|
|
@@ -134,19 +173,19 @@ Usage: db-mcp [options]
|
|
|
134
173
|
Transport Options:
|
|
135
174
|
--transport, -t <type> Transport type: stdio (default), http, sse
|
|
136
175
|
--port, -p <port> HTTP port (default: 3000)
|
|
137
|
-
--server-host <host> Host/IP to bind to (default:
|
|
138
|
-
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
|
|
139
178
|
--stateless Use stateless HTTP mode (no session management, no SSE)
|
|
140
179
|
Ideal for serverless deployments (Lambda, Workers)
|
|
141
180
|
--enable-hsts Enable HSTS header (use when behind HTTPS)
|
|
142
181
|
|
|
143
182
|
Authentication Options:
|
|
144
|
-
--auth-
|
|
183
|
+
--no-auth-enforcement Explicitly bypass auth enforcement for HTTP
|
|
145
184
|
--oauth-enabled, -o Enable OAuth 2.1 authentication
|
|
146
185
|
--oauth-issuer <url> Authorization server URL (issuer)
|
|
147
186
|
--oauth-audience <aud> Expected token audience
|
|
148
187
|
--oauth-jwks-uri <url> JWKS URI (auto-discovered from issuer if not set)
|
|
149
|
-
--oauth-clock-tolerance <seconds> Clock tolerance in seconds (default:
|
|
188
|
+
--oauth-clock-tolerance <seconds> Clock tolerance in seconds (default: 30)
|
|
150
189
|
|
|
151
190
|
Database Options:
|
|
152
191
|
--sqlite <path> Add SQLite database (WASM/sql.js)
|
|
@@ -156,6 +195,13 @@ Extension Options (Native only):
|
|
|
156
195
|
--csv Load CSV extension for CSV virtual tables
|
|
157
196
|
--spatialite Load SpatiaLite extension for GIS capabilities
|
|
158
197
|
|
|
198
|
+
Audit Options:
|
|
199
|
+
--audit-log <path> Enable audit logging (JSONL file path, or "stderr")
|
|
200
|
+
--audit-no-redact Include tool arguments in audit entries (default: redacted)
|
|
201
|
+
--audit-reads Also log read-scoped tool invocations
|
|
202
|
+
--audit-backup Enable pre-mutation DDL snapshots
|
|
203
|
+
--audit-backup-data Include sample data rows in snapshots
|
|
204
|
+
|
|
159
205
|
Server Options:
|
|
160
206
|
--name <name> Server name (default: db-mcp)
|
|
161
207
|
--version <version> Server version (default: ${VERSION})
|
|
@@ -166,8 +212,8 @@ Server Options:
|
|
|
166
212
|
Legacy: -vector,-geo (exclusion from all)
|
|
167
213
|
|
|
168
214
|
Environment Variables:
|
|
169
|
-
MCP_HOST Host/IP to bind to (default:
|
|
170
|
-
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
|
|
171
217
|
OAUTH_ENABLED Enable OAuth 2.1 (same as --oauth-enabled)
|
|
172
218
|
OAUTH_ISSUER Authorization server URL
|
|
173
219
|
OAUTH_AUDIENCE Expected token audience
|
|
@@ -178,6 +224,11 @@ Environment Variables:
|
|
|
178
224
|
SQLITE_DATABASE SQLite database path
|
|
179
225
|
CSV_EXTENSION_PATH Custom path to CSV extension binary
|
|
180
226
|
SPATIALITE_PATH Custom path to SpatiaLite extension binary
|
|
227
|
+
AUDIT_LOG Audit log file path (or "stderr")
|
|
228
|
+
AUDIT_REDACT Redact arguments (default: true, set false to include args)
|
|
229
|
+
AUDIT_READS Log reads (true/false)
|
|
230
|
+
AUDIT_BACKUP Enable backups (true/false)
|
|
231
|
+
AUDIT_BACKUP_DATA Include data (true/false)
|
|
181
232
|
|
|
182
233
|
Examples:
|
|
183
234
|
db-mcp --sqlite-native ./data.db
|
|
@@ -197,8 +248,19 @@ function loadEnvConfig() {
|
|
|
197
248
|
}
|
|
198
249
|
const authToken = process.env["MCP_AUTH_TOKEN"];
|
|
199
250
|
if (authToken) {
|
|
251
|
+
if (authToken.length < 32) {
|
|
252
|
+
logger.warning(
|
|
253
|
+
"MCP_AUTH_TOKEN is too short (< 32 chars). Use a cryptographically random token."
|
|
254
|
+
);
|
|
255
|
+
}
|
|
200
256
|
config.authToken = authToken;
|
|
201
257
|
}
|
|
258
|
+
if (process.env["NO_AUTH_ENFORCEMENT"] === "true") {
|
|
259
|
+
logger.warning(
|
|
260
|
+
"Auth enforcement explicitly disabled via NO_AUTH_ENFORCEMENT. Ensure this is not running in production."
|
|
261
|
+
);
|
|
262
|
+
config.noAuthEnforcement = true;
|
|
263
|
+
}
|
|
202
264
|
const oauthEnabled = process.env["OAUTH_ENABLED"] === "true";
|
|
203
265
|
if (oauthEnabled) {
|
|
204
266
|
const oauth = { enabled: true };
|
|
@@ -219,6 +281,25 @@ function loadEnvConfig() {
|
|
|
219
281
|
if (toolFilter) {
|
|
220
282
|
config.toolFilter = toolFilter;
|
|
221
283
|
}
|
|
284
|
+
const auditLog = process.env["AUDIT_LOG"];
|
|
285
|
+
if (auditLog) {
|
|
286
|
+
config.audit = {
|
|
287
|
+
enabled: true,
|
|
288
|
+
logPath: auditLog,
|
|
289
|
+
redact: process.env["AUDIT_REDACT"] !== "false",
|
|
290
|
+
auditReads: process.env["AUDIT_READS"] === "true",
|
|
291
|
+
maxSizeBytes: DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES,
|
|
292
|
+
...process.env["AUDIT_BACKUP"] === "true" && {
|
|
293
|
+
backup: {
|
|
294
|
+
enabled: true,
|
|
295
|
+
includeData: process.env["AUDIT_BACKUP_DATA"] === "true",
|
|
296
|
+
maxAgeDays: DEFAULT_AUDIT_BACKUP_MAX_AGE_DAYS,
|
|
297
|
+
maxCount: DEFAULT_AUDIT_BACKUP_MAX_COUNT,
|
|
298
|
+
maxDataSizeBytes: DEFAULT_AUDIT_BACKUP_MAX_DATA_SIZE_BYTES
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
}
|
|
222
303
|
const sqliteUri = process.env["SQLITE_DATABASE"] ?? process.env["SQLITE_PATH"];
|
|
223
304
|
if (sqliteUri) {
|
|
224
305
|
databases.push({ type: "sqlite", connectionString: sqliteUri });
|
|
@@ -241,6 +322,13 @@ async function main() {
|
|
|
241
322
|
...cliConfig.databases ?? []
|
|
242
323
|
]
|
|
243
324
|
};
|
|
325
|
+
if (process.env["NODE_ENV"] === "production" && config.transport === "http" && !config.oauth?.enabled && !config.authToken && !config.noAuthEnforcement) {
|
|
326
|
+
logger.error(
|
|
327
|
+
"FATAL SECURITY ERROR: HTTP transport in production requires authentication (--oauth-enabled or --auth-token). If you intend to run without authentication, you must explicitly pass --no-auth-enforcement.",
|
|
328
|
+
{ module: "SERVER" }
|
|
329
|
+
);
|
|
330
|
+
process.exit(1);
|
|
331
|
+
}
|
|
244
332
|
const server = createServer(config);
|
|
245
333
|
process.on("SIGINT", () => {
|
|
246
334
|
void server.shutdown().then(() => {
|
|
@@ -256,25 +344,32 @@ async function main() {
|
|
|
256
344
|
if (dbConfig.type === "sqlite") {
|
|
257
345
|
const options = dbConfig.options;
|
|
258
346
|
if (options?.backend === "better-sqlite3") {
|
|
259
|
-
const { NativeSqliteAdapter } = await import('./sqlite-native-
|
|
347
|
+
const { NativeSqliteAdapter } = await import('./sqlite-native-ZSSWCTYC.js');
|
|
260
348
|
const adapter = new NativeSqliteAdapter();
|
|
261
349
|
await server.registerAdapter(adapter, dbConfig);
|
|
262
350
|
} else {
|
|
263
|
-
const { SqliteAdapter } = await import('./sqlite-
|
|
351
|
+
const { SqliteAdapter } = await import('./sqlite-6C3AJI4I.js');
|
|
264
352
|
const adapter = new SqliteAdapter();
|
|
265
353
|
await server.registerAdapter(adapter, dbConfig);
|
|
266
354
|
}
|
|
267
355
|
}
|
|
268
356
|
}
|
|
269
357
|
if (config.databases.length === 0) {
|
|
270
|
-
|
|
358
|
+
logger.warning(
|
|
271
359
|
"Warning: No databases configured. Use --sqlite or --sqlite-native, or set SQLITE_DATABASE"
|
|
272
360
|
);
|
|
273
361
|
}
|
|
274
362
|
await server.start();
|
|
275
363
|
} catch (error) {
|
|
276
|
-
|
|
364
|
+
logger.error("Fatal error", {
|
|
365
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
366
|
+
});
|
|
277
367
|
process.exit(1);
|
|
278
368
|
}
|
|
279
369
|
}
|
|
280
|
-
main().catch(
|
|
370
|
+
main().catch((error) => {
|
|
371
|
+
logger.error("Unhandled fatal error", {
|
|
372
|
+
error: error instanceof Error ? error : new Error(String(error))
|
|
373
|
+
});
|
|
374
|
+
process.exit(1);
|
|
375
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Code Mode API Constants
|
|
3
|
+
*
|
|
4
|
+
* Static constant maps for the sandbox API:
|
|
5
|
+
* - METHOD_ALIASES: shorthand names within each group
|
|
6
|
+
* - GROUP_EXAMPLES: help() output per group
|
|
7
|
+
* - POSITIONAL_PARAM_MAP: positional → named arg mapping
|
|
8
|
+
* - GROUP_PREFIX_MAP: tool name prefix stripping rules
|
|
9
|
+
* - KEEP_PREFIX_GROUPS: groups that retain their prefix in method names
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Aliases for common naming shortcuts within each group.
|
|
13
|
+
* Maps alias name → canonical method name.
|
|
14
|
+
*/
|
|
15
|
+
export declare const METHOD_ALIASES: Record<string, Record<string, string>>;
|
|
16
|
+
/**
|
|
17
|
+
* Usage examples for each group's help() output
|
|
18
|
+
*/
|
|
19
|
+
export declare const GROUP_EXAMPLES: Record<string, string[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Maps method names to their parameter names for positional argument support.
|
|
22
|
+
* Single string = first positional arg maps to this key.
|
|
23
|
+
* Array = multiple positional args map to these keys in order.
|
|
24
|
+
*
|
|
25
|
+
* Enables:
|
|
26
|
+
* - `sqlite.core.readQuery("SELECT...")` → `{ query: "SELECT..." }`
|
|
27
|
+
* - `sqlite.core.describeTable("users")` → `{ table: "users" }`
|
|
28
|
+
*/
|
|
29
|
+
export declare const POSITIONAL_PARAM_MAP: Record<string, string | string[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Map group name to the prefix used in tool names.
|
|
32
|
+
* Some groups use different prefixes.
|
|
33
|
+
*/
|
|
34
|
+
export declare const GROUP_PREFIX_MAP: Record<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Groups where the prefix should be kept in the method name
|
|
37
|
+
* (because it's semantically part of the method identity)
|
|
38
|
+
*/
|
|
39
|
+
export declare const KEEP_PREFIX_GROUPS: Set<string>;
|
|
40
|
+
//# sourceMappingURL=api-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-constants.d.ts","sourceRoot":"","sources":["../../src/codemode/api-constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsEjE,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAwDnD,CAAC;AAMF;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAkIlE,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,aAA2C,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Code Mode API
|
|
3
|
+
*
|
|
4
|
+
* Generates the `sqlite.*` API object that is injected into the sandbox.
|
|
5
|
+
* Each tool group becomes a namespace (e.g., `sqlite.core.readQuery()`).
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* - Reads tool definitions from the adapter
|
|
9
|
+
* - Groups tools by their `group` property
|
|
10
|
+
* - Converts tool names to camelCase method names
|
|
11
|
+
* - Creates proxy methods that normalize positional args and call handlers
|
|
12
|
+
* - Exposes `help()` at top level and per-group for discoverability
|
|
13
|
+
*/
|
|
14
|
+
import type { ToolDefinition, ToolGroup, RequestContext } from "../types/index.js";
|
|
15
|
+
/**
|
|
16
|
+
* Convert tool name to camelCase method name.
|
|
17
|
+
*
|
|
18
|
+
* Examples:
|
|
19
|
+
* sqlite_read_query (core) → readQuery
|
|
20
|
+
* sqlite_json_extract (json) → extract
|
|
21
|
+
* sqlite_stats_basic (stats) → statsBasic
|
|
22
|
+
* sqlite_vector_search (vector) → search
|
|
23
|
+
* sqlite_geo_distance (geo) → distance
|
|
24
|
+
* sqlite_backup (admin) → backup
|
|
25
|
+
* sqlite_transaction_begin (admin) → transactionBegin
|
|
26
|
+
* sqlite_transaction_begin (transactions) → begin
|
|
27
|
+
*/
|
|
28
|
+
export declare function toolNameToMethodName(toolName: string, groupName: string): string;
|
|
29
|
+
/** Type alias for group API record */
|
|
30
|
+
type GroupApiRecord = Record<string, (...args: unknown[]) => Promise<unknown>>;
|
|
31
|
+
/**
|
|
32
|
+
* Main API class exposing all SQLite tool groups.
|
|
33
|
+
* This is the object injected as `sqlite` in the sandbox.
|
|
34
|
+
*/
|
|
35
|
+
export declare class SqliteApi {
|
|
36
|
+
readonly core: GroupApiRecord;
|
|
37
|
+
readonly json: GroupApiRecord;
|
|
38
|
+
readonly text: GroupApiRecord;
|
|
39
|
+
readonly stats: GroupApiRecord;
|
|
40
|
+
readonly vector: GroupApiRecord;
|
|
41
|
+
readonly admin: GroupApiRecord;
|
|
42
|
+
readonly transactions: GroupApiRecord;
|
|
43
|
+
readonly geo: GroupApiRecord;
|
|
44
|
+
readonly introspection: GroupApiRecord;
|
|
45
|
+
readonly migration: GroupApiRecord;
|
|
46
|
+
private readonly toolsByGroup;
|
|
47
|
+
private readonly baseContext;
|
|
48
|
+
constructor(tools: ToolDefinition[], baseContext?: RequestContext);
|
|
49
|
+
/**
|
|
50
|
+
* Get all available groups
|
|
51
|
+
*/
|
|
52
|
+
getGroups(): string[];
|
|
53
|
+
/**
|
|
54
|
+
* Get method names for a group
|
|
55
|
+
*/
|
|
56
|
+
getGroupMethods(group: ToolGroup): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Create the sandbox bindings object.
|
|
59
|
+
* This is the object injected as `sqlite` in the sandbox.
|
|
60
|
+
* Includes group namespaces + top-level aliases for common operations.
|
|
61
|
+
*/
|
|
62
|
+
createSandboxBindings(): Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a SqliteApi instance from tool definitions.
|
|
66
|
+
* Convenience factory for use in tool handler setup.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createSqliteApi(tools: ToolDefinition[], baseContext?: RequestContext): SqliteApi;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/codemode/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACf,MAAM,mBAAmB,CAAC;AAW3B;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AA6GD,sCAAsC;AACtC,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AA8E/E;;;GAGG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAE7C,KAAK,EAAE,cAAc,EAAE,EAAE,WAAW,CAAC,EAAE,cAAc;IAkEjE;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE;IAU3C;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAuDjD;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EAAE,EACvB,WAAW,CAAC,EAAE,cAAc,GAC3B,SAAS,CAEX"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp — Code Mode Auto-Return Transform
|
|
3
|
+
*
|
|
4
|
+
* Transforms user code so the last expression statement is implicitly
|
|
5
|
+
* returned from the async IIFE wrapper. Mimics Node REPL / Chrome
|
|
6
|
+
* DevTools semantics where bare expressions surface their value.
|
|
7
|
+
*
|
|
8
|
+
* The transform is intentionally heuristic (string-based, not AST)
|
|
9
|
+
* because the code runs in a sandboxed vm.Script that already
|
|
10
|
+
* handles syntax errors. Edge-case misfires are safe — they either
|
|
11
|
+
* produce a benign return of the last expression or leave the code
|
|
12
|
+
* unchanged (returning undefined, the previous behavior).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Transform user code so the last expression statement gets an
|
|
16
|
+
* implicit `return`, enabling the IIFE wrapper to propagate the value.
|
|
17
|
+
*
|
|
18
|
+
* Examples:
|
|
19
|
+
* `sqlite.help()` → `return sqlite.help()`
|
|
20
|
+
* `const r = await foo(); r` → `const r = await foo(); return r`
|
|
21
|
+
* `return 42` → `return 42` (no change)
|
|
22
|
+
* `for (const x of xs) { ... }` → unchanged (control flow)
|
|
23
|
+
*/
|
|
24
|
+
export declare function transformAutoReturn(code: string): string;
|
|
25
|
+
//# sourceMappingURL=auto-return.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-return.d.ts","sourceRoot":"","sources":["../../src/codemode/auto-return.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsCxD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Code Mode Module
|
|
3
|
+
*
|
|
4
|
+
* Exports for the sandboxed code execution environment.
|
|
5
|
+
*/
|
|
6
|
+
export type { SandboxOptions, PoolOptions, SandboxResult, ExecutionMetrics, SecurityConfig, ValidationResult, ExecutionRecord, ExecuteCodeOptions, ExecuteCodeResult, GroupApi, } from "./types.js";
|
|
7
|
+
export { DEFAULT_SANDBOX_OPTIONS, DEFAULT_POOL_OPTIONS, DEFAULT_SECURITY_CONFIG, } from "./types.js";
|
|
8
|
+
export { CodeModeSandbox, SandboxPool } from "./sandbox.js";
|
|
9
|
+
export { setDefaultSandboxMode, getDefaultSandboxMode, getAvailableSandboxModes, createSandbox, createSandboxPool, getSandboxModeInfo, type SandboxMode, type ISandbox, type ISandboxPool, type SandboxModeInfo, } from "./sandbox-factory.js";
|
|
10
|
+
export { CodeModeSecurityManager } from "./security.js";
|
|
11
|
+
export { SqliteApi, createSqliteApi } from "./api.js";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codemode/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Sandbox Factory
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating sandbox instances with configurable isolation modes.
|
|
5
|
+
* Allows runtime selection between isolated-vm and worker-based sandboxes.
|
|
6
|
+
*/
|
|
7
|
+
import type { SandboxOptions, PoolOptions, SandboxResult } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Sandbox isolation mode
|
|
10
|
+
*/
|
|
11
|
+
export type SandboxMode = "isolate";
|
|
12
|
+
/**
|
|
13
|
+
* Unified sandbox interface
|
|
14
|
+
*/
|
|
15
|
+
export interface ISandbox {
|
|
16
|
+
execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
|
|
17
|
+
isHealthy(): boolean;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Unified sandbox pool interface
|
|
22
|
+
*/
|
|
23
|
+
export interface ISandboxPool {
|
|
24
|
+
initialize(): void;
|
|
25
|
+
execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
|
|
26
|
+
getStats(): {
|
|
27
|
+
available: number;
|
|
28
|
+
inUse: number;
|
|
29
|
+
max: number;
|
|
30
|
+
};
|
|
31
|
+
dispose(): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Mode info for documentation/selection
|
|
35
|
+
*/
|
|
36
|
+
export interface SandboxModeInfo {
|
|
37
|
+
name: string;
|
|
38
|
+
isolation: string;
|
|
39
|
+
performance: string;
|
|
40
|
+
security: string;
|
|
41
|
+
requirements: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Set the default sandbox mode
|
|
45
|
+
*/
|
|
46
|
+
export declare function setDefaultSandboxMode(mode: SandboxMode): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get the current default mode
|
|
49
|
+
*/
|
|
50
|
+
export declare function getDefaultSandboxMode(): SandboxMode;
|
|
51
|
+
/**
|
|
52
|
+
* Get available sandbox modes
|
|
53
|
+
*/
|
|
54
|
+
export declare function getAvailableSandboxModes(): SandboxMode[];
|
|
55
|
+
/**
|
|
56
|
+
* Create a sandbox instance
|
|
57
|
+
* @param mode - Isolation mode ('isolate' or 'worker')
|
|
58
|
+
* @param options - Sandbox options
|
|
59
|
+
*/
|
|
60
|
+
export declare function createSandbox(mode?: SandboxMode, options?: SandboxOptions): ISandbox;
|
|
61
|
+
/**
|
|
62
|
+
* Create a sandbox pool
|
|
63
|
+
* @param mode - Isolation mode ('isolate' or 'worker')
|
|
64
|
+
* @param poolOptions - Pool configuration
|
|
65
|
+
* @param sandboxOptions - Sandbox configuration
|
|
66
|
+
*/
|
|
67
|
+
export declare function createSandboxPool(mode?: SandboxMode, poolOptions?: PoolOptions, sandboxOptions?: SandboxOptions): ISandboxPool;
|
|
68
|
+
/**
|
|
69
|
+
* Get mode characteristics for documentation/selection
|
|
70
|
+
*/
|
|
71
|
+
export declare function getSandboxModeInfo(_mode: SandboxMode): SandboxModeInfo;
|
|
72
|
+
//# sourceMappingURL=sandbox-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-factory.d.ts","sourceRoot":"","sources":["../../src/codemode/sandbox-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,CACL,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1B,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAK7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAEnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,WAAW,EAAE,CAExD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,QAAQ,CASV;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,WAAW,EAClB,WAAW,CAAC,EAAE,WAAW,EACzB,cAAc,CAAC,EAAE,cAAc,GAC9B,YAAY,CASd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAQtE"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Code Mode Sandbox
|
|
3
|
+
*
|
|
4
|
+
* Sandboxed execution environment using isolated-vm.
|
|
5
|
+
* Provides true V8 isolate separation for maximum security.
|
|
6
|
+
*/
|
|
7
|
+
import type ivm from "isolated-vm";
|
|
8
|
+
import { type SandboxOptions, type PoolOptions, type SandboxResult } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* A sandboxed execution context using isolated-vm
|
|
11
|
+
*/
|
|
12
|
+
export declare class CodeModeSandbox {
|
|
13
|
+
private readonly options;
|
|
14
|
+
private disposed;
|
|
15
|
+
private accumulatedLogs;
|
|
16
|
+
private constructor();
|
|
17
|
+
/**
|
|
18
|
+
* Create a new sandbox instance
|
|
19
|
+
*/
|
|
20
|
+
static create(options?: SandboxOptions): CodeModeSandbox;
|
|
21
|
+
/**
|
|
22
|
+
* Execute code in the sandbox
|
|
23
|
+
*/
|
|
24
|
+
execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
|
|
25
|
+
getConsoleOutput(): string[];
|
|
26
|
+
clearConsoleOutput(): void;
|
|
27
|
+
isHealthy(): boolean;
|
|
28
|
+
dispose(): void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Pool of sandbox instances for reuse
|
|
32
|
+
*/
|
|
33
|
+
export declare class SandboxPool {
|
|
34
|
+
private readonly options;
|
|
35
|
+
private readonly sandboxOptions;
|
|
36
|
+
private inUseCount;
|
|
37
|
+
private readonly idlePool;
|
|
38
|
+
private static ivmPromise;
|
|
39
|
+
private static cachedIvmLib;
|
|
40
|
+
constructor(poolOptions?: PoolOptions, sandboxOptions?: SandboxOptions);
|
|
41
|
+
static getIvmLib(): typeof ivm;
|
|
42
|
+
static initialize(): Promise<void>;
|
|
43
|
+
initialize(): Promise<void>;
|
|
44
|
+
execute(code: string, apiBindings: Record<string, unknown>, timeoutMs?: number): Promise<SandboxResult>;
|
|
45
|
+
cleanup(): void;
|
|
46
|
+
getStats(): {
|
|
47
|
+
available: number;
|
|
48
|
+
inUse: number;
|
|
49
|
+
max: number;
|
|
50
|
+
idle: number;
|
|
51
|
+
};
|
|
52
|
+
dispose(): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/codemode/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAEnC,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,eAAe;IAQxD;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAwSzB,gBAAgB,IAAI,MAAM,EAAE;IAI5B,kBAAkB,IAAI,IAAI;IAI1B,SAAS,IAAI,OAAO;IAIpB,OAAO,IAAI,IAAI;CAIhB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAoC;IAC7D,OAAO,CAAC,MAAM,CAAC,YAAY,CAA2B;gBAE1C,WAAW,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc;IAKtE,MAAM,CAAC,SAAS,IAAI,OAAO,GAAG;WAOjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAgCzB,OAAO,IAAI,IAAI;IAOf,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAS3E,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* db-mcp - Code Mode Security
|
|
3
|
+
*
|
|
4
|
+
* Input validation, rate limiting, and audit logging for code execution.
|
|
5
|
+
*/
|
|
6
|
+
import { type SecurityConfig, type ValidationResult, type ExecutionRecord, type SandboxResult } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Security manager for Code Mode executions
|
|
9
|
+
*/
|
|
10
|
+
export declare class CodeModeSecurityManager {
|
|
11
|
+
private readonly config;
|
|
12
|
+
private readonly rateLimitMap;
|
|
13
|
+
private redisClient?;
|
|
14
|
+
constructor(config?: Partial<SecurityConfig>);
|
|
15
|
+
/**
|
|
16
|
+
* Validate code before execution
|
|
17
|
+
*/
|
|
18
|
+
validateCode(code: string): ValidationResult;
|
|
19
|
+
/**
|
|
20
|
+
* Check rate limit for a client
|
|
21
|
+
* @returns true if within limits, false if rate limited
|
|
22
|
+
*/
|
|
23
|
+
checkRateLimit(clientId: string): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* Get remaining rate limit for a client
|
|
26
|
+
*/
|
|
27
|
+
getRateLimitRemaining(clientId: string): Promise<number>;
|
|
28
|
+
/**
|
|
29
|
+
* Sanitize and truncate result if too large
|
|
30
|
+
*/
|
|
31
|
+
sanitizeResult(result: unknown): unknown;
|
|
32
|
+
/**
|
|
33
|
+
* Log execution for audit purposes
|
|
34
|
+
*/
|
|
35
|
+
auditLog(execution: ExecutionRecord): void;
|
|
36
|
+
/**
|
|
37
|
+
* Create execution record for audit
|
|
38
|
+
*/
|
|
39
|
+
createExecutionRecord(code: string, result: SandboxResult, readonly: boolean, clientId?: string): ExecutionRecord;
|
|
40
|
+
/**
|
|
41
|
+
* Clean up old rate limit entries
|
|
42
|
+
*/
|
|
43
|
+
cleanupRateLimits(): void;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/codemode/security.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAGzB;IACJ,OAAO,CAAC,WAAW,CAAC,CAAkB;gBAE1B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAa5C;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IA2C5C;;;OAGG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsDxD;;OAEG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB9D;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IA8BxC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAqC1C;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,eAAe;IAclB;;OAEG;IACH,iBAAiB,IAAI,IAAI;CAQ1B"}
|