code-auditor-mcp 4.1.1 → 5.0.2
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 +381 -0
- package/README.md +4 -4
- package/configs/hhra-compat.json +0 -8
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +7 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +2 -8
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +4 -4
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +2 -2
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +1 -1
- package/dist/analyzers/applicability.d.ts +42 -0
- package/dist/analyzers/applicability.d.ts.map +1 -1
- package/dist/analyzers/applicability.js +74 -0
- package/dist/analyzers/applicability.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +18 -24
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +30 -23
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +113 -76
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +2 -0
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +8 -3
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +210 -148
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +23 -28
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/handleIdentification.d.ts +356 -0
- package/dist/analyzers/handleIdentification.d.ts.map +1 -0
- package/dist/analyzers/handleIdentification.js +427 -0
- package/dist/analyzers/handleIdentification.js.map +1 -0
- package/dist/analyzers/manifestStaleness.d.ts +64 -0
- package/dist/analyzers/manifestStaleness.d.ts.map +1 -0
- package/dist/analyzers/manifestStaleness.js +115 -0
- package/dist/analyzers/manifestStaleness.js.map +1 -0
- package/dist/analyzers/orgFilterTiers.d.ts +73 -1
- package/dist/analyzers/orgFilterTiers.d.ts.map +1 -1
- package/dist/analyzers/orgFilterTiers.js +166 -1
- package/dist/analyzers/orgFilterTiers.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +251 -57
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +1109 -429
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts +2 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +2 -0
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/receiverResolution.d.ts +183 -0
- package/dist/analyzers/receiverResolution.d.ts.map +1 -0
- package/dist/analyzers/receiverResolution.js +540 -0
- package/dist/analyzers/receiverResolution.js.map +1 -0
- package/dist/analyzers/receiverRoot.d.ts +348 -0
- package/dist/analyzers/receiverRoot.d.ts.map +1 -0
- package/dist/analyzers/receiverRoot.js +1032 -0
- package/dist/analyzers/receiverRoot.js.map +1 -0
- package/dist/analyzers/ruleRegistry.d.ts +12 -68
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +32 -342
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +10 -0
- package/dist/analyzers/ruleTiming.d.ts.map +1 -1
- package/dist/analyzers/ruleTiming.js +20 -0
- package/dist/analyzers/ruleTiming.js.map +1 -1
- package/dist/analyzers/sqlLiteral.d.ts +76 -0
- package/dist/analyzers/sqlLiteral.d.ts.map +1 -0
- package/dist/analyzers/sqlLiteral.js +419 -0
- package/dist/analyzers/sqlLiteral.js.map +1 -0
- package/dist/analyzers/tsEcosystem.d.ts +115 -0
- package/dist/analyzers/tsEcosystem.d.ts.map +1 -0
- package/dist/analyzers/tsEcosystem.js +241 -0
- package/dist/analyzers/tsEcosystem.js.map +1 -0
- package/dist/analyzers/tsExpressionDescriptor.d.ts +156 -0
- package/dist/analyzers/tsExpressionDescriptor.d.ts.map +1 -0
- package/dist/analyzers/tsExpressionDescriptor.js +374 -0
- package/dist/analyzers/tsExpressionDescriptor.js.map +1 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +6 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +107 -44
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +23 -35
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +287 -49
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +2130 -512
- 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 +2 -18
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -33
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +20 -143
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +4 -3
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +36 -13
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +6 -0
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +15 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +25 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +21 -32
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +166 -196
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/functionConcerns.d.ts +3 -0
- package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
- package/dist/analyzers/universal/functionConcerns.js +4 -1
- package/dist/analyzers/universal/functionConcerns.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts +310 -69
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +709 -383
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/config.d.ts +3 -14
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/config.js +3 -16
- package/dist/analyzers/universal/schema/config.js.map +1 -1
- package/dist/analyzers/universal/schema/discovery.d.ts +22 -1
- package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/discovery.js +36 -20
- package/dist/analyzers/universal/schema/discovery.js.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js +13 -3
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
- package/dist/analyzers/universal/schema/migrations.d.ts +187 -27
- package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/migrations.js +443 -186
- package/dist/analyzers/universal/schema/migrations.js.map +1 -1
- package/dist/analyzers/universal/schema/types.d.ts +17 -3
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/violations.js +1 -1
- package/dist/analyzers/universal/schema/violations.js.map +1 -1
- package/dist/analyzers/universal/styleScale.d.ts +52 -0
- package/dist/analyzers/universal/styleScale.d.ts.map +1 -0
- package/dist/analyzers/universal/styleScale.js +95 -0
- package/dist/analyzers/universal/styleScale.js.map +1 -0
- package/dist/applyDataDirEnv.js +1 -1
- package/dist/applyDataDirEnv.js.map +1 -1
- package/dist/auditRouter.d.ts +26 -30
- package/dist/auditRouter.d.ts.map +1 -1
- package/dist/auditRouter.js +373 -143
- package/dist/auditRouter.js.map +1 -1
- package/dist/auditRunner.d.ts +66 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +1544 -1034
- package/dist/auditRunner.js.map +1 -1
- package/dist/baseline.d.ts +30 -3
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +70 -9
- package/dist/baseline.js.map +1 -1
- package/dist/cli.js +983 -821
- package/dist/cli.js.map +1 -1
- package/dist/codeIndex/analyzerConfig.d.ts +60 -0
- package/dist/codeIndex/analyzerConfig.d.ts.map +1 -0
- package/dist/codeIndex/analyzerConfig.js +98 -0
- package/dist/codeIndex/analyzerConfig.js.map +1 -0
- package/dist/codeIndex/auditResults.d.ts +39 -0
- package/dist/codeIndex/auditResults.d.ts.map +1 -0
- package/dist/codeIndex/auditResults.js +99 -0
- package/dist/codeIndex/auditResults.js.map +1 -0
- package/dist/codeIndex/codeMap.d.ts +59 -0
- package/dist/codeIndex/codeMap.d.ts.map +1 -0
- package/dist/codeIndex/codeMap.js +72 -0
- package/dist/codeIndex/codeMap.js.map +1 -0
- package/dist/codeIndex/conventions.d.ts +33 -0
- package/dist/codeIndex/conventions.d.ts.map +1 -0
- package/dist/codeIndex/conventions.js +84 -0
- package/dist/codeIndex/conventions.js.map +1 -0
- package/dist/codeIndex/coverage.d.ts +78 -0
- package/dist/codeIndex/coverage.d.ts.map +1 -0
- package/dist/codeIndex/coverage.js +164 -0
- package/dist/codeIndex/coverage.js.map +1 -0
- package/dist/codeIndex/dependencyGraph.d.ts +97 -0
- package/dist/codeIndex/dependencyGraph.d.ts.map +1 -0
- package/dist/codeIndex/dependencyGraph.js +241 -0
- package/dist/codeIndex/dependencyGraph.js.map +1 -0
- package/dist/codeIndex/functionIndex.d.ts +111 -0
- package/dist/codeIndex/functionIndex.d.ts.map +1 -0
- package/dist/codeIndex/functionIndex.js +306 -0
- package/dist/codeIndex/functionIndex.js.map +1 -0
- package/dist/codeIndex/inferredReceivers.d.ts +32 -0
- package/dist/codeIndex/inferredReceivers.d.ts.map +1 -0
- package/dist/codeIndex/inferredReceivers.js +41 -0
- package/dist/codeIndex/inferredReceivers.js.map +1 -0
- package/dist/codeIndex/meta.d.ts +30 -0
- package/dist/codeIndex/meta.d.ts.map +1 -0
- package/dist/codeIndex/meta.js +37 -0
- package/dist/codeIndex/meta.js.map +1 -0
- package/dist/codeIndex/migrations.d.ts +96 -0
- package/dist/codeIndex/migrations.d.ts.map +1 -0
- package/dist/codeIndex/migrations.js +1302 -0
- package/dist/codeIndex/migrations.js.map +1 -0
- package/dist/codeIndex/projectTasks.d.ts +54 -0
- package/dist/codeIndex/projectTasks.d.ts.map +1 -0
- package/dist/codeIndex/projectTasks.js +81 -0
- package/dist/codeIndex/projectTasks.js.map +1 -0
- package/dist/codeIndex/provenance.d.ts +47 -0
- package/dist/codeIndex/provenance.d.ts.map +1 -0
- package/dist/codeIndex/provenance.js +48 -0
- package/dist/codeIndex/provenance.js.map +1 -0
- package/dist/codeIndex/rawSql.d.ts +54 -0
- package/dist/codeIndex/rawSql.d.ts.map +1 -0
- package/dist/codeIndex/rawSql.js +71 -0
- package/dist/codeIndex/rawSql.js.map +1 -0
- package/dist/codeIndex/schema.d.ts +99 -0
- package/dist/codeIndex/schema.d.ts.map +1 -0
- package/dist/codeIndex/schema.js +174 -0
- package/dist/codeIndex/schema.js.map +1 -0
- package/dist/codeIndex/search.d.ts +40 -0
- package/dist/codeIndex/search.d.ts.map +1 -0
- package/dist/codeIndex/search.js +316 -0
- package/dist/codeIndex/search.js.map +1 -0
- package/dist/codeIndex/shared.d.ts +27 -0
- package/dist/codeIndex/shared.d.ts.map +1 -0
- package/dist/codeIndex/shared.js +46 -0
- package/dist/codeIndex/shared.js.map +1 -0
- package/dist/codeIndex/sqliteCollection.d.ts +81 -0
- package/dist/codeIndex/sqliteCollection.d.ts.map +1 -0
- package/dist/codeIndex/sqliteCollection.js +250 -0
- package/dist/codeIndex/sqliteCollection.js.map +1 -0
- package/dist/codeIndex/whitelist.d.ts +59 -0
- package/dist/codeIndex/whitelist.d.ts.map +1 -0
- package/dist/codeIndex/whitelist.js +188 -0
- package/dist/codeIndex/whitelist.js.map +1 -0
- package/dist/codeIndexDB.d.ts +132 -271
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +365 -2729
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/codeIndexService.d.ts +87 -12
- package/dist/codeIndexService.d.ts.map +1 -1
- package/dist/codeIndexService.js +110 -34
- package/dist/codeIndexService.js.map +1 -1
- package/dist/componentScanner.d.ts +35 -0
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +114 -80
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configGeneratePath.d.ts +4 -0
- package/dist/config/configGeneratePath.d.ts.map +1 -1
- package/dist/config/configGeneratePath.js +4 -0
- package/dist/config/configGeneratePath.js.map +1 -1
- package/dist/config/configLoader.d.ts +15 -0
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +15 -16
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +11 -7
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +16 -14
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts +17 -2
- package/dist/config/effectiveConfig.d.ts.map +1 -1
- package/dist/config/effectiveConfig.js +32 -25
- package/dist/config/effectiveConfig.js.map +1 -1
- package/dist/config/lintConfigReader.d.ts +6 -0
- package/dist/config/lintConfigReader.d.ts.map +1 -1
- package/dist/config/lintConfigReader.js +6 -0
- package/dist/config/lintConfigReader.js.map +1 -1
- package/dist/config/staticObjectExtract.d.ts +4 -0
- package/dist/config/staticObjectExtract.d.ts.map +1 -1
- package/dist/config/staticObjectExtract.js +7 -3
- package/dist/config/staticObjectExtract.js.map +1 -1
- package/dist/config/thresholdRationales.d.ts +2 -0
- package/dist/config/thresholdRationales.d.ts.map +1 -1
- package/dist/config/thresholdRationales.js +5 -2
- package/dist/config/thresholdRationales.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/conventions/conventionMiner.d.ts +105 -2
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +334 -259
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/coverage/coverageService.js +4 -4
- package/dist/coverage/coverageService.js.map +1 -1
- package/dist/daemon/args.d.ts +3 -0
- package/dist/daemon/args.d.ts.map +1 -1
- package/dist/daemon/args.js +3 -0
- package/dist/daemon/args.js.map +1 -1
- package/dist/daemon/core.d.ts +33 -27
- package/dist/daemon/core.d.ts.map +1 -1
- package/dist/daemon/core.js +198 -162
- package/dist/daemon/core.js.map +1 -1
- package/dist/daemon/lspServer.d.ts +8 -0
- package/dist/daemon/lspServer.d.ts.map +1 -1
- package/dist/daemon/lspServer.js +8 -0
- package/dist/daemon/lspServer.js.map +1 -1
- package/dist/daemon/main.d.ts +2 -0
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +22 -4
- package/dist/daemon/main.js.map +1 -1
- package/dist/daemon/resolve.d.ts +18 -3
- package/dist/daemon/resolve.d.ts.map +1 -1
- package/dist/daemon/resolve.js +25 -4
- package/dist/daemon/resolve.js.map +1 -1
- package/dist/daemon/socketClient.d.ts +10 -1
- package/dist/daemon/socketClient.d.ts.map +1 -1
- package/dist/daemon/socketClient.js +10 -1
- package/dist/daemon/socketClient.js.map +1 -1
- package/dist/daemon/socketServer.d.ts +13 -0
- package/dist/daemon/socketServer.d.ts.map +1 -1
- package/dist/daemon/socketServer.js +13 -0
- package/dist/daemon/socketServer.js.map +1 -1
- package/dist/dataPaths.d.ts +17 -8
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +16 -44
- package/dist/dataPaths.js.map +1 -1
- package/dist/dismissals.d.ts +22 -1
- package/dist/dismissals.d.ts.map +1 -1
- package/dist/dismissals.js +22 -1
- package/dist/dismissals.js.map +1 -1
- package/dist/enforcement/gate.d.ts +1 -0
- package/dist/enforcement/gate.d.ts.map +1 -1
- package/dist/enforcement/gate.js +1 -0
- package/dist/enforcement/gate.js.map +1 -1
- package/dist/fingerprint.d.ts +6 -0
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +46 -1
- package/dist/fingerprint.js.map +1 -1
- package/dist/functionScanner.d.ts +30 -1
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +258 -256
- package/dist/functionScanner.js.map +1 -1
- package/dist/generators/AWSQConfigGenerator.d.ts +23 -0
- package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
- package/dist/generators/AWSQConfigGenerator.js +23 -0
- package/dist/generators/AWSQConfigGenerator.js.map +1 -1
- package/dist/generators/BaseConfigGenerator.d.ts +7 -0
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.js +7 -0
- package/dist/generators/BaseConfigGenerator.js.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.d.ts +23 -0
- package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.js +23 -0
- package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
- package/dist/generators/ClineConfigGenerator.d.ts +23 -0
- package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClineConfigGenerator.js +23 -0
- package/dist/generators/ClineConfigGenerator.js.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.d.ts +23 -0
- package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.js +23 -0
- package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
- package/dist/generators/CodexConfigGenerator.d.ts +23 -0
- package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodexConfigGenerator.js +23 -0
- package/dist/generators/CodexConfigGenerator.js.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.d.ts +9 -0
- package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.js +9 -0
- package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
- package/dist/generators/ContinueConfigGenerator.d.ts +23 -0
- package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ContinueConfigGenerator.js +23 -0
- package/dist/generators/ContinueConfigGenerator.js.map +1 -1
- package/dist/generators/CopilotConfigGenerator.d.ts +23 -0
- package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CopilotConfigGenerator.js +23 -0
- package/dist/generators/CopilotConfigGenerator.js.map +1 -1
- package/dist/generators/CursorConfigGenerator.d.ts +23 -0
- package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CursorConfigGenerator.js +23 -0
- package/dist/generators/CursorConfigGenerator.js.map +1 -1
- package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
- package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
- package/dist/generators/GeminiConfigGenerator.js +23 -0
- package/dist/generators/GeminiConfigGenerator.js.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.d.ts +23 -0
- package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.js +23 -0
- package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
- package/dist/generators/ZCodeConfigGenerator.d.ts +23 -0
- package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ZCodeConfigGenerator.js +23 -0
- package/dist/generators/ZCodeConfigGenerator.js.map +1 -1
- package/dist/graph/blastRadius.d.ts.map +1 -1
- package/dist/graph/blastRadius.js +12 -7
- package/dist/graph/blastRadius.js.map +1 -1
- package/dist/graph/callGraph.d.ts +31 -0
- package/dist/graph/callGraph.d.ts.map +1 -1
- package/dist/graph/callGraph.js +62 -32
- package/dist/graph/callGraph.js.map +1 -1
- package/dist/graph/importClassification.d.ts +28 -0
- package/dist/graph/importClassification.d.ts.map +1 -1
- package/dist/graph/importClassification.js +57 -0
- package/dist/graph/importClassification.js.map +1 -1
- package/dist/graph/importGraph.d.ts +38 -0
- package/dist/graph/importGraph.d.ts.map +1 -1
- package/dist/graph/importGraph.js +38 -0
- package/dist/graph/importGraph.js.map +1 -1
- package/dist/graph/outputFormatter.d.ts +12 -4
- package/dist/graph/outputFormatter.d.ts.map +1 -1
- package/dist/graph/outputFormatter.js +12 -62
- package/dist/graph/outputFormatter.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/hooks/codex.d.ts +8 -1
- package/dist/hooks/codex.d.ts.map +1 -1
- package/dist/hooks/codex.js +7 -0
- package/dist/hooks/codex.js.map +1 -1
- package/dist/hooks/core.d.ts +6 -0
- package/dist/hooks/core.d.ts.map +1 -1
- package/dist/hooks/core.js +6 -1
- package/dist/hooks/core.js.map +1 -1
- package/dist/hooks/cursor.d.ts +11 -1
- package/dist/hooks/cursor.d.ts.map +1 -1
- package/dist/hooks/cursor.js +10 -0
- package/dist/hooks/cursor.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/installConfig.d.ts +23 -5
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +23 -5
- package/dist/installConfig.js.map +1 -1
- package/dist/installer.d.ts +6 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +6 -0
- package/dist/installer.js.map +1 -1
- package/dist/invariants/ruleEngine.d.ts +3 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +156 -119
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/invariants/ruleValidator.d.ts +3 -0
- package/dist/invariants/ruleValidator.d.ts.map +1 -1
- package/dist/invariants/ruleValidator.js +185 -178
- package/dist/invariants/ruleValidator.js.map +1 -1
- package/dist/languages/LanguageOrchestrator.d.ts +4 -1
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +8 -19
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/RuntimeManager.d.ts +8 -0
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +55 -5
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +1 -1
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +4 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +37 -3
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +11 -14
- package/dist/languages/go/GoAdapter.js.map +1 -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 +2 -0
- package/dist/languages/go/analyzer-src/dataaccess.go +388 -0
- package/dist/languages/go/analyzer-src/types.go +8 -0
- package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
- package/dist/languages/go/database-packages.json +8 -0
- package/dist/languages/go/goResolution.d.ts +229 -0
- package/dist/languages/go/goResolution.d.ts.map +1 -0
- package/dist/languages/go/goResolution.js +799 -0
- package/dist/languages/go/goResolution.js.map +1 -0
- package/dist/languages/go/stdlib-packages.json +353 -0
- package/dist/languages/go/tenantInputs.d.ts +37 -0
- package/dist/languages/go/tenantInputs.d.ts.map +1 -0
- package/dist/languages/go/tenantInputs.js +121 -0
- package/dist/languages/go/tenantInputs.js.map +1 -0
- package/dist/languages/index.d.ts +1 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +5 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/json/JsonAdapter.d.ts +177 -0
- package/dist/languages/json/JsonAdapter.d.ts.map +1 -0
- package/dist/languages/json/JsonAdapter.js +531 -0
- package/dist/languages/json/JsonAdapter.js.map +1 -0
- package/dist/languages/locationIndex.d.ts +41 -0
- package/dist/languages/locationIndex.d.ts.map +1 -0
- package/dist/languages/locationIndex.js +42 -0
- package/dist/languages/locationIndex.js.map +1 -0
- package/dist/languages/sql/dialectDetection.d.ts +57 -0
- package/dist/languages/sql/dialectDetection.d.ts.map +1 -0
- package/dist/languages/sql/dialectDetection.js +135 -0
- package/dist/languages/sql/dialectDetection.js.map +1 -0
- package/dist/languages/sql/sqlAst.d.ts +494 -0
- package/dist/languages/sql/sqlAst.d.ts.map +1 -0
- package/dist/languages/sql/sqlAst.js +1817 -0
- package/dist/languages/sql/sqlAst.js.map +1 -0
- package/dist/languages/testConventions.d.ts +12 -1
- package/dist/languages/testConventions.d.ts.map +1 -1
- package/dist/languages/testConventions.js +13 -1
- package/dist/languages/testConventions.js.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/converter.js +2 -2
- package/dist/languages/tree-sitter/converter.js.map +1 -1
- package/dist/languages/tree-sitter/parser.d.ts +3 -4
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
- package/dist/languages/tree-sitter/parser.js +10 -4
- package/dist/languages/tree-sitter/parser.js.map +1 -1
- package/dist/languages/tree-sitter/rawNode.d.ts +3 -0
- package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -1
- package/dist/languages/tree-sitter/rawNode.js +3 -0
- package/dist/languages/tree-sitter/rawNode.js.map +1 -1
- package/dist/languages/types.d.ts +7 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +36 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +168 -45
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/languages/typescript/database-packages.json +19 -0
- package/dist/ledger.d.ts +118 -2
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +167 -45
- package/dist/ledger.js.map +1 -1
- package/dist/legacyIndexNotice.d.ts +32 -0
- package/dist/legacyIndexNotice.d.ts.map +1 -0
- package/dist/legacyIndexNotice.js +89 -0
- package/dist/legacyIndexNotice.js.map +1 -0
- package/dist/mcp-tools/discoveryQueries.d.ts +55 -0
- package/dist/mcp-tools/discoveryQueries.d.ts.map +1 -0
- package/dist/mcp-tools/discoveryQueries.js +157 -0
- package/dist/mcp-tools/discoveryQueries.js.map +1 -0
- package/dist/mcp-tools/projectTasks.d.ts +9 -123
- package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
- package/dist/mcp-tools/projectTasks.js +180 -170
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +20 -0
- package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
- package/dist/mcp-tools/whitelistTools.js +20 -0
- package/dist/mcp-tools/whitelistTools.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.d.ts +9 -0
- package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +13 -5
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts +78 -0
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +203 -340
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +2 -0
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +12 -5
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +6 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +827 -850
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +29 -33
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +102 -791
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.d.ts +5 -0
- package/dist/mcpAutoIndex.d.ts.map +1 -1
- package/dist/mcpAutoIndex.js +7 -2
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/mcpDiagnostics.d.ts +7 -0
- package/dist/mcpDiagnostics.d.ts.map +1 -1
- package/dist/mcpDiagnostics.js +34 -9
- package/dist/mcpDiagnostics.js.map +1 -1
- package/dist/mcpToolErrors.d.ts +16 -0
- package/dist/mcpToolErrors.d.ts.map +1 -1
- package/dist/mcpToolErrors.js +16 -0
- package/dist/mcpToolErrors.js.map +1 -1
- package/dist/nextFile.d.ts +6 -0
- package/dist/nextFile.d.ts.map +1 -1
- package/dist/nextFile.js +6 -0
- package/dist/nextFile.js.map +1 -1
- package/dist/nextFileIncremental.d.ts +44 -4
- package/dist/nextFileIncremental.d.ts.map +1 -1
- package/dist/nextFileIncremental.js +47 -7
- package/dist/nextFileIncremental.js.map +1 -1
- package/dist/phase/batchFunctions.d.ts +38 -0
- package/dist/phase/batchFunctions.d.ts.map +1 -0
- package/dist/phase/batchFunctions.js +64 -0
- package/dist/phase/batchFunctions.js.map +1 -0
- package/dist/phase/checks.d.ts +39 -0
- package/dist/phase/checks.d.ts.map +1 -0
- package/dist/phase/checks.js +48 -0
- package/dist/phase/checks.js.map +1 -0
- package/dist/phase/codeBlocks.d.ts +25 -0
- package/dist/phase/codeBlocks.d.ts.map +1 -0
- package/dist/phase/codeBlocks.js +268 -0
- package/dist/phase/codeBlocks.js.map +1 -0
- package/dist/phase/colorMath.d.ts +41 -0
- package/dist/phase/colorMath.d.ts.map +1 -0
- package/dist/phase/colorMath.js +109 -0
- package/dist/phase/colorMath.js.map +1 -0
- package/dist/phase/config.d.ts +29 -0
- package/dist/phase/config.d.ts.map +1 -0
- package/dist/phase/config.js +54 -0
- package/dist/phase/config.js.map +1 -0
- package/dist/phase/consumed.d.ts +47 -0
- package/dist/phase/consumed.d.ts.map +1 -0
- package/dist/phase/consumed.js +22 -0
- package/dist/phase/consumed.js.map +1 -0
- package/dist/phase/conventionMining.d.ts +59 -0
- package/dist/phase/conventionMining.d.ts.map +1 -0
- package/dist/phase/conventionMining.js +152 -0
- package/dist/phase/conventionMining.js.map +1 -0
- package/dist/phase/coverage.d.ts +65 -0
- package/dist/phase/coverage.d.ts.map +1 -0
- package/dist/phase/coverage.js +121 -0
- package/dist/phase/coverage.js.map +1 -0
- package/dist/phase/dag.d.ts +49 -0
- package/dist/phase/dag.d.ts.map +1 -0
- package/dist/phase/dag.js +120 -0
- package/dist/phase/dag.js.map +1 -0
- package/dist/phase/dataAccessCalls.d.ts +33 -0
- package/dist/phase/dataAccessCalls.d.ts.map +1 -0
- package/dist/phase/dataAccessCalls.js +42 -0
- package/dist/phase/dataAccessCalls.js.map +1 -0
- package/dist/phase/dataAccessCallsCandidates.d.ts +25 -0
- package/dist/phase/dataAccessCallsCandidates.d.ts.map +1 -0
- package/dist/phase/dataAccessCallsCandidates.js +27 -0
- package/dist/phase/dataAccessCallsCandidates.js.map +1 -0
- package/dist/phase/dynamicSql.d.ts +18 -0
- package/dist/phase/dynamicSql.d.ts.map +1 -0
- package/dist/phase/dynamicSql.js +20 -0
- package/dist/phase/dynamicSql.js.map +1 -0
- package/dist/phase/exportForm.d.ts +23 -0
- package/dist/phase/exportForm.d.ts.map +1 -0
- package/dist/phase/exportForm.js +29 -0
- package/dist/phase/exportForm.js.map +1 -0
- package/dist/phase/exportSymbols.d.ts +21 -0
- package/dist/phase/exportSymbols.d.ts.map +1 -0
- package/dist/phase/exportSymbols.js +28 -0
- package/dist/phase/exportSymbols.js.map +1 -0
- package/dist/phase/fileHeader.d.ts +15 -0
- package/dist/phase/fileHeader.d.ts.map +1 -0
- package/dist/phase/fileHeader.js +33 -0
- package/dist/phase/fileHeader.js.map +1 -0
- package/dist/phase/fileImports.d.ts +39 -0
- package/dist/phase/fileImports.d.ts.map +1 -0
- package/dist/phase/fileImports.js +138 -0
- package/dist/phase/fileImports.js.map +1 -0
- package/dist/phase/fileSymbols.d.ts +25 -0
- package/dist/phase/fileSymbols.d.ts.map +1 -0
- package/dist/phase/fileSymbols.js +302 -0
- package/dist/phase/fileSymbols.js.map +1 -0
- package/dist/phase/functionBodies.d.ts +28 -0
- package/dist/phase/functionBodies.d.ts.map +1 -0
- package/dist/phase/functionBodies.js +67 -0
- package/dist/phase/functionBodies.js.map +1 -0
- package/dist/phase/functionIndex.d.ts +28 -0
- package/dist/phase/functionIndex.d.ts.map +1 -0
- package/dist/phase/functionIndex.js +152 -0
- package/dist/phase/functionIndex.js.map +1 -0
- package/dist/phase/goFunctionAnalysis.d.ts +47 -0
- package/dist/phase/goFunctionAnalysis.d.ts.map +1 -0
- package/dist/phase/goFunctionAnalysis.js +291 -0
- package/dist/phase/goFunctionAnalysis.js.map +1 -0
- package/dist/phase/goFunctions.d.ts +38 -0
- package/dist/phase/goFunctions.d.ts.map +1 -0
- package/dist/phase/goFunctions.js +154 -0
- package/dist/phase/goFunctions.js.map +1 -0
- package/dist/phase/goImports.d.ts +29 -0
- package/dist/phase/goImports.d.ts.map +1 -0
- package/dist/phase/goImports.js +68 -0
- package/dist/phase/goImports.js.map +1 -0
- package/dist/phase/goPackageBindings.d.ts +22 -0
- package/dist/phase/goPackageBindings.d.ts.map +1 -0
- package/dist/phase/goPackageBindings.js +30 -0
- package/dist/phase/goPackageBindings.js.map +1 -0
- package/dist/phase/goSwitches.d.ts +28 -0
- package/dist/phase/goSwitches.d.ts.map +1 -0
- package/dist/phase/goSwitches.js +52 -0
- package/dist/phase/goSwitches.js.map +1 -0
- package/dist/phase/importForm.d.ts +20 -0
- package/dist/phase/importForm.d.ts.map +1 -0
- package/dist/phase/importForm.js +27 -0
- package/dist/phase/importForm.js.map +1 -0
- package/dist/phase/importSpecifiers.d.ts +20 -0
- package/dist/phase/importSpecifiers.d.ts.map +1 -0
- package/dist/phase/importSpecifiers.js +30 -0
- package/dist/phase/importSpecifiers.js.map +1 -0
- package/dist/phase/imports.d.ts +18 -0
- package/dist/phase/imports.d.ts.map +1 -0
- package/dist/phase/imports.js +25 -0
- package/dist/phase/imports.js.map +1 -0
- package/dist/phase/jsonDocument.d.ts +26 -0
- package/dist/phase/jsonDocument.d.ts.map +1 -0
- package/dist/phase/jsonDocument.js +36 -0
- package/dist/phase/jsonDocument.js.map +1 -0
- package/dist/phase/localBinding.d.ts +33 -0
- package/dist/phase/localBinding.d.ts.map +1 -0
- package/dist/phase/localBinding.js +208 -0
- package/dist/phase/localBinding.js.map +1 -0
- package/dist/phase/loopQueries.d.ts +31 -0
- package/dist/phase/loopQueries.d.ts.map +1 -0
- package/dist/phase/loopQueries.js +44 -0
- package/dist/phase/loopQueries.js.map +1 -0
- package/dist/phase/loopQueryCandidates.d.ts +26 -0
- package/dist/phase/loopQueryCandidates.d.ts.map +1 -0
- package/dist/phase/loopQueryCandidates.js +28 -0
- package/dist/phase/loopQueryCandidates.js.map +1 -0
- package/dist/phase/oracles.d.ts +216 -0
- package/dist/phase/oracles.d.ts.map +1 -0
- package/dist/phase/oracles.js +484 -0
- package/dist/phase/oracles.js.map +1 -0
- package/dist/phase/phaseModel.d.ts +190 -0
- package/dist/phase/phaseModel.d.ts.map +1 -0
- package/dist/phase/phaseModel.js +491 -0
- package/dist/phase/phaseModel.js.map +1 -0
- package/dist/phase/producers.d.ts +450 -0
- package/dist/phase/producers.d.ts.map +1 -0
- package/dist/phase/producers.js +1030 -0
- package/dist/phase/producers.js.map +1 -0
- package/dist/phase/querySiteCandidates.d.ts +27 -0
- package/dist/phase/querySiteCandidates.d.ts.map +1 -0
- package/dist/phase/querySiteCandidates.js +66 -0
- package/dist/phase/querySiteCandidates.js.map +1 -0
- package/dist/phase/querySites.d.ts +30 -0
- package/dist/phase/querySites.d.ts.map +1 -0
- package/dist/phase/querySites.js +93 -0
- package/dist/phase/querySites.js.map +1 -0
- package/dist/phase/reachability.d.ts +61 -0
- package/dist/phase/reachability.d.ts.map +1 -0
- package/dist/phase/reachability.js +104 -0
- package/dist/phase/reachability.js.map +1 -0
- package/dist/phase/reactComponents.d.ts +33 -0
- package/dist/phase/reactComponents.d.ts.map +1 -0
- package/dist/phase/reactComponents.js +47 -0
- package/dist/phase/reactComponents.js.map +1 -0
- package/dist/phase/receiverActivity.d.ts +35 -0
- package/dist/phase/receiverActivity.d.ts.map +1 -0
- package/dist/phase/receiverActivity.js +66 -0
- package/dist/phase/receiverActivity.js.map +1 -0
- package/dist/phase/receiverConsumers.d.ts +207 -0
- package/dist/phase/receiverConsumers.d.ts.map +1 -0
- package/dist/phase/receiverConsumers.js +1063 -0
- package/dist/phase/receiverConsumers.js.map +1 -0
- package/dist/phase/receiverProvenance.d.ts +120 -0
- package/dist/phase/receiverProvenance.d.ts.map +1 -0
- package/dist/phase/receiverProvenance.js +377 -0
- package/dist/phase/receiverProvenance.js.map +1 -0
- package/dist/phase/routing.d.ts +47 -0
- package/dist/phase/routing.d.ts.map +1 -0
- package/dist/phase/routing.js +62 -0
- package/dist/phase/routing.js.map +1 -0
- package/dist/phase/rules/conventions.d.ts +61 -0
- package/dist/phase/rules/conventions.d.ts.map +1 -0
- package/dist/phase/rules/conventions.js +403 -0
- package/dist/phase/rules/conventions.js.map +1 -0
- package/dist/phase/rules/crossDomain.d.ts +102 -0
- package/dist/phase/rules/crossDomain.d.ts.map +1 -0
- package/dist/phase/rules/crossDomain.js +918 -0
- package/dist/phase/rules/crossDomain.js.map +1 -0
- package/dist/phase/rules/dataAccess.d.ts +62 -0
- package/dist/phase/rules/dataAccess.d.ts.map +1 -0
- package/dist/phase/rules/dataAccess.js +480 -0
- package/dist/phase/rules/dataAccess.js.map +1 -0
- package/dist/phase/rules/dependencyGraph.d.ts +44 -0
- package/dist/phase/rules/dependencyGraph.d.ts.map +1 -0
- package/dist/phase/rules/dependencyGraph.js +260 -0
- package/dist/phase/rules/dependencyGraph.js.map +1 -0
- package/dist/phase/rules/documentation.d.ts +45 -0
- package/dist/phase/rules/documentation.d.ts.map +1 -0
- package/dist/phase/rules/documentation.js +340 -0
- package/dist/phase/rules/documentation.js.map +1 -0
- package/dist/phase/rules/dry.d.ts +109 -0
- package/dist/phase/rules/dry.d.ts.map +1 -0
- package/dist/phase/rules/dry.js +803 -0
- package/dist/phase/rules/dry.js.map +1 -0
- package/dist/phase/rules/fileDocumentation.d.ts +36 -0
- package/dist/phase/rules/fileDocumentation.d.ts.map +1 -0
- package/dist/phase/rules/fileDocumentation.js +134 -0
- package/dist/phase/rules/fileDocumentation.js.map +1 -0
- package/dist/phase/rules/functionBodies.d.ts +33 -0
- package/dist/phase/rules/functionBodies.d.ts.map +1 -0
- package/dist/phase/rules/functionBodies.js +71 -0
- package/dist/phase/rules/functionBodies.js.map +1 -0
- package/dist/phase/rules/goRules.d.ts +49 -0
- package/dist/phase/rules/goRules.d.ts.map +1 -0
- package/dist/phase/rules/goRules.js +209 -0
- package/dist/phase/rules/goRules.js.map +1 -0
- package/dist/phase/rules/querySites.d.ts +29 -0
- package/dist/phase/rules/querySites.d.ts.map +1 -0
- package/dist/phase/rules/querySites.js +94 -0
- package/dist/phase/rules/querySites.js.map +1 -0
- package/dist/phase/rules/react.d.ts +38 -0
- package/dist/phase/rules/react.d.ts.map +1 -0
- package/dist/phase/rules/react.js +202 -0
- package/dist/phase/rules/react.js.map +1 -0
- package/dist/phase/rules/registry.d.ts +170 -0
- package/dist/phase/rules/registry.d.ts.map +1 -0
- package/dist/phase/rules/registry.js +103 -0
- package/dist/phase/rules/registry.js.map +1 -0
- package/dist/phase/rules/schema.d.ts +79 -0
- package/dist/phase/rules/schema.d.ts.map +1 -0
- package/dist/phase/rules/schema.js +273 -0
- package/dist/phase/rules/schema.js.map +1 -0
- package/dist/phase/rules/schemaJson.d.ts +32 -0
- package/dist/phase/rules/schemaJson.d.ts.map +1 -0
- package/dist/phase/rules/schemaJson.js +81 -0
- package/dist/phase/rules/schemaJson.js.map +1 -0
- package/dist/phase/rules/schemaValidator.d.ts +38 -0
- package/dist/phase/rules/schemaValidator.d.ts.map +1 -0
- package/dist/phase/rules/schemaValidator.js +107 -0
- package/dist/phase/rules/schemaValidator.js.map +1 -0
- package/dist/phase/rules/secrets.d.ts +34 -0
- package/dist/phase/rules/secrets.d.ts.map +1 -0
- package/dist/phase/rules/secrets.js +208 -0
- package/dist/phase/rules/secrets.js.map +1 -0
- package/dist/phase/rules/security.d.ts +30 -0
- package/dist/phase/rules/security.d.ts.map +1 -0
- package/dist/phase/rules/security.js +85 -0
- package/dist/phase/rules/security.js.map +1 -0
- package/dist/phase/rules/securityDefects.d.ts +37 -0
- package/dist/phase/rules/securityDefects.d.ts.map +1 -0
- package/dist/phase/rules/securityDefects.js +167 -0
- package/dist/phase/rules/securityDefects.js.map +1 -0
- package/dist/phase/rules/solid.d.ts +61 -0
- package/dist/phase/rules/solid.d.ts.map +1 -0
- package/dist/phase/rules/solid.js +562 -0
- package/dist/phase/rules/solid.js.map +1 -0
- package/dist/phase/rules/styles.d.ts +77 -0
- package/dist/phase/rules/styles.d.ts.map +1 -0
- package/dist/phase/rules/styles.js +868 -0
- package/dist/phase/rules/styles.js.map +1 -0
- package/dist/phase/rules/unreferencedModule.d.ts +26 -0
- package/dist/phase/rules/unreferencedModule.d.ts.map +1 -0
- package/dist/phase/rules/unreferencedModule.js +61 -0
- package/dist/phase/rules/unreferencedModule.js.map +1 -0
- package/dist/phase/runner.d.ts +549 -0
- package/dist/phase/runner.d.ts.map +1 -0
- package/dist/phase/runner.js +1098 -0
- package/dist/phase/runner.js.map +1 -0
- package/dist/phase/schemaCode.d.ts +34 -0
- package/dist/phase/schemaCode.d.ts.map +1 -0
- package/dist/phase/schemaCode.js +53 -0
- package/dist/phase/schemaCode.js.map +1 -0
- package/dist/phase/schemaObjects.d.ts +37 -0
- package/dist/phase/schemaObjects.d.ts.map +1 -0
- package/dist/phase/schemaObjects.js +139 -0
- package/dist/phase/schemaObjects.js.map +1 -0
- package/dist/phase/schemaUsage.d.ts +30 -0
- package/dist/phase/schemaUsage.d.ts.map +1 -0
- package/dist/phase/schemaUsage.js +99 -0
- package/dist/phase/schemaUsage.js.map +1 -0
- package/dist/phase/schemaUsageCandidates.d.ts +32 -0
- package/dist/phase/schemaUsageCandidates.d.ts.map +1 -0
- package/dist/phase/schemaUsageCandidates.js +165 -0
- package/dist/phase/schemaUsageCandidates.js.map +1 -0
- package/dist/phase/schemaValidations.d.ts +34 -0
- package/dist/phase/schemaValidations.d.ts.map +1 -0
- package/dist/phase/schemaValidations.js +53 -0
- package/dist/phase/schemaValidations.js.map +1 -0
- package/dist/phase/secretCandidates.d.ts +28 -0
- package/dist/phase/secretCandidates.d.ts.map +1 -0
- package/dist/phase/secretCandidates.js +132 -0
- package/dist/phase/secretCandidates.js.map +1 -0
- package/dist/phase/securityCandidates.d.ts +29 -0
- package/dist/phase/securityCandidates.d.ts.map +1 -0
- package/dist/phase/securityCandidates.js +469 -0
- package/dist/phase/securityCandidates.js.map +1 -0
- package/dist/phase/seeded-defects.d.ts +18 -0
- package/dist/phase/seeded-defects.d.ts.map +1 -0
- package/dist/phase/seeded-defects.js +61 -0
- package/dist/phase/seeded-defects.js.map +1 -0
- package/dist/phase/stringLiterals.d.ts +24 -0
- package/dist/phase/stringLiterals.d.ts.map +1 -0
- package/dist/phase/stringLiterals.js +35 -0
- package/dist/phase/stringLiterals.js.map +1 -0
- package/dist/phase/stylesCss.d.ts +25 -0
- package/dist/phase/stylesCss.d.ts.map +1 -0
- package/dist/phase/stylesCss.js +34 -0
- package/dist/phase/stylesCss.js.map +1 -0
- package/dist/phase/stylesMarkup.d.ts +31 -0
- package/dist/phase/stylesMarkup.d.ts.map +1 -0
- package/dist/phase/stylesMarkup.js +48 -0
- package/dist/phase/stylesMarkup.js.map +1 -0
- package/dist/phase/stylesSource.d.ts +36 -0
- package/dist/phase/stylesSource.d.ts.map +1 -0
- package/dist/phase/stylesSource.js +50 -0
- package/dist/phase/stylesSource.js.map +1 -0
- package/dist/phase/typeDeclarations.d.ts +33 -0
- package/dist/phase/typeDeclarations.d.ts.map +1 -0
- package/dist/phase/typeDeclarations.js +76 -0
- package/dist/phase/typeDeclarations.js.map +1 -0
- package/dist/phase/types.d.ts +2199 -0
- package/dist/phase/types.d.ts.map +1 -0
- package/dist/phase/types.js +27 -0
- package/dist/phase/types.js.map +1 -0
- package/dist/phase/withinFileProvenance.d.ts +50 -0
- package/dist/phase/withinFileProvenance.d.ts.map +1 -0
- package/dist/phase/withinFileProvenance.js +112 -0
- package/dist/phase/withinFileProvenance.js.map +1 -0
- package/dist/pipeline.d.ts +37 -30
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +131 -326
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +104 -21
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +1144 -984
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/pipelineTypes.d.ts +21 -0
- package/dist/pipelineTypes.d.ts.map +1 -1
- package/dist/pipelineTypes.js +21 -10
- package/dist/pipelineTypes.js.map +1 -1
- package/dist/presets/presets.d.ts +9 -2
- package/dist/presets/presets.d.ts.map +1 -1
- package/dist/presets/presets.js +15 -26
- package/dist/presets/presets.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts +14 -3
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +14 -3
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts +5 -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 +9 -2
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +19 -5
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/reportGenerator.d.ts +9 -2
- package/dist/reporting/reportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.js +9 -2
- package/dist/reporting/reportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts +14 -0
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +14 -0
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/reporting/sizeDistribution.d.ts +19 -2
- package/dist/reporting/sizeDistribution.d.ts.map +1 -1
- package/dist/reporting/sizeDistribution.js +23 -5
- package/dist/reporting/sizeDistribution.js.map +1 -1
- package/dist/ruleAliases.d.ts +6 -8
- package/dist/ruleAliases.d.ts.map +1 -1
- package/dist/ruleAliases.js +29 -4
- package/dist/ruleAliases.js.map +1 -1
- package/dist/search/QueryParser.d.ts +1 -0
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +32 -91
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/services/CodeMapGenerator.d.ts +19 -20
- package/dist/services/CodeMapGenerator.d.ts.map +1 -1
- package/dist/services/CodeMapGenerator.js +214 -194
- package/dist/services/CodeMapGenerator.js.map +1 -1
- package/dist/services/ProjectTaskRepository.d.ts +65 -3
- package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
- package/dist/services/ProjectTaskRepository.js +94 -25
- package/dist/services/ProjectTaskRepository.js.map +1 -1
- package/dist/services/auditJobService.d.ts +17 -1
- package/dist/services/auditJobService.d.ts.map +1 -1
- package/dist/services/auditJobService.js +16 -0
- package/dist/services/auditJobService.js.map +1 -1
- package/dist/services/fileAccounting.d.ts +43 -5
- package/dist/services/fileAccounting.d.ts.map +1 -1
- package/dist/services/fileAccounting.js +48 -9
- package/dist/services/fileAccounting.js.map +1 -1
- package/dist/services/projectTaskHelpers.d.ts +45 -0
- package/dist/services/projectTaskHelpers.d.ts.map +1 -1
- package/dist/services/projectTaskHelpers.js +45 -0
- package/dist/services/projectTaskHelpers.js.map +1 -1
- package/dist/services/whitelistService.d.ts +40 -5
- package/dist/services/whitelistService.d.ts.map +1 -1
- package/dist/services/whitelistService.js +87 -46
- package/dist/services/whitelistService.js.map +1 -1
- package/dist/sqlite/betterSqlite3.d.ts +35 -1
- package/dist/sqlite/betterSqlite3.d.ts.map +1 -1
- package/dist/sqlite/betterSqlite3.js +35 -1
- package/dist/sqlite/betterSqlite3.js.map +1 -1
- package/dist/sqlite/driver.d.ts +23 -0
- package/dist/sqlite/driver.d.ts.map +1 -1
- package/dist/sqlite/driver.js +23 -0
- package/dist/sqlite/driver.js.map +1 -1
- package/dist/sqlite/nodeSqlite.d.ts +35 -1
- package/dist/sqlite/nodeSqlite.d.ts.map +1 -1
- package/dist/sqlite/nodeSqlite.js +35 -1
- package/dist/sqlite/nodeSqlite.js.map +1 -1
- package/dist/structuralSignature.d.ts +9 -0
- package/dist/structuralSignature.d.ts.map +1 -1
- package/dist/structuralSignature.js +9 -0
- package/dist/structuralSignature.js.map +1 -1
- package/dist/styles/cssAstExtractor.d.ts +15 -0
- package/dist/styles/cssAstExtractor.d.ts.map +1 -1
- package/dist/styles/cssAstExtractor.js +15 -0
- package/dist/styles/cssAstExtractor.js.map +1 -1
- package/dist/styles/normalizer.d.ts +6 -0
- package/dist/styles/normalizer.d.ts.map +1 -1
- package/dist/styles/normalizer.js +6 -0
- package/dist/styles/normalizer.js.map +1 -1
- package/dist/styles/styleExtractor.d.ts +29 -2
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +67 -48
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts +8 -0
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +135 -138
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindConfigLoader.d.ts +12 -0
- package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
- package/dist/styles/tailwindConfigLoader.js +12 -0
- package/dist/styles/tailwindConfigLoader.js.map +1 -1
- package/dist/styles/tailwindExpander.d.ts +3 -0
- package/dist/styles/tailwindExpander.d.ts.map +1 -1
- package/dist/styles/tailwindExpander.js +8 -4
- package/dist/styles/tailwindExpander.js.map +1 -1
- package/dist/styles/tailwindProbe.d.ts +9 -0
- package/dist/styles/tailwindProbe.d.ts.map +1 -1
- package/dist/styles/tailwindProbe.js +181 -166
- package/dist/styles/tailwindProbe.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts +13 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +13 -0
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/symbols.d.ts +13 -11
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +14 -21
- package/dist/symbols.js.map +1 -1
- package/dist/telemetry.d.ts +31 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +31 -3
- package/dist/telemetry.js.map +1 -1
- package/dist/tool-registry.d.ts +37 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js +37 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/types.d.ts +114 -71
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -16
- package/dist/types.js.map +1 -1
- package/dist/ui/InteractivePrompts.d.ts +12 -0
- package/dist/ui/InteractivePrompts.d.ts.map +1 -1
- package/dist/ui/InteractivePrompts.js +12 -0
- package/dist/ui/InteractivePrompts.js.map +1 -1
- package/dist/utils/astParser.d.ts +15 -0
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +15 -0
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/astUtils.d.ts +60 -0
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +350 -362
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/contentHash.d.ts +22 -0
- package/dist/utils/contentHash.d.ts.map +1 -0
- package/dist/utils/contentHash.js +26 -0
- package/dist/utils/contentHash.js.map +1 -0
- package/dist/utils/dependencyExtractor.d.ts +28 -0
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +28 -1
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/dist/utils/errorMessage.d.ts +10 -0
- package/dist/utils/errorMessage.d.ts.map +1 -0
- package/dist/utils/errorMessage.js +12 -0
- package/dist/utils/errorMessage.js.map +1 -0
- package/dist/utils/fileDiscovery.d.ts +61 -2
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +131 -23
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +34 -5
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +73 -52
- package/dist/utils/reactDetection.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/dist/workers/auditWorker.js +7 -3
- package/dist/workers/auditWorker.js.map +1 -1
- package/examples/.auditrc.example.json +0 -8
- package/examples/.auditrc.json +0 -11
- package/examples/.code-auditor.json +0 -2
- package/examples/nextjs.auditrc.json +0 -8
- package/examples/node-api.auditrc.json +0 -7
- package/examples/react.auditrc.json +0 -6
- package/examples/tolerant-solid.auditrc.json +0 -5
- package/package.json +18 -9
- package/plugin/.claude-plugin/manifest.json +16 -0
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +7 -3
- package/plugin/scripts/hook-audit.sh +46 -16
- package/plugin/scripts/hook-common.sh +81 -12
- package/plugin/scripts/hook-drift-check.sh +76 -0
- package/plugin/scripts/hook-self-audit.sh +22 -14
- package/plugin/scripts/hook-warm.sh +5 -6
- package/plugin/skills/code-auditor/SKILL.md +1 -1
- package/server.json +10 -4
package/dist/pipeline.js
CHANGED
|
@@ -15,7 +15,6 @@ import path from 'path';
|
|
|
15
15
|
import { performance } from 'perf_hooks';
|
|
16
16
|
import { AuditAbortedError, MAX_ORPHAN_SOURCE_BYTES, } from './types.js';
|
|
17
17
|
import { RULE_REGISTRY } from './analyzers/ruleRegistry.js';
|
|
18
|
-
import { evaluateRuleApplicability, scopedWholeProgramApplicability } from './analyzers/applicability.js';
|
|
19
18
|
import { resetRuleTiming, getRuleTimingSortedDesc } from './analyzers/ruleTiming.js';
|
|
20
19
|
import { LanguageRegistry } from './languages/LanguageRegistry.js';
|
|
21
20
|
import { discoverFiles, DEFAULT_EXCLUDED_DIRS } from './utils/fileDiscovery.js';
|
|
@@ -29,6 +28,7 @@ import { validateFactsDependencies } from './pipelineTypes.js';
|
|
|
29
28
|
* File discovery is eager (separate from parsing) so the total count is
|
|
30
29
|
* available for progress reporting throughout the parse + visit loop.
|
|
31
30
|
*
|
|
31
|
+
* @param config - Pipeline configuration (project root, files, callbacks).
|
|
32
32
|
* @returns generator (yields tuples), total file count, and a closure to
|
|
33
33
|
* retrieve aggregate parse/read timing after the generator completes.
|
|
34
34
|
*/
|
|
@@ -214,8 +214,17 @@ export function runStage1(config) {
|
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
216
|
// ── Stage 2: Per-file visitors ─────────────────────────────────────────────
|
|
217
|
+
/**
|
|
218
|
+
* Stream the stage-1 tuples through every per-file visitor, accumulating
|
|
219
|
+
* per-analyzer results, facts, and index-fact rows.
|
|
220
|
+
*
|
|
221
|
+
* @param tuples - The stage-1 stream of parsed file/AST tuples.
|
|
222
|
+
* @param visitors - The stage-2 visitors to run over each tuple.
|
|
223
|
+
* @param config - Pipeline configuration (abort signal, progress callback, etc.).
|
|
224
|
+
* @param totalFiles - Total file count for progress reporting.
|
|
225
|
+
* @returns Visitor results, facts, index facts, timing, and the processed file count.
|
|
226
|
+
*/
|
|
217
227
|
export async function runStage2(tuples, visitors, config, totalFiles) {
|
|
218
|
-
const t0 = performance.now();
|
|
219
228
|
const visitorResults = new Map();
|
|
220
229
|
const allFacts = new Map();
|
|
221
230
|
const indexFacts = [];
|
|
@@ -377,7 +386,21 @@ export async function runStage2(tuples, visitors, config, totalFiles) {
|
|
|
377
386
|
i++;
|
|
378
387
|
}
|
|
379
388
|
// Finalize results
|
|
380
|
-
|
|
389
|
+
finalizeStage2Visitors(visitorResults, timingMap, errors, visitors);
|
|
390
|
+
return {
|
|
391
|
+
visitorResults,
|
|
392
|
+
allFacts,
|
|
393
|
+
indexFacts,
|
|
394
|
+
visitorDurationMs: timingMap,
|
|
395
|
+
fileCount: i,
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Finalize stage-2 visitor results: attach per-visitor execution time, surface
|
|
400
|
+
* collected errors, and convert extension-declaring visitors that matched zero
|
|
401
|
+
* files to `notRun`.
|
|
402
|
+
*/
|
|
403
|
+
function finalizeStage2Visitors(visitorResults, timingMap, errors, visitors) {
|
|
381
404
|
for (const [name, result] of visitorResults) {
|
|
382
405
|
const visitorTime = timingMap.get(name) ?? 0;
|
|
383
406
|
result.executionTime = visitorTime;
|
|
@@ -402,15 +425,23 @@ export async function runStage2(tuples, visitors, config, totalFiles) {
|
|
|
402
425
|
}
|
|
403
426
|
}
|
|
404
427
|
}
|
|
428
|
+
}
|
|
429
|
+
// ── Stage 3: Corpus reducers ───────────────────────────────────────────────
|
|
430
|
+
/**
|
|
431
|
+
* Builds the common `ReducerContext` fields shared by stage-3 and stage-4
|
|
432
|
+
* reducers. Stage 3 layers an on-demand `readSource` closure on top; stage 4
|
|
433
|
+
* uses the base context as-is.
|
|
434
|
+
*/
|
|
435
|
+
function makeReducerContext(config, indexHandle, reducerConfig) {
|
|
405
436
|
return {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
437
|
+
projectRoot: config.projectRoot,
|
|
438
|
+
config: reducerConfig,
|
|
439
|
+
indexHandle,
|
|
440
|
+
abortSignal: config.abortSignal,
|
|
441
|
+
isScoped: config.isScoped,
|
|
442
|
+
styleContributingFiles: config.styleContributingFiles,
|
|
411
443
|
};
|
|
412
444
|
}
|
|
413
|
-
// ── Stage 3: Corpus reducers ───────────────────────────────────────────────
|
|
414
445
|
async function runStage3(allFacts, reducers, config, indexHandle) {
|
|
415
446
|
const t0 = performance.now();
|
|
416
447
|
const reducerResults = new Map();
|
|
@@ -444,13 +475,8 @@ async function runStage3(allFacts, reducers, config, indexHandle) {
|
|
|
444
475
|
}
|
|
445
476
|
};
|
|
446
477
|
const reducerContext = {
|
|
447
|
-
|
|
448
|
-
config: reducerConfig,
|
|
449
|
-
indexHandle,
|
|
450
|
-
abortSignal: config.abortSignal,
|
|
478
|
+
...makeReducerContext(config, indexHandle, reducerConfig),
|
|
451
479
|
readSource,
|
|
452
|
-
isScoped: config.isScoped,
|
|
453
|
-
styleContributingFiles: config.styleContributingFiles,
|
|
454
480
|
};
|
|
455
481
|
try {
|
|
456
482
|
const r0 = performance.now();
|
|
@@ -527,14 +553,7 @@ async function runStage4(allFacts, derivedReducers, config, indexHandle) {
|
|
|
527
553
|
}
|
|
528
554
|
// Per-reducer namespaced config: analyzer namespace + infrastructure
|
|
529
555
|
const reducerConfig = { ...(rawConfig[dr.name] ?? {}), ...infra };
|
|
530
|
-
const reducerContext =
|
|
531
|
-
projectRoot: config.projectRoot,
|
|
532
|
-
config: reducerConfig,
|
|
533
|
-
indexHandle,
|
|
534
|
-
abortSignal: config.abortSignal,
|
|
535
|
-
isScoped: config.isScoped,
|
|
536
|
-
styleContributingFiles: config.styleContributingFiles,
|
|
537
|
-
};
|
|
556
|
+
const reducerContext = makeReducerContext(config, indexHandle, reducerConfig);
|
|
538
557
|
try {
|
|
539
558
|
const r0 = performance.now();
|
|
540
559
|
const result = await dr.reduce(allFacts, reducerContext);
|
|
@@ -661,7 +680,13 @@ export async function runPipeline(config, indexHandle) {
|
|
|
661
680
|
// drop conventions and cross-domain results because the post-pipeline
|
|
662
681
|
// writeIndexFactsToDb call at auditRunner.ts:545 happens too late.
|
|
663
682
|
if (indexHandle && stage2.indexFacts.length > 0) {
|
|
683
|
+
const writeT0 = performance.now();
|
|
664
684
|
writeIndexFactsToDb(indexHandle, stage2.indexFacts);
|
|
685
|
+
// §6.3 — the parent is the only writer; time the serial write so the
|
|
686
|
+
// parent-serial-vs-concurrent throughput question is a measured number,
|
|
687
|
+
// not a claim. Wall-clock, not CPU: SQLite upserts are I/O-bound.
|
|
688
|
+
stageTiming['index-fact-write'] = performance.now() - writeT0;
|
|
689
|
+
stageTiming['index-fact-write-count'] = stage2.indexFacts.length;
|
|
665
690
|
// Clear flushed facts so the post-pipeline flush (auditRunner.ts:545)
|
|
666
691
|
// doesn't double-insert them.
|
|
667
692
|
stage2.indexFacts = [];
|
|
@@ -709,6 +734,26 @@ export async function runPipeline(config, indexHandle) {
|
|
|
709
734
|
phase: 'stage4-complete',
|
|
710
735
|
});
|
|
711
736
|
}
|
|
737
|
+
return buildPipelineResult({
|
|
738
|
+
config,
|
|
739
|
+
indexHandle,
|
|
740
|
+
s1,
|
|
741
|
+
stage2,
|
|
742
|
+
stage3,
|
|
743
|
+
stage4,
|
|
744
|
+
combinedFacts,
|
|
745
|
+
stageTiming,
|
|
746
|
+
totalT0,
|
|
747
|
+
});
|
|
748
|
+
}
|
|
749
|
+
/**
|
|
750
|
+
* Assemble the pipeline result from stage outputs: merge per-stage analyzer
|
|
751
|
+
* results, collect diagnostics, and build the metadata block (input presence,
|
|
752
|
+
* table catalog, dependency-graph metrics, skipped files, file accounting,
|
|
753
|
+
* per-rule timing, and gate path-profile re-resolution).
|
|
754
|
+
*/
|
|
755
|
+
function buildPipelineResult(opts) {
|
|
756
|
+
const { config, indexHandle, s1, stage2, stage3, stage4, combinedFacts, stageTiming, totalT0 } = opts;
|
|
712
757
|
// ── Build result ─────────────────────────────────────────────────────────
|
|
713
758
|
const analyzerResults = {};
|
|
714
759
|
// Stage 2 results
|
|
@@ -739,79 +784,9 @@ export async function runPipeline(config, indexHandle) {
|
|
|
739
784
|
diagnostics.push(...result.diagnostics);
|
|
740
785
|
}
|
|
741
786
|
}
|
|
742
|
-
// Spec 39 — derived rule applicability. Each rule's predicate is evaluated
|
|
743
|
-
// over its declared inputs BEFORE findings are surfaced; an inapplicable rule
|
|
744
|
-
// has its findings removed from the raw analyzer results so they never reach
|
|
745
|
-
// the report total, and is reported `notApplicable` (with a reason) in
|
|
746
|
-
// coverage rather than `fired`/`clean`. Runs after Stage 4 so the schema
|
|
747
|
-
// reducer's `ddlColumns` fact is available.
|
|
748
|
-
const dataAccessConfig = (config.config ?? {})['data-access'];
|
|
749
|
-
const schemaReducerFacts = combinedFacts['schema'];
|
|
750
|
-
// Spec 62 Amendment B — applicability reads the corpus-wide per-table DDL
|
|
751
|
-
// columns (Tier 3), the same fact the Stage-4 missing-org-filter reducer
|
|
752
|
-
// consumes, so applicability and firing share one tier picture.
|
|
753
|
-
const ddlTableColumns = schemaReducerFacts?.tableColumns;
|
|
754
|
-
// Spec 45 R5 — stylesheet sources the indexer could not read. These do NOT
|
|
755
|
-
// silence styles/undefined-class; they become reportable context attached to
|
|
756
|
-
// each undefined-class finding below.
|
|
757
|
-
let unreadStyleSources = [];
|
|
758
|
-
if (indexHandle) {
|
|
759
|
-
try {
|
|
760
|
-
unreadStyleSources = indexHandle.query('SELECT file_path AS filePath, reason FROM style_unread_sources');
|
|
761
|
-
}
|
|
762
|
-
catch {
|
|
763
|
-
// Table absent (pre-migration DB) — treated as "nothing unread".
|
|
764
|
-
unreadStyleSources = [];
|
|
765
|
-
}
|
|
766
|
-
}
|
|
767
|
-
const ruleApplicability = new Map();
|
|
768
|
-
for (const ruleId of Object.keys(RULE_REGISTRY)) {
|
|
769
|
-
const app = evaluateRuleApplicability(ruleId, dataAccessConfig, ddlTableColumns);
|
|
770
|
-
if (app)
|
|
771
|
-
ruleApplicability.set(ruleId, app);
|
|
772
|
-
}
|
|
773
|
-
// Spec 52 R3 — whole-program rules are unsound on a scoped run. A partial
|
|
774
|
-
// file set cannot support a global claim like "table X is never read" or
|
|
775
|
-
// "table Y is unknown", so on a scoped/diff run each whole-program rule is
|
|
776
|
-
// suppressed with a `notApplicable` reason naming the scope. The finding is
|
|
777
|
-
// removed below (same pass as Spec 39) and reported `notApplicable` in
|
|
778
|
-
// coverage — not a fired global claim, and not silence. (Whole-program rules
|
|
779
|
-
// that already carry a Spec-39 applicability verdict are left intact.)
|
|
780
|
-
for (const [ruleId, app] of scopedWholeProgramApplicability(!!config.isScoped, s1.fileCount)) {
|
|
781
|
-
if (!ruleApplicability.has(ruleId))
|
|
782
|
-
ruleApplicability.set(ruleId, app);
|
|
783
|
-
}
|
|
784
|
-
for (const [ruleId, app] of ruleApplicability) {
|
|
785
|
-
if (app.applicable)
|
|
786
|
-
continue;
|
|
787
|
-
const entry = RULE_REGISTRY[ruleId];
|
|
788
|
-
const result = analyzerResults[entry.analyzer];
|
|
789
|
-
if (result?.violations) {
|
|
790
|
-
result.violations = result.violations.filter((v) => !violationMatchesRule(v, ruleId, entry.field));
|
|
791
|
-
}
|
|
792
|
-
}
|
|
793
|
-
// Spec 45 R5 — undefined-class reports, does not go silent, when stylesheets
|
|
794
|
-
// were unread. Each finding carries the unread-source list as
|
|
795
|
-
// `details.incompleteDefinitions` so "undefined" reads as "not defined in any
|
|
796
|
-
// *read* stylesheet", while the finding itself still fires and blocks.
|
|
797
|
-
if (unreadStyleSources.length > 0) {
|
|
798
|
-
const entry = RULE_REGISTRY['styles/undefined-class'];
|
|
799
|
-
const result = entry ? analyzerResults[entry.analyzer] : undefined;
|
|
800
|
-
const context = unreadStyleSources.map((s) => s.reason ? `${s.filePath} (${s.reason})` : s.filePath);
|
|
801
|
-
if (result?.violations) {
|
|
802
|
-
for (const v of result.violations) {
|
|
803
|
-
if (!violationMatchesRule(v, 'styles/undefined-class', entry.field))
|
|
804
|
-
continue;
|
|
805
|
-
const existing = typeof v.details === 'object' && v.details !== null ? v.details : {};
|
|
806
|
-
v.details = { ...existing, incompleteDefinitions: context };
|
|
807
|
-
}
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
787
|
// Spec 33 Item 14 — per-rule input presence, computed once from the merged
|
|
811
788
|
// facts + index tables, then used to promote zero-violation rules.
|
|
812
789
|
const inputPresence = computeInputPresence(combinedFacts, indexHandle);
|
|
813
|
-
// Spec 27 — build per-rule coverage from completed pipeline results
|
|
814
|
-
const coverage = buildCoverageReport(analyzerResults, config, inputPresence, ruleApplicability);
|
|
815
790
|
// Spec 29: Extract table catalog from schema reducer facts for metadata
|
|
816
791
|
const schemaFacts = combinedFacts['schema'];
|
|
817
792
|
const tableCatalog = schemaFacts?.tableCatalog;
|
|
@@ -915,14 +890,7 @@ export async function runPipeline(config, indexHandle) {
|
|
|
915
890
|
stageTiming,
|
|
916
891
|
scoped: config.isScoped,
|
|
917
892
|
diagnostics,
|
|
918
|
-
coverage,
|
|
919
893
|
inputPresence,
|
|
920
|
-
ruleApplicability: [...ruleApplicability.entries()].map(([ruleId, app]) => ({
|
|
921
|
-
ruleId,
|
|
922
|
-
applicable: app.applicable,
|
|
923
|
-
reason: app.reason,
|
|
924
|
-
kind: app.kind,
|
|
925
|
-
})),
|
|
926
894
|
tableCatalog,
|
|
927
895
|
...(testCoverage && { testCoverage }),
|
|
928
896
|
...(deadClusters && deadClusters.length > 0 && { deadClusters }),
|
|
@@ -952,31 +920,68 @@ export async function runPipeline(config, indexHandle) {
|
|
|
952
920
|
*
|
|
953
921
|
* Spec 25 B4 — moved from analyzer-side CodeIndexDB calls to a post-pipeline
|
|
954
922
|
* write step so visitors never open the database directly.
|
|
923
|
+
*
|
|
924
|
+
* Spec 68 §6.3 — the parent is the only writer and it writes in *batched
|
|
925
|
+
* transactions*. Per-fact `handle.run` issues one implicit transaction per
|
|
926
|
+
* statement (a WAL fsync each), so a full-repo flush of thousands of facts
|
|
927
|
+
* costs ~0.15–0.22 ms/fact. Wrapping the flush in a single better-sqlite3
|
|
928
|
+
* transaction amortizes the commit to one fsync; a handle with no `rawDb`
|
|
929
|
+
* (in-memory overlay) falls back to the per-fact path unchanged.
|
|
930
|
+
*
|
|
931
|
+
* @param handle - Index handle to write through (DB or in-memory overlay).
|
|
932
|
+
* @param facts - Index-fact entries to flush.
|
|
955
933
|
*/
|
|
956
934
|
export function writeIndexFactsToDb(handle, facts) {
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
const
|
|
970
|
-
const
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
935
|
+
if (facts.length === 0)
|
|
936
|
+
return;
|
|
937
|
+
withBatchWrite(handle, () => {
|
|
938
|
+
for (const fact of facts) {
|
|
939
|
+
const data = fact.data;
|
|
940
|
+
// Special action: clear rows by file path
|
|
941
|
+
if (data._action === 'clear-by-file') {
|
|
942
|
+
handle.run(`DELETE FROM ${fact.table} WHERE file_path = ?`, [data.file_path]);
|
|
943
|
+
continue;
|
|
944
|
+
}
|
|
945
|
+
// Normal upsert
|
|
946
|
+
const columns = Object.keys(data).filter(k => !k.startsWith('_'));
|
|
947
|
+
const values = columns.map(k => data[k]);
|
|
948
|
+
const placeholders = columns.map(() => '?').join(', ');
|
|
949
|
+
if (fact.conflictKey) {
|
|
950
|
+
const keyCols = fact.conflictKey.split(',').map(s => s.trim());
|
|
951
|
+
const updateCols = columns.filter(c => !keyCols.includes(c));
|
|
952
|
+
const updates = updateCols.map(c => `"${c}" = excluded."${c}"`).join(', ');
|
|
953
|
+
handle.run(`INSERT INTO ${fact.table} ("${columns.join('", "')}") VALUES (${placeholders}) ON CONFLICT (${keyCols.join(', ')}) DO UPDATE SET ${updates}`, values);
|
|
954
|
+
}
|
|
955
|
+
else {
|
|
956
|
+
// Normal insert — no conflictKey (caller handles dedup via clear-by-file or similar)
|
|
957
|
+
handle.run(`INSERT INTO ${fact.table} ("${columns.join('", "')}") VALUES (${placeholders})`, values);
|
|
958
|
+
}
|
|
977
959
|
}
|
|
960
|
+
});
|
|
961
|
+
}
|
|
962
|
+
/**
|
|
963
|
+
* Run a fact-flush body inside a single SQLite transaction when the handle
|
|
964
|
+
* exposes a better-sqlite3 `rawDb` (its `.transaction` auto-rolls back on a
|
|
965
|
+
* throw), and otherwise run it directly. §6.3's "batched transactions".
|
|
966
|
+
*/
|
|
967
|
+
function withBatchWrite(handle, write) {
|
|
968
|
+
const db = handle.rawDb;
|
|
969
|
+
if (db && typeof db.transaction === 'function') {
|
|
970
|
+
db.transaction(write)();
|
|
971
|
+
}
|
|
972
|
+
else {
|
|
973
|
+
write();
|
|
978
974
|
}
|
|
979
975
|
}
|
|
976
|
+
/**
|
|
977
|
+
* Run the pipeline and then flush collected index facts through the supplied
|
|
978
|
+
* persister, returning both the pipeline result and the facts.
|
|
979
|
+
*
|
|
980
|
+
* @param config - Pipeline configuration with visitors, reducers, and derived reducers.
|
|
981
|
+
* @param indexHandle - Optional DB handle for reducers (in-memory overlay for scoped runs).
|
|
982
|
+
* @param writeIndexFacts - Optional persister invoked with the collected index facts.
|
|
983
|
+
* @returns The pipeline result plus the collected index facts.
|
|
984
|
+
*/
|
|
980
985
|
export async function runPipelineWithIndex(config, indexHandle, writeIndexFacts) {
|
|
981
986
|
const result = await runPipeline(config, indexHandle);
|
|
982
987
|
// Spec 25 B4 — Write index facts when a persister is supplied.
|
|
@@ -1005,6 +1010,9 @@ export function makeReducerStatus(factsConsumed) {
|
|
|
1005
1010
|
/**
|
|
1006
1011
|
* Accessor: extract filesProcessed from any AnalyzerStatus.
|
|
1007
1012
|
* Returns 0 for non-visitor statuses (reducer-ran, notRun, etc.).
|
|
1013
|
+
*
|
|
1014
|
+
* @param status - The analyzer status to read.
|
|
1015
|
+
* @returns The filesProcessed count, or 0 for non-visitor statuses.
|
|
1008
1016
|
*/
|
|
1009
1017
|
export function getFilesProcessed(status) {
|
|
1010
1018
|
if (status.status === 'visitor-ran') {
|
|
@@ -1015,6 +1023,9 @@ export function getFilesProcessed(status) {
|
|
|
1015
1023
|
/**
|
|
1016
1024
|
* Accessor: extract factsConsumed from any AnalyzerStatus.
|
|
1017
1025
|
* Returns 0 for non-reducer statuses.
|
|
1026
|
+
*
|
|
1027
|
+
* @param status - The analyzer status to read.
|
|
1028
|
+
* @returns The factsConsumed count, or 0 for non-reducer statuses.
|
|
1018
1029
|
*/
|
|
1019
1030
|
export function getFactsConsumed(status) {
|
|
1020
1031
|
if (status.status === 'reducer-ran') {
|
|
@@ -1072,210 +1083,4 @@ function computeInputPresence(combinedFacts, indexHandle) {
|
|
|
1072
1083
|
}
|
|
1073
1084
|
return { factKeys, indexTables };
|
|
1074
1085
|
}
|
|
1075
|
-
/**
|
|
1076
|
-
* Match a violation to a rule id using the rule's declared `field` discriminator.
|
|
1077
|
-
* Shared by coverage counting and Spec 39 applicability suppression so the two
|
|
1078
|
-
* can never disagree about which violations belong to a rule.
|
|
1079
|
-
*/
|
|
1080
|
-
export function violationMatchesRule(v, ruleId, field) {
|
|
1081
|
-
if (field === 'type')
|
|
1082
|
-
return v.type === ruleId;
|
|
1083
|
-
if (field === 'contractType')
|
|
1084
|
-
return v.contractType === ruleId;
|
|
1085
|
-
if (field === 'principle')
|
|
1086
|
-
return v.principle === ruleId;
|
|
1087
|
-
if (field === 'violationType')
|
|
1088
|
-
return v.violationType === ruleId;
|
|
1089
|
-
if (field === 'ruleId')
|
|
1090
|
-
return v.ruleId === ruleId;
|
|
1091
|
-
return v.rule === ruleId;
|
|
1092
|
-
}
|
|
1093
|
-
/**
|
|
1094
|
-
* Build a per-rule coverage report from completed pipeline results.
|
|
1095
|
-
*
|
|
1096
|
-
* Iterates every rule in the canonical {@link RULE_REGISTRY}, cross-references
|
|
1097
|
-
* with the analyzer-results map to derive a {@link RuleCoverageState} per rule:
|
|
1098
|
-
*
|
|
1099
|
-
* | Analyzer status | Rule state | Reason |
|
|
1100
|
-
* |----------------------------------------|-----------------|---------------------------------|
|
|
1101
|
-
* | notRun | `notApplicable` | `notRun.reason` |
|
|
1102
|
-
* | visitor-ran, filesProcessed === 0 | `notApplicable` | "no matching source files" |
|
|
1103
|
-
* | reducer-ran, factsConsumed === 0 | `notApplicable` | "no facts consumed from upstream visitors" |
|
|
1104
|
-
* | analyzer ran with input, count > 0 | `fired` | (none) |
|
|
1105
|
-
* | analyzer ran with input, count === 0 | `clean`/`notApplicable` | per-rule input mapping |
|
|
1106
|
-
*
|
|
1107
|
-
* Spec 33 Item 14: zero-violation rules are promoted from `unassessed` to
|
|
1108
|
-
* `clean` (mapped input present) or `notApplicable` (mapped input absent). Only
|
|
1109
|
-
* rules with no `input` mapping (non-pipeline analyzers) remain `unassessed`.
|
|
1110
|
-
*
|
|
1111
|
-
* Rules whose analyzer was not enabled in `config` are omitted entirely
|
|
1112
|
-
* (they were not part of this run — distinct from `notRun`).
|
|
1113
|
-
*/
|
|
1114
|
-
export function buildCoverageReport(analyzerResults, config, inputPresence, ruleApplicability) {
|
|
1115
|
-
const coverage = [];
|
|
1116
|
-
for (const [ruleId, entry] of Object.entries(RULE_REGISTRY)) {
|
|
1117
|
-
const { analyzer: analyzerName, field } = entry;
|
|
1118
|
-
// Skip rules whose analyzer wasn't configured for this run
|
|
1119
|
-
if (!(analyzerName in (config.config ?? {}))) {
|
|
1120
|
-
continue;
|
|
1121
|
-
}
|
|
1122
|
-
// Spec 44 bucket 2 — a `cannot-fire` rule is broken in the tool (its
|
|
1123
|
-
// predicate reads a field no extractor populates). That verdict holds on
|
|
1124
|
-
// every run regardless of whether the analyzer found input, so it precedes
|
|
1125
|
-
// the run-status checks below.
|
|
1126
|
-
const cannotFire = ruleApplicability?.get(ruleId);
|
|
1127
|
-
if (cannotFire && !cannotFire.applicable && cannotFire.kind === 'cannot-fire') {
|
|
1128
|
-
coverage.push({
|
|
1129
|
-
ruleId,
|
|
1130
|
-
analyzer: analyzerName,
|
|
1131
|
-
state: 'cannot-fire',
|
|
1132
|
-
count: 0,
|
|
1133
|
-
reason: cannotFire.reason,
|
|
1134
|
-
});
|
|
1135
|
-
continue;
|
|
1136
|
-
}
|
|
1137
|
-
const result = analyzerResults[analyzerName];
|
|
1138
|
-
// Analyzer not in results → notRun-equivalent
|
|
1139
|
-
if (!result) {
|
|
1140
|
-
coverage.push({
|
|
1141
|
-
ruleId,
|
|
1142
|
-
analyzer: analyzerName,
|
|
1143
|
-
state: 'notApplicable',
|
|
1144
|
-
count: 0,
|
|
1145
|
-
reason: `analyzer "${analyzerName}" not in results`,
|
|
1146
|
-
});
|
|
1147
|
-
continue;
|
|
1148
|
-
}
|
|
1149
|
-
const status = result.status;
|
|
1150
|
-
// notRun: all rules notApplicable
|
|
1151
|
-
if (status.status !== 'visitor-ran' && status.status !== 'reducer-ran') {
|
|
1152
|
-
const reason = status.reason;
|
|
1153
|
-
coverage.push({
|
|
1154
|
-
ruleId,
|
|
1155
|
-
analyzer: analyzerName,
|
|
1156
|
-
state: 'notApplicable',
|
|
1157
|
-
count: 0,
|
|
1158
|
-
reason,
|
|
1159
|
-
});
|
|
1160
|
-
continue;
|
|
1161
|
-
}
|
|
1162
|
-
// Visitor with zero input files
|
|
1163
|
-
if (isVisitorStatus(status) && getFilesProcessed(status) === 0) {
|
|
1164
|
-
coverage.push({
|
|
1165
|
-
ruleId,
|
|
1166
|
-
analyzer: analyzerName,
|
|
1167
|
-
state: 'notApplicable',
|
|
1168
|
-
count: 0,
|
|
1169
|
-
reason: 'no matching source files',
|
|
1170
|
-
});
|
|
1171
|
-
continue;
|
|
1172
|
-
}
|
|
1173
|
-
// Reducer with zero facts consumed
|
|
1174
|
-
if (isReducerStatus(status) && getFactsConsumed(status) === 0) {
|
|
1175
|
-
coverage.push({
|
|
1176
|
-
ruleId,
|
|
1177
|
-
analyzer: analyzerName,
|
|
1178
|
-
state: 'notApplicable',
|
|
1179
|
-
count: 0,
|
|
1180
|
-
reason: 'no facts consumed from upstream visitors',
|
|
1181
|
-
});
|
|
1182
|
-
continue;
|
|
1183
|
-
}
|
|
1184
|
-
// Check per-rule config gate (explicitly disabled by config)
|
|
1185
|
-
if (entry.configGate) {
|
|
1186
|
-
const analyzerNs = (config.config ?? {})[analyzerName];
|
|
1187
|
-
const gateValue = analyzerNs?.[entry.configGate];
|
|
1188
|
-
if (gateValue === false) {
|
|
1189
|
-
coverage.push({
|
|
1190
|
-
ruleId,
|
|
1191
|
-
analyzer: analyzerName,
|
|
1192
|
-
state: 'notApplicable',
|
|
1193
|
-
count: 0,
|
|
1194
|
-
reason: `disabled by config (${analyzerName}.${entry.configGate}: false)`,
|
|
1195
|
-
});
|
|
1196
|
-
continue;
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
|
-
// Spec 39 — derived applicability. A rule whose predicate evaluated false is
|
|
1200
|
-
// `notApplicable` with the predicate's reason, before any finding is counted.
|
|
1201
|
-
// (`cannot-fire` was already reported above; only per-corpus `notApplicable`
|
|
1202
|
-
// reaches this branch.)
|
|
1203
|
-
const applicability = ruleApplicability?.get(ruleId);
|
|
1204
|
-
if (applicability && !applicability.applicable) {
|
|
1205
|
-
coverage.push({
|
|
1206
|
-
ruleId,
|
|
1207
|
-
analyzer: analyzerName,
|
|
1208
|
-
state: 'notApplicable',
|
|
1209
|
-
count: 0,
|
|
1210
|
-
reason: applicability.reason,
|
|
1211
|
-
});
|
|
1212
|
-
continue;
|
|
1213
|
-
}
|
|
1214
|
-
// Analyzer ran with input — count violations for this rule
|
|
1215
|
-
const violations = (result.violations ?? []).filter((v) => violationMatchesRule(v, ruleId, field));
|
|
1216
|
-
const count = violations.length;
|
|
1217
|
-
if (count > 0) {
|
|
1218
|
-
coverage.push({
|
|
1219
|
-
ruleId,
|
|
1220
|
-
analyzer: analyzerName,
|
|
1221
|
-
state: 'fired',
|
|
1222
|
-
count,
|
|
1223
|
-
});
|
|
1224
|
-
continue;
|
|
1225
|
-
}
|
|
1226
|
-
// Spec 33 Item 14 — zero-violation rules are now promoted from `unassessed`
|
|
1227
|
-
// to `clean`/`notApplicable` based on whether the rule's mapped input was
|
|
1228
|
-
// present this run. Rules with no mapping (non-pipeline analyzers) stay
|
|
1229
|
-
// `unassessed`.
|
|
1230
|
-
coverage.push(resolveZeroViolationState(ruleId, analyzerName, entry.input, inputPresence));
|
|
1231
|
-
}
|
|
1232
|
-
return coverage;
|
|
1233
|
-
}
|
|
1234
|
-
/**
|
|
1235
|
-
* Spec 33 Item 14 — classify a zero-violation rule by its declared input.
|
|
1236
|
-
*
|
|
1237
|
-
* - No `input` mapping → `unassessed` (input provenance unknown; non-pipeline
|
|
1238
|
-
* analyzers only).
|
|
1239
|
-
* - Any input source present → `clean` (the analyzer ran over the rule's real
|
|
1240
|
-
* input and found nothing to flag).
|
|
1241
|
-
* - All input sources absent → `notApplicable` (the input this rule reads was
|
|
1242
|
-
* never produced this run).
|
|
1243
|
-
*
|
|
1244
|
-
* Spec 62 Amendment B (B4) — `clean` means "could have fired". This function is
|
|
1245
|
-
* reached only *after* the derived-applicability branch in
|
|
1246
|
-
* {@link buildCoverageReport} has already diverted any rule whose predicate
|
|
1247
|
-
* evaluated false (Spec 39) or is structurally unreachable (Spec 44). For the
|
|
1248
|
-
* tiered class (`missing-org-filter`) that predicate *is* firing reachability
|
|
1249
|
-
* (`hasDeclaredTenancy`), so "input present" here implies "firing was reachable"
|
|
1250
|
-
* — a zero-violation result is an honest `clean`, never a false one.
|
|
1251
|
-
*
|
|
1252
|
-
* An input source is "present" when it is the literal `'files'` (always present
|
|
1253
|
-
* at this branch — earlier checks already excluded empty-input analyzers), a
|
|
1254
|
-
* fact-key in {@link InputPresence.factKeys}, or an index table in
|
|
1255
|
-
* {@link InputPresence.indexTables}.
|
|
1256
|
-
*/
|
|
1257
|
-
function resolveZeroViolationState(ruleId, analyzerName, input, inputPresence) {
|
|
1258
|
-
if (!input || input.length === 0) {
|
|
1259
|
-
return {
|
|
1260
|
-
ruleId,
|
|
1261
|
-
analyzer: analyzerName,
|
|
1262
|
-
state: 'unassessed',
|
|
1263
|
-
count: 0,
|
|
1264
|
-
reason: 'applicability not assessed (no per-rule input mapping)',
|
|
1265
|
-
};
|
|
1266
|
-
}
|
|
1267
|
-
const factKeys = new Set(inputPresence?.factKeys ?? []);
|
|
1268
|
-
const indexTables = new Set(inputPresence?.indexTables ?? []);
|
|
1269
|
-
const anyPresent = input.some((source) => source === 'files' || factKeys.has(source) || indexTables.has(source));
|
|
1270
|
-
if (anyPresent) {
|
|
1271
|
-
return { ruleId, analyzer: analyzerName, state: 'clean', count: 0 };
|
|
1272
|
-
}
|
|
1273
|
-
return {
|
|
1274
|
-
ruleId,
|
|
1275
|
-
analyzer: analyzerName,
|
|
1276
|
-
state: 'notApplicable',
|
|
1277
|
-
count: 0,
|
|
1278
|
-
reason: `rule input absent (none of: ${input.join(', ')})`,
|
|
1279
|
-
};
|
|
1280
|
-
}
|
|
1281
1086
|
//# sourceMappingURL=pipeline.js.map
|