codesift-mcp 0.14.0 → 0.15.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 +5 -1
- package/dist/cli/commands-admin.d.ts +18 -0
- package/dist/cli/commands-admin.d.ts.map +1 -0
- package/dist/cli/commands-admin.js +187 -0
- package/dist/cli/commands-admin.js.map +1 -0
- package/dist/cli/commands-daemon.d.ts +42 -0
- package/dist/cli/commands-daemon.d.ts.map +1 -0
- package/dist/cli/commands-daemon.js +163 -0
- package/dist/cli/commands-daemon.js.map +1 -0
- package/dist/cli/commands-index.d.ts +12 -0
- package/dist/cli/commands-index.d.ts.map +1 -0
- package/dist/cli/commands-index.js +133 -0
- package/dist/cli/commands-index.js.map +1 -0
- package/dist/cli/commands-maintenance.d.ts +12 -0
- package/dist/cli/commands-maintenance.d.ts.map +1 -0
- package/dist/cli/commands-maintenance.js +409 -0
- package/dist/cli/commands-maintenance.js.map +1 -0
- package/dist/cli/commands-query.d.ts +21 -0
- package/dist/cli/commands-query.d.ts.map +1 -0
- package/dist/cli/commands-query.js +270 -0
- package/dist/cli/commands-query.js.map +1 -0
- package/dist/cli/commands.d.ts +2 -36
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +8 -867
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/embed-child.js +13 -2
- package/dist/cli/embed-child.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +5 -2
- package/dist/instructions.js.map +1 -1
- package/dist/parser/extractors/php-class-metadata.d.ts +10 -0
- package/dist/parser/extractors/php-class-metadata.d.ts.map +1 -0
- package/dist/parser/extractors/php-class-metadata.js +65 -0
- package/dist/parser/extractors/php-class-metadata.js.map +1 -0
- package/dist/parser/extractors/php-doc.d.ts +13 -0
- package/dist/parser/extractors/php-doc.d.ts.map +1 -0
- package/dist/parser/extractors/php-doc.js +39 -0
- package/dist/parser/extractors/php-doc.js.map +1 -0
- package/dist/parser/extractors/php-node-metadata.d.ts +26 -0
- package/dist/parser/extractors/php-node-metadata.d.ts.map +1 -0
- package/dist/parser/extractors/php-node-metadata.js +132 -0
- package/dist/parser/extractors/php-node-metadata.js.map +1 -0
- package/dist/parser/extractors/php-symbol-builders.d.ts +13 -0
- package/dist/parser/extractors/php-symbol-builders.d.ts.map +1 -0
- package/dist/parser/extractors/php-symbol-builders.js +58 -0
- package/dist/parser/extractors/php-symbol-builders.js.map +1 -0
- package/dist/parser/extractors/php-walker.d.ts +4 -0
- package/dist/parser/extractors/php-walker.d.ts.map +1 -0
- package/dist/parser/extractors/php-walker.js +238 -0
- package/dist/parser/extractors/php-walker.js.map +1 -0
- package/dist/parser/extractors/php.d.ts +2 -33
- package/dist/parser/extractors/php.d.ts.map +1 -1
- package/dist/parser/extractors/php.js +2 -747
- package/dist/parser/extractors/php.js.map +1 -1
- package/dist/register-tool-loaders.d.ts +11 -11
- package/dist/register-tool-loaders.d.ts.map +1 -1
- package/dist/register-tools/runtime.d.ts +11 -0
- package/dist/register-tools/runtime.d.ts.map +1 -1
- package/dist/register-tools/runtime.js +40 -0
- package/dist/register-tools/runtime.js.map +1 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +5 -1
- package/dist/register-tools.js.map +1 -1
- package/dist/retrieval/semantic-handlers.d.ts.map +1 -1
- package/dist/retrieval/semantic-handlers.js +10 -3
- package/dist/retrieval/semantic-handlers.js.map +1 -1
- package/dist/search/semantic.d.ts +2 -0
- package/dist/search/semantic.d.ts.map +1 -1
- package/dist/search/semantic.js +41 -9
- package/dist/search/semantic.js.map +1 -1
- package/dist/storage/chunk-store.d.ts +14 -2
- package/dist/storage/chunk-store.d.ts.map +1 -1
- package/dist/storage/chunk-store.js +214 -34
- package/dist/storage/chunk-store.js.map +1 -1
- package/dist/storage/embedding-store.d.ts +0 -12
- package/dist/storage/embedding-store.d.ts.map +1 -1
- package/dist/storage/embedding-store.js +69 -9
- package/dist/storage/embedding-store.js.map +1 -1
- package/dist/storage/index-cache.d.ts +12 -0
- package/dist/storage/index-cache.d.ts.map +1 -0
- package/dist/storage/index-cache.js +89 -0
- package/dist/storage/index-cache.js.map +1 -0
- package/dist/storage/index-json-mutations.d.ts +11 -0
- package/dist/storage/index-json-mutations.d.ts.map +1 -0
- package/dist/storage/index-json-mutations.js +93 -0
- package/dist/storage/index-json-mutations.js.map +1 -0
- package/dist/storage/index-migration.d.ts +22 -0
- package/dist/storage/index-migration.d.ts.map +1 -0
- package/dist/storage/index-migration.js +80 -0
- package/dist/storage/index-migration.js.map +1 -0
- package/dist/storage/index-store.d.ts +5 -61
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +33 -414
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/index-version.d.ts +39 -0
- package/dist/storage/index-version.d.ts.map +1 -0
- package/dist/storage/index-version.js +87 -0
- package/dist/storage/index-version.js.map +1 -0
- package/dist/storage/registry.d.ts +9 -1
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +169 -8
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/shared-embedding-cache.d.ts +23 -3
- package/dist/storage/shared-embedding-cache.d.ts.map +1 -1
- package/dist/storage/shared-embedding-cache.js +300 -45
- package/dist/storage/shared-embedding-cache.js.map +1 -1
- package/dist/storage/telemetry/config.d.ts.map +1 -1
- package/dist/storage/telemetry/config.js +3 -2
- package/dist/storage/telemetry/config.js.map +1 -1
- package/dist/storage/telemetry/retro-aggregator.d.ts +21 -0
- package/dist/storage/telemetry/retro-aggregator.d.ts.map +1 -1
- package/dist/storage/telemetry/retro-aggregator.js +58 -16
- package/dist/storage/telemetry/retro-aggregator.js.map +1 -1
- package/dist/storage/telemetry/sanitizer.d.ts +16 -0
- package/dist/storage/telemetry/sanitizer.d.ts.map +1 -1
- package/dist/storage/telemetry/sanitizer.js +2 -0
- package/dist/storage/telemetry/sanitizer.js.map +1 -1
- package/dist/storage/telemetry/uploader.d.ts +3 -1
- package/dist/storage/telemetry/uploader.d.ts.map +1 -1
- package/dist/storage/telemetry/uploader.js +158 -21
- package/dist/storage/telemetry/uploader.js.map +1 -1
- package/dist/tools/cross-repo-contract-adapters.d.ts +39 -0
- package/dist/tools/cross-repo-contract-adapters.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-adapters.js +70 -0
- package/dist/tools/cross-repo-contract-adapters.js.map +1 -0
- package/dist/tools/cross-repo-contract-group.d.ts +17 -0
- package/dist/tools/cross-repo-contract-group.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-group.js +89 -0
- package/dist/tools/cross-repo-contract-group.js.map +1 -0
- package/dist/tools/cross-repo-contract-matcher.d.ts +24 -0
- package/dist/tools/cross-repo-contract-matcher.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-matcher.js +134 -0
- package/dist/tools/cross-repo-contract-matcher.js.map +1 -0
- package/dist/tools/cross-repo-contract-resolver.d.ts +9 -0
- package/dist/tools/cross-repo-contract-resolver.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-resolver.js +86 -0
- package/dist/tools/cross-repo-contract-resolver.js.map +1 -0
- package/dist/tools/cross-repo-contract-tools.d.ts +12 -135
- package/dist/tools/cross-repo-contract-tools.d.ts.map +1 -1
- package/dist/tools/cross-repo-contract-tools.js +8 -589
- package/dist/tools/cross-repo-contract-tools.js.map +1 -1
- package/dist/tools/cross-repo-contract-types.d.ts +30 -0
- package/dist/tools/cross-repo-contract-types.d.ts.map +1 -0
- package/dist/tools/cross-repo-contract-types.js +3 -0
- package/dist/tools/cross-repo-contract-types.js.map +1 -0
- package/dist/tools/cross-repo-outbound-calls.d.ts +28 -0
- package/dist/tools/cross-repo-outbound-calls.d.ts.map +1 -0
- package/dist/tools/cross-repo-outbound-calls.js +347 -0
- package/dist/tools/cross-repo-outbound-calls.js.map +1 -0
- package/dist/tools/cross-repo-outbound-lexer/call-detectors.d.ts.map +1 -1
- package/dist/tools/cross-repo-outbound-lexer/call-detectors.js +2 -0
- package/dist/tools/cross-repo-outbound-lexer/call-detectors.js.map +1 -1
- package/dist/tools/cross-repo-outbound-lexer/types.d.ts +2 -0
- package/dist/tools/cross-repo-outbound-lexer/types.d.ts.map +1 -1
- package/dist/tools/index-tools/file-indexer.js +3 -3
- package/dist/tools/index-tools/file-indexer.js.map +1 -1
- package/dist/tools/index-tools/folder-indexer.d.ts.map +1 -1
- package/dist/tools/index-tools/folder-indexer.js +47 -2
- package/dist/tools/index-tools/folder-indexer.js.map +1 -1
- package/dist/tools/index-tools/parse.d.ts +12 -3
- package/dist/tools/index-tools/parse.d.ts.map +1 -1
- package/dist/tools/index-tools/parse.js +33 -8
- package/dist/tools/index-tools/parse.js.map +1 -1
- package/dist/tools/index-tools/registry.d.ts +19 -0
- package/dist/tools/index-tools/registry.d.ts.map +1 -1
- package/dist/tools/index-tools/registry.js +88 -2
- package/dist/tools/index-tools/registry.js.map +1 -1
- package/dist/tools/index-tools/state.d.ts +31 -0
- package/dist/tools/index-tools/state.d.ts.map +1 -1
- package/dist/tools/index-tools/state.js +53 -0
- package/dist/tools/index-tools/state.js.map +1 -1
- package/dist/tools/index-tools/types.d.ts +9 -0
- package/dist/tools/index-tools/types.d.ts.map +1 -1
- package/dist/tools/index-tools/watcher.js +3 -3
- package/dist/tools/index-tools/watcher.js.map +1 -1
- package/dist/tools/index-tools/worktree-seed.d.ts +44 -0
- package/dist/tools/index-tools/worktree-seed.d.ts.map +1 -0
- package/dist/tools/index-tools/worktree-seed.js +302 -0
- package/dist/tools/index-tools/worktree-seed.js.map +1 -0
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +3 -1
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/nest-ext-tools/graphql.d.ts +17 -0
- package/dist/tools/nest-ext-tools/graphql.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/graphql.js +54 -0
- package/dist/tools/nest-ext-tools/graphql.js.map +1 -0
- package/dist/tools/nest-ext-tools/microservice.d.ts +17 -0
- package/dist/tools/nest-ext-tools/microservice.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/microservice.js +51 -0
- package/dist/tools/nest-ext-tools/microservice.js.map +1 -0
- package/dist/tools/nest-ext-tools/openapi.d.ts +81 -0
- package/dist/tools/nest-ext-tools/openapi.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/openapi.js +254 -0
- package/dist/tools/nest-ext-tools/openapi.js.map +1 -0
- package/dist/tools/nest-ext-tools/queue.d.ts +27 -0
- package/dist/tools/nest-ext-tools/queue.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/queue.js +95 -0
- package/dist/tools/nest-ext-tools/queue.js.map +1 -0
- package/dist/tools/nest-ext-tools/schedule.d.ts +19 -0
- package/dist/tools/nest-ext-tools/schedule.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/schedule.js +89 -0
- package/dist/tools/nest-ext-tools/schedule.js.map +1 -0
- package/dist/tools/nest-ext-tools/scope.d.ts +19 -0
- package/dist/tools/nest-ext-tools/scope.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/scope.js +151 -0
- package/dist/tools/nest-ext-tools/scope.js.map +1 -0
- package/dist/tools/nest-ext-tools/shared.d.ts +33 -0
- package/dist/tools/nest-ext-tools/shared.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/shared.js +279 -0
- package/dist/tools/nest-ext-tools/shared.js.map +1 -0
- package/dist/tools/nest-ext-tools/typeorm.d.ts +22 -0
- package/dist/tools/nest-ext-tools/typeorm.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/typeorm.js +59 -0
- package/dist/tools/nest-ext-tools/typeorm.js.map +1 -0
- package/dist/tools/nest-ext-tools/websocket.d.ts +21 -0
- package/dist/tools/nest-ext-tools/websocket.d.ts.map +1 -0
- package/dist/tools/nest-ext-tools/websocket.js +70 -0
- package/dist/tools/nest-ext-tools/websocket.js.map +1 -0
- package/dist/tools/nest-ext-tools.d.ts +10 -204
- package/dist/tools/nest-ext-tools.d.ts.map +1 -1
- package/dist/tools/nest-ext-tools.js +10 -749
- package/dist/tools/nest-ext-tools.js.map +1 -1
- package/dist/tools/perf-tools.js +2 -2
- package/dist/tools/python-audit/checks/dead-code.d.ts +1 -1
- package/dist/tools/python-audit/checks/dead-code.d.ts.map +1 -1
- package/dist/tools/python-constants/constant-match.d.ts +5 -0
- package/dist/tools/python-constants/constant-match.d.ts.map +1 -0
- package/dist/tools/python-constants/constant-match.js +24 -0
- package/dist/tools/python-constants/constant-match.js.map +1 -0
- package/dist/tools/python-constants/file-context.d.ts +5 -0
- package/dist/tools/python-constants/file-context.d.ts.map +1 -0
- package/dist/tools/python-constants/file-context.js +91 -0
- package/dist/tools/python-constants/file-context.js.map +1 -0
- package/dist/tools/python-constants/function-defaults.d.ts +5 -0
- package/dist/tools/python-constants/function-defaults.d.ts.map +1 -0
- package/dist/tools/python-constants/function-defaults.js +98 -0
- package/dist/tools/python-constants/function-defaults.js.map +1 -0
- package/dist/tools/python-constants/model.d.ts +78 -0
- package/dist/tools/python-constants/model.d.ts.map +1 -0
- package/dist/tools/python-constants/model.js +2 -0
- package/dist/tools/python-constants/model.js.map +1 -0
- package/dist/tools/python-constants/syntax.d.ts +22 -0
- package/dist/tools/python-constants/syntax.d.ts.map +1 -0
- package/dist/tools/python-constants/syntax.js +93 -0
- package/dist/tools/python-constants/syntax.js.map +1 -0
- package/dist/tools/python-constants/value-resolver.d.ts +6 -0
- package/dist/tools/python-constants/value-resolver.d.ts.map +1 -0
- package/dist/tools/python-constants/value-resolver.js +320 -0
- package/dist/tools/python-constants/value-resolver.js.map +1 -0
- package/dist/tools/python-constants-tools.d.ts +3 -45
- package/dist/tools/python-constants-tools.d.ts.map +1 -1
- package/dist/tools/python-constants-tools.js +2 -505
- package/dist/tools/python-constants-tools.js.map +1 -1
- package/dist/tools/route-tools/django.d.ts +8 -0
- package/dist/tools/route-tools/django.d.ts.map +1 -0
- package/dist/tools/route-tools/django.js +52 -0
- package/dist/tools/route-tools/django.js.map +1 -0
- package/dist/tools/route-tools/express.d.ts +5 -0
- package/dist/tools/route-tools/express.d.ts.map +1 -0
- package/dist/tools/route-tools/express.js +33 -0
- package/dist/tools/route-tools/express.js.map +1 -0
- package/dist/tools/route-tools/file-sources.d.ts +7 -0
- package/dist/tools/route-tools/file-sources.d.ts.map +1 -0
- package/dist/tools/route-tools/file-sources.js +15 -0
- package/dist/tools/route-tools/file-sources.js.map +1 -0
- package/dist/tools/route-tools/handler-discovery.d.ts +4 -0
- package/dist/tools/route-tools/handler-discovery.d.ts.map +1 -0
- package/dist/tools/route-tools/handler-discovery.js +38 -0
- package/dist/tools/route-tools/handler-discovery.js.map +1 -0
- package/dist/tools/route-tools/hono.d.ts +5 -0
- package/dist/tools/route-tools/hono.d.ts.map +1 -0
- package/dist/tools/route-tools/hono.js +61 -0
- package/dist/tools/route-tools/hono.js.map +1 -0
- package/dist/tools/route-tools/ktor.d.ts +5 -0
- package/dist/tools/route-tools/ktor.d.ts.map +1 -0
- package/dist/tools/route-tools/ktor.js +76 -0
- package/dist/tools/route-tools/ktor.js.map +1 -0
- package/dist/tools/route-tools/laravel.d.ts +5 -0
- package/dist/tools/route-tools/laravel.d.ts.map +1 -0
- package/dist/tools/route-tools/laravel.js +45 -0
- package/dist/tools/route-tools/laravel.js.map +1 -0
- package/dist/tools/route-tools/mermaid-call-chain.d.ts +3 -0
- package/dist/tools/route-tools/mermaid-call-chain.d.ts.map +1 -0
- package/dist/tools/route-tools/mermaid-call-chain.js +50 -0
- package/dist/tools/route-tools/mermaid-call-chain.js.map +1 -0
- package/dist/tools/route-tools/nest.d.ts +5 -0
- package/dist/tools/route-tools/nest.d.ts.map +1 -0
- package/dist/tools/route-tools/nest.js +75 -0
- package/dist/tools/route-tools/nest.js.map +1 -0
- package/dist/tools/route-tools/next-trace.d.ts +4 -0
- package/dist/tools/route-tools/next-trace.d.ts.map +1 -0
- package/dist/tools/route-tools/next-trace.js +48 -0
- package/dist/tools/route-tools/next-trace.js.map +1 -0
- package/dist/tools/route-tools/next.d.ts +7 -0
- package/dist/tools/route-tools/next.d.ts.map +1 -0
- package/dist/tools/route-tools/next.js +77 -0
- package/dist/tools/route-tools/next.js.map +1 -0
- package/dist/tools/route-tools/python-decorators.d.ts +7 -0
- package/dist/tools/route-tools/python-decorators.d.ts.map +1 -0
- package/dist/tools/route-tools/python-decorators.js +53 -0
- package/dist/tools/route-tools/python-decorators.js.map +1 -0
- package/dist/tools/route-tools/route-mermaid.d.ts +4 -0
- package/dist/tools/route-tools/route-mermaid.d.ts.map +1 -0
- package/dist/tools/route-tools/route-mermaid.js +53 -0
- package/dist/tools/route-tools/route-mermaid.js.map +1 -0
- package/dist/tools/route-tools/spring-kotlin.d.ts +5 -0
- package/dist/tools/route-tools/spring-kotlin.d.ts.map +1 -0
- package/dist/tools/route-tools/spring-kotlin.js +52 -0
- package/dist/tools/route-tools/spring-kotlin.js.map +1 -0
- package/dist/tools/route-tools/trace-analysis.d.ts +4 -0
- package/dist/tools/route-tools/trace-analysis.d.ts.map +1 -0
- package/dist/tools/route-tools/trace-analysis.js +37 -0
- package/dist/tools/route-tools/trace-analysis.js.map +1 -0
- package/dist/tools/route-tools/trace-route.d.ts +6 -0
- package/dist/tools/route-tools/trace-route.d.ts.map +1 -0
- package/dist/tools/route-tools/trace-route.js +53 -0
- package/dist/tools/route-tools/trace-route.js.map +1 -0
- package/dist/tools/route-tools/types.d.ts +35 -0
- package/dist/tools/route-tools/types.d.ts.map +1 -0
- package/dist/tools/route-tools/types.js +2 -0
- package/dist/tools/route-tools/types.js.map +1 -0
- package/dist/tools/route-tools/yii2.d.ts +5 -0
- package/dist/tools/route-tools/yii2.d.ts.map +1 -0
- package/dist/tools/route-tools/yii2.js +73 -0
- package/dist/tools/route-tools/yii2.js.map +1 -0
- package/dist/tools/route-tools.d.ts +7 -49
- package/dist/tools/route-tools.d.ts.map +1 -1
- package/dist/tools/route-tools.js +5 -978
- package/dist/tools/route-tools.js.map +1 -1
- package/dist/tools/symbol-analysis-tools.d.ts +81 -0
- package/dist/tools/symbol-analysis-tools.d.ts.map +1 -0
- package/dist/tools/symbol-analysis-tools.js +327 -0
- package/dist/tools/symbol-analysis-tools.js.map +1 -0
- package/dist/tools/symbol-context-tools.d.ts +68 -0
- package/dist/tools/symbol-context-tools.d.ts.map +1 -0
- package/dist/tools/symbol-context-tools.js +232 -0
- package/dist/tools/symbol-context-tools.js.map +1 -0
- package/dist/tools/symbol-lookup-tools.d.ts +77 -0
- package/dist/tools/symbol-lookup-tools.d.ts.map +1 -0
- package/dist/tools/symbol-lookup-tools.js +305 -0
- package/dist/tools/symbol-lookup-tools.js.map +1 -0
- package/dist/tools/symbol-reference-tools.d.ts +38 -0
- package/dist/tools/symbol-reference-tools.d.ts.map +1 -0
- package/dist/tools/symbol-reference-tools.js +253 -0
- package/dist/tools/symbol-reference-tools.js.map +1 -0
- package/dist/tools/symbol-tool-internals.d.ts +9 -0
- package/dist/tools/symbol-tool-internals.d.ts.map +1 -0
- package/dist/tools/symbol-tool-internals.js +47 -0
- package/dist/tools/symbol-tool-internals.js.map +1 -0
- package/dist/tools/symbol-tools.d.ts +11 -270
- package/dist/tools/symbol-tools.d.ts.map +1 -1
- package/dist/tools/symbol-tools.js +7 -1131
- package/dist/tools/symbol-tools.js.map +1 -1
- package/dist/tools/taint/python-context.d.ts +10 -0
- package/dist/tools/taint/python-context.d.ts.map +1 -0
- package/dist/tools/taint/python-context.js +150 -0
- package/dist/tools/taint/python-context.js.map +1 -0
- package/dist/tools/taint/taint-analyzer.d.ts +2 -0
- package/dist/tools/taint/taint-analyzer.d.ts.map +1 -0
- package/dist/tools/taint/taint-analyzer.js +2 -0
- package/dist/tools/taint/taint-analyzer.js.map +1 -0
- package/dist/tools/taint/taint-expression.d.ts +18 -0
- package/dist/tools/taint/taint-expression.d.ts.map +1 -0
- package/dist/tools/taint/taint-expression.js +265 -0
- package/dist/tools/taint/taint-expression.js.map +1 -0
- package/dist/tools/taint/taint-flow.d.ts +10 -0
- package/dist/tools/taint/taint-flow.d.ts.map +1 -0
- package/dist/tools/taint/taint-flow.js +178 -0
- package/dist/tools/taint/taint-flow.js.map +1 -0
- package/dist/tools/taint/taint-model.d.ts +113 -0
- package/dist/tools/taint/taint-model.d.ts.map +1 -0
- package/dist/tools/taint/taint-model.js +277 -0
- package/dist/tools/taint/taint-model.js.map +1 -0
- package/dist/tools/taint-tools.d.ts +2 -34
- package/dist/tools/taint-tools.d.ts.map +1 -1
- package/dist/tools/taint-tools.js +2 -852
- package/dist/tools/taint-tools.js.map +1 -1
- package/dist/tools/typescript-constants/file-context.d.ts +7 -0
- package/dist/tools/typescript-constants/file-context.d.ts.map +1 -0
- package/dist/tools/typescript-constants/file-context.js +219 -0
- package/dist/tools/typescript-constants/file-context.js.map +1 -0
- package/dist/tools/typescript-constants/symbol-resolver.d.ts +7 -0
- package/dist/tools/typescript-constants/symbol-resolver.d.ts.map +1 -0
- package/dist/tools/typescript-constants/symbol-resolver.js +165 -0
- package/dist/tools/typescript-constants/symbol-resolver.js.map +1 -0
- package/dist/tools/typescript-constants/types.d.ts +44 -0
- package/dist/tools/typescript-constants/types.d.ts.map +1 -0
- package/dist/tools/typescript-constants/types.js +2 -0
- package/dist/tools/typescript-constants/types.js.map +1 -0
- package/dist/tools/typescript-constants/value-evaluator.d.ts +8 -0
- package/dist/tools/typescript-constants/value-evaluator.d.ts.map +1 -0
- package/dist/tools/typescript-constants/value-evaluator.js +404 -0
- package/dist/tools/typescript-constants/value-evaluator.js.map +1 -0
- package/dist/tools/typescript-constants-tools.d.ts.map +1 -1
- package/dist/tools/typescript-constants-tools.js +19 -709
- package/dist/tools/typescript-constants-tools.js.map +1 -1
- package/dist/utils/import-graph/collect.d.ts +5 -0
- package/dist/utils/import-graph/collect.d.ts.map +1 -0
- package/dist/utils/import-graph/collect.js +47 -0
- package/dist/utils/import-graph/collect.js.map +1 -0
- package/dist/utils/import-graph/edge-accumulator.d.ts +7 -0
- package/dist/utils/import-graph/edge-accumulator.d.ts.map +1 -0
- package/dist/utils/import-graph/edge-accumulator.js +47 -0
- package/dist/utils/import-graph/edge-accumulator.js.map +1 -0
- package/dist/utils/import-graph/language-imports.d.ts +6 -0
- package/dist/utils/import-graph/language-imports.d.ts.map +1 -0
- package/dist/utils/import-graph/language-imports.js +84 -0
- package/dist/utils/import-graph/language-imports.js.map +1 -0
- package/dist/utils/import-graph/metrics.d.ts +6 -0
- package/dist/utils/import-graph/metrics.d.ts.map +1 -0
- package/dist/utils/import-graph/metrics.js +51 -0
- package/dist/utils/import-graph/metrics.js.map +1 -0
- package/dist/utils/import-graph/path-map.d.ts +7 -0
- package/dist/utils/import-graph/path-map.d.ts.map +1 -0
- package/dist/utils/import-graph/path-map.js +56 -0
- package/dist/utils/import-graph/path-map.js.map +1 -0
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts +5 -0
- package/dist/utils/import-graph/python-php-edge-collectors.d.ts.map +1 -0
- package/dist/utils/import-graph/python-php-edge-collectors.js +56 -0
- package/dist/utils/import-graph/python-php-edge-collectors.js.map +1 -0
- package/dist/utils/import-graph/source-edge-collector.d.ts +13 -0
- package/dist/utils/import-graph/source-edge-collector.d.ts.map +1 -0
- package/dist/utils/import-graph/source-edge-collector.js +42 -0
- package/dist/utils/import-graph/source-edge-collector.js.map +1 -0
- package/dist/utils/import-graph/source-imports.d.ts +5 -0
- package/dist/utils/import-graph/source-imports.d.ts.map +1 -0
- package/dist/utils/import-graph/source-imports.js +33 -0
- package/dist/utils/import-graph/source-imports.js.map +1 -0
- package/dist/utils/import-graph/types.d.ts +15 -0
- package/dist/utils/import-graph/types.d.ts.map +1 -0
- package/dist/utils/import-graph/types.js +2 -0
- package/dist/utils/import-graph/types.js.map +1 -0
- package/dist/utils/import-graph/typescript-edge-collector.d.ts +7 -0
- package/dist/utils/import-graph/typescript-edge-collector.d.ts.map +1 -0
- package/dist/utils/import-graph/typescript-edge-collector.js +58 -0
- package/dist/utils/import-graph/typescript-edge-collector.js.map +1 -0
- package/dist/utils/import-graph/workspace-alias.d.ts +7 -0
- package/dist/utils/import-graph/workspace-alias.d.ts.map +1 -0
- package/dist/utils/import-graph/workspace-alias.js +95 -0
- package/dist/utils/import-graph/workspace-alias.js.map +1 -0
- package/dist/utils/import-graph/workspace-entry.d.ts +3 -0
- package/dist/utils/import-graph/workspace-entry.d.ts.map +1 -0
- package/dist/utils/import-graph/workspace-entry.js +81 -0
- package/dist/utils/import-graph/workspace-entry.js.map +1 -0
- package/dist/utils/import-graph.d.ts +10 -94
- package/dist/utils/import-graph.d.ts.map +1 -1
- package/dist/utils/import-graph.js +6 -702
- package/dist/utils/import-graph.js.map +1 -1
- package/package.json +1 -1
- package/rules/codesift.md +11 -2
- package/rules/codesift.mdc +11 -2
- package/rules/codex.md +11 -2
- package/rules/gemini.md +11 -2
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { getBoolFlag, output, die } from "./args.js";
|
|
3
|
+
/**
|
|
4
|
+
* Delete orphaned per-repo cache artifacts (embeddings/index/meta/bm25/graph)
|
|
5
|
+
* whose hash stem is no longer in the registry. These accumulate from
|
|
6
|
+
* re-indexes (hash changes) and ephemeral/test repos that were indexed then
|
|
7
|
+
* deleted — each leaves multi-GB embedding files behind. Use --dry-run to
|
|
8
|
+
* preview. Regenerable: re-indexing recreates anything still needed.
|
|
9
|
+
*/
|
|
10
|
+
async function handlePrune(_args, flags) {
|
|
11
|
+
const { loadConfig } = await import("../config.js");
|
|
12
|
+
const { withRegistryLock } = await import("../storage/registry.js");
|
|
13
|
+
const registryPath = loadConfig().registryPath;
|
|
14
|
+
await withRegistryLock(registryPath, () => handlePruneLocked(flags, registryPath));
|
|
15
|
+
}
|
|
16
|
+
async function handlePruneLocked(flags, registryPath) {
|
|
17
|
+
const { readFileSync, readdirSync, statSync, unlinkSync } = await import("node:fs");
|
|
18
|
+
const { join } = await import("node:path");
|
|
19
|
+
const { loadConfig } = await import("../config.js");
|
|
20
|
+
const dataDir = loadConfig().dataDir;
|
|
21
|
+
const dryRun = getBoolFlag(flags, "dry-run");
|
|
22
|
+
const pruneGraceMs = 5 * 60 * 1000;
|
|
23
|
+
// Live index hashes from the registry — everything else is orphaned cache.
|
|
24
|
+
//
|
|
25
|
+
// A registry entry counted as live even when its `root` no longer existed, so
|
|
26
|
+
// artifacts for deleted directories were protected indefinitely. Measured
|
|
27
|
+
// here: 101 of 119 indexed worktrees pointed at directories that were gone,
|
|
28
|
+
// holding 5.4 GB of embeddings for code that cannot be read. Task branches are
|
|
29
|
+
// created and deleted constantly, so this accumulates without bound.
|
|
30
|
+
//
|
|
31
|
+
// Entries whose root is missing are de-registered first; their artifacts then
|
|
32
|
+
// fall out as orphans through the sweep below.
|
|
33
|
+
const live = new Set();
|
|
34
|
+
const stale = [];
|
|
35
|
+
const staleHashes = new Set();
|
|
36
|
+
let reg;
|
|
37
|
+
let registryDirty = false;
|
|
38
|
+
try {
|
|
39
|
+
reg = JSON.parse(readFileSync(registryPath, "utf-8"));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
die("prune: cannot read registry.json — aborting so live data is never deleted.");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
for (const [name, v] of Object.entries(reg.repos ?? {})) {
|
|
46
|
+
const ip = v.index_path;
|
|
47
|
+
const root = v.root;
|
|
48
|
+
// Only a root that is definitively absent counts. An unreadable path (a
|
|
49
|
+
// permissions error, an unmounted volume mid-check) throws and is treated
|
|
50
|
+
// as present — the conservative direction, since the cost of keeping a dead
|
|
51
|
+
// entry is disk, and the cost of dropping a live one is a re-index.
|
|
52
|
+
let rootGone = false;
|
|
53
|
+
if (typeof root === "string" && root.length > 0) {
|
|
54
|
+
try {
|
|
55
|
+
statSync(root);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const code = error.code;
|
|
59
|
+
rootGone = code === "ENOENT" || code === "ENOTDIR";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (rootGone) {
|
|
63
|
+
stale.push({ name, root: root });
|
|
64
|
+
if (typeof ip === "string") {
|
|
65
|
+
const stem = /^([0-9a-f]{8,})\./.exec(ip.split("/").pop() ?? "")?.[1];
|
|
66
|
+
if (stem)
|
|
67
|
+
staleHashes.add(stem);
|
|
68
|
+
}
|
|
69
|
+
continue; // deliberately NOT added to `live`
|
|
70
|
+
}
|
|
71
|
+
// Take the HASH STEM with the same shape the sweep below matches, rather than stripping one
|
|
72
|
+
// known suffix. `.replace(".index.json", "")` silently no-ops on any other form — so after the
|
|
73
|
+
// SQLite migration an entry whose `index_path` ends in `.index.db` never reached this set, and
|
|
74
|
+
// every artifact under that hash looked orphaned. Measured 2026-08-07 on one such entry:
|
|
75
|
+
// 8.33 GB of LIVE data (a 240,706-symbol index plus 3.9 GB of embeddings) was one `prune` away
|
|
76
|
+
// from deletion. Deriving the stem the same way in both halves of this command is what makes
|
|
77
|
+
// them agree by construction instead of by coincidence.
|
|
78
|
+
if (typeof ip === "string") {
|
|
79
|
+
const stem = /^([0-9a-f]{8,})\./.exec(ip.split("/").pop() ?? "")?.[1];
|
|
80
|
+
if (stem)
|
|
81
|
+
live.add(stem);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// An index database is LIVE if its own `meta` says it describes a directory that still exists —
|
|
85
|
+
// whether or not the registry knows about it.
|
|
86
|
+
//
|
|
87
|
+
// The registry is not the authority on what exists; it is a lookup table, and it drifts. Measured
|
|
88
|
+
// 2026-08-07: `local/tgm-survey-platform` had been re-registered onto a worktree that was later
|
|
89
|
+
// deleted, leaving the MAIN checkout's index — 240,706 symbols, and 8.33 GB once its embeddings
|
|
90
|
+
// are counted — described by no entry at all. Prune classified every byte of it as orphaned.
|
|
91
|
+
// Twenty-four hours later three MORE databases had drifted the same way, so this is a rate, not
|
|
92
|
+
// an incident.
|
|
93
|
+
//
|
|
94
|
+
// Asking each database who it is costs one small read per unregistered hash, and removes a whole
|
|
95
|
+
// class of data loss: a repo still present on disk can no longer be deleted because a JSON file
|
|
96
|
+
// lost track of it. Re-registering also means the next lookup finds it.
|
|
97
|
+
const rescued = [];
|
|
98
|
+
const rescuedNames = new Set();
|
|
99
|
+
// Databases prune could not classify — kept, but SAID so. Protecting them silently is the
|
|
100
|
+
// difference between "prune deleted nothing unexpected" and "prune is quietly accumulating
|
|
101
|
+
// files nobody can account for"; only the second is actionable, and only if it is reported.
|
|
102
|
+
const indeterminate = [];
|
|
103
|
+
const protectedNames = new Set();
|
|
104
|
+
for (const name of readdirSync(dataDir)) {
|
|
105
|
+
const m = /^([0-9a-f]{8,})\.index\.db$/.exec(name);
|
|
106
|
+
if (!m?.[1] || live.has(m[1]))
|
|
107
|
+
continue;
|
|
108
|
+
let db;
|
|
109
|
+
try {
|
|
110
|
+
const { DatabaseSync } = await import("node:sqlite");
|
|
111
|
+
db = new DatabaseSync(`file:${join(dataDir, name)}?mode=ro`, { open: true });
|
|
112
|
+
const rows = db.prepare("SELECT key, value FROM meta").all();
|
|
113
|
+
const meta = Object.fromEntries(rows.map((r) => [r.key, r.value]));
|
|
114
|
+
const root = meta["root"];
|
|
115
|
+
const repo = meta["repo"];
|
|
116
|
+
if (!root || !repo) {
|
|
117
|
+
live.add(m[1]);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
statSync(root); // throws when the tree is gone — then it really is garbage
|
|
121
|
+
// The live guard above is keyed by hash, while registration replaces an
|
|
122
|
+
// entry by repository name. Do not let an orphan database repoint a
|
|
123
|
+
// healthy entry that already owns the same name.
|
|
124
|
+
const existing = reg.repos?.[repo];
|
|
125
|
+
if (existing?.root) {
|
|
126
|
+
let existingGone = false;
|
|
127
|
+
try {
|
|
128
|
+
statSync(existing.root);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
const code = error.code;
|
|
132
|
+
existingGone = code === "ENOENT" || code === "ENOTDIR";
|
|
133
|
+
}
|
|
134
|
+
if (!existingGone) {
|
|
135
|
+
// Same root means this database is an older generation and may be
|
|
136
|
+
// swept. A different live root is ambiguous, so preserve both and
|
|
137
|
+
// leave registry reconciliation to an explicit operator action.
|
|
138
|
+
if (existing.root !== root) {
|
|
139
|
+
live.add(m[1]);
|
|
140
|
+
protectedNames.add(repo);
|
|
141
|
+
}
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
live.add(m[1]);
|
|
146
|
+
protectedNames.add(repo);
|
|
147
|
+
if (!dryRun) {
|
|
148
|
+
// Canonical `.index.json` form: `sqlitePathFor()` derives the `.db` from it, and the
|
|
149
|
+
// live-set above is built from these strings.
|
|
150
|
+
reg.repos ??= {};
|
|
151
|
+
const previous = reg.repos[repo];
|
|
152
|
+
const replacement = {
|
|
153
|
+
name: repo,
|
|
154
|
+
root,
|
|
155
|
+
index_path: join(dataDir, `${m[1]}.index.json`),
|
|
156
|
+
};
|
|
157
|
+
if (typeof previous?.symbol_count === "number" && Number.isFinite(previous.symbol_count)) {
|
|
158
|
+
replacement.symbol_count = previous.symbol_count;
|
|
159
|
+
}
|
|
160
|
+
if (typeof previous?.file_count === "number" && Number.isFinite(previous.file_count)) {
|
|
161
|
+
replacement.file_count = previous.file_count;
|
|
162
|
+
}
|
|
163
|
+
if (typeof previous?.updated_at === "number" && Number.isFinite(previous.updated_at)) {
|
|
164
|
+
replacement.updated_at = previous.updated_at;
|
|
165
|
+
}
|
|
166
|
+
if (typeof previous?.last_git_commit === "string") {
|
|
167
|
+
replacement.last_git_commit = previous.last_git_commit;
|
|
168
|
+
}
|
|
169
|
+
reg.repos[repo] = replacement;
|
|
170
|
+
registryDirty = true;
|
|
171
|
+
}
|
|
172
|
+
rescued.push(repo);
|
|
173
|
+
rescuedNames.add(repo);
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
const code = error.code;
|
|
177
|
+
// Only definite absence makes the database garbage. Any other I/O or
|
|
178
|
+
// permission failure is inconclusive, so preserve this hash.
|
|
179
|
+
if (code !== "ENOENT" && code !== "ENOTDIR") {
|
|
180
|
+
live.add(m[1]);
|
|
181
|
+
indeterminate.push(name);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
finally {
|
|
185
|
+
try {
|
|
186
|
+
db?.close();
|
|
187
|
+
}
|
|
188
|
+
catch { /* already closed */ }
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Safety: an empty live set would mark every artifact orphaned. Refuse rather
|
|
192
|
+
// than risk nuking a valid (but momentarily empty-looking) data dir.
|
|
193
|
+
if (live.size === 0) {
|
|
194
|
+
die("prune: registry lists 0 repos — aborting (refusing to treat all artifacts as orphans).");
|
|
195
|
+
}
|
|
196
|
+
// Commit every registry rescue/removal before deleting derived files. If the
|
|
197
|
+
// atomic registry write fails, prune exits with all artifacts still intact.
|
|
198
|
+
if (!dryRun && stale.length > 0) {
|
|
199
|
+
const staleNames = new Set(stale
|
|
200
|
+
.filter((entry) => !rescuedNames.has(entry.name) && !protectedNames.has(entry.name))
|
|
201
|
+
.map((entry) => entry.name));
|
|
202
|
+
const effectiveRepoCount = Object.keys(reg.repos ?? {})
|
|
203
|
+
.filter((name) => !staleNames.has(name)).length;
|
|
204
|
+
if (effectiveRepoCount === 0) {
|
|
205
|
+
die("prune: every registry entry is stale — aborting before registry or artifacts change.");
|
|
206
|
+
}
|
|
207
|
+
for (const s of stale) {
|
|
208
|
+
if (!rescuedNames.has(s.name) && !protectedNames.has(s.name)) {
|
|
209
|
+
if (reg.repos && s.name in reg.repos) {
|
|
210
|
+
delete reg.repos[s.name];
|
|
211
|
+
registryDirty = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
if (registryDirty) {
|
|
217
|
+
reg.updated_at = Date.now();
|
|
218
|
+
const { saveRegistryUnderLock } = await import("../storage/registry.js");
|
|
219
|
+
await saveRegistryUnderLock(registryPath, reg);
|
|
220
|
+
}
|
|
221
|
+
// Suffix list lives with the helpers that build these names, so a new artifact kind
|
|
222
|
+
// cannot quietly become unreclaimable garbage — see ARTIFACT_SUFFIXES.
|
|
223
|
+
const { artifactPattern } = await import("../storage/_shared.js");
|
|
224
|
+
const re = artifactPattern();
|
|
225
|
+
const registryProtectsHash = (hash) => {
|
|
226
|
+
try {
|
|
227
|
+
const fresh = JSON.parse(readFileSync(registryPath, "utf-8"));
|
|
228
|
+
return Object.values(fresh.repos ?? {}).some((entry) => {
|
|
229
|
+
const file = entry.index_path?.split("/").pop() ?? "";
|
|
230
|
+
return /^([0-9a-f]{8,})\./.exec(file)?.[1] === hash;
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
// An inconclusive registry read must protect data, not authorize deletion.
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
let files = 0, bytes = 0, kept = 0;
|
|
239
|
+
for (const name of readdirSync(dataDir)) {
|
|
240
|
+
const m = re.exec(name);
|
|
241
|
+
if (!m)
|
|
242
|
+
continue;
|
|
243
|
+
// A stale entry removed during THIS run gets one full run of retention.
|
|
244
|
+
// The next prune re-evaluates its database metadata before collecting it.
|
|
245
|
+
if (live.has(m[1]) || staleHashes.has(m[1])) {
|
|
246
|
+
kept++;
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
const full = join(dataDir, name);
|
|
250
|
+
try {
|
|
251
|
+
const fileStat = statSync(full);
|
|
252
|
+
// A fresh artifact may belong to an index operation that has not yet
|
|
253
|
+
// committed its registry entry. Delay collection for one run and also
|
|
254
|
+
// re-read registry immediately before every destructive unlink.
|
|
255
|
+
const ageMs = Date.now() - fileStat.mtimeMs;
|
|
256
|
+
if (ageMs < pruneGraceMs || registryProtectsHash(m[1])) {
|
|
257
|
+
kept++;
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
if (!dryRun)
|
|
261
|
+
unlinkSync(full);
|
|
262
|
+
bytes += fileStat.size;
|
|
263
|
+
files++;
|
|
264
|
+
}
|
|
265
|
+
catch { /* skip unreadable/already-gone */ }
|
|
266
|
+
}
|
|
267
|
+
// Shared-cache versions have no repository hash prefix, so the artifact
|
|
268
|
+
// sweep cannot discover superseded formats. Keep the current version and
|
|
269
|
+
// reclaim only older derived cache files.
|
|
270
|
+
const { currentSharedCacheFilename } = await import("../storage/shared-embedding-cache.js");
|
|
271
|
+
const currentShared = currentSharedCacheFilename();
|
|
272
|
+
const currentVersion = Number(/^shared-embeddings\.v(\d+)\.bin$/.exec(currentShared)?.[1]);
|
|
273
|
+
for (const name of readdirSync(dataDir)) {
|
|
274
|
+
const match = /^shared-embeddings\.v(\d+)\.(?:bin|ndjson)$/.exec(name);
|
|
275
|
+
if (!match?.[1] || name === currentShared || !Number.isFinite(currentVersion) ||
|
|
276
|
+
Number(match[1]) >= currentVersion)
|
|
277
|
+
continue;
|
|
278
|
+
const full = join(dataDir, name);
|
|
279
|
+
try {
|
|
280
|
+
const fileStat = statSync(full);
|
|
281
|
+
const ageMs = Date.now() - fileStat.mtimeMs;
|
|
282
|
+
if (ageMs < pruneGraceMs)
|
|
283
|
+
continue;
|
|
284
|
+
if (!dryRun)
|
|
285
|
+
unlinkSync(full);
|
|
286
|
+
bytes += fileStat.size;
|
|
287
|
+
files++;
|
|
288
|
+
}
|
|
289
|
+
catch { /* skip unreadable/already-gone */ }
|
|
290
|
+
}
|
|
291
|
+
output({
|
|
292
|
+
indeterminate_databases: indeterminate.length,
|
|
293
|
+
indeterminate_examples: indeterminate.slice(0, 5),
|
|
294
|
+
rescued_repos: rescued.length,
|
|
295
|
+
rescued_examples: rescued.slice(0, 5),
|
|
296
|
+
stale_repos: stale.length,
|
|
297
|
+
stale_examples: stale.slice(0, 5).map((s) => s.name),
|
|
298
|
+
pruned: !dryRun,
|
|
299
|
+
dry_run: dryRun,
|
|
300
|
+
orphan_files: files,
|
|
301
|
+
freed_gb: +(bytes / 1e9).toFixed(2),
|
|
302
|
+
kept_live_artifacts: kept,
|
|
303
|
+
data_dir: dataDir,
|
|
304
|
+
}, flags);
|
|
305
|
+
}
|
|
306
|
+
function listProcesses() {
|
|
307
|
+
const raw = execFileSync("ps", ["-axo", "pid=,ppid=,rss=,command="], {
|
|
308
|
+
encoding: "utf-8",
|
|
309
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
310
|
+
});
|
|
311
|
+
const rows = [];
|
|
312
|
+
for (const line of raw.split("\n")) {
|
|
313
|
+
const match = line.match(/^\s*(\d+)\s+(\d+)\s+(\d+)\s+(.+)$/);
|
|
314
|
+
if (!match)
|
|
315
|
+
continue;
|
|
316
|
+
rows.push({
|
|
317
|
+
pid: Number(match[1]),
|
|
318
|
+
ppid: Number(match[2]),
|
|
319
|
+
rssKb: Number(match[3]),
|
|
320
|
+
command: match[4] ?? "",
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
return rows;
|
|
324
|
+
}
|
|
325
|
+
function classifyCleanupTarget(command, includeGlobalCodesift) {
|
|
326
|
+
const node = String.raw `(?:node|\S*/node)`;
|
|
327
|
+
const npm = String.raw `(?:npm|\S*/npm)`;
|
|
328
|
+
if (command === "" || /(?:^|\s)codesift\s+cleanup-processes(?:\s|$)/.test(command))
|
|
329
|
+
return null;
|
|
330
|
+
if (new RegExp(`^${node}\\s+/Users/\\S+/DEV/codesift-mcp/dist/server\\.js(?:\\s|$)`).test(command)) {
|
|
331
|
+
return "legacy-dev-dist-server";
|
|
332
|
+
}
|
|
333
|
+
if (new RegExp(`^${npm}\\s+exec\\s+chrome-devtools-mcp(?:@\\S+)?(?:\\s|$)`).test(command) ||
|
|
334
|
+
/^(?:\S*\/)?chrome-devtools-mcp(?:\s|$)/.test(command)) {
|
|
335
|
+
return "chrome-devtools-mcp";
|
|
336
|
+
}
|
|
337
|
+
if (new RegExp(`^${node}\\s+\\S*chrome-devtools-mcp/\\S*/watchdog/main\\.js(?:\\s|$)`).test(command)) {
|
|
338
|
+
return "chrome-devtools-watchdog";
|
|
339
|
+
}
|
|
340
|
+
if (new RegExp(`^${npm}\\s+exec\\s+@sentry/mcp-server(?:@\\S+)?(?:\\s|$)`).test(command)) {
|
|
341
|
+
return "sentry-mcp";
|
|
342
|
+
}
|
|
343
|
+
if (new RegExp(`^${npm}\\s+exec\\s+@playwright/mcp(?:@\\S+)?(?:\\s|$)`).test(command)) {
|
|
344
|
+
return "playwright-mcp";
|
|
345
|
+
}
|
|
346
|
+
if (includeGlobalCodesift &&
|
|
347
|
+
new RegExp(`^(?:${node}\\s+)?/Users/\\S+/.npm-global/bin/codesift-mcp(?:\\s|$)`).test(command)) {
|
|
348
|
+
return "global-codesift-mcp";
|
|
349
|
+
}
|
|
350
|
+
return null;
|
|
351
|
+
}
|
|
352
|
+
function currentProcessCommand(pid) {
|
|
353
|
+
try {
|
|
354
|
+
return execFileSync("ps", ["-p", String(pid), "-o", "command="], {
|
|
355
|
+
encoding: "utf-8",
|
|
356
|
+
maxBuffer: 1024 * 1024,
|
|
357
|
+
}).trim() || null;
|
|
358
|
+
}
|
|
359
|
+
catch {
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
async function handleCleanupProcesses(_args, flags) {
|
|
364
|
+
const dryRun = getBoolFlag(flags, "dry-run") === true;
|
|
365
|
+
const includeGlobalCodesift = getBoolFlag(flags, "global-codesift") === true;
|
|
366
|
+
const rows = listProcesses();
|
|
367
|
+
const targets = rows
|
|
368
|
+
.map((row) => ({ ...row, reason: classifyCleanupTarget(row.command, includeGlobalCodesift) }))
|
|
369
|
+
.filter((row) => row.reason !== null);
|
|
370
|
+
const beforeMb = targets.reduce((sum, row) => sum + row.rssKb, 0) / 1024;
|
|
371
|
+
const killed = [];
|
|
372
|
+
const failed = [];
|
|
373
|
+
if (!dryRun) {
|
|
374
|
+
for (const row of targets) {
|
|
375
|
+
try {
|
|
376
|
+
const current = currentProcessCommand(row.pid);
|
|
377
|
+
if (current !== row.command || classifyCleanupTarget(current, includeGlobalCodesift) !== row.reason) {
|
|
378
|
+
throw new Error("process identity changed before kill");
|
|
379
|
+
}
|
|
380
|
+
process.kill(row.pid, "SIGKILL");
|
|
381
|
+
killed.push(row);
|
|
382
|
+
}
|
|
383
|
+
catch (err) {
|
|
384
|
+
failed.push({ ...row, error: err instanceof Error ? err.message : String(err) });
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
const byReason = {};
|
|
389
|
+
for (const row of targets) {
|
|
390
|
+
byReason[row.reason] ??= { count: 0, rss_mb: 0 };
|
|
391
|
+
byReason[row.reason].count += 1;
|
|
392
|
+
byReason[row.reason].rss_mb += row.rssKb / 1024;
|
|
393
|
+
}
|
|
394
|
+
for (const value of Object.values(byReason)) {
|
|
395
|
+
value.rss_mb = Number(value.rss_mb.toFixed(1));
|
|
396
|
+
}
|
|
397
|
+
output({
|
|
398
|
+
dry_run: dryRun,
|
|
399
|
+
include_global_codesift: includeGlobalCodesift,
|
|
400
|
+
matched: targets.length,
|
|
401
|
+
killed: dryRun ? 0 : killed.length,
|
|
402
|
+
failed: failed.length,
|
|
403
|
+
matched_rss_mb: Number(beforeMb.toFixed(1)),
|
|
404
|
+
by_reason: byReason,
|
|
405
|
+
failed_pids: failed.map((row) => ({ pid: row.pid, reason: row.reason, error: row.error })),
|
|
406
|
+
}, flags);
|
|
407
|
+
}
|
|
408
|
+
export { handlePrune, handleCleanupProcesses };
|
|
409
|
+
//# sourceMappingURL=commands-maintenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands-maintenance.js","sourceRoot":"","sources":["../../src/cli/commands-maintenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Flags } from "./args.js";
|
|
2
|
+
declare function handleSearch(args: string[], flags: Flags): Promise<void>;
|
|
3
|
+
declare function handleSymbols(args: string[], flags: Flags): Promise<void>;
|
|
4
|
+
declare function handleTree(args: string[], flags: Flags): Promise<void>;
|
|
5
|
+
declare function handleOutline(args: string[], flags: Flags): Promise<void>;
|
|
6
|
+
declare function handleRepoOutline(args: string[], flags: Flags): Promise<void>;
|
|
7
|
+
declare function handleSymbol(args: string[], flags: Flags): Promise<void>;
|
|
8
|
+
declare function handleSymbolsBatch(args: string[], flags: Flags): Promise<void>;
|
|
9
|
+
declare function handleFind(args: string[], flags: Flags): Promise<void>;
|
|
10
|
+
declare function handleRefs(args: string[], flags: Flags): Promise<void>;
|
|
11
|
+
declare function handleTrace(args: string[], flags: Flags): Promise<void>;
|
|
12
|
+
declare function handleImpact(args: string[], flags: Flags): Promise<void>;
|
|
13
|
+
declare function handleContext(args: string[], flags: Flags): Promise<void>;
|
|
14
|
+
declare function handleKnowledgeMap(args: string[], flags: Flags): Promise<void>;
|
|
15
|
+
declare function handleDiff(args: string[], flags: Flags): Promise<void>;
|
|
16
|
+
declare function handleChanged(args: string[], flags: Flags): Promise<void>;
|
|
17
|
+
declare function handleRetrieve(args: string[], flags: Flags): Promise<void>;
|
|
18
|
+
declare function handleStats(_args: string[], flags: Flags): Promise<void>;
|
|
19
|
+
declare function handleGenerateClaudeMd(args: string[], flags: Flags): Promise<void>;
|
|
20
|
+
export { handleSearch, handleSymbols, handleTree, handleOutline, handleRepoOutline, handleSymbol, handleSymbolsBatch, handleFind, handleRefs, handleTrace, handleImpact, handleContext, handleKnowledgeMap, handleDiff, handleChanged, handleRetrieve, handleStats, handleGenerateClaudeMd, };
|
|
21
|
+
//# sourceMappingURL=commands-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands-query.d.ts","sourceRoot":"","sources":["../../src/cli/commands-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAoBvC,iBAAe,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAavE;AAED,iBAAe,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBxE;AAMD,iBAAe,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAYrE;AAED,iBAAe,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED,iBAAe,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5E;AAMD,iBAAe,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvE;AAED,iBAAe,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAU7E;AAED,iBAAe,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrE;AAED,iBAAe,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrE;AAyBD,iBAAe,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBtE;AAED,iBAAe,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvE;AAMD,iBAAe,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED,iBAAe,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;AAMD,iBAAe,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAOrE;AAED,iBAAe,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AA0CD,iBAAe,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAOzE;AAED,iBAAe,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvE;AAED,iBAAe,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjF;AAED,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,GACvB,CAAC"}
|