@vibecheckai/cli 3.5.0 → 3.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/bin/registry.js +174 -449
- package/bin/runners/cli-utils.js +33 -2
- package/bin/runners/context/generators/cursor.js +2 -49
- package/bin/runners/context/generators/mcp.js +13 -15
- package/bin/runners/context/proof-context.js +1 -248
- package/bin/runners/lib/analysis-core.js +180 -198
- package/bin/runners/lib/analyzers.js +241 -2212
- package/bin/runners/lib/cli-output.js +210 -242
- package/bin/runners/lib/detectors-v2.js +785 -547
- package/bin/runners/lib/entitlements-v2.js +431 -161
- package/bin/runners/lib/error-handler.js +9 -16
- package/bin/runners/lib/global-flags.js +0 -37
- package/bin/runners/lib/html-proof-report.js +700 -350
- package/bin/runners/lib/missions/plan.js +6 -46
- package/bin/runners/lib/missions/templates.js +0 -232
- package/bin/runners/lib/route-truth.js +322 -1167
- package/bin/runners/lib/scan-output.js +467 -493
- package/bin/runners/lib/ship-output.js +27 -280
- package/bin/runners/lib/terminal-ui.js +700 -310
- package/bin/runners/lib/truth.js +321 -1004
- package/bin/runners/lib/unified-output.js +158 -162
- package/bin/runners/lib/upsell.js +204 -104
- package/bin/runners/runAIAgent.js +10 -5
- package/bin/runners/runAllowlist.js +324 -0
- package/bin/runners/runAuth.js +94 -344
- package/bin/runners/runCheckpoint.js +45 -43
- package/bin/runners/runContext.js +24 -139
- package/bin/runners/runDoctor.js +101 -136
- package/bin/runners/runEvidencePack.js +219 -0
- package/bin/runners/runFix.js +71 -82
- package/bin/runners/runGuard.js +119 -606
- package/bin/runners/runInit.js +60 -22
- package/bin/runners/runInstall.js +281 -0
- package/bin/runners/runLabs.js +341 -0
- package/bin/runners/runMcp.js +62 -139
- package/bin/runners/runPolish.js +83 -282
- package/bin/runners/runPromptFirewall.js +12 -5
- package/bin/runners/runProve.js +58 -33
- package/bin/runners/runReality.js +58 -81
- package/bin/runners/runReport.js +7 -34
- package/bin/runners/runRuntime.js +8 -5
- package/bin/runners/runScan.js +844 -219
- package/bin/runners/runShip.js +59 -721
- package/bin/runners/runValidate.js +11 -24
- package/bin/runners/runWatch.js +76 -131
- package/bin/vibecheck.js +69 -295
- package/mcp-server/ARCHITECTURE.md +339 -0
- package/mcp-server/__tests__/cache.test.ts +313 -0
- package/mcp-server/__tests__/executor.test.ts +239 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/.cache/webpack/cache.pack +1 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/.next/server/chunk.js +3 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/.turbo/cache.json +3 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/.venv/lib/env.py +3 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/dist/bundle.js +3 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/package.json +5 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/src/app.ts +5 -0
- package/mcp-server/__tests__/fixtures/exclusion-test/venv/lib/config.py +4 -0
- package/mcp-server/__tests__/ids.test.ts +345 -0
- package/mcp-server/__tests__/integration/tools.test.ts +410 -0
- package/mcp-server/__tests__/registry.test.ts +365 -0
- package/mcp-server/__tests__/sandbox.test.ts +323 -0
- package/mcp-server/__tests__/schemas.test.ts +372 -0
- package/mcp-server/benchmarks/run-benchmarks.ts +304 -0
- package/mcp-server/examples/doctor.request.json +14 -0
- package/mcp-server/examples/doctor.response.json +53 -0
- package/mcp-server/examples/error.response.json +15 -0
- package/mcp-server/examples/scan.request.json +14 -0
- package/mcp-server/examples/scan.response.json +108 -0
- package/mcp-server/handlers/tool-handler.ts +671 -0
- package/mcp-server/index-v1.js +698 -0
- package/mcp-server/index-v3.ts +293 -0
- package/mcp-server/index.js +1080 -1757
- package/mcp-server/index.old.js +4137 -0
- package/mcp-server/lib/cache.ts +341 -0
- package/mcp-server/lib/errors.ts +346 -0
- package/mcp-server/lib/executor.ts +792 -0
- package/mcp-server/lib/ids.ts +238 -0
- package/mcp-server/lib/logger.ts +368 -0
- package/mcp-server/lib/metrics.ts +365 -0
- package/mcp-server/lib/sandbox.ts +337 -0
- package/mcp-server/lib/validator.ts +229 -0
- package/mcp-server/package-lock.json +165 -0
- package/mcp-server/package.json +32 -7
- package/mcp-server/premium-tools.js +2 -2
- package/mcp-server/registry/tools.json +476 -0
- package/mcp-server/schemas/error-envelope.schema.json +125 -0
- package/mcp-server/schemas/finding.schema.json +167 -0
- package/mcp-server/schemas/report-artifact.schema.json +88 -0
- package/mcp-server/schemas/run-request.schema.json +75 -0
- package/mcp-server/schemas/verdict.schema.json +168 -0
- package/mcp-server/tier-auth.d.ts +71 -0
- package/mcp-server/tier-auth.js +371 -183
- package/mcp-server/truth-context.js +90 -131
- package/mcp-server/truth-firewall-tools.js +1000 -1611
- package/mcp-server/tsconfig.json +34 -0
- package/mcp-server/vibecheck-tools.js +2 -2
- package/mcp-server/vitest.config.ts +16 -0
- package/package.json +3 -4
- package/bin/runners/lib/agent-firewall/ai/false-positive-analyzer.js +0 -474
- package/bin/runners/lib/agent-firewall/change-packet/builder.js +0 -488
- package/bin/runners/lib/agent-firewall/change-packet/schema.json +0 -228
- package/bin/runners/lib/agent-firewall/change-packet/store.js +0 -200
- package/bin/runners/lib/agent-firewall/claims/claim-types.js +0 -21
- package/bin/runners/lib/agent-firewall/claims/extractor.js +0 -303
- package/bin/runners/lib/agent-firewall/claims/patterns.js +0 -24
- package/bin/runners/lib/agent-firewall/critic/index.js +0 -151
- package/bin/runners/lib/agent-firewall/critic/judge.js +0 -432
- package/bin/runners/lib/agent-firewall/critic/prompts.js +0 -305
- package/bin/runners/lib/agent-firewall/evidence/auth-evidence.js +0 -88
- package/bin/runners/lib/agent-firewall/evidence/contract-evidence.js +0 -75
- package/bin/runners/lib/agent-firewall/evidence/env-evidence.js +0 -127
- package/bin/runners/lib/agent-firewall/evidence/resolver.js +0 -102
- package/bin/runners/lib/agent-firewall/evidence/route-evidence.js +0 -213
- package/bin/runners/lib/agent-firewall/evidence/side-effect-evidence.js +0 -145
- package/bin/runners/lib/agent-firewall/fs-hook/daemon.js +0 -19
- package/bin/runners/lib/agent-firewall/fs-hook/installer.js +0 -87
- package/bin/runners/lib/agent-firewall/fs-hook/watcher.js +0 -184
- package/bin/runners/lib/agent-firewall/git-hook/pre-commit.js +0 -163
- package/bin/runners/lib/agent-firewall/ide-extension/cursor.js +0 -107
- package/bin/runners/lib/agent-firewall/ide-extension/vscode.js +0 -68
- package/bin/runners/lib/agent-firewall/ide-extension/windsurf.js +0 -66
- package/bin/runners/lib/agent-firewall/interceptor/base.js +0 -304
- package/bin/runners/lib/agent-firewall/interceptor/cursor.js +0 -35
- package/bin/runners/lib/agent-firewall/interceptor/vscode.js +0 -35
- package/bin/runners/lib/agent-firewall/interceptor/windsurf.js +0 -34
- package/bin/runners/lib/agent-firewall/lawbook/distributor.js +0 -465
- package/bin/runners/lib/agent-firewall/lawbook/evaluator.js +0 -604
- package/bin/runners/lib/agent-firewall/lawbook/index.js +0 -304
- package/bin/runners/lib/agent-firewall/lawbook/registry.js +0 -514
- package/bin/runners/lib/agent-firewall/lawbook/schema.js +0 -420
- package/bin/runners/lib/agent-firewall/learning/learning-engine.js +0 -849
- package/bin/runners/lib/agent-firewall/logger.js +0 -141
- package/bin/runners/lib/agent-firewall/policy/default-policy.json +0 -90
- package/bin/runners/lib/agent-firewall/policy/engine.js +0 -103
- package/bin/runners/lib/agent-firewall/policy/loader.js +0 -451
- package/bin/runners/lib/agent-firewall/policy/rules/auth-drift.js +0 -50
- package/bin/runners/lib/agent-firewall/policy/rules/contract-drift.js +0 -50
- package/bin/runners/lib/agent-firewall/policy/rules/fake-success.js +0 -86
- package/bin/runners/lib/agent-firewall/policy/rules/ghost-env.js +0 -162
- package/bin/runners/lib/agent-firewall/policy/rules/ghost-route.js +0 -189
- package/bin/runners/lib/agent-firewall/policy/rules/scope.js +0 -93
- package/bin/runners/lib/agent-firewall/policy/rules/unsafe-side-effect.js +0 -57
- package/bin/runners/lib/agent-firewall/policy/schema.json +0 -183
- package/bin/runners/lib/agent-firewall/policy/verdict.js +0 -54
- package/bin/runners/lib/agent-firewall/proposal/extractor.js +0 -394
- package/bin/runners/lib/agent-firewall/proposal/index.js +0 -212
- package/bin/runners/lib/agent-firewall/proposal/schema.js +0 -251
- package/bin/runners/lib/agent-firewall/proposal/validator.js +0 -386
- package/bin/runners/lib/agent-firewall/reality/index.js +0 -332
- package/bin/runners/lib/agent-firewall/reality/state.js +0 -625
- package/bin/runners/lib/agent-firewall/reality/watcher.js +0 -322
- package/bin/runners/lib/agent-firewall/risk/index.js +0 -173
- package/bin/runners/lib/agent-firewall/risk/scorer.js +0 -328
- package/bin/runners/lib/agent-firewall/risk/thresholds.js +0 -321
- package/bin/runners/lib/agent-firewall/risk/vectors.js +0 -421
- package/bin/runners/lib/agent-firewall/simulator/diff-simulator.js +0 -472
- package/bin/runners/lib/agent-firewall/simulator/import-resolver.js +0 -346
- package/bin/runners/lib/agent-firewall/simulator/index.js +0 -181
- package/bin/runners/lib/agent-firewall/simulator/route-validator.js +0 -380
- package/bin/runners/lib/agent-firewall/time-machine/incident-correlator.js +0 -661
- package/bin/runners/lib/agent-firewall/time-machine/index.js +0 -267
- package/bin/runners/lib/agent-firewall/time-machine/replay-engine.js +0 -436
- package/bin/runners/lib/agent-firewall/time-machine/state-reconstructor.js +0 -490
- package/bin/runners/lib/agent-firewall/time-machine/timeline-builder.js +0 -530
- package/bin/runners/lib/agent-firewall/truthpack/index.js +0 -67
- package/bin/runners/lib/agent-firewall/truthpack/loader.js +0 -137
- package/bin/runners/lib/agent-firewall/unblock/planner.js +0 -337
- package/bin/runners/lib/agent-firewall/utils/ignore-checker.js +0 -118
- package/bin/runners/lib/api-client.js +0 -269
- package/bin/runners/lib/audit-logger.js +0 -532
- package/bin/runners/lib/authority/authorities/architecture.js +0 -364
- package/bin/runners/lib/authority/authorities/compliance.js +0 -341
- package/bin/runners/lib/authority/authorities/human.js +0 -343
- package/bin/runners/lib/authority/authorities/quality.js +0 -420
- package/bin/runners/lib/authority/authorities/security.js +0 -228
- package/bin/runners/lib/authority/index.js +0 -293
- package/bin/runners/lib/authority-badge.js +0 -425
- package/bin/runners/lib/bundle/bundle-intelligence.js +0 -846
- package/bin/runners/lib/cli-charts.js +0 -368
- package/bin/runners/lib/cli-config-display.js +0 -405
- package/bin/runners/lib/cli-demo.js +0 -275
- package/bin/runners/lib/cli-errors.js +0 -438
- package/bin/runners/lib/cli-help-formatter.js +0 -439
- package/bin/runners/lib/cli-interactive-menu.js +0 -509
- package/bin/runners/lib/cli-prompts.js +0 -441
- package/bin/runners/lib/cli-scan-cards.js +0 -362
- package/bin/runners/lib/compliance-reporter.js +0 -710
- package/bin/runners/lib/conductor/index.js +0 -671
- package/bin/runners/lib/easy/README.md +0 -123
- package/bin/runners/lib/easy/index.js +0 -140
- package/bin/runners/lib/easy/interactive-wizard.js +0 -788
- package/bin/runners/lib/easy/one-click-firewall.js +0 -564
- package/bin/runners/lib/easy/zero-config-reality.js +0 -714
- package/bin/runners/lib/engines/accessibility-engine.js +0 -390
- package/bin/runners/lib/engines/api-consistency-engine.js +0 -467
- package/bin/runners/lib/engines/ast-cache.js +0 -99
- package/bin/runners/lib/engines/async-patterns-engine.js +0 -444
- package/bin/runners/lib/engines/bundle-size-engine.js +0 -433
- package/bin/runners/lib/engines/code-quality-engine.js +0 -255
- package/bin/runners/lib/engines/confidence-scoring.js +0 -276
- package/bin/runners/lib/engines/console-logs-engine.js +0 -115
- package/bin/runners/lib/engines/context-detection.js +0 -264
- package/bin/runners/lib/engines/cross-file-analysis-engine.js +0 -533
- package/bin/runners/lib/engines/database-patterns-engine.js +0 -429
- package/bin/runners/lib/engines/dead-code-engine.js +0 -198
- package/bin/runners/lib/engines/deprecated-api-engine.js +0 -226
- package/bin/runners/lib/engines/duplicate-code-engine.js +0 -354
- package/bin/runners/lib/engines/empty-catch-engine.js +0 -260
- package/bin/runners/lib/engines/env-variables-engine.js +0 -458
- package/bin/runners/lib/engines/error-handling-engine.js +0 -437
- package/bin/runners/lib/engines/false-positive-prevention.js +0 -630
- package/bin/runners/lib/engines/file-filter.js +0 -131
- package/bin/runners/lib/engines/framework-adapters/index.js +0 -607
- package/bin/runners/lib/engines/framework-detection.js +0 -508
- package/bin/runners/lib/engines/hardcoded-secrets-engine.js +0 -251
- package/bin/runners/lib/engines/import-order-engine.js +0 -429
- package/bin/runners/lib/engines/mock-data-engine.js +0 -315
- package/bin/runners/lib/engines/naming-conventions-engine.js +0 -544
- package/bin/runners/lib/engines/noise-reduction-engine.js +0 -452
- package/bin/runners/lib/engines/orchestrator.js +0 -334
- package/bin/runners/lib/engines/parallel-processor.js +0 -71
- package/bin/runners/lib/engines/performance-issues-engine.js +0 -405
- package/bin/runners/lib/engines/react-patterns-engine.js +0 -457
- package/bin/runners/lib/engines/security-vulnerabilities-engine.js +0 -571
- package/bin/runners/lib/engines/todo-fixme-engine.js +0 -115
- package/bin/runners/lib/engines/type-aware-engine.js +0 -376
- package/bin/runners/lib/engines/unsafe-regex-engine.js +0 -225
- package/bin/runners/lib/engines/vibecheck-engines/README.md +0 -53
- package/bin/runners/lib/engines/vibecheck-engines/index.js +0 -124
- package/bin/runners/lib/engines/vibecheck-engines/lib/ai-hallucination-engine.js +0 -806
- package/bin/runners/lib/engines/vibecheck-engines/lib/hardcoded-secrets-engine.js +0 -439
- package/bin/runners/lib/engines/vibecheck-engines/lib/smart-fix-engine.js +0 -577
- package/bin/runners/lib/engines/vibecheck-engines/lib/vibe-score-engine.js +0 -543
- package/bin/runners/lib/engines/vibecheck-engines/package.json +0 -13
- package/bin/runners/lib/engines/vibecheck-engines.js +0 -514
- package/bin/runners/lib/enhanced-features/index.js +0 -305
- package/bin/runners/lib/enhanced-output.js +0 -631
- package/bin/runners/lib/enterprise.js +0 -300
- package/bin/runners/lib/exit-codes.js +0 -275
- package/bin/runners/lib/fingerprint.js +0 -377
- package/bin/runners/lib/firewall/command-validator.js +0 -351
- package/bin/runners/lib/firewall/config.js +0 -341
- package/bin/runners/lib/firewall/content-validator.js +0 -519
- package/bin/runners/lib/firewall/index.js +0 -101
- package/bin/runners/lib/firewall/path-validator.js +0 -256
- package/bin/runners/lib/help-formatter.js +0 -413
- package/bin/runners/lib/intelligence/cross-repo-intelligence.js +0 -817
- package/bin/runners/lib/logger.js +0 -38
- package/bin/runners/lib/mcp-utils.js +0 -425
- package/bin/runners/lib/output/index.js +0 -1022
- package/bin/runners/lib/policy-engine.js +0 -652
- package/bin/runners/lib/polish/autofix/accessibility-fixes.js +0 -333
- package/bin/runners/lib/polish/autofix/async-handlers.js +0 -273
- package/bin/runners/lib/polish/autofix/dead-code.js +0 -280
- package/bin/runners/lib/polish/autofix/imports-optimizer.js +0 -344
- package/bin/runners/lib/polish/autofix/index.js +0 -200
- package/bin/runners/lib/polish/autofix/remove-consoles.js +0 -209
- package/bin/runners/lib/polish/autofix/strengthen-types.js +0 -245
- package/bin/runners/lib/polish/backend-checks.js +0 -148
- package/bin/runners/lib/polish/documentation-checks.js +0 -111
- package/bin/runners/lib/polish/frontend-checks.js +0 -168
- package/bin/runners/lib/polish/index.js +0 -71
- package/bin/runners/lib/polish/infrastructure-checks.js +0 -131
- package/bin/runners/lib/polish/library-detection.js +0 -175
- package/bin/runners/lib/polish/performance-checks.js +0 -100
- package/bin/runners/lib/polish/security-checks.js +0 -148
- package/bin/runners/lib/polish/utils.js +0 -203
- package/bin/runners/lib/prompt-builder.js +0 -540
- package/bin/runners/lib/proof-certificate.js +0 -634
- package/bin/runners/lib/reality/accessibility-audit.js +0 -946
- package/bin/runners/lib/reality/api-contract-validator.js +0 -1012
- package/bin/runners/lib/reality/chaos-engineering.js +0 -1084
- package/bin/runners/lib/reality/performance-tracker.js +0 -1077
- package/bin/runners/lib/reality/scenario-generator.js +0 -1404
- package/bin/runners/lib/reality/visual-regression.js +0 -852
- package/bin/runners/lib/reality-profiler.js +0 -717
- package/bin/runners/lib/replay/flight-recorder-viewer.js +0 -1160
- package/bin/runners/lib/review/ai-code-review.js +0 -832
- package/bin/runners/lib/rules/custom-rule-engine.js +0 -985
- package/bin/runners/lib/sbom-generator.js +0 -641
- package/bin/runners/lib/scan-output-enhanced.js +0 -512
- package/bin/runners/lib/security/owasp-scanner.js +0 -939
- package/bin/runners/lib/ship-output-enterprise.js +0 -239
- package/bin/runners/lib/unified-cli-output.js +0 -777
- package/bin/runners/lib/validators/contract-validator.js +0 -283
- package/bin/runners/lib/validators/dead-export-detector.js +0 -279
- package/bin/runners/lib/validators/dep-audit.js +0 -245
- package/bin/runners/lib/validators/env-validator.js +0 -319
- package/bin/runners/lib/validators/index.js +0 -120
- package/bin/runners/lib/validators/license-checker.js +0 -252
- package/bin/runners/lib/validators/route-validator.js +0 -290
- package/bin/runners/runAgent.d.ts +0 -5
- package/bin/runners/runAgent.js +0 -164
- package/bin/runners/runApprove.js +0 -1233
- package/bin/runners/runAuthority.js +0 -528
- package/bin/runners/runClassify.js +0 -862
- package/bin/runners/runConductor.js +0 -772
- package/bin/runners/runContainer.js +0 -366
- package/bin/runners/runContext.d.ts +0 -4
- package/bin/runners/runEasy.js +0 -410
- package/bin/runners/runFirewall.d.ts +0 -5
- package/bin/runners/runFirewall.js +0 -137
- package/bin/runners/runFirewallHook.d.ts +0 -5
- package/bin/runners/runFirewallHook.js +0 -59
- package/bin/runners/runIaC.js +0 -372
- package/bin/runners/runPolish.d.ts +0 -4
- package/bin/runners/runProof.zip +0 -0
- package/bin/runners/runTruth.d.ts +0 -5
- package/bin/runners/runTruth.js +0 -104
- package/bin/runners/runVibe.js +0 -791
- package/mcp-server/HARDENING_SUMMARY.md +0 -299
- package/mcp-server/agent-firewall-interceptor.js +0 -500
- package/mcp-server/authority-tools.js +0 -569
- package/mcp-server/conductor/conflict-resolver.js +0 -588
- package/mcp-server/conductor/execution-planner.js +0 -544
- package/mcp-server/conductor/index.js +0 -377
- package/mcp-server/conductor/lock-manager.js +0 -615
- package/mcp-server/conductor/request-queue.js +0 -550
- package/mcp-server/conductor/session-manager.js +0 -500
- package/mcp-server/conductor/tools.js +0 -510
- package/mcp-server/lib/api-client.cjs +0 -13
- package/mcp-server/lib/logger.cjs +0 -30
- package/mcp-server/logger.js +0 -173
- package/mcp-server/tools-v3.js +0 -1039
- package/mcp-server/tools.js +0 -495
- package/mcp-server/vibecheck-mcp-server-3.2.0.tgz +0 -0
package/bin/registry.js
CHANGED
|
@@ -1,51 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Vibecheck CLI Command Registry
|
|
2
|
+
* Vibecheck CLI Command Registry (LOCKED)
|
|
3
3
|
*
|
|
4
4
|
* Single source of truth for the public CLI surface.
|
|
5
5
|
* If it isn't here, it does not exist.
|
|
6
|
-
*
|
|
7
|
-
* Simple 2-tier model:
|
|
8
|
-
* - FREE ($0): Inspect & Observe
|
|
9
|
-
* - PRO ($69/mo): Fix, Prove & Enforce
|
|
10
|
-
*
|
|
11
|
-
* SCAN = Quick lint (5 core engines, fast, FREE)
|
|
12
|
-
* SHIP = Comprehensive verdict (all engines + proof cert, PRO)
|
|
13
6
|
*/
|
|
14
7
|
|
|
15
8
|
"use strict";
|
|
16
9
|
|
|
17
10
|
// ─────────────────────────────────────────────────────────────
|
|
18
|
-
//
|
|
11
|
+
// CORE 13 + APPROVED EXTRAS (locked surface area)
|
|
19
12
|
// ─────────────────────────────────────────────────────────────
|
|
20
13
|
const ALLOWED_COMMANDS = new Set([
|
|
21
|
-
//
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"conductor.unlock", // release file lock
|
|
48
|
-
"conductor.propose", // submit change proposal
|
|
14
|
+
// Core 13
|
|
15
|
+
"init",
|
|
16
|
+
"doctor",
|
|
17
|
+
"scan",
|
|
18
|
+
"report",
|
|
19
|
+
"fix",
|
|
20
|
+
"watch",
|
|
21
|
+
"checkpoint",
|
|
22
|
+
"polish",
|
|
23
|
+
"ship",
|
|
24
|
+
"prove", // replaces ctx
|
|
25
|
+
"reality", // runtime crawl
|
|
26
|
+
"context",
|
|
27
|
+
"guard",
|
|
28
|
+
|
|
29
|
+
// Proof artifacts (new)
|
|
30
|
+
"evidence-pack",
|
|
31
|
+
"allowlist",
|
|
32
|
+
|
|
33
|
+
// Approved extras
|
|
34
|
+
"mcp",
|
|
35
|
+
"login",
|
|
36
|
+
"logout",
|
|
37
|
+
"whoami",
|
|
38
|
+
"ai-test",
|
|
39
|
+
"labs",
|
|
49
40
|
]);
|
|
50
41
|
|
|
51
42
|
function assertAllowedOnly(obj) {
|
|
@@ -56,507 +47,241 @@ function assertAllowedOnly(obj) {
|
|
|
56
47
|
}
|
|
57
48
|
|
|
58
49
|
// ─────────────────────────────────────────────────────────────
|
|
59
|
-
// COMMANDS
|
|
50
|
+
// COMMANDS (ALLOWED ONLY)
|
|
60
51
|
// ─────────────────────────────────────────────────────────────
|
|
61
52
|
const COMMANDS = {
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
scan: {
|
|
67
|
-
description: "Quick lint - 5 core engines, fast feedback",
|
|
68
|
-
longDescription: "Fast static analysis using 5 core engines: secrets, mock data, console logs, type issues, and security vulnerabilities. Use for rapid feedback during development.",
|
|
53
|
+
// ── SETUP ───────────────────────────────────────────────────
|
|
54
|
+
init: {
|
|
55
|
+
description: "One-time setup (config + contracts + scripts)",
|
|
69
56
|
tier: "free",
|
|
70
|
-
category: "
|
|
71
|
-
aliases: ["
|
|
72
|
-
runner: () => require("./runners/
|
|
73
|
-
examples: [
|
|
74
|
-
{ command: "vibecheck scan", description: "Quick scan with 5 core engines" },
|
|
75
|
-
{ command: "vibecheck scan --json", description: "JSON output for CI" },
|
|
76
|
-
{ command: "vibecheck scan --allowlist list", description: "View suppressed findings" },
|
|
77
|
-
],
|
|
78
|
-
related: ["ship", "fix", "report"],
|
|
57
|
+
category: "setup",
|
|
58
|
+
aliases: ["setup", "configure"],
|
|
59
|
+
runner: () => require("./runners/runInit").runInit,
|
|
79
60
|
},
|
|
80
61
|
|
|
81
|
-
|
|
82
|
-
description: "
|
|
83
|
-
longDescription: "Generate project-aware AI coding rules and truthpack for your IDE. Creates .cursorrules, MDC files, and other IDE configurations.",
|
|
62
|
+
doctor: {
|
|
63
|
+
description: "Environment + dependency + config health check",
|
|
84
64
|
tier: "free",
|
|
85
65
|
category: "setup",
|
|
86
|
-
aliases: ["
|
|
87
|
-
runner: () => require("./runners/
|
|
88
|
-
examples: [
|
|
89
|
-
{ command: "vibecheck context", description: "Generate all IDE rules + truthpack" },
|
|
90
|
-
{ command: "vibecheck context --format cursor", description: ".cursorrules only" },
|
|
91
|
-
{ command: "vibecheck context --format mdc", description: "MDC files only" },
|
|
92
|
-
],
|
|
93
|
-
related: ["scan", "guard"],
|
|
66
|
+
aliases: ["health", "diag"],
|
|
67
|
+
runner: () => require("./runners/runDoctor").runDoctor,
|
|
94
68
|
},
|
|
95
69
|
|
|
96
70
|
watch: {
|
|
97
|
-
description: "
|
|
98
|
-
longDescription: "File watcher that automatically re-runs quick scan when your code changes.",
|
|
71
|
+
description: "Continuous mode - re-runs on changes",
|
|
99
72
|
tier: "free",
|
|
100
73
|
category: "setup",
|
|
101
74
|
aliases: ["w", "dev"],
|
|
102
75
|
runner: () => require("./runners/runWatch").runWatch,
|
|
103
|
-
examples: [
|
|
104
|
-
{ command: "vibecheck watch", description: "Start watching" },
|
|
105
|
-
{ command: "vibecheck watch --path ./src", description: "Watch specific directory" },
|
|
106
|
-
],
|
|
107
|
-
related: ["scan"],
|
|
108
76
|
},
|
|
109
77
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
78
|
+
// ── ANALYSIS ────────────────────────────────────────────────
|
|
79
|
+
checkpoint: {
|
|
80
|
+
description: "Compare baseline vs current, hallucination scoring",
|
|
113
81
|
tier: "free",
|
|
114
|
-
category: "
|
|
115
|
-
aliases: ["
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
82
|
+
category: "analysis",
|
|
83
|
+
aliases: ["cp", "compare", "diff"],
|
|
84
|
+
caps: "basic on FREE, hallucination scoring on PRO",
|
|
85
|
+
runner: () => require("./runners/runCheckpoint").runCheckpoint,
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
// ── PROOF LOOP ──────────────────────────────────────────────
|
|
89
|
+
scan: {
|
|
90
|
+
description: "Route integrity & code analysis scanner",
|
|
91
|
+
tier: "free",
|
|
92
|
+
category: "proof",
|
|
93
|
+
aliases: ["s", "check"],
|
|
94
|
+
runner: () => require("./runners/runScan").runScan,
|
|
123
95
|
},
|
|
124
96
|
|
|
125
97
|
report: {
|
|
126
|
-
description: "Generate HTML/SARIF reports
|
|
127
|
-
longDescription: "Create shareable reports from scan results in HTML, Markdown, or SARIF format.",
|
|
98
|
+
description: "Generate HTML/MD/SARIF reports",
|
|
128
99
|
tier: "free",
|
|
129
100
|
category: "output",
|
|
101
|
+
caps: "HTML/MD only on FREE",
|
|
130
102
|
aliases: ["html", "artifact"],
|
|
131
103
|
runner: () => require("./runners/runReport").runReport,
|
|
132
|
-
examples: [
|
|
133
|
-
{ command: "vibecheck report", description: "Generate HTML report" },
|
|
134
|
-
{ command: "vibecheck report --format md", description: "Markdown report" },
|
|
135
|
-
{ command: "vibecheck report --format sarif", description: "SARIF for GitHub" },
|
|
136
|
-
],
|
|
137
|
-
related: ["scan", "ship"],
|
|
138
104
|
},
|
|
139
105
|
|
|
140
|
-
|
|
141
|
-
description: "
|
|
142
|
-
longDescription: "Request approval from built-in authorities (security, architecture, compliance, quality) or human reviewers. Use 'authority list' to see available authorities and 'authority approve' to request approval.",
|
|
106
|
+
fix: {
|
|
107
|
+
description: "AI-powered auto-fix",
|
|
143
108
|
tier: "free",
|
|
144
|
-
category: "
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
{ command: "vibecheck authority list", description: "List all authorities" },
|
|
149
|
-
{ command: "vibecheck authority approve --authority security", description: "Security review" },
|
|
150
|
-
{ command: "vibecheck authority approve -a quality -a security", description: "Multi-authority" },
|
|
151
|
-
],
|
|
152
|
-
related: ["authority.list", "authority.approve", "ship"],
|
|
109
|
+
category: "proof",
|
|
110
|
+
caps: "--plan-only on FREE",
|
|
111
|
+
aliases: ["f", "repair"],
|
|
112
|
+
runner: () => require("./runners/runFix").runFix,
|
|
153
113
|
},
|
|
154
114
|
|
|
155
|
-
|
|
156
|
-
description: "
|
|
157
|
-
longDescription: "List all available authorities for code analysis and approval workflows.",
|
|
115
|
+
reality: {
|
|
116
|
+
description: "Runtime proof (browser crawl)",
|
|
158
117
|
tier: "free",
|
|
159
|
-
category: "
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
{
|
|
164
|
-
|
|
165
|
-
|
|
118
|
+
category: "proof",
|
|
119
|
+
caps: "preview mode on FREE (5 pages, no auth)",
|
|
120
|
+
aliases: ["r", "test", "e2e"],
|
|
121
|
+
runner: () => async (args, ctx) => {
|
|
122
|
+
const { runRuntime } = require("./runners/runRuntime");
|
|
123
|
+
return await runRuntime(["crawl", ...args], ctx);
|
|
124
|
+
},
|
|
166
125
|
},
|
|
167
126
|
|
|
168
|
-
|
|
169
|
-
description: "
|
|
170
|
-
longDescription: "Connect your CLI to the vibecheck API with your API key.",
|
|
127
|
+
ship: {
|
|
128
|
+
description: "Verdict engine - SHIP / WARN / BLOCK",
|
|
171
129
|
tier: "free",
|
|
172
|
-
category: "
|
|
173
|
-
aliases: ["
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
examples: [
|
|
177
|
-
{ command: "vibecheck login", description: "Interactive login" },
|
|
178
|
-
{ command: "vibecheck login --key YOUR_API_KEY", description: "Login with key" },
|
|
179
|
-
],
|
|
180
|
-
related: ["logout", "whoami"],
|
|
130
|
+
category: "proof",
|
|
131
|
+
aliases: ["verdict", "go"],
|
|
132
|
+
caps: "static-only on FREE",
|
|
133
|
+
runner: () => require("./runners/runShip").runShip,
|
|
181
134
|
},
|
|
182
135
|
|
|
183
|
-
|
|
184
|
-
description: "
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
runner: () => require("./runners/
|
|
190
|
-
skipAuth: true,
|
|
191
|
-
examples: [
|
|
192
|
-
{ command: "vibecheck logout", description: "Clear credentials" },
|
|
193
|
-
],
|
|
194
|
-
related: ["login", "whoami"],
|
|
136
|
+
prove: {
|
|
137
|
+
description: "One command reality proof - video + network evidence that your app works",
|
|
138
|
+
tier: "pro",
|
|
139
|
+
category: "proof",
|
|
140
|
+
aliases: ["p", "full", "all"],
|
|
141
|
+
caps: "video, trace, HAR recording enabled by default; CI-ready output",
|
|
142
|
+
runner: () => require("./runners/runProve").runProve,
|
|
195
143
|
},
|
|
196
144
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
145
|
+
// ── PROOF ARTIFACTS ─────────────────────────────────────────
|
|
146
|
+
"evidence-pack": {
|
|
147
|
+
description: "Bundle proof artifacts (videos, traces, screenshots) into shareable pack",
|
|
200
148
|
tier: "free",
|
|
201
|
-
category: "
|
|
202
|
-
aliases: ["
|
|
203
|
-
runner: () => require("./runners/
|
|
204
|
-
skipAuth: true,
|
|
205
|
-
examples: [
|
|
206
|
-
{ command: "vibecheck whoami", description: "Show user info" },
|
|
207
|
-
],
|
|
208
|
-
related: ["login", "logout"],
|
|
149
|
+
category: "proof",
|
|
150
|
+
aliases: ["pack", "bundle", "evidence"],
|
|
151
|
+
runner: () => require("./runners/runEvidencePack").runEvidencePack,
|
|
209
152
|
},
|
|
210
153
|
|
|
211
|
-
|
|
212
|
-
description: "
|
|
213
|
-
longDescription: "Initialize vibecheck in your project. Alias for 'vibecheck context'.",
|
|
154
|
+
allowlist: {
|
|
155
|
+
description: "Manage finding allowlist (suppress false positives)",
|
|
214
156
|
tier: "free",
|
|
215
|
-
category: "
|
|
216
|
-
aliases: ["
|
|
217
|
-
runner: () => require("./runners/
|
|
218
|
-
examples: [
|
|
219
|
-
{ command: "vibecheck init", description: "Initialize project" },
|
|
220
|
-
],
|
|
221
|
-
related: ["context", "doctor"],
|
|
222
|
-
},
|
|
223
|
-
|
|
224
|
-
// ══════════════════════════════════════════════════════════════
|
|
225
|
-
// PRO TIER ($69/mo) - Fix, Prove & Enforce
|
|
226
|
-
// ══════════════════════════════════════════════════════════════
|
|
227
|
-
|
|
228
|
-
ship: {
|
|
229
|
-
description: "Comprehensive verdict - ALL engines + route validation + proof cert",
|
|
230
|
-
longDescription: "The final word on whether your code is ready to ship. Runs ALL 15+ analysis engines, validates routes and contracts, generates proof certificate. SHIP/WARN/BLOCK verdict.",
|
|
231
|
-
tier: "pro",
|
|
232
|
-
category: "analysis",
|
|
233
|
-
aliases: ["verdict", "go", "full"],
|
|
234
|
-
runner: () => require("./runners/runShip").runShip,
|
|
235
|
-
examples: [
|
|
236
|
-
{ command: "vibecheck ship", description: "Get shipping verdict" },
|
|
237
|
-
{ command: "vibecheck ship --strict", description: "Fail on warnings" },
|
|
238
|
-
{ command: "vibecheck ship --badge", description: "Generate status badge" },
|
|
239
|
-
],
|
|
240
|
-
related: ["scan", "prove", "fix"],
|
|
241
|
-
},
|
|
242
|
-
|
|
243
|
-
fix: {
|
|
244
|
-
description: "AI-powered auto-fix with LLM",
|
|
245
|
-
longDescription: "Generate AI-powered fixes for detected issues. Uses LLM to analyze and fix problems automatically.",
|
|
246
|
-
tier: "pro",
|
|
247
|
-
category: "repair",
|
|
248
|
-
aliases: ["f", "repair", "autofix"],
|
|
249
|
-
runner: () => require("./runners/runFix").runFix,
|
|
250
|
-
examples: [
|
|
251
|
-
{ command: "vibecheck fix", description: "Generate fix missions" },
|
|
252
|
-
{ command: "vibecheck fix --apply", description: "Apply AI fixes" },
|
|
253
|
-
{ command: "vibecheck fix --loop", description: "Fix loop until clean" },
|
|
254
|
-
],
|
|
255
|
-
related: ["scan", "ship", "polish"],
|
|
157
|
+
category: "proof",
|
|
158
|
+
aliases: ["allow", "ignore", "whitelist"],
|
|
159
|
+
runner: () => require("./runners/runAllowlist").runAllowlist,
|
|
256
160
|
},
|
|
257
161
|
|
|
162
|
+
// ── QUALITY ────────────────────────────────────────────────
|
|
258
163
|
polish: {
|
|
259
|
-
description: "Production
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
aliases: ["prod", "final", "harden"],
|
|
164
|
+
description: "Production polish analyzer - finds missing essentials",
|
|
165
|
+
tier: "free",
|
|
166
|
+
category: "quality",
|
|
167
|
+
aliases: ["quality", "finalize", "ready"],
|
|
264
168
|
runner: () => require("./runners/runPolish").runPolish,
|
|
265
|
-
examples: [
|
|
266
|
-
{ command: "vibecheck polish", description: "Dry-run - preview changes" },
|
|
267
|
-
{ command: "vibecheck polish --apply", description: "Apply all auto-fixes" },
|
|
268
|
-
{ command: "vibecheck polish --passes remove-consoles,dead-code", description: "Run specific passes" },
|
|
269
|
-
{ command: "vibecheck polish --safe-only --apply", description: "Apply only safe fixes" },
|
|
270
|
-
{ command: "vibecheck polish --list-passes", description: "List available passes" },
|
|
271
|
-
],
|
|
272
|
-
related: ["ship", "fix", "scan"],
|
|
273
169
|
},
|
|
274
170
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
tier: "
|
|
279
|
-
category: "
|
|
280
|
-
aliases: ["
|
|
281
|
-
runner: () => require("./runners/
|
|
282
|
-
examples: [
|
|
283
|
-
{ command: "vibecheck reality --url http://localhost:3000", description: "Test localhost" },
|
|
284
|
-
{ command: "vibecheck reality --auth email:pass", description: "With authentication" },
|
|
285
|
-
{ command: "vibecheck reality --record", description: "Record video evidence" },
|
|
286
|
-
],
|
|
287
|
-
related: ["prove", "ship", "ai-test"],
|
|
288
|
-
},
|
|
289
|
-
|
|
290
|
-
"ai-test": {
|
|
291
|
-
description: "AI agent for autonomous app testing",
|
|
292
|
-
longDescription: "AI-powered autonomous testing that explores your app like a real user. Supports common scenarios like login, checkout, and signup flows.",
|
|
293
|
-
tier: "pro",
|
|
294
|
-
category: "verification",
|
|
295
|
-
aliases: ["agent", "autonomous"],
|
|
296
|
-
runner: () => require("./runners/runAIAgent").runAIAgent,
|
|
297
|
-
examples: [
|
|
298
|
-
{ command: "vibecheck ai-test --url http://localhost:3000", description: "Explore app autonomously" },
|
|
299
|
-
{ command: "vibecheck ai-test --url http://localhost:3000 --scenario login", description: "Test login flow" },
|
|
300
|
-
{ command: "vibecheck ai-test --url http://localhost:3000 --headed", description: "Watch the AI test" },
|
|
301
|
-
],
|
|
302
|
-
related: ["reality", "prove"],
|
|
303
|
-
},
|
|
304
|
-
|
|
305
|
-
prove: {
|
|
306
|
-
description: "Full proof loop with evidence pack",
|
|
307
|
-
longDescription: "Complete verification cycle: scan + reality check + evidence generation. Creates cryptographically signed proof pack.",
|
|
308
|
-
tier: "pro",
|
|
309
|
-
category: "verification",
|
|
310
|
-
aliases: ["p", "verify", "evidence"],
|
|
311
|
-
runner: () => require("./runners/runProve").runProve,
|
|
312
|
-
examples: [
|
|
313
|
-
{ command: "vibecheck prove", description: "Run full proof loop" },
|
|
314
|
-
{ command: "vibecheck prove --url http://localhost:3000", description: "With runtime testing" },
|
|
315
|
-
{ command: "vibecheck prove --bundle", description: "Generate evidence pack" },
|
|
316
|
-
],
|
|
317
|
-
related: ["ship", "reality"],
|
|
318
|
-
},
|
|
319
|
-
|
|
320
|
-
gate: {
|
|
321
|
-
description: "CI/CD enforcement - blocks deploys on issues",
|
|
322
|
-
longDescription: "Enforce quality gates in your CI/CD pipeline. Returns exit code 1 on failures to block deployments.",
|
|
323
|
-
tier: "pro",
|
|
324
|
-
category: "automation",
|
|
325
|
-
aliases: ["ci", "enforce", "block"],
|
|
326
|
-
runner: () => require("./runners/runGuard").runGate,
|
|
327
|
-
examples: [
|
|
328
|
-
{ command: "vibecheck gate", description: "Run CI gate check" },
|
|
329
|
-
{ command: "vibecheck gate --strict", description: "Strict mode (fail on warnings)" },
|
|
330
|
-
{ command: "vibecheck gate --threshold 80", description: "Custom score threshold" },
|
|
331
|
-
],
|
|
332
|
-
related: ["ship", "scan"],
|
|
171
|
+
// ── AI TRUTH ───────────────────────────────────────────────
|
|
172
|
+
context: {
|
|
173
|
+
description: "Generate IDE rules (.cursorrules, MDC, Windsurf, Copilot)",
|
|
174
|
+
tier: "free",
|
|
175
|
+
category: "truth",
|
|
176
|
+
aliases: ["rules", "ai-rules", "mdc"],
|
|
177
|
+
runner: () => require("./runners/runContext").runContext,
|
|
333
178
|
},
|
|
334
179
|
|
|
335
180
|
guard: {
|
|
336
|
-
description: "
|
|
337
|
-
longDescription: "AI agent firewall that validates file writes, command execution, and content. Observe mode (FREE) logs violations. Enforce mode (PRO) blocks violations. Protects against forbidden paths, dangerous commands, and hallucination patterns.",
|
|
181
|
+
description: "AI guardrails - prompt firewall & hallucination checking",
|
|
338
182
|
tier: "free",
|
|
339
|
-
category: "
|
|
340
|
-
|
|
341
|
-
aliases: ["firewall", "ai-guard"],
|
|
183
|
+
category: "truth",
|
|
184
|
+
aliases: ["ai-guard", "firewall", "validate"],
|
|
342
185
|
runner: () => require("./runners/runGuard").runGuard,
|
|
343
|
-
examples: [
|
|
344
|
-
{ command: "vibecheck guard --init", description: "Initialize firewall config" },
|
|
345
|
-
{ command: "vibecheck guard --mode observe --action write --path .env", description: "Check path (observe)" },
|
|
346
|
-
{ command: "vibecheck guard --mode enforce --action write --path .env", description: "Block write (PRO)" },
|
|
347
|
-
{ command: "vibecheck guard --action execute --command \"rm -rf /\"", description: "Validate command" },
|
|
348
|
-
{ command: "vibecheck guard --claims", description: "Verify AI claims (legacy)" },
|
|
349
|
-
],
|
|
350
|
-
related: ["context", "fix", "scan"],
|
|
351
186
|
},
|
|
352
187
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
tier: "
|
|
357
|
-
category: "
|
|
358
|
-
aliases: [
|
|
359
|
-
runner: () =>
|
|
360
|
-
const { runAuthority } = require("./runners/runAuthority");
|
|
361
|
-
return (args, context) => runAuthority(['approve', ...args], context);
|
|
362
|
-
},
|
|
363
|
-
examples: [
|
|
364
|
-
{ command: "vibecheck authority approve --authority security", description: "Security review" },
|
|
365
|
-
{ command: "vibecheck authority approve -a security -a quality", description: "Multi-authority" },
|
|
366
|
-
{ command: "vibecheck authority approve -a security --json", description: "JSON output" },
|
|
367
|
-
],
|
|
368
|
-
related: ["authority", "authority.list", "ship"],
|
|
188
|
+
// ── AUTOMATION ─────────────────────────────────────────────
|
|
189
|
+
mcp: {
|
|
190
|
+
description: "Start MCP server for AI IDEs",
|
|
191
|
+
tier: "starter",
|
|
192
|
+
category: "automation",
|
|
193
|
+
aliases: [],
|
|
194
|
+
runner: () => require("./runners/runMcp").runMcp,
|
|
369
195
|
},
|
|
370
196
|
|
|
371
|
-
"
|
|
372
|
-
description: "
|
|
373
|
-
longDescription: "View status of registered AI agents, active locks, and pending proposals.",
|
|
197
|
+
"ai-test": {
|
|
198
|
+
description: "AI autonomous test (alias: runtime agent)",
|
|
374
199
|
tier: "pro",
|
|
375
|
-
category: "
|
|
376
|
-
aliases: ["
|
|
377
|
-
runner: () =>
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
],
|
|
382
|
-
related: ["conductor.register", "conductor.lock"],
|
|
200
|
+
category: "automation",
|
|
201
|
+
aliases: ["ai", "agent"],
|
|
202
|
+
runner: () => async (args, ctx) => {
|
|
203
|
+
const { runRuntime } = require("./runners/runRuntime");
|
|
204
|
+
return await runRuntime(["agent", ...args], ctx);
|
|
205
|
+
},
|
|
383
206
|
},
|
|
384
207
|
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
tier: "
|
|
389
|
-
category: "
|
|
390
|
-
aliases: ["
|
|
391
|
-
runner: () => require("./runners/
|
|
392
|
-
|
|
393
|
-
{ command: "vibecheck conductor.register --name cursor", description: "Register agent" },
|
|
394
|
-
],
|
|
395
|
-
related: ["conductor.status", "conductor.lock"],
|
|
208
|
+
// ── ACCOUNT (skipAuth) ────────────────────────────────────
|
|
209
|
+
login: {
|
|
210
|
+
description: "Authenticate with API key",
|
|
211
|
+
tier: "free",
|
|
212
|
+
category: "account",
|
|
213
|
+
aliases: ["auth", "signin"],
|
|
214
|
+
runner: () => require("./runners/runAuth").runLogin,
|
|
215
|
+
skipAuth: true,
|
|
396
216
|
},
|
|
397
217
|
|
|
398
|
-
|
|
399
|
-
description: "
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
examples: [
|
|
406
|
-
{ command: "vibecheck conductor.lock src/file.ts", description: "Lock file" },
|
|
407
|
-
{ command: "vibecheck conductor.lock --agent cursor src/", description: "Lock directory" },
|
|
408
|
-
],
|
|
409
|
-
related: ["conductor.unlock", "conductor.status"],
|
|
218
|
+
logout: {
|
|
219
|
+
description: "Remove stored credentials",
|
|
220
|
+
tier: "free",
|
|
221
|
+
category: "account",
|
|
222
|
+
aliases: ["signout"],
|
|
223
|
+
runner: () => require("./runners/runAuth").runLogout,
|
|
224
|
+
skipAuth: true,
|
|
410
225
|
},
|
|
411
226
|
|
|
412
|
-
|
|
413
|
-
description: "
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
examples: [
|
|
420
|
-
{ command: "vibecheck conductor.unlock src/file.ts", description: "Unlock file" },
|
|
421
|
-
{ command: "vibecheck conductor.unlock --all", description: "Release all locks" },
|
|
422
|
-
],
|
|
423
|
-
related: ["conductor.lock", "conductor.status"],
|
|
227
|
+
whoami: {
|
|
228
|
+
description: "Show current user and plan",
|
|
229
|
+
tier: "free",
|
|
230
|
+
category: "account",
|
|
231
|
+
aliases: ["me", "user"],
|
|
232
|
+
runner: () => require("./runners/runAuth").runWhoami,
|
|
233
|
+
skipAuth: true,
|
|
424
234
|
},
|
|
425
235
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
tier: "
|
|
430
|
-
category: "
|
|
431
|
-
aliases: ["
|
|
432
|
-
runner: () => require("./runners/
|
|
433
|
-
examples: [
|
|
434
|
-
{ command: "vibecheck conductor.propose --diff changes.patch", description: "Submit proposal" },
|
|
435
|
-
],
|
|
436
|
-
related: ["conductor.status", "authority.approve"],
|
|
236
|
+
// ── EXTRAS ────────────────────────────────────────────────
|
|
237
|
+
labs: {
|
|
238
|
+
description: "Experimental features",
|
|
239
|
+
tier: "free",
|
|
240
|
+
category: "extras",
|
|
241
|
+
aliases: ["experimental", "beta"],
|
|
242
|
+
runner: () => require("./runners/runLabs").runLabs,
|
|
437
243
|
},
|
|
438
244
|
};
|
|
439
245
|
|
|
440
|
-
// Validate that only allowed commands are defined
|
|
441
246
|
assertAllowedOnly(COMMANDS);
|
|
442
247
|
|
|
443
248
|
// ─────────────────────────────────────────────────────────────
|
|
444
|
-
//
|
|
249
|
+
// DERIVED MAPS
|
|
445
250
|
// ─────────────────────────────────────────────────────────────
|
|
446
|
-
function isPro(tier) {
|
|
447
|
-
return tier === "pro";
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
function requiresPro(commandName) {
|
|
451
|
-
const cmd = COMMANDS[commandName];
|
|
452
|
-
return cmd && cmd.tier === "pro";
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
function getFreeCommands() {
|
|
456
|
-
return Object.entries(COMMANDS)
|
|
457
|
-
.filter(([, cmd]) => cmd.tier === "free")
|
|
458
|
-
.map(([name]) => name);
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
function getProCommands() {
|
|
462
|
-
return Object.entries(COMMANDS)
|
|
463
|
-
.filter(([, cmd]) => cmd.tier === "pro")
|
|
464
|
-
.map(([name]) => name);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
// ─────────────────────────────────────────────────────────────
|
|
468
|
-
// BUILD DERIVED DATA STRUCTURES
|
|
469
|
-
// ─────────────────────────────────────────────────────────────
|
|
470
|
-
|
|
471
|
-
// Build alias map: { alias -> command }
|
|
472
251
|
const ALIAS_MAP = {};
|
|
473
|
-
for (const [
|
|
474
|
-
|
|
475
|
-
for (const alias of cmd.aliases) {
|
|
476
|
-
ALIAS_MAP[alias] = cmdName;
|
|
477
|
-
}
|
|
478
|
-
}
|
|
252
|
+
for (const [cmd, def] of Object.entries(COMMANDS)) {
|
|
253
|
+
for (const alias of def.aliases || []) ALIAS_MAP[alias] = cmd;
|
|
479
254
|
}
|
|
480
255
|
|
|
481
|
-
|
|
482
|
-
const ALL_COMMANDS = new Set([
|
|
256
|
+
const ALL_COMMANDS = [
|
|
483
257
|
...Object.keys(COMMANDS),
|
|
484
|
-
...Object.
|
|
485
|
-
]
|
|
258
|
+
...Object.values(COMMANDS).flatMap((c) => c.aliases || []),
|
|
259
|
+
];
|
|
486
260
|
|
|
487
261
|
// ─────────────────────────────────────────────────────────────
|
|
488
|
-
//
|
|
262
|
+
// RUNNER LOADER
|
|
489
263
|
// ─────────────────────────────────────────────────────────────
|
|
264
|
+
function getRunner(cmd, styles = {}) {
|
|
265
|
+
const def = COMMANDS[cmd];
|
|
266
|
+
if (!def) return null;
|
|
267
|
+
|
|
268
|
+
const red = styles.red || "";
|
|
269
|
+
const reset = styles.reset || "";
|
|
270
|
+
const errorSym = styles.errorSymbol || "✗";
|
|
490
271
|
|
|
491
|
-
function getRunner(cmd, opts = {}) {
|
|
492
|
-
// Resolve alias to canonical command
|
|
493
|
-
const canonicalCmd = ALIAS_MAP[cmd] || cmd;
|
|
494
|
-
const def = COMMANDS[canonicalCmd];
|
|
495
|
-
|
|
496
|
-
if (!def) {
|
|
497
|
-
return null;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
if (!def.runner) {
|
|
501
|
-
return null;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
272
|
try {
|
|
505
273
|
return def.runner();
|
|
506
274
|
} catch (e) {
|
|
507
|
-
|
|
508
|
-
console.error(`${
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
function getCommand(name) {
|
|
515
|
-
// Check direct name
|
|
516
|
-
if (COMMANDS[name]) return COMMANDS[name];
|
|
517
|
-
|
|
518
|
-
// Check alias map
|
|
519
|
-
const canonical = ALIAS_MAP[name];
|
|
520
|
-
if (canonical && COMMANDS[canonical]) {
|
|
521
|
-
return { ...COMMANDS[canonical], _resolvedFrom: name, _canonicalName: canonical };
|
|
275
|
+
return async () => {
|
|
276
|
+
console.error(`${red}${errorSym}${reset} Failed to load ${cmd}: ${e.message}`);
|
|
277
|
+
return 1;
|
|
278
|
+
};
|
|
522
279
|
}
|
|
523
|
-
|
|
524
|
-
return null;
|
|
525
280
|
}
|
|
526
281
|
|
|
527
|
-
function resolveCommand(name) {
|
|
528
|
-
return ALIAS_MAP[name] || name;
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
// ─────────────────────────────────────────────────────────────
|
|
532
|
-
// EXPORTS
|
|
533
|
-
// ─────────────────────────────────────────────────────────────
|
|
534
282
|
module.exports = {
|
|
535
|
-
// Core data
|
|
536
283
|
COMMANDS,
|
|
537
|
-
ALLOWED_COMMANDS,
|
|
538
284
|
ALIAS_MAP,
|
|
539
285
|
ALL_COMMANDS,
|
|
540
|
-
|
|
541
|
-
// Tier helpers
|
|
542
|
-
isPro,
|
|
543
|
-
requiresPro,
|
|
544
|
-
getFreeCommands,
|
|
545
|
-
getProCommands,
|
|
546
|
-
|
|
547
|
-
// Getters
|
|
548
286
|
getRunner,
|
|
549
|
-
getCommand,
|
|
550
|
-
resolveCommand,
|
|
551
|
-
listCommands: () => Object.keys(COMMANDS),
|
|
552
|
-
|
|
553
|
-
getCommandsByTier: (tier) =>
|
|
554
|
-
Object.entries(COMMANDS)
|
|
555
|
-
.filter(([, cmd]) => cmd.tier === tier)
|
|
556
|
-
.map(([name, cmd]) => ({ name, ...cmd })),
|
|
557
|
-
|
|
558
|
-
getCommandsByCategory: (category) =>
|
|
559
|
-
Object.entries(COMMANDS)
|
|
560
|
-
.filter(([, cmd]) => cmd.category === category)
|
|
561
|
-
.map(([name, cmd]) => ({ name, ...cmd })),
|
|
562
287
|
};
|