@vibecheckai/cli 3.1.2 → 3.1.4
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/README.md +60 -33
- package/bin/registry.js +319 -34
- package/bin/runners/CLI_REFACTOR_SUMMARY.md +229 -0
- package/bin/runners/REPORT_AUDIT.md +64 -0
- package/bin/runners/lib/entitlements-v2.js +97 -28
- package/bin/runners/lib/entitlements.js +3 -6
- package/bin/runners/lib/init-wizard.js +1 -1
- package/bin/runners/lib/report-engine.js +459 -280
- package/bin/runners/lib/report-html.js +1154 -1423
- package/bin/runners/lib/report-output.js +187 -0
- package/bin/runners/lib/report-templates.js +848 -850
- package/bin/runners/lib/scan-output.js +545 -0
- package/bin/runners/lib/server-usage.js +0 -12
- package/bin/runners/lib/ship-output.js +641 -0
- package/bin/runners/lib/status-output.js +253 -0
- package/bin/runners/lib/terminal-ui.js +853 -0
- package/bin/runners/runCheckpoint.js +502 -0
- package/bin/runners/runContracts.js +105 -0
- package/bin/runners/runExport.js +93 -0
- package/bin/runners/runFix.js +31 -24
- package/bin/runners/runInit.js +377 -112
- package/bin/runners/runInstall.js +1 -5
- package/bin/runners/runLabs.js +3 -3
- package/bin/runners/runPolish.js +2452 -0
- package/bin/runners/runProve.js +2 -2
- package/bin/runners/runReport.js +251 -200
- package/bin/runners/runRuntime.js +110 -0
- package/bin/runners/runScan.js +477 -379
- package/bin/runners/runSecurity.js +92 -0
- package/bin/runners/runShip.js +137 -207
- package/bin/runners/runStatus.js +16 -68
- package/bin/runners/utils.js +5 -5
- package/bin/vibecheck.js +25 -11
- package/mcp-server/index.js +150 -18
- package/mcp-server/package.json +2 -2
- package/mcp-server/premium-tools.js +13 -13
- package/mcp-server/tier-auth.js +292 -27
- package/mcp-server/vibecheck-tools.js +9 -9
- package/package.json +1 -1
- package/bin/runners/runClaimVerifier.js +0 -483
- package/bin/runners/runContextCompiler.js +0 -385
- package/bin/runners/runGate.js +0 -17
- package/bin/runners/runInitGha.js +0 -164
- package/bin/runners/runInteractive.js +0 -388
- package/bin/runners/runMdc.js +0 -204
- package/bin/runners/runMissionGenerator.js +0 -282
- package/bin/runners/runTruthpack.js +0 -636
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# CLI Refactor Summary - The 14-Command Vibecheck CLI
|
|
2
|
+
|
|
3
|
+
**Date:** $(date)
|
|
4
|
+
**Purpose:** Consolidate CLI into 14 core commands with backward-compatible aliases
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## The 14 Core Commands
|
|
9
|
+
|
|
10
|
+
### SETUP (2 commands)
|
|
11
|
+
| # | Command | Description | Tier |
|
|
12
|
+
|---|---------|-------------|------|
|
|
13
|
+
| 1 | `init` | One-time setup (config + contracts + scripts) | FREE |
|
|
14
|
+
| 2 | `doctor` | Environment + dependency + config health check | FREE |
|
|
15
|
+
|
|
16
|
+
### AI TRUTH LANE (4 commands)
|
|
17
|
+
| # | Command | Description | Tier |
|
|
18
|
+
|---|---------|-------------|------|
|
|
19
|
+
| 3 | `ctx` | Truthpack generation - core truth engine | FREE |
|
|
20
|
+
| 4 | `context` | Generate IDE rules (.cursorrules, MDC, Windsurf, Copilot) | FREE |
|
|
21
|
+
| 5 | `guard` | AI guardrails - prompt firewall & hallucination checking | FREE |
|
|
22
|
+
| 6 | `contracts` | CI gate for contract drift / invariants | FREE |
|
|
23
|
+
|
|
24
|
+
### PROOF LOOP (5 commands)
|
|
25
|
+
| # | Command | Description | Tier |
|
|
26
|
+
|---|---------|-------------|------|
|
|
27
|
+
| 7 | `ship` | Verdict engine - SHIP / WARN / BLOCK | FREE |
|
|
28
|
+
| 8 | `runtime` | Browser-based runtime verification | FREE |
|
|
29
|
+
| 9 | `fix` | AI-powered auto-fix | FREE |
|
|
30
|
+
| 10 | `prove` | Full proof loop - ctx → runtime → ship → fix | PRO |
|
|
31
|
+
| 11 | `security` | AuthZ matrix & IDOR detection | PRO |
|
|
32
|
+
|
|
33
|
+
### OUTPUT & AUTOMATION (3 commands)
|
|
34
|
+
| # | Command | Description | Tier |
|
|
35
|
+
|---|---------|-------------|------|
|
|
36
|
+
| 12 | `report` | Generate HTML/MD/SARIF reports | FREE |
|
|
37
|
+
| 13 | `export` | Generate collaboration outputs | FREE |
|
|
38
|
+
| 14 | `mcp` | Start MCP server for AI IDEs | STARTER |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## AI Truth Lane - Deep Dive
|
|
43
|
+
|
|
44
|
+
### `vibecheck ctx` - Truthpack Generation
|
|
45
|
+
The core truth engine that builds the "ground truth" of your project:
|
|
46
|
+
- Project metadata (frameworks, workspaces, entrypoints)
|
|
47
|
+
- Server routes and client route references
|
|
48
|
+
- Environment variables and auth patterns
|
|
49
|
+
- Billing/payment integrations
|
|
50
|
+
- External service integrations
|
|
51
|
+
|
|
52
|
+
**Subcommands:**
|
|
53
|
+
- `ctx build` - Build/refresh truthpack
|
|
54
|
+
- `ctx diff` - Show drift from contracts
|
|
55
|
+
- `ctx sync` - Update contracts from truthpack
|
|
56
|
+
- `ctx search` - Semantic search in context
|
|
57
|
+
|
|
58
|
+
### `vibecheck context` - IDE Rules & MDC Generation
|
|
59
|
+
Generates context files for AI coding assistants:
|
|
60
|
+
- `.cursorrules` - Cursor IDE rules
|
|
61
|
+
- `.cursor/rules/*.mdc` - Cursor MDC files
|
|
62
|
+
- `.windsurf/rules/*.md` - Windsurf rules
|
|
63
|
+
- `.github/copilot-instructions.md` - GitHub Copilot
|
|
64
|
+
- `.claude/` and `.codex/` instructions
|
|
65
|
+
- `.vibecheck/context.json` - Universal context
|
|
66
|
+
|
|
67
|
+
Also supports:
|
|
68
|
+
- Semantic code search
|
|
69
|
+
- Secret/vulnerability scanning
|
|
70
|
+
- AI task decomposition
|
|
71
|
+
- Multi-repo federation
|
|
72
|
+
- AI memory storage
|
|
73
|
+
|
|
74
|
+
### `vibecheck guard` - AI Guardrails
|
|
75
|
+
The prompt firewall and hallucination prevention system:
|
|
76
|
+
- Validates AI claims against truthpack
|
|
77
|
+
- Breaks prompts into tasks and verifies them
|
|
78
|
+
- Checks for hallucination risks
|
|
79
|
+
- Version-control aware fixes
|
|
80
|
+
- Can generate diffs and apply fixes
|
|
81
|
+
|
|
82
|
+
### `vibecheck contracts` - Contract Drift Detection
|
|
83
|
+
CI gate for ensuring code doesn't drift from contracts:
|
|
84
|
+
- Validates routes against routes.json
|
|
85
|
+
- Validates env vars against env.json
|
|
86
|
+
- Validates auth patterns against auth.json
|
|
87
|
+
- Returns SHIP/WARN/BLOCK verdict
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Subcommand Reference
|
|
92
|
+
|
|
93
|
+
### `runtime` Subcommands
|
|
94
|
+
- `runtime crawl --url <url>` - UI verification (replaces `reality`)
|
|
95
|
+
- `runtime agent --url <url>` - AI autonomous testing (replaces `ai-test`)
|
|
96
|
+
- `runtime record --url <url>` - Record session (replaces `replay record`)
|
|
97
|
+
- `runtime play <capsule>` - Replay session (replaces `replay play`)
|
|
98
|
+
|
|
99
|
+
### `export` Subcommands
|
|
100
|
+
- `export pr` - Generate PR comment (replaces `pr`)
|
|
101
|
+
- `export badge` - Generate ship badge (replaces `badge`)
|
|
102
|
+
- `export bundle` - Generate share pack (replaces `share`)
|
|
103
|
+
|
|
104
|
+
### `security` Subcommands
|
|
105
|
+
- `security model` - Extract auth model (replaces `permissions --learn`)
|
|
106
|
+
- `security matrix` - Build AuthZ matrix (replaces `permissions --matrix`)
|
|
107
|
+
- `security idor` - Detect IDOR candidates (replaces `permissions --idor`)
|
|
108
|
+
- `security prove --url <url>` - Runtime verification
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Backward Compatibility Aliases
|
|
113
|
+
|
|
114
|
+
All old commands still work:
|
|
115
|
+
|
|
116
|
+
| Old Command | New Command |
|
|
117
|
+
|-------------|-------------|
|
|
118
|
+
| `install` | `init --quick` |
|
|
119
|
+
| `scan` | `ship --mode scan` |
|
|
120
|
+
| `gate` | `ship --ci` |
|
|
121
|
+
| `reality` | `runtime crawl` |
|
|
122
|
+
| `ai-test` | `runtime agent` |
|
|
123
|
+
| `replay record` | `runtime record` |
|
|
124
|
+
| `replay play` | `runtime play` |
|
|
125
|
+
| `pr` | `export pr` |
|
|
126
|
+
| `badge` | `export badge` |
|
|
127
|
+
| `share` | `export bundle` |
|
|
128
|
+
| `permissions` | `security model` |
|
|
129
|
+
| `mdc` | `context` (alias) |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## The "What Do I Run?" Cheat Sheet
|
|
134
|
+
|
|
135
|
+
### Daily Development
|
|
136
|
+
```bash
|
|
137
|
+
vibecheck ship # Quick verdict
|
|
138
|
+
vibecheck watch # Continuous mode
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### New Project Setup
|
|
142
|
+
```bash
|
|
143
|
+
vibecheck init # Full wizard
|
|
144
|
+
vibecheck init --quick # Fast setup
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Before Pushing
|
|
148
|
+
```bash
|
|
149
|
+
vibecheck ship # Static verdict
|
|
150
|
+
vibecheck ship --with runtime # Include runtime findings
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Before Deploying
|
|
154
|
+
```bash
|
|
155
|
+
vibecheck prove # Full proof loop
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### In CI/CD
|
|
159
|
+
```bash
|
|
160
|
+
vibecheck ship --ci # CI verdict
|
|
161
|
+
vibecheck contracts --strict # Contract drift gate
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### AI Context Generation
|
|
165
|
+
```bash
|
|
166
|
+
vibecheck ctx # Build truthpack
|
|
167
|
+
vibecheck context # Generate IDE rules & MDC
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### AI Guardrails
|
|
171
|
+
```bash
|
|
172
|
+
vibecheck guard # Validate AI output
|
|
173
|
+
vibecheck verify # Verify AI-generated code
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Key Distinctions
|
|
179
|
+
|
|
180
|
+
### `guard` vs `contracts`
|
|
181
|
+
- **`guard`** = AI guardrails (prompt firewall, hallucination checking)
|
|
182
|
+
- **`contracts`** = Contract drift (CI gate for code vs contracts)
|
|
183
|
+
|
|
184
|
+
### `ctx` vs `context`
|
|
185
|
+
- **`ctx`** = Core truth engine (builds truthpack)
|
|
186
|
+
- **`context`** = IDE rules & MDC generation (consumes truthpack)
|
|
187
|
+
|
|
188
|
+
### `ship` vs `prove`
|
|
189
|
+
- **`ship`** = Single verdict (static or with runtime)
|
|
190
|
+
- **`prove`** = Full loop (ctx → runtime → ship → fix → verify)
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Additional Commands (DX Helpers)
|
|
195
|
+
|
|
196
|
+
These commands are kept for convenience but not part of the core 14:
|
|
197
|
+
|
|
198
|
+
| Command | Description | Tier |
|
|
199
|
+
|---------|-------------|------|
|
|
200
|
+
| `status` | Project health dashboard | FREE |
|
|
201
|
+
| `watch` | Continuous mode - re-runs on changes | FREE |
|
|
202
|
+
| `launch` | Pre-launch checklist wizard | STARTER |
|
|
203
|
+
| `preflight` | Deployment validation checks | FREE |
|
|
204
|
+
| `verify` | Verify AI-generated code output | FREE |
|
|
205
|
+
| `graph` | Reality proof graph visualization | PRO |
|
|
206
|
+
|
|
207
|
+
### Account Commands
|
|
208
|
+
| Command | Description |
|
|
209
|
+
|---------|-------------|
|
|
210
|
+
| `login` | Authenticate with API key |
|
|
211
|
+
| `logout` | Remove stored credentials |
|
|
212
|
+
| `whoami` | Show current user and plan |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Summary
|
|
217
|
+
|
|
218
|
+
The 14-command structure provides:
|
|
219
|
+
|
|
220
|
+
1. **Clear Setup** - `init`, `doctor`
|
|
221
|
+
2. **AI Truth Lane** - `ctx`, `context`, `guard`, `contracts`
|
|
222
|
+
3. **Proof Loop** - `ship`, `runtime`, `fix`, `prove`, `security`
|
|
223
|
+
4. **Output & Automation** - `report`, `export`, `mcp`
|
|
224
|
+
|
|
225
|
+
All features preserved, no confusion:
|
|
226
|
+
- AI guardrails live in `guard`
|
|
227
|
+
- Contract drift lives in `contracts`
|
|
228
|
+
- MDC/IDE rules live in `context`
|
|
229
|
+
- Truthpack generation lives in `ctx`
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Report Generation Audit
|
|
2
|
+
|
|
3
|
+
## Commands That Generate Reports Automatically
|
|
4
|
+
|
|
5
|
+
### ✅ Updated Commands
|
|
6
|
+
|
|
7
|
+
1. **`vibecheck ship`**
|
|
8
|
+
- **Location**: `bin/runners/runShip.js`
|
|
9
|
+
- **Report**: `.vibecheck/report.html`
|
|
10
|
+
- **Type**: Technical report (detailed)
|
|
11
|
+
- **Generator**: `lib/html-report.js` → `generateHTMLReport()`
|
|
12
|
+
- **Status**: ✅ Updated to use better HTML report generator
|
|
13
|
+
|
|
14
|
+
2. **`vibecheck report`**
|
|
15
|
+
- **Location**: `bin/runners/runReport.js`
|
|
16
|
+
- **Report**: `.vibecheck/report.html` (or custom path)
|
|
17
|
+
- **Types**:
|
|
18
|
+
- `--type=executive`: Client-friendly executive report
|
|
19
|
+
- `--type=technical` (default): Detailed technical report
|
|
20
|
+
- `--type=compliance`: Compliance report (PRO tier)
|
|
21
|
+
- **Generator**:
|
|
22
|
+
- Executive: `lib/report-templates.js` → `generateEnhancedExecutiveReport()`
|
|
23
|
+
- Technical: `lib/html-report.js` → `generateHTMLReport()`
|
|
24
|
+
- **Status**: ✅ Updated - executive uses client-friendly template, technical uses detailed generator
|
|
25
|
+
|
|
26
|
+
3. **`writeArtifacts()` utility**
|
|
27
|
+
- **Location**: `bin/runners/utils.js`
|
|
28
|
+
- **Report**: `.vibecheck/report.html`
|
|
29
|
+
- **Type**: Technical report (detailed)
|
|
30
|
+
- **Generator**: `lib/html-report.js` → `generateHTMLReport()`
|
|
31
|
+
- **Used by**: `runShip.js` (but skipped since ship generates its own)
|
|
32
|
+
- **Status**: ✅ Updated to use better HTML report generator
|
|
33
|
+
|
|
34
|
+
### ✅ Specialized Reports (Keep As-Is)
|
|
35
|
+
|
|
36
|
+
4. **`vibecheck reality`**
|
|
37
|
+
- **Location**: `bin/runners/reality/report.js`
|
|
38
|
+
- **Report**: `.vibecheck/reality/reality-report.html`
|
|
39
|
+
- **Type**: Reality mode specific report (runtime testing results)
|
|
40
|
+
- **Generator**: `reality/report.js` → `writeHtmlReport()`
|
|
41
|
+
- **Status**: ✅ Appropriate - specialized for reality mode, different format needed
|
|
42
|
+
|
|
43
|
+
5. **`vibecheck prove`**
|
|
44
|
+
- **Location**: `bin/runners/runProve.js`
|
|
45
|
+
- **Report**: `.vibecheck/prove_report.json` (JSON only, no HTML)
|
|
46
|
+
- **Status**: ✅ Appropriate - JSON format for orchestration results
|
|
47
|
+
|
|
48
|
+
### 📋 Summary
|
|
49
|
+
|
|
50
|
+
**Commands that generate `report.html` automatically:**
|
|
51
|
+
- ✅ `vibecheck ship` → Uses technical report generator
|
|
52
|
+
- ✅ `vibecheck report` → Uses executive (client-friendly) or technical (default)
|
|
53
|
+
- ✅ `writeArtifacts()` → Uses technical report generator (fallback)
|
|
54
|
+
|
|
55
|
+
**Report Types:**
|
|
56
|
+
- **Executive Report** (`--type=executive`): Client-friendly, simplified, stakeholder-focused
|
|
57
|
+
- **Technical Report** (default): Detailed, developer-focused, includes file paths and code references
|
|
58
|
+
- **Reality Report**: Specialized runtime testing report (different format)
|
|
59
|
+
|
|
60
|
+
**Consistency:**
|
|
61
|
+
- All general-purpose reports now use the unified HTML report generator
|
|
62
|
+
- Executive reports use client-friendly templates
|
|
63
|
+
- Technical reports use detailed generator
|
|
64
|
+
- Specialized reports (reality) use their own formats (appropriate)
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
*
|
|
18
18
|
* Tiers:
|
|
19
19
|
* - FREE ($0): Basic scanning and validation
|
|
20
|
-
* -
|
|
21
|
-
* -
|
|
20
|
+
* - STARTER ($39/repo/mo): CI/CD gates, PR checks, badges, MCP
|
|
21
|
+
* - PRO ($99/repo/mo): Full fix, prove, ai-test, share, advanced reality, permissions, graph, patch apply
|
|
22
|
+
* - COMPLIANCE (Enterprise): Advanced compliance packs, audit trails
|
|
22
23
|
*/
|
|
23
24
|
|
|
24
25
|
"use strict";
|
|
@@ -41,9 +42,9 @@ const EXIT_MISCONFIG = 4;
|
|
|
41
42
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
42
43
|
const TIERS = {
|
|
43
44
|
free: { name: "FREE", price: 0, order: 0 },
|
|
44
|
-
starter: { name: "STARTER", price:
|
|
45
|
+
starter: { name: "STARTER", price: 39, order: 1 }, // Updated pricing
|
|
45
46
|
pro: { name: "PRO", price: 99, order: 2 },
|
|
46
|
-
|
|
47
|
+
compliance: { name: "COMPLIANCE", price: 0, order: 3 }, // Enterprise/on-prem
|
|
47
48
|
};
|
|
48
49
|
|
|
49
50
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
@@ -51,64 +52,122 @@ const TIERS = {
|
|
|
51
52
|
// Format: feature -> { minTier, caps?, downgrade? }
|
|
52
53
|
// ═══════════════════════════════════════════════════════════════════════════════
|
|
53
54
|
const ENTITLEMENTS = {
|
|
54
|
-
//
|
|
55
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
56
|
+
// CORE COMMANDS
|
|
57
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
55
58
|
"scan": { minTier: "free" },
|
|
59
|
+
"scan.autofix": { minTier: "starter" }, // Apply safe fixes + missions
|
|
56
60
|
"ship": { minTier: "free", caps: { free: "static-only" } },
|
|
57
61
|
"ship.static": { minTier: "free" },
|
|
58
62
|
"ship.full": { minTier: "pro" },
|
|
59
63
|
|
|
60
|
-
//
|
|
64
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
65
|
+
// INIT MODES
|
|
66
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
67
|
+
"init": { minTier: "free" },
|
|
68
|
+
"init.local": { minTier: "free" }, // Full local setup
|
|
69
|
+
"init.connect": { minTier: "starter" }, // GitHub Actions + PR comments
|
|
70
|
+
|
|
71
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
72
|
+
// CHECKPOINT
|
|
73
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
74
|
+
"checkpoint": { minTier: "free", downgrade: "checkpoint.basic" },
|
|
75
|
+
"checkpoint.basic": { minTier: "free" }, // Basic diff comparison
|
|
76
|
+
"checkpoint.hallucination": { minTier: "pro" }, // Hallucination scoring
|
|
77
|
+
|
|
78
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
79
|
+
// REALITY TESTING
|
|
80
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
61
81
|
"reality": { minTier: "free", downgrade: "reality.preview" },
|
|
62
82
|
"reality.preview": { minTier: "free", caps: { free: { maxPages: 5, maxClicks: 20, noAuthBoundary: true } } },
|
|
83
|
+
"reality.basic": { minTier: "starter", caps: { starter: { maxPages: 50, maxClicks: 200, basicAuthVerify: true } } },
|
|
63
84
|
"reality.full": { minTier: "pro" },
|
|
64
|
-
"reality.advanced_auth_boundary": { minTier: "
|
|
85
|
+
"reality.advanced_auth_boundary": { minTier: "pro" },
|
|
65
86
|
|
|
66
|
-
//
|
|
87
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
88
|
+
// PROVE COMMAND
|
|
89
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
67
90
|
"prove": { minTier: "pro" },
|
|
68
91
|
|
|
69
|
-
//
|
|
92
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
93
|
+
// FIX COMMAND
|
|
94
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
70
95
|
"fix": { minTier: "free", downgrade: "fix.plan_only" },
|
|
71
|
-
"fix.plan_only": { minTier: "free" },
|
|
72
|
-
"fix.apply_patches": { minTier: "
|
|
96
|
+
"fix.plan_only": { minTier: "free" }, // Generate missions, don't apply
|
|
97
|
+
"fix.apply_patches": { minTier: "pro" }, // Apply patches automatically
|
|
98
|
+
"fix.loop": { minTier: "pro" }, // Continuous fix loop
|
|
73
99
|
|
|
74
|
-
//
|
|
100
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
101
|
+
// REPORT FORMATS
|
|
102
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
75
103
|
"report": { minTier: "free", downgrade: "report.html_md" },
|
|
76
104
|
"report.html_md": { minTier: "free" },
|
|
77
|
-
"report.sarif_csv": { minTier: "
|
|
78
|
-
"report.compliance_packs": { minTier: "
|
|
105
|
+
"report.sarif_csv": { minTier: "starter" }, // SARIF/CSV at STARTER
|
|
106
|
+
"report.compliance_packs": { minTier: "compliance" },
|
|
79
107
|
|
|
80
|
-
//
|
|
108
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
109
|
+
// SETUP & DX
|
|
110
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
81
111
|
"install": { minTier: "free" },
|
|
82
|
-
"init": { minTier: "free" },
|
|
83
112
|
"doctor": { minTier: "free" },
|
|
84
113
|
"status": { minTier: "free" },
|
|
85
|
-
"watch": { minTier: "free" },
|
|
114
|
+
"watch": { minTier: "free", downgrade: "watch.local" },
|
|
115
|
+
"watch.local": { minTier: "free" }, // Local-only file watching
|
|
116
|
+
"watch.pr": { minTier: "starter" }, // PR updates on changes
|
|
86
117
|
"preflight": { minTier: "free" },
|
|
118
|
+
"polish": { minTier: "free" },
|
|
87
119
|
|
|
88
|
-
//
|
|
120
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
121
|
+
// AI TRUTH
|
|
122
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
89
123
|
"ctx": { minTier: "free" },
|
|
90
124
|
"guard": { minTier: "free" },
|
|
91
125
|
"context": { minTier: "free" },
|
|
92
126
|
"mdc": { minTier: "free" },
|
|
127
|
+
"contracts": { minTier: "free" },
|
|
128
|
+
|
|
129
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
130
|
+
// EXPORT COMMAND (subcommands gate individually)
|
|
131
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
132
|
+
"export": { minTier: "free" }, // Base export command is free, subcommands gate themselves
|
|
93
133
|
|
|
94
|
-
//
|
|
134
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
135
|
+
// RUNTIME COMMAND (browser-based verification)
|
|
136
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
137
|
+
"runtime": { minTier: "free", downgrade: "reality.preview" }, // Same as reality
|
|
138
|
+
|
|
139
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
140
|
+
// SECURITY COMMAND (AuthZ & IDOR)
|
|
141
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
142
|
+
"security": { minTier: "pro" },
|
|
143
|
+
|
|
144
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
145
|
+
// PRO ONLY
|
|
146
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
95
147
|
"replay": { minTier: "pro" },
|
|
96
148
|
"share": { minTier: "pro" },
|
|
97
149
|
"ai-test": { minTier: "pro" },
|
|
150
|
+
"permissions": { minTier: "pro" },
|
|
151
|
+
"graph": { minTier: "pro" },
|
|
98
152
|
|
|
99
|
-
//
|
|
153
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
154
|
+
// STARTER AND ABOVE
|
|
155
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
100
156
|
"gate": { minTier: "starter" },
|
|
101
157
|
"pr": { minTier: "starter" },
|
|
102
158
|
"badge": { minTier: "starter" },
|
|
103
159
|
"launch": { minTier: "starter" },
|
|
160
|
+
"dashboard_sync": { minTier: "starter" },
|
|
161
|
+
|
|
162
|
+
// MCP Server
|
|
104
163
|
"mcp": { minTier: "starter", downgrade: "mcp.help_only" },
|
|
105
164
|
"mcp.help_only": { minTier: "free", caps: { free: "help and print-config only" } },
|
|
165
|
+
"mcp.read_only": { minTier: "starter", caps: { starter: "read-only safe tools, rate limited" } },
|
|
166
|
+
"mcp.full": { minTier: "pro", caps: { pro: "full tools, audit logs, higher limits" } },
|
|
106
167
|
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// Account (always free)
|
|
168
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
169
|
+
// ACCOUNT (ALWAYS FREE)
|
|
170
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
112
171
|
"login": { minTier: "free" },
|
|
113
172
|
"logout": { minTier: "free" },
|
|
114
173
|
"whoami": { minTier: "free" },
|
|
@@ -130,17 +189,27 @@ const LIMITS = {
|
|
|
130
189
|
scansPerMonth: 50,
|
|
131
190
|
shipChecksPerMonth: 20,
|
|
132
191
|
},
|
|
192
|
+
starter: {
|
|
193
|
+
realityMaxPages: 50,
|
|
194
|
+
realityMaxClicks: 200,
|
|
195
|
+
realityAuthBoundary: false,
|
|
196
|
+
realityAdvancedAuth: false,
|
|
197
|
+
reportFormats: ["html", "md", "sarif", "csv"],
|
|
198
|
+
fixApplyPatches: false,
|
|
199
|
+
scansPerMonth: 500,
|
|
200
|
+
shipChecksPerMonth: 200,
|
|
201
|
+
},
|
|
133
202
|
pro: {
|
|
134
203
|
realityMaxPages: -1, // unlimited
|
|
135
204
|
realityMaxClicks: -1,
|
|
136
205
|
realityAuthBoundary: true,
|
|
137
|
-
realityAdvancedAuth:
|
|
206
|
+
realityAdvancedAuth: true,
|
|
138
207
|
reportFormats: ["html", "md", "sarif", "csv"],
|
|
139
|
-
fixApplyPatches:
|
|
208
|
+
fixApplyPatches: true,
|
|
140
209
|
scansPerMonth: -1, // unlimited
|
|
141
210
|
shipChecksPerMonth: -1,
|
|
142
211
|
},
|
|
143
|
-
|
|
212
|
+
compliance: {
|
|
144
213
|
realityMaxPages: -1,
|
|
145
214
|
realityMaxClicks: -1,
|
|
146
215
|
realityAuthBoundary: true,
|
|
@@ -186,12 +186,9 @@ class CLIEntitlementsManager {
|
|
|
186
186
|
const syncResult = await serverUsage.syncOfflineUsage();
|
|
187
187
|
if (syncResult.error) {
|
|
188
188
|
// Allow offline mode by default - CLI should work without internet
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
"\x1b[33mℹ Could not connect to vibecheck API, using offline mode\x1b[0m\n",
|
|
193
|
-
);
|
|
194
|
-
}
|
|
189
|
+
console.warn(
|
|
190
|
+
"\x1b[33mWarning: Could not connect to vibecheck API, using offline mode\x1b[0m\n",
|
|
191
|
+
);
|
|
195
192
|
return { allowed: true, source: "offline" };
|
|
196
193
|
}
|
|
197
194
|
}
|
|
@@ -290,7 +290,7 @@ class InitWizard {
|
|
|
290
290
|
console.log(`${c.cyan}║${c.reset} ${c.cyan}vibecheck ship${c.reset} ${c.cyan}║${c.reset}`);
|
|
291
291
|
console.log(`${c.cyan}║${c.reset} ${c.cyan}║${c.reset}`);
|
|
292
292
|
console.log(`${c.cyan}║${c.reset} ${c.bold}2.${c.reset} Review the report: ${c.cyan}║${c.reset}`);
|
|
293
|
-
console.log(`${c.cyan}║${c.reset} ${c.dim}
|
|
293
|
+
console.log(`${c.cyan}║${c.reset} ${c.dim}Generate report: ${c.cyan}vibecheck report${c.reset} ${c.cyan}║${c.reset}`);
|
|
294
294
|
console.log(`${c.cyan}║${c.reset} ${c.cyan}║${c.reset}`);
|
|
295
295
|
console.log(`${c.cyan}║${c.reset} ${c.bold}3.${c.reset} Fix issues and re-scan: ${c.cyan}║${c.reset}`);
|
|
296
296
|
console.log(`${c.cyan}║${c.reset} ${c.cyan}vibecheck ship --fix${c.reset} ${c.cyan}║${c.reset}`);
|