@vibecheckai/cli 3.6.0 → 3.6.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/README.md CHANGED
@@ -89,7 +89,7 @@ vibecheck reality --url http://localhost:3000
89
89
  |------|-------|----------|
90
90
  | FREE | $0 | init --local, scan, ship (static), doctor, polish, report (HTML/MD), context, guard, checkpoint (basic) |
91
91
  | STARTER | $39/mo | + init --connect, scan --autofix, report (SARIF/CSV), mcp, reality (basic) |
92
- | PRO | $99/mo | + prove, fix --apply, checkpoint (hallucination), reality (advanced), ai-test |
92
+ | PRO | $49/mo | + prove, fix --apply, checkpoint (hallucination), reality (advanced), ai-test |
93
93
 
94
94
  ## What It Catches
95
95
 
@@ -228,7 +228,7 @@ function computeNextAction(state) {
228
228
  return {
229
229
  action: "badge",
230
230
  command: "vibecheck ship --badge",
231
- dashboardLink: `${DASHBOARD_URL}/runs/${runId}`,
231
+ dashboardLink: runId ? `${DASHBOARD_URL}/runs/${runId}` : undefined,
232
232
  why: "SHIP passed! Generate a verified badge for your README.",
233
233
  timeEstimate: TIME_ESTIMATES.badge,
234
234
  tier: "pro",
@@ -255,7 +255,7 @@ function computeNextAction(state) {
255
255
  return {
256
256
  action: "report",
257
257
  command: "vibecheck report",
258
- dashboardLink: `${DASHBOARD_URL}/runs/${runId}`,
258
+ dashboardLink: runId ? `${DASHBOARD_URL}/runs/${runId}` : undefined,
259
259
  why: "Scan complete. Export report or upgrade to get verdict.",
260
260
  timeEstimate: TIME_ESTIMATES.report,
261
261
  tier: "free",
@@ -328,7 +328,7 @@ function getNextActionForCommand(completedCmd, result = {}, tier = "free") {
328
328
  return {
329
329
  action: "report",
330
330
  command: "vibecheck report",
331
- dashboardLink: `${DASHBOARD_URL}/runs/${runId}`,
331
+ dashboardLink: runId ? `${DASHBOARD_URL}/runs/${runId}` : undefined,
332
332
  why: `Scan complete. Export report.`,
333
333
  timeEstimate: TIME_ESTIMATES.report,
334
334
  tier: "free",
@@ -344,7 +344,7 @@ function getNextActionForCommand(completedCmd, result = {}, tier = "free") {
344
344
  return {
345
345
  action: "badge",
346
346
  command: "vibecheck ship --badge",
347
- dashboardLink: `${DASHBOARD_URL}/runs/${runId}`,
347
+ dashboardLink: runId ? `${DASHBOARD_URL}/runs/${runId}` : undefined,
348
348
  why: "SHIP passed! Generate a verified badge.",
349
349
  timeEstimate: TIME_ESTIMATES.badge,
350
350
  tier: "pro",
@@ -363,7 +363,7 @@ function getNextActionForCommand(completedCmd, result = {}, tier = "free") {
363
363
  return {
364
364
  action: "report",
365
365
  command: "vibecheck report",
366
- dashboardLink: `${DASHBOARD_URL}/runs/${runId}`,
366
+ dashboardLink: runId ? `${DASHBOARD_URL}/runs/${runId}` : undefined,
367
367
  why: "Export detailed report.",
368
368
  timeEstimate: TIME_ESTIMATES.report,
369
369
  tier: "free",
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Enterprise Scan Output - V5 "Mission Control" Format
3
3
  * Features:
4
- * - External VIBECHECK Header (ANSI Shadow)
4
+ * - External Vibecheck Header (ANSI Shadow)
5
5
  * - Internal SCAN Block (Centered)
6
6
  * - Split-pane layout (Vitals vs. Diagnostics)
7
7
  * - Gradient Health Bars
@@ -281,6 +281,9 @@ function formatScanOutput(result, options = {}) {
281
281
  const healthStatus = score > 80 ? 'OPTIMAL' : score > 50 ? 'STABLE' : 'CRITICAL';
282
282
  const healthColor = score > 80 ? chalk.green : score > 50 ? chalk.yellow : chalk.red;
283
283
 
284
+ // Extract runId early to avoid duplicate declaration issues
285
+ const runId = options.runId || result.runId || result.verdict?.runId;
286
+
284
287
  const duration = ((result.duration || result.timings?.total || 0) / 1000).toFixed(1);
285
288
  const memUsage = Math.round(process.memoryUsage().heapUsed / 1024 / 1024 / 1024 * 100) / 100;
286
289
  const projectPath = process.cwd();
@@ -449,27 +452,6 @@ function formatScanOutput(result, options = {}) {
449
452
  lines.push(`${chalk.gray}${BOX.bottomLeft}${BOX.horizontal.repeat(WIDTH - 2)}${BOX.bottomRight}${chalk.reset}`);
450
453
 
451
454
  // DASHBOARD LINK (outside frame)
452
- const runId = result.runId || result.verdict?.runId;
453
- if (runId) {
454
- lines.push('');
455
- lines.push(` ${chalk.dim}🔗 Dashboard:${chalk.reset} https://app.vibecheckai.dev/runs/${runId}`);
456
- }
457
-
458
- // NEXT BEST ACTION (outside frame)
459
- try {
460
- const { formatNextActionOneLine, getNextActionForCommand } = require('./next-action');
461
- const tier = options.tier || 'free';
462
- const verdict = typeof result.verdict === 'object' ? result.verdict.verdict : result.verdict;
463
- const nextAction = getNextActionForCommand('scan', { verdict, runId, findings }, tier);
464
- lines.push('');
465
- lines.push(` ${formatNextActionOneLine(nextAction)}`);
466
- } catch (e) {
467
- // Next action module might not be available, skip gracefully
468
- }
469
-
470
-
471
- // DASHBOARD LINK (outside frame)
472
- const runId = result.runId || result.verdict?.runId;
473
455
  if (runId) {
474
456
  lines.push('');
475
457
  lines.push(` ${chalk.dim}🔗 Dashboard:${chalk.reset} https://app.vibecheckai.dev/runs/${runId}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibecheckai/cli",
3
- "version": "3.6.0",
3
+ "version": "3.6.1",
4
4
  "description": "Vibecheck CLI - Ship with confidence. One verdict: SHIP | WARN | BLOCK.",
5
5
  "main": "bin/vibecheck.js",
6
6
  "bin": {