@vibecheck-ai/mcp 25.0.0 → 26.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-HY3UUAAZ.js +135 -0
- package/dist/{chokidar-CI5VJY5M.js → chokidar-UOK5UIOF.js} +4 -4
- package/dist/{chunk-WUHPSW7M.js → chunk-RPSVX4GS.js} +78 -102
- package/dist/{dist-Y2Z46SBD.js → dist-74DHDHNJ.js} +1 -1
- package/dist/index.js +3046 -2831
- package/dist/version-gate-DWV5M7WC.js +80 -0
- package/package.json +4 -2
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createRequire } from 'module';
|
|
2
|
+
import { fileURLToPath } from 'url';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { dirname } from 'path';
|
|
5
|
+
import './chunk-YWUMPN4Z.js';
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as os from 'os';
|
|
8
|
+
import * as crypto from 'crypto';
|
|
9
|
+
|
|
10
|
+
createRequire(import.meta.url);
|
|
11
|
+
const __filename$1 = fileURLToPath(import.meta.url);
|
|
12
|
+
dirname(__filename$1);
|
|
13
|
+
var POSTHOG_KEY = "phc_BsYUFF2kwF3H1As50roEinN6C8IcmM7Sf8TLZZ6Q5oV";
|
|
14
|
+
var POSTHOG_HOST = "https://us.i.posthog.com";
|
|
15
|
+
var BUILD_ID = "26.0.0.1778827744596";
|
|
16
|
+
var client = null;
|
|
17
|
+
var distinctId = "";
|
|
18
|
+
var mcpVersion = "unknown";
|
|
19
|
+
var initialized = false;
|
|
20
|
+
var disabled = false;
|
|
21
|
+
function isTelemetryDisabled() {
|
|
22
|
+
return process.env.VIBECHECK_NO_TELEMETRY === "1" || process.env.VIBECHECK_NO_TELEMETRY === "true" || process.env.DO_NOT_TRACK === "1" || process.env.DO_NOT_TRACK === "true";
|
|
23
|
+
}
|
|
24
|
+
function getDistinctIdPath() {
|
|
25
|
+
return path.join(os.homedir(), ".vibecheck", "analytics.json");
|
|
26
|
+
}
|
|
27
|
+
function loadOrCreateDistinctId() {
|
|
28
|
+
const p = getDistinctIdPath();
|
|
29
|
+
try {
|
|
30
|
+
const raw = fs.readFileSync(p, "utf-8");
|
|
31
|
+
const data = JSON.parse(raw);
|
|
32
|
+
if (typeof data.distinctId === "string" && data.distinctId.length > 0) {
|
|
33
|
+
return data.distinctId;
|
|
34
|
+
}
|
|
35
|
+
} catch {
|
|
36
|
+
}
|
|
37
|
+
const id = crypto.randomUUID();
|
|
38
|
+
try {
|
|
39
|
+
fs.mkdirSync(path.dirname(p), { recursive: true });
|
|
40
|
+
fs.writeFileSync(p, JSON.stringify({ distinctId: id }, null, 2), "utf-8");
|
|
41
|
+
} catch {
|
|
42
|
+
}
|
|
43
|
+
return id;
|
|
44
|
+
}
|
|
45
|
+
async function initAnalytics(version) {
|
|
46
|
+
if (initialized) return;
|
|
47
|
+
initialized = true;
|
|
48
|
+
mcpVersion = version;
|
|
49
|
+
if (isTelemetryDisabled() || !POSTHOG_KEY) {
|
|
50
|
+
disabled = true;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
distinctId = loadOrCreateDistinctId();
|
|
54
|
+
try {
|
|
55
|
+
const mod = await import('posthog-node');
|
|
56
|
+
client = new mod.PostHog(POSTHOG_KEY, {
|
|
57
|
+
host: POSTHOG_HOST,
|
|
58
|
+
flushAt: 1,
|
|
59
|
+
flushInterval: 1e3
|
|
60
|
+
});
|
|
61
|
+
client.capture({
|
|
62
|
+
distinctId,
|
|
63
|
+
event: "mcp_server_started",
|
|
64
|
+
properties: {
|
|
65
|
+
mcp_version: mcpVersion,
|
|
66
|
+
build_id: BUILD_ID,
|
|
67
|
+
platform: process.platform,
|
|
68
|
+
node_version: process.version
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
} catch {
|
|
72
|
+
disabled = true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function trackToolCall(toolName, extra = {}) {
|
|
76
|
+
if (disabled || !client) return;
|
|
77
|
+
try {
|
|
78
|
+
client.capture({
|
|
79
|
+
distinctId,
|
|
80
|
+
event: "mcp_tool_call",
|
|
81
|
+
properties: {
|
|
82
|
+
tool: toolName,
|
|
83
|
+
mcp_version: mcpVersion,
|
|
84
|
+
build_id: BUILD_ID,
|
|
85
|
+
...extra
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
} catch {
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function trackToolResult(toolName, success, durationMs, extra = {}) {
|
|
92
|
+
if (disabled || !client) return;
|
|
93
|
+
try {
|
|
94
|
+
client.capture({
|
|
95
|
+
distinctId,
|
|
96
|
+
event: "mcp_tool_completed",
|
|
97
|
+
properties: {
|
|
98
|
+
tool: toolName,
|
|
99
|
+
success,
|
|
100
|
+
duration_ms: durationMs,
|
|
101
|
+
mcp_version: mcpVersion,
|
|
102
|
+
build_id: BUILD_ID,
|
|
103
|
+
...extra
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
} catch {
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function trackError(context, err, extra = {}) {
|
|
110
|
+
if (disabled || !client) return;
|
|
111
|
+
try {
|
|
112
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
113
|
+
client.capture({
|
|
114
|
+
distinctId,
|
|
115
|
+
event: "mcp_error",
|
|
116
|
+
properties: {
|
|
117
|
+
context,
|
|
118
|
+
error_message: message,
|
|
119
|
+
mcp_version: mcpVersion,
|
|
120
|
+
build_id: BUILD_ID,
|
|
121
|
+
...extra
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
} catch {
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async function shutdownAnalytics() {
|
|
128
|
+
if (!client) return;
|
|
129
|
+
try {
|
|
130
|
+
await client.shutdown();
|
|
131
|
+
} catch {
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export { initAnalytics, shutdownAnalytics, trackError, trackToolCall, trackToolResult };
|
|
@@ -1175,9 +1175,9 @@ var init_fsevents = __esm({
|
|
|
1175
1175
|
}
|
|
1176
1176
|
});
|
|
1177
1177
|
|
|
1178
|
-
// node-file:/Users/liquidgroove/Desktop/Vibecheck-
|
|
1178
|
+
// node-file:/Users/liquidgroove/Desktop/Vibecheck-main/node_modules/.pnpm/fsevents@2.3.3/node_modules/fsevents/fsevents.node
|
|
1179
1179
|
var require_fsevents = __commonJS({
|
|
1180
|
-
"node-file:/Users/liquidgroove/Desktop/Vibecheck-
|
|
1180
|
+
"node-file:/Users/liquidgroove/Desktop/Vibecheck-main/node_modules/.pnpm/fsevents@2.3.3/node_modules/fsevents/fsevents.node"(exports$1, module) {
|
|
1181
1181
|
init_fsevents();
|
|
1182
1182
|
try {
|
|
1183
1183
|
module.exports = __require(fsevents_default);
|
|
@@ -2399,7 +2399,7 @@ var require_chokidar = __commonJS({
|
|
|
2399
2399
|
exports$1.watch = watch;
|
|
2400
2400
|
}
|
|
2401
2401
|
});
|
|
2402
|
-
var
|
|
2402
|
+
var chokidarUOK5UIOF = require_chokidar();
|
|
2403
2403
|
/*! Bundled license information:
|
|
2404
2404
|
|
|
2405
2405
|
normalize-path/index.js:
|
|
@@ -2411,4 +2411,4 @@ normalize-path/index.js:
|
|
|
2411
2411
|
*)
|
|
2412
2412
|
*/
|
|
2413
2413
|
|
|
2414
|
-
export {
|
|
2414
|
+
export { chokidarUOK5UIOF as default };
|
|
@@ -27,7 +27,7 @@ dirname(__filename$1);
|
|
|
27
27
|
// ../engines/dist/index.js
|
|
28
28
|
var import_typescript = __toESM(require_typescript(), 1);
|
|
29
29
|
|
|
30
|
-
// ../subscriptions/dist/chunk-
|
|
30
|
+
// ../subscriptions/dist/chunk-CT7TNL2U.js
|
|
31
31
|
var PLAN_IDS = ["pro", "team", "enterprise"];
|
|
32
32
|
var PLAN_RANK = {
|
|
33
33
|
pro: 0,
|
|
@@ -45,11 +45,6 @@ var PLAN_NORMALIZATION_ALIASES = {
|
|
|
45
45
|
vibe_coder: "pro",
|
|
46
46
|
"vibe-coder": "pro",
|
|
47
47
|
"vibe coder": "pro",
|
|
48
|
-
trialing: "pro",
|
|
49
|
-
active: "pro",
|
|
50
|
-
paid: "pro",
|
|
51
|
-
premium: "pro",
|
|
52
|
-
starter: "pro",
|
|
53
48
|
compliance: "enterprise",
|
|
54
49
|
business: "team",
|
|
55
50
|
team_workspace: "team",
|
|
@@ -99,39 +94,40 @@ if (typeof process !== "undefined") {
|
|
|
99
94
|
}
|
|
100
95
|
}
|
|
101
96
|
var PLAN_DEFINITIONS = {
|
|
97
|
+
/**
|
|
98
|
+
* Included free tier (canonical id `pro`). Paid checkout targets use plan id `team` / `enterprise`.
|
|
99
|
+
*/
|
|
102
100
|
pro: {
|
|
103
|
-
displayName: "
|
|
104
|
-
tagline: "
|
|
105
|
-
monthlyPriceUsd:
|
|
106
|
-
priceLabel: "
|
|
101
|
+
displayName: "Free",
|
|
102
|
+
tagline: "Free \u2014 start scanning AI-built software.",
|
|
103
|
+
monthlyPriceUsd: 0,
|
|
104
|
+
priceLabel: "Free",
|
|
107
105
|
billingInterval: "month",
|
|
108
106
|
badgeToken: "tier-pro",
|
|
109
107
|
highlights: [
|
|
110
108
|
"Everything you need to ship with AI:",
|
|
111
109
|
"All findings detailed (no blur)",
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"90-day history \xB7 10 projects",
|
|
118
|
-
"7-day free trial"
|
|
110
|
+
"VS Code extension + CLI",
|
|
111
|
+
"Local scans and scan summaries",
|
|
112
|
+
"Truthpack and project context basics",
|
|
113
|
+
"Starter guardrails for AI-generated code",
|
|
114
|
+
"Upgrade when you need paid automation"
|
|
119
115
|
],
|
|
120
116
|
bestFor: "Indie devs shipping with AI",
|
|
121
|
-
popular:
|
|
122
|
-
cta: "Start
|
|
117
|
+
popular: false,
|
|
118
|
+
cta: "Start free",
|
|
123
119
|
ctaVariant: "default",
|
|
124
120
|
supportLevel: "standard"
|
|
125
121
|
},
|
|
126
122
|
team: {
|
|
127
|
-
displayName: "
|
|
128
|
-
tagline: "$29
|
|
129
|
-
monthlyPriceUsd: 29
|
|
130
|
-
priceLabel: "$29
|
|
123
|
+
displayName: "Team",
|
|
124
|
+
tagline: "$29/mo \u2014 prevent the next bug.",
|
|
125
|
+
monthlyPriceUsd: 29,
|
|
126
|
+
priceLabel: "$29/mo",
|
|
131
127
|
billingInterval: "month",
|
|
132
128
|
badgeToken: "tier-team",
|
|
133
129
|
highlights: [
|
|
134
|
-
"Everything in
|
|
130
|
+
"Everything in Free, plus:",
|
|
135
131
|
"200 auto-fixes/mo + Self-Healing PRs",
|
|
136
132
|
"Live AI context sync (no manual export)",
|
|
137
133
|
"Ghost Mode \u2014 unlimited firewall rules + Drift Watcher",
|
|
@@ -141,20 +137,20 @@ var PLAN_DEFINITIONS = {
|
|
|
141
137
|
"Cloud sync \xB7 50 projects"
|
|
142
138
|
],
|
|
143
139
|
bestFor: "Small teams with shared AI workflows",
|
|
144
|
-
popular:
|
|
145
|
-
cta: "
|
|
140
|
+
popular: true,
|
|
141
|
+
cta: "Upgrade to Team",
|
|
146
142
|
ctaVariant: "default",
|
|
147
143
|
supportLevel: "priority"
|
|
148
144
|
},
|
|
149
145
|
enterprise: {
|
|
150
|
-
displayName: "
|
|
151
|
-
tagline: "$59
|
|
152
|
-
monthlyPriceUsd: 59
|
|
153
|
-
priceLabel: "$59
|
|
146
|
+
displayName: "Enterprise",
|
|
147
|
+
tagline: "$59/mo \u2014 lock it down.",
|
|
148
|
+
monthlyPriceUsd: 59,
|
|
149
|
+
priceLabel: "$59/mo",
|
|
154
150
|
billingInterval: "month",
|
|
155
151
|
badgeToken: "tier-enterprise",
|
|
156
152
|
highlights: [
|
|
157
|
-
"Everything in
|
|
153
|
+
"Everything in Team, plus:",
|
|
158
154
|
"Ghost Mode \u2014 Lockdown (no writes without proof)",
|
|
159
155
|
"Org-wide truthpack sharing + per-team scoped contexts",
|
|
160
156
|
"Compliance bundles \u2014 SOC2, HIPAA, PCI-DSS, GDPR",
|
|
@@ -165,7 +161,7 @@ var PLAN_DEFINITIONS = {
|
|
|
165
161
|
],
|
|
166
162
|
bestFor: "Orgs with compliance and governance needs",
|
|
167
163
|
popular: false,
|
|
168
|
-
cta: "
|
|
164
|
+
cta: "Upgrade to Enterprise",
|
|
169
165
|
ctaVariant: "default",
|
|
170
166
|
supportLevel: "dedicated"
|
|
171
167
|
}
|
|
@@ -821,7 +817,7 @@ var FEATURE_REGISTRY = {
|
|
|
821
817
|
benefits: ["Auto-generate rules", "Team-ready context in IDE", "MCP & API hooks"],
|
|
822
818
|
requiredPlan: "pro",
|
|
823
819
|
category: "analysis",
|
|
824
|
-
upgradeMessage: "Context Engine (cloud rules & agents) requires
|
|
820
|
+
upgradeMessage: "Context Engine (cloud rules & agents) requires Developer or higher."
|
|
825
821
|
},
|
|
826
822
|
"ISL Studio": {
|
|
827
823
|
entitlement: ENTITLEMENTS.SCAN_WORKSPACE,
|
|
@@ -1015,11 +1011,11 @@ var FEATURE_REGISTRY = {
|
|
|
1015
1011
|
benefits: [
|
|
1016
1012
|
"Auto-generated from your scan",
|
|
1017
1013
|
"Acceptance criteria + verification commands",
|
|
1018
|
-
"
|
|
1014
|
+
"Developer+ unlimited mission runs"
|
|
1019
1015
|
],
|
|
1020
1016
|
requiredPlan: "pro",
|
|
1021
1017
|
category: "productivity",
|
|
1022
|
-
upgradeMessage: "Mission runs require
|
|
1018
|
+
upgradeMessage: "Mission runs require Developer or higher."
|
|
1023
1019
|
}
|
|
1024
1020
|
};
|
|
1025
1021
|
var VALID_ENTITLEMENTS = new Set(Object.values(ENTITLEMENTS));
|
|
@@ -1098,7 +1094,7 @@ function getUpgradeTarget(currentPlan, featureName) {
|
|
|
1098
1094
|
const meta = FEATURE_REGISTRY[featureName];
|
|
1099
1095
|
if (!meta) return null;
|
|
1100
1096
|
if (meetsPlanRequirement(canonicalCurrentPlan, meta.requiredPlan)) return null;
|
|
1101
|
-
return meta.requiredPlan;
|
|
1097
|
+
return meta.requiredPlan === "pro" ? "team" : meta.requiredPlan;
|
|
1102
1098
|
}
|
|
1103
1099
|
var FEATURE_NAMES = {
|
|
1104
1100
|
// ── Free features ───────────────────────────────────────────────────────
|
|
@@ -1164,8 +1160,11 @@ var FEATURE_NAMES = {
|
|
|
1164
1160
|
SDK_GENERATOR: "SDK Generator",
|
|
1165
1161
|
COMPLIANCE_AUDIT: "Compliance Audit"
|
|
1166
1162
|
};
|
|
1163
|
+
function paidUpgradeTarget(plan) {
|
|
1164
|
+
return plan === "pro" ? "team" : plan;
|
|
1165
|
+
}
|
|
1167
1166
|
var INTRO_PRICES = {
|
|
1168
|
-
pro:
|
|
1167
|
+
pro: null,
|
|
1169
1168
|
team: "$4.99",
|
|
1170
1169
|
enterprise: "$14.99"
|
|
1171
1170
|
};
|
|
@@ -1182,13 +1181,11 @@ function formatFindingSeverityBreakdown(summary) {
|
|
|
1182
1181
|
function buildCliUpgradeBlock(featureName, currentPlan) {
|
|
1183
1182
|
const target = getUpgradeTarget(currentPlan, featureName);
|
|
1184
1183
|
if (!target) return "";
|
|
1185
|
-
const
|
|
1186
|
-
const
|
|
1187
|
-
const
|
|
1188
|
-
const
|
|
1189
|
-
|
|
1190
|
-
` \u26A1 ${featureName} requires ${name}`
|
|
1191
|
-
];
|
|
1184
|
+
const paidTarget = paidUpgradeTarget(target);
|
|
1185
|
+
const name = PLAN_DISPLAY_NAMES[paidTarget];
|
|
1186
|
+
const price = PLAN_PRICE_LABELS[paidTarget];
|
|
1187
|
+
const intro = INTRO_PRICES[paidTarget];
|
|
1188
|
+
const lines = ["", ` \u26A1 ${featureName} requires ${name}`];
|
|
1192
1189
|
if (intro) {
|
|
1193
1190
|
lines.push(` \u{1F525} Pre-launch: ${intro} first month (then ${price})`);
|
|
1194
1191
|
} else {
|
|
@@ -1196,21 +1193,22 @@ function buildCliUpgradeBlock(featureName, currentPlan) {
|
|
|
1196
1193
|
}
|
|
1197
1194
|
lines.push(
|
|
1198
1195
|
"",
|
|
1199
|
-
` Upgrade: ${getPricingPageUrl(
|
|
1196
|
+
` Upgrade: ${getPricingPageUrl(paidTarget)}`,
|
|
1200
1197
|
" Or run: vibecheck auth upgrade",
|
|
1201
1198
|
""
|
|
1202
1199
|
);
|
|
1203
1200
|
return lines.join("\n");
|
|
1204
1201
|
}
|
|
1205
1202
|
function getPricingPageUrl(highlightPlan) {
|
|
1206
|
-
const canonicalPlan = normalizePlanId(highlightPlan) ;
|
|
1203
|
+
const canonicalPlan = highlightPlan ? normalizePlanId(highlightPlan) : null;
|
|
1207
1204
|
return getCheckoutUrl(canonicalPlan ?? "pro", void 0, "pricing");
|
|
1208
1205
|
}
|
|
1209
1206
|
function getCheckoutUrl(plan, email, source = "extension", origin = "https://vibecheckai.dev") {
|
|
1210
1207
|
const canonicalPlan = normalizePlanId(plan ?? null);
|
|
1211
1208
|
const target = canonicalPlan ?? "pro";
|
|
1209
|
+
const checkoutTarget = target === "pro" ? "team" : target;
|
|
1212
1210
|
const params = new URLSearchParams();
|
|
1213
|
-
params.set("plan",
|
|
1211
|
+
params.set("plan", checkoutTarget);
|
|
1214
1212
|
params.set("source", source);
|
|
1215
1213
|
if (email) params.set("email", email);
|
|
1216
1214
|
const base = origin.replace(/\/+$/, "");
|
|
@@ -1247,8 +1245,8 @@ function buildGatedScanResponse(opts) {
|
|
|
1247
1245
|
category: f.category,
|
|
1248
1246
|
ruleId: f.ruleId,
|
|
1249
1247
|
_gated: true,
|
|
1250
|
-
_upgradeMessage: "Upgrade to
|
|
1251
|
-
_upgradeUrl: getPricingPageUrl("
|
|
1248
|
+
_upgradeMessage: "Upgrade to Developer to see the full error details, location, and fix suggestion.",
|
|
1249
|
+
_upgradeUrl: getPricingPageUrl("team")
|
|
1252
1250
|
}));
|
|
1253
1251
|
return {
|
|
1254
1252
|
gated: true,
|
|
@@ -1259,15 +1257,15 @@ function buildGatedScanResponse(opts) {
|
|
|
1259
1257
|
findings: gatedFindings,
|
|
1260
1258
|
upgrade: {
|
|
1261
1259
|
show: true,
|
|
1262
|
-
message: `${opts.summary.total} issues found (${opts.summary.critical} critical, ${opts.summary.high} high, ${opts.summary.medium} medium). Upgrade to
|
|
1263
|
-
url: getPricingPageUrl("
|
|
1264
|
-
buttonLabel: "Upgrade to
|
|
1260
|
+
message: `${opts.summary.total} issues found (${opts.summary.critical} critical, ${opts.summary.high} high, ${opts.summary.medium} medium). Upgrade to Developer to see every error with location, explanation, and fix suggestion.`,
|
|
1261
|
+
url: getPricingPageUrl("team"),
|
|
1262
|
+
buttonLabel: "Upgrade to Developer"
|
|
1265
1263
|
}
|
|
1266
1264
|
};
|
|
1267
1265
|
}
|
|
1268
1266
|
var DAILY_SCAN_LIMIT_UPGRADE_URL = getCheckoutUrl("pro", void 0, "daily_scan_cap");
|
|
1269
1267
|
function formatDailyScanLimitMessage(usage) {
|
|
1270
|
-
return `Daily scan limit reached (${usage.limit}/day). Upgrade to
|
|
1268
|
+
return `Daily scan limit reached (${usage.limit}/day). Upgrade to Developer (${PLAN_PRICE_LABELS.team}) for unlimited scans.`;
|
|
1271
1269
|
}
|
|
1272
1270
|
var DEFAULT_API_BASE_URL = "https://api.vibecheckai.dev";
|
|
1273
1271
|
function isRecord(value) {
|
|
@@ -1308,33 +1306,48 @@ function coerceCanonicalAccessResponse(value) {
|
|
|
1308
1306
|
}
|
|
1309
1307
|
async function fetchCanonicalAccess(options = {}) {
|
|
1310
1308
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
1309
|
+
const headers = buildPlatformAuthHeaders(options.token, options.headers);
|
|
1310
|
+
const ci = options.clientIdentity;
|
|
1311
|
+
if (ci?.clientType?.trim() && ci?.clientVersion?.trim()) {
|
|
1312
|
+
headers.set("X-Client-Type", ci.clientType.trim());
|
|
1313
|
+
headers.set("X-Client-Version", ci.clientVersion.trim());
|
|
1314
|
+
}
|
|
1311
1315
|
const response = await fetchImpl(getCanonicalAccessUrl(options.apiBaseUrl), {
|
|
1312
|
-
headers
|
|
1316
|
+
headers,
|
|
1313
1317
|
signal: options.signal,
|
|
1314
1318
|
credentials: options.credentials
|
|
1315
1319
|
});
|
|
1316
|
-
|
|
1320
|
+
let json;
|
|
1321
|
+
try {
|
|
1322
|
+
json = await response.json();
|
|
1323
|
+
} catch {
|
|
1317
1324
|
return {
|
|
1318
1325
|
ok: false,
|
|
1319
1326
|
status: response.status,
|
|
1320
|
-
data: null
|
|
1327
|
+
data: null,
|
|
1328
|
+
error: null
|
|
1321
1329
|
};
|
|
1322
1330
|
}
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1331
|
+
if (!response.ok) {
|
|
1332
|
+
const root = json;
|
|
1333
|
+
const errObj = root?.error;
|
|
1334
|
+
const error = errObj && typeof errObj === "object" ? {
|
|
1335
|
+
code: typeof errObj.code === "string" ? errObj.code : void 0,
|
|
1336
|
+
message: typeof errObj.message === "string" ? errObj.message : void 0
|
|
1337
|
+
} : null;
|
|
1327
1338
|
return {
|
|
1328
1339
|
ok: false,
|
|
1329
1340
|
status: response.status,
|
|
1330
|
-
data: null
|
|
1341
|
+
data: null,
|
|
1342
|
+
error
|
|
1331
1343
|
};
|
|
1332
1344
|
}
|
|
1333
1345
|
const data = coerceCanonicalAccessResponse(json);
|
|
1334
1346
|
return {
|
|
1335
1347
|
ok: data !== null,
|
|
1336
1348
|
status: response.status,
|
|
1337
|
-
data
|
|
1349
|
+
data,
|
|
1350
|
+
error: null
|
|
1338
1351
|
};
|
|
1339
1352
|
}
|
|
1340
1353
|
var CLI_COMMAND_MIN_PLAN = {
|
|
@@ -1366,6 +1379,7 @@ var CLI_COMMAND_MIN_PLAN = {
|
|
|
1366
1379
|
surgeon: "pro",
|
|
1367
1380
|
native: "pro",
|
|
1368
1381
|
nexus: "pro",
|
|
1382
|
+
neuro: "pro",
|
|
1369
1383
|
serve: "pro"
|
|
1370
1384
|
};
|
|
1371
1385
|
Object.fromEntries(
|
|
@@ -1437,6 +1451,8 @@ Object.fromEntries(
|
|
|
1437
1451
|
surgeon: FEATURE_NAMES.SCAN_BASIC,
|
|
1438
1452
|
native: FEATURE_NAMES.DEEP_SCAN,
|
|
1439
1453
|
nexus: FEATURE_NAMES.CODE_GRAPH,
|
|
1454
|
+
/** Neuro aligns with Context Engine stack in server access payloads. */
|
|
1455
|
+
neuro: FEATURE_NAMES.CONTEXT_ENGINE,
|
|
1440
1456
|
serve: FEATURE_NAMES.WEB_TERMINAL
|
|
1441
1457
|
});
|
|
1442
1458
|
|
|
@@ -1561,46 +1577,6 @@ var TEAM_ENTITLEMENTS = new Set(PRO_ENTITLEMENTS);
|
|
|
1561
1577
|
ENTITLEMENTS2.ENTERPRISE_SIGNED_BUNDLES,
|
|
1562
1578
|
ENTITLEMENTS2.ENTERPRISE_MULTI_REPO
|
|
1563
1579
|
]);
|
|
1564
|
-
function quotasToPlanLimits(q) {
|
|
1565
|
-
return {
|
|
1566
|
-
findingDetailLimit: q.findingDetailLimit,
|
|
1567
|
-
canAutoFix: q.canAutoFix,
|
|
1568
|
-
canHealPR: q.canHealPR,
|
|
1569
|
-
canModelFingerprint: q.canModelFingerprint,
|
|
1570
|
-
canRealityMode: q.canRealityMode,
|
|
1571
|
-
canISLGenerate: q.canISLGenerate,
|
|
1572
|
-
canCIBlock: q.canCIBlock,
|
|
1573
|
-
scanHistoryDays: q.scanHistoryDays,
|
|
1574
|
-
maxProjects: q.maxProjects,
|
|
1575
|
-
apiRequestsPerDay: q.apiRequestsPerDay,
|
|
1576
|
-
canExportCSV: q.canExportCSV,
|
|
1577
|
-
canSlackIntegration: q.canSlackIntegration,
|
|
1578
|
-
scansPerDay: q.scansPerDay
|
|
1579
|
-
};
|
|
1580
|
-
}
|
|
1581
|
-
({
|
|
1582
|
-
free: quotasToPlanLimits(getQuotas(null)),
|
|
1583
|
-
pro: quotasToPlanLimits(PLAN_QUOTAS.pro),
|
|
1584
|
-
team: quotasToPlanLimits(PLAN_QUOTAS.team),
|
|
1585
|
-
enterprise: quotasToPlanLimits(PLAN_QUOTAS.enterprise)
|
|
1586
|
-
});
|
|
1587
|
-
({
|
|
1588
|
-
pro: {
|
|
1589
|
-
name: PLANS.pro.displayName,
|
|
1590
|
-
tagline: PLANS.pro.tagline,
|
|
1591
|
-
price: PLANS.pro.monthlyPriceUsd,
|
|
1592
|
-
priceLabel: PLANS.pro.priceLabel},
|
|
1593
|
-
team: {
|
|
1594
|
-
name: PLANS.team.displayName,
|
|
1595
|
-
tagline: PLANS.team.tagline,
|
|
1596
|
-
price: PLANS.team.monthlyPriceUsd,
|
|
1597
|
-
priceLabel: PLANS.team.priceLabel},
|
|
1598
|
-
enterprise: {
|
|
1599
|
-
name: PLANS.enterprise.displayName,
|
|
1600
|
-
tagline: PLANS.enterprise.tagline,
|
|
1601
|
-
price: PLANS.enterprise.monthlyPriceUsd,
|
|
1602
|
-
priceLabel: PLANS.enterprise.priceLabel}
|
|
1603
|
-
});
|
|
1604
1580
|
|
|
1605
1581
|
// ../shared-types/dist/risk-dimensions.js
|
|
1606
1582
|
var RISK_DIMENSIONS = [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire } from 'module';
|
|
2
2
|
import { fileURLToPath } from 'url';
|
|
3
3
|
import { dirname } from 'path';
|
|
4
|
-
export { AIRulesAttackEngine, AI_HALLUCINATED_PACKAGES, CANONICAL_AI_PACKAGES_NPM, CORE_ENGINE_IDS, CORE_ENGINE_MANIFESTS, CircuitBreaker, ENGINE_FOCUS_PRESETS, EngineRegistry, EnvLoader, FakeFeaturesEngine, IncompleteImplEngine, OutcomeVerificationEngine, PerformanceAntipatternEngine, RULE_AUTOFIX_SAFETY_BY_ID, RULE_MATURITY_BY_ID, RULE_TRUST_IMPACT_BY_ID, RuntimeProbeEngine, SCAN_ENGINE_FOCUS_PRESET_NAMES, SecurityPatternEngine, SlopsquatEngine, TestQualityEngine, TruthpackEnvIndex, TypeContractEngine, VIBECHECK_DEFAULT_ENGINE_IDS, VibecheckNativeEngine, WORKSPACE_ENGINE_IDS, WORKSPACE_ENGINE_MANIFESTS, accessibilityEngine, aiRulesAttackManifest, apexFromHost, apexFromUrl, autofixSafetyForRule, backendEngine, buildCiSummaryJson, buildRiskClusters, buildShipBlockers, categoryIcons, computeFusionStats, computeTrustScore, configurationEngine, createDefaultRegistry, detectBrandImpersonationNpm, diffScores, documentationEngine, engineTogglesAllowOnly, errorHandlingManifest, estimateBlastRadius, extractKnownHostsFromIntegrations, fakeFeaturesManifest, findUncalledExportedFunctions, formatCiSummaryMarkdown, formatCiSummaryPlainLines, formatFindings, formatSummary, formatTraceAsJson, formatTraceForTerminal, formatTrustScoreMarkdown, fuseFindings, generateVerdict, ghostRouteManifest, hostMatchesKnownSet, icons, incompleteImplManifest, infrastructureEngine, isTestLikeScanPath, isVibecheckFinding, loadTruthpack, logicGapManifest, maturityTierForRule, observabilityEngine, outcomeVerificationManifest, parseCallSites, perfAntipatternManifest, performanceEngine, phantomDepManifest, registerAllEngines, registerCoreEngines, registerWorkspaceEngines, resilienceEngine, runGhostTrace, runPolish, scan, securityEngine, securityPatternManifest, seoEngine, slopsquatManifest, testQualityManifest, toCanonicalFinding, toCanonicalFindingFromGuardrail, toCanonicalFindingFromLegacyFinding, toCanonicalFindingFromMissionFinding, toCanonicalFindingFromPolish, toCanonicalFindingFromReport, toCanonicalFindingFromScanApi, toCanonicalFindingFromScanFinding, toCanonicalFindings, toSarif, trustImpactForRule, trustPenaltyScaleForFinding, truthpackToRouteIndex, typeContractManifest } from './chunk-
|
|
4
|
+
export { AIRulesAttackEngine, AI_HALLUCINATED_PACKAGES, CANONICAL_AI_PACKAGES_NPM, CORE_ENGINE_IDS, CORE_ENGINE_MANIFESTS, CircuitBreaker, ENGINE_FOCUS_PRESETS, EngineRegistry, EnvLoader, FakeFeaturesEngine, IncompleteImplEngine, OutcomeVerificationEngine, PerformanceAntipatternEngine, RULE_AUTOFIX_SAFETY_BY_ID, RULE_MATURITY_BY_ID, RULE_TRUST_IMPACT_BY_ID, RuntimeProbeEngine, SCAN_ENGINE_FOCUS_PRESET_NAMES, SecurityPatternEngine, SlopsquatEngine, TestQualityEngine, TruthpackEnvIndex, TypeContractEngine, VIBECHECK_DEFAULT_ENGINE_IDS, VibecheckNativeEngine, WORKSPACE_ENGINE_IDS, WORKSPACE_ENGINE_MANIFESTS, accessibilityEngine, aiRulesAttackManifest, apexFromHost, apexFromUrl, autofixSafetyForRule, backendEngine, buildCiSummaryJson, buildRiskClusters, buildShipBlockers, categoryIcons, computeFusionStats, computeTrustScore, configurationEngine, createDefaultRegistry, detectBrandImpersonationNpm, diffScores, documentationEngine, engineTogglesAllowOnly, errorHandlingManifest, estimateBlastRadius, extractKnownHostsFromIntegrations, fakeFeaturesManifest, findUncalledExportedFunctions, formatCiSummaryMarkdown, formatCiSummaryPlainLines, formatFindings, formatSummary, formatTraceAsJson, formatTraceForTerminal, formatTrustScoreMarkdown, fuseFindings, generateVerdict, ghostRouteManifest, hostMatchesKnownSet, icons, incompleteImplManifest, infrastructureEngine, isTestLikeScanPath, isVibecheckFinding, loadTruthpack, logicGapManifest, maturityTierForRule, observabilityEngine, outcomeVerificationManifest, parseCallSites, perfAntipatternManifest, performanceEngine, phantomDepManifest, registerAllEngines, registerCoreEngines, registerWorkspaceEngines, resilienceEngine, runGhostTrace, runPolish, scan, securityEngine, securityPatternManifest, seoEngine, slopsquatManifest, testQualityManifest, toCanonicalFinding, toCanonicalFindingFromGuardrail, toCanonicalFindingFromLegacyFinding, toCanonicalFindingFromMissionFinding, toCanonicalFindingFromPolish, toCanonicalFindingFromReport, toCanonicalFindingFromScanApi, toCanonicalFindingFromScanFinding, toCanonicalFindings, toSarif, trustImpactForRule, trustPenaltyScaleForFinding, truthpackToRouteIndex, typeContractManifest } from './chunk-RPSVX4GS.js';
|
|
5
5
|
export { FrameworkPackEngine } from './chunk-MUP4JXOF.js';
|
|
6
6
|
export { LogicGapEngine } from './chunk-DDTUTWRY.js';
|
|
7
7
|
export { ErrorHandlingEngine } from './chunk-FRK2XZX5.js';
|