code-auditor-mcp 4.1.0 → 5.0.1
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 +374 -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 +424 -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 +328 -0
- package/dist/analyzers/receiverRoot.d.ts.map +1 -0
- package/dist/analyzers/receiverRoot.js +990 -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 +231 -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 +1 -12
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +24 -101
- 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 +64 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +1537 -1051
- 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 +997 -812
- 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 +130 -277
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +364 -2748
- 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 +16 -1
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +26 -23
- 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 +21 -20
- 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/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -5
- package/dist/constants.js.map +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 +2 -0
- package/dist/daemon/main.js.map +1 -1
- package/dist/daemon/resolve.d.ts +22 -7
- package/dist/daemon/resolve.d.ts.map +1 -1
- package/dist/daemon/resolve.js +29 -8
- 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 +27 -8
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +28 -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/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 +832 -851
- 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 +468 -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 +1027 -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 +200 -0
- package/dist/phase/receiverConsumers.d.ts.map +1 -0
- package/dist/phase/receiverConsumers.js +1025 -0
- package/dist/phase/receiverConsumers.js.map +1 -0
- package/dist/phase/receiverProvenance.d.ts +97 -0
- package/dist/phase/receiverProvenance.d.ts.map +1 -0
- package/dist/phase/receiverProvenance.js +337 -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 +2191 -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 +1145 -988
- 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 +106 -92
- 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 +14 -8
- package/plugin/.claude-plugin/manifest.json +16 -0
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +6 -2
- package/plugin/scripts/hook-audit.sh +41 -14
- package/plugin/scripts/hook-common.sh +50 -5
- package/plugin/scripts/hook-drift-check.sh +72 -0
- package/plugin/scripts/hook-self-audit.sh +17 -12
- package/plugin/skills/code-auditor/SKILL.md +1 -1
- package/server.json +2 -2
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
export const RULE_REGISTRY = {
|
|
10
10
|
// ── solid (UniversalSOLIDAnalyzer) ──────────────────────────────────────
|
|
11
11
|
'solid/class-size': {
|
|
12
|
-
analyzer: 'solid',
|
|
13
|
-
field: 'rule',
|
|
14
12
|
input: ['files'],
|
|
15
13
|
resolvable: true,
|
|
16
14
|
message: 'Class "{name}" has {methods} methods, exceeding the maximum of {max}. Consider splitting into smaller classes.',
|
|
@@ -30,8 +28,6 @@ export const RULE_REGISTRY = {
|
|
|
30
28
|
},
|
|
31
29
|
},
|
|
32
30
|
'solid/method-complexity': {
|
|
33
|
-
analyzer: 'solid',
|
|
34
|
-
field: 'rule',
|
|
35
31
|
input: ['files'],
|
|
36
32
|
resolvable: false,
|
|
37
33
|
message: 'Method "{name}" has cyclomatic complexity {complexity}, exceeding the maximum of {max}.',
|
|
@@ -48,8 +44,6 @@ export const RULE_REGISTRY = {
|
|
|
48
44
|
},
|
|
49
45
|
},
|
|
50
46
|
'solid/open-closed': {
|
|
51
|
-
analyzer: 'solid',
|
|
52
|
-
field: 'rule',
|
|
53
47
|
input: ['files'],
|
|
54
48
|
resolvable: false,
|
|
55
49
|
message: 'Class "{name}" uses instanceof against a user-defined type.',
|
|
@@ -65,8 +59,6 @@ export const RULE_REGISTRY = {
|
|
|
65
59
|
},
|
|
66
60
|
},
|
|
67
61
|
'solid/single-responsibility': {
|
|
68
|
-
analyzer: 'solid',
|
|
69
|
-
field: 'rule',
|
|
70
62
|
input: ['files'],
|
|
71
63
|
resolvable: true,
|
|
72
64
|
message: 'Function "{name}" mixes unrelated responsibilities. Split it into one function per concern.',
|
|
@@ -87,8 +79,6 @@ export const RULE_REGISTRY = {
|
|
|
87
79
|
},
|
|
88
80
|
},
|
|
89
81
|
'function-length': {
|
|
90
|
-
analyzer: 'solid',
|
|
91
|
-
field: 'rule',
|
|
92
82
|
input: ['files'],
|
|
93
83
|
resolvable: true,
|
|
94
84
|
message: 'Function "{name}" has {lines} lines, exceeding the maximum of {max}. Consider breaking it down.',
|
|
@@ -108,8 +98,6 @@ export const RULE_REGISTRY = {
|
|
|
108
98
|
},
|
|
109
99
|
},
|
|
110
100
|
'parameter-count': {
|
|
111
|
-
analyzer: 'solid',
|
|
112
|
-
field: 'rule',
|
|
113
101
|
input: ['files'],
|
|
114
102
|
resolvable: true,
|
|
115
103
|
message: 'Function "{name}" has {params} parameters, exceeding the maximum of {max}. Consider using an options object.',
|
|
@@ -129,8 +117,6 @@ export const RULE_REGISTRY = {
|
|
|
129
117
|
},
|
|
130
118
|
},
|
|
131
119
|
'interface-size': {
|
|
132
|
-
analyzer: 'solid',
|
|
133
|
-
field: 'rule',
|
|
134
120
|
input: ['files'],
|
|
135
121
|
resolvable: false,
|
|
136
122
|
message: 'Interface "{name}" has many members.',
|
|
@@ -153,8 +139,6 @@ export const RULE_REGISTRY = {
|
|
|
153
139
|
// panic()) rule. They were missing from the registry, so Go findings were
|
|
154
140
|
// invisible to coverage and `describeRuleId` reported them `unknown`.
|
|
155
141
|
'switch-size': {
|
|
156
|
-
analyzer: 'solid',
|
|
157
|
-
field: 'rule',
|
|
158
142
|
input: ['files'],
|
|
159
143
|
resolvable: false,
|
|
160
144
|
message: 'Switch or type switch has many case clauses.',
|
|
@@ -174,8 +158,6 @@ export const RULE_REGISTRY = {
|
|
|
174
158
|
},
|
|
175
159
|
},
|
|
176
160
|
'function-size': {
|
|
177
|
-
analyzer: 'solid',
|
|
178
|
-
field: 'rule',
|
|
179
161
|
input: ['files'],
|
|
180
162
|
resolvable: false,
|
|
181
163
|
message: 'Function has many parameters, multiple returns, and high complexity.',
|
|
@@ -195,8 +177,6 @@ export const RULE_REGISTRY = {
|
|
|
195
177
|
},
|
|
196
178
|
},
|
|
197
179
|
'struct-size': {
|
|
198
|
-
analyzer: 'solid',
|
|
199
|
-
field: 'rule',
|
|
200
180
|
input: ['files'],
|
|
201
181
|
resolvable: false,
|
|
202
182
|
message: 'Struct has many fields.',
|
|
@@ -216,8 +196,6 @@ export const RULE_REGISTRY = {
|
|
|
216
196
|
},
|
|
217
197
|
},
|
|
218
198
|
'liskov-substitution': {
|
|
219
|
-
analyzer: 'solid',
|
|
220
|
-
field: 'rule',
|
|
221
199
|
input: ['files'],
|
|
222
200
|
resolvable: false,
|
|
223
201
|
message: 'Method calls panic().',
|
|
@@ -236,14 +214,12 @@ export const RULE_REGISTRY = {
|
|
|
236
214
|
},
|
|
237
215
|
},
|
|
238
216
|
// ── Go non-SOLID rules (Spec-54 severity) ──────────────────────────────
|
|
239
|
-
// The Go
|
|
240
|
-
//
|
|
217
|
+
// The Go phase rules emit these under a single `go` analyzer namespace: the
|
|
218
|
+
// rules' internal `imports`/`errors`/`goroutines`/`channels` provenance is
|
|
241
219
|
// collapsed to `go` at emit time so its structure does not surface as four
|
|
242
220
|
// analyzer names a user has to learn. Registered here so coverage and
|
|
243
221
|
// describeRuleId see them, and so their severities carry a registry entry.
|
|
244
222
|
'channel-deadlock': {
|
|
245
|
-
analyzer: 'go',
|
|
246
|
-
field: 'rule',
|
|
247
223
|
input: ['files'],
|
|
248
224
|
resolvable: false,
|
|
249
225
|
message: 'Guaranteed deadlock: an unbuffered channel is both sent to and received from in the same goroutine.',
|
|
@@ -263,8 +239,6 @@ export const RULE_REGISTRY = {
|
|
|
263
239
|
},
|
|
264
240
|
},
|
|
265
241
|
'error-handling': {
|
|
266
|
-
analyzer: 'go',
|
|
267
|
-
field: 'rule',
|
|
268
242
|
input: ['files'],
|
|
269
243
|
resolvable: false,
|
|
270
244
|
message: 'Function assigns an error that is never checked, returned, or propagated.',
|
|
@@ -284,8 +258,6 @@ export const RULE_REGISTRY = {
|
|
|
284
258
|
},
|
|
285
259
|
},
|
|
286
260
|
'concurrency': {
|
|
287
|
-
analyzer: 'go',
|
|
288
|
-
field: 'rule',
|
|
289
261
|
input: ['files'],
|
|
290
262
|
resolvable: false,
|
|
291
263
|
message: 'Function launches a goroutine without synchronization.',
|
|
@@ -305,8 +277,6 @@ export const RULE_REGISTRY = {
|
|
|
305
277
|
},
|
|
306
278
|
},
|
|
307
279
|
'import-organization': {
|
|
308
|
-
analyzer: 'go',
|
|
309
|
-
field: 'rule',
|
|
310
280
|
input: ['files'],
|
|
311
281
|
resolvable: false,
|
|
312
282
|
message: 'Import block mixes standard library and third-party imports without grouping.',
|
|
@@ -326,8 +296,6 @@ export const RULE_REGISTRY = {
|
|
|
326
296
|
},
|
|
327
297
|
},
|
|
328
298
|
'import-style': {
|
|
329
|
-
analyzer: 'go',
|
|
330
|
-
field: 'rule',
|
|
331
299
|
input: ['files'],
|
|
332
300
|
resolvable: false,
|
|
333
301
|
message: 'Dot import detected — can lead to namespace pollution.',
|
|
@@ -347,8 +315,6 @@ export const RULE_REGISTRY = {
|
|
|
347
315
|
},
|
|
348
316
|
},
|
|
349
317
|
'solid/liskov-substitution': {
|
|
350
|
-
analyzer: 'solid',
|
|
351
|
-
field: 'rule',
|
|
352
318
|
input: ['files'],
|
|
353
319
|
resolvable: false,
|
|
354
320
|
message: 'Method "{name}" overrides a parent method and throws where the parent does not.',
|
|
@@ -363,27 +329,8 @@ export const RULE_REGISTRY = {
|
|
|
363
329
|
],
|
|
364
330
|
},
|
|
365
331
|
},
|
|
366
|
-
'solid/dependency-inversion': {
|
|
367
|
-
analyzer: 'solid',
|
|
368
|
-
field: 'rule',
|
|
369
|
-
input: ['files'],
|
|
370
|
-
resolvable: false,
|
|
371
|
-
message: 'Module "{name}" violates the Dependency Inversion Principle.',
|
|
372
|
-
docs: 'solid/dependency-inversion',
|
|
373
|
-
thresholds: [],
|
|
374
|
-
samples: {
|
|
375
|
-
valid: [
|
|
376
|
-
{ code: 'class Service {\n constructor(repo) { this.repo = repo; }\n}', nearMiss: true },
|
|
377
|
-
],
|
|
378
|
-
invalid: [
|
|
379
|
-
{ code: 'class Service {\n constructor() { this.repo = new PostgresRepo(); }\n}' },
|
|
380
|
-
],
|
|
381
|
-
},
|
|
382
|
-
},
|
|
383
332
|
// ── dry (UniversalDRYAnalyzer) ──────────────────────────────────────────
|
|
384
333
|
'dry/duplicate': {
|
|
385
|
-
analyzer: 'dry',
|
|
386
|
-
field: 'rule',
|
|
387
334
|
input: ['files'],
|
|
388
335
|
resolvable: true,
|
|
389
336
|
message: 'Duplicate code block detected ({lines} lines). First occurrence at {file}:{line}.',
|
|
@@ -407,9 +354,6 @@ export const RULE_REGISTRY = {
|
|
|
407
354
|
},
|
|
408
355
|
},
|
|
409
356
|
'dry/structural-similarity': {
|
|
410
|
-
analyzer: 'dry',
|
|
411
|
-
field: 'rule',
|
|
412
|
-
configGate: 'checkStructuralSimilarity',
|
|
413
357
|
input: ['files'],
|
|
414
358
|
resolvable: false,
|
|
415
359
|
message: 'Structurally similar code block detected ({similarity}% similar to {file}:{line}).',
|
|
@@ -432,9 +376,6 @@ export const RULE_REGISTRY = {
|
|
|
432
376
|
},
|
|
433
377
|
},
|
|
434
378
|
'dry/similar-expression': {
|
|
435
|
-
analyzer: 'dry',
|
|
436
|
-
field: 'rule',
|
|
437
|
-
configGate: 'checkExpressionSimilarity',
|
|
438
379
|
input: ['files'],
|
|
439
380
|
resolvable: true,
|
|
440
381
|
message: 'Near-identical expression detected ({shared} shared {unit}: {names}). First occurrence at {file}:{line}.',
|
|
@@ -471,8 +412,6 @@ export const RULE_REGISTRY = {
|
|
|
471
412
|
// across consecutive runs (copy-paste then edit one side). Cross-run: emitted
|
|
472
413
|
// by the divergence-tracking pass in auditRunner, not the per-file DRY visitor.
|
|
473
414
|
'dry/diverging-clone': {
|
|
474
|
-
analyzer: 'dry',
|
|
475
|
-
field: 'rule',
|
|
476
415
|
input: ['files'],
|
|
477
416
|
resolvable: false,
|
|
478
417
|
message: 'Clone pair has diverged: similarity dropped {drop} (from {previous} to {current}) across {runs} consecutive runs. Review {file1}:{line1} and {file2}:{line2} for diverged logic.',
|
|
@@ -491,9 +430,6 @@ export const RULE_REGISTRY = {
|
|
|
491
430
|
},
|
|
492
431
|
},
|
|
493
432
|
'duplicate-string-literal': {
|
|
494
|
-
analyzer: 'dry',
|
|
495
|
-
field: 'rule',
|
|
496
|
-
configGate: 'checkStrings',
|
|
497
433
|
input: ['files'],
|
|
498
434
|
resolvable: false,
|
|
499
435
|
message: 'String literal "{text}" is duplicated {count} times.',
|
|
@@ -509,9 +445,6 @@ export const RULE_REGISTRY = {
|
|
|
509
445
|
},
|
|
510
446
|
},
|
|
511
447
|
'duplicate-import': {
|
|
512
|
-
analyzer: 'dry',
|
|
513
|
-
field: 'rule',
|
|
514
|
-
configGate: 'checkImports',
|
|
515
448
|
input: ['files'],
|
|
516
449
|
resolvable: false,
|
|
517
450
|
message: 'Duplicate import of "{module}".',
|
|
@@ -528,8 +461,6 @@ export const RULE_REGISTRY = {
|
|
|
528
461
|
},
|
|
529
462
|
// ── data-access (UniversalDataAccessAnalyzer) ───────────────────────────
|
|
530
463
|
'sql-injection-risk': {
|
|
531
|
-
analyzer: 'data-access',
|
|
532
|
-
field: 'rule',
|
|
533
464
|
input: ['files'],
|
|
534
465
|
resolvable: true,
|
|
535
466
|
message: 'Potential SQL injection risk in {method}. Use parameterized queries.',
|
|
@@ -537,19 +468,17 @@ export const RULE_REGISTRY = {
|
|
|
537
468
|
thresholds: [],
|
|
538
469
|
samples: {
|
|
539
470
|
valid: [
|
|
540
|
-
{ code: 'db.query("SELECT * FROM users WHERE id = ?", [userId])', nearMiss: true },
|
|
471
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM users WHERE id = ?", [userId])', nearMiss: true },
|
|
541
472
|
],
|
|
542
473
|
invalid: [
|
|
543
474
|
{
|
|
544
|
-
code: 'db.query("SELECT * FROM users WHERE id = " + userId)',
|
|
475
|
+
code: 'import { Pool } from "pg";\nconst db = new Pool();\ndb.query("SELECT * FROM users WHERE id = " + userId)',
|
|
545
476
|
resolution: { action: 'parameterize', summary: 'Replace the string-concatenated SQL with a parameterized query using the driver\'s placeholder form.', symbols: ['query'] },
|
|
546
477
|
},
|
|
547
478
|
],
|
|
548
479
|
},
|
|
549
480
|
},
|
|
550
481
|
'missing-org-filter': {
|
|
551
|
-
analyzer: 'data-access-org-filter',
|
|
552
|
-
field: 'rule',
|
|
553
482
|
input: ['data-access', 'schema'],
|
|
554
483
|
resolvable: true,
|
|
555
484
|
// The claim is "no organization/tenant *predicate*", NOT "no filter". A
|
|
@@ -577,8 +506,6 @@ export const RULE_REGISTRY = {
|
|
|
577
506
|
},
|
|
578
507
|
},
|
|
579
508
|
'complex-query': {
|
|
580
|
-
analyzer: 'data-access',
|
|
581
|
-
field: 'rule',
|
|
582
509
|
input: ['files'],
|
|
583
510
|
resolvable: false,
|
|
584
511
|
message: 'Query references many tables (join-heavy).',
|
|
@@ -586,17 +513,15 @@ export const RULE_REGISTRY = {
|
|
|
586
513
|
thresholds: ['performanceThresholds.joinedTableCount'],
|
|
587
514
|
samples: {
|
|
588
515
|
valid: [
|
|
589
|
-
{ code: 'db.query("SELECT COUNT(*) FROM users")', nearMiss: true },
|
|
590
|
-
{ code: 'db.query("SELECT * FROM users WHERE id IN (SELECT user_id FROM orders)")', nearMiss: true },
|
|
516
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT COUNT(*) FROM users")', nearMiss: true },
|
|
517
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM users WHERE id IN (SELECT user_id FROM orders)")', nearMiss: true },
|
|
591
518
|
],
|
|
592
519
|
invalid: [
|
|
593
|
-
{ code: 'db.query("SELECT * FROM a JOIN b JOIN c JOIN d JOIN e JOIN f JOIN g JOIN h JOIN i")' },
|
|
520
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM a JOIN b JOIN c JOIN d JOIN e JOIN f JOIN g JOIN h JOIN i")' },
|
|
594
521
|
],
|
|
595
522
|
},
|
|
596
523
|
},
|
|
597
524
|
'unfiltered-query': {
|
|
598
|
-
analyzer: 'data-access',
|
|
599
|
-
field: 'rule',
|
|
600
525
|
input: ['files'],
|
|
601
526
|
resolvable: false,
|
|
602
527
|
message: 'Unfiltered write or tenant-scoped read on {tables} has no WHERE/HAVING/LIMIT.',
|
|
@@ -604,17 +529,15 @@ export const RULE_REGISTRY = {
|
|
|
604
529
|
thresholds: [],
|
|
605
530
|
samples: {
|
|
606
531
|
valid: [
|
|
607
|
-
{ code: 'db.query("SELECT * FROM users")', nearMiss: true },
|
|
608
|
-
{ code: 'db.query("
|
|
532
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM users")', nearMiss: true },
|
|
533
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("UPDATE users SET active = 0 WHERE id = ?")', nearMiss: true },
|
|
609
534
|
],
|
|
610
535
|
invalid: [
|
|
611
|
-
{ code: 'db.query("
|
|
536
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("UPDATE users SET active = 0")' },
|
|
612
537
|
],
|
|
613
538
|
},
|
|
614
539
|
},
|
|
615
540
|
'hardcoded-connection': {
|
|
616
|
-
analyzer: 'data-access',
|
|
617
|
-
field: 'rule',
|
|
618
541
|
input: ['files'],
|
|
619
542
|
resolvable: false,
|
|
620
543
|
message: 'Hardcoded database connection string detected.',
|
|
@@ -630,8 +553,6 @@ export const RULE_REGISTRY = {
|
|
|
630
553
|
},
|
|
631
554
|
},
|
|
632
555
|
'loop-query': {
|
|
633
|
-
analyzer: 'data-access',
|
|
634
|
-
field: 'rule',
|
|
635
556
|
input: ['files'],
|
|
636
557
|
resolvable: false,
|
|
637
558
|
message: 'Database query inside a loop detected in {method}.',
|
|
@@ -642,15 +563,12 @@ export const RULE_REGISTRY = {
|
|
|
642
563
|
{ code: 'for (const id of ids) {\n cache.set(id, lookup(id));\n}', nearMiss: true },
|
|
643
564
|
],
|
|
644
565
|
invalid: [
|
|
645
|
-
{ code: '
|
|
566
|
+
{ code: 'const db: D1Database = getDb();\nfor (const id of ids) {\n db.query("SELECT * FROM users WHERE id = ?", [id]);\n}' },
|
|
646
567
|
],
|
|
647
568
|
},
|
|
648
569
|
},
|
|
649
570
|
// ── secrets (UniversalSecretsAnalyzer) ──────────────────────────────────
|
|
650
571
|
'hardcoded-secret': {
|
|
651
|
-
analyzer: 'secrets',
|
|
652
|
-
field: 'rule',
|
|
653
|
-
configGate: 'checkHardcodedSecrets',
|
|
654
572
|
input: ['files'],
|
|
655
573
|
resolvable: true,
|
|
656
574
|
message: 'Hardcoded secret detected: a credential value is embedded in source. Move it to an environment variable or secret store.',
|
|
@@ -684,8 +602,6 @@ export const RULE_REGISTRY = {
|
|
|
684
602
|
},
|
|
685
603
|
// ── documentation (UniversalDocumentationAnalyzer) ─────────────────────
|
|
686
604
|
'file-documentation': {
|
|
687
|
-
analyzer: 'documentation',
|
|
688
|
-
field: 'rule',
|
|
689
605
|
input: ['files'],
|
|
690
606
|
resolvable: false,
|
|
691
607
|
message: 'File is missing a leading documentation comment.',
|
|
@@ -701,8 +617,6 @@ export const RULE_REGISTRY = {
|
|
|
701
617
|
},
|
|
702
618
|
},
|
|
703
619
|
'function-documentation': {
|
|
704
|
-
analyzer: 'documentation',
|
|
705
|
-
field: 'rule',
|
|
706
620
|
input: ['files'],
|
|
707
621
|
resolvable: false,
|
|
708
622
|
message: 'Function "{name}" is missing a doc comment.',
|
|
@@ -718,8 +632,6 @@ export const RULE_REGISTRY = {
|
|
|
718
632
|
},
|
|
719
633
|
},
|
|
720
634
|
'parameter-documentation': {
|
|
721
|
-
analyzer: 'documentation',
|
|
722
|
-
field: 'rule',
|
|
723
635
|
input: ['files'],
|
|
724
636
|
resolvable: false,
|
|
725
637
|
message: 'Parameter "{name}" in function "{func}" is missing a @param tag.',
|
|
@@ -735,8 +647,6 @@ export const RULE_REGISTRY = {
|
|
|
735
647
|
},
|
|
736
648
|
},
|
|
737
649
|
'return-documentation': {
|
|
738
|
-
analyzer: 'documentation',
|
|
739
|
-
field: 'rule',
|
|
740
650
|
input: ['files'],
|
|
741
651
|
resolvable: false,
|
|
742
652
|
message: 'Function "{name}" is missing a @returns tag.',
|
|
@@ -763,8 +673,6 @@ export const RULE_REGISTRY = {
|
|
|
763
673
|
},
|
|
764
674
|
},
|
|
765
675
|
'class-documentation': {
|
|
766
|
-
analyzer: 'documentation',
|
|
767
|
-
field: 'rule',
|
|
768
676
|
input: ['files'],
|
|
769
677
|
resolvable: false,
|
|
770
678
|
message: 'Class "{name}" is missing a doc comment.',
|
|
@@ -780,8 +688,6 @@ export const RULE_REGISTRY = {
|
|
|
780
688
|
},
|
|
781
689
|
},
|
|
782
690
|
'method-documentation': {
|
|
783
|
-
analyzer: 'documentation',
|
|
784
|
-
field: 'rule',
|
|
785
691
|
input: ['files'],
|
|
786
692
|
resolvable: false,
|
|
787
693
|
message: 'Method "{name}" is missing a doc comment.',
|
|
@@ -799,8 +705,6 @@ export const RULE_REGISTRY = {
|
|
|
799
705
|
// ── schema (UniversalSchemaAnalyzer) ────────────────────────────────────
|
|
800
706
|
// JSON validation rules → emitted by the schema-json visitor path.
|
|
801
707
|
'invalid-json': {
|
|
802
|
-
analyzer: 'schema',
|
|
803
|
-
field: 'rule',
|
|
804
708
|
input: ['schema-json'],
|
|
805
709
|
resolvable: false,
|
|
806
710
|
message: 'Invalid JSON: {error}.',
|
|
@@ -816,8 +720,6 @@ export const RULE_REGISTRY = {
|
|
|
816
720
|
},
|
|
817
721
|
},
|
|
818
722
|
'missing-schema-declaration': {
|
|
819
|
-
analyzer: 'schema',
|
|
820
|
-
field: 'rule',
|
|
821
723
|
input: ['schema-json'],
|
|
822
724
|
resolvable: false,
|
|
823
725
|
message: 'Missing JSON schema declaration.',
|
|
@@ -833,8 +735,6 @@ export const RULE_REGISTRY = {
|
|
|
833
735
|
},
|
|
834
736
|
},
|
|
835
737
|
'undefined-required-field': {
|
|
836
|
-
analyzer: 'schema',
|
|
837
|
-
field: 'rule',
|
|
838
738
|
input: ['schema-json'],
|
|
839
739
|
resolvable: false,
|
|
840
740
|
message: 'Undefined required field "{field}".',
|
|
@@ -850,8 +750,6 @@ export const RULE_REGISTRY = {
|
|
|
850
750
|
},
|
|
851
751
|
},
|
|
852
752
|
'invalid-type': {
|
|
853
|
-
analyzer: 'schema',
|
|
854
|
-
field: 'rule',
|
|
855
753
|
input: ['schema-json'],
|
|
856
754
|
resolvable: false,
|
|
857
755
|
message: 'Invalid type for field "{field}".',
|
|
@@ -867,8 +765,6 @@ export const RULE_REGISTRY = {
|
|
|
867
765
|
},
|
|
868
766
|
},
|
|
869
767
|
'invalid-range': {
|
|
870
|
-
analyzer: 'schema',
|
|
871
|
-
field: 'rule',
|
|
872
768
|
input: ['schema-json'],
|
|
873
769
|
resolvable: false,
|
|
874
770
|
message: 'Invalid range for field "{field}".',
|
|
@@ -884,8 +780,6 @@ export const RULE_REGISTRY = {
|
|
|
884
780
|
},
|
|
885
781
|
},
|
|
886
782
|
'type-mismatch': {
|
|
887
|
-
analyzer: 'schema',
|
|
888
|
-
field: 'rule',
|
|
889
783
|
input: ['schema-json'],
|
|
890
784
|
resolvable: false,
|
|
891
785
|
message: 'Type mismatch for field "{field}".',
|
|
@@ -901,8 +795,6 @@ export const RULE_REGISTRY = {
|
|
|
901
795
|
},
|
|
902
796
|
},
|
|
903
797
|
'string-too-short': {
|
|
904
|
-
analyzer: 'schema',
|
|
905
|
-
field: 'rule',
|
|
906
798
|
input: ['schema-json'],
|
|
907
799
|
resolvable: false,
|
|
908
800
|
message: 'String value too short for field "{field}".',
|
|
@@ -918,8 +810,6 @@ export const RULE_REGISTRY = {
|
|
|
918
810
|
},
|
|
919
811
|
},
|
|
920
812
|
'string-too-long': {
|
|
921
|
-
analyzer: 'schema',
|
|
922
|
-
field: 'rule',
|
|
923
813
|
input: ['schema-json'],
|
|
924
814
|
resolvable: false,
|
|
925
815
|
message: 'String value too long for field "{field}".',
|
|
@@ -935,8 +825,6 @@ export const RULE_REGISTRY = {
|
|
|
935
825
|
},
|
|
936
826
|
},
|
|
937
827
|
'pattern-mismatch': {
|
|
938
|
-
analyzer: 'schema',
|
|
939
|
-
field: 'rule',
|
|
940
828
|
input: ['schema-json'],
|
|
941
829
|
resolvable: false,
|
|
942
830
|
message: 'Value does not match pattern for field "{field}".',
|
|
@@ -952,8 +840,6 @@ export const RULE_REGISTRY = {
|
|
|
952
840
|
},
|
|
953
841
|
},
|
|
954
842
|
'invalid-format': {
|
|
955
|
-
analyzer: 'schema',
|
|
956
|
-
field: 'rule',
|
|
957
843
|
input: ['schema-json'],
|
|
958
844
|
resolvable: false,
|
|
959
845
|
message: 'Invalid format for field "{field}".',
|
|
@@ -969,8 +855,6 @@ export const RULE_REGISTRY = {
|
|
|
969
855
|
},
|
|
970
856
|
},
|
|
971
857
|
'below-minimum': {
|
|
972
|
-
analyzer: 'schema',
|
|
973
|
-
field: 'rule',
|
|
974
858
|
input: ['schema-json'],
|
|
975
859
|
resolvable: false,
|
|
976
860
|
message: 'Value below minimum for field "{field}".',
|
|
@@ -986,8 +870,6 @@ export const RULE_REGISTRY = {
|
|
|
986
870
|
},
|
|
987
871
|
},
|
|
988
872
|
'above-maximum': {
|
|
989
|
-
analyzer: 'schema',
|
|
990
|
-
field: 'rule',
|
|
991
873
|
input: ['schema-json'],
|
|
992
874
|
resolvable: false,
|
|
993
875
|
message: 'Value above maximum for field "{field}".',
|
|
@@ -1003,8 +885,6 @@ export const RULE_REGISTRY = {
|
|
|
1003
885
|
},
|
|
1004
886
|
},
|
|
1005
887
|
'too-few-items': {
|
|
1006
|
-
analyzer: 'schema',
|
|
1007
|
-
field: 'rule',
|
|
1008
888
|
input: ['schema-json'],
|
|
1009
889
|
resolvable: false,
|
|
1010
890
|
message: 'Too few items for field "{field}".',
|
|
@@ -1020,8 +900,6 @@ export const RULE_REGISTRY = {
|
|
|
1020
900
|
},
|
|
1021
901
|
},
|
|
1022
902
|
'too-many-items': {
|
|
1023
|
-
analyzer: 'schema',
|
|
1024
|
-
field: 'rule',
|
|
1025
903
|
input: ['schema-json'],
|
|
1026
904
|
resolvable: false,
|
|
1027
905
|
message: 'Too many items for field "{field}".',
|
|
@@ -1037,8 +915,6 @@ export const RULE_REGISTRY = {
|
|
|
1037
915
|
},
|
|
1038
916
|
},
|
|
1039
917
|
'missing-required-field': {
|
|
1040
|
-
analyzer: 'schema',
|
|
1041
|
-
field: 'rule',
|
|
1042
918
|
input: ['schema-json'],
|
|
1043
919
|
resolvable: false,
|
|
1044
920
|
message: 'Missing required field "{field}".',
|
|
@@ -1054,8 +930,6 @@ export const RULE_REGISTRY = {
|
|
|
1054
930
|
},
|
|
1055
931
|
},
|
|
1056
932
|
'unexpected-property': {
|
|
1057
|
-
analyzer: 'schema',
|
|
1058
|
-
field: 'rule',
|
|
1059
933
|
input: ['schema-json'],
|
|
1060
934
|
resolvable: false,
|
|
1061
935
|
message: 'Unexpected property "{property}".',
|
|
@@ -1071,8 +945,6 @@ export const RULE_REGISTRY = {
|
|
|
1071
945
|
},
|
|
1072
946
|
},
|
|
1073
947
|
'enum-mismatch': {
|
|
1074
|
-
analyzer: 'schema',
|
|
1075
|
-
field: 'rule',
|
|
1076
948
|
input: ['schema-json'],
|
|
1077
949
|
resolvable: false,
|
|
1078
950
|
message: 'Value does not match any enum value for field "{field}".',
|
|
@@ -1089,8 +961,6 @@ export const RULE_REGISTRY = {
|
|
|
1089
961
|
},
|
|
1090
962
|
// SQL-injection → emitted by the schema-code visitor over TS/JS source.
|
|
1091
963
|
'dynamic-sql-construction': {
|
|
1092
|
-
analyzer: 'schema',
|
|
1093
|
-
field: 'rule',
|
|
1094
964
|
input: ['schema-code'],
|
|
1095
965
|
resolvable: false,
|
|
1096
966
|
message: 'SQL query built via string interpolation or concatenation in {method}; use parameterized queries.',
|
|
@@ -1098,19 +968,16 @@ export const RULE_REGISTRY = {
|
|
|
1098
968
|
thresholds: [],
|
|
1099
969
|
samples: {
|
|
1100
970
|
valid: [
|
|
1101
|
-
{ code: 'db.query("SELECT * FROM t WHERE id = ?", [id])', nearMiss: true },
|
|
971
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM t WHERE id = ?", [id])', nearMiss: true },
|
|
1102
972
|
],
|
|
1103
973
|
invalid: [
|
|
1104
|
-
{ code: 'db.query("SELECT * FROM t WHERE id = " + id)' },
|
|
974
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM t WHERE id = " + id)' },
|
|
1105
975
|
],
|
|
1106
976
|
},
|
|
1107
977
|
},
|
|
1108
978
|
// Table naming-convention check → emitted by the schema-code visitor.
|
|
1109
979
|
// Spec 38 R5: renamed from `naming-convention` (see src/ruleAliases.ts).
|
|
1110
980
|
'table-naming-convention': {
|
|
1111
|
-
analyzer: 'schema',
|
|
1112
|
-
field: 'rule',
|
|
1113
|
-
configGate: 'checkNamingConventions',
|
|
1114
981
|
input: ['schema-code'],
|
|
1115
982
|
resolvable: false,
|
|
1116
983
|
message: 'Table name "{table}" should use snake_case convention.',
|
|
@@ -1127,8 +994,6 @@ export const RULE_REGISTRY = {
|
|
|
1127
994
|
},
|
|
1128
995
|
// Cross-file unknown-table detection → emitted by the schema Stage 3 reducer.
|
|
1129
996
|
'unknown-table': {
|
|
1130
|
-
analyzer: 'schema',
|
|
1131
|
-
field: 'rule',
|
|
1132
997
|
input: ['schema-code'],
|
|
1133
998
|
resolvable: true,
|
|
1134
999
|
message: 'Reference to unknown table "{table}" ({type}). Did you mean: {suggestions}?',
|
|
@@ -1136,11 +1001,11 @@ export const RULE_REGISTRY = {
|
|
|
1136
1001
|
thresholds: [],
|
|
1137
1002
|
samples: {
|
|
1138
1003
|
valid: [
|
|
1139
|
-
{ code: 'db.query("SELECT * FROM users")', nearMiss: true },
|
|
1004
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM users")', nearMiss: true },
|
|
1140
1005
|
],
|
|
1141
1006
|
invalid: [
|
|
1142
1007
|
{
|
|
1143
|
-
code: 'db.query("SELECT * FROM user")',
|
|
1008
|
+
code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM user")',
|
|
1144
1009
|
resolution: { action: 'use-known-table', summary: 'Rename the table reference "user" to the nearest known table "users".', symbols: ['users'] },
|
|
1145
1010
|
},
|
|
1146
1011
|
],
|
|
@@ -1152,8 +1017,6 @@ export const RULE_REGISTRY = {
|
|
|
1152
1017
|
// reference, not a typo, so the message names the dropping migration and the
|
|
1153
1018
|
// tables it created in its place.
|
|
1154
1019
|
'stale-table-reference': {
|
|
1155
|
-
analyzer: 'schema',
|
|
1156
|
-
field: 'rule',
|
|
1157
1020
|
input: ['schema-code'],
|
|
1158
1021
|
resolvable: true,
|
|
1159
1022
|
message: 'Reference to dropped table "{table}" — dropped in {migration}.',
|
|
@@ -1161,7 +1024,7 @@ export const RULE_REGISTRY = {
|
|
|
1161
1024
|
thresholds: [],
|
|
1162
1025
|
samples: {
|
|
1163
1026
|
valid: [
|
|
1164
|
-
{ code: 'db.query("SELECT * FROM users")', nearMiss: true },
|
|
1027
|
+
{ code: 'const db: D1Database = getDb();\ndb.query("SELECT * FROM users")', nearMiss: true },
|
|
1165
1028
|
],
|
|
1166
1029
|
invalid: [
|
|
1167
1030
|
{
|
|
@@ -1176,9 +1039,6 @@ export const RULE_REGISTRY = {
|
|
|
1176
1039
|
// (like the other schema rules) has no config shape in the threshold-validation
|
|
1177
1040
|
// test, so the knob is documented here rather than declared in `thresholds`.
|
|
1178
1041
|
'too-many-queries': {
|
|
1179
|
-
analyzer: 'schema',
|
|
1180
|
-
field: 'rule',
|
|
1181
|
-
configGate: 'validateQueryPatterns',
|
|
1182
1042
|
input: ['schema-code'],
|
|
1183
1043
|
resolvable: false,
|
|
1184
1044
|
message: 'Function "{name}" has {count} queries, exceeding the maximum of {max}.',
|
|
@@ -1186,10 +1046,10 @@ export const RULE_REGISTRY = {
|
|
|
1186
1046
|
thresholds: [],
|
|
1187
1047
|
samples: {
|
|
1188
1048
|
valid: [
|
|
1189
|
-
{ code: '
|
|
1049
|
+
{ code: 'const db: D1Database = getDb();\nfunction getUser(id) {\n return db.query("SELECT * FROM users WHERE id = ?", [id]);\n}', nearMiss: true },
|
|
1190
1050
|
],
|
|
1191
1051
|
invalid: [
|
|
1192
|
-
{ code: '
|
|
1052
|
+
{ code: 'const db: D1Database = getDb();\nfunction loadDashboard() {\n db.query("SELECT * FROM users");\n db.query("SELECT * FROM orders");\n db.query("SELECT * FROM products");\n db.query("SELECT * FROM reviews");\n db.query("SELECT * FROM events");\n db.query("SELECT * FROM alerts");\n}' },
|
|
1193
1053
|
],
|
|
1194
1054
|
},
|
|
1195
1055
|
},
|
|
@@ -1197,13 +1057,11 @@ export const RULE_REGISTRY = {
|
|
|
1197
1057
|
// constant, computed/concatenated expression, call result) is no longer a
|
|
1198
1058
|
// violation rule. It moved to the coverage-diagnostics channel
|
|
1199
1059
|
// (`CoverageDiagnostic`, kind `unresolved-query`) — surfaced in the report
|
|
1200
|
-
// with file+line, never blocking. The registry entry is removed so
|
|
1201
|
-
//
|
|
1202
|
-
//
|
|
1060
|
+
// with file+line, never blocking. The registry entry is removed so derived
|
|
1061
|
+
// coverage doesn't classify it `clean` (which would assert the tool checked
|
|
1062
|
+
// something it no longer checks as a finding).
|
|
1203
1063
|
// ── react (reactAnalyzer) ───────────────────────────────────────────────
|
|
1204
1064
|
'hooks-naming': {
|
|
1205
|
-
analyzer: 'react',
|
|
1206
|
-
field: 'rule',
|
|
1207
1065
|
input: ['files'],
|
|
1208
1066
|
resolvable: false,
|
|
1209
1067
|
message: 'React hook "{name}" does not follow the "use*" naming convention.',
|
|
@@ -1219,8 +1077,6 @@ export const RULE_REGISTRY = {
|
|
|
1219
1077
|
},
|
|
1220
1078
|
},
|
|
1221
1079
|
'complexity': {
|
|
1222
|
-
analyzer: 'react',
|
|
1223
|
-
field: 'rule',
|
|
1224
1080
|
input: ['files'],
|
|
1225
1081
|
resolvable: false,
|
|
1226
1082
|
message: 'React component "{name}" has complexity {complexity}, exceeding the maximum.',
|
|
@@ -1243,9 +1099,6 @@ export const RULE_REGISTRY = {
|
|
|
1243
1099
|
},
|
|
1244
1100
|
},
|
|
1245
1101
|
'missing-props': {
|
|
1246
|
-
analyzer: 'react',
|
|
1247
|
-
field: 'rule',
|
|
1248
|
-
configGate: 'requirePropTypes',
|
|
1249
1102
|
input: ['files'],
|
|
1250
1103
|
resolvable: false,
|
|
1251
1104
|
message: 'React component "{name}" is missing prop-types.',
|
|
@@ -1261,8 +1114,6 @@ export const RULE_REGISTRY = {
|
|
|
1261
1114
|
},
|
|
1262
1115
|
},
|
|
1263
1116
|
'no-error-boundary': {
|
|
1264
|
-
analyzer: 'react',
|
|
1265
|
-
field: 'rule',
|
|
1266
1117
|
input: ['files'],
|
|
1267
1118
|
resolvable: false,
|
|
1268
1119
|
message: 'React component tree is missing an error boundary.',
|
|
@@ -1278,9 +1129,6 @@ export const RULE_REGISTRY = {
|
|
|
1278
1129
|
},
|
|
1279
1130
|
},
|
|
1280
1131
|
'performance': {
|
|
1281
|
-
analyzer: 'react',
|
|
1282
|
-
field: 'rule',
|
|
1283
|
-
configGate: 'requireMemoization',
|
|
1284
1132
|
input: ['files'],
|
|
1285
1133
|
resolvable: false,
|
|
1286
1134
|
message: 'React component "{name}" is missing memoization.',
|
|
@@ -1296,8 +1144,6 @@ export const RULE_REGISTRY = {
|
|
|
1296
1144
|
},
|
|
1297
1145
|
},
|
|
1298
1146
|
'accessibility': {
|
|
1299
|
-
analyzer: 'react',
|
|
1300
|
-
field: 'rule',
|
|
1301
1147
|
input: ['files'],
|
|
1302
1148
|
resolvable: false,
|
|
1303
1149
|
message: 'Accessibility issue in component "{name}": {issue}.',
|
|
@@ -1313,8 +1159,6 @@ export const RULE_REGISTRY = {
|
|
|
1313
1159
|
},
|
|
1314
1160
|
},
|
|
1315
1161
|
'raw-element': {
|
|
1316
|
-
analyzer: 'react',
|
|
1317
|
-
field: 'rule',
|
|
1318
1162
|
input: ['files'],
|
|
1319
1163
|
resolvable: true,
|
|
1320
1164
|
message: 'raw `<{element}>` — this project uses `<{wrapper}>` ({file}).',
|
|
@@ -1338,13 +1182,11 @@ export const RULE_REGISTRY = {
|
|
|
1338
1182
|
// the coverage-diagnostics channel (`CoverageDiagnostic`, kinds `config-error`
|
|
1339
1183
|
// / `engine-error`). A bad `.codeauditor.json` or a rule-engine failure is a
|
|
1340
1184
|
// tool-side "couldn't do its job", not a defect in the audited code. The
|
|
1341
|
-
// registry entries are removed so
|
|
1185
|
+
// registry entries are removed so derived coverage doesn't classify them
|
|
1342
1186
|
// `clean` (which would assert the tool checked something it no longer checks
|
|
1343
1187
|
// as a finding).
|
|
1344
1188
|
// ── schema-validator (SchemaValidator) ──────────────────────────────────
|
|
1345
1189
|
'schema-field-mismatch': {
|
|
1346
|
-
analyzer: 'schema-validator',
|
|
1347
|
-
field: 'rule',
|
|
1348
1190
|
input: ['cross-language-entities'],
|
|
1349
1191
|
resolvable: false,
|
|
1350
1192
|
message: 'Schema field type-name strings differ: {detail}.',
|
|
@@ -1360,8 +1202,6 @@ export const RULE_REGISTRY = {
|
|
|
1360
1202
|
},
|
|
1361
1203
|
},
|
|
1362
1204
|
'missing-field': {
|
|
1363
|
-
analyzer: 'schema-validator',
|
|
1364
|
-
field: 'rule',
|
|
1365
1205
|
input: ['cross-language-entities'],
|
|
1366
1206
|
resolvable: false,
|
|
1367
1207
|
message: 'Missing field: {field}.',
|
|
@@ -1377,8 +1217,6 @@ export const RULE_REGISTRY = {
|
|
|
1377
1217
|
},
|
|
1378
1218
|
},
|
|
1379
1219
|
'extra-field': {
|
|
1380
|
-
analyzer: 'schema-validator',
|
|
1381
|
-
field: 'rule',
|
|
1382
1220
|
input: ['cross-language-entities'],
|
|
1383
1221
|
resolvable: false,
|
|
1384
1222
|
message: 'Extra field: {field}.',
|
|
@@ -1395,8 +1233,6 @@ export const RULE_REGISTRY = {
|
|
|
1395
1233
|
},
|
|
1396
1234
|
// ── dependency-graph (DependencyGraphBuilder) ───────────────────────────
|
|
1397
1235
|
'circular-dependency': {
|
|
1398
|
-
analyzer: 'dependency-graph',
|
|
1399
|
-
field: 'type',
|
|
1400
1236
|
input: ['cross-language-entities'],
|
|
1401
1237
|
resolvable: false,
|
|
1402
1238
|
message: 'Circular dependency detected: {cycle}.',
|
|
@@ -1412,8 +1248,6 @@ export const RULE_REGISTRY = {
|
|
|
1412
1248
|
},
|
|
1413
1249
|
},
|
|
1414
1250
|
'break-cycles': {
|
|
1415
|
-
analyzer: 'dependency-graph',
|
|
1416
|
-
field: 'type',
|
|
1417
1251
|
input: ['cross-language-entities'],
|
|
1418
1252
|
resolvable: false,
|
|
1419
1253
|
message: 'Break dependency cycle: {cycle}.',
|
|
@@ -1429,14 +1263,12 @@ export const RULE_REGISTRY = {
|
|
|
1429
1263
|
},
|
|
1430
1264
|
},
|
|
1431
1265
|
'tight-coupling': {
|
|
1432
|
-
analyzer: 'dependency-graph',
|
|
1433
|
-
field: 'type',
|
|
1434
1266
|
input: ['cross-language-entities'],
|
|
1435
1267
|
resolvable: false,
|
|
1436
1268
|
message: 'Tight coupling detected between {a} and {b}.',
|
|
1437
1269
|
docs: 'tight-coupling',
|
|
1438
1270
|
thresholds: [],
|
|
1439
|
-
thresholdRationale: '
|
|
1271
|
+
thresholdRationale: 'Pairwise coupling (cross-cluster edges / (cross + internal edges)) > 0.7 with ≥ 3 cross edges — two packages are tightly coupled when their mutual edges dominate the edges that stay inside either package. The prior metric measured single-cluster cohesion (internal / incident edges), which inverted the concept and flagged well-factored packages; this measures actual coupling between distinct clusters.',
|
|
1440
1272
|
samples: {
|
|
1441
1273
|
valid: [
|
|
1442
1274
|
{ code: 'import { one } from "./m";', nearMiss: true },
|
|
@@ -1447,8 +1279,6 @@ export const RULE_REGISTRY = {
|
|
|
1447
1279
|
},
|
|
1448
1280
|
},
|
|
1449
1281
|
'reduce-coupling': {
|
|
1450
|
-
analyzer: 'dependency-graph',
|
|
1451
|
-
field: 'type',
|
|
1452
1282
|
input: ['cross-language-entities'],
|
|
1453
1283
|
resolvable: false,
|
|
1454
1284
|
message: 'Reduce coupling between {a} and {b}.',
|
|
@@ -1463,43 +1293,7 @@ export const RULE_REGISTRY = {
|
|
|
1463
1293
|
],
|
|
1464
1294
|
},
|
|
1465
1295
|
},
|
|
1466
|
-
'hub-nodes': {
|
|
1467
|
-
analyzer: 'dependency-graph',
|
|
1468
|
-
field: 'type',
|
|
1469
|
-
input: ['cross-language-entities'],
|
|
1470
|
-
resolvable: false,
|
|
1471
|
-
message: 'Hub node "{node}" has {count} dependencies.',
|
|
1472
|
-
docs: 'hub-nodes',
|
|
1473
|
-
thresholds: [],
|
|
1474
|
-
samples: {
|
|
1475
|
-
valid: [
|
|
1476
|
-
{ code: 'export function small() {}', nearMiss: true },
|
|
1477
|
-
],
|
|
1478
|
-
invalid: [
|
|
1479
|
-
{ code: 'export function hub() {\n a(); b(); c(); d(); e(); f(); g(); h(); i(); j();\n}' },
|
|
1480
|
-
],
|
|
1481
|
-
},
|
|
1482
|
-
},
|
|
1483
|
-
'split-responsibilities': {
|
|
1484
|
-
analyzer: 'dependency-graph',
|
|
1485
|
-
field: 'type',
|
|
1486
|
-
input: ['cross-language-entities'],
|
|
1487
|
-
resolvable: false,
|
|
1488
|
-
message: 'Split responsibilities of node "{node}".',
|
|
1489
|
-
docs: 'split-responsibilities',
|
|
1490
|
-
thresholds: [],
|
|
1491
|
-
samples: {
|
|
1492
|
-
valid: [
|
|
1493
|
-
{ code: 'export function focused() { return a(); }', nearMiss: true },
|
|
1494
|
-
],
|
|
1495
|
-
invalid: [
|
|
1496
|
-
{ code: 'export function multi() {\n readDb(); writeLog(); renderUi(); sendMail();\n}' },
|
|
1497
|
-
],
|
|
1498
|
-
},
|
|
1499
|
-
},
|
|
1500
1296
|
'orphaned-nodes': {
|
|
1501
|
-
analyzer: 'dependency-graph',
|
|
1502
|
-
field: 'type',
|
|
1503
1297
|
input: ['cross-language-entities'],
|
|
1504
1298
|
resolvable: false,
|
|
1505
1299
|
message: 'Orphaned node "{node}" has no connections.',
|
|
@@ -1515,8 +1309,6 @@ export const RULE_REGISTRY = {
|
|
|
1515
1309
|
},
|
|
1516
1310
|
},
|
|
1517
1311
|
'review-orphans': {
|
|
1518
|
-
analyzer: 'dependency-graph',
|
|
1519
|
-
field: 'type',
|
|
1520
1312
|
input: ['cross-language-entities'],
|
|
1521
1313
|
resolvable: false,
|
|
1522
1314
|
message: 'Review orphaned nodes: {nodes}.',
|
|
@@ -1532,8 +1324,6 @@ export const RULE_REGISTRY = {
|
|
|
1532
1324
|
},
|
|
1533
1325
|
},
|
|
1534
1326
|
'unreferenced-module': {
|
|
1535
|
-
analyzer: 'dependency-graph',
|
|
1536
|
-
field: 'type',
|
|
1537
1327
|
input: ['cross-language-entities'],
|
|
1538
1328
|
resolvable: false,
|
|
1539
1329
|
message: 'Module is not imported by any other file and is not a framework entry point — dead code candidate.',
|
|
@@ -1552,16 +1342,14 @@ export const RULE_REGISTRY = {
|
|
|
1552
1342
|
// specifier is no longer a violation rule. It moved to the coverage-
|
|
1553
1343
|
// diagnostics channel (`CoverageDiagnostic`, kind `unresolved-dynamic-import`)
|
|
1554
1344
|
// — surfaced with file+line, never blocking. Removed from the registry so
|
|
1555
|
-
//
|
|
1345
|
+
// derived coverage doesn't flip it to a false `clean`.
|
|
1556
1346
|
// ── styles (UniversalStylesAnalyzer) ─────────────────────────────────────
|
|
1557
1347
|
'styles/value-drift': {
|
|
1558
|
-
analyzer: 'styles',
|
|
1559
|
-
field: 'rule',
|
|
1560
1348
|
input: ['styles-css'],
|
|
1561
1349
|
resolvable: false,
|
|
1562
|
-
message: 'Color
|
|
1350
|
+
message: 'Color drift in "{property}": "{value}" is near-identical to "{canonical}" (ΔE = {d}). Consider using "{canonical}".',
|
|
1563
1351
|
docs: 'styles/value-drift',
|
|
1564
|
-
thresholds: ['colorDeltaE'
|
|
1352
|
+
thresholds: ['colorDeltaE'],
|
|
1565
1353
|
samples: {
|
|
1566
1354
|
valid: [
|
|
1567
1355
|
{ code: '.btn { color: var(--brand); }', nearMiss: true },
|
|
@@ -1572,13 +1360,11 @@ export const RULE_REGISTRY = {
|
|
|
1572
1360
|
},
|
|
1573
1361
|
},
|
|
1574
1362
|
'styles/off-scale': {
|
|
1575
|
-
analyzer: 'styles',
|
|
1576
|
-
field: 'rule',
|
|
1577
1363
|
input: ['styles-css'],
|
|
1578
1364
|
resolvable: false,
|
|
1579
1365
|
message: 'Value "{value}" is off the Tailwind spacing scale.',
|
|
1580
1366
|
docs: 'styles/off-scale',
|
|
1581
|
-
thresholds: ['
|
|
1367
|
+
thresholds: ['offScaleMinDeclarations'],
|
|
1582
1368
|
samples: {
|
|
1583
1369
|
valid: [
|
|
1584
1370
|
{ code: '.x { padding: 8px; }', nearMiss: true },
|
|
@@ -1589,8 +1375,6 @@ export const RULE_REGISTRY = {
|
|
|
1589
1375
|
},
|
|
1590
1376
|
},
|
|
1591
1377
|
'styles/undefined-class': {
|
|
1592
|
-
analyzer: 'styles',
|
|
1593
|
-
field: 'rule',
|
|
1594
1378
|
input: ['styles-css'],
|
|
1595
1379
|
resolvable: true,
|
|
1596
1380
|
message: 'Class "{class}" was not found in any read stylesheet or utility set.',
|
|
@@ -1615,8 +1399,6 @@ export const RULE_REGISTRY = {
|
|
|
1615
1399
|
// do its job", not a defect. The registry entry is removed so coverage never
|
|
1616
1400
|
// asserts the tool checked something it no longer checks as a finding.
|
|
1617
1401
|
'styles/token-bypass': {
|
|
1618
|
-
analyzer: 'styles',
|
|
1619
|
-
field: 'rule',
|
|
1620
1402
|
input: ['styles-css'],
|
|
1621
1403
|
resolvable: false,
|
|
1622
1404
|
message: 'Token bypass: raw value "{value}" used instead of a design token.',
|
|
@@ -1632,8 +1414,6 @@ export const RULE_REGISTRY = {
|
|
|
1632
1414
|
},
|
|
1633
1415
|
},
|
|
1634
1416
|
'styles/mechanism-fragmentation': {
|
|
1635
|
-
analyzer: 'styles',
|
|
1636
|
-
field: 'rule',
|
|
1637
1417
|
input: ['styles-css'],
|
|
1638
1418
|
resolvable: false,
|
|
1639
1419
|
message: 'Styling mechanism fragmented across {count} mechanisms.',
|
|
@@ -1649,8 +1429,6 @@ export const RULE_REGISTRY = {
|
|
|
1649
1429
|
},
|
|
1650
1430
|
},
|
|
1651
1431
|
'styles/mechanism-mixing': {
|
|
1652
|
-
analyzer: 'styles',
|
|
1653
|
-
field: 'rule',
|
|
1654
1432
|
input: ['styles-css'],
|
|
1655
1433
|
resolvable: false,
|
|
1656
1434
|
message: 'Mixing styling mechanisms in one file.',
|
|
@@ -1666,8 +1444,6 @@ export const RULE_REGISTRY = {
|
|
|
1666
1444
|
},
|
|
1667
1445
|
},
|
|
1668
1446
|
'styles/declaration-set-similarity': {
|
|
1669
|
-
analyzer: 'styles',
|
|
1670
|
-
field: 'rule',
|
|
1671
1447
|
input: ['styles-css'],
|
|
1672
1448
|
resolvable: false,
|
|
1673
1449
|
message: 'Declaration set similar to another block ({similarity}%).',
|
|
@@ -1683,8 +1459,6 @@ export const RULE_REGISTRY = {
|
|
|
1683
1459
|
},
|
|
1684
1460
|
},
|
|
1685
1461
|
'styles/z-index-sprawl': {
|
|
1686
|
-
analyzer: 'styles',
|
|
1687
|
-
field: 'rule',
|
|
1688
1462
|
input: ['styles-css'],
|
|
1689
1463
|
resolvable: false,
|
|
1690
1464
|
message: 'Z-index sprawl: {count} distinct z-index values.',
|
|
@@ -1700,8 +1474,6 @@ export const RULE_REGISTRY = {
|
|
|
1700
1474
|
},
|
|
1701
1475
|
},
|
|
1702
1476
|
'styles/z-index-singleton': {
|
|
1703
|
-
analyzer: 'styles',
|
|
1704
|
-
field: 'rule',
|
|
1705
1477
|
input: ['styles-css'],
|
|
1706
1478
|
resolvable: false,
|
|
1707
1479
|
message: 'Z-index value "{value}" appears only once.',
|
|
@@ -1718,8 +1490,6 @@ export const RULE_REGISTRY = {
|
|
|
1718
1490
|
},
|
|
1719
1491
|
// ── conventions (UniversalConventionsAnalyzer) ───────────────────────────
|
|
1720
1492
|
'conventions/usage-pair': {
|
|
1721
|
-
analyzer: 'conventions',
|
|
1722
|
-
field: 'rule',
|
|
1723
1493
|
input: ['function-index'],
|
|
1724
1494
|
resolvable: true,
|
|
1725
1495
|
message: '{pct}% of `{antecedent}` callers also call `{consequent}`.',
|
|
@@ -1738,8 +1508,6 @@ export const RULE_REGISTRY = {
|
|
|
1738
1508
|
},
|
|
1739
1509
|
},
|
|
1740
1510
|
'conventions/import-form': {
|
|
1741
|
-
analyzer: 'conventions',
|
|
1742
|
-
field: 'rule',
|
|
1743
1511
|
input: ['function-index'],
|
|
1744
1512
|
resolvable: false,
|
|
1745
1513
|
message: 'Import form mismatch: use {form} for "{source}".',
|
|
@@ -1755,8 +1523,6 @@ export const RULE_REGISTRY = {
|
|
|
1755
1523
|
},
|
|
1756
1524
|
},
|
|
1757
1525
|
'conventions/error-handling': {
|
|
1758
|
-
analyzer: 'conventions',
|
|
1759
|
-
field: 'rule',
|
|
1760
1526
|
input: ['function-index'],
|
|
1761
1527
|
resolvable: false,
|
|
1762
1528
|
message: 'Error-handling convention mismatch: {detail}.',
|
|
@@ -1772,8 +1538,6 @@ export const RULE_REGISTRY = {
|
|
|
1772
1538
|
},
|
|
1773
1539
|
},
|
|
1774
1540
|
'conventions/export-shape': {
|
|
1775
|
-
analyzer: 'conventions',
|
|
1776
|
-
field: 'rule',
|
|
1777
1541
|
input: ['function-index'],
|
|
1778
1542
|
resolvable: false,
|
|
1779
1543
|
message: 'Export shape mismatch: {detail}.',
|
|
@@ -1789,8 +1553,6 @@ export const RULE_REGISTRY = {
|
|
|
1789
1553
|
},
|
|
1790
1554
|
},
|
|
1791
1555
|
'conventions/naming': {
|
|
1792
|
-
analyzer: 'conventions',
|
|
1793
|
-
field: 'rule',
|
|
1794
1556
|
input: ['function-index'],
|
|
1795
1557
|
resolvable: false,
|
|
1796
1558
|
message: 'Naming convention mismatch: {detail}.',
|
|
@@ -1807,8 +1569,6 @@ export const RULE_REGISTRY = {
|
|
|
1807
1569
|
},
|
|
1808
1570
|
// ── cross-domain (CrossDomainAnalyzer) ────────────────────────────────────
|
|
1809
1571
|
'cross-domain/written-never-read': {
|
|
1810
|
-
analyzer: 'cross-domain',
|
|
1811
|
-
field: 'rule',
|
|
1812
1572
|
input: ['schema_usage', 'functions'],
|
|
1813
1573
|
resolvable: false,
|
|
1814
1574
|
message: 'Table "{table}" is written but never read.',
|
|
@@ -1824,8 +1584,6 @@ export const RULE_REGISTRY = {
|
|
|
1824
1584
|
},
|
|
1825
1585
|
},
|
|
1826
1586
|
'cross-domain/read-never-written': {
|
|
1827
|
-
analyzer: 'cross-domain',
|
|
1828
|
-
field: 'rule',
|
|
1829
1587
|
input: ['schema_usage', 'functions'],
|
|
1830
1588
|
resolvable: false,
|
|
1831
1589
|
message: 'Table "{table}" is read but never written.',
|
|
@@ -1841,8 +1599,6 @@ export const RULE_REGISTRY = {
|
|
|
1841
1599
|
},
|
|
1842
1600
|
},
|
|
1843
1601
|
'cross-domain/multi-table-write': {
|
|
1844
|
-
analyzer: 'cross-domain',
|
|
1845
|
-
field: 'rule',
|
|
1846
1602
|
input: ['schema_usage', 'functions'],
|
|
1847
1603
|
resolvable: false,
|
|
1848
1604
|
message: 'Function writes to {count} distinct tables.',
|
|
@@ -1858,8 +1614,6 @@ export const RULE_REGISTRY = {
|
|
|
1858
1614
|
},
|
|
1859
1615
|
},
|
|
1860
1616
|
'cross-domain/no-validator-reachable': {
|
|
1861
|
-
analyzer: 'cross-domain',
|
|
1862
|
-
field: 'rule',
|
|
1863
1617
|
input: ['schema_usage', 'functions'],
|
|
1864
1618
|
resolvable: false,
|
|
1865
1619
|
message: 'No validator reachable within BFS depth: {detail}.',
|
|
@@ -1875,8 +1629,6 @@ export const RULE_REGISTRY = {
|
|
|
1875
1629
|
},
|
|
1876
1630
|
},
|
|
1877
1631
|
'cross-domain/uncovered-risk': {
|
|
1878
|
-
analyzer: 'cross-domain',
|
|
1879
|
-
field: 'rule',
|
|
1880
1632
|
input: ['schema_usage', 'functions'],
|
|
1881
1633
|
resolvable: false,
|
|
1882
1634
|
message: 'Uncovered risk: {detail}.',
|
|
@@ -1893,8 +1645,6 @@ export const RULE_REGISTRY = {
|
|
|
1893
1645
|
},
|
|
1894
1646
|
// ── security (UniversalSecurityAnalyzer) — Spec 61 R6 ─────────────────────
|
|
1895
1647
|
'command-injection-risk': {
|
|
1896
|
-
analyzer: 'security',
|
|
1897
|
-
field: 'rule',
|
|
1898
1648
|
input: ['files'],
|
|
1899
1649
|
resolvable: true,
|
|
1900
1650
|
message: 'Unsafe process invocation: {method} is passed a command built by interpolation/concatenation.',
|
|
@@ -1910,8 +1660,6 @@ export const RULE_REGISTRY = {
|
|
|
1910
1660
|
},
|
|
1911
1661
|
},
|
|
1912
1662
|
'dynamic-require-of-project-path': {
|
|
1913
|
-
analyzer: 'security',
|
|
1914
|
-
field: 'rule',
|
|
1915
1663
|
input: ['files'],
|
|
1916
1664
|
resolvable: true,
|
|
1917
1665
|
message: 'Dynamic require/import of a project config path: {path}.',
|
|
@@ -1928,8 +1676,6 @@ export const RULE_REGISTRY = {
|
|
|
1928
1676
|
},
|
|
1929
1677
|
},
|
|
1930
1678
|
'unescaped-html-interpolation': {
|
|
1931
|
-
analyzer: 'security',
|
|
1932
|
-
field: 'rule',
|
|
1933
1679
|
input: ['files'],
|
|
1934
1680
|
resolvable: true,
|
|
1935
1681
|
message: 'Unescaped HTML interpolation: {field} is inserted into an HTML template without an escaping call.',
|
|
@@ -1958,61 +1704,12 @@ export const RULE_REGISTRY = {
|
|
|
1958
1704
|
},
|
|
1959
1705
|
},
|
|
1960
1706
|
};
|
|
1961
|
-
/**
|
|
1962
|
-
* Canonical set of every analyzer ID that emits at least one rule in
|
|
1963
|
-
* {@link RULE_REGISTRY}, derived from the registry itself. An analyzer "exists"
|
|
1964
|
-
* iff it emits a rule, so this is the single source of truth for analyzer
|
|
1965
|
-
* identity.
|
|
1966
|
-
*
|
|
1967
|
-
* Every other analyzer list — the audit-runner registry, config validation,
|
|
1968
|
-
* default-enabled analyzers, the detached runner, and the MCP default set —
|
|
1969
|
-
* must derive from this rather than re-type names. Adding an analyzer is then a
|
|
1970
|
-
* registry edit plus an enable decision, never a hunt across hand-maintained
|
|
1971
|
-
* arrays that drift out of sync (the historical failure: four lists at 13, 10,
|
|
1972
|
-
* 10, and 7).
|
|
1973
|
-
*/
|
|
1974
|
-
export const ALL_ANALYZERS = [
|
|
1975
|
-
...new Set(Object.values(RULE_REGISTRY).map((e) => e.analyzer)),
|
|
1976
|
-
].sort();
|
|
1977
|
-
/**
|
|
1978
|
-
* The reduced analyzer set the MCP `audit.run` surface enables by default —
|
|
1979
|
-
* a deliberate subset of {@link ALL_ANALYZERS} (the MCP path favors a lighter,
|
|
1980
|
-
* latency-sensitive audit). The full CLI `audit` default is {@link ALL_ANALYZERS}.
|
|
1981
|
-
* Referenced here so mcp.ts and mcp-tools-shared.ts don't each re-type the list.
|
|
1982
|
-
*/
|
|
1983
|
-
export const MCP_DEFAULT_ANALYZERS = [
|
|
1984
|
-
'solid',
|
|
1985
|
-
'dry',
|
|
1986
|
-
'documentation',
|
|
1987
|
-
'react',
|
|
1988
|
-
'data-access',
|
|
1989
|
-
'data-access-org-filter',
|
|
1990
|
-
];
|
|
1991
|
-
/**
|
|
1992
|
-
* Analyzers the pipeline can run that emit *no* registry rule. Their rules come
|
|
1993
|
-
* from a runtime source other than {@link RULE_REGISTRY}: `invariants` reads its
|
|
1994
|
-
* rules from the `.codeauditor.json` `rules` array (the seven invariant rule
|
|
1995
|
-
* kinds), not from registry rows, so it is absent from {@link ALL_ANALYZERS}.
|
|
1996
|
-
*/
|
|
1997
|
-
export const PIPELINE_ONLY_ANALYZERS = ['invariants'];
|
|
1998
|
-
/**
|
|
1999
|
-
* Every analyzer `enabledAnalyzers` may legitimately name — {@link ALL_ANALYZERS}
|
|
2000
|
-
* (registry rule emitters) plus {@link PIPELINE_ONLY_ANALYZERS}. This is the
|
|
2001
|
-
* single source of truth for "can this analyzer actually run?" — used by config
|
|
2002
|
-
* validation, which must not reject `invariants` (a valid pipeline analyzer that
|
|
2003
|
-
* happens to carry no registry rule).
|
|
2004
|
-
*/
|
|
2005
|
-
export const RUNNABLE_ANALYZERS = [
|
|
2006
|
-
...new Set([...ALL_ANALYZERS, ...PIPELINE_ONLY_ANALYZERS]),
|
|
2007
|
-
].sort();
|
|
2008
1707
|
/**
|
|
2009
1708
|
* Resolve a violation to its canonical {@link RuleRegistryEntry}, if any.
|
|
2010
1709
|
*
|
|
2011
|
-
*
|
|
2012
|
-
* (
|
|
2013
|
-
*
|
|
2014
|
-
* registry key, so the gate's resolution-gap detection (Spec 45 R1) never
|
|
2015
|
-
* hard-codes a field.
|
|
1710
|
+
* Every migrated rule is re-emitted into the result with `rule` set to its
|
|
1711
|
+
* canonical registry id (the both-paths split, Spec 68 §11.1), so the registry
|
|
1712
|
+
* is a direct lookup by that id — no analyzer/field indirection remains.
|
|
2016
1713
|
*
|
|
2017
1714
|
* Invariant violations (user-defined rule IDs) have no registry entry and
|
|
2018
1715
|
* return `undefined`. They still gate (Spec 45 R1) — the gate blocks on every
|
|
@@ -2020,15 +1717,8 @@ export const RUNNABLE_ANALYZERS = [
|
|
|
2020
1717
|
* missing resolution is a recorded gap.
|
|
2021
1718
|
*/
|
|
2022
1719
|
export function getViolationRuleEntry(v) {
|
|
2023
|
-
if (!v.
|
|
1720
|
+
if (!v.rule)
|
|
2024
1721
|
return undefined;
|
|
2025
|
-
|
|
2026
|
-
if (entry.analyzer !== v.analyzer)
|
|
2027
|
-
continue;
|
|
2028
|
-
const value = v[entry.field];
|
|
2029
|
-
if (value === ruleId)
|
|
2030
|
-
return entry;
|
|
2031
|
-
}
|
|
2032
|
-
return undefined;
|
|
1722
|
+
return RULE_REGISTRY[v.rule];
|
|
2033
1723
|
}
|
|
2034
1724
|
//# sourceMappingURL=ruleRegistry.js.map
|