@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,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Debug Command
|
|
4
|
+
*
|
|
5
|
+
* Dumps a redacted diagnostic bundle for support purposes:
|
|
6
|
+
* - Node version, OS
|
|
7
|
+
* - cwd + repo root
|
|
8
|
+
* - Detected framework/router
|
|
9
|
+
* - Config used
|
|
10
|
+
* - Command invocation
|
|
11
|
+
* - Where Guardrail resolved itself from
|
|
12
|
+
* - Last run outputs
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.generateDebugInfo = generateDebugInfo;
|
|
49
|
+
exports.formatDebugInfoAsText = formatDebugInfoAsText;
|
|
50
|
+
const fs = __importStar(require("fs"));
|
|
51
|
+
const path = __importStar(require("path"));
|
|
52
|
+
const os = __importStar(require("os"));
|
|
53
|
+
const detect_framework_1 = require("../init/detect-framework");
|
|
54
|
+
const creds_1 = require("../runtime/creds");
|
|
55
|
+
const route_detector_1 = require("../scanner/route-detector");
|
|
56
|
+
const ai_helpers_1 = require("../utils/ai-helpers");
|
|
57
|
+
async function generateDebugInfo(projectPath, options = {}) {
|
|
58
|
+
const format = options.format || 'text';
|
|
59
|
+
// Node info
|
|
60
|
+
const nodeInfo = {
|
|
61
|
+
version: process.version,
|
|
62
|
+
platform: process.platform,
|
|
63
|
+
arch: process.arch,
|
|
64
|
+
};
|
|
65
|
+
// OS info
|
|
66
|
+
const osInfo = {
|
|
67
|
+
type: os.type(),
|
|
68
|
+
release: os.release(),
|
|
69
|
+
hostname: os.hostname(),
|
|
70
|
+
};
|
|
71
|
+
// Project info
|
|
72
|
+
const cwd = process.cwd();
|
|
73
|
+
const repoRoot = await findRepoRoot(projectPath);
|
|
74
|
+
const guardrailDir = path.join(projectPath, '.guardrail');
|
|
75
|
+
const guardrailDirExists = fs.existsSync(guardrailDir);
|
|
76
|
+
// Framework detection
|
|
77
|
+
const frameworkResult = (0, detect_framework_1.detectFramework)(projectPath);
|
|
78
|
+
// Router detection
|
|
79
|
+
let routerInfo;
|
|
80
|
+
try {
|
|
81
|
+
const routeDetector = new route_detector_1.RouteDetector({
|
|
82
|
+
projectPath,
|
|
83
|
+
framework: frameworkResult.framework,
|
|
84
|
+
});
|
|
85
|
+
const routeResult = await routeDetector.detectRoutes();
|
|
86
|
+
routerInfo = {
|
|
87
|
+
framework: routeResult.framework,
|
|
88
|
+
routes: routeResult.routes.length,
|
|
89
|
+
confidence: routeResult.confidence,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
// Router detection failed - skip
|
|
94
|
+
}
|
|
95
|
+
// Config info
|
|
96
|
+
const configPath = (0, creds_1.getConfigPath)();
|
|
97
|
+
const configExists = fs.existsSync(configPath);
|
|
98
|
+
let configRedacted;
|
|
99
|
+
if (configExists) {
|
|
100
|
+
try {
|
|
101
|
+
const configContent = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
102
|
+
// Redact sensitive info
|
|
103
|
+
configRedacted = {
|
|
104
|
+
...configContent,
|
|
105
|
+
apiKey: configContent.apiKey ? '[REDACTED]' : undefined,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
// Config parse failed
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Auth info
|
|
113
|
+
const authState = (0, creds_1.loadAuthState)();
|
|
114
|
+
const authInfo = {
|
|
115
|
+
authenticated: !!authState.apiKey,
|
|
116
|
+
tier: authState.tier,
|
|
117
|
+
email: authState.email,
|
|
118
|
+
apiKeyExists: !!authState.apiKey,
|
|
119
|
+
};
|
|
120
|
+
// Guardrail info
|
|
121
|
+
const guardrailInfo = {};
|
|
122
|
+
try {
|
|
123
|
+
const packageJsonPath = path.join(__dirname, '../../package.json');
|
|
124
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
125
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
126
|
+
guardrailInfo.version = packageJson.version;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (e) {
|
|
130
|
+
// Version detection failed
|
|
131
|
+
}
|
|
132
|
+
// Try to find where guardrail was resolved from
|
|
133
|
+
try {
|
|
134
|
+
// Check common resolution paths
|
|
135
|
+
const possiblePaths = [
|
|
136
|
+
path.join(process.cwd(), 'node_modules', '.bin', 'guardrail'),
|
|
137
|
+
path.join(process.cwd(), 'node_modules', '@guardrail', 'cli'),
|
|
138
|
+
];
|
|
139
|
+
for (const possiblePath of possiblePaths) {
|
|
140
|
+
if (fs.existsSync(possiblePath)) {
|
|
141
|
+
guardrailInfo.resolutionPath = possiblePath;
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
// Resolution path detection failed
|
|
148
|
+
}
|
|
149
|
+
// Last run info
|
|
150
|
+
const lastRunFile = path.join(guardrailDir, 'last-run.json');
|
|
151
|
+
let lastRun;
|
|
152
|
+
if (fs.existsSync(lastRunFile)) {
|
|
153
|
+
try {
|
|
154
|
+
lastRun = JSON.parse(fs.readFileSync(lastRunFile, 'utf-8'));
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
// Last run file parse failed
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Command invocation
|
|
161
|
+
const commandInfo = {
|
|
162
|
+
invocation: process.argv.join(' '),
|
|
163
|
+
args: process.argv.slice(2),
|
|
164
|
+
};
|
|
165
|
+
// Add AI information and suggestions (PRO feature)
|
|
166
|
+
const hasAPIKey = (0, ai_helpers_1.hasAIAPIKey)();
|
|
167
|
+
const aiAvailable = hasAPIKey ? await (0, ai_helpers_1.isAIAvailable)() : false;
|
|
168
|
+
const aiProvider = (0, ai_helpers_1.getAIProvider)();
|
|
169
|
+
let aiSuggestions;
|
|
170
|
+
if (aiAvailable && format === 'text') {
|
|
171
|
+
try {
|
|
172
|
+
// Generate AI-powered suggestions for common issues
|
|
173
|
+
aiSuggestions = await generateAIDebugSuggestions({
|
|
174
|
+
nodeInfo,
|
|
175
|
+
osInfo,
|
|
176
|
+
frameworkInfo: frameworkResult.framework
|
|
177
|
+
? {
|
|
178
|
+
detected: frameworkResult.framework,
|
|
179
|
+
confidence: frameworkResult.confidence.toString(),
|
|
180
|
+
signals: frameworkResult.signals,
|
|
181
|
+
}
|
|
182
|
+
: undefined,
|
|
183
|
+
configInfo: {
|
|
184
|
+
path: configExists ? configPath : undefined,
|
|
185
|
+
exists: configExists,
|
|
186
|
+
redacted: configRedacted,
|
|
187
|
+
},
|
|
188
|
+
authInfo,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
// Entitlement error - don't fail debug command, just skip AI suggestions
|
|
193
|
+
aiSuggestions = undefined;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
const debugInfo = {
|
|
197
|
+
node: nodeInfo,
|
|
198
|
+
os: osInfo,
|
|
199
|
+
project: {
|
|
200
|
+
cwd,
|
|
201
|
+
repoRoot,
|
|
202
|
+
guardrailDir: guardrailDirExists ? guardrailDir : undefined,
|
|
203
|
+
},
|
|
204
|
+
framework: frameworkResult.framework
|
|
205
|
+
? {
|
|
206
|
+
detected: frameworkResult.framework,
|
|
207
|
+
confidence: frameworkResult.confidence.toString(),
|
|
208
|
+
signals: frameworkResult.signals,
|
|
209
|
+
}
|
|
210
|
+
: undefined,
|
|
211
|
+
router: routerInfo,
|
|
212
|
+
config: {
|
|
213
|
+
path: configExists ? configPath : undefined,
|
|
214
|
+
exists: configExists,
|
|
215
|
+
redacted: configRedacted,
|
|
216
|
+
},
|
|
217
|
+
auth: authInfo,
|
|
218
|
+
guardrail: guardrailInfo,
|
|
219
|
+
lastRun,
|
|
220
|
+
command: commandInfo,
|
|
221
|
+
ai: {
|
|
222
|
+
available: aiAvailable,
|
|
223
|
+
provider: aiProvider || undefined,
|
|
224
|
+
suggestions: aiSuggestions,
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
return debugInfo;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Generate AI-powered debug suggestions
|
|
231
|
+
* ⚠️ PRO FEATURE - Requires PRO tier subscription
|
|
232
|
+
*/
|
|
233
|
+
async function generateAIDebugSuggestions(context) {
|
|
234
|
+
// Entitlement check is done in explainIssue, but verify here too
|
|
235
|
+
const available = await (0, ai_helpers_1.isAIAvailable)();
|
|
236
|
+
if (!available)
|
|
237
|
+
return [];
|
|
238
|
+
const issues = [];
|
|
239
|
+
const suggestions = [];
|
|
240
|
+
// Check for common issues
|
|
241
|
+
if (!context.configInfo.exists) {
|
|
242
|
+
issues.push('No Guardrail configuration file found');
|
|
243
|
+
}
|
|
244
|
+
if (!context.authInfo.authenticated) {
|
|
245
|
+
issues.push('Not authenticated with Guardrail');
|
|
246
|
+
}
|
|
247
|
+
if (!context.frameworkInfo?.detected) {
|
|
248
|
+
issues.push('Framework could not be detected');
|
|
249
|
+
}
|
|
250
|
+
if (issues.length === 0) {
|
|
251
|
+
return [];
|
|
252
|
+
}
|
|
253
|
+
try {
|
|
254
|
+
const explanation = await (0, ai_helpers_1.explainIssue)({
|
|
255
|
+
type: 'debug',
|
|
256
|
+
severity: 'medium',
|
|
257
|
+
description: `Debug context analysis: ${issues.join('; ')}`,
|
|
258
|
+
}, { maxTokens: 800 });
|
|
259
|
+
if (explanation && explanation.recommendations.length > 0) {
|
|
260
|
+
suggestions.push(...explanation.recommendations.slice(0, 5));
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
// Silent fail - suggestions are optional
|
|
265
|
+
}
|
|
266
|
+
return suggestions;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Find git repo root
|
|
270
|
+
*/
|
|
271
|
+
async function findRepoRoot(startPath) {
|
|
272
|
+
let currentPath = path.resolve(startPath);
|
|
273
|
+
const root = path.parse(currentPath).root;
|
|
274
|
+
while (currentPath !== root) {
|
|
275
|
+
const gitDir = path.join(currentPath, '.git');
|
|
276
|
+
if (fs.existsSync(gitDir)) {
|
|
277
|
+
return currentPath;
|
|
278
|
+
}
|
|
279
|
+
currentPath = path.dirname(currentPath);
|
|
280
|
+
}
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Format debug info as text
|
|
285
|
+
*/
|
|
286
|
+
function formatDebugInfoAsText(info) {
|
|
287
|
+
const lines = [];
|
|
288
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
289
|
+
lines.push('GUARDRAIL DEBUG INFORMATION');
|
|
290
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
291
|
+
lines.push('');
|
|
292
|
+
// Node info
|
|
293
|
+
lines.push('NODE INFORMATION:');
|
|
294
|
+
lines.push(` Version: ${info.node.version}`);
|
|
295
|
+
lines.push(` Platform: ${info.node.platform}`);
|
|
296
|
+
lines.push(` Architecture: ${info.node.arch}`);
|
|
297
|
+
lines.push('');
|
|
298
|
+
// OS info
|
|
299
|
+
lines.push('OPERATING SYSTEM:');
|
|
300
|
+
lines.push(` Type: ${info.os.type}`);
|
|
301
|
+
lines.push(` Release: ${info.os.release}`);
|
|
302
|
+
lines.push(` Hostname: ${info.os.hostname}`);
|
|
303
|
+
lines.push('');
|
|
304
|
+
// Project info
|
|
305
|
+
lines.push('PROJECT:');
|
|
306
|
+
lines.push(` CWD: ${info.project.cwd}`);
|
|
307
|
+
if (info.project.repoRoot) {
|
|
308
|
+
lines.push(` Repo Root: ${info.project.repoRoot}`);
|
|
309
|
+
}
|
|
310
|
+
if (info.project.guardrailDir) {
|
|
311
|
+
lines.push(` Guardrail Dir: ${info.project.guardrailDir}`);
|
|
312
|
+
}
|
|
313
|
+
lines.push('');
|
|
314
|
+
// Framework info
|
|
315
|
+
if (info.framework) {
|
|
316
|
+
lines.push('FRAMEWORK DETECTION:');
|
|
317
|
+
lines.push(` Detected: ${info.framework.detected || 'unknown'}`);
|
|
318
|
+
lines.push(` Confidence: ${info.framework.confidence || 'unknown'}`);
|
|
319
|
+
if (info.framework.signals && info.framework.signals.length > 0) {
|
|
320
|
+
lines.push(` Signals: ${info.framework.signals.join(', ')}`);
|
|
321
|
+
}
|
|
322
|
+
lines.push('');
|
|
323
|
+
}
|
|
324
|
+
// Router info
|
|
325
|
+
if (info.router) {
|
|
326
|
+
lines.push('ROUTER DETECTION:');
|
|
327
|
+
lines.push(` Framework: ${info.router.framework || 'unknown'}`);
|
|
328
|
+
lines.push(` Routes Found: ${info.router.routes || 0}`);
|
|
329
|
+
lines.push(` Confidence: ${info.router.confidence || 'unknown'}`);
|
|
330
|
+
lines.push('');
|
|
331
|
+
}
|
|
332
|
+
// Config info
|
|
333
|
+
lines.push('CONFIGURATION:');
|
|
334
|
+
lines.push(` Exists: ${info.config.exists ? 'Yes' : 'No'}`);
|
|
335
|
+
if (info.config.path) {
|
|
336
|
+
lines.push(` Path: ${info.config.path}`);
|
|
337
|
+
}
|
|
338
|
+
if (info.config.redacted) {
|
|
339
|
+
lines.push(` Config (redacted): ${JSON.stringify(info.config.redacted, null, 2)}`);
|
|
340
|
+
}
|
|
341
|
+
lines.push('');
|
|
342
|
+
// Auth info
|
|
343
|
+
lines.push('AUTHENTICATION:');
|
|
344
|
+
lines.push(` Authenticated: ${info.auth.authenticated ? 'Yes' : 'No'}`);
|
|
345
|
+
if (info.auth.tier) {
|
|
346
|
+
lines.push(` Tier: ${info.auth.tier}`);
|
|
347
|
+
}
|
|
348
|
+
if (info.auth.email) {
|
|
349
|
+
lines.push(` Email: ${info.auth.email}`);
|
|
350
|
+
}
|
|
351
|
+
lines.push(` API Key Present: ${info.auth.apiKeyExists ? 'Yes' : 'No'}`);
|
|
352
|
+
lines.push('');
|
|
353
|
+
// Guardrail info
|
|
354
|
+
lines.push('GUARDRAIL:');
|
|
355
|
+
if (info.guardrail.version) {
|
|
356
|
+
lines.push(` Version: ${info.guardrail.version}`);
|
|
357
|
+
}
|
|
358
|
+
if (info.guardrail.resolutionPath) {
|
|
359
|
+
lines.push(` Resolution Path: ${info.guardrail.resolutionPath}`);
|
|
360
|
+
}
|
|
361
|
+
lines.push('');
|
|
362
|
+
// Command info
|
|
363
|
+
lines.push('COMMAND INVOCATION:');
|
|
364
|
+
lines.push(` Full: ${info.command.invocation}`);
|
|
365
|
+
lines.push(` Args: ${info.command.args.join(' ')}`);
|
|
366
|
+
lines.push('');
|
|
367
|
+
// Last run
|
|
368
|
+
if (info.lastRun) {
|
|
369
|
+
lines.push('LAST RUN:');
|
|
370
|
+
if (info.lastRun.timestamp) {
|
|
371
|
+
lines.push(` Timestamp: ${info.lastRun.timestamp}`);
|
|
372
|
+
}
|
|
373
|
+
if (info.lastRun.command) {
|
|
374
|
+
lines.push(` Command: ${info.lastRun.command}`);
|
|
375
|
+
}
|
|
376
|
+
lines.push('');
|
|
377
|
+
}
|
|
378
|
+
lines.push('═══════════════════════════════════════════════════════════════');
|
|
379
|
+
return lines.join('\n');
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* guardrail doctor
|
|
3
|
+
*
|
|
4
|
+
* First-class setup verification + exact fix steps
|
|
5
|
+
* Zero "uncaught exception" behavior
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
export interface DoctorIssue {
|
|
9
|
+
id: string;
|
|
10
|
+
severity: 'error' | 'warning' | 'info';
|
|
11
|
+
category: 'setup' | 'configuration' | 'dependencies' | 'permissions' | 'network';
|
|
12
|
+
message: string;
|
|
13
|
+
fix: string;
|
|
14
|
+
command?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function registerDoctorCommand(program: Command): void;
|
|
17
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4L5D"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* guardrail doctor
|
|
4
|
+
*
|
|
5
|
+
* First-class setup verification + exact fix steps
|
|
6
|
+
* Zero "uncaught exception" behavior
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.registerDoctorCommand = registerDoctorCommand;
|
|
43
|
+
const path_1 = require("path");
|
|
44
|
+
const fs_1 = require("fs");
|
|
45
|
+
const truth_pack_1 = require("../truth-pack");
|
|
46
|
+
const ui_1 = require("../ui");
|
|
47
|
+
const ui_2 = require("../ui");
|
|
48
|
+
function registerDoctorCommand(program) {
|
|
49
|
+
program
|
|
50
|
+
.command('doctor')
|
|
51
|
+
.description('Verify setup and provide exact fix steps')
|
|
52
|
+
.option('-p, --path <path>', 'Project path', '.')
|
|
53
|
+
.option('--fix', 'Automatically apply safe fixes')
|
|
54
|
+
.action(async (options) => {
|
|
55
|
+
(0, ui_1.printLogo)();
|
|
56
|
+
const projectPath = (0, path_1.resolve)(options.path);
|
|
57
|
+
const issues = [];
|
|
58
|
+
console.log(`\n${ui_2.styles.brightCyan}${ui_2.styles.bold}${ui_2.icons.info} GUARDRAIL DOCTOR${ui_2.styles.reset}\n`);
|
|
59
|
+
console.log(` ${ui_2.styles.dim}Checking:${ui_2.styles.reset} ${projectPath}\n`);
|
|
60
|
+
// Check 1: Truth Pack exists and is fresh
|
|
61
|
+
const generator = new truth_pack_1.TruthPackGenerator(projectPath);
|
|
62
|
+
if (!(0, fs_1.existsSync)(generator.getPath())) {
|
|
63
|
+
issues.push({
|
|
64
|
+
id: 'DOCTOR-001',
|
|
65
|
+
severity: 'error',
|
|
66
|
+
category: 'setup',
|
|
67
|
+
message: 'Truth Pack not found',
|
|
68
|
+
fix: 'Run guardrail init to generate Truth Pack',
|
|
69
|
+
command: 'guardrail init',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else if (!generator.isFresh(168)) { // 7 days
|
|
73
|
+
issues.push({
|
|
74
|
+
id: 'DOCTOR-002',
|
|
75
|
+
severity: 'warning',
|
|
76
|
+
category: 'setup',
|
|
77
|
+
message: 'Truth Pack is stale (older than 7 days)',
|
|
78
|
+
fix: 'Regenerate Truth Pack to ensure accuracy',
|
|
79
|
+
command: 'guardrail init --force',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// Check 2: Configuration file exists
|
|
83
|
+
const configFile = (0, path_1.join)(projectPath, '.guardrail', 'config.json');
|
|
84
|
+
if (!(0, fs_1.existsSync)(configFile)) {
|
|
85
|
+
issues.push({
|
|
86
|
+
id: 'DOCTOR-003',
|
|
87
|
+
severity: 'info',
|
|
88
|
+
category: 'configuration',
|
|
89
|
+
message: 'No Guardrail configuration file found',
|
|
90
|
+
fix: 'Run guardrail init to create configuration',
|
|
91
|
+
command: 'guardrail init',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// Check 3: Node.js version
|
|
95
|
+
const nodeVersion = process.version;
|
|
96
|
+
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
|
|
97
|
+
if (majorVersion < 18) {
|
|
98
|
+
issues.push({
|
|
99
|
+
id: 'DOCTOR-004',
|
|
100
|
+
severity: 'error',
|
|
101
|
+
category: 'dependencies',
|
|
102
|
+
message: `Node.js version ${nodeVersion} is too old (requires >= 18)`,
|
|
103
|
+
fix: 'Upgrade Node.js to version 18 or higher',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// Check 4: Playwright availability (for ship command)
|
|
107
|
+
try {
|
|
108
|
+
require.resolve('playwright');
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
issues.push({
|
|
112
|
+
id: 'DOCTOR-005',
|
|
113
|
+
severity: 'warning',
|
|
114
|
+
category: 'dependencies',
|
|
115
|
+
message: 'Playwright not installed (required for guardrail ship --runtime)',
|
|
116
|
+
fix: 'Install Playwright: npm install -D playwright && npx playwright install',
|
|
117
|
+
command: 'npm install -D playwright && npx playwright install',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// Check 5: Git repository
|
|
121
|
+
const gitDir = (0, path_1.join)(projectPath, '.git');
|
|
122
|
+
if (!(0, fs_1.existsSync)(gitDir)) {
|
|
123
|
+
issues.push({
|
|
124
|
+
id: 'DOCTOR-006',
|
|
125
|
+
severity: 'info',
|
|
126
|
+
category: 'setup',
|
|
127
|
+
message: 'Not a git repository (change-aware scanning will be limited)',
|
|
128
|
+
fix: 'Initialize git repository: git init',
|
|
129
|
+
command: 'git init',
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Check 6: Package.json exists
|
|
133
|
+
const packageJson = (0, path_1.join)(projectPath, 'package.json');
|
|
134
|
+
if (!(0, fs_1.existsSync)(packageJson)) {
|
|
135
|
+
issues.push({
|
|
136
|
+
id: 'DOCTOR-007',
|
|
137
|
+
severity: 'warning',
|
|
138
|
+
category: 'setup',
|
|
139
|
+
message: 'No package.json found (dependency scanning will be limited)',
|
|
140
|
+
fix: 'Create package.json or ensure you are in the project root',
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
// Check 7: Write permissions
|
|
144
|
+
const testFile = (0, path_1.join)(projectPath, '.guardrail', '.test-write');
|
|
145
|
+
try {
|
|
146
|
+
const { writeFileSync, unlinkSync } = await Promise.resolve().then(() => __importStar(require('fs')));
|
|
147
|
+
writeFileSync(testFile, 'test');
|
|
148
|
+
unlinkSync(testFile);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
issues.push({
|
|
152
|
+
id: 'DOCTOR-008',
|
|
153
|
+
severity: 'error',
|
|
154
|
+
category: 'permissions',
|
|
155
|
+
message: 'No write permissions in project directory',
|
|
156
|
+
fix: 'Fix directory permissions or run with appropriate access',
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
// Display results
|
|
160
|
+
const errors = issues.filter(i => i.severity === 'error');
|
|
161
|
+
const warnings = issues.filter(i => i.severity === 'warning');
|
|
162
|
+
const infos = issues.filter(i => i.severity === 'info');
|
|
163
|
+
if (issues.length === 0) {
|
|
164
|
+
console.log(` ${ui_2.styles.brightGreen}${ui_2.icons.success}${ui_2.styles.reset} ${ui_2.styles.bold}No issues found. Everything looks good!${ui_2.styles.reset}\n`);
|
|
165
|
+
process.exit(0);
|
|
166
|
+
}
|
|
167
|
+
if (errors.length > 0) {
|
|
168
|
+
console.log(` ${ui_2.styles.brightRed}${ui_2.icons.error}${ui_2.styles.reset} ${ui_2.styles.bold}${errors.length} Error(s)${ui_2.styles.reset}\n`);
|
|
169
|
+
errors.forEach(issue => {
|
|
170
|
+
console.log(` ${ui_2.styles.brightRed}${issue.id}${ui_2.styles.reset} ${issue.message}`);
|
|
171
|
+
console.log(` ${ui_2.styles.dim}Fix:${ui_2.styles.reset} ${issue.fix}`);
|
|
172
|
+
if (issue.command) {
|
|
173
|
+
console.log(` ${ui_2.styles.dim}Command:${ui_2.styles.reset} ${ui_2.styles.bold}${issue.command}${ui_2.styles.reset}`);
|
|
174
|
+
}
|
|
175
|
+
console.log('');
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
if (warnings.length > 0) {
|
|
179
|
+
console.log(` ${ui_2.styles.brightYellow}${ui_2.icons.warning}${ui_2.styles.reset} ${ui_2.styles.bold}${warnings.length} Warning(s)${ui_2.styles.reset}\n`);
|
|
180
|
+
warnings.forEach(issue => {
|
|
181
|
+
console.log(` ${ui_2.styles.brightYellow}${issue.id}${ui_2.styles.reset} ${issue.message}`);
|
|
182
|
+
console.log(` ${ui_2.styles.dim}Fix:${ui_2.styles.reset} ${issue.fix}`);
|
|
183
|
+
if (issue.command) {
|
|
184
|
+
console.log(` ${ui_2.styles.dim}Command:${ui_2.styles.reset} ${ui_2.styles.bold}${issue.command}${ui_2.styles.reset}`);
|
|
185
|
+
}
|
|
186
|
+
console.log('');
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
if (infos.length > 0) {
|
|
190
|
+
console.log(` ${ui_2.styles.brightBlue}${ui_2.icons.info}${ui_2.styles.reset} ${ui_2.styles.bold}${infos.length} Info${ui_2.styles.reset}\n`);
|
|
191
|
+
infos.forEach(issue => {
|
|
192
|
+
console.log(` ${ui_2.styles.brightBlue}${issue.id}${ui_2.styles.reset} ${issue.message}`);
|
|
193
|
+
console.log(` ${ui_2.styles.dim}Fix:${ui_2.styles.reset} ${issue.fix}`);
|
|
194
|
+
if (issue.command) {
|
|
195
|
+
console.log(` ${ui_2.styles.dim}Command:${ui_2.styles.reset} ${ui_2.styles.bold}${issue.command}${ui_2.styles.reset}`);
|
|
196
|
+
}
|
|
197
|
+
console.log('');
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
// Auto-fix if requested
|
|
201
|
+
if (options.fix) {
|
|
202
|
+
console.log(` ${ui_2.styles.brightCyan}${ui_2.icons.info}${ui_2.styles.reset} ${ui_2.styles.bold}Auto-fixing issues...${ui_2.styles.reset}\n`);
|
|
203
|
+
for (const issue of issues) {
|
|
204
|
+
if (issue.command && issue.severity === 'error') {
|
|
205
|
+
console.log(` ${ui_2.styles.dim}Running: ${issue.command}${ui_2.styles.reset}`);
|
|
206
|
+
// TODO: Actually execute the command
|
|
207
|
+
console.log(` ${ui_2.styles.brightGreen}${ui_2.icons.success}${ui_2.styles.reset} Fixed: ${issue.id}\n`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
console.log(` ${ui_2.styles.bold}Next:${ui_2.styles.reset} Run ${ui_2.styles.bold}guardrail doctor --fix${ui_2.styles.reset} to auto-fix issues\n`);
|
|
213
|
+
}
|
|
214
|
+
// Exit code
|
|
215
|
+
if (errors.length > 0) {
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
else if (warnings.length > 0) {
|
|
219
|
+
process.exit(0); // Warnings don't fail
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
process.exit(0);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|