vibecheck-ai 2.0.2 → 5.0.0
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/bin/.generated +25 -0
- package/bin/_deprecations.js +463 -0
- package/bin/_router.js +46 -0
- package/bin/cli-hygiene.js +241 -0
- package/bin/dev/run-v2-torture.js +30 -0
- package/bin/registry.js +656 -0
- package/bin/runners/CLI_REFACTOR_SUMMARY.md +229 -0
- package/bin/runners/ENHANCEMENT_GUIDE.md +121 -0
- package/bin/runners/REPORT_AUDIT.md +64 -0
- package/bin/runners/cli-utils.js +1070 -0
- package/bin/runners/context/ai-task-decomposer.js +337 -0
- package/bin/runners/context/analyzer.js +513 -0
- package/bin/runners/context/api-contracts.js +427 -0
- package/bin/runners/context/context-diff.js +342 -0
- package/bin/runners/context/context-pruner.js +291 -0
- package/bin/runners/context/dependency-graph.js +414 -0
- package/bin/runners/context/generators/claude.js +107 -0
- package/bin/runners/context/generators/codex.js +108 -0
- package/bin/runners/context/generators/copilot.js +119 -0
- package/bin/runners/context/generators/cursor-enhanced.js +2525 -0
- package/bin/runners/context/generators/cursor.js +514 -0
- package/bin/runners/context/generators/mcp.js +169 -0
- package/bin/runners/context/generators/windsurf.js +180 -0
- package/bin/runners/context/git-context.js +304 -0
- package/bin/runners/context/index.js +1110 -0
- package/bin/runners/context/insights.js +173 -0
- package/bin/runners/context/mcp-server/generate-rules.js +337 -0
- package/bin/runners/context/mcp-server/index.js +1176 -0
- package/bin/runners/context/mcp-server/package.json +24 -0
- package/bin/runners/context/memory.js +200 -0
- package/bin/runners/context/monorepo.js +215 -0
- package/bin/runners/context/multi-repo-federation.js +404 -0
- package/bin/runners/context/patterns.js +253 -0
- package/bin/runners/context/proof-context.js +1264 -0
- package/bin/runners/context/security-scanner.js +541 -0
- package/bin/runners/context/semantic-search.js +350 -0
- package/bin/runners/context/shared.js +264 -0
- package/bin/runners/context/team-conventions.js +336 -0
- package/bin/runners/lib/__tests__/entitlements-v2.test.js +295 -0
- package/bin/runners/lib/agent-firewall/ai/false-positive-analyzer.js +474 -0
- package/bin/runners/lib/agent-firewall/change-packet/builder.js +488 -0
- package/bin/runners/lib/agent-firewall/change-packet/schema.json +228 -0
- package/bin/runners/lib/agent-firewall/change-packet/store.js +200 -0
- package/bin/runners/lib/agent-firewall/claims/claim-types.js +21 -0
- package/bin/runners/lib/agent-firewall/claims/extractor.js +303 -0
- package/bin/runners/lib/agent-firewall/claims/patterns.js +24 -0
- package/bin/runners/lib/agent-firewall/critic/index.js +151 -0
- package/bin/runners/lib/agent-firewall/critic/judge.js +432 -0
- package/bin/runners/lib/agent-firewall/critic/prompts.js +305 -0
- package/bin/runners/lib/agent-firewall/enforcement/gateway.js +1059 -0
- package/bin/runners/lib/agent-firewall/enforcement/index.js +98 -0
- package/bin/runners/lib/agent-firewall/enforcement/mode.js +318 -0
- package/bin/runners/lib/agent-firewall/enforcement/orchestrator.js +484 -0
- package/bin/runners/lib/agent-firewall/enforcement/proof-artifact.js +418 -0
- package/bin/runners/lib/agent-firewall/enforcement/schemas/change-event.schema.json +173 -0
- package/bin/runners/lib/agent-firewall/enforcement/schemas/intent.schema.json +181 -0
- package/bin/runners/lib/agent-firewall/enforcement/schemas/verdict.schema.json +222 -0
- package/bin/runners/lib/agent-firewall/enforcement/verdict-v2.js +333 -0
- package/bin/runners/lib/agent-firewall/evidence/auth-evidence.js +88 -0
- package/bin/runners/lib/agent-firewall/evidence/contract-evidence.js +75 -0
- package/bin/runners/lib/agent-firewall/evidence/env-evidence.js +127 -0
- package/bin/runners/lib/agent-firewall/evidence/resolver.js +102 -0
- package/bin/runners/lib/agent-firewall/evidence/route-evidence.js +213 -0
- package/bin/runners/lib/agent-firewall/evidence/side-effect-evidence.js +145 -0
- package/bin/runners/lib/agent-firewall/fs-hook/daemon.js +19 -0
- package/bin/runners/lib/agent-firewall/fs-hook/installer.js +87 -0
- package/bin/runners/lib/agent-firewall/fs-hook/watcher.js +184 -0
- package/bin/runners/lib/agent-firewall/git-hook/pre-commit.js +163 -0
- package/bin/runners/lib/agent-firewall/ide-extension/cursor.js +107 -0
- package/bin/runners/lib/agent-firewall/ide-extension/vscode.js +68 -0
- package/bin/runners/lib/agent-firewall/ide-extension/windsurf.js +66 -0
- package/bin/runners/lib/agent-firewall/index.js +200 -0
- package/bin/runners/lib/agent-firewall/integration/index.js +20 -0
- package/bin/runners/lib/agent-firewall/integration/ship-gate.js +437 -0
- package/bin/runners/lib/agent-firewall/intent/alignment-engine.js +634 -0
- package/bin/runners/lib/agent-firewall/intent/auto-detect.js +426 -0
- package/bin/runners/lib/agent-firewall/intent/index.js +102 -0
- package/bin/runners/lib/agent-firewall/intent/schema.js +352 -0
- package/bin/runners/lib/agent-firewall/intent/store.js +283 -0
- package/bin/runners/lib/agent-firewall/interception/fs-interceptor.js +502 -0
- package/bin/runners/lib/agent-firewall/interception/index.js +23 -0
- package/bin/runners/lib/agent-firewall/interceptor/base.js +308 -0
- package/bin/runners/lib/agent-firewall/interceptor/cursor.js +35 -0
- package/bin/runners/lib/agent-firewall/interceptor/vscode.js +35 -0
- package/bin/runners/lib/agent-firewall/interceptor/windsurf.js +34 -0
- package/bin/runners/lib/agent-firewall/lawbook/distributor.js +465 -0
- package/bin/runners/lib/agent-firewall/lawbook/evaluator.js +604 -0
- package/bin/runners/lib/agent-firewall/lawbook/index.js +304 -0
- package/bin/runners/lib/agent-firewall/lawbook/registry.js +514 -0
- package/bin/runners/lib/agent-firewall/lawbook/schema.js +420 -0
- package/bin/runners/lib/agent-firewall/logger.js +141 -0
- package/bin/runners/lib/agent-firewall/policy/default-policy.json +90 -0
- package/bin/runners/lib/agent-firewall/policy/engine.js +103 -0
- package/bin/runners/lib/agent-firewall/policy/loader.js +451 -0
- package/bin/runners/lib/agent-firewall/policy/rules/auth-drift.js +50 -0
- package/bin/runners/lib/agent-firewall/policy/rules/contract-drift.js +50 -0
- package/bin/runners/lib/agent-firewall/policy/rules/fake-success.js +79 -0
- package/bin/runners/lib/agent-firewall/policy/rules/ghost-env.js +227 -0
- package/bin/runners/lib/agent-firewall/policy/rules/ghost-route.js +191 -0
- package/bin/runners/lib/agent-firewall/policy/rules/scope.js +93 -0
- package/bin/runners/lib/agent-firewall/policy/rules/unsafe-side-effect.js +57 -0
- package/bin/runners/lib/agent-firewall/policy/schema.json +183 -0
- package/bin/runners/lib/agent-firewall/policy/verdict.js +54 -0
- package/bin/runners/lib/agent-firewall/proposal/extractor.js +394 -0
- package/bin/runners/lib/agent-firewall/proposal/index.js +212 -0
- package/bin/runners/lib/agent-firewall/proposal/schema.js +251 -0
- package/bin/runners/lib/agent-firewall/proposal/validator.js +386 -0
- package/bin/runners/lib/agent-firewall/reality/index.js +332 -0
- package/bin/runners/lib/agent-firewall/reality/state.js +625 -0
- package/bin/runners/lib/agent-firewall/reality/watcher.js +322 -0
- package/bin/runners/lib/agent-firewall/risk/index.js +173 -0
- package/bin/runners/lib/agent-firewall/risk/scorer.js +328 -0
- package/bin/runners/lib/agent-firewall/risk/thresholds.js +322 -0
- package/bin/runners/lib/agent-firewall/risk/vectors.js +421 -0
- package/bin/runners/lib/agent-firewall/session/collector.js +451 -0
- package/bin/runners/lib/agent-firewall/session/index.js +26 -0
- package/bin/runners/lib/agent-firewall/simulator/diff-simulator.js +472 -0
- package/bin/runners/lib/agent-firewall/simulator/import-resolver.js +346 -0
- package/bin/runners/lib/agent-firewall/simulator/index.js +181 -0
- package/bin/runners/lib/agent-firewall/simulator/route-validator.js +380 -0
- package/bin/runners/lib/agent-firewall/time-machine/incident-correlator.js +661 -0
- package/bin/runners/lib/agent-firewall/time-machine/index.js +267 -0
- package/bin/runners/lib/agent-firewall/time-machine/replay-engine.js +436 -0
- package/bin/runners/lib/agent-firewall/time-machine/state-reconstructor.js +490 -0
- package/bin/runners/lib/agent-firewall/time-machine/timeline-builder.js +530 -0
- package/bin/runners/lib/agent-firewall/truthpack/index.js +67 -0
- package/bin/runners/lib/agent-firewall/truthpack/loader.js +137 -0
- package/bin/runners/lib/agent-firewall/unblock/planner.js +337 -0
- package/bin/runners/lib/agent-firewall/utils/ignore-checker.js +118 -0
- package/bin/runners/lib/ai-bridge.js +416 -0
- package/bin/runners/lib/analysis-core.js +309 -0
- package/bin/runners/lib/analyzers.js +2500 -0
- package/bin/runners/lib/api-client.js +269 -0
- package/bin/runners/lib/approve-output.js +235 -0
- package/bin/runners/lib/artifact-envelope.js +540 -0
- package/bin/runners/lib/assets/vibecheck-logo.png +0 -0
- package/bin/runners/lib/audit-bridge.js +391 -0
- package/bin/runners/lib/auth-shared.js +977 -0
- package/bin/runners/lib/auth-truth.js +193 -0
- package/bin/runners/lib/auth.js +215 -0
- package/bin/runners/lib/authority-badge.js +425 -0
- package/bin/runners/lib/backup.js +62 -0
- package/bin/runners/lib/billing.js +107 -0
- package/bin/runners/lib/checkpoint.js +941 -0
- package/bin/runners/lib/claims.js +118 -0
- package/bin/runners/lib/classify-output.js +204 -0
- package/bin/runners/lib/cleanup/engine.js +571 -0
- package/bin/runners/lib/cleanup/index.js +53 -0
- package/bin/runners/lib/cleanup/output.js +375 -0
- package/bin/runners/lib/cleanup/rules.js +1060 -0
- package/bin/runners/lib/cli-output.js +400 -0
- package/bin/runners/lib/cli-ui.js +540 -0
- package/bin/runners/lib/compliance-bridge-new.js +0 -0
- package/bin/runners/lib/compliance-bridge.js +165 -0
- package/bin/runners/lib/contracts/auth-contract.js +202 -0
- package/bin/runners/lib/contracts/env-contract.js +181 -0
- package/bin/runners/lib/contracts/external-contract.js +206 -0
- package/bin/runners/lib/contracts/guard.js +168 -0
- package/bin/runners/lib/contracts/index.js +89 -0
- package/bin/runners/lib/contracts/plan-validator.js +311 -0
- package/bin/runners/lib/contracts/route-contract.js +199 -0
- package/bin/runners/lib/contracts.js +804 -0
- package/bin/runners/lib/default-config.js +127 -0
- package/bin/runners/lib/detect.js +89 -0
- package/bin/runners/lib/detectors-v2.js +622 -0
- package/bin/runners/lib/doctor/autofix.js +254 -0
- package/bin/runners/lib/doctor/diagnosis-receipt.js +454 -0
- package/bin/runners/lib/doctor/failure-signatures.js +526 -0
- package/bin/runners/lib/doctor/fix-script.js +336 -0
- package/bin/runners/lib/doctor/index.js +37 -0
- package/bin/runners/lib/doctor/modules/build-tools.js +453 -0
- package/bin/runners/lib/doctor/modules/dependencies.js +325 -0
- package/bin/runners/lib/doctor/modules/index.js +105 -0
- package/bin/runners/lib/doctor/modules/network.js +250 -0
- package/bin/runners/lib/doctor/modules/os-quirks.js +706 -0
- package/bin/runners/lib/doctor/modules/project.js +312 -0
- package/bin/runners/lib/doctor/modules/repo-integrity.js +485 -0
- package/bin/runners/lib/doctor/modules/runtime.js +224 -0
- package/bin/runners/lib/doctor/modules/security.js +350 -0
- package/bin/runners/lib/doctor/modules/system.js +213 -0
- package/bin/runners/lib/doctor/modules/vibecheck.js +394 -0
- package/bin/runners/lib/doctor/reporter.js +262 -0
- package/bin/runners/lib/doctor/safe-repair.js +384 -0
- package/bin/runners/lib/doctor/service.js +262 -0
- package/bin/runners/lib/doctor/types.js +113 -0
- package/bin/runners/lib/doctor/ui.js +263 -0
- package/bin/runners/lib/doctor-enhanced.js +233 -0
- package/bin/runners/lib/doctor-output.js +226 -0
- package/bin/runners/lib/doctor-v2.js +608 -0
- package/bin/runners/lib/drift.js +425 -0
- package/bin/runners/lib/enforcement.js +72 -0
- package/bin/runners/lib/engine/ast-cache.js +210 -0
- package/bin/runners/lib/engine/auth-extractor.js +211 -0
- package/bin/runners/lib/engine/billing-extractor.js +112 -0
- package/bin/runners/lib/engine/enforcement-extractor.js +100 -0
- package/bin/runners/lib/engine/env-extractor.js +207 -0
- package/bin/runners/lib/engine/express-extractor.js +208 -0
- package/bin/runners/lib/engine/extractors.js +849 -0
- package/bin/runners/lib/engine/index.js +207 -0
- package/bin/runners/lib/engine/repo-index.js +514 -0
- package/bin/runners/lib/engine/types.js +124 -0
- package/bin/runners/lib/engines/accessibility-engine.js +190 -0
- package/bin/runners/lib/engines/api-consistency-engine.js +162 -0
- package/bin/runners/lib/engines/ast-cache.js +99 -0
- package/bin/runners/lib/engines/attack-detector.js +1192 -0
- package/bin/runners/lib/engines/code-quality-engine.js +255 -0
- package/bin/runners/lib/engines/console-logs-engine.js +115 -0
- package/bin/runners/lib/engines/cross-file-analysis-engine.js +268 -0
- package/bin/runners/lib/engines/dead-code-engine.js +198 -0
- package/bin/runners/lib/engines/deprecated-api-engine.js +226 -0
- package/bin/runners/lib/engines/empty-catch-engine.js +150 -0
- package/bin/runners/lib/engines/file-filter.js +131 -0
- package/bin/runners/lib/engines/hardcoded-secrets-engine.js +251 -0
- package/bin/runners/lib/engines/mock-data-engine.js +272 -0
- package/bin/runners/lib/engines/parallel-processor.js +71 -0
- package/bin/runners/lib/engines/performance-issues-engine.js +265 -0
- package/bin/runners/lib/engines/security-vulnerabilities-engine.js +243 -0
- package/bin/runners/lib/engines/todo-fixme-engine.js +115 -0
- package/bin/runners/lib/engines/type-aware-engine.js +152 -0
- package/bin/runners/lib/engines/unsafe-regex-engine.js +225 -0
- package/bin/runners/lib/engines/vibecheck-engines/README.md +53 -0
- package/bin/runners/lib/engines/vibecheck-engines/index.js +15 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/ast-cache.js +164 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/code-quality-engine.js +291 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/console-logs-engine.js +83 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/dead-code-engine.js +198 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/deprecated-api-engine.js +275 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/empty-catch-engine.js +167 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/file-filter.js +217 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/hardcoded-secrets-engine.js +139 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/mock-data-engine.js +140 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/parallel-processor.js +164 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/performance-issues-engine.js +234 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/type-aware-engine.js +217 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/unsafe-regex-engine.js +78 -0
- package/bin/runners/lib/engines/vibecheck-engines/package.json +13 -0
- package/bin/runners/lib/enterprise-detect.js +603 -0
- package/bin/runners/lib/enterprise-init.js +942 -0
- package/bin/runners/lib/entitlements-v2.js +265 -0
- package/bin/runners/lib/entitlements.generated.js +0 -0
- package/bin/runners/lib/entitlements.js +340 -0
- package/bin/runners/lib/env-resolver.js +417 -0
- package/bin/runners/lib/env-template.js +66 -0
- package/bin/runners/lib/env.js +189 -0
- package/bin/runners/lib/error-handler.js +368 -0
- package/bin/runners/lib/error-messages.js +289 -0
- package/bin/runners/lib/evidence-pack.js +684 -0
- package/bin/runners/lib/exit-codes.js +275 -0
- package/bin/runners/lib/extractors/client-calls.js +990 -0
- package/bin/runners/lib/extractors/fastify-route-dump.js +573 -0
- package/bin/runners/lib/extractors/fastify-routes.js +426 -0
- package/bin/runners/lib/extractors/index.js +363 -0
- package/bin/runners/lib/extractors/next-routes.js +524 -0
- package/bin/runners/lib/extractors/proof-graph.js +431 -0
- package/bin/runners/lib/extractors/route-matcher.js +451 -0
- package/bin/runners/lib/extractors/truthpack-v2.js +377 -0
- package/bin/runners/lib/extractors/ui-bindings.js +547 -0
- package/bin/runners/lib/finding-id.js +69 -0
- package/bin/runners/lib/finding-sorter.js +89 -0
- package/bin/runners/lib/findings-schema.js +281 -0
- package/bin/runners/lib/fingerprint.js +377 -0
- package/bin/runners/lib/firewall-prompt.js +50 -0
- package/bin/runners/lib/fix-output.js +228 -0
- package/bin/runners/lib/global-flags.js +250 -0
- package/bin/runners/lib/graph/graph-builder.js +265 -0
- package/bin/runners/lib/graph/html-renderer.js +413 -0
- package/bin/runners/lib/graph/index.js +32 -0
- package/bin/runners/lib/graph/runtime-collector.js +215 -0
- package/bin/runners/lib/graph/static-extractor.js +518 -0
- package/bin/runners/lib/help-formatter.js +413 -0
- package/bin/runners/lib/html-proof-report.js +913 -0
- package/bin/runners/lib/html-report.js +650 -0
- package/bin/runners/lib/init-wizard.js +601 -0
- package/bin/runners/lib/interactive-menu.js +1496 -0
- package/bin/runners/lib/json-output.js +76 -0
- package/bin/runners/lib/llm.js +75 -0
- package/bin/runners/lib/logger.js +38 -0
- package/bin/runners/lib/meter.js +61 -0
- package/bin/runners/lib/missions/briefing.js +427 -0
- package/bin/runners/lib/missions/checkpoint.js +753 -0
- package/bin/runners/lib/missions/evidence.js +126 -0
- package/bin/runners/lib/missions/hardening.js +851 -0
- package/bin/runners/lib/missions/plan.js +648 -0
- package/bin/runners/lib/missions/safety-gates.js +645 -0
- package/bin/runners/lib/missions/schema.js +478 -0
- package/bin/runners/lib/missions/templates.js +317 -0
- package/bin/runners/lib/next-action.js +560 -0
- package/bin/runners/lib/packs/bundle.js +675 -0
- package/bin/runners/lib/packs/evidence-pack.js +671 -0
- package/bin/runners/lib/packs/pack-factory.js +837 -0
- package/bin/runners/lib/packs/permissions-pack.js +686 -0
- package/bin/runners/lib/packs/proof-graph-pack.js +779 -0
- package/bin/runners/lib/patch.js +40 -0
- package/bin/runners/lib/permissions/auth-model.js +213 -0
- package/bin/runners/lib/permissions/idor-prover.js +205 -0
- package/bin/runners/lib/permissions/index.js +45 -0
- package/bin/runners/lib/permissions/matrix-builder.js +198 -0
- package/bin/runners/lib/pkgjson.js +28 -0
- package/bin/runners/lib/policy.js +295 -0
- package/bin/runners/lib/polish/accessibility.js +62 -0
- package/bin/runners/lib/polish/analyzer.js +93 -0
- package/bin/runners/lib/polish/backend.js +87 -0
- package/bin/runners/lib/polish/configuration.js +83 -0
- package/bin/runners/lib/polish/documentation.js +83 -0
- package/bin/runners/lib/polish/frontend.js +817 -0
- package/bin/runners/lib/polish/index.js +27 -0
- package/bin/runners/lib/polish/infrastructure.js +80 -0
- package/bin/runners/lib/polish/internationalization.js +85 -0
- package/bin/runners/lib/polish/libraries.js +180 -0
- package/bin/runners/lib/polish/observability.js +75 -0
- package/bin/runners/lib/polish/performance.js +64 -0
- package/bin/runners/lib/polish/privacy.js +110 -0
- package/bin/runners/lib/polish/resilience.js +92 -0
- package/bin/runners/lib/polish/security.js +78 -0
- package/bin/runners/lib/polish/seo.js +71 -0
- package/bin/runners/lib/polish/styles.js +62 -0
- package/bin/runners/lib/polish/utils.js +104 -0
- package/bin/runners/lib/preflight.js +142 -0
- package/bin/runners/lib/prerequisites.js +149 -0
- package/bin/runners/lib/prove-output.js +220 -0
- package/bin/runners/lib/reality/correlation-detectors.js +359 -0
- package/bin/runners/lib/reality/index.js +318 -0
- package/bin/runners/lib/reality/request-hashing.js +416 -0
- package/bin/runners/lib/reality/request-mapper.js +453 -0
- package/bin/runners/lib/reality/safety-rails.js +463 -0
- package/bin/runners/lib/reality/semantic-snapshot.js +408 -0
- package/bin/runners/lib/reality/toast-detector.js +393 -0
- package/bin/runners/lib/reality-findings.js +84 -0
- package/bin/runners/lib/reality-output.js +231 -0
- package/bin/runners/lib/receipts.js +179 -0
- package/bin/runners/lib/redact.js +29 -0
- package/bin/runners/lib/replay/capsule-manager.js +154 -0
- package/bin/runners/lib/replay/index.js +263 -0
- package/bin/runners/lib/replay/player.js +348 -0
- package/bin/runners/lib/replay/recorder.js +331 -0
- package/bin/runners/lib/report-engine.js +626 -0
- package/bin/runners/lib/report-html.js +1233 -0
- package/bin/runners/lib/report-output.js +366 -0
- package/bin/runners/lib/report-templates.js +967 -0
- package/bin/runners/lib/report.js +135 -0
- package/bin/runners/lib/route-detection.js +1209 -0
- package/bin/runners/lib/route-truth.js +1322 -0
- package/bin/runners/lib/safelist/index.js +96 -0
- package/bin/runners/lib/safelist/integration.js +334 -0
- package/bin/runners/lib/safelist/matcher.js +696 -0
- package/bin/runners/lib/safelist/schema.js +948 -0
- package/bin/runners/lib/safelist/store.js +438 -0
- package/bin/runners/lib/sandbox/index.js +59 -0
- package/bin/runners/lib/sandbox/proof-chain.js +399 -0
- package/bin/runners/lib/sandbox/sandbox-runner.js +205 -0
- package/bin/runners/lib/sandbox/worktree.js +174 -0
- package/bin/runners/lib/scan-cache.js +330 -0
- package/bin/runners/lib/scan-output-schema.js +344 -0
- package/bin/runners/lib/scan-output.js +631 -0
- package/bin/runners/lib/scan-runner.js +135 -0
- package/bin/runners/lib/schema-validator.js +350 -0
- package/bin/runners/lib/schemas/ajv-validator.js +464 -0
- package/bin/runners/lib/schemas/contracts.schema.json +160 -0
- package/bin/runners/lib/schemas/error-envelope.schema.json +105 -0
- package/bin/runners/lib/schemas/finding-v3.schema.json +151 -0
- package/bin/runners/lib/schemas/finding.schema.json +100 -0
- package/bin/runners/lib/schemas/mission-pack.schema.json +206 -0
- package/bin/runners/lib/schemas/proof-graph.schema.json +176 -0
- package/bin/runners/lib/schemas/reality-report.schema.json +162 -0
- package/bin/runners/lib/schemas/report-artifact.schema.json +120 -0
- package/bin/runners/lib/schemas/run-request.schema.json +108 -0
- package/bin/runners/lib/schemas/share-pack.schema.json +180 -0
- package/bin/runners/lib/schemas/ship-manifest.schema.json +251 -0
- package/bin/runners/lib/schemas/ship-report.schema.json +117 -0
- package/bin/runners/lib/schemas/truthpack-v2.schema.json +303 -0
- package/bin/runners/lib/schemas/validator.js +465 -0
- package/bin/runners/lib/schemas/verdict.schema.json +140 -0
- package/bin/runners/lib/score-history.js +282 -0
- package/bin/runners/lib/security-bridge.js +249 -0
- package/bin/runners/lib/server-usage.js +513 -0
- package/bin/runners/lib/share-pack.js +239 -0
- package/bin/runners/lib/ship-gate.js +832 -0
- package/bin/runners/lib/ship-manifest.js +1153 -0
- package/bin/runners/lib/ship-output-enterprise.js +239 -0
- package/bin/runners/lib/ship-output.js +1128 -0
- package/bin/runners/lib/snippets.js +67 -0
- package/bin/runners/lib/status-output.js +340 -0
- package/bin/runners/lib/terminal-ui.js +356 -0
- package/bin/runners/lib/truth.js +1691 -0
- package/bin/runners/lib/ui.js +562 -0
- package/bin/runners/lib/unified-cli-output.js +947 -0
- package/bin/runners/lib/unified-output.js +197 -0
- package/bin/runners/lib/upsell.js +410 -0
- package/bin/runners/lib/usage.js +153 -0
- package/bin/runners/lib/validate-patch.js +156 -0
- package/bin/runners/lib/verdict-engine.js +628 -0
- package/bin/runners/lib/verification.js +345 -0
- package/bin/runners/lib/why-tree.js +650 -0
- package/bin/runners/reality/engine.js +917 -0
- package/bin/runners/reality/flows.js +122 -0
- package/bin/runners/reality/report.js +378 -0
- package/bin/runners/reality/session.js +193 -0
- package/bin/runners/runAIAgent.js +229 -0
- package/bin/runners/runAgent.d.ts +5 -0
- package/bin/runners/runAgent.js +161 -0
- package/bin/runners/runAllowlist.js +418 -0
- package/bin/runners/runApprove.js +320 -0
- package/bin/runners/runAudit.js +692 -0
- package/bin/runners/runAuth.js +731 -0
- package/bin/runners/runCI.js +353 -0
- package/bin/runners/runCheckpoint.js +530 -0
- package/bin/runners/runClassify.js +928 -0
- package/bin/runners/runCleanup.js +343 -0
- package/bin/runners/runContext.d.ts +4 -0
- package/bin/runners/runContext.js +175 -0
- package/bin/runners/runDoctor.js +877 -0
- package/bin/runners/runEvidencePack.js +362 -0
- package/bin/runners/runFirewall.d.ts +5 -0
- package/bin/runners/runFirewall.js +134 -0
- package/bin/runners/runFirewallHook.d.ts +5 -0
- package/bin/runners/runFirewallHook.js +56 -0
- package/bin/runners/runFix.js +1355 -0
- package/bin/runners/runForge.js +451 -0
- package/bin/runners/runGuard.js +262 -0
- package/bin/runners/runInit.js +1927 -0
- package/bin/runners/runIntent.js +906 -0
- package/bin/runners/runKickoff.js +878 -0
- package/bin/runners/runLabs.js +424 -0
- package/bin/runners/runLaunch.js +2000 -0
- package/bin/runners/runLink.js +785 -0
- package/bin/runners/runMcp.js +1875 -0
- package/bin/runners/runPacks.js +2089 -0
- package/bin/runners/runPolish.d.ts +4 -0
- package/bin/runners/runPolish.js +390 -0
- package/bin/runners/runPromptFirewall.js +211 -0
- package/bin/runners/runProve.js +1411 -0
- package/bin/runners/runQuickstart.js +531 -0
- package/bin/runners/runReality.js +2260 -0
- package/bin/runners/runReport.js +726 -0
- package/bin/runners/runRuntime.js +110 -0
- package/bin/runners/runSafelist.js +1190 -0
- package/bin/runners/runScan.js +688 -0
- package/bin/runners/runShield.js +1282 -0
- package/bin/runners/runShip.js +1660 -0
- package/bin/runners/runTruth.d.ts +5 -0
- package/bin/runners/runTruth.js +101 -0
- package/bin/runners/runValidate.js +179 -0
- package/bin/runners/runWatch.js +478 -0
- package/bin/runners/utils.js +360 -0
- package/bin/scan.js +617 -0
- package/bin/vibecheck.js +1617 -0
- package/dist/guardrail/index.d.ts +2405 -0
- package/dist/guardrail/index.js +9747 -0
- package/dist/guardrail/index.js.map +1 -0
- package/dist/scanner/index.d.ts +282 -0
- package/dist/scanner/index.js +3395 -0
- package/dist/scanner/index.js.map +1 -0
- package/package.json +123 -104
- package/README.md +0 -491
- package/dist/index.js +0 -99711
- package/dist/index.js.map +0 -1
package/bin/.generated
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
================================================================================
|
|
2
|
+
⚠️ GENERATED CODE - DO NOT EDIT
|
|
3
|
+
================================================================================
|
|
4
|
+
|
|
5
|
+
This directory contains GENERATED build output.
|
|
6
|
+
|
|
7
|
+
All JavaScript files here are compiled from TypeScript sources.
|
|
8
|
+
Manual edits will be OVERWRITTEN on the next build.
|
|
9
|
+
|
|
10
|
+
SOURCE OF TRUTH:
|
|
11
|
+
packages/cli/src/ TypeScript CLI source
|
|
12
|
+
packages/cli/src/commands/ Command implementations
|
|
13
|
+
packages/cli/src/index.ts Main entry point
|
|
14
|
+
|
|
15
|
+
TO MAKE CHANGES:
|
|
16
|
+
1. Edit the TypeScript source in packages/cli/src/
|
|
17
|
+
2. Run: pnpm build
|
|
18
|
+
3. Changes will be reflected here automatically
|
|
19
|
+
|
|
20
|
+
BUILD COMMAND:
|
|
21
|
+
pnpm --filter @vibecheck/cli build
|
|
22
|
+
|
|
23
|
+
================================================================================
|
|
24
|
+
Generated: 2026-01-17
|
|
25
|
+
================================================================================
|
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Command Deprecation System
|
|
3
|
+
*
|
|
4
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
5
|
+
* ENTERPRISE-GRADE DEPRECATION MANAGEMENT
|
|
6
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
7
|
+
*
|
|
8
|
+
* Manages deprecation warnings for renamed commands in v4.0+.
|
|
9
|
+
* Features:
|
|
10
|
+
* - One-time warnings per user per version (cached)
|
|
11
|
+
* - Configurable via environment variables
|
|
12
|
+
* - Machine-readable JSON output for CI
|
|
13
|
+
* - Graceful degradation on cache failures
|
|
14
|
+
*
|
|
15
|
+
* Environment Variables:
|
|
16
|
+
* VIBECHECK_SILENCE_DEPRECATIONS=1 - Suppress all deprecation warnings
|
|
17
|
+
* VIBECHECK_DEPRECATION_JSON=1 - Output warnings as JSON
|
|
18
|
+
*
|
|
19
|
+
* @module _deprecations
|
|
20
|
+
* @version 4.0.0
|
|
21
|
+
* @license MIT
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
"use strict";
|
|
25
|
+
|
|
26
|
+
const fs = require("fs");
|
|
27
|
+
const os = require("os");
|
|
28
|
+
const path = require("path");
|
|
29
|
+
|
|
30
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
31
|
+
// DEPRECATION MAP
|
|
32
|
+
// Maps old command names to their new canonical equivalents
|
|
33
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Mapping of deprecated commands to their replacements
|
|
37
|
+
* @type {Object.<string, string>}
|
|
38
|
+
*/
|
|
39
|
+
const DEPRECATION_MAP = {
|
|
40
|
+
// ─────────────────────────────────────────────────────────────
|
|
41
|
+
// Setup Commands
|
|
42
|
+
// ─────────────────────────────────────────────────────────────
|
|
43
|
+
"init": "link",
|
|
44
|
+
"setup": "link",
|
|
45
|
+
"configure": "link",
|
|
46
|
+
"quickstart": "kickoff",
|
|
47
|
+
"qs": "kickoff",
|
|
48
|
+
"start": "kickoff",
|
|
49
|
+
"onboard": "kickoff",
|
|
50
|
+
|
|
51
|
+
// ─────────────────────────────────────────────────────────────
|
|
52
|
+
// Truth/Context Commands
|
|
53
|
+
// ─────────────────────────────────────────────────────────────
|
|
54
|
+
"context": "forge",
|
|
55
|
+
"ctx": "forge",
|
|
56
|
+
"rules": "forge",
|
|
57
|
+
"ai-rules": "forge",
|
|
58
|
+
"mdc": "forge",
|
|
59
|
+
|
|
60
|
+
// ─────────────────────────────────────────────────────────────
|
|
61
|
+
// Analysis Commands
|
|
62
|
+
// ─────────────────────────────────────────────────────────────
|
|
63
|
+
"scan": "audit",
|
|
64
|
+
"check": "audit",
|
|
65
|
+
"s": "audit",
|
|
66
|
+
"classify": "audit",
|
|
67
|
+
"inventory": "audit",
|
|
68
|
+
|
|
69
|
+
// ─────────────────────────────────────────────────────────────
|
|
70
|
+
// Auth Commands (now subcommands)
|
|
71
|
+
// ─────────────────────────────────────────────────────────────
|
|
72
|
+
"login": "auth login",
|
|
73
|
+
"logout": "auth logout",
|
|
74
|
+
"whoami": "auth whoami",
|
|
75
|
+
"signin": "auth login",
|
|
76
|
+
"signout": "auth logout",
|
|
77
|
+
"me": "auth whoami",
|
|
78
|
+
"user": "auth whoami",
|
|
79
|
+
|
|
80
|
+
// ─────────────────────────────────────────────────────────────
|
|
81
|
+
// Enforcement Commands
|
|
82
|
+
// ─────────────────────────────────────────────────────────────
|
|
83
|
+
"guard": "shield",
|
|
84
|
+
"firewall": "shield",
|
|
85
|
+
"agent": "shield",
|
|
86
|
+
"ai-guard": "shield",
|
|
87
|
+
"validate": "shield verify",
|
|
88
|
+
|
|
89
|
+
// ─────────────────────────────────────────────────────────────
|
|
90
|
+
// CI/CD Commands
|
|
91
|
+
// ─────────────────────────────────────────────────────────────
|
|
92
|
+
"gate": "launch",
|
|
93
|
+
"ci-gate": "launch",
|
|
94
|
+
"enforce": "launch",
|
|
95
|
+
"preflight": "launch",
|
|
96
|
+
"prelaunch": "launch",
|
|
97
|
+
|
|
98
|
+
// ─────────────────────────────────────────────────────────────
|
|
99
|
+
// Config Commands
|
|
100
|
+
// ─────────────────────────────────────────────────────────────
|
|
101
|
+
"allowlist": "safelist",
|
|
102
|
+
"al": "safelist",
|
|
103
|
+
"suppress": "safelist",
|
|
104
|
+
|
|
105
|
+
// ─────────────────────────────────────────────────────────────
|
|
106
|
+
// Artifact Commands (now subcommands of packs)
|
|
107
|
+
// ─────────────────────────────────────────────────────────────
|
|
108
|
+
"evidence-pack": "packs evidence",
|
|
109
|
+
"pack": "packs",
|
|
110
|
+
"bundle": "packs",
|
|
111
|
+
"report": "packs report",
|
|
112
|
+
"html": "packs report",
|
|
113
|
+
"artifact": "packs report",
|
|
114
|
+
|
|
115
|
+
// ─────────────────────────────────────────────────────────────
|
|
116
|
+
// Output Commands
|
|
117
|
+
// ─────────────────────────────────────────────────────────────
|
|
118
|
+
"badge": "seal",
|
|
119
|
+
"attest": "seal",
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Deprecation metadata with additional context
|
|
124
|
+
* @type {Object.<string, Object>}
|
|
125
|
+
*/
|
|
126
|
+
const DEPRECATION_METADATA = {
|
|
127
|
+
// Setup
|
|
128
|
+
"init": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
129
|
+
"setup": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
130
|
+
"configure": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
131
|
+
"quickstart": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
132
|
+
"qs": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
133
|
+
"start": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
134
|
+
"onboard": { reason: "Renamed for clarity", since: "4.0.0", removeIn: "5.0.0" },
|
|
135
|
+
|
|
136
|
+
// Truth/Context
|
|
137
|
+
"context": { reason: "Renamed to 'forge' (AI Brain Generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
138
|
+
"ctx": { reason: "Renamed to 'forge' (AI Brain Generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
139
|
+
"rules": { reason: "Renamed to 'forge' (AI Brain Generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
140
|
+
"ai-rules": { reason: "Renamed to 'forge' (AI Brain Generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
141
|
+
"mdc": { reason: "Renamed to 'forge' (AI Brain Generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
142
|
+
|
|
143
|
+
// Analysis
|
|
144
|
+
"scan": { reason: "Renamed to 'audit' (convincing wrongness detector)", since: "4.0.0", removeIn: "5.0.0" },
|
|
145
|
+
"check": { reason: "Renamed to 'audit'", since: "4.0.0", removeIn: "5.0.0" },
|
|
146
|
+
"s": { reason: "Renamed to 'audit'", since: "4.0.0", removeIn: "5.0.0" },
|
|
147
|
+
"classify": { reason: "Merged into 'audit'", since: "4.0.0", removeIn: "5.0.0" },
|
|
148
|
+
"inventory": { reason: "Merged into 'audit'", since: "4.0.0", removeIn: "5.0.0" },
|
|
149
|
+
|
|
150
|
+
// Auth (subcommands)
|
|
151
|
+
"login": { reason: "Moved to 'auth login' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
152
|
+
"logout": { reason: "Moved to 'auth logout' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
153
|
+
"whoami": { reason: "Moved to 'auth whoami' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
154
|
+
"signin": { reason: "Moved to 'auth login' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
155
|
+
"signout": { reason: "Moved to 'auth logout' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
156
|
+
"me": { reason: "Moved to 'auth whoami' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
157
|
+
"user": { reason: "Moved to 'auth whoami' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
158
|
+
|
|
159
|
+
// Enforcement
|
|
160
|
+
"guard": { reason: "Unified into 'shield' (Agent Firewall)", since: "4.0.0", removeIn: "5.0.0" },
|
|
161
|
+
"firewall": { reason: "Unified into 'shield' (Agent Firewall)", since: "4.0.0", removeIn: "5.0.0" },
|
|
162
|
+
"agent": { reason: "Unified into 'shield' (Agent Firewall)", since: "4.0.0", removeIn: "5.0.0" },
|
|
163
|
+
"ai-guard": { reason: "Unified into 'shield' (Agent Firewall)", since: "4.0.0", removeIn: "5.0.0" },
|
|
164
|
+
"validate": { reason: "Moved to 'shield verify' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
165
|
+
|
|
166
|
+
// CI/CD
|
|
167
|
+
"gate": { reason: "Renamed to 'launch' (pre-release wizard)", since: "4.0.0", removeIn: "5.0.0" },
|
|
168
|
+
"ci-gate": { reason: "Renamed to 'launch' (pre-release wizard)", since: "4.0.0", removeIn: "5.0.0" },
|
|
169
|
+
"enforce": { reason: "Renamed to 'launch' (pre-release wizard)", since: "4.0.0", removeIn: "5.0.0" },
|
|
170
|
+
"preflight": { reason: "Renamed to 'launch' (pre-release wizard)", since: "4.0.0", removeIn: "5.0.0" },
|
|
171
|
+
"prelaunch": { reason: "Renamed to 'launch' (pre-release wizard)", since: "4.0.0", removeIn: "5.0.0" },
|
|
172
|
+
|
|
173
|
+
// Config
|
|
174
|
+
"allowlist": { reason: "Renamed to 'safelist' (responsible suppression)", since: "4.0.0", removeIn: "5.0.0" },
|
|
175
|
+
"al": { reason: "Renamed to 'safelist'", since: "4.0.0", removeIn: "5.0.0" },
|
|
176
|
+
"suppress": { reason: "Renamed to 'safelist'", since: "4.0.0", removeIn: "5.0.0" },
|
|
177
|
+
|
|
178
|
+
// Artifacts (subcommands)
|
|
179
|
+
"evidence-pack": { reason: "Moved to 'packs evidence' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
180
|
+
"pack": { reason: "Renamed to 'packs'", since: "4.0.0", removeIn: "5.0.0" },
|
|
181
|
+
"bundle": { reason: "Moved to 'packs bundle' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
182
|
+
"report": { reason: "Moved to 'packs report' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
183
|
+
"html": { reason: "Moved to 'packs report' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
184
|
+
"artifact": { reason: "Moved to 'packs report' subcommand", since: "4.0.0", removeIn: "5.0.0" },
|
|
185
|
+
|
|
186
|
+
// Output
|
|
187
|
+
"badge": { reason: "Renamed to 'seal' (ship badge generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
188
|
+
"attest": { reason: "Renamed to 'seal' (ship badge generator)", since: "4.0.0", removeIn: "5.0.0" },
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
192
|
+
// CACHE MANAGEMENT
|
|
193
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Get the path to the deprecation cache file
|
|
197
|
+
* @returns {string} Cache file path
|
|
198
|
+
*/
|
|
199
|
+
function getCachePath() {
|
|
200
|
+
return path.join(os.homedir(), ".vibecheck", "deprecations.json");
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Load the deprecation cache
|
|
205
|
+
* @returns {Object} Cache object
|
|
206
|
+
*/
|
|
207
|
+
function loadCache() {
|
|
208
|
+
try {
|
|
209
|
+
const cachePath = getCachePath();
|
|
210
|
+
if (fs.existsSync(cachePath)) {
|
|
211
|
+
return JSON.parse(fs.readFileSync(cachePath, "utf8"));
|
|
212
|
+
}
|
|
213
|
+
} catch {
|
|
214
|
+
// Cache is corrupted or inaccessible, return empty
|
|
215
|
+
}
|
|
216
|
+
return {};
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Save to the deprecation cache
|
|
221
|
+
* @param {Object} cache - Cache object to save
|
|
222
|
+
* @returns {boolean} Success status
|
|
223
|
+
*/
|
|
224
|
+
function saveCache(cache) {
|
|
225
|
+
try {
|
|
226
|
+
const cachePath = getCachePath();
|
|
227
|
+
fs.mkdirSync(path.dirname(cachePath), { recursive: true });
|
|
228
|
+
fs.writeFileSync(cachePath, JSON.stringify(cache, null, 2));
|
|
229
|
+
return true;
|
|
230
|
+
} catch {
|
|
231
|
+
// Ignore cache write errors (permissions, disk full, etc.)
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
237
|
+
// DEPRECATION WARNING FUNCTIONS
|
|
238
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Display a deprecation warning once per version
|
|
242
|
+
*
|
|
243
|
+
* @param {string} legacyCommand - The deprecated command name
|
|
244
|
+
* @param {string} newCommand - The replacement command name
|
|
245
|
+
* @param {string} version - Current CLI version
|
|
246
|
+
* @returns {boolean} Whether the warning was shown
|
|
247
|
+
*/
|
|
248
|
+
function warnDeprecationOnce(legacyCommand, newCommand, version = "dev") {
|
|
249
|
+
// Early exit conditions
|
|
250
|
+
if (!legacyCommand || !newCommand) return false;
|
|
251
|
+
if (process.env.VIBECHECK_SILENCE_DEPRECATIONS === "1") return false;
|
|
252
|
+
|
|
253
|
+
// Check cache
|
|
254
|
+
const cache = loadCache();
|
|
255
|
+
const cacheKey = `${legacyCommand}@${version}`;
|
|
256
|
+
|
|
257
|
+
if (cache[cacheKey]) {
|
|
258
|
+
return false; // Already warned
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Get metadata if available
|
|
262
|
+
const meta = DEPRECATION_METADATA[legacyCommand] || {};
|
|
263
|
+
|
|
264
|
+
// Output format
|
|
265
|
+
if (process.env.VIBECHECK_DEPRECATION_JSON === "1") {
|
|
266
|
+
// JSON output for CI systems
|
|
267
|
+
const warning = {
|
|
268
|
+
type: "deprecation",
|
|
269
|
+
command: legacyCommand,
|
|
270
|
+
replacement: newCommand,
|
|
271
|
+
version,
|
|
272
|
+
since: meta.since,
|
|
273
|
+
removeIn: meta.removeIn,
|
|
274
|
+
reason: meta.reason,
|
|
275
|
+
timestamp: new Date().toISOString(),
|
|
276
|
+
};
|
|
277
|
+
process.stderr.write(JSON.stringify(warning) + "\n");
|
|
278
|
+
} else {
|
|
279
|
+
// Human-readable output with colors
|
|
280
|
+
const c = {
|
|
281
|
+
reset: "\x1b[0m",
|
|
282
|
+
bold: "\x1b[1m",
|
|
283
|
+
dim: "\x1b[2m",
|
|
284
|
+
yellow: "\x1b[33m",
|
|
285
|
+
cyan: "\x1b[36m",
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
process.stderr.write(`
|
|
289
|
+
${c.yellow}${c.bold}⚠ Deprecation Warning${c.reset}
|
|
290
|
+
${c.dim}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
|
|
291
|
+
${c.dim}Command:${c.reset} ${c.yellow}vibecheck ${legacyCommand}${c.reset}
|
|
292
|
+
${c.dim}Replacement:${c.reset} ${c.cyan}vibecheck ${newCommand}${c.reset}
|
|
293
|
+
${meta.reason ? ` ${c.dim}Reason:${c.reset} ${meta.reason}\n` : ""}${meta.removeIn ? ` ${c.dim}Remove in:${c.reset} v${meta.removeIn}\n` : ""}
|
|
294
|
+
${c.dim}Silence with: VIBECHECK_SILENCE_DEPRECATIONS=1${c.reset}
|
|
295
|
+
${c.dim}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${c.reset}
|
|
296
|
+
`);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Update cache
|
|
300
|
+
cache[cacheKey] = {
|
|
301
|
+
warned: new Date().toISOString(),
|
|
302
|
+
replacement: newCommand,
|
|
303
|
+
};
|
|
304
|
+
saveCache(cache);
|
|
305
|
+
|
|
306
|
+
return true;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Check if a command is deprecated
|
|
311
|
+
*
|
|
312
|
+
* @param {string} command - Command name to check
|
|
313
|
+
* @returns {boolean} True if deprecated
|
|
314
|
+
*/
|
|
315
|
+
function isDeprecatedCommand(command) {
|
|
316
|
+
return command in DEPRECATION_MAP;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Get the replacement for a deprecated command
|
|
321
|
+
*
|
|
322
|
+
* @param {string} command - Deprecated command name
|
|
323
|
+
* @returns {string|null} Replacement command or null
|
|
324
|
+
*/
|
|
325
|
+
function getDeprecationReplacement(command) {
|
|
326
|
+
return DEPRECATION_MAP[command] || null;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Get deprecation metadata for a command
|
|
331
|
+
*
|
|
332
|
+
* @param {string} command - Command name
|
|
333
|
+
* @returns {Object|null} Metadata object or null
|
|
334
|
+
*/
|
|
335
|
+
function getDeprecationMetadata(command) {
|
|
336
|
+
return DEPRECATION_METADATA[command] || null;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Convenience function: warn if deprecated and return replacement
|
|
341
|
+
*
|
|
342
|
+
* @param {string} command - Command name to check
|
|
343
|
+
* @param {string} version - Current CLI version
|
|
344
|
+
* @returns {string|null} Replacement command if deprecated, null otherwise
|
|
345
|
+
*/
|
|
346
|
+
function warnIfDeprecated(command, version = "dev") {
|
|
347
|
+
const replacement = DEPRECATION_MAP[command];
|
|
348
|
+
if (replacement) {
|
|
349
|
+
warnDeprecationOnce(command, replacement, version);
|
|
350
|
+
return replacement;
|
|
351
|
+
}
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Get all deprecated commands
|
|
357
|
+
*
|
|
358
|
+
* @returns {Object.<string, string>} Map of deprecated commands to replacements
|
|
359
|
+
*/
|
|
360
|
+
function getAllDeprecations() {
|
|
361
|
+
return { ...DEPRECATION_MAP };
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Get deprecation statistics from cache
|
|
366
|
+
*
|
|
367
|
+
* @returns {Object} Statistics object
|
|
368
|
+
*/
|
|
369
|
+
function getDeprecationStats() {
|
|
370
|
+
const cache = loadCache();
|
|
371
|
+
const stats = {
|
|
372
|
+
totalWarnings: Object.keys(cache).length,
|
|
373
|
+
byCommand: {},
|
|
374
|
+
byVersion: {},
|
|
375
|
+
lastWarning: null,
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
for (const [key, value] of Object.entries(cache)) {
|
|
379
|
+
const [command, version] = key.split("@");
|
|
380
|
+
|
|
381
|
+
if (!stats.byCommand[command]) {
|
|
382
|
+
stats.byCommand[command] = 0;
|
|
383
|
+
}
|
|
384
|
+
stats.byCommand[command]++;
|
|
385
|
+
|
|
386
|
+
if (!stats.byVersion[version]) {
|
|
387
|
+
stats.byVersion[version] = 0;
|
|
388
|
+
}
|
|
389
|
+
stats.byVersion[version]++;
|
|
390
|
+
|
|
391
|
+
if (!stats.lastWarning || value.warned > stats.lastWarning) {
|
|
392
|
+
stats.lastWarning = value.warned;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
return stats;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Clear the deprecation cache
|
|
401
|
+
* Used for testing and reset scenarios
|
|
402
|
+
*
|
|
403
|
+
* @returns {boolean} Success status
|
|
404
|
+
*/
|
|
405
|
+
function clearDeprecationCache() {
|
|
406
|
+
try {
|
|
407
|
+
const cachePath = getCachePath();
|
|
408
|
+
if (fs.existsSync(cachePath)) {
|
|
409
|
+
fs.unlinkSync(cachePath);
|
|
410
|
+
}
|
|
411
|
+
return true;
|
|
412
|
+
} catch {
|
|
413
|
+
return false;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Reset a specific deprecation warning
|
|
419
|
+
*
|
|
420
|
+
* @param {string} command - Command to reset
|
|
421
|
+
* @param {string} version - Version to reset
|
|
422
|
+
* @returns {boolean} Success status
|
|
423
|
+
*/
|
|
424
|
+
function resetDeprecationWarning(command, version = "dev") {
|
|
425
|
+
try {
|
|
426
|
+
const cache = loadCache();
|
|
427
|
+
const key = `${command}@${version}`;
|
|
428
|
+
if (cache[key]) {
|
|
429
|
+
delete cache[key];
|
|
430
|
+
saveCache(cache);
|
|
431
|
+
return true;
|
|
432
|
+
}
|
|
433
|
+
return false;
|
|
434
|
+
} catch {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
440
|
+
// EXPORTS
|
|
441
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
442
|
+
|
|
443
|
+
module.exports = {
|
|
444
|
+
// Core deprecation map
|
|
445
|
+
DEPRECATION_MAP,
|
|
446
|
+
DEPRECATION_METADATA,
|
|
447
|
+
|
|
448
|
+
// Warning functions
|
|
449
|
+
warnDeprecationOnce,
|
|
450
|
+
warnIfDeprecated,
|
|
451
|
+
|
|
452
|
+
// Query functions
|
|
453
|
+
isDeprecatedCommand,
|
|
454
|
+
getDeprecationReplacement,
|
|
455
|
+
getDeprecationMetadata,
|
|
456
|
+
getAllDeprecations,
|
|
457
|
+
getDeprecationStats,
|
|
458
|
+
|
|
459
|
+
// Cache management
|
|
460
|
+
clearDeprecationCache,
|
|
461
|
+
resetDeprecationWarning,
|
|
462
|
+
getCachePath,
|
|
463
|
+
};
|
package/bin/_router.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const LEGACY_MAP = {
|
|
2
|
+
// ship is now first-class command, not legacy
|
|
3
|
+
// reality is now its own command - no longer routes to proof
|
|
4
|
+
mockproof: { to: ["proof", "mocks"] },
|
|
5
|
+
hygiene: { to: ["scan", "--only=hygiene"] },
|
|
6
|
+
security: { to: ["scan", "--only=security"] },
|
|
7
|
+
// auth is now a first-class command - use "scan --only=auth" for auth scanning
|
|
8
|
+
routes: { to: ["scan", "--only=routes"] },
|
|
9
|
+
api: { to: ["scan", "--only=contracts"] }, // rename internal concept to contracts
|
|
10
|
+
mock: { to: ["scan", "--only=mocks"] },
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
function routeArgv(argv) {
|
|
14
|
+
const args = argv.slice(2);
|
|
15
|
+
const first = args[0];
|
|
16
|
+
|
|
17
|
+
// Handle top-level flags that act as commands
|
|
18
|
+
if (first === "--version" || first === "-v") {
|
|
19
|
+
return { legacyFrom: null, routed: ["version"] };
|
|
20
|
+
}
|
|
21
|
+
if (first === "--help" || first === "-h") {
|
|
22
|
+
return { legacyFrom: null, routed: ["help"] };
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Default command if none
|
|
26
|
+
if (!first || first.startsWith("-")) {
|
|
27
|
+
return { legacyFrom: null, routed: ["scan", ...args] };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Legacy alias handling
|
|
31
|
+
if (LEGACY_MAP[first]) {
|
|
32
|
+
const mapped = LEGACY_MAP[first].to;
|
|
33
|
+
const rest = args.slice(1);
|
|
34
|
+
return { legacyFrom: first, routed: [...mapped, ...rest] };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// validate logic
|
|
38
|
+
if (first === "validate") {
|
|
39
|
+
return { legacyFrom: null, routed: args };
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Already new-style
|
|
43
|
+
return { legacyFrom: null, routed: args };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
module.exports = { routeArgv };
|