code-auditor-mcp 5.0.1 → 5.2.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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +227 -3
- package/README.md +24 -2
- package/configs/hhra-compat.json +12 -118
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +11 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +57 -52
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/handleIdentification.d.ts.map +1 -1
- package/dist/analyzers/handleIdentification.js +4 -1
- package/dist/analyzers/handleIdentification.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +9 -4
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +8 -25
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +0 -5
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/receiverRoot.d.ts +20 -0
- package/dist/analyzers/receiverRoot.d.ts.map +1 -1
- package/dist/analyzers/receiverRoot.js +42 -0
- package/dist/analyzers/receiverRoot.js.map +1 -1
- package/dist/analyzers/ruleRegistry.js +4 -4
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +1 -1
- package/dist/analyzers/ruleTiming.js +2 -2
- package/dist/analyzers/ruleTiming.js.map +1 -1
- package/dist/analyzers/tsEcosystem.d.ts.map +1 -1
- package/dist/analyzers/tsEcosystem.js +10 -0
- package/dist/analyzers/tsEcosystem.js.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +22 -26
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +32 -15
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +189 -115
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -2
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +0 -5
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -10
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +7 -49
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/config.js +0 -2
- package/dist/analyzers/universal/schema/config.js.map +1 -1
- package/dist/analyzers/universal/schema/types.d.ts +0 -2
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
- package/dist/analyzers/vendorSurfaces.d.ts +126 -0
- package/dist/analyzers/vendorSurfaces.d.ts.map +1 -0
- package/dist/analyzers/vendorSurfaces.js +580 -0
- package/dist/analyzers/vendorSurfaces.js.map +1 -0
- package/dist/auditRunner.d.ts +2 -0
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +159 -160
- package/dist/auditRunner.js.map +1 -1
- package/dist/churn/churnExtractor.d.ts +0 -1
- package/dist/churn/churnExtractor.d.ts.map +1 -1
- package/dist/churn/churnExtractor.js +2 -4
- package/dist/churn/churnExtractor.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +212 -29
- package/dist/cli.js.map +1 -1
- package/dist/codeIndex/migrations.d.ts.map +1 -1
- package/dist/codeIndex/migrations.js +4 -3
- package/dist/codeIndex/migrations.js.map +1 -1
- package/dist/codeIndexDB.d.ts +11 -2
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +27 -2
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/config/configLoader.d.ts +60 -7
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +252 -60
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +77 -18
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +105 -43
- package/dist/config/defaults.js.map +1 -1
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/main.d.ts +0 -1
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +31 -8
- package/dist/daemon/main.js.map +1 -1
- package/dist/dataPaths.d.ts +17 -11
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +51 -16
- package/dist/dataPaths.js.map +1 -1
- package/dist/graph/resolutionEnvironment.d.ts +61 -0
- package/dist/graph/resolutionEnvironment.d.ts.map +1 -0
- package/dist/graph/resolutionEnvironment.js +57 -0
- package/dist/graph/resolutionEnvironment.js.map +1 -0
- package/dist/hookLog.d.ts +54 -0
- package/dist/hookLog.d.ts.map +1 -0
- package/dist/hookLog.js +105 -0
- package/dist/hookLog.js.map +1 -0
- package/dist/hookLogPath.generated.d.ts +3 -0
- package/dist/hookLogPath.generated.d.ts.map +1 -0
- package/dist/hookLogPath.generated.js +8 -0
- package/dist/hookLogPath.generated.js.map +1 -0
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +1 -1
- package/dist/installConfig.d.ts +15 -2
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +17 -2
- package/dist/installConfig.js.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +18 -3
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +8 -8
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +5 -2
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +5 -0
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +9 -2
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +0 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +36 -33
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +10 -0
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +10 -1
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.d.ts.map +1 -1
- package/dist/mcpAutoIndex.js +2 -1
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/phase/colorMath.d.ts +18 -5
- package/dist/phase/colorMath.d.ts.map +1 -1
- package/dist/phase/colorMath.js +88 -5
- package/dist/phase/colorMath.js.map +1 -1
- package/dist/phase/dataAccessCallsCandidates.js +1 -1
- package/dist/phase/dataAccessCallsCandidates.js.map +1 -1
- package/dist/phase/goFunctionAnalysis.d.ts +2 -2
- package/dist/phase/goFunctionAnalysis.js +2 -2
- package/dist/phase/goFunctions.d.ts +2 -2
- package/dist/phase/goFunctions.js +2 -2
- package/dist/phase/goImports.d.ts +2 -2
- package/dist/phase/goImports.js +2 -2
- package/dist/phase/goSwitches.d.ts +2 -2
- package/dist/phase/goSwitches.js +2 -2
- package/dist/phase/loopQueryCandidates.js +1 -1
- package/dist/phase/loopQueryCandidates.js.map +1 -1
- package/dist/phase/phaseModel.d.ts +37 -8
- package/dist/phase/phaseModel.d.ts.map +1 -1
- package/dist/phase/phaseModel.js +94 -46
- package/dist/phase/phaseModel.js.map +1 -1
- package/dist/phase/producers.d.ts.map +1 -1
- package/dist/phase/producers.js +27 -17
- package/dist/phase/producers.js.map +1 -1
- package/dist/phase/reachability.d.ts +44 -1
- package/dist/phase/reachability.d.ts.map +1 -1
- package/dist/phase/reachability.js +79 -0
- package/dist/phase/reachability.js.map +1 -1
- package/dist/phase/receiverConsumers.d.ts +8 -1
- package/dist/phase/receiverConsumers.d.ts.map +1 -1
- package/dist/phase/receiverConsumers.js +59 -21
- package/dist/phase/receiverConsumers.js.map +1 -1
- package/dist/phase/receiverProvenance.d.ts +23 -0
- package/dist/phase/receiverProvenance.d.ts.map +1 -1
- package/dist/phase/receiverProvenance.js +40 -0
- package/dist/phase/receiverProvenance.js.map +1 -1
- package/dist/phase/rules/crossDomain.d.ts.map +1 -1
- package/dist/phase/rules/crossDomain.js +16 -6
- package/dist/phase/rules/crossDomain.js.map +1 -1
- package/dist/phase/rules/dry.d.ts.map +1 -1
- package/dist/phase/rules/dry.js +0 -1
- package/dist/phase/rules/dry.js.map +1 -1
- package/dist/phase/rules/goRules.d.ts +2 -2
- package/dist/phase/rules/goRules.js +2 -2
- package/dist/phase/rules/secrets.d.ts +22 -8
- package/dist/phase/rules/secrets.d.ts.map +1 -1
- package/dist/phase/rules/secrets.js +48 -67
- package/dist/phase/rules/secrets.js.map +1 -1
- package/dist/phase/rules/styles.d.ts +23 -9
- package/dist/phase/rules/styles.d.ts.map +1 -1
- package/dist/phase/rules/styles.js +47 -15
- package/dist/phase/rules/styles.js.map +1 -1
- package/dist/phase/rules/unreferencedModule.d.ts.map +1 -1
- package/dist/phase/rules/unreferencedModule.js +16 -5
- package/dist/phase/rules/unreferencedModule.js.map +1 -1
- package/dist/phase/runner.d.ts +16 -7
- package/dist/phase/runner.d.ts.map +1 -1
- package/dist/phase/runner.js +32 -20
- package/dist/phase/runner.js.map +1 -1
- package/dist/phase/stylesCss.d.ts.map +1 -1
- package/dist/phase/stylesCss.js +4 -0
- package/dist/phase/stylesCss.js.map +1 -1
- package/dist/phase/stylesMarkup.d.ts.map +1 -1
- package/dist/phase/stylesMarkup.js +4 -0
- package/dist/phase/stylesMarkup.js.map +1 -1
- package/dist/phase/stylesSource.d.ts.map +1 -1
- package/dist/phase/stylesSource.js +6 -0
- package/dist/phase/stylesSource.js.map +1 -1
- package/dist/phase/testProgram.d.ts +57 -0
- package/dist/phase/testProgram.d.ts.map +1 -0
- package/dist/phase/testProgram.js +244 -0
- package/dist/phase/testProgram.js.map +1 -0
- package/dist/phase/typeDeclarations.d.ts +2 -2
- package/dist/phase/typeDeclarations.js +2 -2
- package/dist/phase/types.d.ts +54 -0
- package/dist/phase/types.d.ts.map +1 -1
- package/dist/pipelineAdapters.d.ts +1 -171
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +47 -1281
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +0 -6
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +0 -4
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +0 -1
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +0 -7
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/sqlite/driver.d.ts +17 -1
- package/dist/sqlite/driver.d.ts.map +1 -1
- package/dist/sqlite/driver.js +28 -5
- package/dist/sqlite/driver.js.map +1 -1
- package/dist/styles/cssInJsHarvest.d.ts +36 -0
- package/dist/styles/cssInJsHarvest.d.ts.map +1 -0
- package/dist/styles/cssInJsHarvest.js +78 -0
- package/dist/styles/cssInJsHarvest.js.map +1 -0
- package/dist/styles/definedClasses.d.ts +95 -0
- package/dist/styles/definedClasses.d.ts.map +1 -0
- package/dist/styles/definedClasses.js +129 -0
- package/dist/styles/definedClasses.js.map +1 -0
- package/dist/styles/markupStyleHarvest.d.ts +33 -0
- package/dist/styles/markupStyleHarvest.d.ts.map +1 -0
- package/dist/styles/markupStyleHarvest.js +73 -0
- package/dist/styles/markupStyleHarvest.js.map +1 -0
- package/dist/styles/styleExtractor.d.ts +37 -0
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +89 -33
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +11 -10
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindExpander.d.ts.map +1 -1
- package/dist/styles/tailwindExpander.js +31 -10
- package/dist/styles/tailwindExpander.js.map +1 -1
- package/dist/telemetry.d.ts +67 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +100 -20
- package/dist/telemetry.js.map +1 -1
- package/dist/types/crossLanguage.d.ts +1 -0
- package/dist/types/crossLanguage.d.ts.map +1 -1
- package/dist/types.d.ts +36 -56
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/examples/.auditrc.example.json +7 -22
- package/examples/.auditrc.json +12 -155
- package/examples/.code-auditor.json +8 -51
- package/examples/nextjs.auditrc.json +7 -34
- package/examples/node-api.auditrc.json +6 -46
- package/examples/react.auditrc.json +8 -25
- package/examples/tolerant-solid.auditrc.json +12 -44
- package/package.json +13 -9
- package/plugin/.claude-plugin/manifest.json +10 -9
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +4 -4
- package/plugin/scripts/hook-audit.sh +14 -2
- package/plugin/scripts/hook-common.sh +41 -11
- package/plugin/scripts/hook-drift-check.sh +19 -6
- package/plugin/scripts/hook-log-path.sh +7 -0
- package/plugin/scripts/hook-self-audit.sh +14 -2
- package/plugin/scripts/hook-warm.sh +22 -17
- package/plugin/skills/code-auditor/SKILL.md +26 -3
- package/server.json +10 -4
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +0 -6
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js +0 -12
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +0 -1
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +0 -7
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js +0 -13
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +0 -16
- package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +0 -17
- package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +0 -18
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +0 -19
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +0 -17
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +0 -25
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +0 -21
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +0 -19
- package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +0 -14
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +0 -14
- package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +0 -15
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +0 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +0 -16
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +0 -1
- package/dist/languages/go/analyzer-darwin-amd64 +0 -0
- package/dist/languages/go/analyzer-darwin-arm64 +0 -0
- package/dist/languages/go/analyzer-linux-amd64 +0 -0
- package/dist/languages/go/analyzer-linux-arm64 +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +0 -643
- package/dist/languages/go/analyzer-src/dataaccess.go +0 -388
- package/dist/languages/go/analyzer-src/go.mod +0 -3
- package/dist/languages/go/analyzer-src/indexer.go +0 -268
- package/dist/languages/go/analyzer-src/parser.go +0 -461
- package/dist/languages/go/analyzer-src/solid.go +0 -311
- package/dist/languages/go/analyzer-src/testconventions.go +0 -25
- package/dist/languages/go/analyzer-src/types.go +0 -156
- package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
- package/dist/languages/go/go.mod +0 -7
- package/dist/languages/go/main.go +0 -203
- package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
- package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
- package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
- package/dist/native-bootstrap.d.ts +0 -15
- package/dist/native-bootstrap.d.ts.map +0 -1
- package/dist/native-bootstrap.js +0 -75
- package/dist/native-bootstrap.js.map +0 -1
package/dist/config/defaults.js
CHANGED
|
@@ -24,22 +24,23 @@ export function getDefaultConfig() {
|
|
|
24
24
|
'**/*.test.{ts,tsx,js,jsx}',
|
|
25
25
|
'**/*.spec.{ts,tsx,js,jsx}'
|
|
26
26
|
],
|
|
27
|
-
// Note: no `
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
27
|
+
// Note: no `outputDirectory` default. Reports are written only to an explicit
|
|
28
|
+
// CLI `--output` path (or stdout); a config default here would advertise a key
|
|
29
|
+
// that `print-config` then shows and the loader then refuses. See
|
|
30
|
+
// configLoader.ts `output-directory-refused`.
|
|
31
31
|
minSeverity: 'high',
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
maxSevere: 100,
|
|
37
|
-
minHealthScore: 75
|
|
38
|
-
},
|
|
32
|
+
// Spec 11 sweep follow-up — the health-score floor, single-sourced to
|
|
33
|
+
// DEFAULT_HEALTH_SCORE_THRESHOLD (referenced, not re-declared). The removed
|
|
34
|
+
// `maxSevere`/`maxCritical`/`maxHigh` siblings are gone for good.
|
|
35
|
+
thresholds: { minHealthScore: DEFAULT_HEALTH_SCORE_THRESHOLD },
|
|
39
36
|
// Spec 54 R3 — severity is urgency, not permission. There is no
|
|
40
37
|
// `severityOverrides` and no `gateSeverities`: every rule is assigned on the
|
|
41
38
|
// urgency axis (critical/severe/high) and every finding blocks. Per-rule
|
|
42
39
|
// severity tuning disappeared with the old vocabulary.
|
|
40
|
+
// Spec 13 R1 — churn lookback window. The single default lives in
|
|
41
|
+
// DEFAULT_CHURN_CONFIG above; referencing it here (not re-declaring) is what
|
|
42
|
+
// keeps `loadConfig` and `print-config` honest about the effective value.
|
|
43
|
+
churn: DEFAULT_CHURN_CONFIG,
|
|
43
44
|
// Spec 50 R5 — daemon lifecycle. Never auto-start (a background process the
|
|
44
45
|
// user did not ask for); idle-exit after 5 minutes so it does not linger.
|
|
45
46
|
daemon: {
|
|
@@ -91,31 +92,110 @@ export function getProjectTypeDefaults(projectType) {
|
|
|
91
92
|
export function getEnvironmentDefaults(env) {
|
|
92
93
|
switch (env) {
|
|
93
94
|
case 'ci':
|
|
94
|
-
return {
|
|
95
|
-
failOnCritical: true,
|
|
96
|
-
showProgress: false
|
|
97
|
-
};
|
|
95
|
+
return {};
|
|
98
96
|
case 'development':
|
|
99
97
|
return {
|
|
100
|
-
showProgress: true,
|
|
101
98
|
minSeverity: 'high'
|
|
102
99
|
};
|
|
103
100
|
case 'production':
|
|
104
101
|
return {
|
|
105
|
-
minSeverity: 'severe'
|
|
106
|
-
failOnCritical: true
|
|
102
|
+
minSeverity: 'severe'
|
|
107
103
|
};
|
|
108
104
|
default:
|
|
109
105
|
return {};
|
|
110
106
|
}
|
|
111
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* The value-drift colour threshold — the single source of truth for the
|
|
110
|
+
* `styles.colorDeltaE` config key (Spec 70 colour directive, item 2). The phase
|
|
111
|
+
* rule (`src/phase/rules/styles.ts`) and the legacy analyzer
|
|
112
|
+
* (`src/analyzers/universal/UniversalStylesAnalyzer.ts`) both read this symbol;
|
|
113
|
+
* the literal must not be re-declared elsewhere.
|
|
114
|
+
*
|
|
115
|
+
* `1.0` is the CIEDE2000 (ΔE00) just-noticeable difference. The CIEDE2000
|
|
116
|
+
* formula (Sharma, Wu & Dalal 2005, "The CIEDE2000 color-difference formula:
|
|
117
|
+
* Implementation notes, supplementary test data, and mathematical observations",
|
|
118
|
+
* Color Research & Application 30(1):21–30, doi:10.1002/col.20070; standardised
|
|
119
|
+
* as CIE 142-2001 / ISO/CIE 11664-6) is normalised so ΔE00 = 1.0 is the
|
|
120
|
+
* threshold of human perception: pairs with ΔE00 < 1.0 are perceptually
|
|
121
|
+
* indistinguishable ("near-identical") — exactly the drift the rule flags. The
|
|
122
|
+
* metric changed ΔE76 → ΔE00 in Spec 70 colour directive item 4; the prior ΔE76
|
|
123
|
+
* default of 2.5 was "JND-adjacent" to the ~2.3 ΔE76 JND with no written
|
|
124
|
+
* citation and does not transfer, because the ΔE00 JND is 1.0, not 2.3.
|
|
125
|
+
*/
|
|
126
|
+
export const DEFAULT_COLOR_DELTA_E = 1.0;
|
|
127
|
+
/**
|
|
128
|
+
* The validator-package vocabulary — the single source of truth for which npm
|
|
129
|
+
* packages mark an imported identifier as validator-provenanced. Consumed by
|
|
130
|
+
* three sites (Spec 21 R4 / R3 cross-domain validator-bypass):
|
|
131
|
+
* - `buildProvenanceContext` (`src/analyzers/provenance.ts`) — the
|
|
132
|
+
* `validatorProvenanced` map the schema/data-access analyzers and the
|
|
133
|
+
* CLI `map` command read;
|
|
134
|
+
* - the migrated `cross-domain/no-validator-reachable` rule
|
|
135
|
+
* (`src/phase/rules/crossDomain.ts`);
|
|
136
|
+
* - the legacy `CrossDomainAnalyzer` (kept for the Spec 68 parity guard).
|
|
137
|
+
*
|
|
138
|
+
* This replaced the hand-maintained `VALIDATOR_PACKAGES` `ReadonlySet` that
|
|
139
|
+
* lived in `provenance.ts` and did the job of the deleted `validatorPackageList`
|
|
140
|
+
* config key. The list must not be re-declared elsewhere: consumers read the
|
|
141
|
+
* config key and fall back to this symbol (the `DEFAULT_COLOR_DELTA_E` pattern).
|
|
142
|
+
*/
|
|
143
|
+
export const DEFAULT_VALIDATOR_PACKAGES = [
|
|
144
|
+
'zod',
|
|
145
|
+
'joi',
|
|
146
|
+
'ajv',
|
|
147
|
+
'valibot',
|
|
148
|
+
'yup',
|
|
149
|
+
'superstruct',
|
|
150
|
+
'arktype',
|
|
151
|
+
'@sinclair/typebox',
|
|
152
|
+
'class-validator',
|
|
153
|
+
];
|
|
154
|
+
/**
|
|
155
|
+
* The git-churn lookback window — the single source of truth for the top-level
|
|
156
|
+
* `churn` config key (Spec 13 R1). The churn extractor
|
|
157
|
+
* (`src/churn/churnExtractor.ts`) reads `churnWindowMonths` from here instead of
|
|
158
|
+
* hardcoding `12`; the two extraction call sites (`deepSync` in
|
|
159
|
+
* `src/codeIndexDB.ts` and the CLI `hotspots` command in `src/cli.ts`) read the
|
|
160
|
+
* configured `churn` key and fall back to this symbol (the `DEFAULT_COLOR_DELTA_E`
|
|
161
|
+
* pattern). The literal must not be re-declared elsewhere.
|
|
162
|
+
*
|
|
163
|
+
* `12` months is the window `git log --since` scans for file/function churn.
|
|
164
|
+
*/
|
|
165
|
+
export const DEFAULT_CHURN_CONFIG = {
|
|
166
|
+
churnWindowMonths: 12,
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* The health-score pass/fail floor — the single source of truth for the
|
|
170
|
+
* `audit.health` (`mcp.ts`) and `audit_health` (`mcp-tools-shared.ts`) MCP
|
|
171
|
+
* tools' `threshold` parameter default. `calculateHealthScore` returns a 0-100
|
|
172
|
+
* score; below this floor a codebase reports `needs-attention`. Read by both
|
|
173
|
+
* tool-definition `default` fields and both handler fallbacks; the literal must
|
|
174
|
+
* not be re-declared elsewhere (the `DEFAULT_COLOR_DELTA_E` pattern).
|
|
175
|
+
*
|
|
176
|
+
* `70` is the cut below which `audit.health` reports `needs-attention`.
|
|
177
|
+
*/
|
|
178
|
+
export const DEFAULT_HEALTH_SCORE_THRESHOLD = 70;
|
|
179
|
+
/**
|
|
180
|
+
* Resolve the health-score floor for one call. Precedence: the MCP `threshold`
|
|
181
|
+
* argument, then the configured `thresholds.minHealthScore` (read from
|
|
182
|
+
* `.codeauditor.json` by `loadMinHealthScore`), then the single default above.
|
|
183
|
+
* This is the one place the fallback is computed, so both MCP surfaces move
|
|
184
|
+
* together when the default changes. The `||` (not `??`) mirrors the historical
|
|
185
|
+
* fallback: a `0` threshold (always-pass) was — and remains — indistinguishable
|
|
186
|
+
* from "unset".
|
|
187
|
+
*
|
|
188
|
+
* @param args the MCP tool arguments carrying an optional `threshold` override
|
|
189
|
+
* @param configMin the configured `thresholds.minHealthScore` floor (if any)
|
|
190
|
+
* @returns the resolved floor, never below the single default above
|
|
191
|
+
*/
|
|
192
|
+
export function resolveHealthThreshold(args, configMin) {
|
|
193
|
+
return args?.threshold || configMin || DEFAULT_HEALTH_SCORE_THRESHOLD;
|
|
194
|
+
}
|
|
112
195
|
/**
|
|
113
196
|
* Default analyzer configurations
|
|
114
197
|
*/
|
|
115
198
|
export const DEFAULT_ANALYZER_CONFIGS = {
|
|
116
|
-
// Spec-17 R5: maxComplexity (old heuristic) deprecated; use maxMethodComplexity
|
|
117
|
-
// and classAggregateComplexity for true cyclomatic complexity.
|
|
118
|
-
//
|
|
119
199
|
// AUTHORITATIVE source is DEFAULT_SOLID_CONFIG (UniversalSOLIDAnalyzer.ts) —
|
|
120
200
|
// the pipeline and `--print-config` resolve from there (RUNTIME_DEFAULT_CONFIGS),
|
|
121
201
|
// NOT from this copy. This namespace is exported from the library (`src/index.ts`)
|
|
@@ -126,8 +206,6 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
126
206
|
maxMethodsPerClass: 20,
|
|
127
207
|
maxLinesPerMethod: 200,
|
|
128
208
|
maxParametersPerMethod: 6,
|
|
129
|
-
maxImportsPerFile: 5, // Spec 11 R3 sweep: 20 → 5 (precision-first)
|
|
130
|
-
maxComplexity: 10, // DEPRECATED — old heuristic
|
|
131
209
|
maxInterfaceMembers: 25,
|
|
132
210
|
// R5.1: Per-method cyclomatic complexity threshold (true McCC)
|
|
133
211
|
maxMethodComplexity: 50,
|
|
@@ -165,22 +243,9 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
165
243
|
divergence: {
|
|
166
244
|
divergenceThreshold: 0.05,
|
|
167
245
|
divergenceRuns: 2,
|
|
168
|
-
minPairSimilarity: 0.5,
|
|
169
246
|
},
|
|
170
247
|
},
|
|
171
248
|
dataAccess: {
|
|
172
|
-
databasePatterns: {
|
|
173
|
-
postgres: ['pg', 'postgres', 'postgresql'],
|
|
174
|
-
mysql: ['mysql', 'mysql2'],
|
|
175
|
-
mongodb: ['mongodb', 'mongoose']
|
|
176
|
-
},
|
|
177
|
-
securityPatterns: {
|
|
178
|
-
parameterizedQueries: ['?', '$1', ':param'],
|
|
179
|
-
},
|
|
180
|
-
performanceThresholds: {
|
|
181
|
-
maxJoins: 5,
|
|
182
|
-
warnOnSelectStar: true
|
|
183
|
-
},
|
|
184
249
|
// Spec 21 R3: shared detection mode — provenance-primary with name-fallback
|
|
185
250
|
detection: {
|
|
186
251
|
mode: 'hybrid',
|
|
@@ -230,7 +295,6 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
230
295
|
enableTableUsageTracking: true,
|
|
231
296
|
checkMissingReferences: true,
|
|
232
297
|
checkNamingConventions: true,
|
|
233
|
-
detectUnusedTables: false,
|
|
234
298
|
validateQueryPatterns: true,
|
|
235
299
|
reportUnresolvedQueries: true,
|
|
236
300
|
maxQueriesPerFunction: 1, // Spec 11 R3 sweep: 5 → 1 (precision-first)
|
|
@@ -243,11 +307,6 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
243
307
|
detection: {
|
|
244
308
|
mode: 'hybrid',
|
|
245
309
|
},
|
|
246
|
-
// Spec 21 R4: validator package list for provenanced validator detection
|
|
247
|
-
validatorPackageList: [
|
|
248
|
-
'zod', 'joi', 'ajv', 'valibot', 'yup', 'superstruct', 'arktype',
|
|
249
|
-
'@sinclair/typebox', 'class-validator',
|
|
250
|
-
],
|
|
251
310
|
// Spec 29: Declarative table-source registry — Tier 2 (ORM detection).
|
|
252
311
|
// Adding an ORM becomes a config entry, not code.
|
|
253
312
|
tableSources: [
|
|
@@ -258,7 +317,7 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
258
317
|
},
|
|
259
318
|
// Spec 10 R3: style intelligence analyzer defaults
|
|
260
319
|
styles: {
|
|
261
|
-
colorDeltaE:
|
|
320
|
+
colorDeltaE: DEFAULT_COLOR_DELTA_E,
|
|
262
321
|
scaleProperties: [
|
|
263
322
|
'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
|
|
264
323
|
'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
|
|
@@ -294,6 +353,9 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
294
353
|
},
|
|
295
354
|
validatorBypass: {
|
|
296
355
|
validators: [],
|
|
356
|
+
// The package vocabulary for provenanced-validator detection (Spec 21 R4).
|
|
357
|
+
// Overridable via `analyzerConfigs["cross-domain"].validatorBypass.validatorPackageList`.
|
|
358
|
+
validatorPackageList: DEFAULT_VALIDATOR_PACKAGES,
|
|
297
359
|
modeShare: 0.8,
|
|
298
360
|
minCorpus: 20,
|
|
299
361
|
depth: 3,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,wEAAwE;QACxE,0EAA0E;QAC1E,4DAA4D;QAC5D,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC;QACpN,YAAY,EAAE;YACZ,oBAAoB;YACpB,aAAa;YACb,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,2BAA2B;YAC3B,2BAA2B;SAC5B;QACD,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,wEAAwE;QACxE,0EAA0E;QAC1E,4DAA4D;QAC5D,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC;QACpN,YAAY,EAAE;YACZ,oBAAoB;YACpB,aAAa;YACb,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,2BAA2B;YAC3B,2BAA2B;SAC5B;QACD,8EAA8E;QAC9E,+EAA+E;QAC/E,kEAAkE;QAClE,8CAA8C;QAC9C,WAAW,EAAE,MAAM;QACnB,sEAAsE;QACtE,4EAA4E;QAC5E,kEAAkE;QAClE,UAAU,EAAE,EAAE,cAAc,EAAE,8BAA8B,EAAE;QAC9D,gEAAgE;QAChE,6EAA6E;QAC7E,yEAAyE;QACzE,uDAAuD;QACvD,kEAAkE;QAClE,6EAA6E;QAC7E,0EAA0E;QAC1E,KAAK,EAAE,oBAAoB;QAC3B,4EAA4E;QAC5E,0EAA0E;QAC1E,MAAM,EAAE;YACN,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO;gBACL,YAAY,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,mBAAmB,CAAC;gBAC/E,YAAY,EAAE;oBACZ,GAAG,gBAAgB,EAAE,CAAC,YAAa;oBACnC,aAAa;oBACb,cAAc;iBACf;aACF,CAAC;QAEJ,KAAK,OAAO;YACV,OAAO;gBACL,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBAC1C,YAAY,EAAE;oBACZ,GAAG,gBAAgB,EAAE,CAAC,YAAa;oBACnC,cAAc;oBACd,aAAa;iBACd;aACF,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;aACvD,CAAC;QAEJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,IAAI;YACP,OAAO,EAAE,CAAC;QAEZ,KAAK,aAAa;YAChB,OAAO;gBACL,WAAW,EAAE,MAAM;aACpB,CAAC;QAEJ,KAAK,YAAY;YACf,OAAO;gBACL,WAAW,EAAE,QAAQ;aACtB,CAAC;QAEJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,aAAa;IACb,SAAS;IACT,mBAAmB;IACnB,iBAAiB;CAClB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA6B,EAC7B,SAAkB;IAElB,OAAQ,IAAI,EAAE,SAAoB,IAAI,SAAS,IAAI,8BAA8B,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,6EAA6E;IAC7E,kFAAkF;IAClF,mFAAmF;IACnF,sEAAsE;IACtE,2EAA2E;IAC3E,oDAAoD;IACpD,KAAK,EAAE;QACL,kBAAkB,EAAE,EAAE;QACtB,iBAAiB,EAAE,GAAG;QACtB,sBAAsB,EAAE,CAAC;QACzB,mBAAmB,EAAE,EAAE;QACvB,+DAA+D;QAC/D,mBAAmB,EAAE,EAAE;QACvB,2CAA2C;QAC3C,qBAAqB,EAAE,EAAE;QACzB,wBAAwB,EAAE,GAAG;KAC9B;IAED,iFAAiF;IACjF,iFAAiF;IACjF,gFAAgF;IAChF,gFAAgF;IAChF,kFAAkF;IAClF,8DAA8D;IAC9D,wEAAwE;IACxE,GAAG,EAAE;QACH,gBAAgB,EAAE,EAAE;QACpB,mBAAmB,EAAE,IAAI;QACzB,eAAe,EAAE;YACf,cAAc,EAAE,cAAc;YAC9B,eAAe,EAAE,eAAe;YAChC,cAAc,EAAE,cAAc;YAC9B,eAAe,EAAE,eAAe;YAChC,YAAY,EAAE,aAAa;SAC5B;QACD,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,IAAI;QACtB,yBAAyB,EAAE,KAAK;QAChC,yBAAyB,EAAE,IAAI;QAC/B,aAAa,EAAE,CAAC;QAChB,2EAA2E;QAC3E,6EAA6E;QAC7E,4DAA4D;QAC5D,UAAU,EAAE;YACV,mBAAmB,EAAE,IAAI;YACzB,cAAc,EAAE,CAAC;SAClB;KACF;IAED,UAAU,EAAE;QACV,4EAA4E;QAC5E,SAAS,EAAE;YACT,IAAI,EAAE,QAAiB;SACxB;KACF;IAED,wEAAwE;IACxE,OAAO,EAAE;QACP,qBAAqB,EAAE,IAAI;KAC5B;IAED,2CAA2C;IAC3C,aAAa,EAAE;QACb,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,IAAI;QACtB,oBAAoB,EAAE,CAAC,EAAQ,6CAA6C;QAC5E,cAAc,EAAE;YACd,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,MAAM;YACN,SAAS;YACT,WAAW;YACX,UAAU;YACV,uEAAuE;YACvE,gEAAgE;YAChE,iDAAiD;YACjD,SAAS;YACT,SAAS;YACT,qGAAqG;SACtG;QACD,KAAK,EAAE,QAAQ;QACf,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE;YACf,sBAAsB;YACtB,oBAAoB;YACpB,iBAAiB;YACjB,kBAAkB;YAClB,aAAa;YACb,WAAW;YACX,cAAc;YACd,eAAe;YACf,WAAW;SACZ;KACF;IAED,uCAAuC;IACvC,MAAM,EAAE;QACN,wBAAwB,EAAE,IAAI;QAC9B,sBAAsB,EAAE,IAAI;QAC5B,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,IAAI;QAC3B,uBAAuB,EAAE,IAAI;QAC7B,qBAAqB,EAAE,CAAC,EAAO,4CAA4C;QAC3E,eAAe,EAAE,EAAE;QACnB,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;QAC1B,cAAc,EAAE,CAAC,QAAQ,CAAC;QAC1B,aAAa,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;QAC/C,WAAW,EAAE,EAAE;QACf,4EAA4E;QAC5E,SAAS,EAAE;YACT,IAAI,EAAE,QAAiB;SACxB;QACD,uEAAuE;QACvE,kDAAkD;QAClD,YAAY,EAAE;YACZ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACpF,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAClF,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE;SACrF;KACF;IAED,mDAAmD;IACnD,MAAM,EAAE;QACN,WAAW,EAAE,qBAAqB;QAClC,eAAe,EAAE;YACf,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa;YACtE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc;YAC3E,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW;SAC5C;QACD,iBAAiB,EAAE,CAAC;QACpB,mCAAmC,EAAE,CAAC;QACtC,6BAA6B,EAAE,CAAC;QAChC,iCAAiC,EAAE,GAAG;QACtC,uBAAuB,EAAE,EAAE;QAC3B,6BAA6B,EAAE;YAC7B,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW;YACpD,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe;YAClE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY;YACtE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY;YACvD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY;SAC/D;KACF;IAED,kDAAkD;IAClD,WAAW,EAAE;QACX,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE,GAAG;QACd,uBAAuB,EAAE,GAAG;KAC7B;IAED,0CAA0C;IAC1C,WAAW,EAAE;QACX,eAAe,EAAE;YACf,sBAAsB,EAAE,IAAI;YAC5B,sBAAsB,EAAE,IAAI;YAC5B,6BAA6B,EAAE,IAAI;YACnC,WAAW,EAAE,CAAC;SACf;QACD,eAAe,EAAE;YACf,UAAU,EAAE,EAAE;YACd,2EAA2E;YAC3E,0FAA0F;YAC1F,oBAAoB,EAAE,0BAA0B;YAChD,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,CAAC;SACT;QACD,QAAQ,EAAE;YACR,SAAS,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC;YAC5D,gBAAgB,EAAE,CAAC;YACnB,aAAa,EAAE,GAAG;SACnB;KACF;CACF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkB;IAClD;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE;YACL,YAAY;YACZ,UAAU;YACV,SAAS;YACT,cAAc;YACd,aAAa;YACb,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,aAAa;YACb,iBAAiB;YACjB,gBAAgB;YAChB,aAAa;YACb,UAAU;YACV,UAAU;SACX;QACD,SAAS,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;KACrC;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAuC,EACvC,cAAmC;IAEnC,gDAAgD;IAChD,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,wCAAwC;QACxC,OAAO,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,CAAC;IAED,8DAA8D;IAC9D,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACnE,CAAC;IAEF,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CACjC,CAAC;IAEF,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,yEAAyE;IACzE,6EAA6E;IAC7E,iFAAiF;IACjF,YAAY,EAAE,uCAAuC;IACrD,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,GAAG;IACtB,eAAe,EAAE,KAAK;CACvB,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -9,9 +9,10 @@
|
|
|
9
9
|
* version of whatever package.json sits next to it on disk (the defect where a
|
|
10
10
|
* pre-3.9.4 binary announced itself as 3.9.9).
|
|
11
11
|
*/
|
|
12
|
-
export declare const PACKAGE_VERSION = "5.0
|
|
12
|
+
export declare const PACKAGE_VERSION = "5.2.0";
|
|
13
13
|
export declare const DEFAULT_PORT = 11437;
|
|
14
14
|
export declare const DEFAULT_SERVER_URL = "http://localhost:11437";
|
|
15
15
|
export declare const MCP_SERVER_NAME = "code-index";
|
|
16
|
+
export declare const DEFAULT_RULE_REQUEST_BASE_URL = "https://www.codeauditormcp.com";
|
|
16
17
|
export declare const IS_DEV_MODE: boolean;
|
|
17
18
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,UAAU,CAAC;AAKvC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAGlC,eAAO,MAAM,kBAAkB,2BAAqC,CAAC;AAGrE,eAAO,MAAM,eAAe,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,UAAU,CAAC;AAKvC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAGlC,eAAO,MAAM,kBAAkB,2BAAqC,CAAC;AAGrE,eAAO,MAAM,eAAe,eAAe,CAAC;AAK5C,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAW9E,eAAO,MAAM,WAAW,SAAiC,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -19,6 +19,10 @@ export const DEFAULT_PORT = 11437;
|
|
|
19
19
|
export const DEFAULT_SERVER_URL = `http://localhost:${DEFAULT_PORT}`;
|
|
20
20
|
// MCP server name
|
|
21
21
|
export const MCP_SERVER_NAME = 'code-index';
|
|
22
|
+
// Base URL of the docs site's HTTP tool API (`/api/tools/<name>`), used by the
|
|
23
|
+
// `code-audit request-rule` subcommand. A default, not a contract — overridable
|
|
24
|
+
// with `--endpoint`.
|
|
25
|
+
export const DEFAULT_RULE_REQUEST_BASE_URL = 'https://www.codeauditormcp.com';
|
|
22
26
|
// Development mode detection.
|
|
23
27
|
//
|
|
24
28
|
// Opt-in via an explicit `--dev` flag only. It must NOT key off `NODE_ENV` or
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAEvC,uCAAuC;AACvC,iEAAiE;AACjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,YAAY,EAAE,CAAC;AAErE,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,sFAAsF;AACtF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAEvC,uCAAuC;AACvC,iEAAiE;AACjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,YAAY,EAAE,CAAC;AAErE,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,+EAA+E;AAC/E,gFAAgF;AAChF,qBAAqB;AACrB,MAAM,CAAC,MAAM,6BAA6B,GAAG,gCAAgC,CAAC;AAE9E,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,sFAAsF;AACtF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/daemon/main.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AA2BH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ElF"}
|
package/dist/daemon/main.js
CHANGED
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
* --foreground log state transitions to stderr instead of running silent
|
|
16
16
|
* --lsp also serve the LSP face over stdio
|
|
17
17
|
*/
|
|
18
|
-
import '../native-bootstrap.js';
|
|
19
18
|
import path from 'node:path';
|
|
20
|
-
import {
|
|
19
|
+
import { fileURLToPath } from 'node:url';
|
|
20
|
+
import { realpathSync } from 'node:fs';
|
|
21
21
|
import { DaemonCore } from './core.js';
|
|
22
22
|
import { SocketFace } from './socketServer.js';
|
|
23
23
|
import { LspFace } from './lspServer.js';
|
|
@@ -27,6 +27,16 @@ import { findConfigFileUp, loadConfig } from '../config/configLoader.js';
|
|
|
27
27
|
import { PACKAGE_VERSION } from '../constants.js';
|
|
28
28
|
import { parseArgs, USAGE } from './args.js';
|
|
29
29
|
const DEFAULT_IDLE_TIMEOUT_MS = 5 * 60 * 1000;
|
|
30
|
+
/**
|
|
31
|
+
* The `CODE_AUDITOR_DAEMON_IDLE_MS` override, or `undefined` when unset/invalid.
|
|
32
|
+
* Single read site — the idle-timeout resolution consumes this; a value that is
|
|
33
|
+
* not a positive finite number is treated as "not set" and falls through to the
|
|
34
|
+
* config/default chain.
|
|
35
|
+
*/
|
|
36
|
+
function daemonIdleMsFromEnv() {
|
|
37
|
+
const envMs = Number(process.env.CODE_AUDITOR_DAEMON_IDLE_MS);
|
|
38
|
+
return Number.isFinite(envMs) && envMs > 0 ? envMs : undefined;
|
|
39
|
+
}
|
|
30
40
|
/**
|
|
31
41
|
* Run the daemon in-process, blocking until a signal / idle timeout / socket
|
|
32
42
|
* `shutdown` request. Shared by the detached entry (`main.ts`'s own `main`) and
|
|
@@ -54,9 +64,7 @@ export async function runDaemonForeground(options) {
|
|
|
54
64
|
// Idle timeout resolution: CLI arg → env → config → default.
|
|
55
65
|
let idleTimeoutMs = options.idleTimeoutMs;
|
|
56
66
|
if (idleTimeoutMs === undefined || !Number.isFinite(idleTimeoutMs) || idleTimeoutMs <= 0) {
|
|
57
|
-
|
|
58
|
-
if (Number.isFinite(envMs) && envMs > 0)
|
|
59
|
-
idleTimeoutMs = envMs;
|
|
67
|
+
idleTimeoutMs = daemonIdleMsFromEnv();
|
|
60
68
|
}
|
|
61
69
|
if (idleTimeoutMs === undefined || !Number.isFinite(idleTimeoutMs) || idleTimeoutMs <= 0) {
|
|
62
70
|
try {
|
|
@@ -137,9 +145,24 @@ async function main() {
|
|
|
137
145
|
// to reach `runDaemonForeground`; without this guard the import's top-level
|
|
138
146
|
// `main()` would re-run `runDaemonForeground` on the CLI's own argv — a second
|
|
139
147
|
// daemon in the same process, a second lease, and a second seed.
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
148
|
+
//
|
|
149
|
+
// Compare realpaths, not string-built URLs (the same symlink defect the MCP
|
|
150
|
+
// server's `isMainModule` fixes — see mcp.ts): `import.meta.url` is
|
|
151
|
+
// symlink-resolved by Node, while `process.argv[1]` under a pnpm/npm `.bin`
|
|
152
|
+
// shim is the shim path. A naive URL comparison never matches on a symlinked
|
|
153
|
+
// install, so the published `code-auditor-daemon` bin boots to a silent exit
|
|
154
|
+
// and never answers `--version` / `--help`.
|
|
155
|
+
function isMainModule() {
|
|
156
|
+
if (!process.argv[1])
|
|
157
|
+
return false;
|
|
158
|
+
try {
|
|
159
|
+
return realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1]);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (isMainModule()) {
|
|
143
166
|
main().catch((err) => {
|
|
144
167
|
console.error('[code-auditor-daemon] fatal:', err);
|
|
145
168
|
process.exit(1);
|
package/dist/daemon/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":"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"}
|
package/dist/dataPaths.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `CODE_AUDITOR_DATA_DIR` override, trimmed and normalized to `undefined`
|
|
3
|
+
* when unset/blank. Single read site — the path resolver and the two display
|
|
4
|
+
* surfaces (MCP startup + auto-index log) all consume this, so they can never
|
|
5
|
+
* disagree on whether a data dir was configured.
|
|
6
|
+
*/
|
|
7
|
+
export declare function dataDirEnv(): string | undefined;
|
|
1
8
|
/**
|
|
2
9
|
* Default on-disk path for the code index database.
|
|
3
10
|
*
|
|
@@ -56,17 +63,6 @@ export declare function resolveDaemonLogPath(projectRoot: string): string;
|
|
|
56
63
|
* `options.output || process.cwd()` default, wearing a different hat.
|
|
57
64
|
*/
|
|
58
65
|
export declare function resolveMcpDevLogPath(): string;
|
|
59
|
-
/**
|
|
60
|
-
* Cache directory for a rebuilt Go analyzer binary. A rebuild — needed when the
|
|
61
|
-
* running platform has no shipped prebuilt binary — lands here, never in
|
|
62
|
-
* `dist/languages/go`, so the shipped tree stays read-only (npm/pnpm store, CI
|
|
63
|
-
* caches, container layers) and the shipped artifact is never overwritten. The
|
|
64
|
-
* binary filename is platform-qualified (`analyzer-<goos>-<goarch>`), so a single
|
|
65
|
-
* flat dir holds every platform without collision; the OS cache root is
|
|
66
|
-
* gitignored by convention and wiped by clean installs, which is exactly the
|
|
67
|
-
* lifecycle a derived binary should have.
|
|
68
|
-
*/
|
|
69
|
-
export declare function resolveGoAnalyzerCacheDir(): string;
|
|
70
66
|
/**
|
|
71
67
|
* OS-specific per-user config root for persistent, user-scoped state (the anonymous
|
|
72
68
|
* install ID and the telemetry opt-in). Deliberately NOT the cache root above: the
|
|
@@ -77,6 +73,16 @@ export declare function resolveGoAnalyzerCacheDir(): string;
|
|
|
77
73
|
* @returns The OS-specific per-user config directory for persistent user-scoped state.
|
|
78
74
|
*/
|
|
79
75
|
export declare function getUserConfigRoot(): string;
|
|
76
|
+
/**
|
|
77
|
+
* Discover the project root for a starting directory by walking up until a
|
|
78
|
+
* marker (`PROJECT_ROOT_MARKERS`) is found. Returns the resolved start directory
|
|
79
|
+
* when no marker is found — the caller then hashes whatever it was given, which
|
|
80
|
+
* is the correct fallback for a bare directory with no project identity.
|
|
81
|
+
*
|
|
82
|
+
* @param startDir - Directory to begin the upward search from.
|
|
83
|
+
* @returns The nearest ancestor carrying a project marker, or the resolved start.
|
|
84
|
+
*/
|
|
85
|
+
export declare function discoverProjectRoot(startDir: string): string;
|
|
80
86
|
/** Stable per-project identifier used to scope cache/data paths. */
|
|
81
87
|
export declare function projectHash(root: string): string;
|
|
82
88
|
//# sourceMappingURL=dataPaths.d.ts.map
|
package/dist/dataPaths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataPaths.d.ts","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"dataPaths.d.ts","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAG/C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CActE;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAe5D;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD"}
|
package/dist/dataPaths.js
CHANGED
|
@@ -2,6 +2,16 @@ import path from 'node:path';
|
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import { createHash } from 'node:crypto';
|
|
5
|
+
/**
|
|
6
|
+
* The `CODE_AUDITOR_DATA_DIR` override, trimmed and normalized to `undefined`
|
|
7
|
+
* when unset/blank. Single read site — the path resolver and the two display
|
|
8
|
+
* surfaces (MCP startup + auto-index log) all consume this, so they can never
|
|
9
|
+
* disagree on whether a data dir was configured.
|
|
10
|
+
*/
|
|
11
|
+
export function dataDirEnv() {
|
|
12
|
+
const raw = process.env.CODE_AUDITOR_DATA_DIR?.trim();
|
|
13
|
+
return raw ? raw : undefined;
|
|
14
|
+
}
|
|
5
15
|
/**
|
|
6
16
|
* Default on-disk path for the code index database.
|
|
7
17
|
*
|
|
@@ -27,14 +37,17 @@ import { createHash } from 'node:crypto';
|
|
|
27
37
|
* @returns The on-disk path to the index database.
|
|
28
38
|
*/
|
|
29
39
|
export function resolvePersistedIndexPath(projectRoot) {
|
|
30
|
-
const raw =
|
|
40
|
+
const raw = dataDirEnv();
|
|
31
41
|
if (raw) {
|
|
32
42
|
if (projectRoot) {
|
|
33
|
-
return path.join(path.resolve(raw), 'projects', projectHash(projectRoot), 'index.db');
|
|
43
|
+
return path.join(path.resolve(raw), 'projects', projectHash(discoverProjectRoot(projectRoot)), 'index.db');
|
|
34
44
|
}
|
|
35
45
|
return path.join(path.resolve(raw), 'index.db');
|
|
36
46
|
}
|
|
37
|
-
|
|
47
|
+
// Key on the project's own identity (its git root / package.json dir), never
|
|
48
|
+
// on where the process happened to start. Two invocations started from
|
|
49
|
+
// different directories inside one project must land on the same DB.
|
|
50
|
+
const root = discoverProjectRoot(projectRoot || process.cwd());
|
|
38
51
|
return path.join(getFallbackCacheRoot(), 'projects', projectHash(root), 'index.db');
|
|
39
52
|
}
|
|
40
53
|
/** Directory that contains `index.db`. Optionally accepts projectRoot for scoped paths. */
|
|
@@ -80,19 +93,6 @@ export function resolveDaemonLogPath(projectRoot) {
|
|
|
80
93
|
export function resolveMcpDevLogPath() {
|
|
81
94
|
return path.join(getFallbackCacheRoot(), 'logs', 'mcp-server.log');
|
|
82
95
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Cache directory for a rebuilt Go analyzer binary. A rebuild — needed when the
|
|
85
|
-
* running platform has no shipped prebuilt binary — lands here, never in
|
|
86
|
-
* `dist/languages/go`, so the shipped tree stays read-only (npm/pnpm store, CI
|
|
87
|
-
* caches, container layers) and the shipped artifact is never overwritten. The
|
|
88
|
-
* binary filename is platform-qualified (`analyzer-<goos>-<goarch>`), so a single
|
|
89
|
-
* flat dir holds every platform without collision; the OS cache root is
|
|
90
|
-
* gitignored by convention and wiped by clean installs, which is exactly the
|
|
91
|
-
* lifecycle a derived binary should have.
|
|
92
|
-
*/
|
|
93
|
-
export function resolveGoAnalyzerCacheDir() {
|
|
94
|
-
return path.join(getFallbackCacheRoot(), 'go-analyzer');
|
|
95
|
-
}
|
|
96
96
|
/** OS-specific cache root (gitignored by convention, wiped by clean installs). */
|
|
97
97
|
function getFallbackCacheRoot() {
|
|
98
98
|
const xdg = process.env.XDG_CACHE_HOME?.trim();
|
|
@@ -148,6 +148,41 @@ function resolveRealPath(p) {
|
|
|
148
148
|
return path.resolve(p);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Project-identity markers: a directory that contains any of these is treated
|
|
153
|
+
* as a project root. Walked upward from the process start (or the `-p` path) so
|
|
154
|
+
* the cache key reflects *what* is being audited, not *where* the process was
|
|
155
|
+
* started — two invocations from different directories inside one project must
|
|
156
|
+
* land on the same database.
|
|
157
|
+
*
|
|
158
|
+
* `.git` may be a file (git worktree / submodule) or a directory.
|
|
159
|
+
*/
|
|
160
|
+
const PROJECT_ROOT_MARKERS = ['.git', 'package.json', 'go.mod'];
|
|
161
|
+
/**
|
|
162
|
+
* Discover the project root for a starting directory by walking up until a
|
|
163
|
+
* marker (`PROJECT_ROOT_MARKERS`) is found. Returns the resolved start directory
|
|
164
|
+
* when no marker is found — the caller then hashes whatever it was given, which
|
|
165
|
+
* is the correct fallback for a bare directory with no project identity.
|
|
166
|
+
*
|
|
167
|
+
* @param startDir - Directory to begin the upward search from.
|
|
168
|
+
* @returns The nearest ancestor carrying a project marker, or the resolved start.
|
|
169
|
+
*/
|
|
170
|
+
export function discoverProjectRoot(startDir) {
|
|
171
|
+
let current = resolveRealPath(startDir);
|
|
172
|
+
for (;;) {
|
|
173
|
+
for (const marker of PROJECT_ROOT_MARKERS) {
|
|
174
|
+
if (fs.existsSync(path.join(current, marker))) {
|
|
175
|
+
return current;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const parent = path.dirname(current);
|
|
179
|
+
if (parent === current) {
|
|
180
|
+
// Reached the filesystem root with no marker — fall back to the start dir.
|
|
181
|
+
return resolveRealPath(startDir);
|
|
182
|
+
}
|
|
183
|
+
current = parent;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
151
186
|
/** Stable per-project identifier used to scope cache/data paths. */
|
|
152
187
|
export function projectHash(root) {
|
|
153
188
|
return createHash('sha256').update(resolveRealPath(root)).digest('hex').substring(0, 16);
|
package/dist/dataPaths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataPaths.js","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"dataPaths.js","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The project-resolution environment — a single constructor over a project root
|
|
3
|
+
* that produces every root-derived input the import / symbol / SQL resolution
|
|
4
|
+
* surfaces consume.
|
|
5
|
+
*
|
|
6
|
+
* Before this module, the same derivation was duplicated in two places with two
|
|
7
|
+
* different shapes: `auditRunner.buildPipelineAnalyzerConfig` read tsconfig
|
|
8
|
+
* aliases, package entry points, declared type packages, the SQL dialect, and the
|
|
9
|
+
* virtual-module list inline into `_infra`, while each measurement script
|
|
10
|
+
* re-derived a *subset* of the same environment (`detectDialect(projectRoot).dialect`,
|
|
11
|
+
* sometimes `readDeclaredTypePackages`) ad hoc. A script that forgot a field
|
|
12
|
+
* silently measured a thinner environment than the runner ships — the same
|
|
13
|
+
* drift class the declared-input discipline exists to prevent. One constructor
|
|
14
|
+
* closes it: every consumer names the same inputs, from the same root.
|
|
15
|
+
*
|
|
16
|
+
* The environment is entirely sync and parser-free — it reads `tsconfig.json`,
|
|
17
|
+
* `package.json`, and `wrangler.toml` (for a D1 binding) from disk, none of
|
|
18
|
+
* which need tree-sitter. Callers still run `initializeLanguages()` +
|
|
19
|
+
* `initParsers()` + `discoverFiles()` themselves; those are language init and
|
|
20
|
+
* file discovery, not resolution, and this module does not own them.
|
|
21
|
+
*/
|
|
22
|
+
import { type Dialect } from '../mcp-tools/discoveryQueries.js';
|
|
23
|
+
import { type TsconfigAliases } from './importClassification.js';
|
|
24
|
+
/** The complete project-resolution environment, derived from one project root. */
|
|
25
|
+
export interface ResolutionEnvironment {
|
|
26
|
+
/** tsconfig `paths` + `baseUrl` for alias classification + resolution. */
|
|
27
|
+
tsconfigAliases: TsconfigAliases;
|
|
28
|
+
/** package.json entry points (facade-expanded), absolute. */
|
|
29
|
+
packageEntryPoints: string[];
|
|
30
|
+
/** The project's declared type packages (the ambient-type gate). */
|
|
31
|
+
declaredTypePackages: ReadonlySet<string>;
|
|
32
|
+
/** The corpus's named SQL dialect, or null when undetermined/ambiguous. */
|
|
33
|
+
sqlDialect: Dialect | null;
|
|
34
|
+
/** The named reason when `sqlDialect` is null (used in cannot-fire messages). */
|
|
35
|
+
sqlDialectReason: string | null;
|
|
36
|
+
/** Virtual-module specifiers (config, default `DEFAULT_VIRTUAL_MODULES`). */
|
|
37
|
+
importVirtualModules: readonly string[];
|
|
38
|
+
}
|
|
39
|
+
/** Config-level overrides that layer over the root-derived resolution inputs. */
|
|
40
|
+
export interface ResolutionEnvironmentOptions {
|
|
41
|
+
/** Explicit dialect config (`databaseType`); overrides manifest detection. */
|
|
42
|
+
databaseType?: string;
|
|
43
|
+
/** Virtual-module list override; defaults to `DEFAULT_VIRTUAL_MODULES`. */
|
|
44
|
+
importVirtualModules?: readonly string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build the complete resolution environment for a project root.
|
|
48
|
+
*
|
|
49
|
+
* The dialect is the same honest gate as the runner: explicit `databaseType`
|
|
50
|
+
* overrides detection, and an unsupported `databaseType` (or a manifest naming
|
|
51
|
+
* zero / more than one dialect) yields a null dialect with a named reason —
|
|
52
|
+
* never a guessed default. Absent/malformed manifests degrade exactly as their
|
|
53
|
+
* individual readers document (empty aliases, empty entry points, empty declared
|
|
54
|
+
* types, null dialect with a reason).
|
|
55
|
+
*
|
|
56
|
+
* @param projectRoot The absolute project root whose tsconfig/package/wrangler are read.
|
|
57
|
+
* @param options Optional config overrides (`databaseType`, `importVirtualModules`).
|
|
58
|
+
* @returns The complete resolution environment.
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildResolutionEnvironment(projectRoot: string, options?: ResolutionEnvironmentOptions): ResolutionEnvironment;
|
|
61
|
+
//# sourceMappingURL=resolutionEnvironment.d.ts.map
|