@vibecheckai/cli 3.2.4 → 3.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/.generated +25 -25
- package/bin/dev/run-v2-torture.js +30 -30
- package/bin/runners/lib/__tests__/entitlements-v2.test.js +295 -295
- package/bin/runners/lib/api-client.js +269 -0
- package/bin/runners/lib/auth-truth.js +193 -193
- package/bin/runners/lib/backup.js +62 -62
- package/bin/runners/lib/billing.js +107 -107
- package/bin/runners/lib/claims.js +118 -118
- package/bin/runners/lib/cli-ui.js +540 -540
- package/bin/runners/lib/contracts/auth-contract.js +202 -202
- package/bin/runners/lib/contracts/env-contract.js +181 -181
- package/bin/runners/lib/contracts/external-contract.js +206 -206
- package/bin/runners/lib/contracts/guard.js +168 -168
- package/bin/runners/lib/contracts/index.js +89 -89
- package/bin/runners/lib/contracts/plan-validator.js +311 -311
- package/bin/runners/lib/contracts/route-contract.js +199 -199
- package/bin/runners/lib/contracts.js +804 -804
- package/bin/runners/lib/detect.js +89 -89
- package/bin/runners/lib/doctor/autofix.js +254 -254
- package/bin/runners/lib/doctor/index.js +37 -37
- package/bin/runners/lib/doctor/modules/dependencies.js +325 -325
- package/bin/runners/lib/doctor/modules/index.js +46 -46
- package/bin/runners/lib/doctor/modules/network.js +250 -250
- package/bin/runners/lib/doctor/modules/project.js +312 -312
- package/bin/runners/lib/doctor/modules/runtime.js +224 -224
- package/bin/runners/lib/doctor/modules/security.js +348 -348
- package/bin/runners/lib/doctor/modules/system.js +213 -213
- package/bin/runners/lib/doctor/modules/vibecheck.js +394 -394
- package/bin/runners/lib/doctor/reporter.js +262 -262
- package/bin/runners/lib/doctor/service.js +262 -262
- package/bin/runners/lib/doctor/types.js +113 -113
- package/bin/runners/lib/doctor/ui.js +263 -263
- package/bin/runners/lib/doctor-v2.js +608 -608
- package/bin/runners/lib/drift.js +425 -425
- package/bin/runners/lib/enforcement.js +72 -72
- package/bin/runners/lib/enterprise-detect.js +603 -603
- package/bin/runners/lib/enterprise-init.js +942 -942
- package/bin/runners/lib/env-resolver.js +417 -417
- package/bin/runners/lib/env-template.js +66 -66
- package/bin/runners/lib/env.js +189 -189
- package/bin/runners/lib/extractors/client-calls.js +990 -990
- package/bin/runners/lib/extractors/fastify-route-dump.js +573 -573
- package/bin/runners/lib/extractors/fastify-routes.js +426 -426
- package/bin/runners/lib/extractors/index.js +363 -363
- package/bin/runners/lib/extractors/next-routes.js +524 -524
- package/bin/runners/lib/extractors/proof-graph.js +431 -431
- package/bin/runners/lib/extractors/route-matcher.js +451 -451
- package/bin/runners/lib/extractors/truthpack-v2.js +377 -377
- package/bin/runners/lib/extractors/ui-bindings.js +547 -547
- package/bin/runners/lib/findings-schema.js +281 -281
- package/bin/runners/lib/firewall-prompt.js +50 -50
- package/bin/runners/lib/graph/graph-builder.js +265 -265
- package/bin/runners/lib/graph/html-renderer.js +413 -413
- package/bin/runners/lib/graph/index.js +32 -32
- package/bin/runners/lib/graph/runtime-collector.js +215 -215
- package/bin/runners/lib/graph/static-extractor.js +518 -518
- package/bin/runners/lib/html-report.js +650 -650
- package/bin/runners/lib/llm.js +75 -75
- package/bin/runners/lib/meter.js +61 -61
- package/bin/runners/lib/missions/evidence.js +126 -126
- package/bin/runners/lib/patch.js +40 -40
- package/bin/runners/lib/permissions/auth-model.js +213 -213
- package/bin/runners/lib/permissions/idor-prover.js +205 -205
- package/bin/runners/lib/permissions/index.js +45 -45
- package/bin/runners/lib/permissions/matrix-builder.js +198 -198
- package/bin/runners/lib/pkgjson.js +28 -28
- package/bin/runners/lib/policy.js +295 -295
- package/bin/runners/lib/preflight.js +142 -142
- package/bin/runners/lib/reality/correlation-detectors.js +359 -359
- package/bin/runners/lib/reality/index.js +318 -318
- package/bin/runners/lib/reality/request-hashing.js +416 -416
- package/bin/runners/lib/reality/request-mapper.js +453 -453
- package/bin/runners/lib/reality/safety-rails.js +463 -463
- package/bin/runners/lib/reality/semantic-snapshot.js +408 -408
- package/bin/runners/lib/reality/toast-detector.js +393 -393
- package/bin/runners/lib/reality-findings.js +84 -84
- package/bin/runners/lib/receipts.js +179 -179
- package/bin/runners/lib/redact.js +29 -29
- package/bin/runners/lib/replay/capsule-manager.js +154 -154
- package/bin/runners/lib/replay/index.js +263 -263
- package/bin/runners/lib/replay/player.js +348 -348
- package/bin/runners/lib/replay/recorder.js +331 -331
- package/bin/runners/lib/report.js +135 -135
- package/bin/runners/lib/route-detection.js +1140 -1140
- package/bin/runners/lib/sandbox/index.js +59 -59
- package/bin/runners/lib/sandbox/proof-chain.js +399 -399
- package/bin/runners/lib/sandbox/sandbox-runner.js +205 -205
- package/bin/runners/lib/sandbox/worktree.js +174 -174
- package/bin/runners/lib/schema-validator.js +350 -350
- package/bin/runners/lib/schemas/contracts.schema.json +160 -160
- package/bin/runners/lib/schemas/finding.schema.json +100 -100
- package/bin/runners/lib/schemas/mission-pack.schema.json +206 -206
- package/bin/runners/lib/schemas/proof-graph.schema.json +176 -176
- package/bin/runners/lib/schemas/reality-report.schema.json +162 -162
- package/bin/runners/lib/schemas/share-pack.schema.json +180 -180
- package/bin/runners/lib/schemas/ship-report.schema.json +117 -117
- package/bin/runners/lib/schemas/truthpack-v2.schema.json +303 -303
- package/bin/runners/lib/schemas/validator.js +438 -438
- package/bin/runners/lib/score-history.js +282 -282
- package/bin/runners/lib/share-pack.js +239 -239
- package/bin/runners/lib/snippets.js +67 -67
- package/bin/runners/lib/upsell.js +510 -510
- package/bin/runners/lib/usage.js +153 -153
- package/bin/runners/lib/validate-patch.js +156 -156
- package/bin/runners/lib/verdict-engine.js +628 -628
- package/bin/runners/reality/engine.js +917 -917
- package/bin/runners/reality/flows.js +122 -122
- package/bin/runners/reality/report.js +378 -378
- package/bin/runners/reality/session.js +193 -193
- package/bin/runners/runAgent.d.ts +5 -0
- package/bin/runners/runFirewall.d.ts +5 -0
- package/bin/runners/runFirewallHook.d.ts +5 -0
- package/bin/runners/runGuard.js +168 -168
- package/bin/runners/runScan.js +82 -0
- package/bin/runners/runTruth.d.ts +5 -0
- package/bin/vibecheck.js +45 -20
- package/mcp-server/index.js +85 -0
- package/mcp-server/lib/api-client.js +269 -0
- package/mcp-server/package.json +1 -1
- package/mcp-server/tier-auth.js +173 -113
- package/mcp-server/tools/index.js +72 -72
- package/mcp-server/vibecheck-mcp-server-3.2.0.tgz +0 -0
- package/package.json +1 -1
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Preflight checks - Run before any vibecheck command
|
|
3
|
-
*
|
|
4
|
-
* Validates:
|
|
5
|
-
* - Node version
|
|
6
|
-
* - Required dependencies
|
|
7
|
-
* - Project structure
|
|
8
|
-
* - Configuration
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
"use strict";
|
|
12
|
-
|
|
13
|
-
const fs = require("fs");
|
|
14
|
-
const path = require("path");
|
|
15
|
-
|
|
16
|
-
const MIN_NODE_VERSION = 18;
|
|
17
|
-
|
|
18
|
-
function checkNodeVersion() {
|
|
19
|
-
const version = process.version;
|
|
20
|
-
const major = parseInt(version.slice(1).split(".")[0], 10);
|
|
21
|
-
if (major < MIN_NODE_VERSION) {
|
|
22
|
-
return {
|
|
23
|
-
ok: false,
|
|
24
|
-
message: `Node.js ${MIN_NODE_VERSION}+ required (you have ${version})`
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
return { ok: true };
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function checkPlaywright() {
|
|
31
|
-
try {
|
|
32
|
-
require.resolve("playwright");
|
|
33
|
-
return { ok: true };
|
|
34
|
-
} catch {
|
|
35
|
-
return {
|
|
36
|
-
ok: false,
|
|
37
|
-
optional: true,
|
|
38
|
-
message: "Playwright not installed. Reality mode requires: npm i -D playwright"
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function checkFastGlob() {
|
|
44
|
-
try {
|
|
45
|
-
require.resolve("fast-glob");
|
|
46
|
-
return { ok: true };
|
|
47
|
-
} catch {
|
|
48
|
-
return {
|
|
49
|
-
ok: false,
|
|
50
|
-
message: "fast-glob not installed. Run: npm install"
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function checkProjectRoot(root) {
|
|
56
|
-
const pkgPath = path.join(root, "package.json");
|
|
57
|
-
if (!fs.existsSync(pkgPath)) {
|
|
58
|
-
return {
|
|
59
|
-
ok: false,
|
|
60
|
-
message: "No package.json found. Are you in a project directory?"
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
return { ok: true };
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function checkGit(root) {
|
|
67
|
-
const gitPath = path.join(root, ".git");
|
|
68
|
-
if (!fs.existsSync(gitPath)) {
|
|
69
|
-
return {
|
|
70
|
-
ok: false,
|
|
71
|
-
optional: true,
|
|
72
|
-
message: "Not a git repository. Some features may not work."
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return { ok: true };
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function checkWritable(root) {
|
|
79
|
-
const vibecheckDir = path.join(root, ".vibecheck");
|
|
80
|
-
try {
|
|
81
|
-
fs.mkdirSync(vibecheckDir, { recursive: true });
|
|
82
|
-
const testFile = path.join(vibecheckDir, ".write_test");
|
|
83
|
-
fs.writeFileSync(testFile, "test");
|
|
84
|
-
fs.unlinkSync(testFile);
|
|
85
|
-
return { ok: true };
|
|
86
|
-
} catch {
|
|
87
|
-
return {
|
|
88
|
-
ok: false,
|
|
89
|
-
message: "Cannot write to .vibecheck directory. Check permissions."
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function runPreflight(root, { silent = false, strict = false } = {}) {
|
|
95
|
-
const checks = [
|
|
96
|
-
{ name: "Node.js", check: checkNodeVersion },
|
|
97
|
-
{ name: "Project", check: () => checkProjectRoot(root) },
|
|
98
|
-
{ name: "Writable", check: () => checkWritable(root) },
|
|
99
|
-
{ name: "Git", check: () => checkGit(root) },
|
|
100
|
-
{ name: "fast-glob", check: checkFastGlob },
|
|
101
|
-
{ name: "Playwright", check: checkPlaywright },
|
|
102
|
-
];
|
|
103
|
-
|
|
104
|
-
const results = [];
|
|
105
|
-
let hasError = false;
|
|
106
|
-
|
|
107
|
-
for (const { name, check } of checks) {
|
|
108
|
-
const result = check();
|
|
109
|
-
results.push({ name, ...result });
|
|
110
|
-
|
|
111
|
-
if (!result.ok && !result.optional) {
|
|
112
|
-
hasError = true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (!silent && hasError) {
|
|
117
|
-
console.error("\n⚠️ Preflight checks failed:\n");
|
|
118
|
-
for (const r of results) {
|
|
119
|
-
if (!r.ok && !r.optional) {
|
|
120
|
-
console.error(` ✗ ${r.name}: ${r.message}`);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
console.error("");
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (!silent && !hasError) {
|
|
127
|
-
// Show optional warnings
|
|
128
|
-
const optionalWarnings = results.filter(r => !r.ok && r.optional);
|
|
129
|
-
if (optionalWarnings.length && process.env.VIBECHECK_VERBOSE) {
|
|
130
|
-
for (const r of optionalWarnings) {
|
|
131
|
-
console.warn(` ⚠ ${r.name}: ${r.message}`);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return {
|
|
137
|
-
ok: !hasError,
|
|
138
|
-
results
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
module.exports = { runPreflight, checkNodeVersion, checkPlaywright };
|
|
1
|
+
/**
|
|
2
|
+
* Preflight checks - Run before any vibecheck command
|
|
3
|
+
*
|
|
4
|
+
* Validates:
|
|
5
|
+
* - Node version
|
|
6
|
+
* - Required dependencies
|
|
7
|
+
* - Project structure
|
|
8
|
+
* - Configuration
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
"use strict";
|
|
12
|
+
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const path = require("path");
|
|
15
|
+
|
|
16
|
+
const MIN_NODE_VERSION = 18;
|
|
17
|
+
|
|
18
|
+
function checkNodeVersion() {
|
|
19
|
+
const version = process.version;
|
|
20
|
+
const major = parseInt(version.slice(1).split(".")[0], 10);
|
|
21
|
+
if (major < MIN_NODE_VERSION) {
|
|
22
|
+
return {
|
|
23
|
+
ok: false,
|
|
24
|
+
message: `Node.js ${MIN_NODE_VERSION}+ required (you have ${version})`
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return { ok: true };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function checkPlaywright() {
|
|
31
|
+
try {
|
|
32
|
+
require.resolve("playwright");
|
|
33
|
+
return { ok: true };
|
|
34
|
+
} catch {
|
|
35
|
+
return {
|
|
36
|
+
ok: false,
|
|
37
|
+
optional: true,
|
|
38
|
+
message: "Playwright not installed. Reality mode requires: npm i -D playwright"
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function checkFastGlob() {
|
|
44
|
+
try {
|
|
45
|
+
require.resolve("fast-glob");
|
|
46
|
+
return { ok: true };
|
|
47
|
+
} catch {
|
|
48
|
+
return {
|
|
49
|
+
ok: false,
|
|
50
|
+
message: "fast-glob not installed. Run: npm install"
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function checkProjectRoot(root) {
|
|
56
|
+
const pkgPath = path.join(root, "package.json");
|
|
57
|
+
if (!fs.existsSync(pkgPath)) {
|
|
58
|
+
return {
|
|
59
|
+
ok: false,
|
|
60
|
+
message: "No package.json found. Are you in a project directory?"
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return { ok: true };
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function checkGit(root) {
|
|
67
|
+
const gitPath = path.join(root, ".git");
|
|
68
|
+
if (!fs.existsSync(gitPath)) {
|
|
69
|
+
return {
|
|
70
|
+
ok: false,
|
|
71
|
+
optional: true,
|
|
72
|
+
message: "Not a git repository. Some features may not work."
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return { ok: true };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function checkWritable(root) {
|
|
79
|
+
const vibecheckDir = path.join(root, ".vibecheck");
|
|
80
|
+
try {
|
|
81
|
+
fs.mkdirSync(vibecheckDir, { recursive: true });
|
|
82
|
+
const testFile = path.join(vibecheckDir, ".write_test");
|
|
83
|
+
fs.writeFileSync(testFile, "test");
|
|
84
|
+
fs.unlinkSync(testFile);
|
|
85
|
+
return { ok: true };
|
|
86
|
+
} catch {
|
|
87
|
+
return {
|
|
88
|
+
ok: false,
|
|
89
|
+
message: "Cannot write to .vibecheck directory. Check permissions."
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function runPreflight(root, { silent = false, strict = false } = {}) {
|
|
95
|
+
const checks = [
|
|
96
|
+
{ name: "Node.js", check: checkNodeVersion },
|
|
97
|
+
{ name: "Project", check: () => checkProjectRoot(root) },
|
|
98
|
+
{ name: "Writable", check: () => checkWritable(root) },
|
|
99
|
+
{ name: "Git", check: () => checkGit(root) },
|
|
100
|
+
{ name: "fast-glob", check: checkFastGlob },
|
|
101
|
+
{ name: "Playwright", check: checkPlaywright },
|
|
102
|
+
];
|
|
103
|
+
|
|
104
|
+
const results = [];
|
|
105
|
+
let hasError = false;
|
|
106
|
+
|
|
107
|
+
for (const { name, check } of checks) {
|
|
108
|
+
const result = check();
|
|
109
|
+
results.push({ name, ...result });
|
|
110
|
+
|
|
111
|
+
if (!result.ok && !result.optional) {
|
|
112
|
+
hasError = true;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (!silent && hasError) {
|
|
117
|
+
console.error("\n⚠️ Preflight checks failed:\n");
|
|
118
|
+
for (const r of results) {
|
|
119
|
+
if (!r.ok && !r.optional) {
|
|
120
|
+
console.error(` ✗ ${r.name}: ${r.message}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
console.error("");
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (!silent && !hasError) {
|
|
127
|
+
// Show optional warnings
|
|
128
|
+
const optionalWarnings = results.filter(r => !r.ok && r.optional);
|
|
129
|
+
if (optionalWarnings.length && process.env.VIBECHECK_VERBOSE) {
|
|
130
|
+
for (const r of optionalWarnings) {
|
|
131
|
+
console.warn(` ⚠ ${r.name}: ${r.message}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return {
|
|
137
|
+
ok: !hasError,
|
|
138
|
+
results
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
module.exports = { runPreflight, checkNodeVersion, checkPlaywright };
|