code-auditor-mcp 4.1.1 → 5.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +381 -0
- package/README.md +4 -4
- package/configs/hhra-compat.json +0 -8
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +7 -1
- package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +2 -8
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +4 -4
- package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +2 -2
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +1 -1
- package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +1 -1
- package/dist/analyzers/applicability.d.ts +42 -0
- package/dist/analyzers/applicability.d.ts.map +1 -1
- package/dist/analyzers/applicability.js +74 -0
- package/dist/analyzers/applicability.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +18 -24
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +30 -23
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +113 -76
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +2 -0
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +8 -3
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +210 -148
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +23 -28
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/handleIdentification.d.ts +356 -0
- package/dist/analyzers/handleIdentification.d.ts.map +1 -0
- package/dist/analyzers/handleIdentification.js +427 -0
- package/dist/analyzers/handleIdentification.js.map +1 -0
- package/dist/analyzers/manifestStaleness.d.ts +64 -0
- package/dist/analyzers/manifestStaleness.d.ts.map +1 -0
- package/dist/analyzers/manifestStaleness.js +115 -0
- package/dist/analyzers/manifestStaleness.js.map +1 -0
- package/dist/analyzers/orgFilterTiers.d.ts +73 -1
- package/dist/analyzers/orgFilterTiers.d.ts.map +1 -1
- package/dist/analyzers/orgFilterTiers.js +166 -1
- package/dist/analyzers/orgFilterTiers.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +251 -57
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +1109 -429
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts +2 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +2 -0
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/receiverResolution.d.ts +183 -0
- package/dist/analyzers/receiverResolution.d.ts.map +1 -0
- package/dist/analyzers/receiverResolution.js +540 -0
- package/dist/analyzers/receiverResolution.js.map +1 -0
- package/dist/analyzers/receiverRoot.d.ts +348 -0
- package/dist/analyzers/receiverRoot.d.ts.map +1 -0
- package/dist/analyzers/receiverRoot.js +1032 -0
- package/dist/analyzers/receiverRoot.js.map +1 -0
- package/dist/analyzers/ruleRegistry.d.ts +12 -68
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +32 -342
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +10 -0
- package/dist/analyzers/ruleTiming.d.ts.map +1 -1
- package/dist/analyzers/ruleTiming.js +20 -0
- package/dist/analyzers/ruleTiming.js.map +1 -1
- package/dist/analyzers/sqlLiteral.d.ts +76 -0
- package/dist/analyzers/sqlLiteral.d.ts.map +1 -0
- package/dist/analyzers/sqlLiteral.js +419 -0
- package/dist/analyzers/sqlLiteral.js.map +1 -0
- package/dist/analyzers/tsEcosystem.d.ts +115 -0
- package/dist/analyzers/tsEcosystem.d.ts.map +1 -0
- package/dist/analyzers/tsEcosystem.js +241 -0
- package/dist/analyzers/tsEcosystem.js.map +1 -0
- package/dist/analyzers/tsExpressionDescriptor.d.ts +156 -0
- package/dist/analyzers/tsExpressionDescriptor.d.ts.map +1 -0
- package/dist/analyzers/tsExpressionDescriptor.js +374 -0
- package/dist/analyzers/tsExpressionDescriptor.js.map +1 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +6 -0
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +107 -44
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +23 -35
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +287 -49
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +2130 -512
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +2 -18
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -33
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +20 -143
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +4 -3
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +36 -13
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +6 -0
- package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +15 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +25 -0
- package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +21 -32
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +166 -196
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/functionConcerns.d.ts +3 -0
- package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
- package/dist/analyzers/universal/functionConcerns.js +4 -1
- package/dist/analyzers/universal/functionConcerns.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts +310 -69
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +709 -383
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/config.d.ts +3 -14
- package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/config.js +3 -16
- package/dist/analyzers/universal/schema/config.js.map +1 -1
- package/dist/analyzers/universal/schema/discovery.d.ts +22 -1
- package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/discovery.js +36 -20
- package/dist/analyzers/universal/schema/discovery.js.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js +13 -3
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
- package/dist/analyzers/universal/schema/migrations.d.ts +187 -27
- package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/migrations.js +443 -186
- package/dist/analyzers/universal/schema/migrations.js.map +1 -1
- package/dist/analyzers/universal/schema/types.d.ts +17 -3
- package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/violations.js +1 -1
- package/dist/analyzers/universal/schema/violations.js.map +1 -1
- package/dist/analyzers/universal/styleScale.d.ts +52 -0
- package/dist/analyzers/universal/styleScale.d.ts.map +1 -0
- package/dist/analyzers/universal/styleScale.js +95 -0
- package/dist/analyzers/universal/styleScale.js.map +1 -0
- package/dist/applyDataDirEnv.js +1 -1
- package/dist/applyDataDirEnv.js.map +1 -1
- package/dist/auditRouter.d.ts +26 -30
- package/dist/auditRouter.d.ts.map +1 -1
- package/dist/auditRouter.js +373 -143
- package/dist/auditRouter.js.map +1 -1
- package/dist/auditRunner.d.ts +66 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +1544 -1034
- package/dist/auditRunner.js.map +1 -1
- package/dist/baseline.d.ts +30 -3
- package/dist/baseline.d.ts.map +1 -1
- package/dist/baseline.js +70 -9
- package/dist/baseline.js.map +1 -1
- package/dist/cli.js +983 -821
- package/dist/cli.js.map +1 -1
- package/dist/codeIndex/analyzerConfig.d.ts +60 -0
- package/dist/codeIndex/analyzerConfig.d.ts.map +1 -0
- package/dist/codeIndex/analyzerConfig.js +98 -0
- package/dist/codeIndex/analyzerConfig.js.map +1 -0
- package/dist/codeIndex/auditResults.d.ts +39 -0
- package/dist/codeIndex/auditResults.d.ts.map +1 -0
- package/dist/codeIndex/auditResults.js +99 -0
- package/dist/codeIndex/auditResults.js.map +1 -0
- package/dist/codeIndex/codeMap.d.ts +59 -0
- package/dist/codeIndex/codeMap.d.ts.map +1 -0
- package/dist/codeIndex/codeMap.js +72 -0
- package/dist/codeIndex/codeMap.js.map +1 -0
- package/dist/codeIndex/conventions.d.ts +33 -0
- package/dist/codeIndex/conventions.d.ts.map +1 -0
- package/dist/codeIndex/conventions.js +84 -0
- package/dist/codeIndex/conventions.js.map +1 -0
- package/dist/codeIndex/coverage.d.ts +78 -0
- package/dist/codeIndex/coverage.d.ts.map +1 -0
- package/dist/codeIndex/coverage.js +164 -0
- package/dist/codeIndex/coverage.js.map +1 -0
- package/dist/codeIndex/dependencyGraph.d.ts +97 -0
- package/dist/codeIndex/dependencyGraph.d.ts.map +1 -0
- package/dist/codeIndex/dependencyGraph.js +241 -0
- package/dist/codeIndex/dependencyGraph.js.map +1 -0
- package/dist/codeIndex/functionIndex.d.ts +111 -0
- package/dist/codeIndex/functionIndex.d.ts.map +1 -0
- package/dist/codeIndex/functionIndex.js +306 -0
- package/dist/codeIndex/functionIndex.js.map +1 -0
- package/dist/codeIndex/inferredReceivers.d.ts +32 -0
- package/dist/codeIndex/inferredReceivers.d.ts.map +1 -0
- package/dist/codeIndex/inferredReceivers.js +41 -0
- package/dist/codeIndex/inferredReceivers.js.map +1 -0
- package/dist/codeIndex/meta.d.ts +30 -0
- package/dist/codeIndex/meta.d.ts.map +1 -0
- package/dist/codeIndex/meta.js +37 -0
- package/dist/codeIndex/meta.js.map +1 -0
- package/dist/codeIndex/migrations.d.ts +96 -0
- package/dist/codeIndex/migrations.d.ts.map +1 -0
- package/dist/codeIndex/migrations.js +1302 -0
- package/dist/codeIndex/migrations.js.map +1 -0
- package/dist/codeIndex/projectTasks.d.ts +54 -0
- package/dist/codeIndex/projectTasks.d.ts.map +1 -0
- package/dist/codeIndex/projectTasks.js +81 -0
- package/dist/codeIndex/projectTasks.js.map +1 -0
- package/dist/codeIndex/provenance.d.ts +47 -0
- package/dist/codeIndex/provenance.d.ts.map +1 -0
- package/dist/codeIndex/provenance.js +48 -0
- package/dist/codeIndex/provenance.js.map +1 -0
- package/dist/codeIndex/rawSql.d.ts +54 -0
- package/dist/codeIndex/rawSql.d.ts.map +1 -0
- package/dist/codeIndex/rawSql.js +71 -0
- package/dist/codeIndex/rawSql.js.map +1 -0
- package/dist/codeIndex/schema.d.ts +99 -0
- package/dist/codeIndex/schema.d.ts.map +1 -0
- package/dist/codeIndex/schema.js +174 -0
- package/dist/codeIndex/schema.js.map +1 -0
- package/dist/codeIndex/search.d.ts +40 -0
- package/dist/codeIndex/search.d.ts.map +1 -0
- package/dist/codeIndex/search.js +316 -0
- package/dist/codeIndex/search.js.map +1 -0
- package/dist/codeIndex/shared.d.ts +27 -0
- package/dist/codeIndex/shared.d.ts.map +1 -0
- package/dist/codeIndex/shared.js +46 -0
- package/dist/codeIndex/shared.js.map +1 -0
- package/dist/codeIndex/sqliteCollection.d.ts +81 -0
- package/dist/codeIndex/sqliteCollection.d.ts.map +1 -0
- package/dist/codeIndex/sqliteCollection.js +250 -0
- package/dist/codeIndex/sqliteCollection.js.map +1 -0
- package/dist/codeIndex/whitelist.d.ts +59 -0
- package/dist/codeIndex/whitelist.d.ts.map +1 -0
- package/dist/codeIndex/whitelist.js +188 -0
- package/dist/codeIndex/whitelist.js.map +1 -0
- package/dist/codeIndexDB.d.ts +132 -271
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +365 -2729
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/codeIndexService.d.ts +87 -12
- package/dist/codeIndexService.d.ts.map +1 -1
- package/dist/codeIndexService.js +110 -34
- package/dist/codeIndexService.js.map +1 -1
- package/dist/componentScanner.d.ts +35 -0
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +114 -80
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configGeneratePath.d.ts +4 -0
- package/dist/config/configGeneratePath.d.ts.map +1 -1
- package/dist/config/configGeneratePath.js +4 -0
- package/dist/config/configGeneratePath.js.map +1 -1
- package/dist/config/configLoader.d.ts +15 -0
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +15 -16
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +11 -7
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +16 -14
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts +17 -2
- package/dist/config/effectiveConfig.d.ts.map +1 -1
- package/dist/config/effectiveConfig.js +32 -25
- package/dist/config/effectiveConfig.js.map +1 -1
- package/dist/config/lintConfigReader.d.ts +6 -0
- package/dist/config/lintConfigReader.d.ts.map +1 -1
- package/dist/config/lintConfigReader.js +6 -0
- package/dist/config/lintConfigReader.js.map +1 -1
- package/dist/config/staticObjectExtract.d.ts +4 -0
- package/dist/config/staticObjectExtract.d.ts.map +1 -1
- package/dist/config/staticObjectExtract.js +7 -3
- package/dist/config/staticObjectExtract.js.map +1 -1
- package/dist/config/thresholdRationales.d.ts +2 -0
- package/dist/config/thresholdRationales.d.ts.map +1 -1
- package/dist/config/thresholdRationales.js +5 -2
- package/dist/config/thresholdRationales.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/conventions/conventionMiner.d.ts +105 -2
- package/dist/conventions/conventionMiner.d.ts.map +1 -1
- package/dist/conventions/conventionMiner.js +334 -259
- package/dist/conventions/conventionMiner.js.map +1 -1
- package/dist/coverage/coverageService.js +4 -4
- package/dist/coverage/coverageService.js.map +1 -1
- package/dist/daemon/args.d.ts +3 -0
- package/dist/daemon/args.d.ts.map +1 -1
- package/dist/daemon/args.js +3 -0
- package/dist/daemon/args.js.map +1 -1
- package/dist/daemon/core.d.ts +33 -27
- package/dist/daemon/core.d.ts.map +1 -1
- package/dist/daemon/core.js +198 -162
- package/dist/daemon/core.js.map +1 -1
- package/dist/daemon/lspServer.d.ts +8 -0
- package/dist/daemon/lspServer.d.ts.map +1 -1
- package/dist/daemon/lspServer.js +8 -0
- package/dist/daemon/lspServer.js.map +1 -1
- package/dist/daemon/main.d.ts +2 -0
- package/dist/daemon/main.d.ts.map +1 -1
- package/dist/daemon/main.js +22 -4
- package/dist/daemon/main.js.map +1 -1
- package/dist/daemon/resolve.d.ts +18 -3
- package/dist/daemon/resolve.d.ts.map +1 -1
- package/dist/daemon/resolve.js +25 -4
- package/dist/daemon/resolve.js.map +1 -1
- package/dist/daemon/socketClient.d.ts +10 -1
- package/dist/daemon/socketClient.d.ts.map +1 -1
- package/dist/daemon/socketClient.js +10 -1
- package/dist/daemon/socketClient.js.map +1 -1
- package/dist/daemon/socketServer.d.ts +13 -0
- package/dist/daemon/socketServer.d.ts.map +1 -1
- package/dist/daemon/socketServer.js +13 -0
- package/dist/daemon/socketServer.js.map +1 -1
- package/dist/dataPaths.d.ts +17 -8
- package/dist/dataPaths.d.ts.map +1 -1
- package/dist/dataPaths.js +16 -44
- package/dist/dataPaths.js.map +1 -1
- package/dist/dismissals.d.ts +22 -1
- package/dist/dismissals.d.ts.map +1 -1
- package/dist/dismissals.js +22 -1
- package/dist/dismissals.js.map +1 -1
- package/dist/enforcement/gate.d.ts +1 -0
- package/dist/enforcement/gate.d.ts.map +1 -1
- package/dist/enforcement/gate.js +1 -0
- package/dist/enforcement/gate.js.map +1 -1
- package/dist/fingerprint.d.ts +6 -0
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +46 -1
- package/dist/fingerprint.js.map +1 -1
- package/dist/functionScanner.d.ts +30 -1
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +258 -256
- package/dist/functionScanner.js.map +1 -1
- package/dist/generators/AWSQConfigGenerator.d.ts +23 -0
- package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
- package/dist/generators/AWSQConfigGenerator.js +23 -0
- package/dist/generators/AWSQConfigGenerator.js.map +1 -1
- package/dist/generators/BaseConfigGenerator.d.ts +7 -0
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.js +7 -0
- package/dist/generators/BaseConfigGenerator.js.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.d.ts +23 -0
- package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.js +23 -0
- package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
- package/dist/generators/ClineConfigGenerator.d.ts +23 -0
- package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClineConfigGenerator.js +23 -0
- package/dist/generators/ClineConfigGenerator.js.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.d.ts +23 -0
- package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.js +23 -0
- package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
- package/dist/generators/CodexConfigGenerator.d.ts +23 -0
- package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodexConfigGenerator.js +23 -0
- package/dist/generators/CodexConfigGenerator.js.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.d.ts +9 -0
- package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.js +9 -0
- package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
- package/dist/generators/ContinueConfigGenerator.d.ts +23 -0
- package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ContinueConfigGenerator.js +23 -0
- package/dist/generators/ContinueConfigGenerator.js.map +1 -1
- package/dist/generators/CopilotConfigGenerator.d.ts +23 -0
- package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CopilotConfigGenerator.js +23 -0
- package/dist/generators/CopilotConfigGenerator.js.map +1 -1
- package/dist/generators/CursorConfigGenerator.d.ts +23 -0
- package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CursorConfigGenerator.js +23 -0
- package/dist/generators/CursorConfigGenerator.js.map +1 -1
- package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
- package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
- package/dist/generators/GeminiConfigGenerator.js +23 -0
- package/dist/generators/GeminiConfigGenerator.js.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.d.ts +23 -0
- package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.js +23 -0
- package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
- package/dist/generators/ZCodeConfigGenerator.d.ts +23 -0
- package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ZCodeConfigGenerator.js +23 -0
- package/dist/generators/ZCodeConfigGenerator.js.map +1 -1
- package/dist/graph/blastRadius.d.ts.map +1 -1
- package/dist/graph/blastRadius.js +12 -7
- package/dist/graph/blastRadius.js.map +1 -1
- package/dist/graph/callGraph.d.ts +31 -0
- package/dist/graph/callGraph.d.ts.map +1 -1
- package/dist/graph/callGraph.js +62 -32
- package/dist/graph/callGraph.js.map +1 -1
- package/dist/graph/importClassification.d.ts +28 -0
- package/dist/graph/importClassification.d.ts.map +1 -1
- package/dist/graph/importClassification.js +57 -0
- package/dist/graph/importClassification.js.map +1 -1
- package/dist/graph/importGraph.d.ts +38 -0
- package/dist/graph/importGraph.d.ts.map +1 -1
- package/dist/graph/importGraph.js +38 -0
- package/dist/graph/importGraph.js.map +1 -1
- package/dist/graph/outputFormatter.d.ts +12 -4
- package/dist/graph/outputFormatter.d.ts.map +1 -1
- package/dist/graph/outputFormatter.js +12 -62
- package/dist/graph/outputFormatter.js.map +1 -1
- package/dist/graph/resolutionEnvironment.d.ts +61 -0
- package/dist/graph/resolutionEnvironment.d.ts.map +1 -0
- package/dist/graph/resolutionEnvironment.js +57 -0
- package/dist/graph/resolutionEnvironment.js.map +1 -0
- package/dist/hooks/codex.d.ts +8 -1
- package/dist/hooks/codex.d.ts.map +1 -1
- package/dist/hooks/codex.js +7 -0
- package/dist/hooks/codex.js.map +1 -1
- package/dist/hooks/core.d.ts +6 -0
- package/dist/hooks/core.d.ts.map +1 -1
- package/dist/hooks/core.js +6 -1
- package/dist/hooks/core.js.map +1 -1
- package/dist/hooks/cursor.d.ts +11 -1
- package/dist/hooks/cursor.d.ts.map +1 -1
- package/dist/hooks/cursor.js +10 -0
- package/dist/hooks/cursor.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/installConfig.d.ts +23 -5
- package/dist/installConfig.d.ts.map +1 -1
- package/dist/installConfig.js +23 -5
- package/dist/installConfig.js.map +1 -1
- package/dist/installer.d.ts +6 -0
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +6 -0
- package/dist/installer.js.map +1 -1
- package/dist/invariants/ruleEngine.d.ts +3 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +156 -119
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/invariants/ruleValidator.d.ts +3 -0
- package/dist/invariants/ruleValidator.d.ts.map +1 -1
- package/dist/invariants/ruleValidator.js +185 -178
- package/dist/invariants/ruleValidator.js.map +1 -1
- package/dist/languages/LanguageOrchestrator.d.ts +4 -1
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +8 -19
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/RuntimeManager.d.ts +8 -0
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +55 -5
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.js +1 -1
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +4 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -1
- package/dist/languages/adapterBridge.js +37 -3
- package/dist/languages/adapterBridge.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +11 -14
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/go/analyzer-darwin-amd64 +0 -0
- package/dist/languages/go/analyzer-darwin-arm64 +0 -0
- package/dist/languages/go/analyzer-linux-amd64 +0 -0
- package/dist/languages/go/analyzer-linux-arm64 +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +2 -0
- package/dist/languages/go/analyzer-src/dataaccess.go +388 -0
- package/dist/languages/go/analyzer-src/types.go +8 -0
- package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
- package/dist/languages/go/database-packages.json +8 -0
- package/dist/languages/go/goResolution.d.ts +229 -0
- package/dist/languages/go/goResolution.d.ts.map +1 -0
- package/dist/languages/go/goResolution.js +799 -0
- package/dist/languages/go/goResolution.js.map +1 -0
- package/dist/languages/go/stdlib-packages.json +353 -0
- package/dist/languages/go/tenantInputs.d.ts +37 -0
- package/dist/languages/go/tenantInputs.d.ts.map +1 -0
- package/dist/languages/go/tenantInputs.js +121 -0
- package/dist/languages/go/tenantInputs.js.map +1 -0
- package/dist/languages/index.d.ts +1 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +5 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/json/JsonAdapter.d.ts +177 -0
- package/dist/languages/json/JsonAdapter.d.ts.map +1 -0
- package/dist/languages/json/JsonAdapter.js +531 -0
- package/dist/languages/json/JsonAdapter.js.map +1 -0
- package/dist/languages/locationIndex.d.ts +41 -0
- package/dist/languages/locationIndex.d.ts.map +1 -0
- package/dist/languages/locationIndex.js +42 -0
- package/dist/languages/locationIndex.js.map +1 -0
- package/dist/languages/sql/dialectDetection.d.ts +57 -0
- package/dist/languages/sql/dialectDetection.d.ts.map +1 -0
- package/dist/languages/sql/dialectDetection.js +135 -0
- package/dist/languages/sql/dialectDetection.js.map +1 -0
- package/dist/languages/sql/sqlAst.d.ts +494 -0
- package/dist/languages/sql/sqlAst.d.ts.map +1 -0
- package/dist/languages/sql/sqlAst.js +1817 -0
- package/dist/languages/sql/sqlAst.js.map +1 -0
- package/dist/languages/testConventions.d.ts +12 -1
- package/dist/languages/testConventions.d.ts.map +1 -1
- package/dist/languages/testConventions.js +13 -1
- package/dist/languages/testConventions.js.map +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +1 -1
- package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
- package/dist/languages/tree-sitter/converter.js +2 -2
- package/dist/languages/tree-sitter/converter.js.map +1 -1
- package/dist/languages/tree-sitter/parser.d.ts +3 -4
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
- package/dist/languages/tree-sitter/parser.js +10 -4
- package/dist/languages/tree-sitter/parser.js.map +1 -1
- package/dist/languages/tree-sitter/rawNode.d.ts +3 -0
- package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -1
- package/dist/languages/tree-sitter/rawNode.js +3 -0
- package/dist/languages/tree-sitter/rawNode.js.map +1 -1
- package/dist/languages/types.d.ts +7 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +36 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +168 -45
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/languages/typescript/database-packages.json +19 -0
- package/dist/ledger.d.ts +118 -2
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +167 -45
- package/dist/ledger.js.map +1 -1
- package/dist/legacyIndexNotice.d.ts +32 -0
- package/dist/legacyIndexNotice.d.ts.map +1 -0
- package/dist/legacyIndexNotice.js +89 -0
- package/dist/legacyIndexNotice.js.map +1 -0
- package/dist/mcp-tools/discoveryQueries.d.ts +55 -0
- package/dist/mcp-tools/discoveryQueries.d.ts.map +1 -0
- package/dist/mcp-tools/discoveryQueries.js +157 -0
- package/dist/mcp-tools/discoveryQueries.js.map +1 -0
- package/dist/mcp-tools/projectTasks.d.ts +9 -123
- package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
- package/dist/mcp-tools/projectTasks.js +180 -170
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +20 -0
- package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
- package/dist/mcp-tools/whitelistTools.js +20 -0
- package/dist/mcp-tools/whitelistTools.js.map +1 -1
- package/dist/mcp-tools/workflowGuide.d.ts +9 -0
- package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +13 -5
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts +78 -0
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +203 -340
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.d.ts +2 -0
- package/dist/mcp-ui-simple.d.ts.map +1 -1
- package/dist/mcp-ui-simple.js +12 -5
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +6 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +827 -850
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +29 -33
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +102 -791
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpAutoIndex.d.ts +5 -0
- package/dist/mcpAutoIndex.d.ts.map +1 -1
- package/dist/mcpAutoIndex.js +7 -2
- package/dist/mcpAutoIndex.js.map +1 -1
- package/dist/mcpDiagnostics.d.ts +7 -0
- package/dist/mcpDiagnostics.d.ts.map +1 -1
- package/dist/mcpDiagnostics.js +34 -9
- package/dist/mcpDiagnostics.js.map +1 -1
- package/dist/mcpToolErrors.d.ts +16 -0
- package/dist/mcpToolErrors.d.ts.map +1 -1
- package/dist/mcpToolErrors.js +16 -0
- package/dist/mcpToolErrors.js.map +1 -1
- package/dist/nextFile.d.ts +6 -0
- package/dist/nextFile.d.ts.map +1 -1
- package/dist/nextFile.js +6 -0
- package/dist/nextFile.js.map +1 -1
- package/dist/nextFileIncremental.d.ts +44 -4
- package/dist/nextFileIncremental.d.ts.map +1 -1
- package/dist/nextFileIncremental.js +47 -7
- package/dist/nextFileIncremental.js.map +1 -1
- package/dist/phase/batchFunctions.d.ts +38 -0
- package/dist/phase/batchFunctions.d.ts.map +1 -0
- package/dist/phase/batchFunctions.js +64 -0
- package/dist/phase/batchFunctions.js.map +1 -0
- package/dist/phase/checks.d.ts +39 -0
- package/dist/phase/checks.d.ts.map +1 -0
- package/dist/phase/checks.js +48 -0
- package/dist/phase/checks.js.map +1 -0
- package/dist/phase/codeBlocks.d.ts +25 -0
- package/dist/phase/codeBlocks.d.ts.map +1 -0
- package/dist/phase/codeBlocks.js +268 -0
- package/dist/phase/codeBlocks.js.map +1 -0
- package/dist/phase/colorMath.d.ts +41 -0
- package/dist/phase/colorMath.d.ts.map +1 -0
- package/dist/phase/colorMath.js +109 -0
- package/dist/phase/colorMath.js.map +1 -0
- package/dist/phase/config.d.ts +29 -0
- package/dist/phase/config.d.ts.map +1 -0
- package/dist/phase/config.js +54 -0
- package/dist/phase/config.js.map +1 -0
- package/dist/phase/consumed.d.ts +47 -0
- package/dist/phase/consumed.d.ts.map +1 -0
- package/dist/phase/consumed.js +22 -0
- package/dist/phase/consumed.js.map +1 -0
- package/dist/phase/conventionMining.d.ts +59 -0
- package/dist/phase/conventionMining.d.ts.map +1 -0
- package/dist/phase/conventionMining.js +152 -0
- package/dist/phase/conventionMining.js.map +1 -0
- package/dist/phase/coverage.d.ts +65 -0
- package/dist/phase/coverage.d.ts.map +1 -0
- package/dist/phase/coverage.js +121 -0
- package/dist/phase/coverage.js.map +1 -0
- package/dist/phase/dag.d.ts +49 -0
- package/dist/phase/dag.d.ts.map +1 -0
- package/dist/phase/dag.js +120 -0
- package/dist/phase/dag.js.map +1 -0
- package/dist/phase/dataAccessCalls.d.ts +33 -0
- package/dist/phase/dataAccessCalls.d.ts.map +1 -0
- package/dist/phase/dataAccessCalls.js +42 -0
- package/dist/phase/dataAccessCalls.js.map +1 -0
- package/dist/phase/dataAccessCallsCandidates.d.ts +25 -0
- package/dist/phase/dataAccessCallsCandidates.d.ts.map +1 -0
- package/dist/phase/dataAccessCallsCandidates.js +27 -0
- package/dist/phase/dataAccessCallsCandidates.js.map +1 -0
- package/dist/phase/dynamicSql.d.ts +18 -0
- package/dist/phase/dynamicSql.d.ts.map +1 -0
- package/dist/phase/dynamicSql.js +20 -0
- package/dist/phase/dynamicSql.js.map +1 -0
- package/dist/phase/exportForm.d.ts +23 -0
- package/dist/phase/exportForm.d.ts.map +1 -0
- package/dist/phase/exportForm.js +29 -0
- package/dist/phase/exportForm.js.map +1 -0
- package/dist/phase/exportSymbols.d.ts +21 -0
- package/dist/phase/exportSymbols.d.ts.map +1 -0
- package/dist/phase/exportSymbols.js +28 -0
- package/dist/phase/exportSymbols.js.map +1 -0
- package/dist/phase/fileHeader.d.ts +15 -0
- package/dist/phase/fileHeader.d.ts.map +1 -0
- package/dist/phase/fileHeader.js +33 -0
- package/dist/phase/fileHeader.js.map +1 -0
- package/dist/phase/fileImports.d.ts +39 -0
- package/dist/phase/fileImports.d.ts.map +1 -0
- package/dist/phase/fileImports.js +138 -0
- package/dist/phase/fileImports.js.map +1 -0
- package/dist/phase/fileSymbols.d.ts +25 -0
- package/dist/phase/fileSymbols.d.ts.map +1 -0
- package/dist/phase/fileSymbols.js +302 -0
- package/dist/phase/fileSymbols.js.map +1 -0
- package/dist/phase/functionBodies.d.ts +28 -0
- package/dist/phase/functionBodies.d.ts.map +1 -0
- package/dist/phase/functionBodies.js +67 -0
- package/dist/phase/functionBodies.js.map +1 -0
- package/dist/phase/functionIndex.d.ts +28 -0
- package/dist/phase/functionIndex.d.ts.map +1 -0
- package/dist/phase/functionIndex.js +152 -0
- package/dist/phase/functionIndex.js.map +1 -0
- package/dist/phase/goFunctionAnalysis.d.ts +47 -0
- package/dist/phase/goFunctionAnalysis.d.ts.map +1 -0
- package/dist/phase/goFunctionAnalysis.js +291 -0
- package/dist/phase/goFunctionAnalysis.js.map +1 -0
- package/dist/phase/goFunctions.d.ts +38 -0
- package/dist/phase/goFunctions.d.ts.map +1 -0
- package/dist/phase/goFunctions.js +154 -0
- package/dist/phase/goFunctions.js.map +1 -0
- package/dist/phase/goImports.d.ts +29 -0
- package/dist/phase/goImports.d.ts.map +1 -0
- package/dist/phase/goImports.js +68 -0
- package/dist/phase/goImports.js.map +1 -0
- package/dist/phase/goPackageBindings.d.ts +22 -0
- package/dist/phase/goPackageBindings.d.ts.map +1 -0
- package/dist/phase/goPackageBindings.js +30 -0
- package/dist/phase/goPackageBindings.js.map +1 -0
- package/dist/phase/goSwitches.d.ts +28 -0
- package/dist/phase/goSwitches.d.ts.map +1 -0
- package/dist/phase/goSwitches.js +52 -0
- package/dist/phase/goSwitches.js.map +1 -0
- package/dist/phase/importForm.d.ts +20 -0
- package/dist/phase/importForm.d.ts.map +1 -0
- package/dist/phase/importForm.js +27 -0
- package/dist/phase/importForm.js.map +1 -0
- package/dist/phase/importSpecifiers.d.ts +20 -0
- package/dist/phase/importSpecifiers.d.ts.map +1 -0
- package/dist/phase/importSpecifiers.js +30 -0
- package/dist/phase/importSpecifiers.js.map +1 -0
- package/dist/phase/imports.d.ts +18 -0
- package/dist/phase/imports.d.ts.map +1 -0
- package/dist/phase/imports.js +25 -0
- package/dist/phase/imports.js.map +1 -0
- package/dist/phase/jsonDocument.d.ts +26 -0
- package/dist/phase/jsonDocument.d.ts.map +1 -0
- package/dist/phase/jsonDocument.js +36 -0
- package/dist/phase/jsonDocument.js.map +1 -0
- package/dist/phase/localBinding.d.ts +33 -0
- package/dist/phase/localBinding.d.ts.map +1 -0
- package/dist/phase/localBinding.js +208 -0
- package/dist/phase/localBinding.js.map +1 -0
- package/dist/phase/loopQueries.d.ts +31 -0
- package/dist/phase/loopQueries.d.ts.map +1 -0
- package/dist/phase/loopQueries.js +44 -0
- package/dist/phase/loopQueries.js.map +1 -0
- package/dist/phase/loopQueryCandidates.d.ts +26 -0
- package/dist/phase/loopQueryCandidates.d.ts.map +1 -0
- package/dist/phase/loopQueryCandidates.js +28 -0
- package/dist/phase/loopQueryCandidates.js.map +1 -0
- package/dist/phase/oracles.d.ts +216 -0
- package/dist/phase/oracles.d.ts.map +1 -0
- package/dist/phase/oracles.js +484 -0
- package/dist/phase/oracles.js.map +1 -0
- package/dist/phase/phaseModel.d.ts +190 -0
- package/dist/phase/phaseModel.d.ts.map +1 -0
- package/dist/phase/phaseModel.js +491 -0
- package/dist/phase/phaseModel.js.map +1 -0
- package/dist/phase/producers.d.ts +450 -0
- package/dist/phase/producers.d.ts.map +1 -0
- package/dist/phase/producers.js +1030 -0
- package/dist/phase/producers.js.map +1 -0
- package/dist/phase/querySiteCandidates.d.ts +27 -0
- package/dist/phase/querySiteCandidates.d.ts.map +1 -0
- package/dist/phase/querySiteCandidates.js +66 -0
- package/dist/phase/querySiteCandidates.js.map +1 -0
- package/dist/phase/querySites.d.ts +30 -0
- package/dist/phase/querySites.d.ts.map +1 -0
- package/dist/phase/querySites.js +93 -0
- package/dist/phase/querySites.js.map +1 -0
- package/dist/phase/reachability.d.ts +61 -0
- package/dist/phase/reachability.d.ts.map +1 -0
- package/dist/phase/reachability.js +104 -0
- package/dist/phase/reachability.js.map +1 -0
- package/dist/phase/reactComponents.d.ts +33 -0
- package/dist/phase/reactComponents.d.ts.map +1 -0
- package/dist/phase/reactComponents.js +47 -0
- package/dist/phase/reactComponents.js.map +1 -0
- package/dist/phase/receiverActivity.d.ts +35 -0
- package/dist/phase/receiverActivity.d.ts.map +1 -0
- package/dist/phase/receiverActivity.js +66 -0
- package/dist/phase/receiverActivity.js.map +1 -0
- package/dist/phase/receiverConsumers.d.ts +207 -0
- package/dist/phase/receiverConsumers.d.ts.map +1 -0
- package/dist/phase/receiverConsumers.js +1063 -0
- package/dist/phase/receiverConsumers.js.map +1 -0
- package/dist/phase/receiverProvenance.d.ts +120 -0
- package/dist/phase/receiverProvenance.d.ts.map +1 -0
- package/dist/phase/receiverProvenance.js +377 -0
- package/dist/phase/receiverProvenance.js.map +1 -0
- package/dist/phase/routing.d.ts +47 -0
- package/dist/phase/routing.d.ts.map +1 -0
- package/dist/phase/routing.js +62 -0
- package/dist/phase/routing.js.map +1 -0
- package/dist/phase/rules/conventions.d.ts +61 -0
- package/dist/phase/rules/conventions.d.ts.map +1 -0
- package/dist/phase/rules/conventions.js +403 -0
- package/dist/phase/rules/conventions.js.map +1 -0
- package/dist/phase/rules/crossDomain.d.ts +102 -0
- package/dist/phase/rules/crossDomain.d.ts.map +1 -0
- package/dist/phase/rules/crossDomain.js +918 -0
- package/dist/phase/rules/crossDomain.js.map +1 -0
- package/dist/phase/rules/dataAccess.d.ts +62 -0
- package/dist/phase/rules/dataAccess.d.ts.map +1 -0
- package/dist/phase/rules/dataAccess.js +480 -0
- package/dist/phase/rules/dataAccess.js.map +1 -0
- package/dist/phase/rules/dependencyGraph.d.ts +44 -0
- package/dist/phase/rules/dependencyGraph.d.ts.map +1 -0
- package/dist/phase/rules/dependencyGraph.js +260 -0
- package/dist/phase/rules/dependencyGraph.js.map +1 -0
- package/dist/phase/rules/documentation.d.ts +45 -0
- package/dist/phase/rules/documentation.d.ts.map +1 -0
- package/dist/phase/rules/documentation.js +340 -0
- package/dist/phase/rules/documentation.js.map +1 -0
- package/dist/phase/rules/dry.d.ts +109 -0
- package/dist/phase/rules/dry.d.ts.map +1 -0
- package/dist/phase/rules/dry.js +803 -0
- package/dist/phase/rules/dry.js.map +1 -0
- package/dist/phase/rules/fileDocumentation.d.ts +36 -0
- package/dist/phase/rules/fileDocumentation.d.ts.map +1 -0
- package/dist/phase/rules/fileDocumentation.js +134 -0
- package/dist/phase/rules/fileDocumentation.js.map +1 -0
- package/dist/phase/rules/functionBodies.d.ts +33 -0
- package/dist/phase/rules/functionBodies.d.ts.map +1 -0
- package/dist/phase/rules/functionBodies.js +71 -0
- package/dist/phase/rules/functionBodies.js.map +1 -0
- package/dist/phase/rules/goRules.d.ts +49 -0
- package/dist/phase/rules/goRules.d.ts.map +1 -0
- package/dist/phase/rules/goRules.js +209 -0
- package/dist/phase/rules/goRules.js.map +1 -0
- package/dist/phase/rules/querySites.d.ts +29 -0
- package/dist/phase/rules/querySites.d.ts.map +1 -0
- package/dist/phase/rules/querySites.js +94 -0
- package/dist/phase/rules/querySites.js.map +1 -0
- package/dist/phase/rules/react.d.ts +38 -0
- package/dist/phase/rules/react.d.ts.map +1 -0
- package/dist/phase/rules/react.js +202 -0
- package/dist/phase/rules/react.js.map +1 -0
- package/dist/phase/rules/registry.d.ts +170 -0
- package/dist/phase/rules/registry.d.ts.map +1 -0
- package/dist/phase/rules/registry.js +103 -0
- package/dist/phase/rules/registry.js.map +1 -0
- package/dist/phase/rules/schema.d.ts +79 -0
- package/dist/phase/rules/schema.d.ts.map +1 -0
- package/dist/phase/rules/schema.js +273 -0
- package/dist/phase/rules/schema.js.map +1 -0
- package/dist/phase/rules/schemaJson.d.ts +32 -0
- package/dist/phase/rules/schemaJson.d.ts.map +1 -0
- package/dist/phase/rules/schemaJson.js +81 -0
- package/dist/phase/rules/schemaJson.js.map +1 -0
- package/dist/phase/rules/schemaValidator.d.ts +38 -0
- package/dist/phase/rules/schemaValidator.d.ts.map +1 -0
- package/dist/phase/rules/schemaValidator.js +107 -0
- package/dist/phase/rules/schemaValidator.js.map +1 -0
- package/dist/phase/rules/secrets.d.ts +34 -0
- package/dist/phase/rules/secrets.d.ts.map +1 -0
- package/dist/phase/rules/secrets.js +208 -0
- package/dist/phase/rules/secrets.js.map +1 -0
- package/dist/phase/rules/security.d.ts +30 -0
- package/dist/phase/rules/security.d.ts.map +1 -0
- package/dist/phase/rules/security.js +85 -0
- package/dist/phase/rules/security.js.map +1 -0
- package/dist/phase/rules/securityDefects.d.ts +37 -0
- package/dist/phase/rules/securityDefects.d.ts.map +1 -0
- package/dist/phase/rules/securityDefects.js +167 -0
- package/dist/phase/rules/securityDefects.js.map +1 -0
- package/dist/phase/rules/solid.d.ts +61 -0
- package/dist/phase/rules/solid.d.ts.map +1 -0
- package/dist/phase/rules/solid.js +562 -0
- package/dist/phase/rules/solid.js.map +1 -0
- package/dist/phase/rules/styles.d.ts +77 -0
- package/dist/phase/rules/styles.d.ts.map +1 -0
- package/dist/phase/rules/styles.js +868 -0
- package/dist/phase/rules/styles.js.map +1 -0
- package/dist/phase/rules/unreferencedModule.d.ts +26 -0
- package/dist/phase/rules/unreferencedModule.d.ts.map +1 -0
- package/dist/phase/rules/unreferencedModule.js +61 -0
- package/dist/phase/rules/unreferencedModule.js.map +1 -0
- package/dist/phase/runner.d.ts +549 -0
- package/dist/phase/runner.d.ts.map +1 -0
- package/dist/phase/runner.js +1098 -0
- package/dist/phase/runner.js.map +1 -0
- package/dist/phase/schemaCode.d.ts +34 -0
- package/dist/phase/schemaCode.d.ts.map +1 -0
- package/dist/phase/schemaCode.js +53 -0
- package/dist/phase/schemaCode.js.map +1 -0
- package/dist/phase/schemaObjects.d.ts +37 -0
- package/dist/phase/schemaObjects.d.ts.map +1 -0
- package/dist/phase/schemaObjects.js +139 -0
- package/dist/phase/schemaObjects.js.map +1 -0
- package/dist/phase/schemaUsage.d.ts +30 -0
- package/dist/phase/schemaUsage.d.ts.map +1 -0
- package/dist/phase/schemaUsage.js +99 -0
- package/dist/phase/schemaUsage.js.map +1 -0
- package/dist/phase/schemaUsageCandidates.d.ts +32 -0
- package/dist/phase/schemaUsageCandidates.d.ts.map +1 -0
- package/dist/phase/schemaUsageCandidates.js +165 -0
- package/dist/phase/schemaUsageCandidates.js.map +1 -0
- package/dist/phase/schemaValidations.d.ts +34 -0
- package/dist/phase/schemaValidations.d.ts.map +1 -0
- package/dist/phase/schemaValidations.js +53 -0
- package/dist/phase/schemaValidations.js.map +1 -0
- package/dist/phase/secretCandidates.d.ts +28 -0
- package/dist/phase/secretCandidates.d.ts.map +1 -0
- package/dist/phase/secretCandidates.js +132 -0
- package/dist/phase/secretCandidates.js.map +1 -0
- package/dist/phase/securityCandidates.d.ts +29 -0
- package/dist/phase/securityCandidates.d.ts.map +1 -0
- package/dist/phase/securityCandidates.js +469 -0
- package/dist/phase/securityCandidates.js.map +1 -0
- package/dist/phase/seeded-defects.d.ts +18 -0
- package/dist/phase/seeded-defects.d.ts.map +1 -0
- package/dist/phase/seeded-defects.js +61 -0
- package/dist/phase/seeded-defects.js.map +1 -0
- package/dist/phase/stringLiterals.d.ts +24 -0
- package/dist/phase/stringLiterals.d.ts.map +1 -0
- package/dist/phase/stringLiterals.js +35 -0
- package/dist/phase/stringLiterals.js.map +1 -0
- package/dist/phase/stylesCss.d.ts +25 -0
- package/dist/phase/stylesCss.d.ts.map +1 -0
- package/dist/phase/stylesCss.js +34 -0
- package/dist/phase/stylesCss.js.map +1 -0
- package/dist/phase/stylesMarkup.d.ts +31 -0
- package/dist/phase/stylesMarkup.d.ts.map +1 -0
- package/dist/phase/stylesMarkup.js +48 -0
- package/dist/phase/stylesMarkup.js.map +1 -0
- package/dist/phase/stylesSource.d.ts +36 -0
- package/dist/phase/stylesSource.d.ts.map +1 -0
- package/dist/phase/stylesSource.js +50 -0
- package/dist/phase/stylesSource.js.map +1 -0
- package/dist/phase/typeDeclarations.d.ts +33 -0
- package/dist/phase/typeDeclarations.d.ts.map +1 -0
- package/dist/phase/typeDeclarations.js +76 -0
- package/dist/phase/typeDeclarations.js.map +1 -0
- package/dist/phase/types.d.ts +2199 -0
- package/dist/phase/types.d.ts.map +1 -0
- package/dist/phase/types.js +27 -0
- package/dist/phase/types.js.map +1 -0
- package/dist/phase/withinFileProvenance.d.ts +50 -0
- package/dist/phase/withinFileProvenance.d.ts.map +1 -0
- package/dist/phase/withinFileProvenance.js +112 -0
- package/dist/phase/withinFileProvenance.js.map +1 -0
- package/dist/pipeline.d.ts +37 -30
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +131 -326
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +104 -21
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +1144 -984
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/pipelineTypes.d.ts +21 -0
- package/dist/pipelineTypes.d.ts.map +1 -1
- package/dist/pipelineTypes.js +21 -10
- package/dist/pipelineTypes.js.map +1 -1
- package/dist/presets/presets.d.ts +9 -2
- package/dist/presets/presets.d.ts.map +1 -1
- package/dist/presets/presets.js +15 -26
- package/dist/presets/presets.js.map +1 -1
- package/dist/reporting/csvReportGenerator.d.ts +14 -3
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/csvReportGenerator.js +14 -3
- package/dist/reporting/csvReportGenerator.js.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts +5 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.js +5 -1
- package/dist/reporting/htmlReportGenerator.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts +9 -2
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +19 -5
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/reporting/reportGenerator.d.ts +9 -2
- package/dist/reporting/reportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.js +9 -2
- package/dist/reporting/reportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts +14 -0
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
- package/dist/reporting/sarifReportGenerator.js +14 -0
- package/dist/reporting/sarifReportGenerator.js.map +1 -1
- package/dist/reporting/sizeDistribution.d.ts +19 -2
- package/dist/reporting/sizeDistribution.d.ts.map +1 -1
- package/dist/reporting/sizeDistribution.js +23 -5
- package/dist/reporting/sizeDistribution.js.map +1 -1
- package/dist/ruleAliases.d.ts +6 -8
- package/dist/ruleAliases.d.ts.map +1 -1
- package/dist/ruleAliases.js +29 -4
- package/dist/ruleAliases.js.map +1 -1
- package/dist/search/QueryParser.d.ts +1 -0
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +32 -91
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/services/CodeMapGenerator.d.ts +19 -20
- package/dist/services/CodeMapGenerator.d.ts.map +1 -1
- package/dist/services/CodeMapGenerator.js +214 -194
- package/dist/services/CodeMapGenerator.js.map +1 -1
- package/dist/services/ProjectTaskRepository.d.ts +65 -3
- package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
- package/dist/services/ProjectTaskRepository.js +94 -25
- package/dist/services/ProjectTaskRepository.js.map +1 -1
- package/dist/services/auditJobService.d.ts +17 -1
- package/dist/services/auditJobService.d.ts.map +1 -1
- package/dist/services/auditJobService.js +16 -0
- package/dist/services/auditJobService.js.map +1 -1
- package/dist/services/fileAccounting.d.ts +43 -5
- package/dist/services/fileAccounting.d.ts.map +1 -1
- package/dist/services/fileAccounting.js +48 -9
- package/dist/services/fileAccounting.js.map +1 -1
- package/dist/services/projectTaskHelpers.d.ts +45 -0
- package/dist/services/projectTaskHelpers.d.ts.map +1 -1
- package/dist/services/projectTaskHelpers.js +45 -0
- package/dist/services/projectTaskHelpers.js.map +1 -1
- package/dist/services/whitelistService.d.ts +40 -5
- package/dist/services/whitelistService.d.ts.map +1 -1
- package/dist/services/whitelistService.js +87 -46
- package/dist/services/whitelistService.js.map +1 -1
- package/dist/sqlite/betterSqlite3.d.ts +35 -1
- package/dist/sqlite/betterSqlite3.d.ts.map +1 -1
- package/dist/sqlite/betterSqlite3.js +35 -1
- package/dist/sqlite/betterSqlite3.js.map +1 -1
- package/dist/sqlite/driver.d.ts +23 -0
- package/dist/sqlite/driver.d.ts.map +1 -1
- package/dist/sqlite/driver.js +23 -0
- package/dist/sqlite/driver.js.map +1 -1
- package/dist/sqlite/nodeSqlite.d.ts +35 -1
- package/dist/sqlite/nodeSqlite.d.ts.map +1 -1
- package/dist/sqlite/nodeSqlite.js +35 -1
- package/dist/sqlite/nodeSqlite.js.map +1 -1
- package/dist/structuralSignature.d.ts +9 -0
- package/dist/structuralSignature.d.ts.map +1 -1
- package/dist/structuralSignature.js +9 -0
- package/dist/structuralSignature.js.map +1 -1
- package/dist/styles/cssAstExtractor.d.ts +15 -0
- package/dist/styles/cssAstExtractor.d.ts.map +1 -1
- package/dist/styles/cssAstExtractor.js +15 -0
- package/dist/styles/cssAstExtractor.js.map +1 -1
- package/dist/styles/normalizer.d.ts +6 -0
- package/dist/styles/normalizer.d.ts.map +1 -1
- package/dist/styles/normalizer.js +6 -0
- package/dist/styles/normalizer.js.map +1 -1
- package/dist/styles/styleExtractor.d.ts +29 -2
- package/dist/styles/styleExtractor.d.ts.map +1 -1
- package/dist/styles/styleExtractor.js +67 -48
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts +8 -0
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +135 -138
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/tailwindConfigLoader.d.ts +12 -0
- package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
- package/dist/styles/tailwindConfigLoader.js +12 -0
- package/dist/styles/tailwindConfigLoader.js.map +1 -1
- package/dist/styles/tailwindExpander.d.ts +3 -0
- package/dist/styles/tailwindExpander.d.ts.map +1 -1
- package/dist/styles/tailwindExpander.js +8 -4
- package/dist/styles/tailwindExpander.js.map +1 -1
- package/dist/styles/tailwindProbe.d.ts +9 -0
- package/dist/styles/tailwindProbe.d.ts.map +1 -1
- package/dist/styles/tailwindProbe.js +181 -166
- package/dist/styles/tailwindProbe.js.map +1 -1
- package/dist/styles/tailwindUtilityExpander.d.ts +13 -0
- package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
- package/dist/styles/tailwindUtilityExpander.js +13 -0
- package/dist/styles/tailwindUtilityExpander.js.map +1 -1
- package/dist/symbols.d.ts +13 -11
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +14 -21
- package/dist/symbols.js.map +1 -1
- package/dist/telemetry.d.ts +31 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +31 -3
- package/dist/telemetry.js.map +1 -1
- package/dist/tool-registry.d.ts +37 -1
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js +37 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/types.d.ts +114 -71
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -16
- package/dist/types.js.map +1 -1
- package/dist/ui/InteractivePrompts.d.ts +12 -0
- package/dist/ui/InteractivePrompts.d.ts.map +1 -1
- package/dist/ui/InteractivePrompts.js +12 -0
- package/dist/ui/InteractivePrompts.js.map +1 -1
- package/dist/utils/astParser.d.ts +15 -0
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +15 -0
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/astUtils.d.ts +60 -0
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +350 -362
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/contentHash.d.ts +22 -0
- package/dist/utils/contentHash.d.ts.map +1 -0
- package/dist/utils/contentHash.js +26 -0
- package/dist/utils/contentHash.js.map +1 -0
- package/dist/utils/dependencyExtractor.d.ts +28 -0
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +28 -1
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/dist/utils/errorMessage.d.ts +10 -0
- package/dist/utils/errorMessage.d.ts.map +1 -0
- package/dist/utils/errorMessage.js +12 -0
- package/dist/utils/errorMessage.js.map +1 -0
- package/dist/utils/fileDiscovery.d.ts +61 -2
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +131 -23
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +34 -5
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +73 -52
- package/dist/utils/reactDetection.js.map +1 -1
- package/dist/version.generated.d.ts +1 -1
- package/dist/version.generated.js +1 -1
- package/dist/workers/auditWorker.js +7 -3
- package/dist/workers/auditWorker.js.map +1 -1
- package/examples/.auditrc.example.json +0 -8
- package/examples/.auditrc.json +0 -11
- package/examples/.code-auditor.json +0 -2
- package/examples/nextjs.auditrc.json +0 -8
- package/examples/node-api.auditrc.json +0 -7
- package/examples/react.auditrc.json +0 -6
- package/examples/tolerant-solid.auditrc.json +0 -5
- package/package.json +18 -9
- package/plugin/.claude-plugin/manifest.json +16 -0
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/hooks/hooks.json +7 -3
- package/plugin/scripts/hook-audit.sh +46 -16
- package/plugin/scripts/hook-common.sh +81 -12
- package/plugin/scripts/hook-drift-check.sh +76 -0
- package/plugin/scripts/hook-self-audit.sh +22 -14
- package/plugin/scripts/hook-warm.sh +5 -6
- package/plugin/skills/code-auditor/SKILL.md +1 -1
- package/server.json +10 -4
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spec 68 §11.1 — the general phase-model runner behind the both-paths split.
|
|
3
|
+
*
|
|
4
|
+
* `runPhaseModel` drives Parse → Process → Analyze over `MIGRATED_RULES`. The
|
|
5
|
+
* three-phase ordering and the "rules read facts, never ASTs" property are
|
|
6
|
+
* fixed here; §6's fan-out is realized as a bounded in-process work queue over
|
|
7
|
+
* one task per file (`workerCount` on {@link PhaseInfra}), with a deterministic
|
|
8
|
+
* file-sorted fact merge so `workerCount` is a tuning threshold, never a source
|
|
9
|
+
* of output reordering (§6.4). Tree-sitter `parse()` is synchronous CPU-bound
|
|
10
|
+
* work in one JS thread, so the queue is a structural unit rather than a
|
|
11
|
+
* wall-clock parallelizer; the guarantees §6 exists to deliver — per-file
|
|
12
|
+
* isolation (§3.3), byte-identical output across worker counts (§6.4), and a
|
|
13
|
+
* bounded in-flight window (§6.5) — are what land here.
|
|
14
|
+
*
|
|
15
|
+
* The fact set is *derived* from the migrated rules' `needs`: the union of every
|
|
16
|
+
* declared fact kind, transitively widened by corpus processors' upstream
|
|
17
|
+
* `needs` (today that is the one `ddl-declarations → resolution` edge). File
|
|
18
|
+
* facts are built by parsing each file once and running every matching
|
|
19
|
+
* per-(kind, format) producer over it; corpus facts are reduced in dependency
|
|
20
|
+
* order. Each rule then runs against exactly the facts it declared — no more,
|
|
21
|
+
* no less — which is what makes a rule's coverage state computable (§8).
|
|
22
|
+
*
|
|
23
|
+
* Thresholds are resolved by the caller (§10's config surface) and passed as a
|
|
24
|
+
* per-rule map; a rule with no entry reads its documented fallback. The rule's
|
|
25
|
+
* own `analyze` never reaches a tree, an adapter, or a source string.
|
|
26
|
+
*/
|
|
27
|
+
import { promises as fs } from 'fs';
|
|
28
|
+
import { MIGRATED_RULES } from './rules/registry.js';
|
|
29
|
+
import { fileProducerFor, PRODUCERS, CORPUS_PRODUCERS } from './producers.js';
|
|
30
|
+
import { oracleShortfall } from './oracles.js';
|
|
31
|
+
import { formatFor, parseOne } from './runner.js';
|
|
32
|
+
import { loadTailwindConfig, tokensToStyleTokens } from '../styles/tailwindConfigLoader.js';
|
|
33
|
+
import { findFiles, UNREAD_STYLE_EXTENSIONS, getSourceExtensions } from '../utils/fileDiscovery.js';
|
|
34
|
+
import { classifyUnprovenQueryReceivers, classifyUnresolvedQuerySites, classifyUnparseableSql } from './receiverConsumers.js';
|
|
35
|
+
import { computeAmbientInterfaceFields } from './receiverProvenance.js';
|
|
36
|
+
import { withRuleTiming, withRuleTimingAsync } from '../analyzers/ruleTiming.js';
|
|
37
|
+
/**
|
|
38
|
+
* Run the full phase model over the given absolute file paths and return the
|
|
39
|
+
* migrated rules' findings. A no-op while `MIGRATED_RULES` is empty (the legacy
|
|
40
|
+
* pipeline serves everything, so the tool is functionally unchanged).
|
|
41
|
+
*
|
|
42
|
+
* @param filePaths - The absolute file paths to read and run through the model.
|
|
43
|
+
* @param thresholdsByRule - The resolved per-rule threshold map.
|
|
44
|
+
* @param infra - The optional corpus-level inputs (project root, index, workers).
|
|
45
|
+
* @returns The migrated rules' findings and the per-file fact completeness map.
|
|
46
|
+
*/
|
|
47
|
+
export async function runPhaseModel(filePaths, thresholdsByRule, infra) {
|
|
48
|
+
if (MIGRATED_RULES.length === 0)
|
|
49
|
+
return { findings: [], incompleteFacts: new Map(), oracleShortfalls: [], unprovenQueryReceivers: [], unresolvedImports: [], unresolvedQuerySites: [], unparseableSql: [] };
|
|
50
|
+
const active = activeRules(infra?.enabledRules);
|
|
51
|
+
if (active.length === 0)
|
|
52
|
+
return { findings: [], incompleteFacts: new Map(), oracleShortfalls: [], unprovenQueryReceivers: [], unresolvedImports: [], unresolvedQuerySites: [], unparseableSql: [] };
|
|
53
|
+
const neededFormats = new Set();
|
|
54
|
+
for (const rule of active) {
|
|
55
|
+
for (const f of rule.needs.formats)
|
|
56
|
+
neededFormats.add(f);
|
|
57
|
+
}
|
|
58
|
+
// Widen to the formats that supply the transitively-needed *file* facts: a
|
|
59
|
+
// rule names only the formats it evaluates (`needs.formats`), not the formats
|
|
60
|
+
// its facts come from. `unknown-table` declares `resolution`, whose
|
|
61
|
+
// upstream `ddl-declarations` is supplied by `sql` (migration files) as well
|
|
62
|
+
// as TS/JS — so `.sql` files must be read even though no rule declares `sql`.
|
|
63
|
+
const neededKinds = neededFactKinds(active);
|
|
64
|
+
for (const kind of neededKinds) {
|
|
65
|
+
const producers = PRODUCERS[kind];
|
|
66
|
+
if (producers)
|
|
67
|
+
for (const format of Object.keys(producers))
|
|
68
|
+
neededFormats.add(format);
|
|
69
|
+
}
|
|
70
|
+
// Spec 70 — the traverse phase is now the source of the three *walk-level*
|
|
71
|
+
// unread reasons (`unsupported style dialect`, `read failed`, `unsupported
|
|
72
|
+
// source extension`), each byte-identical to the legacy string it replaces.
|
|
73
|
+
// The content-level `<style lang="…">` reason still comes from the index
|
|
74
|
+
// table (via the corpus producer), so the fact is their merge in `buildFacts`.
|
|
75
|
+
const unread = [];
|
|
76
|
+
// Dialect walk (`.less`/`.styl`/`.sass`) — full runs only, matching the legacy
|
|
77
|
+
// `if (!scoped)` around `findUnreadStyleFiles`.
|
|
78
|
+
if (infra?.projectRoot && !infra.scoped && neededKinds.has('unread-style-sources')) {
|
|
79
|
+
for (const p of await findFiles(infra.projectRoot, { extensions: UNREAD_STYLE_EXTENSIONS })) {
|
|
80
|
+
const ext = p.slice(p.lastIndexOf('.') + 1);
|
|
81
|
+
unread.push({ filePath: p, reason: `unsupported style dialect: ${ext}` });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const files = [];
|
|
85
|
+
for (const p of filePaths) {
|
|
86
|
+
// Unknown source extension → unread (the legacy `extractForFile` backstop),
|
|
87
|
+
// and skip the parse — `formatFor` would map it to `typescript` and mis-parse
|
|
88
|
+
// it as TS rather than leaving it unhandled.
|
|
89
|
+
const ext = p.includes('.') ? p.slice(p.lastIndexOf('.')) : '';
|
|
90
|
+
if (ext && !getSourceExtensions().has(ext)) {
|
|
91
|
+
unread.push({ filePath: p, reason: `unsupported source extension: ${ext}` });
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (!neededFormats.has(formatFor(p)))
|
|
95
|
+
continue;
|
|
96
|
+
try {
|
|
97
|
+
files.push({ path: p, content: await fs.readFile(p, 'utf8') });
|
|
98
|
+
}
|
|
99
|
+
catch (err) {
|
|
100
|
+
// Unreadable — the traverse's own read attempt records the reason (the
|
|
101
|
+
// legacy read-failure push moved here); skip, don't fail.
|
|
102
|
+
unread.push({ filePath: p, reason: `read failed: ${err instanceof Error ? err.message : String(err)}` });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return runPhaseModelOverFiles(files, thresholdsByRule, infra, unread);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The file/corpus-pipeline half, exposed for the slice tests.
|
|
109
|
+
*
|
|
110
|
+
* @param files - The already-read input files to parse, process, and analyze.
|
|
111
|
+
* @param thresholdsByRule - The resolved per-rule threshold map.
|
|
112
|
+
* @param infra - The optional corpus-level inputs (project root, index, workers).
|
|
113
|
+
* @param unread - The traverse phase's walk-level unread-source reasons (dialect,
|
|
114
|
+
* read-failure, unknown-extension), merged into the `unread-style-sources`
|
|
115
|
+
* fact ahead of the corpus producer's table-derived content-level reasons.
|
|
116
|
+
* @returns The migrated rules' findings and the per-file fact completeness map.
|
|
117
|
+
*/
|
|
118
|
+
export async function runPhaseModelOverFiles(files, thresholdsByRule, infra, unread = []) {
|
|
119
|
+
const { facts, incompleteFacts, oracleShortfalls, unprovenQueryReceivers, unresolvedImports, unresolvedQuerySites, unparseableSql } = await buildFacts(files, infra, unread);
|
|
120
|
+
const findings = await analyzeAll(facts, thresholdsByRule, infra);
|
|
121
|
+
return {
|
|
122
|
+
findings,
|
|
123
|
+
incompleteFacts,
|
|
124
|
+
oracleShortfalls,
|
|
125
|
+
unprovenQueryReceivers,
|
|
126
|
+
unresolvedImports,
|
|
127
|
+
unresolvedQuerySites,
|
|
128
|
+
unparseableSql,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/** The migrated rules this run should serve: all, or the enabled subset. */
|
|
132
|
+
function activeRules(enabledRules) {
|
|
133
|
+
if (!enabledRules)
|
|
134
|
+
return MIGRATED_RULES;
|
|
135
|
+
return MIGRATED_RULES.filter((r) => enabledRules.has(r.id));
|
|
136
|
+
}
|
|
137
|
+
/** The fact kinds the migrated rules read, transitively closed over corpus `needs`. */
|
|
138
|
+
function neededFactKinds(active = MIGRATED_RULES) {
|
|
139
|
+
const needed = new Set();
|
|
140
|
+
for (const rule of active) {
|
|
141
|
+
for (const f of rule.needs.facts)
|
|
142
|
+
needed.add(f);
|
|
143
|
+
}
|
|
144
|
+
// Corpus producers pull in their upstream facts (ddl-declarations → resolution).
|
|
145
|
+
let grew = true;
|
|
146
|
+
while (grew) {
|
|
147
|
+
grew = false;
|
|
148
|
+
for (const producer of Object.values(CORPUS_PRODUCERS)) {
|
|
149
|
+
if (!needed.has(producer.produces))
|
|
150
|
+
continue;
|
|
151
|
+
for (const upstream of producer.needs) {
|
|
152
|
+
if (!needed.has(upstream)) {
|
|
153
|
+
needed.add(upstream);
|
|
154
|
+
grew = true;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Spec 70 2c — `classifyUnprovenQueryReceivers` (the fifth receiver consumer)
|
|
160
|
+
// reads the raw `data-access-calls-candidates` fact, which is only an upstream
|
|
161
|
+
// of `data-access-calls`. When `receiver-provenance` is needed through another
|
|
162
|
+
// consumer (e.g. a `loop-queries`-only run) but `data-access-calls` is not, that
|
|
163
|
+
// candidate fact would be absent and the cannot-fire surface would silently read
|
|
164
|
+
// empty — matching the pre-pass, which always scanned for unproven receivers
|
|
165
|
+
// whenever any receiver consumer was present.
|
|
166
|
+
if (needed.has('receiver-provenance'))
|
|
167
|
+
needed.add('data-access-calls-candidates');
|
|
168
|
+
return needed;
|
|
169
|
+
}
|
|
170
|
+
/** Process: build every needed fact kind (file facts, then corpus facts in order). */
|
|
171
|
+
async function buildFacts(files, infra, unread = []) {
|
|
172
|
+
const projectRoot = infra?.projectRoot;
|
|
173
|
+
const active = activeRules(infra?.enabledRules);
|
|
174
|
+
const needed = neededFactKinds(active);
|
|
175
|
+
const facts = new Map();
|
|
176
|
+
const incompleteFacts = new Map();
|
|
177
|
+
const oracleShortfalls = [];
|
|
178
|
+
const fileKinds = [...needed].filter((k) => Object.prototype.hasOwnProperty.call(PRODUCERS, k));
|
|
179
|
+
// Every needed file fact starts empty so a corpus producer whose upstream
|
|
180
|
+
// no file produced sees `[]`, not `undefined` (resolution's
|
|
181
|
+
// ddl-declarations edge on a corpus with no code DDL — e.g. a styles-only
|
|
182
|
+
// audit, or DDL declared in .sql migrations the code parser never sees).
|
|
183
|
+
for (const kind of fileKinds) {
|
|
184
|
+
facts.set(kind, []);
|
|
185
|
+
}
|
|
186
|
+
/** Record `file` against `kind` in the per-file completeness map (§3.3). */
|
|
187
|
+
const markIncomplete = (kind, file) => {
|
|
188
|
+
let set = incompleteFacts.get(kind);
|
|
189
|
+
if (!set) {
|
|
190
|
+
set = new Set();
|
|
191
|
+
incompleteFacts.set(kind, set);
|
|
192
|
+
}
|
|
193
|
+
set.add(file);
|
|
194
|
+
};
|
|
195
|
+
// §6.1 — one parse + per-file process is a single task per file. Each task
|
|
196
|
+
// returns that file's fact fragments (and its incomplete (kind) list); the
|
|
197
|
+
// parent merges them in file order. A bounded queue runs at most `workerCount`
|
|
198
|
+
// files in flight (§6.5). `workerCount` is a threshold, not a selection gate:
|
|
199
|
+
// the merge is file-sorted, so the fact arrays — and every finding derived
|
|
200
|
+
// from them — are byte-identical regardless of how wide the queue is (§6.4).
|
|
201
|
+
//
|
|
202
|
+
// §3.3 per-file failure isolation: a failed parse marks every file fact kind
|
|
203
|
+
// that would have been produced from this file's format `incomplete`; a
|
|
204
|
+
// throwing producer marks just that (kind, file) pair. Either way the run
|
|
205
|
+
// continues — the failure is observable in §8's coverage, not a dropped file
|
|
206
|
+
// (which would read `clean`, a false negative) and not an aborted run.
|
|
207
|
+
const workerCount = Math.max(1, infra?.workerCount ?? 1);
|
|
208
|
+
const perFile = await mapWithConcurrency(files, (input) => processFile(input, fileKinds, projectRoot, infra), workerCount);
|
|
209
|
+
// Deterministic merge: file-sorted so the parent's write order (and thus every
|
|
210
|
+
// rule's input and output) never depends on completion order.
|
|
211
|
+
const ordered = [...perFile].sort((a, b) => (a.file < b.file ? -1 : a.file > b.file ? 1 : 0));
|
|
212
|
+
for (const r of ordered) {
|
|
213
|
+
for (const [kind, items] of r.fragments) {
|
|
214
|
+
const acc = facts.get(kind) ?? [];
|
|
215
|
+
acc.push(...items);
|
|
216
|
+
facts.set(kind, acc);
|
|
217
|
+
}
|
|
218
|
+
for (const kind of r.incomplete)
|
|
219
|
+
markIncomplete(kind, r.file);
|
|
220
|
+
oracleShortfalls.push(...r.shortfalls);
|
|
221
|
+
}
|
|
222
|
+
// Corpus-level Tailwind theme tokens (Spec 68 §3.2): the legacy pipeline
|
|
223
|
+
// stores these in `style_tokens` alongside the per-file CSS custom properties
|
|
224
|
+
// during index sync. The phase fact has no index, so merge them here as a
|
|
225
|
+
// synthetic declaration-free fragment. `tokensToStyleTokens` on a project with
|
|
226
|
+
// no Tailwind config yields `filePath: 'built-in defaults'`, which
|
|
227
|
+
// `buildTokenValueMap` / `buildDeclaredScale` both exclude — so the merge is a
|
|
228
|
+
// no-op for plain-CSS projects and load-bearing only when a real config
|
|
229
|
+
// declares a color/spacing/font-size scale.
|
|
230
|
+
if (projectRoot && needed.has('style-declarations')) {
|
|
231
|
+
const twTokens = tokensToStyleTokens(loadTailwindConfig(projectRoot), projectRoot);
|
|
232
|
+
if (twTokens.length > 0) {
|
|
233
|
+
const acc = facts.get('style-declarations') ?? [];
|
|
234
|
+
acc.push({ declarations: [], tokens: twTokens, classUsage: [], unreadSources: [] });
|
|
235
|
+
facts.set('style-declarations', acc);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// Spec 70 2b — the dry-pair seed write: after the file facts are merged (the
|
|
239
|
+
// `code-block` fact is complete) but before the corpus facts reduce (so
|
|
240
|
+
// `clone-pair-history` reads the freshly-written `dry_pair_history` rows, the
|
|
241
|
+
// same write-before-read ordering `persistDryPairs`-then-`runPhaseModel` had).
|
|
242
|
+
await infra?.persistDryPairHistory?.(facts);
|
|
243
|
+
// Corpus facts, reduced from upstream facts (single shallow level today).
|
|
244
|
+
const corpusKinds = [...needed].filter((k) => Object.prototype.hasOwnProperty.call(CORPUS_PRODUCERS, k));
|
|
245
|
+
// Shared `identifyHandle` verdict cache (Spec 70) — one map per `buildFacts`
|
|
246
|
+
// pass, threaded through `corpusCtx` to the four receiver consumers and reused
|
|
247
|
+
// by the post-loop classifiers below. The verdict is a pure function of
|
|
248
|
+
// (file, handle identity) within a single pass, so a cache hit is byte-identical
|
|
249
|
+
// to a re-fold; it just avoids folding `data-access-calls-candidates` twice
|
|
250
|
+
// (once in `data-access-calls`, once in the cannot-fire reduction).
|
|
251
|
+
const handleVerdictCache = new Map();
|
|
252
|
+
// Spec 70 criterion 9 (Item 4) — the ambient interface-field map (global script
|
|
253
|
+
// interfaces) is computed once here, where the import/export facts are present,
|
|
254
|
+
// and threaded through `corpusCtx` to the receiver consumers and the cannot-fire
|
|
255
|
+
// reduction below. This is what lets a Workers `env: Env` resolve `Env` from
|
|
256
|
+
// `worker-configuration.d.ts` (a global script) even though the handler file
|
|
257
|
+
// itself never declares the interface.
|
|
258
|
+
const ambientInterfaceFields = computeAmbientInterfaceFields(facts.get('within-file-provenance') ?? [], facts.get('import-specifiers') ?? [], facts.get('export-symbols') ?? []);
|
|
259
|
+
const corpusCtx = {
|
|
260
|
+
projectRoot: infra?.projectRoot,
|
|
261
|
+
corpusFiles: infra?.corpusFiles,
|
|
262
|
+
virtualModules: infra?.importVirtualModules,
|
|
263
|
+
tsconfigAliases: infra?.tsconfigAliases,
|
|
264
|
+
packageEntryPoints: infra?.packageEntryPoints,
|
|
265
|
+
indexHandle: infra?.indexHandle,
|
|
266
|
+
externalTables: infra?.externalTables,
|
|
267
|
+
sqlDialect: infra?.sqlDialect,
|
|
268
|
+
declaredTypePackages: infra?.declaredTypePackages,
|
|
269
|
+
ambientInterfaceFields,
|
|
270
|
+
handleVerdictCache,
|
|
271
|
+
};
|
|
272
|
+
// §5 DAG — topological sort. A corpus producer's `needs` may reference other
|
|
273
|
+
// corpus kinds (e.g. the four receiver consumers depend on `receiver-provenance`,
|
|
274
|
+
// which itself depends on file facts). File-fact needs are already satisfied by
|
|
275
|
+
// the per-file pass above; only the corpus→corpus edges require ordering, so the
|
|
276
|
+
// sort runs over `corpusKinds` alone (a `needs` entry naming a file fact is
|
|
277
|
+
// simply already present in `facts`). Kahn's algorithm; a cycle falls back to
|
|
278
|
+
// the unsorted order rather than looping (no cycle exists in the declared DAG).
|
|
279
|
+
const sortedCorpusKinds = topoSortCorpusKinds(corpusKinds);
|
|
280
|
+
for (const kind of sortedCorpusKinds) {
|
|
281
|
+
const producer = CORPUS_PRODUCERS[kind];
|
|
282
|
+
const upstream = Object.fromEntries(producer.needs.map((n) => [n, facts.get(n)]));
|
|
283
|
+
facts.set(kind, withRuleTiming(`producer:${producer.id}`, () => producer.process(upstream, corpusCtx)));
|
|
284
|
+
}
|
|
285
|
+
// Spec 70 — merge the traverse phase's walk-level unread reasons ahead of the
|
|
286
|
+
// corpus producer's fact-derived content-level reasons (`<style lang>`). The
|
|
287
|
+
// walk-level half is the traverse's own read/dialect record; the content-level
|
|
288
|
+
// half is what the `unread-style-sources` producer flattens from the markup
|
|
289
|
+
// `style-declarations` fact (`extractStylesMarkup` collects it during its
|
|
290
|
+
// `extractDeclarations` pass — no `style_unread_sources` table re-read).
|
|
291
|
+
if (needed.has('unread-style-sources')) {
|
|
292
|
+
const content = facts.get('unread-style-sources') ?? [];
|
|
293
|
+
facts.set('unread-style-sources', [...unread, ...content]);
|
|
294
|
+
}
|
|
295
|
+
const coverage = deriveCoverageDiagnostics(facts, infra, handleVerdictCache, ambientInterfaceFields);
|
|
296
|
+
return {
|
|
297
|
+
facts,
|
|
298
|
+
incompleteFacts,
|
|
299
|
+
oracleShortfalls,
|
|
300
|
+
unprovenQueryReceivers: coverage.unprovenQueryReceivers,
|
|
301
|
+
unresolvedImports: coverage.unresolvedImports,
|
|
302
|
+
unresolvedQuerySites: coverage.unresolvedQuerySites,
|
|
303
|
+
unparseableSql: coverage.unparseableSql,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Spec 70 2c — the fifth receiver consumer (a plain reduction, not a registry
|
|
308
|
+
* fact kind): re-derive the coverage diagnostics from the raw facts + the
|
|
309
|
+
* `receiver-provenance` fixed point. All four halves exist only to feed the
|
|
310
|
+
* `cannot-fire` coverage diagnostic (re-homed in the caller), never a rule's
|
|
311
|
+
* declared facts.
|
|
312
|
+
*/
|
|
313
|
+
function deriveCoverageDiagnostics(facts, infra, handleVerdictCache, ambientInterfaceFields) {
|
|
314
|
+
let unprovenQueryReceivers = [];
|
|
315
|
+
let unresolvedImports = [];
|
|
316
|
+
let unresolvedQuerySites = [];
|
|
317
|
+
let unparseableSql = [];
|
|
318
|
+
const receiverProvenanceFact = facts.get('receiver-provenance');
|
|
319
|
+
if (!receiverProvenanceFact) {
|
|
320
|
+
return { unprovenQueryReceivers, unresolvedImports, unresolvedQuerySites, unparseableSql };
|
|
321
|
+
}
|
|
322
|
+
unresolvedImports = [...receiverProvenanceFact.unresolvedImports];
|
|
323
|
+
// The shared resolution tail the three corpus reductions below rehydrate from.
|
|
324
|
+
const resolutionBase = {
|
|
325
|
+
withinFacts: facts.get('within-file-provenance') ?? [],
|
|
326
|
+
provenance: receiverProvenanceFact,
|
|
327
|
+
activityFacts: facts.get('receiver-activity') ?? [],
|
|
328
|
+
sqlDialect: infra?.sqlDialect ?? null,
|
|
329
|
+
declaredTypePackages: infra?.declaredTypePackages,
|
|
330
|
+
ambientInterfaceFields,
|
|
331
|
+
projectRoot: infra?.projectRoot,
|
|
332
|
+
tsconfig: infra?.tsconfigAliases,
|
|
333
|
+
};
|
|
334
|
+
unprovenQueryReceivers = classifyUnprovenQueryReceivers(facts.get('data-access-calls-candidates') ?? [], { ...resolutionBase, verdictCache: handleVerdictCache });
|
|
335
|
+
// Spec 70 1b — the `unresolved-query` half (a third coverage signal, alongside
|
|
336
|
+
// the two above): re-derive the re-admitted unresolvable-SQL DB-calls from the
|
|
337
|
+
// raw `schema-usage-candidates` fact + the provenance fixed point. Only runs
|
|
338
|
+
// when `schema-usage` was needed (its raw fact is present); otherwise empty.
|
|
339
|
+
const schemaUsageCandidates = facts.get('schema-usage-candidates');
|
|
340
|
+
if (schemaUsageCandidates) {
|
|
341
|
+
unresolvedQuerySites = classifyUnresolvedQuerySites(schemaUsageCandidates, resolutionBase);
|
|
342
|
+
// Spec 70 R2 — the `unparseable` half (the `unresolved-query` sibling):
|
|
343
|
+
// re-derive the re-admitted static-SQL arguments the named dialect could not
|
|
344
|
+
// parse, from the same raw fact + fixed point. Threads `sqlDialectReason` so
|
|
345
|
+
// a dialect-undetermined corpus reports the legacy `why`, not the generic
|
|
346
|
+
// fallback string.
|
|
347
|
+
unparseableSql = classifyUnparseableSql(schemaUsageCandidates, {
|
|
348
|
+
...resolutionBase,
|
|
349
|
+
sqlDialectReason: infra?.sqlDialectReason ?? null,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
return { unprovenQueryReceivers, unresolvedImports, unresolvedQuerySites, unparseableSql };
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* §5 DAG — topological sort over the corpus kinds requested, so a corpus producer
|
|
356
|
+
* whose `needs` names another corpus kind runs after it. A `needs` entry naming a
|
|
357
|
+
* file fact is ignored here (file facts are already in `facts` by the time corpus
|
|
358
|
+
* producers run). Kahn's algorithm keyed on the `CORPUS_PRODUCERS[].needs` edges;
|
|
359
|
+
* the result preserves the input order among independent kinds (the determinism
|
|
360
|
+
* anchor), and a cycle (none exists in the declared DAG) falls back to the input
|
|
361
|
+
* order rather than looping forever.
|
|
362
|
+
*/
|
|
363
|
+
function topoSortCorpusKinds(kinds) {
|
|
364
|
+
const corpusSet = new Set(kinds);
|
|
365
|
+
const inDegree = new Map();
|
|
366
|
+
const dependents = new Map();
|
|
367
|
+
for (const kind of kinds)
|
|
368
|
+
inDegree.set(kind, 0);
|
|
369
|
+
for (const kind of kinds) {
|
|
370
|
+
for (const need of CORPUS_PRODUCERS[kind].needs) {
|
|
371
|
+
if (!corpusSet.has(need))
|
|
372
|
+
continue; // file fact — already satisfied.
|
|
373
|
+
inDegree.set(kind, (inDegree.get(kind) ?? 0) + 1);
|
|
374
|
+
const list = dependents.get(need) ?? [];
|
|
375
|
+
list.push(kind);
|
|
376
|
+
dependents.set(need, list);
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
// Seed the queue with the zero-in-degree kinds in input order (stability).
|
|
380
|
+
const queue = kinds.filter((k) => (inDegree.get(k) ?? 0) === 0);
|
|
381
|
+
const sorted = [];
|
|
382
|
+
while (queue.length > 0) {
|
|
383
|
+
const kind = queue.shift();
|
|
384
|
+
sorted.push(kind);
|
|
385
|
+
for (const dep of dependents.get(kind) ?? []) {
|
|
386
|
+
const next = (inDegree.get(dep) ?? 1) - 1;
|
|
387
|
+
inDegree.set(dep, next);
|
|
388
|
+
if (next === 0)
|
|
389
|
+
queue.push(dep);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
// A cycle leaves some kinds unsorted; fall back to the input order for them.
|
|
393
|
+
if (sorted.length !== kinds.length)
|
|
394
|
+
return [...kinds];
|
|
395
|
+
return sorted;
|
|
396
|
+
}
|
|
397
|
+
/** §6.5 — bounded work queue: run `fn` over `items` with at most `limit` in
|
|
398
|
+
* flight, returning results in input order. With `limit === 1` this is exactly
|
|
399
|
+
* a serial loop; with `limit > 1` the queue never holds more than `limit`
|
|
400
|
+
* in-flight tasks, so a huge repository does not materialize a wall of
|
|
401
|
+
* concurrent parses. Input order is preserved in the result array, so the
|
|
402
|
+
* caller's file-sorted merge is the single determinism anchor. */
|
|
403
|
+
async function mapWithConcurrency(items, fn, limit) {
|
|
404
|
+
const results = new Array(items.length);
|
|
405
|
+
let next = 0;
|
|
406
|
+
const workers = Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
407
|
+
while (next < items.length) {
|
|
408
|
+
const i = next++;
|
|
409
|
+
results[i] = await fn(items[i]);
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
await Promise.all(workers);
|
|
413
|
+
return results;
|
|
414
|
+
}
|
|
415
|
+
/** §6.1 — one task per file: parse once, run every matching per-(kind, format)
|
|
416
|
+
* producer, free the tree, and return the file's fact fragments plus its
|
|
417
|
+
* incomplete (kind) list. The tree never leaves this function (Fact 8), and a
|
|
418
|
+
* parse failure or throwing producer is scoped to this file — the parent
|
|
419
|
+
* records `incomplete` rather than aborting (§3.3). */
|
|
420
|
+
async function processFile(input, fileKinds, projectRoot, infra) {
|
|
421
|
+
let parsed = await parseOne(input, projectRoot);
|
|
422
|
+
// Spec 70 R1 — attach the corpus dialect to the parsed file so the
|
|
423
|
+
// data-access producer's SQL facts parse rather than regex.
|
|
424
|
+
if (parsed && infra?.sqlDialect) {
|
|
425
|
+
parsed = { ...parsed, sqlDialect: infra.sqlDialect };
|
|
426
|
+
}
|
|
427
|
+
const fragments = new Map();
|
|
428
|
+
const incomplete = [];
|
|
429
|
+
const shortfalls = [];
|
|
430
|
+
if (!parsed) {
|
|
431
|
+
const format = formatFor(input.path);
|
|
432
|
+
for (const kind of fileKinds) {
|
|
433
|
+
if (fileProducerFor(kind, format))
|
|
434
|
+
incomplete.push(kind);
|
|
435
|
+
}
|
|
436
|
+
return { file: input.path, fragments, incomplete, shortfalls };
|
|
437
|
+
}
|
|
438
|
+
try {
|
|
439
|
+
for (const kind of fileKinds) {
|
|
440
|
+
const producer = fileProducerFor(kind, parsed.format);
|
|
441
|
+
if (!producer)
|
|
442
|
+
continue;
|
|
443
|
+
try {
|
|
444
|
+
await infra?.beforeProcess?.(kind, input.path);
|
|
445
|
+
// Spec 38 R2 — per-producer timing on the phase path. The legacy
|
|
446
|
+
// `withRuleTiming` only wrapped the `Universal*Analyzer` visitors, so
|
|
447
|
+
// after the migration the gate's per-rule breakdown reported rule cost
|
|
448
|
+
// (~20 ms) against a ~320 ms gate with the producer cost invisible.
|
|
449
|
+
// Timing each producer's `process` under `producer:<id>` surfaces the
|
|
450
|
+
// fact-build cost in the same slowest-first breakdown as the rules.
|
|
451
|
+
const emitted = withRuleTiming(`producer:${producer.id}`, () => producer.process(parsed));
|
|
452
|
+
const acc = fragments.get(kind) ?? [];
|
|
453
|
+
acc.push(...emitted);
|
|
454
|
+
fragments.set(kind, acc);
|
|
455
|
+
const sf = oracleShortfall(producer.oracle, parsed, emitted, producer.id);
|
|
456
|
+
if (sf)
|
|
457
|
+
shortfalls.push(sf);
|
|
458
|
+
}
|
|
459
|
+
catch {
|
|
460
|
+
incomplete.push(kind);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
finally {
|
|
465
|
+
parsed.ast?.dispose?.();
|
|
466
|
+
}
|
|
467
|
+
return { file: input.path, fragments, incomplete, shortfalls };
|
|
468
|
+
}
|
|
469
|
+
/** Analyze: run every active migrated rule against exactly its declared facts.
|
|
470
|
+
* `beforeAnalyze` fires once before the first rule, after `buildFacts` has
|
|
471
|
+
* completed for every file and every processor level — the §16.5 ordering
|
|
472
|
+
* observation point. */
|
|
473
|
+
async function analyzeAll(facts, thresholdsByRule, infra) {
|
|
474
|
+
await infra?.beforeAnalyze?.();
|
|
475
|
+
const findings = [];
|
|
476
|
+
for (const rule of activeRules(infra?.enabledRules)) {
|
|
477
|
+
const ruleFacts = Object.fromEntries(rule.needs.facts.map((f) => [f, facts.get(f)]));
|
|
478
|
+
const ctx = {
|
|
479
|
+
facts: ruleFacts,
|
|
480
|
+
formats: rule.needs.formats,
|
|
481
|
+
thresholds: thresholdsByRule.get(rule.id) ?? {},
|
|
482
|
+
};
|
|
483
|
+
// Spec 38 R2 — per-rule timing on the phase path (the legacy `withRuleTiming`
|
|
484
|
+
// wrappers no longer run for migrated rules). Records the full async analyze
|
|
485
|
+
// under the rule's ID so the gate's per-rule breakdown reports the dominant
|
|
486
|
+
// rule again, not `(no rules recorded)`.
|
|
487
|
+
findings.push(...await withRuleTimingAsync(rule.id, () => rule.analyze(ctx)));
|
|
488
|
+
}
|
|
489
|
+
return findings;
|
|
490
|
+
}
|
|
491
|
+
//# sourceMappingURL=phaseModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phaseModel.js","sourceRoot":"","sources":["../../src/phase/phaseModel.ts"],"names":[],"mappings":"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"}
|