code-auditor-mcp 2.6.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +319 -147
- package/dist/analyzers/analyzerUtils.d.ts +13 -11
- package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
- package/dist/analyzers/analyzerUtils.js +22 -56
- package/dist/analyzers/analyzerUtils.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/dataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/dataAccessAnalyzer.js +50 -24
- package/dist/analyzers/dataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts +4 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +210 -111
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/dryAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/dryAnalyzer.js +190 -58
- package/dist/analyzers/dryAnalyzer.js.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.d.ts +20 -0
- package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/invariantsAnalyzer.js +148 -0
- package/dist/analyzers/invariantsAnalyzer.js.map +1 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +2 -2
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/schemaAnalyzer.d.ts +2 -0
- package/dist/analyzers/schemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/schemaAnalyzer.js +306 -147
- package/dist/analyzers/schemaAnalyzer.js.map +1 -1
- package/dist/analyzers/solidAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/solidAnalyzer.js +145 -119
- package/dist/analyzers/solidAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +3 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +41 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +8 -8
- 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 +6 -6
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +367 -24
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +740 -18
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB-enhanced.d.ts +35 -13
- package/dist/codeIndexDB-enhanced.d.ts.map +1 -1
- package/dist/codeIndexDB-enhanced.js +311 -214
- package/dist/codeIndexDB-enhanced.js.map +1 -1
- package/dist/{codeIndexDb.d.ts → codeIndexDB.d.ts} +51 -224
- package/dist/codeIndexDB.d.ts.map +1 -0
- package/dist/codeIndexDB.js +2042 -0
- package/dist/codeIndexDB.js.map +1 -0
- package/dist/codeIndexService.d.ts.map +1 -1
- package/dist/codeIndexService.js.map +1 -1
- package/dist/componentScanner.d.ts +14 -8
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +136 -113
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +10 -7
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/fingerprint.d.ts +15 -0
- package/dist/fingerprint.d.ts.map +1 -0
- package/dist/fingerprint.js +32 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/functionScanner.d.ts +5 -0
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +417 -341
- package/dist/functionScanner.js.map +1 -1
- package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
- package/dist/generators/AiderConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.js.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
- package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
- package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
- package/dist/grammars/tree-sitter-go.wasm +0 -0
- package/dist/grammars/tree-sitter-javascript.wasm +0 -0
- package/dist/grammars/tree-sitter-tsx.wasm +0 -0
- package/dist/grammars/tree-sitter-typescript.wasm +0 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/invariants/index.d.ts +9 -0
- package/dist/invariants/index.d.ts.map +1 -0
- package/dist/invariants/index.js +4 -0
- package/dist/invariants/index.js.map +1 -0
- package/dist/invariants/invariant-rules.schema.json +137 -0
- package/dist/invariants/ruleEngine.d.ts +32 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -0
- package/dist/invariants/ruleEngine.js +536 -0
- package/dist/invariants/ruleEngine.js.map +1 -0
- package/dist/invariants/ruleValidator.d.ts +17 -0
- package/dist/invariants/ruleValidator.d.ts.map +1 -0
- package/dist/invariants/ruleValidator.js +264 -0
- package/dist/invariants/ruleValidator.js.map +1 -0
- package/dist/invariants/types.d.ts +78 -0
- package/dist/invariants/types.d.ts.map +1 -0
- package/dist/invariants/types.js +5 -0
- package/dist/invariants/types.js.map +1 -0
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/LanguageRegistry.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +1 -1
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +102 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -0
- package/dist/languages/adapterBridge.js +382 -0
- package/dist/languages/adapterBridge.js.map +1 -0
- package/dist/languages/go/GoAdapter.d.ts +37 -26
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +560 -281
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/index.d.ts +5 -2
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +11 -9
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/tree-sitter/converter.d.ts +43 -0
- package/dist/languages/tree-sitter/converter.d.ts.map +1 -0
- package/dist/languages/tree-sitter/converter.js +150 -0
- package/dist/languages/tree-sitter/converter.js.map +1 -0
- package/dist/languages/tree-sitter/parser.d.ts +36 -0
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -0
- package/dist/languages/tree-sitter/parser.js +114 -0
- package/dist/languages/tree-sitter/parser.js.map +1 -0
- package/dist/languages/types.d.ts +11 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +92 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +951 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -0
- package/dist/mcp-tools/projectTasks.d.ts +58 -22
- package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
- package/dist/mcp-tools/projectTasks.js +172 -10
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +21 -21
- package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +130 -126
- 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.map +1 -1
- package/dist/mcp-ui-simple.js +1 -1
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +1376 -1181
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +4 -0
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +49 -2
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpToolErrors.d.ts.map +1 -1
- package/dist/mcpToolErrors.js.map +1 -1
- 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 +15 -0
- package/dist/native-bootstrap.d.ts.map +1 -0
- package/dist/native-bootstrap.js +75 -0
- package/dist/native-bootstrap.js.map +1 -0
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.js +4 -0
- package/dist/reporting/reportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts +39 -0
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -0
- package/dist/reporting/sarifReportGenerator.js +229 -0
- package/dist/reporting/sarifReportGenerator.js.map +1 -0
- package/dist/search/QueryParser.d.ts +41 -0
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +200 -19
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/services/CodeMapGenerator.d.ts.map +1 -1
- package/dist/services/CodeMapGenerator.js +4 -4
- package/dist/services/CodeMapGenerator.js.map +1 -1
- package/dist/services/ProjectTaskRepository.d.ts +15 -2
- package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
- package/dist/services/ProjectTaskRepository.js +16 -1
- package/dist/services/ProjectTaskRepository.js.map +1 -1
- package/dist/services/SchemaParser.d.ts.map +1 -1
- package/dist/services/SchemaParser.js +5 -8
- package/dist/services/SchemaParser.js.map +1 -1
- package/dist/services/auditJobService.d.ts +1 -1
- package/dist/services/projectTaskHelpers.js.map +1 -1
- package/dist/services/whitelistService.d.ts.map +1 -1
- package/dist/services/whitelistService.js +1 -1
- package/dist/services/whitelistService.js.map +1 -1
- package/dist/tool-registry.d.ts +79 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +139 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/types/projectTask.d.ts +4 -0
- package/dist/types/projectTask.d.ts.map +1 -1
- package/dist/types.d.ts +26 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/InteractivePrompts.d.ts.map +1 -1
- package/dist/ui/InteractivePrompts.js.map +1 -1
- package/dist/utils/astParser.d.ts +31 -38
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +138 -196
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/astUtils.d.ts +87 -58
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +852 -581
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/componentPatterns.js.map +1 -1
- package/dist/utils/componentResponsibility.d.ts +13 -9
- package/dist/utils/componentResponsibility.d.ts.map +1 -1
- package/dist/utils/componentResponsibility.js +236 -206
- package/dist/utils/componentResponsibility.js.map +1 -1
- package/dist/utils/dependencyExtractor.d.ts +11 -6
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +200 -119
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/dist/utils/fileDiscovery.d.ts +1 -1
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/utils/jsDocParser.d.ts +27 -30
- package/dist/utils/jsDocParser.d.ts.map +1 -1
- package/dist/utils/jsDocParser.js +271 -207
- package/dist/utils/jsDocParser.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +27 -12
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +331 -219
- package/dist/utils/reactDetection.js.map +1 -1
- package/dist/workers/auditWorker.js +17 -3
- package/dist/workers/auditWorker.js.map +1 -1
- package/package.json +54 -51
- package/dist/adapters/GoAdapter.d.ts +0 -53
- package/dist/adapters/GoAdapter.d.ts.map +0 -1
- package/dist/adapters/GoAdapter.js +0 -611
- package/dist/adapters/GoAdapter.js.map +0 -1
- package/dist/adapters/GoConfig.d.ts +0 -35
- package/dist/adapters/GoConfig.d.ts.map +0 -1
- package/dist/adapters/GoConfig.js +0 -155
- package/dist/adapters/GoConfig.js.map +0 -1
- package/dist/adapters/LanguageAdapter.d.ts +0 -135
- package/dist/adapters/LanguageAdapter.d.ts.map +0 -1
- package/dist/adapters/LanguageAdapter.js +0 -47
- package/dist/adapters/LanguageAdapter.js.map +0 -1
- package/dist/adapters/TypeScriptAdapter.d.ts +0 -43
- package/dist/adapters/TypeScriptAdapter.d.ts.map +0 -1
- package/dist/adapters/TypeScriptAdapter.js +0 -386
- package/dist/adapters/TypeScriptAdapter.js.map +0 -1
- package/dist/adapters/UniversalAnalyzer.d.ts +0 -42
- package/dist/adapters/UniversalAnalyzer.d.ts.map +0 -1
- package/dist/adapters/UniversalAnalyzer.js +0 -103
- package/dist/adapters/UniversalAnalyzer.js.map +0 -1
- package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +0 -48
- package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +0 -1
- package/dist/adapters/UniversalSOLIDAnalyzer.js +0 -178
- package/dist/adapters/UniversalSOLIDAnalyzer.js.map +0 -1
- package/dist/adapters/solidAnalyzerCompat.d.ts +0 -21
- package/dist/adapters/solidAnalyzerCompat.d.ts.map +0 -1
- package/dist/adapters/solidAnalyzerCompat.js +0 -78
- package/dist/adapters/solidAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/dataAccessAnalyzerCompat.js +0 -59
- package/dist/analyzers/dataAccessAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/documentationAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/documentationAnalyzerCompat.js +0 -52
- package/dist/analyzers/documentationAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/dryAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/dryAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/dryAnalyzerCompat.js +0 -44
- package/dist/analyzers/dryAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/schemaAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/schemaAnalyzerCompat.js +0 -69
- package/dist/analyzers/schemaAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/solidAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/solidAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/solidAnalyzerCompat.js +0 -78
- package/dist/analyzers/solidAnalyzerCompat.js.map +0 -1
- package/dist/codeIndexDb.d.ts.map +0 -1
- package/dist/codeIndexDb.js +0 -2102
- package/dist/codeIndexDb.js.map +0 -1
- package/dist/languages/typescript/TypeScriptAdapter.d.ts +0 -108
- package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +0 -1
- package/dist/languages/typescript/TypeScriptAdapter.js +0 -567
- package/dist/languages/typescript/TypeScriptAdapter.js.map +0 -1
- package/dist/languages/typescript/test-extraction.d.ts +0 -2
- package/dist/languages/typescript/test-extraction.d.ts.map +0 -1
- package/dist/languages/typescript/test-extraction.js +0 -36
- package/dist/languages/typescript/test-extraction.js.map +0 -1
- package/dist/mcp-hybrid.d.ts +0 -10
- package/dist/mcp-hybrid.d.ts.map +0 -1
- package/dist/mcp-hybrid.js +0 -41
- package/dist/mcp-hybrid.js.map +0 -1
- package/dist/mcp-index.d.ts +0 -13
- package/dist/mcp-index.d.ts.map +0 -1
- package/dist/mcp-index.js +0 -136
- package/dist/mcp-index.js.map +0 -1
- package/dist/mcp-standalone.d.ts +0 -3
- package/dist/mcp-standalone.d.ts.map +0 -1
- package/dist/mcp-standalone.js +0 -1324
- package/dist/mcp-standalone.js.map +0 -1
- package/dist/mcp-ui-server.d.ts +0 -27
- package/dist/mcp-ui-server.d.ts.map +0 -1
- package/dist/mcp-ui-server.js +0 -484
- package/dist/mcp-ui-server.js.map +0 -1
- package/dist/test-multi-strategy-search.d.ts +0 -3
- package/dist/test-multi-strategy-search.d.ts.map +0 -1
- package/dist/test-multi-strategy-search.js +0 -170
- package/dist/test-multi-strategy-search.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniversalSchemaAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSchemaAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UniversalSchemaAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSchemaAnalyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.js
CHANGED
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,mDAAmD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,mDAAmD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditRunner.d.ts","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"auditRunner.d.ts","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAQnB,MAAM,YAAY,CAAC;AAqLpB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB;iCAM5B,kBAAkB,KAAG,IAAI;oCAOhB,MAAM,KAAG,OAAO,CAAC,kBAAkB,CAAC;uBAQjD,kBAAkB,KAAG,OAAO,CAAC,WAAW,CAAC;6BA+S1B,WAAW,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;EAU7F;AA0ND;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGjF;AAED,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/auditRunner.js
CHANGED
|
@@ -2,35 +2,197 @@
|
|
|
2
2
|
* Audit Runner (Functional)
|
|
3
3
|
* Main orchestrator for running code audits
|
|
4
4
|
*/
|
|
5
|
+
import { statSync, readFileSync } from 'fs';
|
|
5
6
|
import path from 'path';
|
|
7
|
+
import { execSync } from 'child_process';
|
|
6
8
|
import { AuditAbortedError, AuditHandoffError, } from './types.js';
|
|
7
9
|
import { discoverFiles } from './utils/fileDiscovery.js';
|
|
8
10
|
import { loadConfig } from './config/configLoader.js';
|
|
9
11
|
import { generateReport } from './reporting/reportGenerator.js';
|
|
10
12
|
import { extractFunctionsFromFile } from './functionScanner.js';
|
|
11
13
|
import { isMcpDebugEnabled, logMcpDebug, logMcpInfo } from './mcpDiagnostics.js';
|
|
12
|
-
// Import
|
|
13
|
-
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
import {
|
|
19
|
-
import { reactAnalyzer } from './analyzers/reactAnalyzer.js';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
14
|
+
// Import universal analyzers
|
|
15
|
+
import { initializeLanguages } from './languages/index.js';
|
|
16
|
+
import { UniversalSOLIDAnalyzer } from './analyzers/universal/UniversalSOLIDAnalyzer.js';
|
|
17
|
+
import { UniversalDRYAnalyzer } from './analyzers/universal/UniversalDRYAnalyzer.js';
|
|
18
|
+
import { UniversalDataAccessAnalyzer } from './analyzers/universal/UniversalDataAccessAnalyzer.js';
|
|
19
|
+
import { UniversalDocumentationAnalyzer } from './analyzers/universal/UniversalDocumentationAnalyzer.js';
|
|
20
|
+
import { UniversalSchemaAnalyzer } from './analyzers/universal/UniversalSchemaAnalyzer.js';
|
|
21
|
+
import { reactAnalyzer } from './analyzers/reactAnalyzer.js';
|
|
22
|
+
import { invariantsAnalyzer } from './analyzers/invariantsAnalyzer.js';
|
|
23
|
+
import { hasRules } from './invariants/ruleEngine.js';
|
|
24
|
+
import { CodeIndexDB } from './codeIndexDB.js';
|
|
25
|
+
// Initialize the canonical language system once
|
|
26
|
+
initializeLanguages();
|
|
27
|
+
/**
|
|
28
|
+
* Shared progress callback adapter: translates universal analyzer's (number) into
|
|
29
|
+
* the object-based callback that auditRunner passes downstream.
|
|
30
|
+
*/
|
|
31
|
+
function createProgressAdapter(analyzerName, progressCallback) {
|
|
32
|
+
if (!progressCallback)
|
|
33
|
+
return undefined;
|
|
34
|
+
return (progress) => {
|
|
35
|
+
progressCallback({
|
|
36
|
+
current: Math.floor(progress * 100),
|
|
37
|
+
total: 100,
|
|
38
|
+
analyzer: analyzerName,
|
|
39
|
+
phase: 'analyzing',
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
}
|
|
22
43
|
/**
|
|
23
44
|
* Default analyzer registry
|
|
24
45
|
*/
|
|
25
46
|
const DEFAULT_ANALYZERS = {
|
|
26
|
-
'solid':
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
47
|
+
'solid': {
|
|
48
|
+
name: 'solid',
|
|
49
|
+
description: 'Detects violations of SOLID principles',
|
|
50
|
+
category: 'architecture',
|
|
51
|
+
analyze: async (files, config, options, progressCallback) => {
|
|
52
|
+
const analyzer = new UniversalSOLIDAnalyzer();
|
|
53
|
+
const universalConfig = { skipTestFiles: true };
|
|
54
|
+
if (config.maxMethodsPerClass !== undefined)
|
|
55
|
+
universalConfig.maxMethodsPerClass = config.maxMethodsPerClass;
|
|
56
|
+
if (config.maxLinesPerMethod !== undefined)
|
|
57
|
+
universalConfig.maxLinesPerMethod = config.maxLinesPerMethod;
|
|
58
|
+
if (config.maxParametersPerMethod !== undefined)
|
|
59
|
+
universalConfig.maxParametersPerMethod = config.maxParametersPerMethod;
|
|
60
|
+
if (config.maxClassComplexity !== undefined)
|
|
61
|
+
universalConfig.maxClassComplexity = config.maxClassComplexity;
|
|
62
|
+
if (config.maxInterfaceMembers !== undefined)
|
|
63
|
+
universalConfig.maxInterfaceMembers = config.maxInterfaceMembers;
|
|
64
|
+
if (config.checkDependencyInversion !== undefined)
|
|
65
|
+
universalConfig.checkDependencyInversion = config.checkDependencyInversion;
|
|
66
|
+
if (config.checkInterfaceSegregation !== undefined)
|
|
67
|
+
universalConfig.checkInterfaceSegregation = config.checkInterfaceSegregation;
|
|
68
|
+
if (config.checkLiskovSubstitution !== undefined)
|
|
69
|
+
universalConfig.checkLiskovSubstitution = config.checkLiskovSubstitution;
|
|
70
|
+
const result = await analyzer.analyze(files, universalConfig, {
|
|
71
|
+
progressCallback: createProgressAdapter('solid', progressCallback),
|
|
72
|
+
...options,
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
...result,
|
|
76
|
+
violations: result.violations.map(v => ({
|
|
77
|
+
...v,
|
|
78
|
+
principle: v.rule,
|
|
79
|
+
analyzer: 'solid',
|
|
80
|
+
})),
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
'dry': {
|
|
85
|
+
name: 'dry',
|
|
86
|
+
description: 'Detects code duplication across the codebase',
|
|
87
|
+
category: 'maintainability',
|
|
88
|
+
analyze: async (files, config, options, progressCallback) => {
|
|
89
|
+
const analyzer = new UniversalDRYAnalyzer();
|
|
90
|
+
return analyzer.analyze(files, config, {
|
|
91
|
+
progressCallback: createProgressAdapter('dry', progressCallback),
|
|
92
|
+
...options,
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
'data-access': {
|
|
97
|
+
name: 'data-access',
|
|
98
|
+
description: 'Analyzes database access patterns and data layer interactions',
|
|
99
|
+
category: 'security',
|
|
100
|
+
analyze: async (files, config, options, progressCallback) => {
|
|
101
|
+
const analyzer = new UniversalDataAccessAnalyzer();
|
|
102
|
+
const universalConfig = {};
|
|
103
|
+
if (config.databases !== undefined)
|
|
104
|
+
universalConfig.databases = config.databases;
|
|
105
|
+
if (config.organizationPatterns !== undefined)
|
|
106
|
+
universalConfig.organizationPatterns = config.organizationPatterns;
|
|
107
|
+
if (config.tablePatterns !== undefined)
|
|
108
|
+
universalConfig.tablePatterns = config.tablePatterns;
|
|
109
|
+
if (config.performanceThresholds !== undefined)
|
|
110
|
+
universalConfig.performanceThresholds = config.performanceThresholds;
|
|
111
|
+
if (config.securityPatterns !== undefined)
|
|
112
|
+
universalConfig.securityPatterns = config.securityPatterns;
|
|
113
|
+
if (config.checkOrgFilters !== undefined)
|
|
114
|
+
universalConfig.checkOrgFilters = config.checkOrgFilters;
|
|
115
|
+
if (config.checkSQLInjection !== undefined)
|
|
116
|
+
universalConfig.checkSQLInjection = config.checkSQLInjection;
|
|
117
|
+
if (config.checkPerformance !== undefined)
|
|
118
|
+
universalConfig.checkPerformance = config.checkPerformance;
|
|
119
|
+
return analyzer.analyze(files, universalConfig, {
|
|
120
|
+
progressCallback: createProgressAdapter('data-access', progressCallback),
|
|
121
|
+
...options,
|
|
122
|
+
});
|
|
123
|
+
},
|
|
124
|
+
},
|
|
31
125
|
'react': reactAnalyzer,
|
|
32
|
-
'documentation':
|
|
33
|
-
|
|
126
|
+
'documentation': {
|
|
127
|
+
name: 'documentation',
|
|
128
|
+
description: 'Analyzes documentation quality across the codebase',
|
|
129
|
+
category: 'documentation',
|
|
130
|
+
analyze: async (files, config, options, progressCallback) => {
|
|
131
|
+
const analyzer = new UniversalDocumentationAnalyzer();
|
|
132
|
+
const universalConfig = {
|
|
133
|
+
requireFunctionDocs: config.requireFunctionDocs ?? true,
|
|
134
|
+
requireClassDocs: config.requireComponentDocs ?? true,
|
|
135
|
+
requireFileDocs: config.requireFileDocs ?? true,
|
|
136
|
+
requireParamDocs: config.requireParamDocs ?? true,
|
|
137
|
+
requireReturnDocs: config.requireReturnDocs ?? true,
|
|
138
|
+
minDescriptionLength: config.minDescriptionLength ?? 10,
|
|
139
|
+
checkExportedOnly: config.checkExportedOnly ?? false,
|
|
140
|
+
exemptPatterns: config.exemptPatterns ?? ['test', 'spec', '\\.d\\.ts$', 'mock', 'fixture'],
|
|
141
|
+
};
|
|
142
|
+
return analyzer.analyze(files, universalConfig, {
|
|
143
|
+
progressCallback: createProgressAdapter('documentation', progressCallback),
|
|
144
|
+
...options,
|
|
145
|
+
});
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
'invariants': invariantsAnalyzer,
|
|
149
|
+
'schema': {
|
|
150
|
+
name: 'schema',
|
|
151
|
+
description: 'Analyzes code against database schemas',
|
|
152
|
+
category: 'database',
|
|
153
|
+
analyze: async (files, config, options, progressCallback) => {
|
|
154
|
+
const analyzer = new UniversalSchemaAnalyzer();
|
|
155
|
+
let schemas = [];
|
|
156
|
+
try {
|
|
157
|
+
const db = CodeIndexDB.getInstance();
|
|
158
|
+
await db.initialize();
|
|
159
|
+
const loadedSchemas = await db.getAllSchemas();
|
|
160
|
+
schemas = loadedSchemas.map((loaded) => {
|
|
161
|
+
const schema = loaded.schema;
|
|
162
|
+
return {
|
|
163
|
+
name: schema.name,
|
|
164
|
+
tables: schema.databases.flatMap((database) => database.tables.map((table) => ({
|
|
165
|
+
name: table.name,
|
|
166
|
+
columns: table.columns || [],
|
|
167
|
+
}))),
|
|
168
|
+
};
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// If database isn't available, continue without schemas
|
|
173
|
+
}
|
|
174
|
+
const universalConfig = {
|
|
175
|
+
enableTableUsageTracking: config.enableTableUsageTracking ?? true,
|
|
176
|
+
checkMissingReferences: config.checkMissingReferences ?? true,
|
|
177
|
+
checkNamingConventions: config.checkNamingConventions ?? true,
|
|
178
|
+
detectUnusedTables: config.detectUnusedTables ?? false,
|
|
179
|
+
validateQueryPatterns: config.validateQueryPatterns ?? true,
|
|
180
|
+
maxQueriesPerFunction: config.maxQueriesPerFunction ?? 5,
|
|
181
|
+
requiredSchemas: config.requiredSchemas ?? [],
|
|
182
|
+
schemas,
|
|
183
|
+
};
|
|
184
|
+
const result = await analyzer.analyze(files, universalConfig);
|
|
185
|
+
return {
|
|
186
|
+
...result,
|
|
187
|
+
violations: result.violations.map(v => ({
|
|
188
|
+
...v,
|
|
189
|
+
schemaType: v.rule,
|
|
190
|
+
details: v.message,
|
|
191
|
+
analyzer: 'schema',
|
|
192
|
+
})),
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
},
|
|
34
196
|
};
|
|
35
197
|
/**
|
|
36
198
|
* Create an audit runner with the given options
|
|
@@ -56,14 +218,69 @@ export function createAuditRunner(options = {}) {
|
|
|
56
218
|
async function run(runOptions) {
|
|
57
219
|
const mergedOptions = { ...options, ...runOptions };
|
|
58
220
|
const startTime = Date.now();
|
|
59
|
-
//
|
|
221
|
+
// ── Scope resolution ─────────────────────────────────────────────
|
|
222
|
+
const scope = mergedOptions.scope ?? 'all';
|
|
223
|
+
const isScoped = scope !== 'all';
|
|
224
|
+
const scopeResultType = isScoped ? 'scoped' : 'full';
|
|
60
225
|
reportProgress(mergedOptions, {
|
|
61
226
|
phase: 'discovery',
|
|
62
|
-
message:
|
|
227
|
+
message: `Discovering files... (scope: ${scopeResultType})`
|
|
63
228
|
});
|
|
64
|
-
// Discover files
|
|
65
|
-
let files
|
|
229
|
+
// Discover files based on scope
|
|
230
|
+
let files;
|
|
231
|
+
let changedFunctions;
|
|
232
|
+
if (typeof scope === 'string' && scope.startsWith('git:')) {
|
|
233
|
+
// git:<ref> scope
|
|
234
|
+
const gitRef = scope.slice(4);
|
|
235
|
+
files = resolveGitScopeFiles(mergedOptions, gitRef);
|
|
236
|
+
logMcpInfo('discovery', 'git scope resolved', {
|
|
237
|
+
ref: gitRef,
|
|
238
|
+
fileCount: files.length
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
else if (scope === 'changed') {
|
|
242
|
+
// Changed scope: detect modified files
|
|
243
|
+
const db = CodeIndexDB.getInstance();
|
|
244
|
+
await db.initialize();
|
|
245
|
+
const modifiedFiles = mergedOptions.explicitFiles?.length
|
|
246
|
+
? mergedOptions.explicitFiles
|
|
247
|
+
: await db.detectModifiedFiles(path.resolve(mergedOptions.projectRoot || process.cwd()));
|
|
248
|
+
files = [...new Set(modifiedFiles.map((f) => path.resolve(f)))].sort();
|
|
249
|
+
logMcpInfo('discovery', 'changed scope resolved', {
|
|
250
|
+
fileCount: files.length
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
else if (Array.isArray(scope)) {
|
|
254
|
+
// files scope: explicit file paths/globs
|
|
255
|
+
files = await resolveFilesScope(mergedOptions, scope);
|
|
256
|
+
logMcpInfo('discovery', 'files scope resolved', {
|
|
257
|
+
fileCount: files.length
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
// all scope: current behavior
|
|
262
|
+
files = await discoverProjectFiles(mergedOptions);
|
|
263
|
+
}
|
|
66
264
|
throwIfAborted(mergedOptions.abortSignal);
|
|
265
|
+
// Detect changed functions for non-all scopes
|
|
266
|
+
if (isScoped && files.length > 0) {
|
|
267
|
+
try {
|
|
268
|
+
const db = CodeIndexDB.getInstance();
|
|
269
|
+
await db.initialize();
|
|
270
|
+
const detection = await db.detectChangedFunctions(files);
|
|
271
|
+
changedFunctions = detection.changedFunctions;
|
|
272
|
+
logMcpInfo('discovery', 'changed function detection', {
|
|
273
|
+
changedFunctionCount: changedFunctions.length,
|
|
274
|
+
deletedCount: detection.deletedFunctions.length,
|
|
275
|
+
errors: detection.errors.length
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
logMcpInfo('discovery', 'changed function detection failed (continuing)', {
|
|
280
|
+
error: err instanceof Error ? err.message : String(err)
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
67
284
|
const handoffRemaining = [];
|
|
68
285
|
const maxPerRun = mergedOptions.maxFilesPerRun;
|
|
69
286
|
if (typeof maxPerRun === 'number' && maxPerRun > 0 && files.length > maxPerRun) {
|
|
@@ -74,6 +291,7 @@ export function createAuditRunner(options = {}) {
|
|
|
74
291
|
logMcpInfo('discovery', 'file discovery finished', {
|
|
75
292
|
projectRoot: path.resolve(root),
|
|
76
293
|
totalFiles: files.length,
|
|
294
|
+
scope: scopeResultType,
|
|
77
295
|
indexFunctions: !!mergedOptions.indexFunctions
|
|
78
296
|
});
|
|
79
297
|
// Collect functions if enabled
|
|
@@ -127,12 +345,32 @@ export function createAuditRunner(options = {}) {
|
|
|
127
345
|
}
|
|
128
346
|
}
|
|
129
347
|
}
|
|
348
|
+
// ── Build full function index for scoped DRY ─────────────────────
|
|
349
|
+
// When scope is not 'all', DRY must compare scoped functions against
|
|
350
|
+
// the full index so new duplicates are caught (R2.2).
|
|
351
|
+
let fullFunctionIndex;
|
|
352
|
+
if (isScoped) {
|
|
353
|
+
try {
|
|
354
|
+
const db = CodeIndexDB.getInstance();
|
|
355
|
+
fullFunctionIndex = await db.getAllFunctions();
|
|
356
|
+
logMcpInfo('analysis', 'loaded full function index for scoped DRY', {
|
|
357
|
+
functionCount: fullFunctionIndex.length
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
catch (err) {
|
|
361
|
+
// Non-fatal: DRY will just run within scope
|
|
362
|
+
logMcpInfo('analysis', 'failed to load full index for DRY (continuing)', {
|
|
363
|
+
error: err instanceof Error ? err.message : String(err)
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
}
|
|
130
367
|
// Run analyzers
|
|
131
368
|
const analyzerResults = {};
|
|
132
369
|
const enabledAnalyzers = getEnabledAnalyzers(mergedOptions, analyzerRegistry);
|
|
133
370
|
logMcpInfo('analysis', 'enabled analyzers', {
|
|
134
371
|
names: enabledAnalyzers,
|
|
135
|
-
fileCount: files.length
|
|
372
|
+
fileCount: files.length,
|
|
373
|
+
scope: scopeResultType
|
|
136
374
|
});
|
|
137
375
|
logMcpDebug('analysis', 'registry keys', { keys: Object.keys(analyzerRegistry) });
|
|
138
376
|
const requestedConcurrency = Number(mergedOptions.analyzerConcurrency);
|
|
@@ -159,9 +397,14 @@ export function createAuditRunner(options = {}) {
|
|
|
159
397
|
analyzer: analyzerName,
|
|
160
398
|
message: `Running ${analyzerName} analyzer...`
|
|
161
399
|
});
|
|
400
|
+
// Build analyzer config; inject full index for DRY on scoped runs
|
|
401
|
+
const analyzerConfig = { ...(mergedOptions.analyzerConfigs?.[analyzerName] || {}) };
|
|
402
|
+
if (analyzerName === 'dry' && isScoped && fullFunctionIndex) {
|
|
403
|
+
analyzerConfig.fullFunctionIndex = fullFunctionIndex;
|
|
404
|
+
}
|
|
162
405
|
logMcpInfo('analysis', `running ${analyzerName}`, { fileCount: files.length });
|
|
163
406
|
try {
|
|
164
|
-
const result = await analyzer.analyze(files,
|
|
407
|
+
const result = await analyzer.analyze(files, analyzerConfig, mergedOptions, (progress) => {
|
|
165
408
|
throwIfAborted(mergedOptions.abortSignal);
|
|
166
409
|
reportProgress(mergedOptions, {
|
|
167
410
|
phase: 'analysis',
|
|
@@ -220,6 +463,7 @@ export function createAuditRunner(options = {}) {
|
|
|
220
463
|
filesAnalyzed: files.length,
|
|
221
464
|
analyzersRun: enabledAnalyzers,
|
|
222
465
|
configUsed: mergedOptions,
|
|
466
|
+
scope: scopeResultType,
|
|
223
467
|
...(collectedFunctions.length > 0 && {
|
|
224
468
|
collectedFunctions,
|
|
225
469
|
fileToFunctionsMap: Object.fromEntries(fileToFunctionsMap)
|
|
@@ -273,6 +517,99 @@ async function discoverProjectFiles(options) {
|
|
|
273
517
|
excludeDirs: undefined // This will use DEFAULT_EXCLUDED_DIRS which includes node_modules
|
|
274
518
|
});
|
|
275
519
|
}
|
|
520
|
+
/**
|
|
521
|
+
* Resolve git:<ref> scope: get files from `git diff --name-only <ref>`
|
|
522
|
+
* plus untracked files. Requires a git worktree.
|
|
523
|
+
*/
|
|
524
|
+
function resolveGitScopeFiles(options, ref) {
|
|
525
|
+
const rootDir = path.resolve(options.projectRoot || process.cwd());
|
|
526
|
+
// Verify git worktree
|
|
527
|
+
try {
|
|
528
|
+
execSync('git rev-parse --git-dir', { cwd: rootDir, stdio: 'pipe' });
|
|
529
|
+
}
|
|
530
|
+
catch {
|
|
531
|
+
throw new Error(`git:<ref> scope requires a git worktree. "${rootDir}" is not a git repository.`);
|
|
532
|
+
}
|
|
533
|
+
const files = new Set();
|
|
534
|
+
// git diff --name-only <ref>
|
|
535
|
+
try {
|
|
536
|
+
const diffOutput = execSync(`git diff --name-only ${ref}`, {
|
|
537
|
+
cwd: rootDir,
|
|
538
|
+
stdio: 'pipe',
|
|
539
|
+
encoding: 'utf-8',
|
|
540
|
+
maxBuffer: 10 * 1024 * 1024
|
|
541
|
+
});
|
|
542
|
+
for (const line of diffOutput.trim().split('\n')) {
|
|
543
|
+
const trimmed = line.trim();
|
|
544
|
+
if (trimmed)
|
|
545
|
+
files.add(path.resolve(rootDir, trimmed));
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
catch (err) {
|
|
549
|
+
throw new Error(`Failed to run git diff --name-only ${ref}: ${err instanceof Error ? err.message : String(err)}`);
|
|
550
|
+
}
|
|
551
|
+
// Untracked files
|
|
552
|
+
try {
|
|
553
|
+
const untrackedOutput = execSync('git ls-files --others --exclude-standard', {
|
|
554
|
+
cwd: rootDir,
|
|
555
|
+
stdio: 'pipe',
|
|
556
|
+
encoding: 'utf-8'
|
|
557
|
+
});
|
|
558
|
+
for (const line of untrackedOutput.trim().split('\n')) {
|
|
559
|
+
const trimmed = line.trim();
|
|
560
|
+
if (trimmed)
|
|
561
|
+
files.add(path.resolve(rootDir, trimmed));
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
catch {
|
|
565
|
+
// No untracked files or git error — non-fatal
|
|
566
|
+
}
|
|
567
|
+
return [...files].sort();
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Resolve files scope: paths can be file paths or globs.
|
|
571
|
+
* Absolute paths are used directly; relative paths are resolved
|
|
572
|
+
* against the project root; globs use discoverFiles.
|
|
573
|
+
*/
|
|
574
|
+
async function resolveFilesScope(options, scopeFiles) {
|
|
575
|
+
const rootDir = path.resolve(options.projectRoot || process.cwd());
|
|
576
|
+
const result = new Set();
|
|
577
|
+
for (const item of scopeFiles) {
|
|
578
|
+
if (item.includes('*') || item.includes('?') || item.includes('[')) {
|
|
579
|
+
// Glob pattern
|
|
580
|
+
const matches = await discoverFiles(rootDir, {
|
|
581
|
+
includePaths: [item],
|
|
582
|
+
excludePaths: options.excludePaths,
|
|
583
|
+
extensions: options.fileExtensions,
|
|
584
|
+
excludeDirs: undefined
|
|
585
|
+
});
|
|
586
|
+
for (const m of matches)
|
|
587
|
+
result.add(m);
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
590
|
+
// Direct file path
|
|
591
|
+
const resolved = path.isAbsolute(item) ? item : path.resolve(rootDir, item);
|
|
592
|
+
result.add(resolved);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
return [...result].sort();
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Check whether a .codeauditor.json at the given directory has invariant rules.
|
|
599
|
+
*/
|
|
600
|
+
function hasInvariantRules(projectDir) {
|
|
601
|
+
try {
|
|
602
|
+
const rulesPath = path.join(projectDir, '.codeauditor.json');
|
|
603
|
+
if (!statSync(rulesPath).isFile())
|
|
604
|
+
return false;
|
|
605
|
+
const raw = readFileSync(rulesPath, 'utf-8');
|
|
606
|
+
const parsed = JSON.parse(raw);
|
|
607
|
+
return Array.isArray(parsed.rules) && parsed.rules.length > 0;
|
|
608
|
+
}
|
|
609
|
+
catch {
|
|
610
|
+
return false;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
276
613
|
/**
|
|
277
614
|
* Get list of enabled analyzers
|
|
278
615
|
*/
|
|
@@ -281,7 +618,13 @@ function getEnabledAnalyzers(options, registry) {
|
|
|
281
618
|
if (options.enabledAnalyzers !== undefined) {
|
|
282
619
|
return options.enabledAnalyzers;
|
|
283
620
|
}
|
|
284
|
-
|
|
621
|
+
const allAnalyzers = Object.keys(registry);
|
|
622
|
+
// Auto-disable invariants when no rules are configured (Spec 05 R3.1)
|
|
623
|
+
const projectDir = options.projectRoot || process.cwd();
|
|
624
|
+
if (!hasRules(options) && !hasInvariantRules(projectDir)) {
|
|
625
|
+
return allAnalyzers.filter(a => a !== 'invariants');
|
|
626
|
+
}
|
|
627
|
+
return allAnalyzers;
|
|
285
628
|
}
|
|
286
629
|
/**
|
|
287
630
|
* Generate audit summary
|