@vibecheck-ai/mcp 26.0.0 → 26.0.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/dist/analytics-P4AUZXCQ.js +36 -0
- package/dist/{chunk-RPSVX4GS.js → chunk-PXXM6OHD.js} +196 -209
- package/dist/{dist-74DHDHNJ.js → dist-ZTADJLYH.js} +1 -1
- package/dist/index.js +3295 -3235
- package/package.json +18 -9
- package/dist/analytics-HY3UUAAZ.js +0 -135
|
@@ -27,11 +27,11 @@ dirname(__filename$1);
|
|
|
27
27
|
// ../engines/dist/index.js
|
|
28
28
|
var import_typescript = __toESM(require_typescript(), 1);
|
|
29
29
|
|
|
30
|
-
// ../subscriptions/dist/chunk-
|
|
31
|
-
var PLAN_IDS = ["
|
|
30
|
+
// ../subscriptions/dist/chunk-TEQPNVO7.js
|
|
31
|
+
var PLAN_IDS = ["vibecoder", "engineer", "enterprise"];
|
|
32
32
|
var PLAN_RANK = {
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
vibecoder: 0,
|
|
34
|
+
engineer: 1,
|
|
35
35
|
enterprise: 2
|
|
36
36
|
};
|
|
37
37
|
var PLAN_ID_SET = new Set(PLAN_IDS);
|
|
@@ -39,15 +39,19 @@ function isCanonicalPlanId(value) {
|
|
|
39
39
|
return typeof value === "string" && PLAN_ID_SET.has(value);
|
|
40
40
|
}
|
|
41
41
|
var PLAN_NORMALIZATION_ALIASES = {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
engineer: "
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
// v40 canonical slugs (round-trip safe)
|
|
43
|
+
vibecoder: "vibecoder",
|
|
44
|
+
engineer: "engineer",
|
|
45
|
+
// Pre-v40 slugs → v40 equivalents
|
|
46
|
+
pro: "vibecoder",
|
|
47
|
+
team: "engineer",
|
|
48
|
+
developer: "vibecoder",
|
|
49
|
+
vibe_coder: "vibecoder",
|
|
50
|
+
"vibe-coder": "vibecoder",
|
|
51
|
+
"vibe coder": "vibecoder",
|
|
48
52
|
compliance: "enterprise",
|
|
49
|
-
business: "
|
|
50
|
-
team_workspace: "
|
|
53
|
+
business: "engineer",
|
|
54
|
+
team_workspace: "engineer",
|
|
51
55
|
enterprise_annual: "enterprise",
|
|
52
56
|
enterprise_monthly: "enterprise",
|
|
53
57
|
elite: "enterprise"
|
|
@@ -94,75 +98,64 @@ if (typeof process !== "undefined") {
|
|
|
94
98
|
}
|
|
95
99
|
}
|
|
96
100
|
var PLAN_DEFINITIONS = {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
tagline: "Free \u2014 start scanning AI-built software.",
|
|
103
|
-
monthlyPriceUsd: 0,
|
|
104
|
-
priceLabel: "Free",
|
|
101
|
+
vibecoder: {
|
|
102
|
+
displayName: "Vibecoder",
|
|
103
|
+
tagline: "Extension + CLI access. The fast lane.",
|
|
104
|
+
monthlyPriceUsd: 19.99,
|
|
105
|
+
priceLabel: "$19.99/mo",
|
|
105
106
|
billingInterval: "month",
|
|
106
|
-
badgeToken: "tier-
|
|
107
|
+
badgeToken: "tier-vibecoder",
|
|
107
108
|
highlights: [
|
|
108
|
-
"
|
|
109
|
-
"All findings
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"Upgrade when you need paid automation"
|
|
109
|
+
"VS Code extension + CLI access",
|
|
110
|
+
"All scans, findings, and proof details",
|
|
111
|
+
"Auto-fix, Reality Mode, and CommitShield",
|
|
112
|
+
"Context Engine, ISL Studio, and firewall enforcement",
|
|
113
|
+
"Reports, truthpacks, badges, and cloud sync",
|
|
114
|
+
"GitHub Action checks for individual workflows"
|
|
115
115
|
],
|
|
116
|
-
bestFor: "
|
|
116
|
+
bestFor: "Developers who want the full VibeCheck toolkit",
|
|
117
117
|
popular: false,
|
|
118
|
-
cta: "Start
|
|
118
|
+
cta: "Start Vibecoder",
|
|
119
119
|
ctaVariant: "default",
|
|
120
120
|
supportLevel: "standard"
|
|
121
121
|
},
|
|
122
|
-
|
|
123
|
-
displayName: "
|
|
124
|
-
tagline: "
|
|
125
|
-
monthlyPriceUsd:
|
|
126
|
-
priceLabel: "$
|
|
122
|
+
engineer: {
|
|
123
|
+
displayName: "Engineer",
|
|
124
|
+
tagline: "Everything in Vibecoder, plus the engineering dashboard.",
|
|
125
|
+
monthlyPriceUsd: 59.99,
|
|
126
|
+
priceLabel: "$59.99/mo",
|
|
127
127
|
billingInterval: "month",
|
|
128
|
-
badgeToken: "tier-
|
|
128
|
+
badgeToken: "tier-engineer",
|
|
129
129
|
highlights: [
|
|
130
|
-
"Everything in
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"Full Context Engine + ISL Studio + Chaos Agent",
|
|
135
|
-
"Team dashboard \xB7 3 seats included \xB7 $9/extra seat",
|
|
136
|
-
"API access (1k req/day) \xB7 CSV export",
|
|
137
|
-
"Cloud sync \xB7 50 projects"
|
|
130
|
+
"Everything in Vibecoder, plus:",
|
|
131
|
+
"Engineering dashboard (scans, missions, billing, settings)",
|
|
132
|
+
"GitHub CI/CD ShipGate runs with SHIP / NO SHIP history",
|
|
133
|
+
"Org-wide analytics from CLI, MCP, VS Code, and extension activity"
|
|
138
134
|
],
|
|
139
|
-
bestFor: "
|
|
140
|
-
popular:
|
|
141
|
-
cta: "
|
|
135
|
+
bestFor: "Engineers who need the full dashboard and analytics",
|
|
136
|
+
popular: false,
|
|
137
|
+
cta: "Start Engineer",
|
|
142
138
|
ctaVariant: "default",
|
|
143
139
|
supportLevel: "priority"
|
|
144
140
|
},
|
|
145
141
|
enterprise: {
|
|
146
142
|
displayName: "Enterprise",
|
|
147
|
-
tagline: "
|
|
148
|
-
monthlyPriceUsd:
|
|
149
|
-
priceLabel: "
|
|
143
|
+
tagline: "Custom seats, SSO, audit. Talk to us.",
|
|
144
|
+
monthlyPriceUsd: 0,
|
|
145
|
+
priceLabel: "Contact sales",
|
|
150
146
|
billingInterval: "month",
|
|
151
147
|
badgeToken: "tier-enterprise",
|
|
152
148
|
highlights: [
|
|
153
|
-
"Everything in
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"10 seats \xB7 unlimited projects \xB7 API 10k req/day",
|
|
159
|
-
"Custom domains + advanced webhooks",
|
|
160
|
-
"Slack integration \xB7 dedicated support"
|
|
149
|
+
"Everything in Engineer, plus:",
|
|
150
|
+
"Custom seats and RBAC",
|
|
151
|
+
"SSO / SAML",
|
|
152
|
+
"Audit logs and compliance bundles",
|
|
153
|
+
"Dedicated support and SLA"
|
|
161
154
|
],
|
|
162
|
-
bestFor: "Orgs with compliance and
|
|
155
|
+
bestFor: "Orgs with compliance, governance, and SSO needs",
|
|
163
156
|
popular: false,
|
|
164
|
-
cta: "
|
|
165
|
-
ctaVariant: "
|
|
157
|
+
cta: "Contact sales",
|
|
158
|
+
ctaVariant: "outline",
|
|
166
159
|
supportLevel: "dedicated"
|
|
167
160
|
}
|
|
168
161
|
};
|
|
@@ -186,7 +179,7 @@ var PLAN_MONTHLY_PRICE_USD = mapPlanValues(
|
|
|
186
179
|
var PLAN_PRICE_LABELS = mapPlanValues((plan) => plan.priceLabel);
|
|
187
180
|
var PLAN_BADGE_TOKENS = mapPlanValues((plan) => plan.badgeToken);
|
|
188
181
|
var PLANS_ORDERED = PLAN_IDS.map((id) => PLANS[id]);
|
|
189
|
-
var MARKETING_PLAN_IDS =
|
|
182
|
+
var MARKETING_PLAN_IDS = ["vibecoder", "engineer"];
|
|
190
183
|
function validatePlanRegistry() {
|
|
191
184
|
const errors = [];
|
|
192
185
|
if (new Set(PLAN_IDS).size !== PLAN_IDS.length) {
|
|
@@ -264,8 +257,8 @@ if (typeof process !== "undefined") {
|
|
|
264
257
|
}
|
|
265
258
|
}
|
|
266
259
|
var ENTITLEMENTS = {
|
|
267
|
-
// ──
|
|
268
|
-
/** Basic scanning
|
|
260
|
+
// ── PAID PRODUCT ────────────────────────────────────────────────────────
|
|
261
|
+
/** Basic scanning */
|
|
269
262
|
SCAN: "v2.scan",
|
|
270
263
|
/** Workspace-level scanning (doctor, roast, score, codegraph, wikicode, atlas) */
|
|
271
264
|
SCAN_WORKSPACE: "v2.scan_workspace",
|
|
@@ -300,8 +293,8 @@ var ENTITLEMENTS = {
|
|
|
300
293
|
SUPPORT: "v2.support",
|
|
301
294
|
/** Premium full-stack templates (SaaS dashboards, e-commerce, chat, etc.) in the new-project wizard. */
|
|
302
295
|
PREMIUM_TEMPLATES: "v2.premium_templates",
|
|
303
|
-
// ──
|
|
304
|
-
/**
|
|
296
|
+
// ── ENTERPRISE DASHBOARD ────────────────────────────────────────────────
|
|
297
|
+
/** Enterprise dashboard, shared policies, cross-repo scanning, audit logs */
|
|
305
298
|
TEAM_COLLABORATION: "v2.team_collaboration",
|
|
306
299
|
/**
|
|
307
300
|
* Truthpack-integrated wizard — scans the existing codebase and pre-fills
|
|
@@ -318,7 +311,7 @@ var ENTITLEMENTS = {
|
|
|
318
311
|
ENTERPRISE_COMPLIANCE: "v2.enterprise_compliance"
|
|
319
312
|
};
|
|
320
313
|
var EMPTY_ENTITLEMENT_SET = /* @__PURE__ */ new Set();
|
|
321
|
-
var
|
|
314
|
+
var VIBECODER_SET = /* @__PURE__ */ new Set([
|
|
322
315
|
ENTITLEMENTS.SCAN,
|
|
323
316
|
ENTITLEMENTS.SCAN_WORKSPACE,
|
|
324
317
|
ENTITLEMENTS.GITHUB_ACTION,
|
|
@@ -337,19 +330,17 @@ var PRO_SET = /* @__PURE__ */ new Set([
|
|
|
337
330
|
ENTITLEMENTS.SUPPORT,
|
|
338
331
|
ENTITLEMENTS.PREMIUM_TEMPLATES
|
|
339
332
|
]);
|
|
340
|
-
var
|
|
341
|
-
...PRO_SET,
|
|
342
|
-
ENTITLEMENTS.TEAM_COLLABORATION,
|
|
343
|
-
ENTITLEMENTS.CONTEXT_ENGINE_PRO
|
|
344
|
-
]);
|
|
333
|
+
var ENGINEER_SET = /* @__PURE__ */ new Set([...VIBECODER_SET]);
|
|
345
334
|
var ENTERPRISE_SET = /* @__PURE__ */ new Set([
|
|
346
|
-
...
|
|
335
|
+
...ENGINEER_SET,
|
|
336
|
+
ENTITLEMENTS.TEAM_COLLABORATION,
|
|
337
|
+
ENTITLEMENTS.CONTEXT_ENGINE_PRO,
|
|
347
338
|
ENTITLEMENTS.FIREWALL_LOCKDOWN,
|
|
348
339
|
ENTITLEMENTS.ENTERPRISE_COMPLIANCE
|
|
349
340
|
]);
|
|
350
341
|
var PLAN_ENTITLEMENTS = {
|
|
351
|
-
|
|
352
|
-
|
|
342
|
+
vibecoder: VIBECODER_SET,
|
|
343
|
+
engineer: ENGINEER_SET,
|
|
353
344
|
enterprise: ENTERPRISE_SET
|
|
354
345
|
};
|
|
355
346
|
function normalizePlanForEntitlement(plan) {
|
|
@@ -468,42 +459,40 @@ var ZERO_QUOTAS = {
|
|
|
468
459
|
seatOverageEnabled: false
|
|
469
460
|
};
|
|
470
461
|
var PLAN_QUOTAS = {
|
|
471
|
-
|
|
462
|
+
vibecoder: {
|
|
472
463
|
findingDetailLimit: Infinity,
|
|
473
464
|
canAutoFix: true,
|
|
474
|
-
canHealPR:
|
|
465
|
+
canHealPR: true,
|
|
475
466
|
canModelFingerprint: true,
|
|
476
467
|
canRealityMode: true,
|
|
477
468
|
canISLGenerate: true,
|
|
478
469
|
canCIBlock: true,
|
|
479
470
|
scanHistoryDays: 90,
|
|
480
|
-
maxProjects:
|
|
481
|
-
apiRequestsPerDay:
|
|
482
|
-
canExportCSV:
|
|
483
|
-
canSlackIntegration:
|
|
471
|
+
maxProjects: Infinity,
|
|
472
|
+
apiRequestsPerDay: 1e4,
|
|
473
|
+
canExportCSV: true,
|
|
474
|
+
canSlackIntegration: true,
|
|
484
475
|
maxSeats: 1,
|
|
485
|
-
autoFixesPerMonth:
|
|
476
|
+
autoFixesPerMonth: Infinity,
|
|
486
477
|
scansPerMonth: Infinity,
|
|
487
478
|
scansPerDay: Infinity,
|
|
488
|
-
vibePromptGenerationsPerMonth:
|
|
489
|
-
workflowCopiesPerMonth:
|
|
490
|
-
forgeGenerationsPerMonth:
|
|
491
|
-
realityModeRunsPerWeek:
|
|
492
|
-
contextEngineRulesPerMonth:
|
|
493
|
-
islSpecsPerMonth:
|
|
494
|
-
atlasViewsPerMonth:
|
|
495
|
-
guidedRoutesPerDay:
|
|
496
|
-
guidedFollowUpsPerRoute:
|
|
497
|
-
proofHistoryEntries:
|
|
498
|
-
firewallRulesActive:
|
|
499
|
-
// 3 rules armed — routes / env / packages
|
|
479
|
+
vibePromptGenerationsPerMonth: Infinity,
|
|
480
|
+
workflowCopiesPerMonth: Infinity,
|
|
481
|
+
forgeGenerationsPerMonth: Infinity,
|
|
482
|
+
realityModeRunsPerWeek: Infinity,
|
|
483
|
+
contextEngineRulesPerMonth: Infinity,
|
|
484
|
+
islSpecsPerMonth: Infinity,
|
|
485
|
+
atlasViewsPerMonth: Infinity,
|
|
486
|
+
guidedRoutesPerDay: Infinity,
|
|
487
|
+
guidedFollowUpsPerRoute: Infinity,
|
|
488
|
+
proofHistoryEntries: Infinity,
|
|
489
|
+
firewallRulesActive: Infinity,
|
|
500
490
|
missionRunsLifetime: Infinity,
|
|
501
|
-
autoFixOverageEnabled:
|
|
502
|
-
// $0.50/fix beyond 50/mo via Stripe metered
|
|
491
|
+
autoFixOverageEnabled: false,
|
|
503
492
|
seatOverageEnabled: false
|
|
504
493
|
// solo plan
|
|
505
494
|
},
|
|
506
|
-
|
|
495
|
+
engineer: {
|
|
507
496
|
findingDetailLimit: Infinity,
|
|
508
497
|
canAutoFix: true,
|
|
509
498
|
canHealPR: true,
|
|
@@ -512,31 +501,29 @@ var PLAN_QUOTAS = {
|
|
|
512
501
|
canISLGenerate: true,
|
|
513
502
|
canCIBlock: true,
|
|
514
503
|
scanHistoryDays: 90,
|
|
515
|
-
maxProjects:
|
|
516
|
-
apiRequestsPerDay:
|
|
504
|
+
maxProjects: Infinity,
|
|
505
|
+
apiRequestsPerDay: 1e4,
|
|
517
506
|
canExportCSV: true,
|
|
518
|
-
canSlackIntegration:
|
|
519
|
-
maxSeats:
|
|
520
|
-
autoFixesPerMonth:
|
|
507
|
+
canSlackIntegration: true,
|
|
508
|
+
maxSeats: 1,
|
|
509
|
+
autoFixesPerMonth: Infinity,
|
|
521
510
|
scansPerMonth: Infinity,
|
|
522
511
|
scansPerDay: Infinity,
|
|
523
|
-
vibePromptGenerationsPerMonth:
|
|
524
|
-
workflowCopiesPerMonth:
|
|
525
|
-
forgeGenerationsPerMonth:
|
|
526
|
-
realityModeRunsPerWeek:
|
|
527
|
-
contextEngineRulesPerMonth:
|
|
528
|
-
islSpecsPerMonth:
|
|
529
|
-
atlasViewsPerMonth:
|
|
530
|
-
guidedRoutesPerDay:
|
|
531
|
-
guidedFollowUpsPerRoute:
|
|
532
|
-
proofHistoryEntries:
|
|
512
|
+
vibePromptGenerationsPerMonth: Infinity,
|
|
513
|
+
workflowCopiesPerMonth: Infinity,
|
|
514
|
+
forgeGenerationsPerMonth: Infinity,
|
|
515
|
+
realityModeRunsPerWeek: Infinity,
|
|
516
|
+
contextEngineRulesPerMonth: Infinity,
|
|
517
|
+
islSpecsPerMonth: Infinity,
|
|
518
|
+
atlasViewsPerMonth: Infinity,
|
|
519
|
+
guidedRoutesPerDay: Infinity,
|
|
520
|
+
guidedFollowUpsPerRoute: Infinity,
|
|
521
|
+
proofHistoryEntries: Infinity,
|
|
533
522
|
firewallRulesActive: Infinity,
|
|
534
523
|
// unlimited rules + Drift Watcher
|
|
535
524
|
missionRunsLifetime: Infinity,
|
|
536
|
-
autoFixOverageEnabled:
|
|
537
|
-
|
|
538
|
-
seatOverageEnabled: true
|
|
539
|
-
// $9/seat over 3 via Stripe per-seat price
|
|
525
|
+
autoFixOverageEnabled: false,
|
|
526
|
+
seatOverageEnabled: false
|
|
540
527
|
},
|
|
541
528
|
enterprise: {
|
|
542
529
|
findingDetailLimit: Infinity,
|
|
@@ -587,7 +574,7 @@ var FEATURE_REGISTRY = {
|
|
|
587
574
|
title: "Unlimited Auto-Fix",
|
|
588
575
|
subtitle: "AI-powered code repair without limits",
|
|
589
576
|
benefits: ["No monthly limits", "Smart suggestions", "Safe rollback"],
|
|
590
|
-
requiredPlan: "
|
|
577
|
+
requiredPlan: "vibecoder",
|
|
591
578
|
category: "productivity",
|
|
592
579
|
upgradeMessage: "Auto-Fix requires Pro. Upgrade to unlock AI-powered code repair."
|
|
593
580
|
},
|
|
@@ -596,7 +583,7 @@ var FEATURE_REGISTRY = {
|
|
|
596
583
|
title: "Reality Mode",
|
|
597
584
|
subtitle: "Browser-based runtime verification",
|
|
598
585
|
benefits: ["Runtime testing", "Screenshot evidence", "Error detection", "Network validation"],
|
|
599
|
-
requiredPlan: "
|
|
586
|
+
requiredPlan: "vibecoder",
|
|
600
587
|
category: "productivity",
|
|
601
588
|
upgradeMessage: "Reality Mode requires Pro. Upgrade to unlock runtime verification.",
|
|
602
589
|
docsUrl: "/docs/reality-mode"
|
|
@@ -606,7 +593,7 @@ var FEATURE_REGISTRY = {
|
|
|
606
593
|
title: "CommitShield",
|
|
607
594
|
subtitle: "Pre-commit quality gate",
|
|
608
595
|
benefits: ["25+ security rules", "Risk scoring", "Evidence bundles"],
|
|
609
|
-
requiredPlan: "
|
|
596
|
+
requiredPlan: "vibecoder",
|
|
610
597
|
category: "productivity"
|
|
611
598
|
},
|
|
612
599
|
/** CLI `vibecheck guard` — operator tooling (Pro). */
|
|
@@ -615,7 +602,7 @@ var FEATURE_REGISTRY = {
|
|
|
615
602
|
title: "Guard",
|
|
616
603
|
subtitle: "Quality gate & policy enforcement from the CLI",
|
|
617
604
|
benefits: ["Configurable fail thresholds", "Engine toggles", "CI-friendly output"],
|
|
618
|
-
requiredPlan: "
|
|
605
|
+
requiredPlan: "vibecoder",
|
|
619
606
|
category: "productivity"
|
|
620
607
|
},
|
|
621
608
|
/** CLI `vibecheck doctor` — engine / workspace diagnostics (Free). */
|
|
@@ -624,19 +611,19 @@ var FEATURE_REGISTRY = {
|
|
|
624
611
|
title: "Doctor",
|
|
625
612
|
subtitle: "Engine health and workspace diagnostics",
|
|
626
613
|
benefits: ["Engine readiness", "Config validation", "Optional repair flows"],
|
|
627
|
-
requiredPlan: "
|
|
614
|
+
requiredPlan: "vibecoder",
|
|
628
615
|
category: "core"
|
|
629
616
|
},
|
|
630
|
-
/** Truthpack generation / validation
|
|
617
|
+
/** Truthpack generation / validation. */
|
|
631
618
|
Truthpack: {
|
|
632
619
|
entitlement: ENTITLEMENTS.SCAN_WORKSPACE,
|
|
633
620
|
title: "Truthpack",
|
|
634
621
|
subtitle: "Ground-truth artifacts for your repo",
|
|
635
622
|
benefits: ["Regenerate truthpack", "Cross-reference validation", "CI contracts"],
|
|
636
|
-
requiredPlan: "
|
|
623
|
+
requiredPlan: "vibecoder",
|
|
637
624
|
category: "analysis"
|
|
638
625
|
},
|
|
639
|
-
/** CLI `vibecheck roast` — stylized scan output
|
|
626
|
+
/** CLI `vibecheck roast` — stylized scan output. */
|
|
640
627
|
Roast: {
|
|
641
628
|
entitlement: ENTITLEMENTS.SCAN,
|
|
642
629
|
title: "Roast",
|
|
@@ -648,16 +635,16 @@ var FEATURE_REGISTRY = {
|
|
|
648
635
|
"Shareable output",
|
|
649
636
|
"CLI, MCP, and IDE panel"
|
|
650
637
|
],
|
|
651
|
-
requiredPlan: "
|
|
638
|
+
requiredPlan: "vibecoder",
|
|
652
639
|
category: "analysis"
|
|
653
640
|
},
|
|
654
|
-
/** CLI code graph / intent context that builds on local graph
|
|
641
|
+
/** CLI code graph / intent context that builds on local graph. */
|
|
655
642
|
"Code Graph": {
|
|
656
643
|
entitlement: ENTITLEMENTS.SCAN,
|
|
657
644
|
title: "Code Graph",
|
|
658
645
|
subtitle: "Local dependency and symbol graph",
|
|
659
646
|
benefits: ["Import/export map", "Intent search", "Proactive file context"],
|
|
660
|
-
requiredPlan: "
|
|
647
|
+
requiredPlan: "vibecoder",
|
|
661
648
|
category: "analysis"
|
|
662
649
|
},
|
|
663
650
|
/** Ship / verify workflows from CLI (Pro). */
|
|
@@ -666,7 +653,7 @@ var FEATURE_REGISTRY = {
|
|
|
666
653
|
title: "Ship Verification",
|
|
667
654
|
subtitle: "Checklists, reports, and ship gates",
|
|
668
655
|
benefits: ["Structured ship checks", "Evidence-friendly output"],
|
|
669
|
-
requiredPlan: "
|
|
656
|
+
requiredPlan: "vibecoder",
|
|
670
657
|
category: "productivity"
|
|
671
658
|
},
|
|
672
659
|
"Firewall Enforce": {
|
|
@@ -674,7 +661,7 @@ var FEATURE_REGISTRY = {
|
|
|
674
661
|
title: "Firewall Enforce",
|
|
675
662
|
subtitle: "Block AI mistakes before save",
|
|
676
663
|
benefits: ["Pre-save validation", "Intent locking", "Drift prevention"],
|
|
677
|
-
requiredPlan: "
|
|
664
|
+
requiredPlan: "vibecoder",
|
|
678
665
|
category: "productivity",
|
|
679
666
|
docsUrl: "/docs/firewall"
|
|
680
667
|
},
|
|
@@ -693,7 +680,7 @@ var FEATURE_REGISTRY = {
|
|
|
693
680
|
"Short-lived pair code (no inbound ports)",
|
|
694
681
|
"Local-only execution (your machine stays in control)"
|
|
695
682
|
],
|
|
696
|
-
requiredPlan: "
|
|
683
|
+
requiredPlan: "vibecoder",
|
|
697
684
|
category: "productivity",
|
|
698
685
|
upgradeMessage: "The Web Terminal requires Pro. Upgrade to drive your repo from the dashboard."
|
|
699
686
|
},
|
|
@@ -702,7 +689,7 @@ var FEATURE_REGISTRY = {
|
|
|
702
689
|
title: "Cloud Sync",
|
|
703
690
|
subtitle: "Cross-device synchronization",
|
|
704
691
|
benefits: ["Multi-device access", "Team sharing", "Automatic backup"],
|
|
705
|
-
requiredPlan: "
|
|
692
|
+
requiredPlan: "vibecoder",
|
|
706
693
|
category: "productivity"
|
|
707
694
|
},
|
|
708
695
|
"PDF Reports": {
|
|
@@ -710,7 +697,7 @@ var FEATURE_REGISTRY = {
|
|
|
710
697
|
title: "PDF Reports",
|
|
711
698
|
subtitle: "Professional shareable reports",
|
|
712
699
|
benefits: ["Executive summaries", "Custom branding", "Print-ready"],
|
|
713
|
-
requiredPlan: "
|
|
700
|
+
requiredPlan: "vibecoder",
|
|
714
701
|
category: "productivity"
|
|
715
702
|
},
|
|
716
703
|
"Verified Badge": {
|
|
@@ -718,7 +705,7 @@ var FEATURE_REGISTRY = {
|
|
|
718
705
|
title: "Verified Ship Badge",
|
|
719
706
|
subtitle: "Dynamic ship badges for your README",
|
|
720
707
|
benefits: ["Live status", "README embeds", "Trust signals"],
|
|
721
|
-
requiredPlan: "
|
|
708
|
+
requiredPlan: "vibecoder",
|
|
722
709
|
category: "productivity"
|
|
723
710
|
},
|
|
724
711
|
"Vibe Prompt": {
|
|
@@ -726,7 +713,7 @@ var FEATURE_REGISTRY = {
|
|
|
726
713
|
title: "Vibe Prompt",
|
|
727
714
|
subtitle: "Generate prompt packs from intent",
|
|
728
715
|
benefits: ["Truth-pack aware", "Implementation prompts", "Verification prompts"],
|
|
729
|
-
requiredPlan: "
|
|
716
|
+
requiredPlan: "vibecoder",
|
|
730
717
|
category: "productivity",
|
|
731
718
|
upgradeMessage: "Vibe Prompt requires Pro. Upgrade to generate project-aware prompt packs."
|
|
732
719
|
},
|
|
@@ -735,7 +722,7 @@ var FEATURE_REGISTRY = {
|
|
|
735
722
|
title: "Review Workflows",
|
|
736
723
|
subtitle: "Code review workflows for Cursor/Claude",
|
|
737
724
|
benefits: ["Copy to clipboard", "Install agents", "Workflow templates"],
|
|
738
|
-
requiredPlan: "
|
|
725
|
+
requiredPlan: "vibecoder",
|
|
739
726
|
category: "productivity"
|
|
740
727
|
},
|
|
741
728
|
"Flow Workflows": {
|
|
@@ -743,7 +730,7 @@ var FEATURE_REGISTRY = {
|
|
|
743
730
|
title: "Flow Workflows",
|
|
744
731
|
subtitle: "AI workflows panel",
|
|
745
732
|
benefits: ["Copy workflows", "Agent chips", "AI automation"],
|
|
746
|
-
requiredPlan: "
|
|
733
|
+
requiredPlan: "vibecoder",
|
|
747
734
|
category: "productivity"
|
|
748
735
|
},
|
|
749
736
|
"WikiCode Atlas": {
|
|
@@ -751,7 +738,7 @@ var FEATURE_REGISTRY = {
|
|
|
751
738
|
title: "WikiCode Atlas",
|
|
752
739
|
subtitle: "Code atlas and wiki",
|
|
753
740
|
benefits: ["Browse codebase", "Feature mapping", "Documentation"],
|
|
754
|
-
requiredPlan: "
|
|
741
|
+
requiredPlan: "vibecoder",
|
|
755
742
|
category: "analysis"
|
|
756
743
|
},
|
|
757
744
|
/** LLM-powered guided routes (intent → stops). Pro+ unlimited within plan quotas. */
|
|
@@ -764,7 +751,7 @@ var FEATURE_REGISTRY = {
|
|
|
764
751
|
"Next/prev stops",
|
|
765
752
|
"Follow-up Q&A on each stop"
|
|
766
753
|
],
|
|
767
|
-
requiredPlan: "
|
|
754
|
+
requiredPlan: "vibecoder",
|
|
768
755
|
category: "analysis"
|
|
769
756
|
},
|
|
770
757
|
"Proof History": {
|
|
@@ -772,7 +759,7 @@ var FEATURE_REGISTRY = {
|
|
|
772
759
|
title: "Proof History",
|
|
773
760
|
subtitle: "Saved proof bundles beyond last run",
|
|
774
761
|
benefits: ["90-day history", "Proof chains", "Audit trail"],
|
|
775
|
-
requiredPlan: "
|
|
762
|
+
requiredPlan: "vibecoder",
|
|
776
763
|
category: "productivity",
|
|
777
764
|
upgradeMessage: "Proof History requires Pro. Upgrade for full proof history and audit trail."
|
|
778
765
|
},
|
|
@@ -781,7 +768,7 @@ var FEATURE_REGISTRY = {
|
|
|
781
768
|
title: "Forge",
|
|
782
769
|
subtitle: "AI code generation (component, api, hook, test)",
|
|
783
770
|
benefits: ["Component generation", "API scaffolding", "Test generation"],
|
|
784
|
-
requiredPlan: "
|
|
771
|
+
requiredPlan: "vibecoder",
|
|
785
772
|
category: "productivity",
|
|
786
773
|
upgradeMessage: "Forge requires Pro. Upgrade to unlock AI code generation."
|
|
787
774
|
},
|
|
@@ -790,7 +777,7 @@ var FEATURE_REGISTRY = {
|
|
|
790
777
|
title: "GitHub Action",
|
|
791
778
|
subtitle: "Automated PR quality checks",
|
|
792
779
|
benefits: ["PR comments", "Status checks", "Branch protection"],
|
|
793
|
-
requiredPlan: "
|
|
780
|
+
requiredPlan: "vibecoder",
|
|
794
781
|
category: "ci_automation",
|
|
795
782
|
upgradeMessage: "GitHub Action requires Pro. Upgrade to automate PR quality checks."
|
|
796
783
|
},
|
|
@@ -799,7 +786,7 @@ var FEATURE_REGISTRY = {
|
|
|
799
786
|
title: "CI/CD Integration",
|
|
800
787
|
subtitle: "All CI platforms supported",
|
|
801
788
|
benefits: ["GitHub Actions", "GitLab CI", "CircleCI", "Jenkins"],
|
|
802
|
-
requiredPlan: "
|
|
789
|
+
requiredPlan: "vibecoder",
|
|
803
790
|
category: "ci_automation"
|
|
804
791
|
},
|
|
805
792
|
"API Access": {
|
|
@@ -807,7 +794,7 @@ var FEATURE_REGISTRY = {
|
|
|
807
794
|
title: "API Access",
|
|
808
795
|
subtitle: "Programmatic scanning & integrations",
|
|
809
796
|
benefits: ["REST API", "Webhooks", "Custom automation"],
|
|
810
|
-
requiredPlan: "
|
|
797
|
+
requiredPlan: "vibecoder",
|
|
811
798
|
category: "ci_automation"
|
|
812
799
|
},
|
|
813
800
|
"Context Engine": {
|
|
@@ -815,7 +802,7 @@ var FEATURE_REGISTRY = {
|
|
|
815
802
|
title: "Context Engine",
|
|
816
803
|
subtitle: "Cloud rules, MCP & agents (requires active subscription)",
|
|
817
804
|
benefits: ["Auto-generate rules", "Team-ready context in IDE", "MCP & API hooks"],
|
|
818
|
-
requiredPlan: "
|
|
805
|
+
requiredPlan: "vibecoder",
|
|
819
806
|
category: "analysis",
|
|
820
807
|
upgradeMessage: "Context Engine (cloud rules & agents) requires Developer or higher."
|
|
821
808
|
},
|
|
@@ -824,7 +811,7 @@ var FEATURE_REGISTRY = {
|
|
|
824
811
|
title: "ISL Studio",
|
|
825
812
|
subtitle: "Visual spec editor & code generation",
|
|
826
813
|
benefits: ["Visual editor", "Real-time validation", "Code generation (credit packs)"],
|
|
827
|
-
requiredPlan: "
|
|
814
|
+
requiredPlan: "vibecoder",
|
|
828
815
|
category: "analysis"
|
|
829
816
|
},
|
|
830
817
|
"Deep Scan": {
|
|
@@ -832,7 +819,7 @@ var FEATURE_REGISTRY = {
|
|
|
832
819
|
title: "Deep Scan",
|
|
833
820
|
subtitle: "Advanced security analysis",
|
|
834
821
|
benefits: ["18 production engines", "Runtime proof", "Mock detection"],
|
|
835
|
-
requiredPlan: "
|
|
822
|
+
requiredPlan: "vibecoder",
|
|
836
823
|
category: "analysis"
|
|
837
824
|
},
|
|
838
825
|
"Drift Detection": {
|
|
@@ -840,7 +827,7 @@ var FEATURE_REGISTRY = {
|
|
|
840
827
|
title: "Drift Detection",
|
|
841
828
|
subtitle: "Code vs spec divergence tracking",
|
|
842
829
|
benefits: ["Contract drift", "Intent violations", "Auto-alerts"],
|
|
843
|
-
requiredPlan: "
|
|
830
|
+
requiredPlan: "vibecoder",
|
|
844
831
|
category: "analysis"
|
|
845
832
|
},
|
|
846
833
|
"Chaos Agent": {
|
|
@@ -848,7 +835,7 @@ var FEATURE_REGISTRY = {
|
|
|
848
835
|
title: "Chaos Agent",
|
|
849
836
|
subtitle: "AI-powered bug hunting",
|
|
850
837
|
benefits: ["Edge case discovery", "Fault injection", "Resilience testing"],
|
|
851
|
-
requiredPlan: "
|
|
838
|
+
requiredPlan: "vibecoder",
|
|
852
839
|
category: "analysis"
|
|
853
840
|
},
|
|
854
841
|
"Team Dashboard": {
|
|
@@ -920,7 +907,7 @@ var FEATURE_REGISTRY = {
|
|
|
920
907
|
title: "Polish",
|
|
921
908
|
subtitle: "Enterprise-grade code quality engine",
|
|
922
909
|
benefits: ["Code quality scoring", "Complexity analysis", "Trend tracking"],
|
|
923
|
-
requiredPlan: "
|
|
910
|
+
requiredPlan: "vibecoder",
|
|
924
911
|
category: "productivity"
|
|
925
912
|
},
|
|
926
913
|
DocGuard: {
|
|
@@ -928,7 +915,7 @@ var FEATURE_REGISTRY = {
|
|
|
928
915
|
title: "DocGuard",
|
|
929
916
|
subtitle: "Documentation quality enforcement",
|
|
930
917
|
benefits: ["JSDoc validation", "Coverage tracking", "Stale doc detection"],
|
|
931
|
-
requiredPlan: "
|
|
918
|
+
requiredPlan: "vibecoder",
|
|
932
919
|
category: "productivity"
|
|
933
920
|
},
|
|
934
921
|
TestGap: {
|
|
@@ -936,7 +923,7 @@ var FEATURE_REGISTRY = {
|
|
|
936
923
|
title: "TestGap Analysis",
|
|
937
924
|
subtitle: "Test coverage gap detection",
|
|
938
925
|
benefits: ["Zero coverage detection", "Happy path analysis", "Orphaned test detection"],
|
|
939
|
-
requiredPlan: "
|
|
926
|
+
requiredPlan: "vibecoder",
|
|
940
927
|
category: "analysis"
|
|
941
928
|
},
|
|
942
929
|
ArchRules: {
|
|
@@ -944,7 +931,7 @@ var FEATURE_REGISTRY = {
|
|
|
944
931
|
title: "Architecture Rules",
|
|
945
932
|
subtitle: "Enforce architectural patterns",
|
|
946
933
|
benefits: ["YAML rule config", "6 rule types", "Violation detection"],
|
|
947
|
-
requiredPlan: "
|
|
934
|
+
requiredPlan: "vibecoder",
|
|
948
935
|
category: "analysis"
|
|
949
936
|
},
|
|
950
937
|
Provenance: {
|
|
@@ -952,7 +939,7 @@ var FEATURE_REGISTRY = {
|
|
|
952
939
|
title: "Provenance Tracking",
|
|
953
940
|
subtitle: "Edit history and attestations",
|
|
954
941
|
benefits: ["Edit tracking", "Attestation DB", "Audit trail"],
|
|
955
|
-
requiredPlan: "
|
|
942
|
+
requiredPlan: "vibecoder",
|
|
956
943
|
category: "compliance"
|
|
957
944
|
},
|
|
958
945
|
"Model Fingerprint": {
|
|
@@ -960,7 +947,7 @@ var FEATURE_REGISTRY = {
|
|
|
960
947
|
title: "Model Fingerprint",
|
|
961
948
|
subtitle: "AI model detection and tracking",
|
|
962
949
|
benefits: ["Model identification", "Version tracking", "Usage analytics"],
|
|
963
|
-
requiredPlan: "
|
|
950
|
+
requiredPlan: "vibecoder",
|
|
964
951
|
category: "analysis"
|
|
965
952
|
},
|
|
966
953
|
/** Kickoff / connect project (Free). */
|
|
@@ -969,7 +956,7 @@ var FEATURE_REGISTRY = {
|
|
|
969
956
|
title: "Kickoff & Connect",
|
|
970
957
|
subtitle: "Initialize and connect your project",
|
|
971
958
|
benefits: ["Project scaffolding", "Config generation", "Quick start"],
|
|
972
|
-
requiredPlan: "
|
|
959
|
+
requiredPlan: "vibecoder",
|
|
973
960
|
category: "core"
|
|
974
961
|
},
|
|
975
962
|
/** Codegraph — local dependency/symbol graph (Free). */
|
|
@@ -978,7 +965,7 @@ var FEATURE_REGISTRY = {
|
|
|
978
965
|
title: "Codegraph",
|
|
979
966
|
subtitle: "Local dependency and symbol graph",
|
|
980
967
|
benefits: ["Import/export map", "Symbol navigation", "Dependency visualization"],
|
|
981
|
-
requiredPlan: "
|
|
968
|
+
requiredPlan: "vibecoder",
|
|
982
969
|
category: "analysis"
|
|
983
970
|
},
|
|
984
971
|
/** WikiCode — codebase wiki and atlas (Free). */
|
|
@@ -987,7 +974,7 @@ var FEATURE_REGISTRY = {
|
|
|
987
974
|
title: "WikiCode",
|
|
988
975
|
subtitle: "Codebase wiki and documentation",
|
|
989
976
|
benefits: ["Browse codebase", "Feature mapping", "Documentation"],
|
|
990
|
-
requiredPlan: "
|
|
977
|
+
requiredPlan: "vibecoder",
|
|
991
978
|
category: "analysis"
|
|
992
979
|
},
|
|
993
980
|
/** Vibe Flow — AI workflows panel (Free). */
|
|
@@ -996,13 +983,11 @@ var FEATURE_REGISTRY = {
|
|
|
996
983
|
title: "Vibe Flow",
|
|
997
984
|
subtitle: "AI workflow automation",
|
|
998
985
|
benefits: ["Workflow templates", "Agent chips", "AI automation"],
|
|
999
|
-
requiredPlan: "
|
|
986
|
+
requiredPlan: "vibecoder",
|
|
1000
987
|
category: "productivity"
|
|
1001
988
|
},
|
|
1002
989
|
/**
|
|
1003
|
-
* Mission Run
|
|
1004
|
-
* can finish their first auto-generated mission. Subsequent runs require
|
|
1005
|
-
* Pro. Quota lookup uses `missionRun` FeatureLimitKey → `missionRunsLifetime`.
|
|
990
|
+
* Mission Run quota lookup uses `missionRun` FeatureLimitKey → `missionRunsLifetime`.
|
|
1006
991
|
*/
|
|
1007
992
|
"Mission Run": {
|
|
1008
993
|
entitlement: ENTITLEMENTS.SCAN_WORKSPACE,
|
|
@@ -1011,9 +996,9 @@ var FEATURE_REGISTRY = {
|
|
|
1011
996
|
benefits: [
|
|
1012
997
|
"Auto-generated from your scan",
|
|
1013
998
|
"Acceptance criteria + verification commands",
|
|
1014
|
-
"
|
|
999
|
+
"Paid subscribers get mission runs"
|
|
1015
1000
|
],
|
|
1016
|
-
requiredPlan: "
|
|
1001
|
+
requiredPlan: "vibecoder",
|
|
1017
1002
|
category: "productivity",
|
|
1018
1003
|
upgradeMessage: "Mission runs require Developer or higher."
|
|
1019
1004
|
}
|
|
@@ -1086,7 +1071,7 @@ function canAccessFeature(userPlan, featureName) {
|
|
|
1086
1071
|
}
|
|
1087
1072
|
function getMinimumPlanForFeature(featureName) {
|
|
1088
1073
|
const meta = FEATURE_REGISTRY[featureName];
|
|
1089
|
-
if (!meta) return "
|
|
1074
|
+
if (!meta) return "vibecoder";
|
|
1090
1075
|
return getRequiredPlan(meta.entitlement);
|
|
1091
1076
|
}
|
|
1092
1077
|
function getUpgradeTarget(currentPlan, featureName) {
|
|
@@ -1094,10 +1079,10 @@ function getUpgradeTarget(currentPlan, featureName) {
|
|
|
1094
1079
|
const meta = FEATURE_REGISTRY[featureName];
|
|
1095
1080
|
if (!meta) return null;
|
|
1096
1081
|
if (meetsPlanRequirement(canonicalCurrentPlan, meta.requiredPlan)) return null;
|
|
1097
|
-
return meta.requiredPlan
|
|
1082
|
+
return meta.requiredPlan;
|
|
1098
1083
|
}
|
|
1099
1084
|
var FEATURE_NAMES = {
|
|
1100
|
-
// ──
|
|
1085
|
+
// ── Paid product features ───────────────────────────────────────────────
|
|
1101
1086
|
SCAN_BASIC: "Scan Basic",
|
|
1102
1087
|
KICKOFF_CONNECT: "Kickoff Connect",
|
|
1103
1088
|
DOCTOR: "Doctor",
|
|
@@ -1111,18 +1096,17 @@ var FEATURE_NAMES = {
|
|
|
1111
1096
|
WIKICODE_ATLAS: "WikiCode Atlas",
|
|
1112
1097
|
/** Truthpack generate/validate — local CLI + IDE; registry key matches {@link FEATURE_REGISTRY} */
|
|
1113
1098
|
TRUTHPACK: "Truthpack",
|
|
1114
|
-
/** LLM guided routes
|
|
1099
|
+
/** LLM guided routes */
|
|
1115
1100
|
GUIDED_ROUTE: "Guided Route",
|
|
1116
1101
|
SHIP_SCORE: "Ship Score",
|
|
1117
1102
|
ISL_STUDIO: "ISL Studio",
|
|
1118
|
-
// ──
|
|
1103
|
+
// ── Legacy quota-aware features ─────────────────────────────────────────
|
|
1119
1104
|
/**
|
|
1120
|
-
* First auto-generated mission free, subsequent mission runs require Pro.
|
|
1121
1105
|
* Server-side `POST /missions/:id/run` enforces by counting lifetime
|
|
1122
1106
|
* non-`open` missions for the user.
|
|
1123
1107
|
*/
|
|
1124
1108
|
MISSION_RUN_FREE_FIRST: "Mission Run",
|
|
1125
|
-
// ──
|
|
1109
|
+
// ── Paid features ───────────────────────────────────────────────────────
|
|
1126
1110
|
VIBE_PROMPT: "Vibe Prompt",
|
|
1127
1111
|
PROOF_HISTORY: "Proof History",
|
|
1128
1112
|
FORGE: "Forge",
|
|
@@ -1161,12 +1145,12 @@ var FEATURE_NAMES = {
|
|
|
1161
1145
|
COMPLIANCE_AUDIT: "Compliance Audit"
|
|
1162
1146
|
};
|
|
1163
1147
|
function paidUpgradeTarget(plan) {
|
|
1164
|
-
return plan
|
|
1148
|
+
return plan;
|
|
1165
1149
|
}
|
|
1166
1150
|
var INTRO_PRICES = {
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
enterprise:
|
|
1151
|
+
vibecoder: null,
|
|
1152
|
+
engineer: null,
|
|
1153
|
+
enterprise: null
|
|
1170
1154
|
};
|
|
1171
1155
|
function formatFindingSeverityBreakdown(summary) {
|
|
1172
1156
|
const parts = [`${summary.total} total`];
|
|
@@ -1201,14 +1185,13 @@ function buildCliUpgradeBlock(featureName, currentPlan) {
|
|
|
1201
1185
|
}
|
|
1202
1186
|
function getPricingPageUrl(highlightPlan) {
|
|
1203
1187
|
const canonicalPlan = highlightPlan ? normalizePlanId(highlightPlan) : null;
|
|
1204
|
-
return getCheckoutUrl(canonicalPlan ?? "
|
|
1188
|
+
return getCheckoutUrl(canonicalPlan ?? "vibecoder", void 0, "pricing");
|
|
1205
1189
|
}
|
|
1206
1190
|
function getCheckoutUrl(plan, email, source = "extension", origin = "https://vibecheckai.dev") {
|
|
1207
1191
|
const canonicalPlan = normalizePlanId(plan ?? null);
|
|
1208
|
-
const target = canonicalPlan ?? "
|
|
1209
|
-
const checkoutTarget = target === "pro" ? "team" : target;
|
|
1192
|
+
const target = paidUpgradeTarget(canonicalPlan ?? "vibecoder");
|
|
1210
1193
|
const params = new URLSearchParams();
|
|
1211
|
-
params.set("plan",
|
|
1194
|
+
params.set("plan", target);
|
|
1212
1195
|
params.set("source", source);
|
|
1213
1196
|
if (email) params.set("email", email);
|
|
1214
1197
|
const base = origin.replace(/\/+$/, "");
|
|
@@ -1245,8 +1228,8 @@ function buildGatedScanResponse(opts) {
|
|
|
1245
1228
|
category: f.category,
|
|
1246
1229
|
ruleId: f.ruleId,
|
|
1247
1230
|
_gated: true,
|
|
1248
|
-
_upgradeMessage: "
|
|
1249
|
-
_upgradeUrl: getPricingPageUrl("
|
|
1231
|
+
_upgradeMessage: "Start Paid to see the full error details, location, and fix suggestion.",
|
|
1232
|
+
_upgradeUrl: getPricingPageUrl("vibecoder")
|
|
1250
1233
|
}));
|
|
1251
1234
|
return {
|
|
1252
1235
|
gated: true,
|
|
@@ -1257,15 +1240,19 @@ function buildGatedScanResponse(opts) {
|
|
|
1257
1240
|
findings: gatedFindings,
|
|
1258
1241
|
upgrade: {
|
|
1259
1242
|
show: true,
|
|
1260
|
-
message: `${opts.summary.total} issues found (${opts.summary.critical} critical, ${opts.summary.high} high, ${opts.summary.medium} medium).
|
|
1261
|
-
url: getPricingPageUrl("
|
|
1262
|
-
buttonLabel: "
|
|
1243
|
+
message: `${opts.summary.total} issues found (${opts.summary.critical} critical, ${opts.summary.high} high, ${opts.summary.medium} medium). Start Paid to see every error with location, explanation, and fix suggestion.`,
|
|
1244
|
+
url: getPricingPageUrl("vibecoder"),
|
|
1245
|
+
buttonLabel: "Start Vibecoder"
|
|
1263
1246
|
}
|
|
1264
1247
|
};
|
|
1265
1248
|
}
|
|
1266
|
-
var DAILY_SCAN_LIMIT_UPGRADE_URL = getCheckoutUrl(
|
|
1249
|
+
var DAILY_SCAN_LIMIT_UPGRADE_URL = getCheckoutUrl(
|
|
1250
|
+
"vibecoder",
|
|
1251
|
+
void 0,
|
|
1252
|
+
"daily_scan_cap"
|
|
1253
|
+
);
|
|
1267
1254
|
function formatDailyScanLimitMessage(usage) {
|
|
1268
|
-
return `Daily scan limit reached (${usage.limit}/day). Upgrade to
|
|
1255
|
+
return `Daily scan limit reached (${usage.limit}/day). Upgrade to Vibecoder (${PLAN_PRICE_LABELS.vibecoder}) for access.`;
|
|
1269
1256
|
}
|
|
1270
1257
|
var DEFAULT_API_BASE_URL = "https://api.vibecheckai.dev";
|
|
1271
1258
|
function isRecord(value) {
|
|
@@ -1351,36 +1338,36 @@ async function fetchCanonicalAccess(options = {}) {
|
|
|
1351
1338
|
};
|
|
1352
1339
|
}
|
|
1353
1340
|
var CLI_COMMAND_MIN_PLAN = {
|
|
1354
|
-
scan: "
|
|
1355
|
-
score: "
|
|
1356
|
-
roast: "
|
|
1357
|
-
truthpack: "
|
|
1358
|
-
init: "
|
|
1359
|
-
doctor: "
|
|
1341
|
+
scan: "vibecoder",
|
|
1342
|
+
score: "vibecoder",
|
|
1343
|
+
roast: "vibecoder",
|
|
1344
|
+
truthpack: "vibecoder",
|
|
1345
|
+
init: "vibecoder",
|
|
1346
|
+
doctor: "vibecoder",
|
|
1360
1347
|
login: null,
|
|
1361
1348
|
logout: null,
|
|
1362
1349
|
whoami: null,
|
|
1363
1350
|
completion: null,
|
|
1364
1351
|
help: null,
|
|
1365
1352
|
version: null,
|
|
1366
|
-
guard: "
|
|
1367
|
-
ship: "
|
|
1368
|
-
rules: "
|
|
1369
|
-
prompt: "
|
|
1370
|
-
fix: "
|
|
1371
|
-
polish: "
|
|
1372
|
-
reality: "
|
|
1373
|
-
forge: "
|
|
1374
|
-
context: "
|
|
1375
|
-
review: "
|
|
1376
|
-
firewall: "
|
|
1377
|
-
commitshield: "
|
|
1378
|
-
docguard: "
|
|
1379
|
-
surgeon: "
|
|
1380
|
-
native: "
|
|
1381
|
-
nexus: "
|
|
1382
|
-
neuro: "
|
|
1383
|
-
serve: "
|
|
1353
|
+
guard: "vibecoder",
|
|
1354
|
+
ship: "vibecoder",
|
|
1355
|
+
rules: "vibecoder",
|
|
1356
|
+
prompt: "vibecoder",
|
|
1357
|
+
fix: "vibecoder",
|
|
1358
|
+
polish: "vibecoder",
|
|
1359
|
+
reality: "vibecoder",
|
|
1360
|
+
forge: "vibecoder",
|
|
1361
|
+
context: "vibecoder",
|
|
1362
|
+
review: "vibecoder",
|
|
1363
|
+
firewall: "vibecoder",
|
|
1364
|
+
commitshield: "vibecoder",
|
|
1365
|
+
docguard: "vibecoder",
|
|
1366
|
+
surgeon: "vibecoder",
|
|
1367
|
+
native: "vibecoder",
|
|
1368
|
+
nexus: "vibecoder",
|
|
1369
|
+
neuro: "vibecoder",
|
|
1370
|
+
serve: "vibecoder"
|
|
1384
1371
|
};
|
|
1385
1372
|
Object.fromEntries(
|
|
1386
1373
|
Object.entries(CLI_COMMAND_MIN_PLAN).map(([k, v]) => [k.toLowerCase(), v])
|