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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { existsSync, mkdirSync, appendFileSync,
|
|
3
|
-
import {
|
|
4
|
-
import { homedir } from "node:os";
|
|
2
|
+
import { existsSync, mkdirSync, appendFileSync, statSync } from "node:fs";
|
|
3
|
+
import { open } from "node:fs/promises";
|
|
4
|
+
import { homedir, totalmem } from "node:os";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
/**
|
|
7
7
|
* Embeddings keyed by CONTENT, shared across every repository.
|
|
@@ -13,26 +13,147 @@ import { join } from "node:path";
|
|
|
13
13
|
* That is not a marginal cost here. A linked worktree is a separate repo to
|
|
14
14
|
* CodeSift, and its files are usually IDENTICAL to the checkout it came from:
|
|
15
15
|
* `backlog-wave-1-integration` had 1,799 files and differed from main by zero.
|
|
16
|
-
* With 40 worktrees registered, the same text was embedded up to 40 times.
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
16
|
+
* With 40 worktrees registered, the same text was embedded up to 40 times.
|
|
17
|
+
*
|
|
18
|
+
* ---------------------------------------------------------------------------
|
|
19
|
+
* v2: fixed-width binary records. Why the format changed (measured 2026-08-09)
|
|
20
|
+
* ---------------------------------------------------------------------------
|
|
21
|
+
*
|
|
22
|
+
* v1 was ndjson, and it had three defects that together made it a wasted
|
|
23
|
+
* optimization — it held **4.56%** of the symbol corpus (36,420 of 798,638
|
|
24
|
+
* vectors) and had not grown since 2026-08-07 despite 35 live processes:
|
|
25
|
+
*
|
|
26
|
+
* 1. `appendSharedCache` accumulated the whole batch into ONE string
|
|
27
|
+
* (`payload += …`). At ~16,248 bytes per vector line that hits V8's hard
|
|
28
|
+
* `MAX_STRING_LENGTH` (536,870,888) at exactly **33,042 entries**, throwing
|
|
29
|
+
* `RangeError: Invalid string length` straight into a bare `catch {}`.
|
|
30
|
+
* 7 of 37 symbol files exceed that ceiling and they hold **64%** of the
|
|
31
|
+
* corpus, so the repos that would benefit most were the only ones that
|
|
32
|
+
* silently wrote nothing.
|
|
33
|
+
* 2. Every key was appended whether or not the file already had it: **11.3%**
|
|
34
|
+
* of lines were repeats.
|
|
35
|
+
* 3. Text encoding. A 768-dim float32 vector is 3,072 bytes; as JSON decimals
|
|
36
|
+
* it took 16,248. A float32 round-trip of the stored values is bit-exact on
|
|
37
|
+
* 1,300 sampled vectors, so this was pure waste, not precision.
|
|
38
|
+
*
|
|
39
|
+
* Fixing only (1) would have been worse than leaving it broken: the corpus at
|
|
40
|
+
* v1's density projects to **12.1 GB**, against **2.28 GB** at fixed-width
|
|
41
|
+
* float32. The V8 ceiling had been acting as an accidental circuit breaker.
|
|
42
|
+
*
|
|
43
|
+
* v2 record layout, little-endian throughout:
|
|
44
|
+
*
|
|
45
|
+
* [16 B key][2 B dim][4 B crc32 of the vector bytes][dim*4 B float32 vector]
|
|
46
|
+
*
|
|
47
|
+
* The checksum is not ceremony. Corruption injection against the first draft of this reader
|
|
48
|
+
* (2026-08-09) measured what a record without one costs: two flipped bytes inside a vector were
|
|
49
|
+
* served as a valid embedding — 1000 of 1000 records "read successfully", one of them silently
|
|
50
|
+
* wrong — and 99.417% of a 3,090-byte record was payload that nothing verified. A wrong vector is
|
|
51
|
+
* worse than a missing one: it produces a plausible similarity score instead of a cache miss.
|
|
52
|
+
*
|
|
53
|
+
* It also buys RESYNC. That same pass showed one implausible dim byte at record 10 cost 99% of the
|
|
54
|
+
* file, because the reader stopped rather than guess. With a checksum the reader can skip exactly
|
|
55
|
+
* one record and carry on, and be right about having skipped it.
|
|
56
|
+
*
|
|
57
|
+
* The key is `contentKey`'s 32 hex chars as raw bytes. `dim` is per record
|
|
58
|
+
* rather than in a header because two models with different dimensions can
|
|
59
|
+
* legitimately share this file; a header would force one file per model and a
|
|
60
|
+
* mismatch would be indistinguishable from corruption.
|
|
61
|
+
*
|
|
62
|
+
* Append-only is retained deliberately: concurrent writers are the norm (one
|
|
63
|
+
* process per agent window) and a single `appendFileSync` under `O_APPEND` is
|
|
64
|
+
* the only write that is safe without a lock. Writes are now CHUNKED to a fixed
|
|
65
|
+
* byte budget, on record boundaries, so no buffer approaches any engine limit
|
|
66
|
+
* and a partially-written chunk can never split a record.
|
|
67
|
+
*
|
|
68
|
+
* The file remains DERIVED and safe to delete at any time. That is what makes
|
|
69
|
+
* changing its format cheap: worst case the next index recomputes. There is no
|
|
70
|
+
* v1 migration for the same reason — the old file is simply ignored, and
|
|
71
|
+
* whoever wants the disk back deletes it.
|
|
72
|
+
*/
|
|
73
|
+
/** Bump when the record layout changes in a way that invalidates old entries. */
|
|
74
|
+
const CACHE_VERSION = 2;
|
|
75
|
+
/** Bytes of key stored per record — `contentKey` is 32 hex chars = 16 bytes. */
|
|
76
|
+
const KEY_BYTES = 16;
|
|
77
|
+
/** key + dim + crc, before the vector payload. */
|
|
78
|
+
const HEADER_BYTES = KEY_BYTES + 2 + 4;
|
|
79
|
+
/**
|
|
80
|
+
* CRC-32 of the vector bytes.
|
|
81
|
+
*
|
|
82
|
+
* Not cryptographic and not meant to be: the threat is a torn write or a flipped bit, not an
|
|
83
|
+
* adversary. 4 bytes on a 3,090-byte record is 0.13% for the difference between "this vector is
|
|
84
|
+
* wrong" and "this vector is wrong and nobody can tell".
|
|
85
|
+
*/
|
|
86
|
+
const CRC_TABLE = (() => {
|
|
87
|
+
const t = new Uint32Array(256);
|
|
88
|
+
for (let i = 0; i < 256; i++) {
|
|
89
|
+
let c = i;
|
|
90
|
+
for (let k = 0; k < 8; k++)
|
|
91
|
+
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
92
|
+
t[i] = c >>> 0;
|
|
93
|
+
}
|
|
94
|
+
return t;
|
|
95
|
+
})();
|
|
96
|
+
function crc32(buf, start, end) {
|
|
97
|
+
let c = 0xffffffff;
|
|
98
|
+
for (let i = start; i < end; i++)
|
|
99
|
+
c = CRC_TABLE[(c ^ buf[i]) & 0xff] ^ (c >>> 8);
|
|
100
|
+
return (c ^ 0xffffffff) >>> 0;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Largest single `appendFileSync` payload.
|
|
104
|
+
*
|
|
105
|
+
* Bounded so no buffer can approach an engine limit as the corpus grows — the
|
|
106
|
+
* v1 bug was exactly an unbounded accumulator. 8 MiB is ~2,700 vectors at 768
|
|
107
|
+
* dims: few enough syscalls to be irrelevant, small enough that the ceiling is
|
|
108
|
+
* three orders of magnitude away.
|
|
109
|
+
*/
|
|
110
|
+
const MAX_APPEND_BYTES = 8 * 1024 * 1024;
|
|
111
|
+
/** Sanity bound on a decoded dimension, so a corrupt byte cannot request a huge allocation. */
|
|
112
|
+
const MAX_DIM = 8192;
|
|
113
|
+
/**
|
|
114
|
+
* Ceiling on how much of the cache is held resident, in bytes of vector payload.
|
|
115
|
+
*
|
|
116
|
+
* This bound is not optional decoration. Until the writer was fixed, appends threw
|
|
117
|
+
* `RangeError` above ~33k entries into a bare catch, so the file was accidentally frozen at 4.56%
|
|
118
|
+
* of the corpus and nobody had to think about the read side. Fixing the writer — and adding chunk
|
|
119
|
+
* texts to the same cache — let it grow for real, and `loadSharedCache` materialises EVERY record
|
|
120
|
+
* into a `Map` that no budget governs: measured +1.17 GB RSS and a multi-second event-loop freeze
|
|
121
|
+
* in a long-lived MCP server, on a machine that routinely runs 24–37 codesift processes at once.
|
|
122
|
+
*
|
|
123
|
+
* Stopping early is the correct degradation for this structure. The cache is a write-side
|
|
124
|
+
* optimization whose only failure mode is a cache MISS, so a partially loaded one is still
|
|
125
|
+
* completely correct — it just recomputes more. That is the same contract as an unreadable file.
|
|
126
|
+
*
|
|
127
|
+
* Default is deliberately modest and scales with the machine, matching the embedding/index budgets
|
|
128
|
+
* (`CODESIFT_MAX_EMBEDDING_MEM_MB`, `CODESIFT_MAX_INDEX_CACHE_MB`). Override with
|
|
129
|
+
* `CODESIFT_MAX_SHARED_CACHE_MB`; `0` disables the shared cache read entirely.
|
|
30
130
|
*/
|
|
31
|
-
|
|
32
|
-
const
|
|
131
|
+
function sharedCacheBudgetBytes() {
|
|
132
|
+
const raw = process.env["CODESIFT_MAX_SHARED_CACHE_MB"];
|
|
133
|
+
if (raw !== undefined) {
|
|
134
|
+
const n = Number.parseInt(raw, 10);
|
|
135
|
+
if (Number.isFinite(n) && n >= 0)
|
|
136
|
+
return n * 1024 * 1024;
|
|
137
|
+
}
|
|
138
|
+
const totalGb = totalmem() / 1024 ** 3;
|
|
139
|
+
const mb = totalGb <= 16 ? 64 : totalGb <= 32 ? 128 : 256;
|
|
140
|
+
return mb * 1024 * 1024;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Basename of the cache file this build reads and writes.
|
|
144
|
+
*
|
|
145
|
+
* Exported so `prune` can reclaim SUPERSEDED versions without hard-coding a name
|
|
146
|
+
* that would drift on the next format bump: it deletes every `shared-embeddings.*`
|
|
147
|
+
* that is not this one. A format bump otherwise strands the old file forever —
|
|
148
|
+
* nothing opens it and nothing deletes it, because it has no hash prefix for the
|
|
149
|
+
* artifact sweep to match (1.05 GB measured after the v1→v2 bump).
|
|
150
|
+
*/
|
|
151
|
+
export function currentSharedCacheFilename() {
|
|
152
|
+
return `shared-embeddings.v${CACHE_VERSION}.bin`;
|
|
153
|
+
}
|
|
33
154
|
function cachePath() {
|
|
34
155
|
const dataDir = process.env["CODESIFT_DATA_DIR"] ?? join(homedir(), ".codesift");
|
|
35
|
-
return join(dataDir,
|
|
156
|
+
return join(dataDir, currentSharedCacheFilename());
|
|
36
157
|
}
|
|
37
158
|
/**
|
|
38
159
|
* Key for a piece of text under a specific model.
|
|
@@ -51,46 +172,147 @@ export function contentKey(model, dimensions, text) {
|
|
|
51
172
|
}
|
|
52
173
|
let memory = null;
|
|
53
174
|
let loadedFrom = null;
|
|
175
|
+
let warnedWriteFailure = false;
|
|
54
176
|
/**
|
|
55
177
|
* Read the cache into memory once per process.
|
|
56
178
|
*
|
|
57
|
-
* Missing file,
|
|
58
|
-
* cannot be read must degrade into "compute it again", never into an error —
|
|
59
|
-
*
|
|
179
|
+
* Missing file, truncated tail, impossible dimension: all skipped. A cache that
|
|
180
|
+
* cannot be read must degrade into "compute it again", never into an error — it
|
|
181
|
+
* is an optimization, and a broken one has to stay invisible.
|
|
182
|
+
*
|
|
183
|
+
* A torn final record is the expected failure, not an exotic one: a writer
|
|
184
|
+
* killed mid-append leaves one. Reading stops at the first record that does not
|
|
185
|
+
* fit in the remaining bytes and keeps everything before it.
|
|
60
186
|
*/
|
|
61
187
|
export async function loadSharedCache() {
|
|
62
188
|
const path = cachePath();
|
|
63
189
|
if (memory && loadedFrom === path)
|
|
64
190
|
return memory;
|
|
65
191
|
const map = new Map();
|
|
66
|
-
|
|
192
|
+
const budget = sharedCacheBudgetBytes();
|
|
193
|
+
if (budget > 0 && existsSync(path)) {
|
|
194
|
+
let handle;
|
|
195
|
+
let corrupt = 0;
|
|
196
|
+
let skippedTail = false;
|
|
197
|
+
let resident = 0;
|
|
198
|
+
let stoppedAtBudget = false;
|
|
67
199
|
try {
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
200
|
+
const size = statSync(path).size;
|
|
201
|
+
// Async open/read: this runs inside the long-lived MCP server, where the
|
|
202
|
+
// synchronous version blocked the event loop for seconds on a file that is
|
|
203
|
+
// now hundreds of megabytes. Nothing here needs to be synchronous — the
|
|
204
|
+
// function has always been async, it just was not using it.
|
|
205
|
+
handle = await open(path, "r");
|
|
206
|
+
// Read in slabs rather than one buffer: the file is expected to outgrow
|
|
207
|
+
// any single comfortable allocation, which is how v1 died.
|
|
208
|
+
const SLAB = 4 * 1024 * 1024;
|
|
209
|
+
let carry = Buffer.alloc(0);
|
|
210
|
+
let offset = 0;
|
|
211
|
+
while (offset < size) {
|
|
212
|
+
const want = Math.min(SLAB, size - offset);
|
|
213
|
+
const buf = Buffer.allocUnsafe(want);
|
|
214
|
+
const { bytesRead: got } = await handle.read(buf, 0, want, offset);
|
|
215
|
+
if (got <= 0)
|
|
216
|
+
break;
|
|
217
|
+
offset += got;
|
|
218
|
+
const data = carry.length > 0 ? Buffer.concat([carry, buf.subarray(0, got)]) : buf.subarray(0, got);
|
|
219
|
+
let p = 0;
|
|
220
|
+
for (;;) {
|
|
221
|
+
if (p + HEADER_BYTES > data.length)
|
|
222
|
+
break;
|
|
223
|
+
const dim = data.readUInt16LE(p + KEY_BYTES);
|
|
224
|
+
if (dim === 0 || dim > MAX_DIM) {
|
|
225
|
+
// Cannot know where the next record starts, so this is where reading ends. Say how much
|
|
226
|
+
// was kept: the first draft did this silently, and one bad byte at record 10 cost 99%
|
|
227
|
+
// of the file with no way to notice.
|
|
228
|
+
skippedTail = true;
|
|
229
|
+
p = data.length;
|
|
230
|
+
offset = size;
|
|
231
|
+
break;
|
|
76
232
|
}
|
|
233
|
+
const total = HEADER_BYTES + dim * 4;
|
|
234
|
+
if (p + total > data.length)
|
|
235
|
+
break; // record spans the slab boundary
|
|
236
|
+
const want = data.readUInt32LE(p + KEY_BYTES + 2);
|
|
237
|
+
if (crc32(data, p + HEADER_BYTES, p + total) !== want) {
|
|
238
|
+
// The length is intact, so the NEXT record's offset is still known: skip exactly this
|
|
239
|
+
// one and keep going. Without the checksum this record would have been served as a
|
|
240
|
+
// valid vector — a wrong embedding produces a plausible score, not a cache miss.
|
|
241
|
+
corrupt++;
|
|
242
|
+
p += total;
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
if (resident + dim * 4 > budget) {
|
|
246
|
+
// Stop, do not evict. Entries are equally valuable here — there is no recency to
|
|
247
|
+
// exploit, since a key is looked up once per corpus pass — so the cheapest correct
|
|
248
|
+
// policy is to keep the prefix already paid for and let the rest be recomputed.
|
|
249
|
+
stoppedAtBudget = true;
|
|
250
|
+
offset = size;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
const key = data.subarray(p, p + KEY_BYTES).toString("hex");
|
|
254
|
+
const vec = new Float32Array(dim);
|
|
255
|
+
for (let i = 0; i < dim; i++)
|
|
256
|
+
vec[i] = data.readFloatLE(p + HEADER_BYTES + i * 4);
|
|
257
|
+
map.set(key, vec);
|
|
258
|
+
resident += dim * 4;
|
|
259
|
+
p += total;
|
|
77
260
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
261
|
+
carry = p < data.length ? Buffer.from(data.subarray(p)) : Buffer.alloc(0);
|
|
262
|
+
if (carry.length > 0)
|
|
263
|
+
skippedTail = true;
|
|
81
264
|
}
|
|
82
265
|
}
|
|
83
266
|
catch {
|
|
84
|
-
// Unreadable
|
|
267
|
+
// Unreadable — behave as if empty.
|
|
268
|
+
}
|
|
269
|
+
finally {
|
|
270
|
+
if (corrupt > 0 || skippedTail) {
|
|
271
|
+
console.error(`[codesift] shared embedding cache: kept ${map.size} vectors, dropped ${corrupt} failing ` +
|
|
272
|
+
`checksum${skippedTail ? " and stopped early at an unreadable record" : ""}. ` +
|
|
273
|
+
`It is derived — delete ${path} to rebuild.`);
|
|
274
|
+
}
|
|
275
|
+
if (stoppedAtBudget) {
|
|
276
|
+
console.error(`[codesift] shared embedding cache: loaded ${map.size} vectors ` +
|
|
277
|
+
`(${(resident / 1024 ** 2).toFixed(0)} MB), stopping at the ` +
|
|
278
|
+
`${(budget / 1024 ** 2).toFixed(0)} MB budget. The rest will be recomputed rather than ` +
|
|
279
|
+
`looked up. Raise CODESIFT_MAX_SHARED_CACHE_MB to trade memory for fewer model calls.`);
|
|
280
|
+
}
|
|
281
|
+
if (handle !== undefined) {
|
|
282
|
+
try {
|
|
283
|
+
await handle.close();
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
/* already gone */
|
|
287
|
+
}
|
|
288
|
+
}
|
|
85
289
|
}
|
|
86
290
|
}
|
|
87
291
|
memory = map;
|
|
88
292
|
loadedFrom = path;
|
|
89
293
|
return map;
|
|
90
294
|
}
|
|
295
|
+
function encodeRecord(key, vec) {
|
|
296
|
+
if (key.length !== KEY_BYTES * 2 || !/^[0-9a-f]+$/.test(key) ||
|
|
297
|
+
vec.length === 0 || vec.length > MAX_DIM)
|
|
298
|
+
return null;
|
|
299
|
+
const rec = Buffer.allocUnsafe(HEADER_BYTES + vec.length * 4);
|
|
300
|
+
rec.write(key, 0, KEY_BYTES, "hex");
|
|
301
|
+
rec.writeUInt16LE(vec.length, KEY_BYTES);
|
|
302
|
+
for (let i = 0; i < vec.length; i++)
|
|
303
|
+
rec.writeFloatLE(vec[i], HEADER_BYTES + i * 4);
|
|
304
|
+
rec.writeUInt32LE(crc32(rec, HEADER_BYTES, rec.length), KEY_BYTES + 2);
|
|
305
|
+
return rec;
|
|
306
|
+
}
|
|
91
307
|
/**
|
|
92
308
|
* Append new vectors. Both the file and the in-memory map are updated, so a
|
|
93
309
|
* second repo indexed in the same process hits memory rather than disk.
|
|
310
|
+
*
|
|
311
|
+
* Entries already present are skipped: v1 appended unconditionally and 11.3% of
|
|
312
|
+
* its lines were repeats of a key it already held. Dedup happens against the
|
|
313
|
+
* in-memory map, so it is exact within a process and best-effort across them —
|
|
314
|
+
* which is the same guarantee append-only gave before, at a fraction of the
|
|
315
|
+
* bytes.
|
|
94
316
|
*/
|
|
95
317
|
export function appendSharedCache(entries) {
|
|
96
318
|
if (entries.length === 0)
|
|
@@ -98,23 +320,56 @@ export function appendSharedCache(entries) {
|
|
|
98
320
|
const path = cachePath();
|
|
99
321
|
try {
|
|
100
322
|
mkdirSync(join(path, ".."), { recursive: true });
|
|
101
|
-
let
|
|
323
|
+
let batch = [];
|
|
324
|
+
let batchEntries = [];
|
|
325
|
+
const pendingKeys = new Set();
|
|
326
|
+
let batchBytes = 0;
|
|
327
|
+
const flush = () => {
|
|
328
|
+
if (batch.length === 0)
|
|
329
|
+
return;
|
|
330
|
+
// One append per chunk, always ending on a record boundary, so a
|
|
331
|
+
// concurrent writer can interleave BETWEEN records but never inside one.
|
|
332
|
+
appendFileSync(path, Buffer.concat(batch));
|
|
333
|
+
if (memory) {
|
|
334
|
+
for (const { key, vec } of batchEntries)
|
|
335
|
+
memory.set(key, vec);
|
|
336
|
+
}
|
|
337
|
+
batch = [];
|
|
338
|
+
batchEntries = [];
|
|
339
|
+
pendingKeys.clear();
|
|
340
|
+
batchBytes = 0;
|
|
341
|
+
};
|
|
102
342
|
for (const { key, vec } of entries) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
343
|
+
const normalizedKey = key.toLowerCase();
|
|
344
|
+
if (memory?.has(normalizedKey) || pendingKeys.has(normalizedKey))
|
|
345
|
+
continue;
|
|
346
|
+
const rec = encodeRecord(normalizedKey, vec);
|
|
347
|
+
if (!rec)
|
|
348
|
+
continue;
|
|
349
|
+
if (batchBytes + rec.length > MAX_APPEND_BYTES)
|
|
350
|
+
flush();
|
|
351
|
+
batch.push(rec);
|
|
352
|
+
batchEntries.push({ key: normalizedKey, vec });
|
|
353
|
+
pendingKeys.add(normalizedKey);
|
|
354
|
+
batchBytes += rec.length;
|
|
106
355
|
}
|
|
107
|
-
|
|
108
|
-
// likely to interleave with another process mid-line than many small ones.
|
|
109
|
-
appendFileSync(path, payload, "utf-8");
|
|
356
|
+
flush();
|
|
110
357
|
}
|
|
111
|
-
catch {
|
|
112
|
-
// A cache that cannot be written must not fail the indexing run
|
|
358
|
+
catch (err) {
|
|
359
|
+
// A cache that cannot be written must not fail the indexing run — but v1's
|
|
360
|
+
// silence is how a total write failure went unnoticed for days while the
|
|
361
|
+
// cache held 4.56% of the corpus. Say it once per process.
|
|
362
|
+
if (!warnedWriteFailure) {
|
|
363
|
+
warnedWriteFailure = true;
|
|
364
|
+
console.error(`[codesift] shared embedding cache is not being written (${err.message}). ` +
|
|
365
|
+
`Indexing continues; embeddings will be recomputed per repo.`);
|
|
366
|
+
}
|
|
113
367
|
}
|
|
114
368
|
}
|
|
115
369
|
/** Test-only: forget the in-memory copy so a fresh path is picked up. */
|
|
116
370
|
export function _resetSharedCacheForTests() {
|
|
117
371
|
memory = null;
|
|
118
372
|
loadedFrom = null;
|
|
373
|
+
warnedWriteFailure = false;
|
|
119
374
|
}
|
|
120
375
|
//# sourceMappingURL=shared-embedding-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-embedding-cache.js","sourceRoot":"","sources":["../../src/storage/shared-embedding-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"shared-embedding-cache.js","sourceRoot":"","sources":["../../src/storage/shared-embedding-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/storage/telemetry/config.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,YAAY,CAS/C;AAiBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,cAAc,CAatD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAcrE;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/storage/telemetry/config.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,YAAY,CAS/C;AAiBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,cAAc,CAatD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAcrE;AAMD;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CA+B/C;AAED,sFAAsF;AACtF,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc3E"}
|
|
@@ -113,8 +113,9 @@ export function maybePrintFirstRunNotice() {
|
|
|
113
113
|
// its own clause rather than being folded into "usage stats".
|
|
114
114
|
"[codesift] Anonymous usage stats are ON (tool names, latencies, error/empty rates,\n" +
|
|
115
115
|
" bucketed env). If zuvo is installed, also anonymous per-skill rollups: which skill\n" +
|
|
116
|
-
" ran, friction category, whether the audit/adversarial gates produced a verdict
|
|
117
|
-
"
|
|
116
|
+
" ran, friction category, whether the audit/adversarial gates produced a verdict, were\n" +
|
|
117
|
+
" skipped, or do not exist for that skill, and median effort — NO queries, paths,\n" +
|
|
118
|
+
" repo names, branches, commit\n" +
|
|
118
119
|
" hashes, free text or code. See exactly what is sent: `codesift telemetry show`.\n" +
|
|
119
120
|
" Opt out: CODESIFT_TELEMETRY=off (or DO_NOT_TRACK=1).\n");
|
|
120
121
|
mkdirSync(dataDir(), { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/storage/telemetry/config.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,6DAA6D;AAC7D,8CAA8C;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIlC,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAMD,kEAAkE;AAClE,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,EAAE,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAsB,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,CAAU;IAChC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,MAAM,CAAC;IAChG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,CAAqB;IACxC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAClE,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAG,cAAc,CAC9B,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CACtE,CAAC;IACF,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAC7D,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,GAAG,GAA4B,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,GAAG,GAAG,MAAiC,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IACD,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;IAC7B,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;IAC1B,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,wBAAwB,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,IAAI,CAAC;QACH,IAAI,qBAAqB,EAAE,KAAK,MAAM;YAAE,OAAO;QAC/C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,gBAAgB;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK;QAClB,uEAAuE;QACvE,uEAAuE;QACvE,yEAAyE;QACzE,qEAAqE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,8DAA8D;QAC9D,sFAAsF;YACtF,wFAAwF;YACxF,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/storage/telemetry/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,15 @@ export interface RetroAggregate {
|
|
|
16
16
|
/** How many of these runs ran each safety gate to a real verdict. */
|
|
17
17
|
blind_audit_ran: number;
|
|
18
18
|
adversarial_ran: number;
|
|
19
|
+
/**
|
|
20
|
+
* How many declared the gate INAPPLICABLE (`N/A`) — the skill has no such step.
|
|
21
|
+
* Kept separate from "did not run" on purpose: "this skill has no blind audit"
|
|
22
|
+
* and "this skill has one and skipped it" are different product facts, and
|
|
23
|
+
* collapsing them is what made this column unreadable in the first place.
|
|
24
|
+
* A consumer wanting a compliance rate should use ran / (count - na).
|
|
25
|
+
*/
|
|
26
|
+
blind_audit_na: number;
|
|
27
|
+
adversarial_na: number;
|
|
19
28
|
}
|
|
20
29
|
/**
|
|
21
30
|
* Read and aggregate `~/.zuvo/retros.log`.
|
|
@@ -23,5 +32,17 @@ export interface RetroAggregate {
|
|
|
23
32
|
* Returns [] when zuvo is not installed, which is the common case for a codesift user — this must
|
|
24
33
|
* never be an error, only an absence.
|
|
25
34
|
*/
|
|
35
|
+
export interface RetroScan {
|
|
36
|
+
rows: RetroAggregate[];
|
|
37
|
+
/**
|
|
38
|
+
* Newest retro timestamp actually seen in the log (0 when none). Retained for callers that need
|
|
39
|
+
* event-time filtering; the uploader uses nextOffset because append order is reliable when
|
|
40
|
+
* clocks are not.
|
|
41
|
+
*/
|
|
42
|
+
maxTs: number;
|
|
43
|
+
/** Byte offset immediately after the last complete line considered by an offset scan. */
|
|
44
|
+
nextOffset: number;
|
|
45
|
+
}
|
|
26
46
|
export declare function aggregateRetros(sinceTs?: number, logPath?: string): Promise<RetroAggregate[]>;
|
|
47
|
+
export declare function scanRetros(sinceTs?: number, logPath?: string, cursor?: "timestamp" | "offset"): Promise<RetroScan>;
|
|
27
48
|
//# sourceMappingURL=retro-aggregator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retro-aggregator.d.ts","sourceRoot":"","sources":["../../../src/storage/telemetry/retro-aggregator.ts"],"names":[],"mappings":"AA6CA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"retro-aggregator.d.ts","sourceRoot":"","sources":["../../../src/storage/telemetry/retro-aggregator.ts"],"names":[],"mappings":"AA6CA,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAiED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,eAAe,CACnC,OAAO,SAAI,EACX,OAAO,SAAyC,GAC/C,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3B;AAED,wBAAsB,UAAU,CAC9B,OAAO,SAAI,EACX,OAAO,SAAyC,EAChD,MAAM,GAAE,WAAW,GAAG,QAAsB,GAC3C,OAAO,CAAC,SAAS,CAAC,CAqHpB"}
|