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
|
@@ -4,7 +4,7 @@ import { startWatcher, stopWatcher } from "../../storage/watcher.js";
|
|
|
4
4
|
import { loadConfig } from "../../config.js";
|
|
5
5
|
import { onFileChanged as scanOnChanged, onFileDeleted as scanOnDeleted, scanFileForSecrets } from "../secret-scan-shared.js";
|
|
6
6
|
import { parseOneFile } from "./parse.js";
|
|
7
|
-
import { activeWatchers, bm25Indexes, codeIndexes,
|
|
7
|
+
import { activeWatchers, bm25Indexes, codeIndexes, invalidateEmbeddingCaches } from "./state.js";
|
|
8
8
|
const DEFAULT_MAX_WATCHERS = 8;
|
|
9
9
|
function getMaxWatchers() {
|
|
10
10
|
const env = process.env.CODESIFT_MAX_WATCHERS;
|
|
@@ -105,7 +105,7 @@ async function handleFileChange(repoRoot, repoName, indexPath, relativeFile) {
|
|
|
105
105
|
// Invalidate caches — lazy rebuild on next query via getBM25Index()
|
|
106
106
|
bm25Indexes.delete(repoName);
|
|
107
107
|
codeIndexes.delete(repoName);
|
|
108
|
-
|
|
108
|
+
invalidateEmbeddingCaches(repoName);
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
111
|
* Handle a file deletion event from the watcher.
|
|
@@ -116,7 +116,7 @@ async function handleFileDelete(repoRoot, repoName, indexPath, relativeFile) {
|
|
|
116
116
|
// Invalidate caches — lazy rebuild on next query via getBM25Index()
|
|
117
117
|
bm25Indexes.delete(repoName);
|
|
118
118
|
codeIndexes.delete(repoName);
|
|
119
|
-
|
|
119
|
+
invalidateEmbeddingCaches(repoName);
|
|
120
120
|
scanOnDeleted(repoName, relativeFile);
|
|
121
121
|
// Invalidate Hono model cache
|
|
122
122
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/tools/index-tools/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,aAAa,IAAI,aAAa,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../src/tools/index-tools/watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export interface SeedResult {
|
|
2
|
+
seeded: boolean;
|
|
3
|
+
/** Why the seed was declined. Present exactly when `seeded` is false. */
|
|
4
|
+
reason?: string;
|
|
5
|
+
parent_repo?: string;
|
|
6
|
+
files?: number;
|
|
7
|
+
symbols?: number;
|
|
8
|
+
/** The commit the seeded content actually describes — the parent's, not the worktree's. */
|
|
9
|
+
seeded_at_commit?: string | null;
|
|
10
|
+
elapsed_ms?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Seed `worktreeRoot`'s index from its parent checkout's, if that is possible and safe.
|
|
14
|
+
*
|
|
15
|
+
* Every refusal returns `{seeded: false, reason}` rather than throwing: the caller's fallback is a
|
|
16
|
+
* full index, which is slower but always correct. A seed that is wrong is far worse than a seed
|
|
17
|
+
* that did not happen — the failure mode would be an index that looks complete and describes
|
|
18
|
+
* another tree, which is exactly the confusion this feature exists to end.
|
|
19
|
+
*/
|
|
20
|
+
export declare function seedWorktreeIndexFromParent(worktreeRoot: string, worktreeName: string, worktreeIndexPath: string): Promise<SeedResult>;
|
|
21
|
+
/** Size of the parent index, for deciding whether a seed is even worth reporting. */
|
|
22
|
+
export declare function parentIndexBytes(parentDbPath: string): number;
|
|
23
|
+
export interface CatchUpResult {
|
|
24
|
+
caught_up: boolean;
|
|
25
|
+
reason?: string;
|
|
26
|
+
updated?: number;
|
|
27
|
+
removed?: number;
|
|
28
|
+
changed_total?: number;
|
|
29
|
+
head?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Bring a freshly seeded worktree index from the parent's commit to this tree's actual state.
|
|
33
|
+
*
|
|
34
|
+
* Covers three things a plain `git diff <a>..<b>` does not, each of which would otherwise leave the
|
|
35
|
+
* index quietly describing the parent:
|
|
36
|
+
*
|
|
37
|
+
* - **Deletions.** `--diff-filter=ACMR` excludes them by design, so a file removed on this branch
|
|
38
|
+
* would keep its parent's symbols forever — searchable, and gone from disk.
|
|
39
|
+
* - **Uncommitted work.** A worktree is usually mid-change; its HEAD is not what is on disk.
|
|
40
|
+
* - **Untracked files.** New files are the single most likely thing an agent wants to find in the
|
|
41
|
+
* tree it is working in, and they appear in no commit diff at all.
|
|
42
|
+
*/
|
|
43
|
+
export declare function catchUpSeededWorktree(worktreeRoot: string, repoName: string, fromCommit: string | null): Promise<CatchUpResult>;
|
|
44
|
+
//# sourceMappingURL=worktree-seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-seed.d.ts","sourceRoot":"","sources":["../../../src/tools/index-tools/worktree-seed.ts"],"names":[],"mappings":"AAuCA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAOD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,UAAU,CAAC,CA8HrB;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM7D;AAcD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAUD;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,aAAa,CAAC,CAoFxB"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a linked worktree's index by copying its parent checkout's index, instead of walking and
|
|
3
|
+
* parsing the tree from scratch.
|
|
4
|
+
*
|
|
5
|
+
* A linked worktree is nearly the same content as the checkout it came from. Measured on
|
|
6
|
+
* tgm-survey-platform: the parent index holds 14,891 files, one worktree holds 14,405, and they
|
|
7
|
+
* differ by **eleven** — 0.08%. That repo has 16 worktrees. Parsing 14,405 files to discover 11
|
|
8
|
+
* differences is the whole cost of indexing paid to learn almost nothing.
|
|
9
|
+
*
|
|
10
|
+
* The copy itself is cheap and the numbers are not close: `VACUUM INTO` moved 50,000 rows in 10 ms
|
|
11
|
+
* and the id rewrite took 30 ms, against minutes for a full parse of a repo that size.
|
|
12
|
+
*
|
|
13
|
+
* ---------------------------------------------------------------------------
|
|
14
|
+
* Two steps, and the second is why the first is safe
|
|
15
|
+
* ---------------------------------------------------------------------------
|
|
16
|
+
*
|
|
17
|
+
* `seedWorktreeIndexFromParent` copies, and records the PARENT's commit — deliberately, because
|
|
18
|
+
* that is the commit the copied content actually describes. Claiming the worktree's HEAD would make
|
|
19
|
+
* every later diff start from a state the index does not match.
|
|
20
|
+
*
|
|
21
|
+
* `catchUpSeededWorktree` then walks that gap: committed divergence, uncommitted work, untracked
|
|
22
|
+
* files and deletions, applied file by file.
|
|
23
|
+
*
|
|
24
|
+
* The first draft delegated the second step to `ensureIndexFresh`, which already diffs from
|
|
25
|
+
* `last_git_commit` — appealingly, since it avoids a second differ. It was wrong, and measurably:
|
|
26
|
+
* that function falls back to a FULL index above `MAX_DIFF_FILES` (50), a threshold weighed against
|
|
27
|
+
* a cheap incremental pass, not against parsing 14,226 files. A worktree that differed by 65 files
|
|
28
|
+
* therefore took ten minutes instead of milliseconds — the whole feature undone by a constant
|
|
29
|
+
* borrowed from a different question. It also excludes deletions by design (`--diff-filter=ACMR`)
|
|
30
|
+
* and never looks at untracked files, both of which matter far more here than in its own use.
|
|
31
|
+
*/
|
|
32
|
+
import { existsSync, statSync } from "node:fs";
|
|
33
|
+
import { execFileSync } from "node:child_process";
|
|
34
|
+
import { join } from "node:path";
|
|
35
|
+
import { rename, unlink } from "node:fs/promises";
|
|
36
|
+
import { getRepo, registerRepo, getRepoName } from "../../storage/registry.js";
|
|
37
|
+
import { findWorkingTree, canonicalPath } from "../../utils/worktree.js";
|
|
38
|
+
import { loadConfig } from "../../config.js";
|
|
39
|
+
/** SQLite string literal. Double-quoting would make the path an IDENTIFIER and fail. */
|
|
40
|
+
function sqlLiteral(value) {
|
|
41
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Seed `worktreeRoot`'s index from its parent checkout's, if that is possible and safe.
|
|
45
|
+
*
|
|
46
|
+
* Every refusal returns `{seeded: false, reason}` rather than throwing: the caller's fallback is a
|
|
47
|
+
* full index, which is slower but always correct. A seed that is wrong is far worse than a seed
|
|
48
|
+
* that did not happen — the failure mode would be an index that looks complete and describes
|
|
49
|
+
* another tree, which is exactly the confusion this feature exists to end.
|
|
50
|
+
*/
|
|
51
|
+
export async function seedWorktreeIndexFromParent(worktreeRoot, worktreeName, worktreeIndexPath) {
|
|
52
|
+
const started = Date.now();
|
|
53
|
+
const tree = findWorkingTree(worktreeRoot);
|
|
54
|
+
if (!tree?.linked || !tree.mainRoot) {
|
|
55
|
+
return { seeded: false, reason: "not a linked worktree" };
|
|
56
|
+
}
|
|
57
|
+
if (!existsSync(tree.mainRoot)) {
|
|
58
|
+
return { seeded: false, reason: `parent checkout is gone (${tree.mainRoot})` };
|
|
59
|
+
}
|
|
60
|
+
const config = loadConfig();
|
|
61
|
+
const parentName = getRepoName(tree.mainRoot);
|
|
62
|
+
const parent = await getRepo(config.registryPath, parentName);
|
|
63
|
+
if (!parent) {
|
|
64
|
+
return { seeded: false, reason: `parent ${parentName} is not indexed` };
|
|
65
|
+
}
|
|
66
|
+
// Compare CANONICAL paths. `findWorkingTree` resolves symlinks and the registry stores whatever
|
|
67
|
+
// the caller passed, so on macOS a repo under /var (a symlink to /private/var) compares unequal to
|
|
68
|
+
// itself and every such worktree would silently fall back to a full parse. Caught by a test whose
|
|
69
|
+
// temp dirs live exactly there.
|
|
70
|
+
if (canonicalPath(parent.root) !== canonicalPath(tree.mainRoot)) {
|
|
71
|
+
// The registry entry under that name describes a different directory. Seeding from it would
|
|
72
|
+
// copy an index of some other tree — the precise error this whole feature is meant to prevent.
|
|
73
|
+
return {
|
|
74
|
+
seeded: false,
|
|
75
|
+
reason: `parent entry ${parentName} points at ${parent.root}, not ${tree.mainRoot}`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const { sqlitePathFor } = await import("../../storage/index-store.js");
|
|
79
|
+
const parentDb = sqlitePathFor(parent.index_path);
|
|
80
|
+
const targetDb = sqlitePathFor(worktreeIndexPath);
|
|
81
|
+
if (!existsSync(parentDb)) {
|
|
82
|
+
return { seeded: false, reason: "parent index is not in the SQLite backend" };
|
|
83
|
+
}
|
|
84
|
+
const { isSqliteAvailable } = await import("../../storage/sqlite/runtime.js");
|
|
85
|
+
if (!(await isSqliteAvailable())) {
|
|
86
|
+
return { seeded: false, reason: "node:sqlite unavailable (Node < 22.5)" };
|
|
87
|
+
}
|
|
88
|
+
// Write to a temp sibling and rename, so an interrupted seed never leaves a half-copied database
|
|
89
|
+
// sitting at the path the registry is about to point at.
|
|
90
|
+
const tempDb = `${targetDb}.seeding.${process.pid}`;
|
|
91
|
+
try {
|
|
92
|
+
if (existsSync(tempDb))
|
|
93
|
+
await unlink(tempDb);
|
|
94
|
+
const { DatabaseSync } = await import("node:sqlite");
|
|
95
|
+
// Read-only source: this runs while the daemon and other agents may hold the parent open.
|
|
96
|
+
// VACUUM INTO takes a consistent snapshot and refuses to run inside a transaction, which is
|
|
97
|
+
// what makes it safe to point at a database somebody else is writing.
|
|
98
|
+
const source = new DatabaseSync(`file:${parentDb}?mode=ro`, { open: true });
|
|
99
|
+
try {
|
|
100
|
+
source.exec(`VACUUM INTO ${sqlLiteral(tempDb)}`);
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
source.close();
|
|
104
|
+
}
|
|
105
|
+
const copy = new DatabaseSync(tempDb, { open: true });
|
|
106
|
+
let files = 0;
|
|
107
|
+
let symbols = 0;
|
|
108
|
+
try {
|
|
109
|
+
// A symbol id is `<repo>:<file>:<name>:<line>` (parser/symbol-utils.ts), so every id in the
|
|
110
|
+
// copy names the PARENT repo. Rewriting the prefix by length is exact where a `replace()`
|
|
111
|
+
// would not be: a file path may legitimately contain the parent's name as a substring.
|
|
112
|
+
//
|
|
113
|
+
// Safe as a bulk UPDATE because v2 dropped the PRIMARY KEY on `symbols.id` — ids are not
|
|
114
|
+
// unique (TypeScript's type and value namespaces put two on one line), so there is no
|
|
115
|
+
// conflict to resolve.
|
|
116
|
+
const oldPrefix = `${parent.name}:`;
|
|
117
|
+
const newPrefix = `${worktreeName}:`;
|
|
118
|
+
copy.exec("BEGIN IMMEDIATE");
|
|
119
|
+
copy.prepare("UPDATE symbols SET id = ? || substr(id, ?)").run(newPrefix, oldPrefix.length + 1);
|
|
120
|
+
copy.prepare("INSERT INTO meta (key, value) VALUES ('repo', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value")
|
|
121
|
+
.run(worktreeName);
|
|
122
|
+
copy.prepare("INSERT INTO meta (key, value) VALUES ('root', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value")
|
|
123
|
+
.run(worktreeRoot);
|
|
124
|
+
copy.prepare("INSERT INTO meta (key, value) VALUES ('updated_at', ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value")
|
|
125
|
+
.run(String(Date.now()));
|
|
126
|
+
copy.exec("COMMIT");
|
|
127
|
+
files = copy.prepare("SELECT COUNT(*) AS c FROM files").get().c;
|
|
128
|
+
symbols = copy.prepare("SELECT COUNT(*) AS c FROM symbols").get().c;
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
try {
|
|
132
|
+
copy.exec("ROLLBACK");
|
|
133
|
+
}
|
|
134
|
+
catch { /* not in a transaction */ }
|
|
135
|
+
throw err;
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
copy.close();
|
|
139
|
+
}
|
|
140
|
+
if (files === 0) {
|
|
141
|
+
// An empty parent index is not worth seeding from, and would look like a successful index of
|
|
142
|
+
// a repo with no files — indistinguishable from a walk that found nothing.
|
|
143
|
+
await unlink(tempDb).catch(() => undefined);
|
|
144
|
+
return { seeded: false, reason: "parent index is empty" };
|
|
145
|
+
}
|
|
146
|
+
await rename(tempDb, targetDb);
|
|
147
|
+
// `last_git_commit` is the parent's, deliberately: it is the commit the copied content
|
|
148
|
+
// describes. ensureIndexFresh diffs from here to the worktree's HEAD.
|
|
149
|
+
await registerRepo(config.registryPath, {
|
|
150
|
+
name: worktreeName,
|
|
151
|
+
root: worktreeRoot,
|
|
152
|
+
index_path: worktreeIndexPath,
|
|
153
|
+
file_count: files,
|
|
154
|
+
symbol_count: symbols,
|
|
155
|
+
last_git_commit: parent.last_git_commit ?? null,
|
|
156
|
+
indexed_at: Date.now(),
|
|
157
|
+
});
|
|
158
|
+
return {
|
|
159
|
+
seeded: true,
|
|
160
|
+
parent_repo: parent.name,
|
|
161
|
+
files,
|
|
162
|
+
symbols,
|
|
163
|
+
seeded_at_commit: parent.last_git_commit ?? null,
|
|
164
|
+
elapsed_ms: Date.now() - started,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
await unlink(tempDb).catch(() => undefined);
|
|
169
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
170
|
+
return { seeded: false, reason: `copy failed: ${message}` };
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/** Size of the parent index, for deciding whether a seed is even worth reporting. */
|
|
174
|
+
export function parentIndexBytes(parentDbPath) {
|
|
175
|
+
try {
|
|
176
|
+
return statSync(parentDbPath).size;
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return 0;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Above this many differing files, re-parsing the whole tree is genuinely the better trade and the
|
|
184
|
+
* caller should fall back.
|
|
185
|
+
*
|
|
186
|
+
* Deliberately far above `ensureIndexFresh`'s `MAX_DIFF_FILES` of 50, because the alternative is
|
|
187
|
+
* different. There, 50 is weighed against a cheap incremental pass over an index that is already
|
|
188
|
+
* correct. Here it is weighed against parsing 14,226 files from scratch — measured: delegating a
|
|
189
|
+
* 65-file catch-up to that 50-file threshold turned a seed that took milliseconds into a ten-minute
|
|
190
|
+
* full index, which is the entire feature undone by a constant borrowed from a different question.
|
|
191
|
+
*/
|
|
192
|
+
const MAX_CATCHUP_FILES = 3000;
|
|
193
|
+
function git(args, cwd) {
|
|
194
|
+
try {
|
|
195
|
+
return execFileSync("git", args, { cwd, encoding: "utf-8", timeout: 15_000 });
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Bring a freshly seeded worktree index from the parent's commit to this tree's actual state.
|
|
203
|
+
*
|
|
204
|
+
* Covers three things a plain `git diff <a>..<b>` does not, each of which would otherwise leave the
|
|
205
|
+
* index quietly describing the parent:
|
|
206
|
+
*
|
|
207
|
+
* - **Deletions.** `--diff-filter=ACMR` excludes them by design, so a file removed on this branch
|
|
208
|
+
* would keep its parent's symbols forever — searchable, and gone from disk.
|
|
209
|
+
* - **Uncommitted work.** A worktree is usually mid-change; its HEAD is not what is on disk.
|
|
210
|
+
* - **Untracked files.** New files are the single most likely thing an agent wants to find in the
|
|
211
|
+
* tree it is working in, and they appear in no commit diff at all.
|
|
212
|
+
*/
|
|
213
|
+
export async function catchUpSeededWorktree(worktreeRoot, repoName, fromCommit) {
|
|
214
|
+
const head = git(["rev-parse", "HEAD"], worktreeRoot)?.trim();
|
|
215
|
+
if (!head)
|
|
216
|
+
return { caught_up: false, reason: "not a git checkout" };
|
|
217
|
+
if (!fromCommit)
|
|
218
|
+
return { caught_up: false, reason: "parent index records no commit" };
|
|
219
|
+
const changed = new Set();
|
|
220
|
+
const removed = new Set();
|
|
221
|
+
if (fromCommit !== head) {
|
|
222
|
+
const diff = git(["diff", "--name-status", `${fromCommit}..${head}`], worktreeRoot);
|
|
223
|
+
if (diff === null) {
|
|
224
|
+
// The parent's commit is unreachable from here — a rebase, a squash, or a worktree on an
|
|
225
|
+
// unrelated branch. Nothing can be diffed against it, so the seed cannot be trusted to be a
|
|
226
|
+
// near-match and the caller must do the real work.
|
|
227
|
+
return { caught_up: false, reason: `commit ${fromCommit.slice(0, 12)} unreachable from HEAD` };
|
|
228
|
+
}
|
|
229
|
+
for (const line of diff.split("\n")) {
|
|
230
|
+
if (!line.trim())
|
|
231
|
+
continue;
|
|
232
|
+
const [status, ...paths] = line.split("\t");
|
|
233
|
+
const target = paths[paths.length - 1];
|
|
234
|
+
if (!target || !status)
|
|
235
|
+
continue;
|
|
236
|
+
if (status.startsWith("D"))
|
|
237
|
+
removed.add(target);
|
|
238
|
+
else
|
|
239
|
+
changed.add(target);
|
|
240
|
+
// A rename is a delete plus an add; the old path must leave the index.
|
|
241
|
+
if (status.startsWith("R") && paths.length > 1 && paths[0])
|
|
242
|
+
removed.add(paths[0]);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// Working tree on top of HEAD: modified, staged, and untracked alike.
|
|
246
|
+
const status = git(["status", "--porcelain", "--untracked-files=all"], worktreeRoot);
|
|
247
|
+
if (status !== null) {
|
|
248
|
+
for (const line of status.split("\n")) {
|
|
249
|
+
if (line.length < 4)
|
|
250
|
+
continue;
|
|
251
|
+
const code = line.slice(0, 2);
|
|
252
|
+
const path = line.slice(3).trim();
|
|
253
|
+
if (!path)
|
|
254
|
+
continue;
|
|
255
|
+
if (code.includes("D"))
|
|
256
|
+
removed.add(path);
|
|
257
|
+
else
|
|
258
|
+
changed.add(path);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
for (const path of removed)
|
|
262
|
+
changed.delete(path);
|
|
263
|
+
const total = changed.size + removed.size;
|
|
264
|
+
if (total > MAX_CATCHUP_FILES) {
|
|
265
|
+
return { caught_up: false, reason: `${total} files differ (> ${MAX_CATCHUP_FILES})`, changed_total: total };
|
|
266
|
+
}
|
|
267
|
+
const { indexFile } = await import("./file-indexer.js");
|
|
268
|
+
const { removeFileFromIndex } = await import("../../storage/index-store.js");
|
|
269
|
+
const { getRepo: readRepo } = await import("../../storage/registry.js");
|
|
270
|
+
const config = loadConfig();
|
|
271
|
+
const meta = await readRepo(config.registryPath, repoName);
|
|
272
|
+
let updated = 0;
|
|
273
|
+
for (const rel of changed) {
|
|
274
|
+
try {
|
|
275
|
+
await indexFile(join(worktreeRoot, rel));
|
|
276
|
+
updated++;
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
// Unparseable, binary, filtered by the walker's rules, or deleted between the diff and now.
|
|
280
|
+
// Not an error: the file simply has no place in the index.
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
let removedCount = 0;
|
|
284
|
+
if (meta) {
|
|
285
|
+
for (const rel of removed) {
|
|
286
|
+
try {
|
|
287
|
+
await removeFileFromIndex(meta.index_path, rel);
|
|
288
|
+
removedCount++;
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
// Not in the index to begin with.
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
const { updateRepoMeta } = await import("../../storage/registry.js");
|
|
296
|
+
await updateRepoMeta(config.registryPath, repoName, {
|
|
297
|
+
last_git_commit: head,
|
|
298
|
+
updated_at: Date.now(),
|
|
299
|
+
});
|
|
300
|
+
return { caught_up: true, updated, removed: removedCount, changed_total: total, head };
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=worktree-seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-seed.js","sourceRoot":"","sources":["../../../src/tools/index-tools/worktree-seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-tools.d.ts","sourceRoot":"","sources":["../../src/tools/index-tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,oCAAoC,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC5H,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,kCAAkC,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACtR,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index-tools.d.ts","sourceRoot":"","sources":["../../src/tools/index-tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,oCAAoC,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC5H,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,kCAAkC,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACtR,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAczK,OAAO,EACL,WAAW,EACX,oCAAoC,EACpC,SAAS,EACT,+BAA+B,EAC/B,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,+BAA+B,EAC/B,6BAA6B,EAC7B,kCAAkC,EAClC,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,GAC3B,CAAC;AACF,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;AAEnE,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACtC,GACA,OAAO,CAAC,iBAAiB,CAAC,CAgE5B;AAED;;;;;;;;;;GAUG;AAEH;;;;mEAImE;AACnE,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAU/D"}
|
|
@@ -9,7 +9,7 @@ import { indexFile, clearLastIndexedStateForTesting, ensureIndexFresh, resetFres
|
|
|
9
9
|
import { listAllRepos, invalidateCache, getBM25Index, getCodeIndex, getIndexSummary, getEmbeddingCache, autoIndexCurrentRepo, _cachedEmbeddingReposForTesting, _embeddingLoadCountForTesting, _resetEmbeddingLoadCountForTesting } from "./index-tools/registry.js";
|
|
10
10
|
import { embedSymbols } from "./index-tools/parse.js";
|
|
11
11
|
import { drainLegacyHashQueue, ASTRO_LOCK_FILENAME, EXTRACTOR_VERSIONS_FILENAME, checkAstroExtractorVersion } from "./index-tools/snapshots.js";
|
|
12
|
-
import { activeWatchers, bm25Indexes, codeIndexes, embeddingCaches } from "./index-tools/state.js";
|
|
12
|
+
import { activeWatchers, bm25Indexes, codeIndexes, embeddingCaches, embeddingCacheGenerations, embeddingCacheSources, } from "./index-tools/state.js";
|
|
13
13
|
const GIT_CLONE_TIMEOUT_MS = 120_000;
|
|
14
14
|
const GIT_CHECKOUT_TIMEOUT_MS = 30_000;
|
|
15
15
|
const GIT_PULL_TIMEOUT_MS = 60_000;
|
|
@@ -101,6 +101,8 @@ export async function stopAllWatchersForTesting() {
|
|
|
101
101
|
bm25Indexes.clear();
|
|
102
102
|
codeIndexes.clear();
|
|
103
103
|
embeddingCaches.clear();
|
|
104
|
+
embeddingCacheGenerations.clear();
|
|
105
|
+
embeddingCacheSources.clear();
|
|
104
106
|
resetFreshnessCache();
|
|
105
107
|
}
|
|
106
108
|
//# sourceMappingURL=index-tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-tools.js","sourceRoot":"","sources":["../../src/tools/index-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,oCAAoC,EAA0B,MAAM,iCAAiC,CAAC;AAC5H,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,kCAAkC,EAAoB,MAAM,2BAA2B,CAAC;AACtR,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAA2B,MAAM,4BAA4B,CAAC;AACzK,OAAO,
|
|
1
|
+
{"version":3,"file":"index-tools.js","sourceRoot":"","sources":["../../src/tools/index-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NestToolError } from "../nest-tools.js";
|
|
2
|
+
export interface NestGraphQLEntry {
|
|
3
|
+
resolver_class: string;
|
|
4
|
+
file: string;
|
|
5
|
+
operation: "Query" | "Mutation" | "Subscription" | "ResolveField";
|
|
6
|
+
handler: string;
|
|
7
|
+
return_type?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface NestGraphQLMapResult {
|
|
10
|
+
entries: NestGraphQLEntry[];
|
|
11
|
+
errors?: NestToolError[];
|
|
12
|
+
truncated?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function nestGraphQLMap(repo: string, options?: {
|
|
15
|
+
max_entries?: number;
|
|
16
|
+
}): Promise<NestGraphQLMapResult>;
|
|
17
|
+
//# sourceMappingURL=graphql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/tools/nest-ext-tools/graphql.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAAC,oBAAoB,CAAC,CAsD/B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { findClassAtPosition, findDecoratedClass, findDecoratorCalls, findNestClassRanges, findNestMethodAfter, readNestSource, requireNestCodeIndex, } from "./shared.js";
|
|
2
|
+
export async function nestGraphQLMap(repo, options) {
|
|
3
|
+
const index = await requireNestCodeIndex(repo);
|
|
4
|
+
const maxEntries = options?.max_entries ?? 300;
|
|
5
|
+
const entries = [];
|
|
6
|
+
const errors = [];
|
|
7
|
+
let truncated = false;
|
|
8
|
+
const resolverFiles = index.files.filter((f) => f.path.endsWith(".resolver.ts") || f.path.endsWith(".resolver.js"));
|
|
9
|
+
for (const file of resolverFiles) {
|
|
10
|
+
if (entries.length >= maxEntries) {
|
|
11
|
+
truncated = true;
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
const source = await readNestSource(index, file.path, errors);
|
|
15
|
+
if (source === undefined)
|
|
16
|
+
continue;
|
|
17
|
+
const classRanges = findNestClassRanges(source);
|
|
18
|
+
const resolverClasses = new Set(findDecoratorCalls(source, "Resolver")
|
|
19
|
+
.map((call) => findDecoratedClass(classRanges, call)?.start)
|
|
20
|
+
.filter((start) => start !== undefined));
|
|
21
|
+
const calls = ["Query", "Mutation", "Subscription", "ResolveField"]
|
|
22
|
+
.flatMap((operation) => findDecoratorCalls(source, operation).map((call) => ({ ...call, operation })))
|
|
23
|
+
.sort((left, right) => left.start - right.start);
|
|
24
|
+
for (const call of calls) {
|
|
25
|
+
const owner = findClassAtPosition(classRanges, call.start);
|
|
26
|
+
if (!owner || !resolverClasses.has(owner.start))
|
|
27
|
+
continue;
|
|
28
|
+
if (entries.length >= maxEntries) {
|
|
29
|
+
truncated = true;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
const method = findNestMethodAfter(source, call.end);
|
|
33
|
+
if (!method || method.start >= owner.end)
|
|
34
|
+
continue;
|
|
35
|
+
// Extract return type from decorator arg: () => Article → Article
|
|
36
|
+
const returnTypeMatch = /\(\s*\)\s*=>\s*(?:\[\s*)?(\w+)/.exec(call.args);
|
|
37
|
+
const entry = {
|
|
38
|
+
resolver_class: owner.name,
|
|
39
|
+
file: file.path,
|
|
40
|
+
operation: call.operation,
|
|
41
|
+
handler: method.name,
|
|
42
|
+
};
|
|
43
|
+
if (returnTypeMatch)
|
|
44
|
+
entry.return_type = returnTypeMatch[1];
|
|
45
|
+
entries.push(entry);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
entries,
|
|
50
|
+
...(errors.length > 0 ? { errors } : {}),
|
|
51
|
+
...(truncated ? { truncated } : {}),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/tools/nest-ext-tools/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NestToolError } from "../nest-tools.js";
|
|
2
|
+
export interface NestMicroserviceEntry {
|
|
3
|
+
type: "MessagePattern" | "EventPattern";
|
|
4
|
+
pattern: string;
|
|
5
|
+
handler: string;
|
|
6
|
+
controller: string;
|
|
7
|
+
file: string;
|
|
8
|
+
}
|
|
9
|
+
export interface NestMicroserviceMapResult {
|
|
10
|
+
patterns: NestMicroserviceEntry[];
|
|
11
|
+
errors?: NestToolError[];
|
|
12
|
+
truncated?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function nestMicroserviceMap(repo: string, options?: {
|
|
15
|
+
max_patterns?: number;
|
|
16
|
+
}): Promise<NestMicroserviceMapResult>;
|
|
17
|
+
//# sourceMappingURL=microservice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microservice.d.ts","sourceRoot":"","sources":["../../../src/tools/nest-ext-tools/microservice.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC,OAAO,CAAC,yBAAyB,CAAC,CAiDpC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { findClassAtPosition, findDecoratorCalls, findNestClassRanges, findNestMethodAfter, firstNestDecoratorArgument, readNestSource, requireNestCodeIndex, stripLeadingNestComments, } from "./shared.js";
|
|
2
|
+
export async function nestMicroserviceMap(repo, options) {
|
|
3
|
+
const index = await requireNestCodeIndex(repo);
|
|
4
|
+
const maxPatterns = options?.max_patterns ?? 300;
|
|
5
|
+
const patterns = [];
|
|
6
|
+
const errors = [];
|
|
7
|
+
let truncated = false;
|
|
8
|
+
// Microservice patterns are typically in controller files (hybrid apps)
|
|
9
|
+
const controllerFiles = index.files.filter((f) => f.path.endsWith(".controller.ts") || f.path.endsWith(".controller.js"));
|
|
10
|
+
for (const file of controllerFiles) {
|
|
11
|
+
if (patterns.length >= maxPatterns) {
|
|
12
|
+
truncated = true;
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
const source = await readNestSource(index, file.path, errors);
|
|
16
|
+
if (source === undefined)
|
|
17
|
+
continue;
|
|
18
|
+
// Quick substring filter
|
|
19
|
+
if (!/@(MessagePattern|EventPattern)/.test(source))
|
|
20
|
+
continue;
|
|
21
|
+
const classRanges = findNestClassRanges(source);
|
|
22
|
+
const calls = ["MessagePattern", "EventPattern"]
|
|
23
|
+
.flatMap((type) => findDecoratorCalls(source, type).map((call) => ({ ...call, type })))
|
|
24
|
+
.sort((left, right) => left.start - right.start);
|
|
25
|
+
for (const call of calls) {
|
|
26
|
+
const owner = findClassAtPosition(classRanges, call.start);
|
|
27
|
+
const method = findNestMethodAfter(source, call.end);
|
|
28
|
+
if (!method || (owner && method.start >= owner.end))
|
|
29
|
+
continue;
|
|
30
|
+
if (patterns.length >= maxPatterns) {
|
|
31
|
+
truncated = true;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
const firstArg = stripLeadingNestComments(firstNestDecoratorArgument(call.args));
|
|
35
|
+
const stringPattern = /^['"`]([^'"`]+)['"`]$/.exec(firstArg)?.[1];
|
|
36
|
+
patterns.push({
|
|
37
|
+
type: call.type,
|
|
38
|
+
pattern: stringPattern ?? firstArg,
|
|
39
|
+
handler: method.name,
|
|
40
|
+
controller: owner?.name ?? "UnknownController",
|
|
41
|
+
file: file.path,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
patterns,
|
|
47
|
+
...(errors.length > 0 ? { errors } : {}),
|
|
48
|
+
...(truncated ? { truncated } : {}),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=microservice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microservice.js","sourceRoot":"","sources":["../../../src/tools/nest-ext-tools/microservice.ts"],"names":[],"mappings":"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"}
|