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,245 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Integration Test: Help Resources + Slim Instructions
|
|
3
|
-
*
|
|
4
|
-
* Starts the server with various --tool-filter configs and verifies:
|
|
5
|
-
* 1. Instructions are slim (~680 chars, within client limits)
|
|
6
|
-
* 2. sqlite://help resources are registered based on tool filter
|
|
7
|
-
* 3. Group-specific help resources are only registered for enabled groups
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
* npm run build
|
|
11
|
-
* node test-server/scripts/test-help-resources.mjs
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { spawn } from "child_process";
|
|
15
|
-
|
|
16
|
-
const PROJECT_DIR = "C:\\Users\\chris\\Desktop\\db-mcp";
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Start server, send initialize + resources/list, return results
|
|
20
|
-
*/
|
|
21
|
-
function testServer(args) {
|
|
22
|
-
return new Promise((resolve, reject) => {
|
|
23
|
-
const proc = spawn("node", ["dist/cli.js", ...args], {
|
|
24
|
-
cwd: PROJECT_DIR,
|
|
25
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
let buffer = "";
|
|
29
|
-
let instructions = "";
|
|
30
|
-
let resourceUris = [];
|
|
31
|
-
let gotInitialize = false;
|
|
32
|
-
|
|
33
|
-
proc.stdout.on("data", (chunk) => {
|
|
34
|
-
buffer += chunk.toString();
|
|
35
|
-
const lines = buffer.split("\n");
|
|
36
|
-
buffer = lines.pop(); // Keep incomplete line
|
|
37
|
-
|
|
38
|
-
for (const line of lines) {
|
|
39
|
-
const trimmed = line.trim();
|
|
40
|
-
if (!trimmed) continue;
|
|
41
|
-
try {
|
|
42
|
-
const msg = JSON.parse(trimmed);
|
|
43
|
-
|
|
44
|
-
// Response to initialize (id=1)
|
|
45
|
-
if (msg.id === 1 && msg.result) {
|
|
46
|
-
instructions =
|
|
47
|
-
msg.result?.serverInfo?.instructions ||
|
|
48
|
-
msg.result?.instructions ||
|
|
49
|
-
msg.result?.capabilities?.instructions ||
|
|
50
|
-
"";
|
|
51
|
-
gotInitialize = true;
|
|
52
|
-
|
|
53
|
-
// Send resources/list
|
|
54
|
-
proc.stdin.write(
|
|
55
|
-
JSON.stringify({
|
|
56
|
-
jsonrpc: "2.0",
|
|
57
|
-
id: 2,
|
|
58
|
-
method: "resources/list",
|
|
59
|
-
params: {},
|
|
60
|
-
}) + "\n",
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Response to resources/list (id=2)
|
|
65
|
-
if (msg.id === 2 && msg.result) {
|
|
66
|
-
const resources = msg.result.resources || [];
|
|
67
|
-
resourceUris = resources.map((r) => r.uri);
|
|
68
|
-
proc.kill();
|
|
69
|
-
resolve({
|
|
70
|
-
instructions,
|
|
71
|
-
instructionChars: instructions.length,
|
|
72
|
-
resourceUris,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
} catch {
|
|
76
|
-
// Not complete JSON yet
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
proc.stderr.on("data", () => {});
|
|
82
|
-
|
|
83
|
-
// Send initialize request
|
|
84
|
-
proc.stdin.write(
|
|
85
|
-
JSON.stringify({
|
|
86
|
-
jsonrpc: "2.0",
|
|
87
|
-
id: 1,
|
|
88
|
-
method: "initialize",
|
|
89
|
-
params: {
|
|
90
|
-
protocolVersion: "2025-03-26",
|
|
91
|
-
capabilities: {},
|
|
92
|
-
clientInfo: { name: "help-resource-test", version: "1.0" },
|
|
93
|
-
},
|
|
94
|
-
}) + "\n",
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
setTimeout(() => {
|
|
98
|
-
proc.kill();
|
|
99
|
-
reject(new Error(`Timeout for args: ${args.join(" ")}`));
|
|
100
|
-
}, 10000);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
async function main() {
|
|
105
|
-
let allPassed = true;
|
|
106
|
-
|
|
107
|
-
// ── Test 1: Slim Instructions ──
|
|
108
|
-
console.log("=== Test 1: Slim Instructions ===\n");
|
|
109
|
-
|
|
110
|
-
const baseResult = await testServer([]);
|
|
111
|
-
console.log(` Instruction chars: ${baseResult.instructionChars}`);
|
|
112
|
-
console.log(
|
|
113
|
-
` Token estimate: ~${Math.round(baseResult.instructionChars / 4)}`,
|
|
114
|
-
);
|
|
115
|
-
|
|
116
|
-
const isSlim = baseResult.instructionChars < 1000;
|
|
117
|
-
console.log(` Under 1000 chars: ${isSlim ? "✅" : "❌"}`);
|
|
118
|
-
if (!isSlim) allPassed = false;
|
|
119
|
-
|
|
120
|
-
const hasHelpPointer = baseResult.instructions.includes("sqlite://help");
|
|
121
|
-
console.log(
|
|
122
|
-
` Contains sqlite://help pointer: ${hasHelpPointer ? "✅" : "❌"}`,
|
|
123
|
-
);
|
|
124
|
-
if (!hasHelpPointer) allPassed = false;
|
|
125
|
-
|
|
126
|
-
const noOldContent = !baseResult.instructions.includes("Critical Gotchas");
|
|
127
|
-
console.log(
|
|
128
|
-
` No old gotchas in instructions: ${noOldContent ? "✅" : "❌"}`,
|
|
129
|
-
);
|
|
130
|
-
if (!noOldContent) allPassed = false;
|
|
131
|
-
|
|
132
|
-
// ── Test 2: Core-only Filter ──
|
|
133
|
-
console.log("\n=== Test 2: Core-only Filter (--tool-filter core) ===\n");
|
|
134
|
-
|
|
135
|
-
const coreResult = await testServer(["--tool-filter", "core"]);
|
|
136
|
-
const coreHelpUris = coreResult.resourceUris.filter((u) =>
|
|
137
|
-
u.startsWith("sqlite://help"),
|
|
138
|
-
);
|
|
139
|
-
console.log(` Help resources: ${coreHelpUris.join(", ") || "(none)"}`);
|
|
140
|
-
|
|
141
|
-
const coreHasBaseHelp = coreHelpUris.includes("sqlite://help");
|
|
142
|
-
console.log(` Has sqlite://help: ${coreHasBaseHelp ? "✅" : "❌"}`);
|
|
143
|
-
if (!coreHasBaseHelp) allPassed = false;
|
|
144
|
-
|
|
145
|
-
const coreHasCoreHelp = coreHelpUris.includes("sqlite://help/core");
|
|
146
|
-
console.log(` Has sqlite://help/core: ${coreHasCoreHelp ? "✅" : "❌"}`);
|
|
147
|
-
if (!coreHasCoreHelp) allPassed = false;
|
|
148
|
-
|
|
149
|
-
const coreNoOtherGroupHelp = coreHelpUris.length === 2;
|
|
150
|
-
console.log(
|
|
151
|
-
` No other group-specific help: ${coreNoOtherGroupHelp ? "✅" : "❌"} (count: ${coreHelpUris.length})`,
|
|
152
|
-
);
|
|
153
|
-
if (!coreNoOtherGroupHelp) allPassed = false;
|
|
154
|
-
|
|
155
|
-
// ── Test 3: Stats Filter ──
|
|
156
|
-
console.log("\n=== Test 3: Stats Filter (--tool-filter stats) ===\n");
|
|
157
|
-
|
|
158
|
-
const statsResult = await testServer(["--tool-filter", "stats"]);
|
|
159
|
-
const statsHelpUris = statsResult.resourceUris.filter((u) =>
|
|
160
|
-
u.startsWith("sqlite://help"),
|
|
161
|
-
);
|
|
162
|
-
console.log(` Help resources: ${statsHelpUris.join(", ")}`);
|
|
163
|
-
|
|
164
|
-
const statsHasBaseHelp = statsHelpUris.includes("sqlite://help");
|
|
165
|
-
const statsHasStatsHelp = statsHelpUris.includes("sqlite://help/stats");
|
|
166
|
-
console.log(` Has sqlite://help: ${statsHasBaseHelp ? "✅" : "❌"}`);
|
|
167
|
-
console.log(` Has sqlite://help/stats: ${statsHasStatsHelp ? "✅" : "❌"}`);
|
|
168
|
-
if (!statsHasBaseHelp || !statsHasStatsHelp) allPassed = false;
|
|
169
|
-
|
|
170
|
-
const statsNoJsonHelp = !statsHelpUris.includes("sqlite://help/json");
|
|
171
|
-
console.log(` No sqlite://help/json: ${statsNoJsonHelp ? "✅" : "❌"}`);
|
|
172
|
-
if (!statsNoJsonHelp) allPassed = false;
|
|
173
|
-
|
|
174
|
-
// ── Test 4: Multi-group Filter ──
|
|
175
|
-
console.log(
|
|
176
|
-
"\n=== Test 4: Multi-group Filter (--tool-filter core,json,text,stats) ===\n",
|
|
177
|
-
);
|
|
178
|
-
|
|
179
|
-
const multiResult = await testServer([
|
|
180
|
-
"--tool-filter",
|
|
181
|
-
"core,json,text,stats",
|
|
182
|
-
]);
|
|
183
|
-
const multiHelpUris = multiResult.resourceUris.filter((u) =>
|
|
184
|
-
u.startsWith("sqlite://help"),
|
|
185
|
-
);
|
|
186
|
-
console.log(` Help resources: ${multiHelpUris.join(", ")}`);
|
|
187
|
-
|
|
188
|
-
const expectedMulti = [
|
|
189
|
-
"sqlite://help",
|
|
190
|
-
"sqlite://help/core",
|
|
191
|
-
"sqlite://help/json",
|
|
192
|
-
"sqlite://help/text",
|
|
193
|
-
"sqlite://help/stats",
|
|
194
|
-
];
|
|
195
|
-
for (const uri of expectedMulti) {
|
|
196
|
-
const found = multiHelpUris.includes(uri);
|
|
197
|
-
console.log(` Has ${uri}: ${found ? "✅" : "❌"}`);
|
|
198
|
-
if (!found) allPassed = false;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
const multiNoVector = !multiHelpUris.includes("sqlite://help/vector");
|
|
202
|
-
const multiNoGeo = !multiHelpUris.includes("sqlite://help/geo");
|
|
203
|
-
console.log(` No sqlite://help/vector: ${multiNoVector ? "✅" : "❌"}`);
|
|
204
|
-
console.log(` No sqlite://help/geo: ${multiNoGeo ? "✅" : "❌"}`);
|
|
205
|
-
if (!multiNoVector || !multiNoGeo) allPassed = false;
|
|
206
|
-
|
|
207
|
-
// ── Test 5: Full Filter ──
|
|
208
|
-
console.log("\n=== Test 5: Full Filter (--tool-filter full) ===\n");
|
|
209
|
-
|
|
210
|
-
const fullResult = await testServer(["--tool-filter", "full"]);
|
|
211
|
-
const fullHelpUris = fullResult.resourceUris.filter((u) =>
|
|
212
|
-
u.startsWith("sqlite://help"),
|
|
213
|
-
);
|
|
214
|
-
console.log(
|
|
215
|
-
` Help resources (${fullHelpUris.length}): ${fullHelpUris.join(", ")}`,
|
|
216
|
-
);
|
|
217
|
-
|
|
218
|
-
const expectedFull = [
|
|
219
|
-
"sqlite://help",
|
|
220
|
-
"sqlite://help/core",
|
|
221
|
-
"sqlite://help/json",
|
|
222
|
-
"sqlite://help/text",
|
|
223
|
-
"sqlite://help/stats",
|
|
224
|
-
"sqlite://help/vector",
|
|
225
|
-
"sqlite://help/geo",
|
|
226
|
-
"sqlite://help/admin",
|
|
227
|
-
"sqlite://help/transactions",
|
|
228
|
-
"sqlite://help/introspection",
|
|
229
|
-
"sqlite://help/migration",
|
|
230
|
-
];
|
|
231
|
-
const fullHasAll = expectedFull.every((u) => fullHelpUris.includes(u));
|
|
232
|
-
console.log(` Has all 11 help resources: ${fullHasAll ? "✅" : "❌"}`);
|
|
233
|
-
if (!fullHasAll) allPassed = false;
|
|
234
|
-
|
|
235
|
-
// ── Summary ──
|
|
236
|
-
console.log(
|
|
237
|
-
`\n=== Overall: ${allPassed ? "✅ ALL PASSED" : "❌ FAILURES"} ===`,
|
|
238
|
-
);
|
|
239
|
-
process.exit(allPassed ? 0 : 1);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
main().catch((err) => {
|
|
243
|
-
console.error("Fatal:", err.message);
|
|
244
|
-
process.exit(1);
|
|
245
|
-
});
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
import { spawn } from "child_process";
|
|
2
|
-
import { resolve, dirname } from "path";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
|
|
5
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
-
const projectDir = resolve(__dirname, "../..");
|
|
7
|
-
|
|
8
|
-
const proc = spawn(
|
|
9
|
-
"node",
|
|
10
|
-
[
|
|
11
|
-
"dist/cli.js",
|
|
12
|
-
"--sqlite-native",
|
|
13
|
-
"./test-server/test.db",
|
|
14
|
-
"--log-level",
|
|
15
|
-
"error",
|
|
16
|
-
],
|
|
17
|
-
{
|
|
18
|
-
cwd: projectDir,
|
|
19
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
20
|
-
},
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
let buffer = "";
|
|
24
|
-
const pending = new Map(); // id -> resolve
|
|
25
|
-
|
|
26
|
-
proc.stdout.on("data", (chunk) => {
|
|
27
|
-
buffer += chunk.toString();
|
|
28
|
-
const lines = buffer.split("\n");
|
|
29
|
-
buffer = lines.pop(); // keep incomplete
|
|
30
|
-
for (const line of lines) {
|
|
31
|
-
const trimmed = line.trim();
|
|
32
|
-
if (!trimmed) continue;
|
|
33
|
-
try {
|
|
34
|
-
const msg = JSON.parse(trimmed);
|
|
35
|
-
if (msg.id && pending.has(msg.id)) {
|
|
36
|
-
pending.get(msg.id)(msg);
|
|
37
|
-
pending.delete(msg.id);
|
|
38
|
-
}
|
|
39
|
-
} catch {}
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
proc.stderr.on("data", () => {});
|
|
43
|
-
|
|
44
|
-
let nextId = 1;
|
|
45
|
-
function rpc(method, params = {}) {
|
|
46
|
-
const id = nextId++;
|
|
47
|
-
return new Promise((resolve, reject) => {
|
|
48
|
-
const timer = setTimeout(() => {
|
|
49
|
-
pending.delete(id);
|
|
50
|
-
reject(new Error(`Timeout: ${method}`));
|
|
51
|
-
}, 20000);
|
|
52
|
-
pending.set(id, (msg) => {
|
|
53
|
-
clearTimeout(timer);
|
|
54
|
-
resolve(msg);
|
|
55
|
-
});
|
|
56
|
-
proc.stdin.write(
|
|
57
|
-
JSON.stringify({ jsonrpc: "2.0", id, method, params }) + "\n",
|
|
58
|
-
);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function notify(method, params = {}) {
|
|
62
|
-
proc.stdin.write(JSON.stringify({ jsonrpc: "2.0", method, params }) + "\n");
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const delay = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
66
|
-
|
|
67
|
-
async function main() {
|
|
68
|
-
// Initialize
|
|
69
|
-
await rpc("initialize", {
|
|
70
|
-
protocolVersion: "2025-03-26",
|
|
71
|
-
capabilities: {},
|
|
72
|
-
clientInfo: { name: "test-prompts", version: "1.0" },
|
|
73
|
-
});
|
|
74
|
-
await delay(500);
|
|
75
|
-
notify("notifications/initialized");
|
|
76
|
-
await delay(1000);
|
|
77
|
-
|
|
78
|
-
// List prompts
|
|
79
|
-
const listResp = await rpc("prompts/list", {});
|
|
80
|
-
const prompts = listResp.result?.prompts ?? [];
|
|
81
|
-
console.log(`\n=== PROMPTS LIST: ${prompts.length} prompts ===`);
|
|
82
|
-
for (const p of prompts) {
|
|
83
|
-
const args = (p.arguments || [])
|
|
84
|
-
.map((a) => `${a.name}${a.required ? "*" : ""}`)
|
|
85
|
-
.join(", ");
|
|
86
|
-
console.log(` ${p.name}(${args})`);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const testCases = [
|
|
90
|
-
// No-argument prompts
|
|
91
|
-
{ name: "sqlite_explain_schema", args: {}, expect: "" },
|
|
92
|
-
{ name: "sqlite_optimization", args: {}, expect: "" },
|
|
93
|
-
{ name: "sqlite_documentation", args: {}, expect: "" },
|
|
94
|
-
|
|
95
|
-
// Required-argument prompts
|
|
96
|
-
{
|
|
97
|
-
name: "sqlite_query_builder",
|
|
98
|
-
args: {
|
|
99
|
-
operation: "SELECT",
|
|
100
|
-
tables: "users",
|
|
101
|
-
description: "find active",
|
|
102
|
-
},
|
|
103
|
-
expect: "",
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
name: "sqlite_data_analysis",
|
|
107
|
-
args: { table: "users" },
|
|
108
|
-
expect: "",
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
name: "sqlite_migration",
|
|
112
|
-
args: { change: "add desc" },
|
|
113
|
-
expect: "",
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
name: "sqlite_debug_query",
|
|
117
|
-
args: { query: "SELECT * FROM test" },
|
|
118
|
-
expect: "",
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
name: "sqlite_summarize_table",
|
|
122
|
-
args: { table_name: "users" },
|
|
123
|
-
expect: "",
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
name: "sqlite_hybrid_search_workflow",
|
|
127
|
-
args: { use_case: "product_search" },
|
|
128
|
-
expect: "",
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
name: "sqlite_demo",
|
|
132
|
-
args: { topic: "sales" },
|
|
133
|
-
expect: "",
|
|
134
|
-
},
|
|
135
|
-
|
|
136
|
-
// Optional-argument prompts
|
|
137
|
-
{
|
|
138
|
-
name: "sqlite_data_analysis",
|
|
139
|
-
args: { table: "users", focus: "growth" },
|
|
140
|
-
expect: "",
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
name: "sqlite_migration",
|
|
144
|
-
args: { change: "add id", reversible: "true" },
|
|
145
|
-
expect: "",
|
|
146
|
-
},
|
|
147
|
-
];
|
|
148
|
-
|
|
149
|
-
console.log(`\n=== TESTING ${testCases.length} PROMPT CALLS ===\n`);
|
|
150
|
-
let pass = 0,
|
|
151
|
-
fail = 0;
|
|
152
|
-
|
|
153
|
-
for (const tc of testCases) {
|
|
154
|
-
const argsStr = Object.keys(tc.args).length
|
|
155
|
-
? JSON.stringify(tc.args)
|
|
156
|
-
: "(none)";
|
|
157
|
-
try {
|
|
158
|
-
const resp = await rpc("prompts/get", {
|
|
159
|
-
name: tc.name,
|
|
160
|
-
arguments: tc.args,
|
|
161
|
-
});
|
|
162
|
-
if (resp.error) {
|
|
163
|
-
console.log(
|
|
164
|
-
`FAIL ${tc.name}(${argsStr}): MCP error: ${JSON.stringify(resp.error)}`,
|
|
165
|
-
);
|
|
166
|
-
fail++;
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
const messages = resp.result?.messages;
|
|
170
|
-
const checks = [];
|
|
171
|
-
if (!Array.isArray(messages)) checks.push("messages not array");
|
|
172
|
-
else if (messages.length < 1) checks.push("messages empty");
|
|
173
|
-
else {
|
|
174
|
-
const m = messages[0];
|
|
175
|
-
if (m.role !== "user") checks.push(`role=${m.role}`);
|
|
176
|
-
if (!m.content) checks.push("no content");
|
|
177
|
-
else {
|
|
178
|
-
const c = m.content;
|
|
179
|
-
if (c.type !== "text") checks.push(`type=${c.type}`);
|
|
180
|
-
if (!c.text || c.text.length === 0) checks.push("text empty");
|
|
181
|
-
else if (
|
|
182
|
-
tc.expect &&
|
|
183
|
-
!c.text.toLowerCase().includes(tc.expect.toLowerCase())
|
|
184
|
-
) {
|
|
185
|
-
checks.push(`missing '${tc.expect}' (len=${c.text.length})`);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
if (checks.length === 0) {
|
|
190
|
-
const textLen = messages?.[0]?.content?.text?.length ?? 0;
|
|
191
|
-
console.log(
|
|
192
|
-
`PASS ${tc.name}(${argsStr}) — msgs:${messages.length}, textLen:${textLen}`,
|
|
193
|
-
);
|
|
194
|
-
pass++;
|
|
195
|
-
} else {
|
|
196
|
-
console.log(`FAIL ${tc.name}(${argsStr}): ${checks.join("; ")}`);
|
|
197
|
-
fail++;
|
|
198
|
-
}
|
|
199
|
-
} catch (err) {
|
|
200
|
-
console.log(`FAIL ${tc.name}(${argsStr}): ${err.message}`);
|
|
201
|
-
fail++;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
// Error handling tests
|
|
206
|
-
try {
|
|
207
|
-
const resp = await rpc("prompts/get", {
|
|
208
|
-
name: "nonexistent-prompt",
|
|
209
|
-
arguments: {},
|
|
210
|
-
});
|
|
211
|
-
if (resp.error) {
|
|
212
|
-
console.log(
|
|
213
|
-
`PASS nonexistent-prompt: MCP error (code=${resp.error.code})`,
|
|
214
|
-
);
|
|
215
|
-
pass++;
|
|
216
|
-
} else {
|
|
217
|
-
console.log(`FAIL nonexistent-prompt: expected error`);
|
|
218
|
-
fail++;
|
|
219
|
-
}
|
|
220
|
-
} catch (err) {
|
|
221
|
-
console.log(`FAIL nonexistent-prompt: ${err.message}`);
|
|
222
|
-
fail++;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
try {
|
|
226
|
-
const resp = await rpc("prompts/get", {
|
|
227
|
-
name: "sqlite_query_builder",
|
|
228
|
-
arguments: {},
|
|
229
|
-
});
|
|
230
|
-
if (resp.error) {
|
|
231
|
-
console.log(`PASS sqlite_query_builder(no args): error returned`);
|
|
232
|
-
} else {
|
|
233
|
-
console.log(`PASS sqlite_query_builder(no args): handled gracefully`);
|
|
234
|
-
}
|
|
235
|
-
pass++;
|
|
236
|
-
} catch (err) {
|
|
237
|
-
console.log(`FAIL sqlite_query_builder(no args): ${err.message}`);
|
|
238
|
-
fail++;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
console.log(
|
|
242
|
-
`\n=== RESULTS: ${pass} pass, ${fail} fail (${pass + fail} total) ===`,
|
|
243
|
-
);
|
|
244
|
-
proc.kill();
|
|
245
|
-
process.exit(fail > 0 ? 1 : 0);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
main().catch((err) => {
|
|
249
|
-
console.error(err);
|
|
250
|
-
process.exit(1);
|
|
251
|
-
});
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Integration Test: Tool Annotations
|
|
3
|
-
*
|
|
4
|
-
* Verifies that all tools returned by tools/list have annotations
|
|
5
|
-
* with openWorldHint set. db-mcp tools are all local SQLite operations,
|
|
6
|
-
* so all should have openWorldHint: false.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* npm run build
|
|
10
|
-
* node test-server/scripts/test-tool-annotations.mjs
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { spawn } from "child_process";
|
|
14
|
-
|
|
15
|
-
const projectDir = "C:\\Users\\chris\\Desktop\\db-mcp";
|
|
16
|
-
const proc = spawn(
|
|
17
|
-
"node",
|
|
18
|
-
[
|
|
19
|
-
"dist/cli.js",
|
|
20
|
-
"--instruction-level",
|
|
21
|
-
"essential",
|
|
22
|
-
"--sqlite-native",
|
|
23
|
-
"./test-server/test.db",
|
|
24
|
-
"--tool-filter",
|
|
25
|
-
"+all",
|
|
26
|
-
],
|
|
27
|
-
{
|
|
28
|
-
cwd: projectDir,
|
|
29
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
30
|
-
},
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
let buffer = "";
|
|
34
|
-
let finished = false;
|
|
35
|
-
|
|
36
|
-
proc.stdout.on("data", (chunk) => {
|
|
37
|
-
buffer += chunk.toString();
|
|
38
|
-
|
|
39
|
-
// Try to parse complete JSON-RPC responses
|
|
40
|
-
const lines = buffer.split("\n");
|
|
41
|
-
for (const line of lines) {
|
|
42
|
-
const trimmed = line.trim();
|
|
43
|
-
if (!trimmed) continue;
|
|
44
|
-
try {
|
|
45
|
-
const msg = JSON.parse(trimmed);
|
|
46
|
-
if (msg.id === 1) {
|
|
47
|
-
// Initialize response — skip
|
|
48
|
-
} else if (msg.id === 2) {
|
|
49
|
-
// tools/list response
|
|
50
|
-
const tools = msg.result?.tools || [];
|
|
51
|
-
console.log(`Total tools: ${tools.length}`);
|
|
52
|
-
|
|
53
|
-
let withAnnotations = 0;
|
|
54
|
-
let openWorldTrue = 0;
|
|
55
|
-
let openWorldFalse = 0;
|
|
56
|
-
let missing = 0;
|
|
57
|
-
const trueNames = [];
|
|
58
|
-
const missingNames = [];
|
|
59
|
-
|
|
60
|
-
for (const tool of tools) {
|
|
61
|
-
if (tool.annotations) {
|
|
62
|
-
withAnnotations++;
|
|
63
|
-
if (tool.annotations.openWorldHint === true) {
|
|
64
|
-
openWorldTrue++;
|
|
65
|
-
trueNames.push(tool.name);
|
|
66
|
-
} else if (tool.annotations.openWorldHint === false) {
|
|
67
|
-
openWorldFalse++;
|
|
68
|
-
} else {
|
|
69
|
-
missing++;
|
|
70
|
-
missingNames.push(tool.name);
|
|
71
|
-
}
|
|
72
|
-
} else {
|
|
73
|
-
missing++;
|
|
74
|
-
missingNames.push(tool.name);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
console.log(
|
|
79
|
-
`Tools with annotations: ${withAnnotations}/${tools.length}`,
|
|
80
|
-
);
|
|
81
|
-
console.log(`openWorldHint=false (local): ${openWorldFalse}`);
|
|
82
|
-
console.log(`openWorldHint=true: ${openWorldTrue}`);
|
|
83
|
-
console.log(`Missing openWorldHint: ${missing}`);
|
|
84
|
-
|
|
85
|
-
if (trueNames.length > 0) {
|
|
86
|
-
console.log(`\nopenWorldHint=true tools: ${trueNames.join(", ")}`);
|
|
87
|
-
}
|
|
88
|
-
if (missingNames.length > 0) {
|
|
89
|
-
console.log(`\nMISSING annotations: ${missingNames.join(", ")}`);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Verification
|
|
93
|
-
const expectedCount = 154; // 151 Native tools + 3 built-in tools
|
|
94
|
-
const hasExpectedCount = tools.length === expectedCount;
|
|
95
|
-
const allHaveAnnotations = missing === 0;
|
|
96
|
-
const allAreFalse =
|
|
97
|
-
openWorldTrue === 0 && openWorldFalse === tools.length;
|
|
98
|
-
|
|
99
|
-
console.log(
|
|
100
|
-
`\n Has exactly ${expectedCount} tools: ${hasExpectedCount ? "✅" : "❌"} (actual: ${tools.length})`,
|
|
101
|
-
);
|
|
102
|
-
console.log(
|
|
103
|
-
` All tools have annotations: ${allHaveAnnotations ? "✅" : "❌"}`,
|
|
104
|
-
);
|
|
105
|
-
console.log(
|
|
106
|
-
` All openWorldHint=false: ${allAreFalse ? "✅" : "⚠️ (some are true)"}`,
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
finished = true;
|
|
110
|
-
proc.kill();
|
|
111
|
-
process.exit(allHaveAnnotations && hasExpectedCount ? 0 : 1);
|
|
112
|
-
}
|
|
113
|
-
} catch {
|
|
114
|
-
// Not complete JSON yet
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
proc.stderr.on("data", () => {});
|
|
120
|
-
|
|
121
|
-
// Send initialize
|
|
122
|
-
proc.stdin.write(
|
|
123
|
-
JSON.stringify({
|
|
124
|
-
jsonrpc: "2.0",
|
|
125
|
-
id: 1,
|
|
126
|
-
method: "initialize",
|
|
127
|
-
params: {
|
|
128
|
-
protocolVersion: "2025-03-26",
|
|
129
|
-
capabilities: {},
|
|
130
|
-
clientInfo: { name: "test", version: "1.0" },
|
|
131
|
-
},
|
|
132
|
-
}) + "\n",
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
// Wait, then send initialized + tools/list
|
|
136
|
-
setTimeout(() => {
|
|
137
|
-
proc.stdin.write(
|
|
138
|
-
JSON.stringify({
|
|
139
|
-
jsonrpc: "2.0",
|
|
140
|
-
method: "notifications/initialized",
|
|
141
|
-
}) + "\n",
|
|
142
|
-
);
|
|
143
|
-
|
|
144
|
-
setTimeout(() => {
|
|
145
|
-
proc.stdin.write(
|
|
146
|
-
JSON.stringify({
|
|
147
|
-
jsonrpc: "2.0",
|
|
148
|
-
id: 2,
|
|
149
|
-
method: "tools/list",
|
|
150
|
-
params: {},
|
|
151
|
-
}) + "\n",
|
|
152
|
-
);
|
|
153
|
-
}, 500);
|
|
154
|
-
}, 1500);
|
|
155
|
-
|
|
156
|
-
setTimeout(() => {
|
|
157
|
-
if (!finished) {
|
|
158
|
-
console.log("Timeout — killing process");
|
|
159
|
-
proc.kill();
|
|
160
|
-
process.exit(1);
|
|
161
|
-
}
|
|
162
|
-
}, 15000);
|