code-auditor-mcp 3.1.0 → 3.4.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 +665 -1
- package/README.md +85 -11
- package/dist/__test_tmp__/spec18_test.d.ts +2 -0
- package/dist/__test_tmp__/spec18_test.d.ts.map +1 -0
- package/dist/__test_tmp__/spec18_test.js +5 -0
- package/dist/__test_tmp__/spec18_test.js.map +1 -0
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +6 -0
- package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +1 -0
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js +12 -0
- package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +1 -0
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +7 -0
- package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +1 -0
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js +13 -0
- package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +1 -0
- package/dist/analyzers/analyzerUtils.js +2 -2
- package/dist/analyzers/analyzerUtils.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +2 -4
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts +3 -0
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +3 -5
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +0 -3
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +2 -5
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +83 -0
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +611 -0
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -0
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +8 -4
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/orm/adapterRegistry.d.ts +41 -0
- package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -0
- package/dist/analyzers/orm/adapterRegistry.js +73 -0
- package/dist/analyzers/orm/adapterRegistry.js.map +1 -0
- package/dist/analyzers/orm/drizzleAdapter.d.ts +42 -0
- package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -0
- package/dist/analyzers/orm/drizzleAdapter.js +166 -0
- package/dist/analyzers/orm/drizzleAdapter.js.map +1 -0
- package/dist/analyzers/orm/index.d.ts +14 -0
- package/dist/analyzers/orm/index.d.ts.map +1 -0
- package/dist/analyzers/orm/index.js +24 -0
- package/dist/analyzers/orm/index.js.map +1 -0
- package/dist/analyzers/orm/prismaAdapter.d.ts +45 -0
- package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -0
- package/dist/analyzers/orm/prismaAdapter.js +170 -0
- package/dist/analyzers/orm/prismaAdapter.js.map +1 -0
- package/dist/analyzers/orm/types.d.ts +63 -0
- package/dist/analyzers/orm/types.d.ts.map +1 -0
- package/dist/analyzers/orm/types.js +10 -0
- package/dist/analyzers/orm/types.js.map +1 -0
- package/dist/analyzers/provenance.d.ts +133 -0
- package/dist/analyzers/provenance.d.ts.map +1 -0
- package/dist/analyzers/provenance.js +1041 -0
- package/dist/analyzers/provenance.js.map +1 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +117 -1
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts +38 -0
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -0
- package/dist/analyzers/ruleRegistry.js +123 -0
- package/dist/analyzers/ruleRegistry.js.map +1 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +58 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +445 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -0
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +52 -0
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +108 -26
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +64 -0
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +259 -103
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +5 -15
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +10 -10
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +25 -0
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +250 -59
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +103 -0
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +750 -0
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -0
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +483 -3
- package/dist/auditRunner.js.map +1 -1
- package/dist/baseline.d.ts +98 -0
- package/dist/baseline.d.ts.map +1 -0
- package/dist/baseline.js +184 -0
- package/dist/baseline.js.map +1 -0
- package/dist/churn/churnExtractor.d.ts +32 -0
- package/dist/churn/churnExtractor.d.ts.map +1 -0
- package/dist/churn/churnExtractor.js +261 -0
- package/dist/churn/churnExtractor.js.map +1 -0
- package/dist/cli.js +1215 -11
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB-enhanced.js +1 -1
- package/dist/codeIndexDB-enhanced.js.map +1 -1
- package/dist/codeIndexDB.d.ts +101 -0
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +661 -5
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +95 -1
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +72 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +146 -15
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/pathProfiles.d.ts +38 -0
- package/dist/config/pathProfiles.d.ts.map +1 -0
- package/dist/config/pathProfiles.js +47 -0
- package/dist/config/pathProfiles.js.map +1 -0
- package/dist/conventions/conventionMiner.d.ts +63 -0
- package/dist/conventions/conventionMiner.d.ts.map +1 -0
- package/dist/conventions/conventionMiner.js +696 -0
- package/dist/conventions/conventionMiner.js.map +1 -0
- package/dist/coverage/coverageService.d.ts +49 -0
- package/dist/coverage/coverageService.d.ts.map +1 -0
- package/dist/coverage/coverageService.js +117 -0
- package/dist/coverage/coverageService.js.map +1 -0
- package/dist/coverage/istanbulParser.d.ts +84 -0
- package/dist/coverage/istanbulParser.d.ts.map +1 -0
- package/dist/coverage/istanbulParser.js +120 -0
- package/dist/coverage/istanbulParser.js.map +1 -0
- package/dist/coverage/lcovParser.d.ts +40 -0
- package/dist/coverage/lcovParser.d.ts.map +1 -0
- package/dist/coverage/lcovParser.js +168 -0
- package/dist/coverage/lcovParser.js.map +1 -0
- package/dist/fingerprint.d.ts +17 -0
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +42 -0
- package/dist/fingerprint.js.map +1 -1
- package/dist/grammars/tree-sitter-css.wasm +0 -0
- package/dist/graph/blastRadius.d.ts +27 -0
- package/dist/graph/blastRadius.d.ts.map +1 -0
- package/dist/graph/blastRadius.js +150 -0
- package/dist/graph/blastRadius.js.map +1 -0
- package/dist/graph/callGraph.d.ts +78 -0
- package/dist/graph/callGraph.d.ts.map +1 -0
- package/dist/graph/callGraph.js +484 -0
- package/dist/graph/callGraph.js.map +1 -0
- package/dist/graph/importGraph.d.ts +91 -0
- package/dist/graph/importGraph.d.ts.map +1 -0
- package/dist/graph/importGraph.js +602 -0
- package/dist/graph/importGraph.js.map +1 -0
- package/dist/graph/outputFormatter.d.ts +55 -0
- package/dist/graph/outputFormatter.d.ts.map +1 -0
- package/dist/graph/outputFormatter.js +283 -0
- package/dist/graph/outputFormatter.js.map +1 -0
- package/dist/hooks/codex.d.ts +36 -1
- package/dist/hooks/codex.d.ts.map +1 -1
- package/dist/hooks/codex.js +88 -54
- package/dist/hooks/codex.js.map +1 -1
- package/dist/hotspots/hotspotScorer.d.ts +20 -0
- package/dist/hotspots/hotspotScorer.d.ts.map +1 -0
- package/dist/hotspots/hotspotScorer.js +202 -0
- package/dist/hotspots/hotspotScorer.js.map +1 -0
- package/dist/invariants/invariant-rules.schema.json +42 -1
- package/dist/invariants/ruleEngine.d.ts +4 -1
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +141 -5
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/invariants/ruleValidator.d.ts.map +1 -1
- package/dist/invariants/ruleValidator.js +62 -1
- package/dist/invariants/ruleValidator.js.map +1 -1
- package/dist/invariants/types.d.ts +23 -2
- package/dist/invariants/types.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +59 -24
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/index.d.ts +1 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +3 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +59 -0
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -0
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +236 -0
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -0
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
- package/dist/languages/tree-sitter/parser.js +2 -0
- package/dist/languages/tree-sitter/parser.js.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +61 -10
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/ledger.d.ts +128 -0
- package/dist/ledger.d.ts.map +1 -0
- package/dist/ledger.js +345 -0
- package/dist/ledger.js.map +1 -0
- package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
- package/dist/mcp-tools/projectTasks.js +9 -14
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp.js +0 -0
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +3 -0
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +7 -1
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +5 -1
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +10 -2
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +17 -17
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/scripts/runBench.d.ts +94 -0
- package/dist/scripts/runBench.d.ts.map +1 -0
- package/dist/scripts/runBench.js +1559 -0
- package/dist/scripts/runBench.js.map +1 -0
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +51 -4
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/services/CodeMapGenerator.d.ts +33 -0
- package/dist/services/CodeMapGenerator.d.ts.map +1 -1
- package/dist/services/CodeMapGenerator.js +404 -0
- package/dist/services/CodeMapGenerator.js.map +1 -1
- package/dist/styles/normalizer.d.ts +37 -0
- package/dist/styles/normalizer.d.ts.map +1 -0
- package/dist/styles/normalizer.js +301 -0
- package/dist/styles/normalizer.js.map +1 -0
- package/dist/styles/styleExtractor.d.ts +38 -0
- package/dist/styles/styleExtractor.d.ts.map +1 -0
- package/dist/styles/styleExtractor.js +630 -0
- package/dist/styles/styleExtractor.js.map +1 -0
- package/dist/styles/styleIndexer.d.ts +35 -0
- package/dist/styles/styleIndexer.d.ts.map +1 -0
- package/dist/styles/styleIndexer.js +266 -0
- package/dist/styles/styleIndexer.js.map +1 -0
- package/dist/styles/tailwindConfigLoader.d.ts +38 -0
- package/dist/styles/tailwindConfigLoader.d.ts.map +1 -0
- package/dist/styles/tailwindConfigLoader.js +374 -0
- package/dist/styles/tailwindConfigLoader.js.map +1 -0
- package/dist/styles/tailwindExpander.d.ts +38 -0
- package/dist/styles/tailwindExpander.d.ts.map +1 -0
- package/dist/styles/tailwindExpander.js +637 -0
- package/dist/styles/tailwindExpander.js.map +1 -0
- package/dist/styles/types.d.ts +92 -0
- package/dist/styles/types.d.ts.map +1 -0
- package/dist/styles/types.js +10 -0
- package/dist/styles/types.js.map +1 -0
- package/dist/symbols.d.ts +21 -0
- package/dist/symbols.d.ts.map +1 -0
- package/dist/symbols.js +31 -0
- package/dist/symbols.js.map +1 -0
- package/dist/types.d.ts +326 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +9 -5
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/scripts/hook-audit.sh +5 -1
- package/plugin/skills/code-auditor/SKILL.md +51 -0
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts +0 -21
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js +0 -21
- package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts +0 -13
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js +0 -12
- package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts +0 -11
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js +0 -22
- package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts +0 -9
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js +0 -13
- package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts +0 -13
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js +0 -18
- package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts +0 -10
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js +0 -16
- package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts +0 -14
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js +0 -18
- package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts +0 -13
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js +0 -22
- package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts +0 -10
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js +0 -20
- package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts +0 -18
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js +0 -28
- package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts +0 -11
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js +0 -31
- package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts +0 -11
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js +0 -18
- package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts +0 -13
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js +0 -61
- package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts +0 -10
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js +0 -15
- package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts +0 -11
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js +0 -49
- package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts +0 -10
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js +0 -19
- package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts +0 -37
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js +0 -73
- package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts +0 -12
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js +0 -82
- package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts +0 -10
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts.map +0 -1
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js +0 -15
- package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js.map +0 -1
- package/dist/analyzers/dataAccessAnalyzer.d.ts +0 -46
- package/dist/analyzers/dataAccessAnalyzer.d.ts.map +0 -1
- package/dist/analyzers/dataAccessAnalyzer.js +0 -474
- package/dist/analyzers/dataAccessAnalyzer.js.map +0 -1
- package/dist/analyzers/dryAnalyzer.d.ts +0 -31
- package/dist/analyzers/dryAnalyzer.d.ts.map +0 -1
- package/dist/analyzers/dryAnalyzer.js +0 -734
- package/dist/analyzers/dryAnalyzer.js.map +0 -1
- package/dist/analyzers/schemaAnalyzer.d.ts +0 -23
- package/dist/analyzers/schemaAnalyzer.d.ts.map +0 -1
- package/dist/analyzers/schemaAnalyzer.js +0 -564
- package/dist/analyzers/schemaAnalyzer.js.map +0 -1
- package/dist/analyzers/solidAnalyzer.d.ts +0 -33
- package/dist/analyzers/solidAnalyzer.d.ts.map +0 -1
- package/dist/analyzers/solidAnalyzer.js +0 -847
- package/dist/analyzers/solidAnalyzer.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Default configurations for the code auditor
|
|
3
3
|
*/
|
|
4
|
-
import { AuditConfig } from '../types.js';
|
|
4
|
+
import { AuditConfig, PathProfile } from '../types.js';
|
|
5
5
|
/**
|
|
6
6
|
* Get default configuration
|
|
7
7
|
*/
|
|
@@ -36,6 +36,11 @@ export declare const DEFAULT_ANALYZER_CONFIGS: {
|
|
|
36
36
|
checkStrings: boolean;
|
|
37
37
|
ignoreComments: boolean;
|
|
38
38
|
ignoreWhitespace: boolean;
|
|
39
|
+
divergence: {
|
|
40
|
+
divergenceThreshold: number;
|
|
41
|
+
divergenceRuns: number;
|
|
42
|
+
minPairSimilarity: number;
|
|
43
|
+
};
|
|
39
44
|
};
|
|
40
45
|
security: {
|
|
41
46
|
authPatterns: string[];
|
|
@@ -70,6 +75,9 @@ export declare const DEFAULT_ANALYZER_CONFIGS: {
|
|
|
70
75
|
maxJoins: number;
|
|
71
76
|
warnOnSelectStar: boolean;
|
|
72
77
|
};
|
|
78
|
+
detection: {
|
|
79
|
+
mode: 'hybrid';
|
|
80
|
+
};
|
|
73
81
|
};
|
|
74
82
|
documentation: {
|
|
75
83
|
requireFunctionDocs: boolean;
|
|
@@ -96,8 +104,71 @@ export declare const DEFAULT_ANALYZER_CONFIGS: {
|
|
|
96
104
|
dbCallMethods: string[];
|
|
97
105
|
dbBindingNames: string[];
|
|
98
106
|
fileGateGlobs: string[];
|
|
107
|
+
detection: {
|
|
108
|
+
mode: 'hybrid';
|
|
109
|
+
};
|
|
110
|
+
validatorPackageList: string[];
|
|
111
|
+
};
|
|
112
|
+
styles: {
|
|
113
|
+
minCorpus: number;
|
|
114
|
+
colorDeltaE: number;
|
|
115
|
+
outlierMaxShare: number;
|
|
116
|
+
modeMinCount: number;
|
|
117
|
+
scaleProperties: string[];
|
|
118
|
+
zIndexMaxDistinct: number;
|
|
119
|
+
mechanismFragmentationMinMechanisms: number;
|
|
120
|
+
declarationSetMinDeclarations: number;
|
|
121
|
+
declarationSetSimilarityThreshold: number;
|
|
122
|
+
};
|
|
123
|
+
conventions: {
|
|
124
|
+
minCorpus: number;
|
|
125
|
+
pairConfidence: number;
|
|
126
|
+
modeShare: number;
|
|
127
|
+
maxConventionsPerDomain: number;
|
|
128
|
+
};
|
|
129
|
+
crossDomain: {
|
|
130
|
+
schemaLifecycle: {
|
|
131
|
+
enableWrittenNeverRead: boolean;
|
|
132
|
+
enableReadNeverWritten: boolean;
|
|
133
|
+
enableTransactionBoundaryRisk: boolean;
|
|
134
|
+
txnTableMax: number;
|
|
135
|
+
};
|
|
136
|
+
validatorBypass: {
|
|
137
|
+
validators: never[];
|
|
138
|
+
modeShare: number;
|
|
139
|
+
minCorpus: number;
|
|
140
|
+
depth: number;
|
|
141
|
+
};
|
|
142
|
+
coverage: {
|
|
143
|
+
testGlobs: string[];
|
|
144
|
+
staticReachDepth: number;
|
|
145
|
+
topRiskDecile: number;
|
|
146
|
+
};
|
|
99
147
|
};
|
|
100
148
|
};
|
|
149
|
+
/**
|
|
150
|
+
* Built-in path profiles shipped with the tool.
|
|
151
|
+
*
|
|
152
|
+
* "scripts-and-tests" caps scripts, tests, and test fixtures to
|
|
153
|
+
* "suggestion" severity — grounded in the Spec 11 triage numbers
|
|
154
|
+
* showing these directories produce noise, not signal.
|
|
155
|
+
*
|
|
156
|
+
* Disable entirely via `"builtin": false` in .codeauditor.json.
|
|
157
|
+
* Replace a specific built-in via a user profile with the same name
|
|
158
|
+
* and `"builtin": false`.
|
|
159
|
+
*/
|
|
160
|
+
export declare const BUILTIN_PATH_PROFILES: PathProfile[];
|
|
161
|
+
/**
|
|
162
|
+
* Merge built-in path profiles with user-configured profiles.
|
|
163
|
+
*
|
|
164
|
+
* - `builtin: false` at top level → no built-ins
|
|
165
|
+
* - User profile with `builtin: false` → replaces built-in of same name
|
|
166
|
+
* - Otherwise: built-ins come first, user profiles appended after
|
|
167
|
+
* (later wins on conflict)
|
|
168
|
+
*
|
|
169
|
+
* @returns The merged profile array, or undefined if no profiles active
|
|
170
|
+
*/
|
|
171
|
+
export declare function mergePathProfiles(userProfiles: PathProfile[] | undefined, builtinEnabled: boolean | undefined): PathProfile[] | undefined;
|
|
101
172
|
/**
|
|
102
173
|
* Default code index configuration
|
|
103
174
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CA0C9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBxE;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB;IAGnC,KAAK;QACH,kBAAkB;QAClB,iBAAiB;QACjB,sBAAsB;QACtB,iBAAiB;QACjB,aAAa;QAEb,mBAAmB;QAEnB,qBAAqB;QACrB,wBAAwB;;IAK1B,GAAG;QACD,gBAAgB;QAChB,mBAAmB;QACnB,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,gBAAgB;QAEhB,UAAU;YACR,mBAAmB;YACnB,cAAc;YACd,iBAAiB;;;IAIrB,QAAQ;QACN,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,cAAc;;IAGhB,SAAS;QACP,iBAAiB;YACf,KAAK;gBACH,UAAU;gBACV,KAAK;gBACL,OAAO;;;QAGX,oBAAoB;QACpB,aAAa;QACb,UAAU;;IAGZ,UAAU;QAER,YAAY;QACZ,gBAAgB;YACd,QAAQ;YACR,KAAK;YACL,OAAO;;QAET,gBAAgB;YACd,aAAa;YACb,SAAS;;QAEX,qBAAqB;YACnB,QAAQ;YACR,gBAAgB;;QAGlB,SAAS;YACP,IAAI,EAAE,QAAQ;;;IAKlB,aAAa;QACX,mBAAmB;QACnB,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,oBAAoB;QACpB,cAAc;QASd,KAAK;QACL,YAAY;QACZ,WAAW;QACX,eAAe;;IAcjB,MAAM;QACJ,wBAAwB;QACxB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;QAClB,qBAAqB;QACrB,qBAAqB;QACrB,eAAe;QACf,WAAW;QACX,eAAe;QACf,aAAa;QACb,cAAc;QACd,aAAa;QAEb,SAAS;YACP,IAAI,EAAE,QAAQ;;QAGhB,oBAAoB;;IAOtB,MAAM;QACJ,SAAS;QACT,WAAW;QACX,eAAe;QACf,YAAY;QACZ,eAAe;QAKf,iBAAiB;QACjB,mCAAmC;QACnC,6BAA6B;QAC7B,iCAAiC;;IAInC,WAAW;QACT,SAAS;QACT,cAAc;QACd,SAAS;QACT,uBAAuB;;IAIzB,WAAW;QACT,eAAe;YACb,sBAAsB;YACtB,sBAAsB;YACtB,6BAA6B;YAC7B,WAAW;;QAEb,eAAe;YACb,UAAU;YACV,SAAS;YACT,SAAS;YACT,KAAK;;QAEP,QAAQ;YACN,SAAS;YACT,gBAAgB;YAChB,aAAa;;;CAGlB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAc9C,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,EACvC,cAAc,EAAE,OAAO,GAAG,SAAS,GAClC,WAAW,EAAE,GAAG,SAAS,CAqB3B;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB;IACpC,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,eAAe;CAChB,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export function getDefaultConfig() {
|
|
8
8
|
return {
|
|
9
|
-
includePaths: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.go'],
|
|
9
|
+
includePaths: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '**/*.go', '**/*.css', '**/*.scss'],
|
|
10
10
|
excludePaths: [
|
|
11
11
|
'**/node_modules/**',
|
|
12
12
|
'**/.next/**',
|
|
@@ -16,7 +16,7 @@ export function getDefaultConfig() {
|
|
|
16
16
|
'**/*.test.{ts,tsx,js,jsx}',
|
|
17
17
|
'**/*.spec.{ts,tsx,js,jsx}'
|
|
18
18
|
],
|
|
19
|
-
enabledAnalyzers: ['solid', 'dry', 'security', 'component', 'data-access'],
|
|
19
|
+
enabledAnalyzers: ['solid', 'dry', 'security', 'component', 'data-access', 'styles', 'conventions', 'cross-domain'],
|
|
20
20
|
outputFormats: ['html', 'json'],
|
|
21
21
|
outputDirectory: './audit-reports',
|
|
22
22
|
minSeverity: 'suggestion',
|
|
@@ -26,6 +26,24 @@ export function getDefaultConfig() {
|
|
|
26
26
|
maxCritical: 0,
|
|
27
27
|
maxWarnings: 100,
|
|
28
28
|
minHealthScore: 75
|
|
29
|
+
},
|
|
30
|
+
// Spec-11 R5: Mechanical recalibration — audited 2026-07-20.
|
|
31
|
+
// Audit report: bench/results/spec-11-recalibration-audit.md
|
|
32
|
+
//
|
|
33
|
+
// Demoted (suggestion): domain-mismatch confirmed but users with
|
|
34
|
+
// applicable domains (multi-tenant SaaS, known-schema projects)
|
|
35
|
+
// need these visible and re-enablable.
|
|
36
|
+
// Promoted (warning): precision ≥ 0.95, judged-true ≥ 0.90,
|
|
37
|
+
// one tier only per Spec 11 R5. single-responsibility promotion
|
|
38
|
+
// to critical is withheld — length heuristics should not block hooks.
|
|
39
|
+
// Restored to defaults: sql-injection-risk, loop-query, unfiltered-query,
|
|
40
|
+
// direct-sql, single-responsibility. These have external-corpus evidence
|
|
41
|
+
// of utility or insufficient evidence to recalibrate.
|
|
42
|
+
severityOverrides: {
|
|
43
|
+
'missing-org-filter': 'suggestion',
|
|
44
|
+
'unknown-table': 'suggestion',
|
|
45
|
+
'solid/class-size': 'warning',
|
|
46
|
+
'dependency-inversion': 'warning',
|
|
29
47
|
}
|
|
30
48
|
};
|
|
31
49
|
}
|
|
@@ -95,25 +113,32 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
95
113
|
// and classAggregateComplexity for true cyclomatic complexity.
|
|
96
114
|
solid: {
|
|
97
115
|
maxMethodsPerClass: 10,
|
|
98
|
-
maxLinesPerMethod: 50,
|
|
99
|
-
maxParametersPerMethod: 4,
|
|
100
|
-
maxImportsPerFile: 20
|
|
116
|
+
maxLinesPerMethod: 50, // Spec 11 R3 sweep: confirmed
|
|
117
|
+
maxParametersPerMethod: 4, // Spec 11 R3 sweep: confirmed
|
|
118
|
+
maxImportsPerFile: 5, // Spec 11 R3 sweep: 20 → 5 (precision-first)
|
|
101
119
|
maxComplexity: 10, // DEPRECATED — old heuristic
|
|
102
120
|
// R5.1: Per-method cyclomatic complexity threshold (true McCC)
|
|
103
|
-
maxMethodComplexity: 50
|
|
121
|
+
maxMethodComplexity: 10, // Spec 11 R3 sweep: 50 → 10 (precision-first)
|
|
104
122
|
// R5.2: Class-level aggregation thresholds
|
|
105
|
-
classMethodsThreshold: 15
|
|
106
|
-
classAggregateComplexity: 100
|
|
123
|
+
classMethodsThreshold: 5, // Spec 11 R3 sweep: 15 → 5 (precision-first)
|
|
124
|
+
classAggregateComplexity: 80, // Spec 11 R3 sweep: 100 → 80 (precision-first)
|
|
107
125
|
},
|
|
108
|
-
// Spec
|
|
126
|
+
// Spec 11 R3 sweep: minLineThreshold 15 → 3, similarityThreshold 0.85 → 0.5 (precision-first)
|
|
127
|
+
// ⚠️ These sweep recommendations reflect a minimal corpus; R4 real-corpus triage may revert.
|
|
109
128
|
dry: {
|
|
110
|
-
minLineThreshold:
|
|
111
|
-
similarityThreshold: 0.
|
|
129
|
+
minLineThreshold: 3,
|
|
130
|
+
similarityThreshold: 0.5,
|
|
112
131
|
excludePatterns: ['**/*.test.ts', '**/*.spec.ts'],
|
|
113
132
|
checkImports: true,
|
|
114
133
|
checkStrings: true,
|
|
115
134
|
ignoreComments: true,
|
|
116
135
|
ignoreWhitespace: true,
|
|
136
|
+
// Spec 13 R5 — Diverging-clone detection
|
|
137
|
+
divergence: {
|
|
138
|
+
divergenceThreshold: 0.05,
|
|
139
|
+
divergenceRuns: 2,
|
|
140
|
+
minPairSimilarity: 0.5,
|
|
141
|
+
},
|
|
117
142
|
},
|
|
118
143
|
security: {
|
|
119
144
|
authPatterns: ['withAuth', 'requireAuth', 'isAuthenticated'],
|
|
@@ -130,7 +155,7 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
130
155
|
}
|
|
131
156
|
},
|
|
132
157
|
checkErrorBoundaries: true,
|
|
133
|
-
maxComplexity: 15
|
|
158
|
+
maxComplexity: 5, // Spec 11 R3 sweep: 15 → 5 (precision-first)
|
|
134
159
|
maxNesting: 4
|
|
135
160
|
},
|
|
136
161
|
dataAccess: {
|
|
@@ -148,7 +173,11 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
148
173
|
performanceThresholds: {
|
|
149
174
|
maxJoins: 5,
|
|
150
175
|
warnOnSelectStar: true
|
|
151
|
-
}
|
|
176
|
+
},
|
|
177
|
+
// Spec 21 R3: shared detection mode — provenance-primary with name-fallback
|
|
178
|
+
detection: {
|
|
179
|
+
mode: 'hybrid',
|
|
180
|
+
},
|
|
152
181
|
},
|
|
153
182
|
// Spec-17: documentation analyzer defaults
|
|
154
183
|
documentation: {
|
|
@@ -156,7 +185,7 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
156
185
|
requireClassDocs: true,
|
|
157
186
|
requireParamDocs: true,
|
|
158
187
|
requireReturnDocs: true,
|
|
159
|
-
minDescriptionLength: 10
|
|
188
|
+
minDescriptionLength: 2, // Spec 11 R3 sweep: 10 → 2 (precision-first)
|
|
160
189
|
exemptPatterns: [
|
|
161
190
|
'\\.test\\.',
|
|
162
191
|
'\\.spec\\.',
|
|
@@ -188,15 +217,117 @@ export const DEFAULT_ANALYZER_CONFIGS = {
|
|
|
188
217
|
checkNamingConventions: true,
|
|
189
218
|
detectUnusedTables: false,
|
|
190
219
|
validateQueryPatterns: true,
|
|
191
|
-
maxQueriesPerFunction: 5
|
|
220
|
+
maxQueriesPerFunction: 1, // Spec 11 R3 sweep: 5 → 1 (precision-first)
|
|
192
221
|
requiredSchemas: [],
|
|
193
222
|
sqlTagNames: ['sql', 'db'],
|
|
194
223
|
dbReceiverNames: ['db', 'database', 'sql', 'stmt', 'connection', 'pool', 'client'],
|
|
195
224
|
dbCallMethods: ['exec', 'prepare', 'batch', 'run', 'all', 'first', 'query', 'get', 'each'],
|
|
196
225
|
dbBindingNames: ['env.DB'],
|
|
197
226
|
fileGateGlobs: ['**/*.sql', '**/migrations/**'],
|
|
227
|
+
// Spec 21 R3: shared detection mode — provenance-primary with name-fallback
|
|
228
|
+
detection: {
|
|
229
|
+
mode: 'hybrid',
|
|
230
|
+
},
|
|
231
|
+
// Spec 21 R4: validator package list for provenanced validator detection
|
|
232
|
+
validatorPackageList: [
|
|
233
|
+
'zod', 'joi', 'ajv', 'valibot', 'yup', 'superstruct', 'arktype',
|
|
234
|
+
'@sinclair/typebox', 'class-validator',
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
// Spec 10 R3: style intelligence analyzer defaults
|
|
238
|
+
styles: {
|
|
239
|
+
minCorpus: 20,
|
|
240
|
+
colorDeltaE: 2.0,
|
|
241
|
+
outlierMaxShare: 0.05,
|
|
242
|
+
modeMinCount: 10,
|
|
243
|
+
scaleProperties: [
|
|
244
|
+
'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
|
|
245
|
+
'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
|
|
246
|
+
'gap', 'row-gap', 'column-gap', 'font-size',
|
|
247
|
+
],
|
|
248
|
+
zIndexMaxDistinct: 6,
|
|
249
|
+
mechanismFragmentationMinMechanisms: 3,
|
|
250
|
+
declarationSetMinDeclarations: 5,
|
|
251
|
+
declarationSetSimilarityThreshold: 0.9,
|
|
252
|
+
},
|
|
253
|
+
// Spec 12 R2: convention mining analyzer defaults
|
|
254
|
+
conventions: {
|
|
255
|
+
minCorpus: 20,
|
|
256
|
+
pairConfidence: 0.9,
|
|
257
|
+
modeShare: 0.8,
|
|
258
|
+
maxConventionsPerDomain: 200,
|
|
259
|
+
},
|
|
260
|
+
// Spec 15: cross-domain analysis defaults
|
|
261
|
+
crossDomain: {
|
|
262
|
+
schemaLifecycle: {
|
|
263
|
+
enableWrittenNeverRead: true,
|
|
264
|
+
enableReadNeverWritten: true,
|
|
265
|
+
enableTransactionBoundaryRisk: true,
|
|
266
|
+
txnTableMax: 4,
|
|
267
|
+
},
|
|
268
|
+
validatorBypass: {
|
|
269
|
+
validators: [],
|
|
270
|
+
modeShare: 0.8,
|
|
271
|
+
minCorpus: 20,
|
|
272
|
+
depth: 3,
|
|
273
|
+
},
|
|
274
|
+
coverage: {
|
|
275
|
+
testGlobs: ['**/*.test.*', '**/*.spec.*', '**/__tests__/**'],
|
|
276
|
+
staticReachDepth: 2,
|
|
277
|
+
topRiskDecile: 0.1,
|
|
278
|
+
},
|
|
198
279
|
},
|
|
199
280
|
};
|
|
281
|
+
/**
|
|
282
|
+
* Built-in path profiles shipped with the tool.
|
|
283
|
+
*
|
|
284
|
+
* "scripts-and-tests" caps scripts, tests, and test fixtures to
|
|
285
|
+
* "suggestion" severity — grounded in the Spec 11 triage numbers
|
|
286
|
+
* showing these directories produce noise, not signal.
|
|
287
|
+
*
|
|
288
|
+
* Disable entirely via `"builtin": false` in .codeauditor.json.
|
|
289
|
+
* Replace a specific built-in via a user profile with the same name
|
|
290
|
+
* and `"builtin": false`.
|
|
291
|
+
*/
|
|
292
|
+
export const BUILTIN_PATH_PROFILES = [
|
|
293
|
+
{
|
|
294
|
+
name: 'scripts-and-tests',
|
|
295
|
+
paths: [
|
|
296
|
+
'scripts/**',
|
|
297
|
+
'tests/**',
|
|
298
|
+
'test/**',
|
|
299
|
+
'__tests__/**',
|
|
300
|
+
'fixtures/**',
|
|
301
|
+
'*.test.*',
|
|
302
|
+
'*.spec.*',
|
|
303
|
+
],
|
|
304
|
+
overrides: { severityCap: 'suggestion' },
|
|
305
|
+
},
|
|
306
|
+
];
|
|
307
|
+
/**
|
|
308
|
+
* Merge built-in path profiles with user-configured profiles.
|
|
309
|
+
*
|
|
310
|
+
* - `builtin: false` at top level → no built-ins
|
|
311
|
+
* - User profile with `builtin: false` → replaces built-in of same name
|
|
312
|
+
* - Otherwise: built-ins come first, user profiles appended after
|
|
313
|
+
* (later wins on conflict)
|
|
314
|
+
*
|
|
315
|
+
* @returns The merged profile array, or undefined if no profiles active
|
|
316
|
+
*/
|
|
317
|
+
export function mergePathProfiles(userProfiles, builtinEnabled) {
|
|
318
|
+
// builtin: false disables all built-in profiles
|
|
319
|
+
if (builtinEnabled === false) {
|
|
320
|
+
return userProfiles && userProfiles.length > 0 ? userProfiles : undefined;
|
|
321
|
+
}
|
|
322
|
+
if (!userProfiles || userProfiles.length === 0) {
|
|
323
|
+
// No user profiles — use built-ins only
|
|
324
|
+
return BUILTIN_PATH_PROFILES.length > 0 ? [...BUILTIN_PATH_PROFILES] : undefined;
|
|
325
|
+
}
|
|
326
|
+
// Merge: built-ins first, user profiles appended (later wins)
|
|
327
|
+
const userReplaced = new Set(userProfiles.filter((p) => p.builtin === false).map((p) => p.name));
|
|
328
|
+
const activeBuiltins = BUILTIN_PATH_PROFILES.filter((b) => !userReplaced.has(b.name));
|
|
329
|
+
return [...activeBuiltins, ...userProfiles];
|
|
330
|
+
}
|
|
200
331
|
/**
|
|
201
332
|
* Default code index configuration
|
|
202
333
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Profile resolution — per-file config overrides driven by glob patterns.
|
|
3
|
+
*
|
|
4
|
+
* Path profiles are an ordered array in .codeauditor.json. Each profile has
|
|
5
|
+
* `name`, `paths` (glob patterns), and `overrides`. Files matching multiple
|
|
6
|
+
* profiles merge in order — later wins.
|
|
7
|
+
*
|
|
8
|
+
* Built-in profiles (e.g. scripts-and-tests) ship with the tool and can be
|
|
9
|
+
* disabled via `builtin: false` in config.
|
|
10
|
+
*/
|
|
11
|
+
export interface PathProfile {
|
|
12
|
+
/** Unique name for this profile. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Glob patterns matching file paths relative to project root. */
|
|
15
|
+
paths: string[];
|
|
16
|
+
/** Analyzer config overrides applied to files matching this profile. */
|
|
17
|
+
overrides: Record<string, unknown>;
|
|
18
|
+
/** Set to false to replace a built-in profile of the same name. */
|
|
19
|
+
builtin?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface ResolvedProfile {
|
|
22
|
+
/** Merged overrides (excluding severityCap). */
|
|
23
|
+
overrides: Record<string, unknown>;
|
|
24
|
+
/** Severity cap to apply post-analysis, if any. */
|
|
25
|
+
severityCap?: string;
|
|
26
|
+
/** Names of all profiles that matched this file, in match order. */
|
|
27
|
+
matchedProfileNames: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Resolve which profiles match a file and merge their overrides.
|
|
31
|
+
*
|
|
32
|
+
* @param filePath - Absolute path to the file being analyzed
|
|
33
|
+
* @param projectRoot - Project root directory
|
|
34
|
+
* @param profiles - Ordered array of path profiles (built-in + user)
|
|
35
|
+
* @returns Merged overrides, severity cap, and matched profile names
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolvePathProfile(filePath: string, projectRoot: string, profiles: PathProfile[]): ResolvedProfile;
|
|
38
|
+
//# sourceMappingURL=pathProfiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathProfiles.d.ts","sourceRoot":"","sources":["../../src/config/pathProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAID;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,WAAW,EAAE,GACtB,eAAe,CA4BjB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Profile resolution — per-file config overrides driven by glob patterns.
|
|
3
|
+
*
|
|
4
|
+
* Path profiles are an ordered array in .codeauditor.json. Each profile has
|
|
5
|
+
* `name`, `paths` (glob patterns), and `overrides`. Files matching multiple
|
|
6
|
+
* profiles merge in order — later wins.
|
|
7
|
+
*
|
|
8
|
+
* Built-in profiles (e.g. scripts-and-tests) ship with the tool and can be
|
|
9
|
+
* disabled via `builtin: false` in config.
|
|
10
|
+
*/
|
|
11
|
+
import picomatch from 'picomatch';
|
|
12
|
+
import path from 'path';
|
|
13
|
+
const VALID_SEVERITIES = new Set(['suggestion', 'warning', 'critical']);
|
|
14
|
+
/**
|
|
15
|
+
* Resolve which profiles match a file and merge their overrides.
|
|
16
|
+
*
|
|
17
|
+
* @param filePath - Absolute path to the file being analyzed
|
|
18
|
+
* @param projectRoot - Project root directory
|
|
19
|
+
* @param profiles - Ordered array of path profiles (built-in + user)
|
|
20
|
+
* @returns Merged overrides, severity cap, and matched profile names
|
|
21
|
+
*/
|
|
22
|
+
export function resolvePathProfile(filePath, projectRoot, profiles) {
|
|
23
|
+
const overrides = {};
|
|
24
|
+
let severityCap;
|
|
25
|
+
const matchedProfileNames = [];
|
|
26
|
+
const relativePath = path.relative(projectRoot, filePath);
|
|
27
|
+
for (const profile of profiles) {
|
|
28
|
+
const matches = profile.paths.some((glob) => picomatch.isMatch(relativePath, glob));
|
|
29
|
+
if (!matches)
|
|
30
|
+
continue;
|
|
31
|
+
matchedProfileNames.push(profile.name);
|
|
32
|
+
for (const [key, value] of Object.entries(profile.overrides)) {
|
|
33
|
+
if (key === 'severityCap') {
|
|
34
|
+
severityCap = value;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
overrides[key] = value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (severityCap && !VALID_SEVERITIES.has(severityCap)) {
|
|
42
|
+
// Should never reach here if validateConfig catches it, but guard anyway
|
|
43
|
+
severityCap = undefined;
|
|
44
|
+
}
|
|
45
|
+
return { overrides, severityCap, matchedProfileNames };
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=pathProfiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathProfiles.js","sourceRoot":"","sources":["../../src/config/pathProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AAsBxB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,WAAmB,EACnB,QAAuB;IAEvB,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,IAAI,WAA+B,CAAC;IACpC,MAAM,mBAAmB,GAAa,EAAE,CAAC;IAEzC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE1D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC1B,WAAW,GAAG,KAAe,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,yEAAyE;QACzE,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 12 — Convention Mining
|
|
3
|
+
*
|
|
4
|
+
* Mines five domains of unwritten codebase conventions from the SQLite function
|
|
5
|
+
* index. All mining runs on the existing `functions` and `function_calls` tables;
|
|
6
|
+
* no new parsing infrastructure required.
|
|
7
|
+
*
|
|
8
|
+
* Domains:
|
|
9
|
+
* 1. usage-pair — calls that always co-occur (from function_calls table)
|
|
10
|
+
* 2. import-form — dominant import style per (source, directory)
|
|
11
|
+
* 3. error-handling — dominant error-handling shape per directory
|
|
12
|
+
* 4. export-shape — dominant export style per directory
|
|
13
|
+
* 5. naming — dominant exported-symbol casing per directory
|
|
14
|
+
*/
|
|
15
|
+
import Database from 'better-sqlite3';
|
|
16
|
+
import type { Convention, ConventionMiningConfig } from '../types.js';
|
|
17
|
+
/** Escape regex special characters in a string. */
|
|
18
|
+
export declare function escapeRegex(s: string): string;
|
|
19
|
+
/** Detect whether a string contains non-Latin-script characters (Spec 21 R5.4). */
|
|
20
|
+
export declare function hasNonLatinChars(name: string): boolean;
|
|
21
|
+
/** Classify a symbol name into a casing convention. Returns null for
|
|
22
|
+
* non-Latin, unclassifiable, or ambiguous names. */
|
|
23
|
+
export declare function detectCase(name: string): string | null;
|
|
24
|
+
/**
|
|
25
|
+
* Parse import statements from raw file content.
|
|
26
|
+
*
|
|
27
|
+
* Handles: import default, import named, import namespace, import side-effect,
|
|
28
|
+
* require default, require destructured.
|
|
29
|
+
* Multi-line imports supported via {}-accumulation.
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseFileImports(content: string): Array<{
|
|
32
|
+
source: string;
|
|
33
|
+
localNames: string[];
|
|
34
|
+
form: 'default' | 'named' | 'namespace' | 'side-effect' | 'require';
|
|
35
|
+
line: number;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Parse the export form for a specific exported function from its source file.
|
|
39
|
+
* Returns null if we can't determine the form.
|
|
40
|
+
*/
|
|
41
|
+
export declare function detectExportForm(filePath: string, functionName: string): 'default' | 'named' | null;
|
|
42
|
+
/**
|
|
43
|
+
* Detect the error-handling shape used in a function body.
|
|
44
|
+
* Returns null if no error handling is present (function should not be counted
|
|
45
|
+
* in the corpus for mode computation).
|
|
46
|
+
*/
|
|
47
|
+
export declare function detectErrorHandlingShape(body: string | undefined | null): string | null;
|
|
48
|
+
/**
|
|
49
|
+
* Compute a content hash of the miner inputs for change detection.
|
|
50
|
+
* Callers can store this in the meta table to skip re-mining when unchanged.
|
|
51
|
+
*/
|
|
52
|
+
export declare function computeMinerInputHash(db: Database.Database, config: ConventionMiningConfig): string;
|
|
53
|
+
/**
|
|
54
|
+
* Mine all five convention domains from the SQLite index.
|
|
55
|
+
*
|
|
56
|
+
* @param db The better-sqlite3 database instance.
|
|
57
|
+
* @param config Threshold configuration for the miner.
|
|
58
|
+
* @param projectRoot Optional project root — required for import-form and
|
|
59
|
+
* export-shape mining to resolve file paths.
|
|
60
|
+
* @returns Array of mined conventions (uncapped — caller should upsert).
|
|
61
|
+
*/
|
|
62
|
+
export declare function mineConventions(db: Database.Database, config: ConventionMiningConfig, projectRoot?: string): Convention[];
|
|
63
|
+
//# sourceMappingURL=conventionMiner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conventionMiner.d.ts","sourceRoot":"","sources":["../../src/conventions/conventionMiner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAItE,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiBtD;AAED;qDACqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoBtD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6HpI;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,SAAS,GAAG,OAAO,GAAG,IAAI,CA6B5B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CASvF;AA0gBD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CASR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,sBAAsB,EAC9B,WAAW,CAAC,EAAE,MAAM,GACnB,UAAU,EAAE,CAoBd"}
|