@vibecheckai/cli 2.5.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/LICENSE +21 -0
- package/README.md +532 -0
- package/dist/autopatch/verified-autopatch.d.ts +111 -0
- package/dist/autopatch/verified-autopatch.d.ts.map +1 -0
- package/dist/autopatch/verified-autopatch.js +503 -0
- package/dist/autopatch/verified-autopatch.js.map +1 -0
- package/dist/bundles/guardrail-core.js +25799 -0
- package/dist/bundles/guardrail-security.js +208687 -0
- package/dist/bundles/guardrail-ship.js +2318 -0
- package/dist/bundles/index.js +8 -0
- package/dist/commands/autopilot-decision.d.ts +24 -0
- package/dist/commands/autopilot-decision.d.ts.map +1 -0
- package/dist/commands/autopilot-decision.js +304 -0
- package/dist/commands/autopilot-decision.js.map +1 -0
- package/dist/commands/autopilot.d.ts +33 -0
- package/dist/commands/autopilot.d.ts.map +1 -0
- package/dist/commands/autopilot.js +1539 -0
- package/dist/commands/autopilot.js.map +1 -0
- package/dist/commands/baseline.d.ts +7 -0
- package/dist/commands/baseline.d.ts.map +1 -0
- package/dist/commands/baseline.js +79 -0
- package/dist/commands/baseline.js.map +1 -0
- package/dist/commands/cache.d.ts +13 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +165 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/checkpoint.d.ts +8 -0
- package/dist/commands/checkpoint.d.ts.map +1 -0
- package/dist/commands/checkpoint.js +35 -0
- package/dist/commands/checkpoint.js.map +1 -0
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +340 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/debug.d.ts +78 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +381 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/doctor.d.ts +17 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +226 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/evidence.d.ts +45 -0
- package/dist/commands/evidence.d.ts.map +1 -0
- package/dist/commands/evidence.js +197 -0
- package/dist/commands/evidence.js.map +1 -0
- package/dist/commands/explain.d.ts +8 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +52 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/fix-consolidated.d.ts +19 -0
- package/dist/commands/fix-consolidated.d.ts.map +1 -0
- package/dist/commands/fix-consolidated.js +165 -0
- package/dist/commands/fix-consolidated.js.map +1 -0
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +125 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/launcher.d.ts +10 -0
- package/dist/commands/launcher.d.ts.map +1 -0
- package/dist/commands/launcher.js +174 -0
- package/dist/commands/launcher.js.map +1 -0
- package/dist/commands/on.d.ts +8 -0
- package/dist/commands/on.d.ts.map +1 -0
- package/dist/commands/on.js +123 -0
- package/dist/commands/on.js.map +1 -0
- package/dist/commands/preview.d.ts +54 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +352 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/quality/check.d.ts +31 -0
- package/dist/commands/quality/check.d.ts.map +1 -0
- package/dist/commands/quality/check.js +242 -0
- package/dist/commands/quality/check.js.map +1 -0
- package/dist/commands/quality/index.d.ts +8 -0
- package/dist/commands/quality/index.d.ts.map +1 -0
- package/dist/commands/quality/index.js +14 -0
- package/dist/commands/quality/index.js.map +1 -0
- package/dist/commands/quality/setup-quality.d.ts +23 -0
- package/dist/commands/quality/setup-quality.d.ts.map +1 -0
- package/dist/commands/quality/setup-quality.js +452 -0
- package/dist/commands/quality/setup-quality.js.map +1 -0
- package/dist/commands/quality/tidy.d.ts +41 -0
- package/dist/commands/quality/tidy.d.ts.map +1 -0
- package/dist/commands/quality/tidy.js +466 -0
- package/dist/commands/quality/tidy.js.map +1 -0
- package/dist/commands/quality/utils.d.ts +73 -0
- package/dist/commands/quality/utils.d.ts.map +1 -0
- package/dist/commands/quality/utils.js +158 -0
- package/dist/commands/quality/utils.js.map +1 -0
- package/dist/commands/replay.d.ts +8 -0
- package/dist/commands/replay.d.ts.map +1 -0
- package/dist/commands/replay.js +52 -0
- package/dist/commands/replay.js.map +1 -0
- package/dist/commands/scan-consolidated.d.ts +61 -0
- package/dist/commands/scan-consolidated.d.ts.map +1 -0
- package/dist/commands/scan-consolidated.js +243 -0
- package/dist/commands/scan-consolidated.js.map +1 -0
- package/dist/commands/scan-secrets.d.ts +47 -0
- package/dist/commands/scan-secrets.d.ts.map +1 -0
- package/dist/commands/scan-secrets.js +225 -0
- package/dist/commands/scan-secrets.js.map +1 -0
- package/dist/commands/scan-vulnerabilities-enhanced.d.ts +41 -0
- package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +1 -0
- package/dist/commands/scan-vulnerabilities-enhanced.js +368 -0
- package/dist/commands/scan-vulnerabilities-enhanced.js.map +1 -0
- package/dist/commands/scan-vulnerabilities-osv.d.ts +58 -0
- package/dist/commands/scan-vulnerabilities-osv.d.ts.map +1 -0
- package/dist/commands/scan-vulnerabilities-osv.js +716 -0
- package/dist/commands/scan-vulnerabilities-osv.js.map +1 -0
- package/dist/commands/scan-vulnerabilities.d.ts +32 -0
- package/dist/commands/scan-vulnerabilities.d.ts.map +1 -0
- package/dist/commands/scan-vulnerabilities.js +283 -0
- package/dist/commands/scan-vulnerabilities.js.map +1 -0
- package/dist/commands/secrets-allowlist.d.ts +7 -0
- package/dist/commands/secrets-allowlist.d.ts.map +1 -0
- package/dist/commands/secrets-allowlist.js +85 -0
- package/dist/commands/secrets-allowlist.js.map +1 -0
- package/dist/commands/ship-consolidated.d.ts +58 -0
- package/dist/commands/ship-consolidated.d.ts.map +1 -0
- package/dist/commands/ship-consolidated.js +515 -0
- package/dist/commands/ship-consolidated.js.map +1 -0
- package/dist/commands/stats.d.ts +8 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +134 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/upgrade.d.ts +8 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +30 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/fix/analytics.d.ts +121 -0
- package/dist/fix/analytics.d.ts.map +1 -0
- package/dist/fix/analytics.js +289 -0
- package/dist/fix/analytics.js.map +1 -0
- package/dist/fix/applicator.d.ts +44 -0
- package/dist/fix/applicator.d.ts.map +1 -0
- package/dist/fix/applicator.js +144 -0
- package/dist/fix/applicator.js.map +1 -0
- package/dist/fix/audit.d.ts +61 -0
- package/dist/fix/audit.d.ts.map +1 -0
- package/dist/fix/audit.js +149 -0
- package/dist/fix/audit.js.map +1 -0
- package/dist/fix/backup.d.ts +38 -0
- package/dist/fix/backup.d.ts.map +1 -0
- package/dist/fix/backup.js +154 -0
- package/dist/fix/backup.js.map +1 -0
- package/dist/fix/config.d.ts +78 -0
- package/dist/fix/config.d.ts.map +1 -0
- package/dist/fix/config.js +200 -0
- package/dist/fix/config.js.map +1 -0
- package/dist/fix/engine.d.ts +55 -0
- package/dist/fix/engine.d.ts.map +1 -0
- package/dist/fix/engine.js +285 -0
- package/dist/fix/engine.js.map +1 -0
- package/dist/fix/impact.d.ts +74 -0
- package/dist/fix/impact.d.ts.map +1 -0
- package/dist/fix/impact.js +281 -0
- package/dist/fix/impact.js.map +1 -0
- package/dist/fix/index.d.ts +5 -0
- package/dist/fix/index.d.ts.map +1 -0
- package/dist/fix/index.js +12 -0
- package/dist/fix/index.js.map +1 -0
- package/dist/fix/interactive.d.ts +22 -0
- package/dist/fix/interactive.d.ts.map +1 -0
- package/dist/fix/interactive.js +172 -0
- package/dist/fix/interactive.js.map +1 -0
- package/dist/fix/learning.d.ts +109 -0
- package/dist/fix/learning.d.ts.map +1 -0
- package/dist/fix/learning.js +296 -0
- package/dist/fix/learning.js.map +1 -0
- package/dist/fix/metrics.d.ts +106 -0
- package/dist/fix/metrics.d.ts.map +1 -0
- package/dist/fix/metrics.js +138 -0
- package/dist/fix/metrics.js.map +1 -0
- package/dist/fix/parallel.d.ts +69 -0
- package/dist/fix/parallel.d.ts.map +1 -0
- package/dist/fix/parallel.js +203 -0
- package/dist/fix/parallel.js.map +1 -0
- package/dist/fix/report.d.ts +40 -0
- package/dist/fix/report.d.ts.map +1 -0
- package/dist/fix/report.js +212 -0
- package/dist/fix/report.js.map +1 -0
- package/dist/fix/strategy.d.ts +53 -0
- package/dist/fix/strategy.d.ts.map +1 -0
- package/dist/fix/strategy.js +143 -0
- package/dist/fix/strategy.js.map +1 -0
- package/dist/fix/templates.d.ts +58 -0
- package/dist/fix/templates.d.ts.map +1 -0
- package/dist/fix/templates.js +259 -0
- package/dist/fix/templates.js.map +1 -0
- package/dist/fix/testing.d.ts +68 -0
- package/dist/fix/testing.d.ts.map +1 -0
- package/dist/fix/testing.js +245 -0
- package/dist/fix/testing.js.map +1 -0
- package/dist/fix/validation.d.ts +71 -0
- package/dist/fix/validation.d.ts.map +1 -0
- package/dist/fix/validation.js +267 -0
- package/dist/fix/validation.js.map +1 -0
- package/dist/fix/visualization.d.ts +73 -0
- package/dist/fix/visualization.d.ts.map +1 -0
- package/dist/fix/visualization.js +243 -0
- package/dist/fix/visualization.js.map +1 -0
- package/dist/formatters/index.d.ts +6 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +11 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/sarif-enhanced.d.ts +78 -0
- package/dist/formatters/sarif-enhanced.d.ts.map +1 -0
- package/dist/formatters/sarif-enhanced.js +144 -0
- package/dist/formatters/sarif-enhanced.js.map +1 -0
- package/dist/formatters/sarif-v2.d.ts +121 -0
- package/dist/formatters/sarif-v2.d.ts.map +1 -0
- package/dist/formatters/sarif-v2.js +356 -0
- package/dist/formatters/sarif-v2.js.map +1 -0
- package/dist/formatters/sarif.d.ts +72 -0
- package/dist/formatters/sarif.d.ts.map +1 -0
- package/dist/formatters/sarif.js +146 -0
- package/dist/formatters/sarif.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4455 -0
- package/dist/index.js.map +1 -0
- package/dist/init/ci-generator.d.ts +18 -0
- package/dist/init/ci-generator.d.ts.map +1 -0
- package/dist/init/ci-generator.js +317 -0
- package/dist/init/ci-generator.js.map +1 -0
- package/dist/init/detect-framework.d.ts +15 -0
- package/dist/init/detect-framework.d.ts.map +1 -0
- package/dist/init/detect-framework.js +301 -0
- package/dist/init/detect-framework.js.map +1 -0
- package/dist/init/hooks-installer.d.ts +22 -0
- package/dist/init/hooks-installer.d.ts.map +1 -0
- package/dist/init/hooks-installer.js +310 -0
- package/dist/init/hooks-installer.js.map +1 -0
- package/dist/init/index.d.ts +8 -0
- package/dist/init/index.d.ts.map +1 -0
- package/dist/init/index.js +22 -0
- package/dist/init/index.js.map +1 -0
- package/dist/init/templates.d.ts +401 -0
- package/dist/init/templates.d.ts.map +1 -0
- package/dist/init/templates.js +240 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +42 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/telemetry.d.ts +40 -0
- package/dist/mcp/telemetry.d.ts.map +1 -0
- package/dist/mcp/telemetry.js +98 -0
- package/dist/mcp/telemetry.js.map +1 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts +32 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.d.ts.map +1 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.js +236 -0
- package/dist/reality/no-dead-buttons/button-sweep-generator.js.map +1 -0
- package/dist/reality/no-dead-buttons/index.d.ts +11 -0
- package/dist/reality/no-dead-buttons/index.d.ts.map +1 -0
- package/dist/reality/no-dead-buttons/index.js +18 -0
- package/dist/reality/no-dead-buttons/index.js.map +1 -0
- package/dist/reality/no-dead-buttons/static-scanner.d.ts +34 -0
- package/dist/reality/no-dead-buttons/static-scanner.d.ts.map +1 -0
- package/dist/reality/no-dead-buttons/static-scanner.js +230 -0
- package/dist/reality/no-dead-buttons/static-scanner.js.map +1 -0
- package/dist/reality/reality-graph.d.ts +192 -0
- package/dist/reality/reality-graph.d.ts.map +1 -0
- package/dist/reality/reality-graph.js +600 -0
- package/dist/reality/reality-graph.js.map +1 -0
- package/dist/reality/reality-runner.d.ts +89 -0
- package/dist/reality/reality-runner.d.ts.map +1 -0
- package/dist/reality/reality-runner.js +540 -0
- package/dist/reality/reality-runner.js.map +1 -0
- package/dist/reality/receipt-generator.d.ts +152 -0
- package/dist/reality/receipt-generator.d.ts.map +1 -0
- package/dist/reality/receipt-generator.js +495 -0
- package/dist/reality/receipt-generator.js.map +1 -0
- package/dist/reality/runtime-tracer.d.ts +75 -0
- package/dist/reality/runtime-tracer.d.ts.map +1 -0
- package/dist/reality/runtime-tracer.js +109 -0
- package/dist/reality/runtime-tracer.js.map +1 -0
- package/dist/runtime/auth-utils.d.ts +43 -0
- package/dist/runtime/auth-utils.d.ts.map +1 -0
- package/dist/runtime/auth-utils.js +130 -0
- package/dist/runtime/auth-utils.js.map +1 -0
- package/dist/runtime/cli-errors.d.ts +38 -0
- package/dist/runtime/cli-errors.d.ts.map +1 -0
- package/dist/runtime/cli-errors.js +354 -0
- package/dist/runtime/cli-errors.js.map +1 -0
- package/dist/runtime/client.d.ts +74 -0
- package/dist/runtime/client.d.ts.map +1 -0
- package/dist/runtime/client.js +222 -0
- package/dist/runtime/client.js.map +1 -0
- package/dist/runtime/creds.d.ts +48 -0
- package/dist/runtime/creds.d.ts.map +1 -0
- package/dist/runtime/creds.js +245 -0
- package/dist/runtime/creds.js.map +1 -0
- package/dist/runtime/exit-codes.d.ts +49 -0
- package/dist/runtime/exit-codes.d.ts.map +1 -0
- package/dist/runtime/exit-codes.js +93 -0
- package/dist/runtime/exit-codes.js.map +1 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +25 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/json-output.d.ts +42 -0
- package/dist/runtime/json-output.d.ts.map +1 -0
- package/dist/runtime/json-output.js +59 -0
- package/dist/runtime/json-output.js.map +1 -0
- package/dist/runtime/owner-mode.d.ts +48 -0
- package/dist/runtime/owner-mode.d.ts.map +1 -0
- package/dist/runtime/owner-mode.js +284 -0
- package/dist/runtime/owner-mode.js.map +1 -0
- package/dist/runtime/semver.d.ts +37 -0
- package/dist/runtime/semver.d.ts.map +1 -0
- package/dist/runtime/semver.js +110 -0
- package/dist/runtime/semver.js.map +1 -0
- package/dist/scan/dead-ui-detector.d.ts +48 -0
- package/dist/scan/dead-ui-detector.d.ts.map +1 -0
- package/dist/scan/dead-ui-detector.js +170 -0
- package/dist/scan/dead-ui-detector.js.map +1 -0
- package/dist/scan/playwright-sweep.d.ts +40 -0
- package/dist/scan/playwright-sweep.d.ts.map +1 -0
- package/dist/scan/playwright-sweep.js +216 -0
- package/dist/scan/playwright-sweep.js.map +1 -0
- package/dist/scan/proof-bundle.d.ts +25 -0
- package/dist/scan/proof-bundle.d.ts.map +1 -0
- package/dist/scan/proof-bundle.js +203 -0
- package/dist/scan/proof-bundle.js.map +1 -0
- package/dist/scan/proof-graph.d.ts +59 -0
- package/dist/scan/proof-graph.d.ts.map +1 -0
- package/dist/scan/proof-graph.js +64 -0
- package/dist/scan/proof-graph.js.map +1 -0
- package/dist/scan/reality-sniff.d.ts +56 -0
- package/dist/scan/reality-sniff.d.ts.map +1 -0
- package/dist/scan/reality-sniff.js +200 -0
- package/dist/scan/reality-sniff.js.map +1 -0
- package/dist/scan/structural-verifier.d.ts +20 -0
- package/dist/scan/structural-verifier.d.ts.map +1 -0
- package/dist/scan/structural-verifier.js +112 -0
- package/dist/scan/structural-verifier.js.map +1 -0
- package/dist/scan/verification-engine.d.ts +47 -0
- package/dist/scan/verification-engine.d.ts.map +1 -0
- package/dist/scan/verification-engine.js +141 -0
- package/dist/scan/verification-engine.js.map +1 -0
- package/dist/scanner/baseline.d.ts +52 -0
- package/dist/scanner/baseline.d.ts.map +1 -0
- package/dist/scanner/baseline.js +85 -0
- package/dist/scanner/baseline.js.map +1 -0
- package/dist/scanner/incremental.d.ts +30 -0
- package/dist/scanner/incremental.d.ts.map +1 -0
- package/dist/scanner/incremental.js +82 -0
- package/dist/scanner/incremental.js.map +1 -0
- package/dist/scanner/index.d.ts +8 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +15 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/parallel.d.ts +43 -0
- package/dist/scanner/parallel.d.ts.map +1 -0
- package/dist/scanner/parallel.js +99 -0
- package/dist/scanner/parallel.js.map +1 -0
- package/dist/scanner/placeholder-detector.d.ts +56 -0
- package/dist/scanner/placeholder-detector.d.ts.map +1 -0
- package/dist/scanner/placeholder-detector.js +220 -0
- package/dist/scanner/placeholder-detector.js.map +1 -0
- package/dist/scanner/route-detector.d.ts +100 -0
- package/dist/scanner/route-detector.d.ts.map +1 -0
- package/dist/scanner/route-detector.js +455 -0
- package/dist/scanner/route-detector.js.map +1 -0
- package/dist/scanner/scoring.d.ts +67 -0
- package/dist/scanner/scoring.d.ts.map +1 -0
- package/dist/scanner/scoring.js +284 -0
- package/dist/scanner/scoring.js.map +1 -0
- package/dist/ship-baseline.d.ts +56 -0
- package/dist/ship-baseline.d.ts.map +1 -0
- package/dist/ship-baseline.js +194 -0
- package/dist/ship-baseline.js.map +1 -0
- package/dist/ship-config.d.ts +91 -0
- package/dist/ship-config.d.ts.map +1 -0
- package/dist/ship-config.js +133 -0
- package/dist/ship-config.js.map +1 -0
- package/dist/ship-data-loader.d.ts +70 -0
- package/dist/ship-data-loader.d.ts.map +1 -0
- package/dist/ship-data-loader.js +301 -0
- package/dist/ship-data-loader.js.map +1 -0
- package/dist/standalone.d.ts +1 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +1 -0
- package/dist/standalone.js.map +1 -0
- package/dist/truth-pack/index.d.ts +102 -0
- package/dist/truth-pack/index.d.ts.map +1 -0
- package/dist/truth-pack/index.js +694 -0
- package/dist/truth-pack/index.js.map +1 -0
- package/dist/ui/frame.d.ts +68 -0
- package/dist/ui/frame.d.ts.map +1 -0
- package/dist/ui/frame.js +165 -0
- package/dist/ui/frame.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +16 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui.d.ts +36 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +45 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils/ai-helpers.d.ts +72 -0
- package/dist/utils/ai-helpers.d.ts.map +1 -0
- package/dist/utils/ai-helpers.js +339 -0
- package/dist/utils/ai-helpers.js.map +1 -0
- package/dist/utils/validation.d.ts +34 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +160 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/fix/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parallel Fix Application
|
|
3
|
+
*
|
|
4
|
+
* Applies fixes in parallel with safety checks and conflict detection.
|
|
5
|
+
* Optimizes performance for large codebases while maintaining safety.
|
|
6
|
+
*/
|
|
7
|
+
import { FixPack, Fix } from './engine';
|
|
8
|
+
export interface ParallelApplyOptions {
|
|
9
|
+
maxConcurrent: number;
|
|
10
|
+
batchSize: number;
|
|
11
|
+
safetyChecks: boolean;
|
|
12
|
+
onProgress?: (completed: number, total: number) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface ParallelApplyResult {
|
|
15
|
+
success: boolean;
|
|
16
|
+
appliedFixes: number;
|
|
17
|
+
failedFixes: number;
|
|
18
|
+
errors: Array<{
|
|
19
|
+
fix: Fix;
|
|
20
|
+
error: string;
|
|
21
|
+
errorCode?: string;
|
|
22
|
+
recoverySuggestion?: string;
|
|
23
|
+
}>;
|
|
24
|
+
filesChanged: string[];
|
|
25
|
+
warnings: Array<{
|
|
26
|
+
fix: Fix;
|
|
27
|
+
warning: string;
|
|
28
|
+
}>;
|
|
29
|
+
conflicts: Array<{
|
|
30
|
+
fix1: Fix;
|
|
31
|
+
fix2: Fix;
|
|
32
|
+
reason: string;
|
|
33
|
+
}>;
|
|
34
|
+
performance: {
|
|
35
|
+
totalDuration: number;
|
|
36
|
+
averageFixDuration: number;
|
|
37
|
+
parallelEfficiency: number;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export declare class ParallelFixApplicator {
|
|
41
|
+
private applicator;
|
|
42
|
+
private projectPath;
|
|
43
|
+
constructor(projectPath: string);
|
|
44
|
+
/**
|
|
45
|
+
* Apply fixes in parallel with safety checks
|
|
46
|
+
*/
|
|
47
|
+
applyParallel(packs: FixPack[], options: ParallelApplyOptions): Promise<ParallelApplyResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Group fixes by file
|
|
50
|
+
*/
|
|
51
|
+
private groupFixesByFile;
|
|
52
|
+
/**
|
|
53
|
+
* Apply fixes in batches
|
|
54
|
+
*/
|
|
55
|
+
private applyBatches;
|
|
56
|
+
/**
|
|
57
|
+
* Apply fixes sequentially (for conflicts)
|
|
58
|
+
*/
|
|
59
|
+
private applySequentially;
|
|
60
|
+
/**
|
|
61
|
+
* Detect conflicts between fixes
|
|
62
|
+
*/
|
|
63
|
+
private detectConflicts;
|
|
64
|
+
/**
|
|
65
|
+
* Merge multiple apply results
|
|
66
|
+
*/
|
|
67
|
+
private mergeResults;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=parallel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../src/fix/parallel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAIxC,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QACZ,GAAG,EAAE,GAAG,CAAC;QACT,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,WAAW,EAAE;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACG,aAAa,CACjB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC;IAuC/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;YACW,YAAY;IA+C1B;;OAEG;YACW,iBAAiB;IA6B/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsCvB;;OAEG;IACH,OAAO,CAAC,YAAY;CA2DrB"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Parallel Fix Application
|
|
4
|
+
*
|
|
5
|
+
* Applies fixes in parallel with safety checks and conflict detection.
|
|
6
|
+
* Optimizes performance for large codebases while maintaining safety.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ParallelFixApplicator = void 0;
|
|
10
|
+
const applicator_1 = require("./applicator");
|
|
11
|
+
class ParallelFixApplicator {
|
|
12
|
+
constructor(projectPath) {
|
|
13
|
+
this.projectPath = projectPath;
|
|
14
|
+
this.applicator = new applicator_1.FixApplicator(projectPath);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Apply fixes in parallel with safety checks
|
|
18
|
+
*/
|
|
19
|
+
async applyParallel(packs, options) {
|
|
20
|
+
const startTime = Date.now();
|
|
21
|
+
const allFixes = packs.flatMap((p) => p.fixes);
|
|
22
|
+
const conflicts = this.detectConflicts(allFixes);
|
|
23
|
+
// Remove conflicting fixes from parallel application
|
|
24
|
+
const conflictFixIds = new Set(conflicts.flatMap((c) => [c.fix1.findingId, c.fix2.findingId]));
|
|
25
|
+
const safeFixes = allFixes.filter((f) => !conflictFixIds.has(f.findingId));
|
|
26
|
+
const conflictingFixes = allFixes.filter((f) => conflictFixIds.has(f.findingId));
|
|
27
|
+
// Group fixes by file for batch processing
|
|
28
|
+
const fixesByFile = this.groupFixesByFile(safeFixes);
|
|
29
|
+
// Apply fixes in parallel batches
|
|
30
|
+
const results = await this.applyBatches(fixesByFile, options);
|
|
31
|
+
// Apply conflicting fixes sequentially
|
|
32
|
+
const conflictResults = await this.applySequentially(conflictingFixes);
|
|
33
|
+
// Merge results
|
|
34
|
+
const mergedResult = this.mergeResults(results, conflictResults, conflicts, startTime);
|
|
35
|
+
if (options.onProgress) {
|
|
36
|
+
options.onProgress(allFixes.length, allFixes.length);
|
|
37
|
+
}
|
|
38
|
+
return mergedResult;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Group fixes by file
|
|
42
|
+
*/
|
|
43
|
+
groupFixesByFile(fixes) {
|
|
44
|
+
const grouped = new Map();
|
|
45
|
+
for (const fix of fixes) {
|
|
46
|
+
if (!grouped.has(fix.file)) {
|
|
47
|
+
grouped.set(fix.file, []);
|
|
48
|
+
}
|
|
49
|
+
grouped.get(fix.file).push(fix);
|
|
50
|
+
}
|
|
51
|
+
return grouped;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Apply fixes in batches
|
|
55
|
+
*/
|
|
56
|
+
async applyBatches(fixesByFile, options) {
|
|
57
|
+
const files = Array.from(fixesByFile.keys());
|
|
58
|
+
const batches = [];
|
|
59
|
+
// Create batches
|
|
60
|
+
for (let i = 0; i < files.length; i += options.batchSize) {
|
|
61
|
+
batches.push(files.slice(i, i + options.batchSize));
|
|
62
|
+
}
|
|
63
|
+
const results = [];
|
|
64
|
+
// Process batches with concurrency limit
|
|
65
|
+
for (const batch of batches) {
|
|
66
|
+
const batchPromises = batch.map((file) => {
|
|
67
|
+
const fixes = fixesByFile.get(file);
|
|
68
|
+
// Create a temporary pack for this file's fixes
|
|
69
|
+
const tempPack = {
|
|
70
|
+
id: `temp-${file}`,
|
|
71
|
+
category: 'quality',
|
|
72
|
+
name: `Fixes for ${file}`,
|
|
73
|
+
description: '',
|
|
74
|
+
findings: [],
|
|
75
|
+
fixes,
|
|
76
|
+
estimatedRisk: 'low',
|
|
77
|
+
impactedFiles: [file],
|
|
78
|
+
priority: 0,
|
|
79
|
+
confidence: 0.8,
|
|
80
|
+
};
|
|
81
|
+
return this.applicator.applyPacks([tempPack]);
|
|
82
|
+
});
|
|
83
|
+
// Limit concurrency
|
|
84
|
+
const concurrentBatch = [];
|
|
85
|
+
for (let i = 0; i < batchPromises.length; i += options.maxConcurrent) {
|
|
86
|
+
const chunk = batchPromises.slice(i, i + options.maxConcurrent);
|
|
87
|
+
concurrentBatch.push(...(await Promise.all(chunk)));
|
|
88
|
+
}
|
|
89
|
+
results.push(...concurrentBatch);
|
|
90
|
+
}
|
|
91
|
+
return results;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Apply fixes sequentially (for conflicts)
|
|
95
|
+
*/
|
|
96
|
+
async applySequentially(fixes) {
|
|
97
|
+
if (fixes.length === 0) {
|
|
98
|
+
return {
|
|
99
|
+
success: true,
|
|
100
|
+
appliedFixes: 0,
|
|
101
|
+
failedFixes: 0,
|
|
102
|
+
errors: [],
|
|
103
|
+
filesChanged: [],
|
|
104
|
+
warnings: [],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// Create temporary pack
|
|
108
|
+
const tempPack = {
|
|
109
|
+
id: 'conflict-fixes',
|
|
110
|
+
category: 'quality',
|
|
111
|
+
name: 'Sequential conflict fixes',
|
|
112
|
+
description: '',
|
|
113
|
+
findings: [],
|
|
114
|
+
fixes,
|
|
115
|
+
estimatedRisk: 'medium',
|
|
116
|
+
impactedFiles: Array.from(new Set(fixes.map((f) => f.file))),
|
|
117
|
+
priority: 0,
|
|
118
|
+
confidence: 0.7,
|
|
119
|
+
};
|
|
120
|
+
return this.applicator.applyPacks([tempPack]);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Detect conflicts between fixes
|
|
124
|
+
*/
|
|
125
|
+
detectConflicts(fixes) {
|
|
126
|
+
const conflicts = [];
|
|
127
|
+
for (let i = 0; i < fixes.length; i++) {
|
|
128
|
+
for (let j = i + 1; j < fixes.length; j++) {
|
|
129
|
+
const fix1 = fixes[i];
|
|
130
|
+
const fix2 = fixes[j];
|
|
131
|
+
// Same file and line
|
|
132
|
+
if (fix1.file === fix2.file && fix1.line === fix2.line) {
|
|
133
|
+
conflicts.push({
|
|
134
|
+
fix1,
|
|
135
|
+
fix2,
|
|
136
|
+
reason: 'Same file and line - cannot apply both fixes',
|
|
137
|
+
});
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
// Overlapping code blocks (simplified check)
|
|
141
|
+
if (fix1.file === fix2.file && Math.abs(fix1.line - fix2.line) <= 2) {
|
|
142
|
+
conflicts.push({
|
|
143
|
+
fix1,
|
|
144
|
+
fix2,
|
|
145
|
+
reason: 'Overlapping code blocks - potential conflict',
|
|
146
|
+
});
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
// Dependency conflicts (one fix modifies a file that another depends on)
|
|
150
|
+
// This is a simplified check - full analysis would require AST parsing
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return conflicts;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Merge multiple apply results
|
|
157
|
+
*/
|
|
158
|
+
mergeResults(batchResults, conflictResults, conflicts, startTime) {
|
|
159
|
+
let appliedFixes = 0;
|
|
160
|
+
let failedFixes = 0;
|
|
161
|
+
const allErrors = [];
|
|
162
|
+
const allFilesChanged = new Set();
|
|
163
|
+
const allWarnings = [];
|
|
164
|
+
// Merge batch results
|
|
165
|
+
for (const result of batchResults) {
|
|
166
|
+
appliedFixes += result.appliedFixes;
|
|
167
|
+
failedFixes += result.failedFixes;
|
|
168
|
+
allErrors.push(...result.errors);
|
|
169
|
+
result.filesChanged.forEach((f) => allFilesChanged.add(f));
|
|
170
|
+
allWarnings.push(...result.warnings);
|
|
171
|
+
}
|
|
172
|
+
// Merge conflict results
|
|
173
|
+
appliedFixes += conflictResults.appliedFixes;
|
|
174
|
+
failedFixes += conflictResults.failedFixes;
|
|
175
|
+
allErrors.push(...conflictResults.errors);
|
|
176
|
+
conflictResults.filesChanged.forEach((f) => allFilesChanged.add(f));
|
|
177
|
+
allWarnings.push(...conflictResults.warnings);
|
|
178
|
+
const totalDuration = Date.now() - startTime;
|
|
179
|
+
const totalFixes = appliedFixes + failedFixes;
|
|
180
|
+
const averageFixDuration = totalFixes > 0 ? totalDuration / totalFixes : 0;
|
|
181
|
+
// Calculate parallel efficiency (simplified - compares to sequential)
|
|
182
|
+
// In a perfect parallel scenario, efficiency would be close to maxConcurrent
|
|
183
|
+
// For simplicity, we estimate based on batch processing
|
|
184
|
+
const sequentialTime = totalFixes * averageFixDuration;
|
|
185
|
+
const parallelEfficiency = sequentialTime > 0 ? Math.min(sequentialTime / totalDuration, 1) : 1;
|
|
186
|
+
return {
|
|
187
|
+
success: failedFixes === 0 && conflicts.length === 0,
|
|
188
|
+
appliedFixes,
|
|
189
|
+
failedFixes,
|
|
190
|
+
errors: allErrors,
|
|
191
|
+
filesChanged: Array.from(allFilesChanged),
|
|
192
|
+
warnings: allWarnings,
|
|
193
|
+
conflicts,
|
|
194
|
+
performance: {
|
|
195
|
+
totalDuration,
|
|
196
|
+
averageFixDuration,
|
|
197
|
+
parallelEfficiency,
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.ParallelFixApplicator = ParallelFixApplicator;
|
|
203
|
+
//# sourceMappingURL=parallel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/fix/parallel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enterprise Report Generation for Fix Service
|
|
3
|
+
*
|
|
4
|
+
* Generates comprehensive markdown reports and evidence for compliance
|
|
5
|
+
* and audit purposes.
|
|
6
|
+
*/
|
|
7
|
+
import { FixPack } from './engine';
|
|
8
|
+
import { ApplyResult, VerificationResult } from './applicator';
|
|
9
|
+
import { ComplianceMetrics, FixMetrics } from './metrics';
|
|
10
|
+
export interface FixReportOptions {
|
|
11
|
+
runId: string;
|
|
12
|
+
timestamp: string;
|
|
13
|
+
projectPath: string;
|
|
14
|
+
packs: FixPack[];
|
|
15
|
+
selectedPacks: FixPack[];
|
|
16
|
+
applyResult: ApplyResult;
|
|
17
|
+
verificationResult?: VerificationResult;
|
|
18
|
+
metrics: FixMetrics;
|
|
19
|
+
compliance: ComplianceMetrics;
|
|
20
|
+
gitBranch?: string;
|
|
21
|
+
gitCommit?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class ReportGenerator {
|
|
24
|
+
private projectPath;
|
|
25
|
+
private reportsDir;
|
|
26
|
+
constructor(projectPath: string);
|
|
27
|
+
/**
|
|
28
|
+
* Generate comprehensive markdown report
|
|
29
|
+
*/
|
|
30
|
+
generateMarkdownReport(options: FixReportOptions): string;
|
|
31
|
+
/**
|
|
32
|
+
* Save report to file
|
|
33
|
+
*/
|
|
34
|
+
saveReport(report: string, runId: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Format duration in human-readable format
|
|
37
|
+
*/
|
|
38
|
+
private formatDuration;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/fix/report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;gBAEf,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAwLzD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAiBjD;;OAEG;IACH,OAAO,CAAC,cAAc;CAOvB"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Enterprise Report Generation for Fix Service
|
|
4
|
+
*
|
|
5
|
+
* Generates comprehensive markdown reports and evidence for compliance
|
|
6
|
+
* and audit purposes.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ReportGenerator = void 0;
|
|
10
|
+
const fs_1 = require("fs");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
class ReportGenerator {
|
|
13
|
+
constructor(projectPath) {
|
|
14
|
+
this.projectPath = projectPath;
|
|
15
|
+
this.reportsDir = (0, path_1.join)(projectPath, '.guardrail', 'reports');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generate comprehensive markdown report
|
|
19
|
+
*/
|
|
20
|
+
generateMarkdownReport(options) {
|
|
21
|
+
const { runId, timestamp, packs, selectedPacks, applyResult, verificationResult, metrics, compliance, gitBranch, gitCommit, } = options;
|
|
22
|
+
const filesChanged = new Set(applyResult.filesChanged);
|
|
23
|
+
const successfulFixes = selectedPacks
|
|
24
|
+
.flatMap((p) => p.fixes)
|
|
25
|
+
.slice(0, applyResult.appliedFixes);
|
|
26
|
+
const failedFixes = applyResult.errors.map((e) => e.fix);
|
|
27
|
+
const report = [
|
|
28
|
+
'# Fix Service Execution Report',
|
|
29
|
+
'',
|
|
30
|
+
`**Run ID:** ${runId}`,
|
|
31
|
+
`**Timestamp:** ${timestamp}`,
|
|
32
|
+
`**Project Path:** ${this.projectPath}`,
|
|
33
|
+
'',
|
|
34
|
+
'## Executive Summary',
|
|
35
|
+
'',
|
|
36
|
+
`- **Total Fix Packs Generated:** ${packs.length}`,
|
|
37
|
+
`- **Fix Packs Selected:** ${selectedPacks.length}`,
|
|
38
|
+
`- **Fixes Applied:** ${applyResult.appliedFixes}`,
|
|
39
|
+
`- **Fixes Failed:** ${applyResult.failedFixes}`,
|
|
40
|
+
`- **Files Changed:** ${filesChanged.size}`,
|
|
41
|
+
`- **Success Rate:** ${selectedPacks.length > 0 ? ((applyResult.appliedFixes / selectedPacks.reduce((sum, p) => sum + p.fixes.length, 0)) * 100).toFixed(1) : 0}%`,
|
|
42
|
+
'',
|
|
43
|
+
'## Compliance Metrics',
|
|
44
|
+
'',
|
|
45
|
+
`### Change Control`,
|
|
46
|
+
`- **Changes Applied:** ${compliance.compliance.changeControl.changesApplied}`,
|
|
47
|
+
`- **Files Modified:** ${compliance.compliance.changeControl.filesModified}`,
|
|
48
|
+
`- **Verification Passed:** ${compliance.compliance.changeControl.verificationPassed ? '✅ YES' : '❌ NO'}`,
|
|
49
|
+
`- **Rollback Available:** ${compliance.compliance.changeControl.rollbackAvailable ? '✅ YES' : '❌ NO'}`,
|
|
50
|
+
'',
|
|
51
|
+
`### Audit Trail`,
|
|
52
|
+
`- **Run ID:** ${compliance.compliance.auditTrail.runId}`,
|
|
53
|
+
`- **Audit Log Available:** ${compliance.compliance.auditTrail.auditLogAvailable ? '✅ YES' : '❌ NO'}`,
|
|
54
|
+
`- **Evidence Generated:** ${compliance.compliance.auditTrail.evidenceGenerated ? '✅ YES' : '❌ NO'}`,
|
|
55
|
+
...(gitBranch ? [`- **Git Branch:** ${gitBranch}`] : []),
|
|
56
|
+
...(gitCommit ? [`- **Git Commit:** ${gitCommit.substring(0, 8)}`] : []),
|
|
57
|
+
'',
|
|
58
|
+
`### Quality Gates`,
|
|
59
|
+
...(verificationResult
|
|
60
|
+
? [
|
|
61
|
+
`- **Typecheck:** ${verificationResult.typecheck.passed ? '✅ PASS' : '❌ FAIL'}`,
|
|
62
|
+
`- **Build:** ${verificationResult.build.passed ? '✅ PASS' : '❌ FAIL'}`,
|
|
63
|
+
...(verificationResult.tests
|
|
64
|
+
? [
|
|
65
|
+
`- **Tests:** ${verificationResult.tests.passed ? '✅ PASS' : '❌ FAIL'}`,
|
|
66
|
+
]
|
|
67
|
+
: []),
|
|
68
|
+
`- **Overall:** ${verificationResult.passed ? '✅ PASS' : '❌ FAIL'}`,
|
|
69
|
+
]
|
|
70
|
+
: ['- Verification skipped']),
|
|
71
|
+
'',
|
|
72
|
+
`### Remediation`,
|
|
73
|
+
`- **Findings Before:** ${compliance.compliance.remediation.findingsBefore}`,
|
|
74
|
+
`- **Findings After:** ${compliance.compliance.remediation.findingsAfter}`,
|
|
75
|
+
`- **Improvement:** ${compliance.compliance.remediation.improvementPercent}%`,
|
|
76
|
+
`- **Remediation Rate:** ${compliance.compliance.remediation.remediationRate} findings`,
|
|
77
|
+
'',
|
|
78
|
+
'## Performance Metrics',
|
|
79
|
+
'',
|
|
80
|
+
`- **Total Duration:** ${this.formatDuration(metrics.performance.totalDuration)}`,
|
|
81
|
+
...(metrics.performance.analysisDuration
|
|
82
|
+
? [
|
|
83
|
+
`- **Analysis Duration:** ${this.formatDuration(metrics.performance.analysisDuration)}`,
|
|
84
|
+
]
|
|
85
|
+
: []),
|
|
86
|
+
...(metrics.performance.planningDuration
|
|
87
|
+
? [
|
|
88
|
+
`- **Planning Duration:** ${this.formatDuration(metrics.performance.planningDuration)}`,
|
|
89
|
+
]
|
|
90
|
+
: []),
|
|
91
|
+
...(metrics.performance.applicationDuration
|
|
92
|
+
? [
|
|
93
|
+
`- **Application Duration:** ${this.formatDuration(metrics.performance.applicationDuration)}`,
|
|
94
|
+
]
|
|
95
|
+
: []),
|
|
96
|
+
...(metrics.performance.verificationDuration
|
|
97
|
+
? [
|
|
98
|
+
`- **Verification Duration:** ${this.formatDuration(metrics.performance.verificationDuration)}`,
|
|
99
|
+
]
|
|
100
|
+
: []),
|
|
101
|
+
'',
|
|
102
|
+
'## Quality Metrics',
|
|
103
|
+
'',
|
|
104
|
+
`- **Average Confidence:** ${(metrics.quality.averageConfidence * 100).toFixed(1)}%`,
|
|
105
|
+
`- **High Confidence Fixes:** ${metrics.quality.highConfidenceFixes}`,
|
|
106
|
+
`- **Medium Confidence Fixes:** ${metrics.quality.mediumConfidenceFixes}`,
|
|
107
|
+
`- **Low Confidence Fixes:** ${metrics.quality.lowConfidenceFixes}`,
|
|
108
|
+
'',
|
|
109
|
+
'## Risk Assessment',
|
|
110
|
+
'',
|
|
111
|
+
`- **Estimated Risk:** ${metrics.risk.estimatedRisk.toUpperCase()}`,
|
|
112
|
+
`- **High Risk Fixes:** ${metrics.risk.highRiskFixes}`,
|
|
113
|
+
`- **Medium Risk Fixes:** ${metrics.risk.mediumRiskFixes}`,
|
|
114
|
+
`- **Low Risk Fixes:** ${metrics.risk.lowRiskFixes}`,
|
|
115
|
+
'',
|
|
116
|
+
'## Fix Packs Applied',
|
|
117
|
+
'',
|
|
118
|
+
];
|
|
119
|
+
for (const pack of selectedPacks) {
|
|
120
|
+
report.push(`### ${pack.name}`, '');
|
|
121
|
+
report.push(`- **Category:** ${pack.category}`);
|
|
122
|
+
report.push(`- **Risk:** ${pack.estimatedRisk}`);
|
|
123
|
+
report.push(`- **Confidence:** ${(pack.confidence * 100).toFixed(0)}%`);
|
|
124
|
+
report.push(`- **Fixes:** ${pack.fixes.length}`);
|
|
125
|
+
report.push(`- **Impacted Files:** ${pack.impactedFiles.length}`);
|
|
126
|
+
report.push('');
|
|
127
|
+
}
|
|
128
|
+
if (filesChanged.size > 0) {
|
|
129
|
+
report.push('## Files Changed', '');
|
|
130
|
+
const fileList = Array.from(filesChanged).slice(0, 100);
|
|
131
|
+
for (const file of fileList) {
|
|
132
|
+
const fixCount = successfulFixes.filter((f) => f.file === file).length;
|
|
133
|
+
report.push(`- \`${file}\` (${fixCount} fix${fixCount !== 1 ? 'es' : ''})`);
|
|
134
|
+
}
|
|
135
|
+
if (filesChanged.size > 100) {
|
|
136
|
+
report.push(`\n... and ${filesChanged.size - 100} more files`);
|
|
137
|
+
}
|
|
138
|
+
report.push('');
|
|
139
|
+
}
|
|
140
|
+
if (applyResult.errors.length > 0) {
|
|
141
|
+
report.push('## Errors', '');
|
|
142
|
+
for (const error of applyResult.errors.slice(0, 50)) {
|
|
143
|
+
report.push(`### ${error.fix.file}:${error.fix.line}`, '');
|
|
144
|
+
report.push(`- **Error:** ${error.error}`);
|
|
145
|
+
if (error.errorCode) {
|
|
146
|
+
report.push(`- **Error Code:** ${error.errorCode}`);
|
|
147
|
+
}
|
|
148
|
+
if (error.recoverySuggestion) {
|
|
149
|
+
report.push(`- **Suggestion:** ${error.recoverySuggestion}`);
|
|
150
|
+
}
|
|
151
|
+
report.push('');
|
|
152
|
+
}
|
|
153
|
+
if (applyResult.errors.length > 50) {
|
|
154
|
+
report.push(`... and ${applyResult.errors.length - 50} more errors\n`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (verificationResult && !verificationResult.passed) {
|
|
158
|
+
report.push('## Verification Results', '');
|
|
159
|
+
if (!verificationResult.typecheck.passed) {
|
|
160
|
+
report.push('### Typecheck Failed', '');
|
|
161
|
+
report.push('```');
|
|
162
|
+
report.push(verificationResult.typecheck.output);
|
|
163
|
+
report.push('```');
|
|
164
|
+
report.push('');
|
|
165
|
+
}
|
|
166
|
+
if (!verificationResult.build.passed) {
|
|
167
|
+
report.push('### Build Failed', '');
|
|
168
|
+
report.push('```');
|
|
169
|
+
report.push(verificationResult.build.output);
|
|
170
|
+
report.push('```');
|
|
171
|
+
report.push('');
|
|
172
|
+
}
|
|
173
|
+
if (verificationResult.tests && !verificationResult.tests.passed) {
|
|
174
|
+
report.push('### Tests Failed', '');
|
|
175
|
+
report.push('```');
|
|
176
|
+
report.push(verificationResult.tests.output);
|
|
177
|
+
report.push('```');
|
|
178
|
+
report.push('');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return report.join('\n');
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Save report to file
|
|
185
|
+
*/
|
|
186
|
+
saveReport(report, runId) {
|
|
187
|
+
if (!(0, fs_1.existsSync)(this.reportsDir)) {
|
|
188
|
+
(0, fs_1.mkdirSync)(this.reportsDir, { recursive: true });
|
|
189
|
+
}
|
|
190
|
+
const timestamp = new Date()
|
|
191
|
+
.toISOString()
|
|
192
|
+
.replace(/[:.]/g, '-')
|
|
193
|
+
.split('T')[0];
|
|
194
|
+
const reportFile = (0, path_1.join)(this.reportsDir, `fix-report-${runId}-${timestamp}.md`);
|
|
195
|
+
(0, fs_1.writeFileSync)(reportFile, report, 'utf-8');
|
|
196
|
+
return reportFile;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Format duration in human-readable format
|
|
200
|
+
*/
|
|
201
|
+
formatDuration(ms) {
|
|
202
|
+
if (ms < 1000)
|
|
203
|
+
return `${ms}ms`;
|
|
204
|
+
if (ms < 60000)
|
|
205
|
+
return `${(ms / 1000).toFixed(1)}s`;
|
|
206
|
+
const minutes = Math.floor(ms / 60000);
|
|
207
|
+
const seconds = Math.floor((ms % 60000) / 1000);
|
|
208
|
+
return `${minutes}m ${seconds}s`;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.ReportGenerator = ReportGenerator;
|
|
212
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/fix/report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fix Strategies and Profiles
|
|
3
|
+
*
|
|
4
|
+
* Provides different fixing strategies (conservative, balanced, aggressive)
|
|
5
|
+
* to control how fixes are applied based on risk tolerance and confidence levels.
|
|
6
|
+
*/
|
|
7
|
+
import { FixPack } from './engine';
|
|
8
|
+
export type FixStrategy = 'conservative' | 'balanced' | 'aggressive';
|
|
9
|
+
export interface StrategyConfig {
|
|
10
|
+
strategy: FixStrategy;
|
|
11
|
+
minConfidence: number;
|
|
12
|
+
maxRisk: 'low' | 'medium' | 'high';
|
|
13
|
+
allowHighRisk: boolean;
|
|
14
|
+
requireVerification: boolean;
|
|
15
|
+
maxConcurrentFixes: number;
|
|
16
|
+
batchSize: number;
|
|
17
|
+
retryOnFailure: boolean;
|
|
18
|
+
autoRollback: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare const STRATEGY_PRESETS: Record<FixStrategy, StrategyConfig>;
|
|
21
|
+
export declare class FixStrategyFilter {
|
|
22
|
+
private config;
|
|
23
|
+
constructor(config: StrategyConfig | FixStrategy);
|
|
24
|
+
/**
|
|
25
|
+
* Filter fix packs based on strategy
|
|
26
|
+
*/
|
|
27
|
+
filterPacks(packs: FixPack[]): FixPack[];
|
|
28
|
+
/**
|
|
29
|
+
* Filter a single pack based on strategy
|
|
30
|
+
*/
|
|
31
|
+
private filterPack;
|
|
32
|
+
/**
|
|
33
|
+
* Determine if a fix should be applied based on strategy
|
|
34
|
+
*/
|
|
35
|
+
private shouldApplyFix;
|
|
36
|
+
/**
|
|
37
|
+
* Calculate pack risk based on filtered fixes
|
|
38
|
+
*/
|
|
39
|
+
private calculatePackRisk;
|
|
40
|
+
/**
|
|
41
|
+
* Batch fixes according to strategy
|
|
42
|
+
*/
|
|
43
|
+
batchFixes(packs: FixPack[]): FixPack[][];
|
|
44
|
+
/**
|
|
45
|
+
* Get configuration
|
|
46
|
+
*/
|
|
47
|
+
getConfig(): StrategyConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Merge custom config with strategy preset
|
|
50
|
+
*/
|
|
51
|
+
static mergeConfig(strategy: FixStrategy, overrides: Partial<StrategyConfig>): StrategyConfig;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/fix/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAO,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAkChE,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc,GAAG,WAAW;IAQhD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAQxC;;OAEG;IACH,OAAO,CAAC,UAAU;IAqBlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE;IAWzC;;OAEG;IACH,SAAS,IAAI,cAAc;IAI3B;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,GACjC,cAAc;CAOlB"}
|