vibecheck-mcp-server 3.5.0 → 3.5.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/__tests__/cache.test.d.ts +10 -0
- package/dist/__tests__/cache.test.d.ts.map +1 -0
- package/dist/__tests__/cache.test.js +239 -0
- package/dist/__tests__/cache.test.js.map +1 -0
- package/dist/__tests__/executor.test.d.ts +11 -0
- package/dist/__tests__/executor.test.d.ts.map +1 -0
- package/dist/__tests__/executor.test.js +198 -0
- package/dist/__tests__/executor.test.js.map +1 -0
- package/dist/__tests__/fixtures/exclusion-test/src/app.d.ts +5 -0
- package/dist/__tests__/fixtures/exclusion-test/src/app.d.ts.map +1 -0
- package/dist/__tests__/fixtures/exclusion-test/src/app.js +9 -0
- package/dist/__tests__/fixtures/exclusion-test/src/app.js.map +1 -0
- package/dist/__tests__/ids.test.d.ts +10 -0
- package/dist/__tests__/ids.test.d.ts.map +1 -0
- package/dist/__tests__/ids.test.js +262 -0
- package/dist/__tests__/ids.test.js.map +1 -0
- package/dist/__tests__/integration/tools.test.d.ts +10 -0
- package/dist/__tests__/integration/tools.test.d.ts.map +1 -0
- package/dist/__tests__/integration/tools.test.js +343 -0
- package/dist/__tests__/integration/tools.test.js.map +1 -0
- package/dist/__tests__/registry.test.d.ts +11 -0
- package/dist/__tests__/registry.test.d.ts.map +1 -0
- package/dist/__tests__/registry.test.js +289 -0
- package/dist/__tests__/registry.test.js.map +1 -0
- package/dist/__tests__/sandbox.test.d.ts +11 -0
- package/dist/__tests__/sandbox.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox.test.js +257 -0
- package/dist/__tests__/sandbox.test.js.map +1 -0
- package/dist/__tests__/schemas.test.d.ts +7 -0
- package/dist/__tests__/schemas.test.d.ts.map +1 -0
- package/dist/__tests__/schemas.test.js +313 -0
- package/dist/__tests__/schemas.test.js.map +1 -0
- package/dist/benchmarks/run-benchmarks.d.ts +18 -0
- package/dist/benchmarks/run-benchmarks.d.ts.map +1 -0
- package/dist/benchmarks/run-benchmarks.js +245 -0
- package/dist/benchmarks/run-benchmarks.js.map +1 -0
- package/dist/handlers/tool-handler.d.ts +76 -0
- package/dist/handlers/tool-handler.d.ts.map +1 -0
- package/dist/handlers/tool-handler.js +522 -0
- package/dist/handlers/tool-handler.js.map +1 -0
- package/dist/index-v3.d.ts +18 -0
- package/dist/index-v3.d.ts.map +1 -0
- package/dist/index-v3.js +261 -0
- package/dist/index-v3.js.map +1 -0
- package/dist/lib/cache.d.ts +110 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.js +273 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/lib/errors.d.ts +121 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +254 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/executor.d.ts +217 -0
- package/dist/lib/executor.d.ts.map +1 -0
- package/dist/lib/executor.js +676 -0
- package/dist/lib/executor.js.map +1 -0
- package/dist/lib/ids.d.ts +121 -0
- package/dist/lib/ids.d.ts.map +1 -0
- package/dist/lib/ids.js +192 -0
- package/dist/lib/ids.js.map +1 -0
- package/dist/lib/logger.d.ts +160 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +268 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/metrics.d.ts +146 -0
- package/dist/lib/metrics.d.ts.map +1 -0
- package/dist/lib/metrics.js +263 -0
- package/dist/lib/metrics.js.map +1 -0
- package/dist/lib/sandbox.d.ts +78 -0
- package/dist/lib/sandbox.d.ts.map +1 -0
- package/dist/lib/sandbox.js +277 -0
- package/dist/lib/sandbox.js.map +1 -0
- package/dist/lib/validator.d.ts +67 -0
- package/dist/lib/validator.d.ts.map +1 -0
- package/dist/lib/validator.js +178 -0
- package/dist/lib/validator.js.map +1 -0
- package/index-v1.js +698 -0
- package/index.js +1080 -1757
- package/index.old.js +4137 -0
- package/package.json +32 -7
- package/premium-tools.js +2 -2
- package/registry/tools.json +476 -0
- package/schemas/error-envelope.schema.json +125 -0
- package/schemas/finding.schema.json +167 -0
- package/schemas/report-artifact.schema.json +88 -0
- package/schemas/run-request.schema.json +75 -0
- package/schemas/verdict.schema.json +168 -0
- package/tier-auth.js +371 -183
- package/truth-context.js +90 -131
- package/truth-firewall-tools.js +1000 -1611
- package/vibecheck-tools.js +2 -2
- package/agent-firewall-interceptor.js +0 -500
- package/authority-tools.js +0 -569
- package/logger.js +0 -173
- package/tools-v3.js +0 -1039
- package/tools.js +0 -495
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Handling & Normalization
|
|
3
|
+
*
|
|
4
|
+
* All errors are normalized to ErrorEnvelope format.
|
|
5
|
+
* No mystery errors - every failure has a code, message, and userAction.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error codes enum
|
|
9
|
+
*/
|
|
10
|
+
export declare enum ErrorCode {
|
|
11
|
+
INVALID_INPUT = "INVALID_INPUT",
|
|
12
|
+
VALIDATION_ERROR = "VALIDATION_ERROR",
|
|
13
|
+
PATH_NOT_FOUND = "PATH_NOT_FOUND",
|
|
14
|
+
PATH_OUTSIDE_SANDBOX = "PATH_OUTSIDE_SANDBOX",
|
|
15
|
+
PERMISSION_DENIED = "PERMISSION_DENIED",
|
|
16
|
+
TIER_REQUIRED = "TIER_REQUIRED",
|
|
17
|
+
RATE_LIMITED = "RATE_LIMITED",
|
|
18
|
+
TIMEOUT = "TIMEOUT",
|
|
19
|
+
CANCELLED = "CANCELLED",
|
|
20
|
+
CLI_ERROR = "CLI_ERROR",
|
|
21
|
+
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
22
|
+
NOT_FOUND = "NOT_FOUND",
|
|
23
|
+
ALREADY_EXISTS = "ALREADY_EXISTS",
|
|
24
|
+
DEPENDENCY_MISSING = "DEPENDENCY_MISSING",
|
|
25
|
+
CONFIG_ERROR = "CONFIG_ERROR",
|
|
26
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
27
|
+
TRUTH_FIREWALL_REQUIRED = "TRUTH_FIREWALL_REQUIRED"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Error envelope structure
|
|
31
|
+
*/
|
|
32
|
+
export interface ErrorEnvelope {
|
|
33
|
+
ok: false;
|
|
34
|
+
error: {
|
|
35
|
+
code: ErrorCode;
|
|
36
|
+
message: string;
|
|
37
|
+
details?: Record<string, unknown>;
|
|
38
|
+
retryable: boolean;
|
|
39
|
+
retryAfterMs?: number;
|
|
40
|
+
userAction?: string;
|
|
41
|
+
docsUrl?: string;
|
|
42
|
+
};
|
|
43
|
+
requestId: string;
|
|
44
|
+
timestamp: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Success envelope structure
|
|
48
|
+
*/
|
|
49
|
+
export interface SuccessEnvelope<T> {
|
|
50
|
+
ok: true;
|
|
51
|
+
data: T;
|
|
52
|
+
meta?: {
|
|
53
|
+
cached?: boolean;
|
|
54
|
+
cacheAge?: number;
|
|
55
|
+
durationMs?: number;
|
|
56
|
+
requestId?: string;
|
|
57
|
+
};
|
|
58
|
+
timestamp: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Custom error class
|
|
62
|
+
*/
|
|
63
|
+
export declare class VibecheckError extends Error {
|
|
64
|
+
code: ErrorCode;
|
|
65
|
+
details?: Record<string, unknown>;
|
|
66
|
+
retryable: boolean;
|
|
67
|
+
retryAfterMs?: number;
|
|
68
|
+
userAction?: string;
|
|
69
|
+
docsUrl?: string;
|
|
70
|
+
constructor(code: ErrorCode, message: string, options?: {
|
|
71
|
+
details?: Record<string, unknown>;
|
|
72
|
+
retryable?: boolean;
|
|
73
|
+
retryAfterMs?: number;
|
|
74
|
+
userAction?: string;
|
|
75
|
+
docsUrl?: string;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create error envelope from error
|
|
80
|
+
*/
|
|
81
|
+
export declare function createErrorEnvelope(error: unknown, requestId?: string): ErrorEnvelope;
|
|
82
|
+
/**
|
|
83
|
+
* Create success envelope
|
|
84
|
+
*/
|
|
85
|
+
export declare function createSuccessEnvelope<T>(data: T, options?: {
|
|
86
|
+
cached?: boolean;
|
|
87
|
+
cacheAge?: number;
|
|
88
|
+
durationMs?: number;
|
|
89
|
+
requestId?: string;
|
|
90
|
+
}): SuccessEnvelope<T>;
|
|
91
|
+
/**
|
|
92
|
+
* Error factory functions for common cases
|
|
93
|
+
*/
|
|
94
|
+
export declare const Errors: {
|
|
95
|
+
invalidInput(message: string, details?: Record<string, unknown>): VibecheckError;
|
|
96
|
+
pathNotFound(path: string): VibecheckError;
|
|
97
|
+
pathOutsideSandbox(path: string, workspace: string): VibecheckError;
|
|
98
|
+
tierRequired(feature: string, requiredTier: string, currentTier: string): VibecheckError;
|
|
99
|
+
timeout(timeoutMs: number): VibecheckError;
|
|
100
|
+
rateLimited(retryAfterMs: number): VibecheckError;
|
|
101
|
+
cliError(message: string, exitCode?: number): VibecheckError;
|
|
102
|
+
truthFirewallRequired(): VibecheckError;
|
|
103
|
+
};
|
|
104
|
+
declare const _default: {
|
|
105
|
+
ErrorCode: typeof ErrorCode;
|
|
106
|
+
VibecheckError: typeof VibecheckError;
|
|
107
|
+
Errors: {
|
|
108
|
+
invalidInput(message: string, details?: Record<string, unknown>): VibecheckError;
|
|
109
|
+
pathNotFound(path: string): VibecheckError;
|
|
110
|
+
pathOutsideSandbox(path: string, workspace: string): VibecheckError;
|
|
111
|
+
tierRequired(feature: string, requiredTier: string, currentTier: string): VibecheckError;
|
|
112
|
+
timeout(timeoutMs: number): VibecheckError;
|
|
113
|
+
rateLimited(retryAfterMs: number): VibecheckError;
|
|
114
|
+
cliError(message: string, exitCode?: number): VibecheckError;
|
|
115
|
+
truthFirewallRequired(): VibecheckError;
|
|
116
|
+
};
|
|
117
|
+
createErrorEnvelope: typeof createErrorEnvelope;
|
|
118
|
+
createSuccessEnvelope: typeof createSuccessEnvelope;
|
|
119
|
+
};
|
|
120
|
+
export default _default;
|
|
121
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Handling & Normalization
|
|
3
|
+
*
|
|
4
|
+
* All errors are normalized to ErrorEnvelope format.
|
|
5
|
+
* No mystery errors - every failure has a code, message, and userAction.
|
|
6
|
+
*/
|
|
7
|
+
import { randomUUID } from 'crypto';
|
|
8
|
+
/**
|
|
9
|
+
* Error codes enum
|
|
10
|
+
*/
|
|
11
|
+
export var ErrorCode;
|
|
12
|
+
(function (ErrorCode) {
|
|
13
|
+
ErrorCode["INVALID_INPUT"] = "INVALID_INPUT";
|
|
14
|
+
ErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
|
|
15
|
+
ErrorCode["PATH_NOT_FOUND"] = "PATH_NOT_FOUND";
|
|
16
|
+
ErrorCode["PATH_OUTSIDE_SANDBOX"] = "PATH_OUTSIDE_SANDBOX";
|
|
17
|
+
ErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
|
|
18
|
+
ErrorCode["TIER_REQUIRED"] = "TIER_REQUIRED";
|
|
19
|
+
ErrorCode["RATE_LIMITED"] = "RATE_LIMITED";
|
|
20
|
+
ErrorCode["TIMEOUT"] = "TIMEOUT";
|
|
21
|
+
ErrorCode["CANCELLED"] = "CANCELLED";
|
|
22
|
+
ErrorCode["CLI_ERROR"] = "CLI_ERROR";
|
|
23
|
+
ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
24
|
+
ErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
25
|
+
ErrorCode["ALREADY_EXISTS"] = "ALREADY_EXISTS";
|
|
26
|
+
ErrorCode["DEPENDENCY_MISSING"] = "DEPENDENCY_MISSING";
|
|
27
|
+
ErrorCode["CONFIG_ERROR"] = "CONFIG_ERROR";
|
|
28
|
+
ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
29
|
+
ErrorCode["TRUTH_FIREWALL_REQUIRED"] = "TRUTH_FIREWALL_REQUIRED";
|
|
30
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
31
|
+
/**
|
|
32
|
+
* Custom error class
|
|
33
|
+
*/
|
|
34
|
+
export class VibecheckError extends Error {
|
|
35
|
+
code;
|
|
36
|
+
details;
|
|
37
|
+
retryable;
|
|
38
|
+
retryAfterMs;
|
|
39
|
+
userAction;
|
|
40
|
+
docsUrl;
|
|
41
|
+
constructor(code, message, options) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.name = 'VibecheckError';
|
|
44
|
+
this.code = code;
|
|
45
|
+
this.details = options?.details;
|
|
46
|
+
this.retryable = options?.retryable ?? false;
|
|
47
|
+
this.retryAfterMs = options?.retryAfterMs;
|
|
48
|
+
this.userAction = options?.userAction;
|
|
49
|
+
this.docsUrl = options?.docsUrl;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create error envelope from error
|
|
54
|
+
*/
|
|
55
|
+
export function createErrorEnvelope(error, requestId) {
|
|
56
|
+
const id = requestId || randomUUID();
|
|
57
|
+
const timestamp = new Date().toISOString();
|
|
58
|
+
if (error instanceof VibecheckError) {
|
|
59
|
+
return {
|
|
60
|
+
ok: false,
|
|
61
|
+
error: {
|
|
62
|
+
code: error.code,
|
|
63
|
+
message: error.message,
|
|
64
|
+
details: error.details,
|
|
65
|
+
retryable: error.retryable,
|
|
66
|
+
retryAfterMs: error.retryAfterMs,
|
|
67
|
+
userAction: error.userAction,
|
|
68
|
+
docsUrl: error.docsUrl,
|
|
69
|
+
},
|
|
70
|
+
requestId: id,
|
|
71
|
+
timestamp,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Normalize unknown errors
|
|
75
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
76
|
+
// Try to infer error type
|
|
77
|
+
const inferredCode = inferErrorCode(message);
|
|
78
|
+
const inferredAction = inferUserAction(inferredCode, message);
|
|
79
|
+
return {
|
|
80
|
+
ok: false,
|
|
81
|
+
error: {
|
|
82
|
+
code: inferredCode,
|
|
83
|
+
message,
|
|
84
|
+
retryable: isRetryable(inferredCode),
|
|
85
|
+
userAction: inferredAction,
|
|
86
|
+
},
|
|
87
|
+
requestId: id,
|
|
88
|
+
timestamp,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create success envelope
|
|
93
|
+
*/
|
|
94
|
+
export function createSuccessEnvelope(data, options) {
|
|
95
|
+
return {
|
|
96
|
+
ok: true,
|
|
97
|
+
data,
|
|
98
|
+
meta: options ? {
|
|
99
|
+
cached: options.cached,
|
|
100
|
+
cacheAge: options.cacheAge,
|
|
101
|
+
durationMs: options.durationMs,
|
|
102
|
+
requestId: options.requestId,
|
|
103
|
+
} : undefined,
|
|
104
|
+
timestamp: new Date().toISOString(),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Infer error code from message
|
|
109
|
+
*/
|
|
110
|
+
function inferErrorCode(message) {
|
|
111
|
+
const lower = message.toLowerCase();
|
|
112
|
+
if (lower.includes('timeout') || lower.includes('timed out')) {
|
|
113
|
+
return ErrorCode.TIMEOUT;
|
|
114
|
+
}
|
|
115
|
+
if (lower.includes('enoent') || lower.includes('not found') || lower.includes('does not exist')) {
|
|
116
|
+
return ErrorCode.PATH_NOT_FOUND;
|
|
117
|
+
}
|
|
118
|
+
if (lower.includes('eperm') || lower.includes('eacces') || lower.includes('permission')) {
|
|
119
|
+
return ErrorCode.PERMISSION_DENIED;
|
|
120
|
+
}
|
|
121
|
+
if (lower.includes('rate limit') || lower.includes('too many requests')) {
|
|
122
|
+
return ErrorCode.RATE_LIMITED;
|
|
123
|
+
}
|
|
124
|
+
if (lower.includes('cancelled') || lower.includes('aborted')) {
|
|
125
|
+
return ErrorCode.CANCELLED;
|
|
126
|
+
}
|
|
127
|
+
if (lower.includes('validation') || lower.includes('invalid')) {
|
|
128
|
+
return ErrorCode.VALIDATION_ERROR;
|
|
129
|
+
}
|
|
130
|
+
if (lower.includes('tier') || lower.includes('upgrade') || lower.includes('subscription')) {
|
|
131
|
+
return ErrorCode.TIER_REQUIRED;
|
|
132
|
+
}
|
|
133
|
+
if (lower.includes('network') || lower.includes('econnrefused') || lower.includes('enotfound')) {
|
|
134
|
+
return ErrorCode.NETWORK_ERROR;
|
|
135
|
+
}
|
|
136
|
+
if (lower.includes('missing') && lower.includes('depend')) {
|
|
137
|
+
return ErrorCode.DEPENDENCY_MISSING;
|
|
138
|
+
}
|
|
139
|
+
if (lower.includes('config')) {
|
|
140
|
+
return ErrorCode.CONFIG_ERROR;
|
|
141
|
+
}
|
|
142
|
+
if (lower.includes('truth') && lower.includes('firewall')) {
|
|
143
|
+
return ErrorCode.TRUTH_FIREWALL_REQUIRED;
|
|
144
|
+
}
|
|
145
|
+
return ErrorCode.INTERNAL_ERROR;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Infer user action from error
|
|
149
|
+
*/
|
|
150
|
+
function inferUserAction(code, message) {
|
|
151
|
+
switch (code) {
|
|
152
|
+
case ErrorCode.PATH_NOT_FOUND:
|
|
153
|
+
return 'Check that the path exists and is spelled correctly';
|
|
154
|
+
case ErrorCode.PATH_OUTSIDE_SANDBOX:
|
|
155
|
+
return 'Provide a path within your project workspace';
|
|
156
|
+
case ErrorCode.PERMISSION_DENIED:
|
|
157
|
+
return 'Check file permissions or run with appropriate access';
|
|
158
|
+
case ErrorCode.TIER_REQUIRED:
|
|
159
|
+
return 'Upgrade your plan at https://vibecheck.dev/pricing';
|
|
160
|
+
case ErrorCode.RATE_LIMITED:
|
|
161
|
+
return 'Wait a moment and try again';
|
|
162
|
+
case ErrorCode.TIMEOUT:
|
|
163
|
+
return 'Try again with a smaller scope or increase timeout';
|
|
164
|
+
case ErrorCode.DEPENDENCY_MISSING:
|
|
165
|
+
return 'Run npm install or check your package.json';
|
|
166
|
+
case ErrorCode.CONFIG_ERROR:
|
|
167
|
+
return 'Check your vibecheck configuration file';
|
|
168
|
+
case ErrorCode.NETWORK_ERROR:
|
|
169
|
+
return 'Check your network connection and try again';
|
|
170
|
+
case ErrorCode.TRUTH_FIREWALL_REQUIRED:
|
|
171
|
+
return 'Call vibecheck.get_truthpack or vibecheck.validate_claim first';
|
|
172
|
+
case ErrorCode.VALIDATION_ERROR:
|
|
173
|
+
return 'Check your input parameters against the tool schema';
|
|
174
|
+
default:
|
|
175
|
+
return 'If this persists, please report at https://github.com/vibecheckai/vibecheck/issues';
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check if error is retryable
|
|
180
|
+
*/
|
|
181
|
+
function isRetryable(code) {
|
|
182
|
+
switch (code) {
|
|
183
|
+
case ErrorCode.TIMEOUT:
|
|
184
|
+
case ErrorCode.RATE_LIMITED:
|
|
185
|
+
case ErrorCode.NETWORK_ERROR:
|
|
186
|
+
return true;
|
|
187
|
+
default:
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Error factory functions for common cases
|
|
193
|
+
*/
|
|
194
|
+
export const Errors = {
|
|
195
|
+
invalidInput(message, details) {
|
|
196
|
+
return new VibecheckError(ErrorCode.INVALID_INPUT, message, {
|
|
197
|
+
details,
|
|
198
|
+
userAction: 'Check your input parameters',
|
|
199
|
+
});
|
|
200
|
+
},
|
|
201
|
+
pathNotFound(path) {
|
|
202
|
+
return new VibecheckError(ErrorCode.PATH_NOT_FOUND, `Path not found: ${path}`, {
|
|
203
|
+
details: { path },
|
|
204
|
+
userAction: 'Check that the path exists',
|
|
205
|
+
});
|
|
206
|
+
},
|
|
207
|
+
pathOutsideSandbox(path, workspace) {
|
|
208
|
+
return new VibecheckError(ErrorCode.PATH_OUTSIDE_SANDBOX, `Path '${path}' is outside the allowed workspace`, {
|
|
209
|
+
details: { path, workspace },
|
|
210
|
+
userAction: 'Provide a path within your project workspace',
|
|
211
|
+
});
|
|
212
|
+
},
|
|
213
|
+
tierRequired(feature, requiredTier, currentTier) {
|
|
214
|
+
return new VibecheckError(ErrorCode.TIER_REQUIRED, `${feature} requires ${requiredTier} tier`, {
|
|
215
|
+
details: { feature, requiredTier, currentTier },
|
|
216
|
+
userAction: `Upgrade to ${requiredTier} at https://vibecheck.dev/pricing`,
|
|
217
|
+
docsUrl: 'https://vibecheck.dev/pricing',
|
|
218
|
+
});
|
|
219
|
+
},
|
|
220
|
+
timeout(timeoutMs) {
|
|
221
|
+
return new VibecheckError(ErrorCode.TIMEOUT, `Operation timed out after ${timeoutMs}ms`, {
|
|
222
|
+
retryable: true,
|
|
223
|
+
retryAfterMs: 5000,
|
|
224
|
+
userAction: 'Try with a smaller scope or increase timeout',
|
|
225
|
+
});
|
|
226
|
+
},
|
|
227
|
+
rateLimited(retryAfterMs) {
|
|
228
|
+
return new VibecheckError(ErrorCode.RATE_LIMITED, 'Rate limit exceeded', {
|
|
229
|
+
retryable: true,
|
|
230
|
+
retryAfterMs,
|
|
231
|
+
userAction: `Wait ${Math.ceil(retryAfterMs / 1000)} seconds and try again`,
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
cliError(message, exitCode) {
|
|
235
|
+
return new VibecheckError(ErrorCode.CLI_ERROR, message, {
|
|
236
|
+
details: { exitCode },
|
|
237
|
+
userAction: 'Check the CLI output for details',
|
|
238
|
+
});
|
|
239
|
+
},
|
|
240
|
+
truthFirewallRequired() {
|
|
241
|
+
return new VibecheckError(ErrorCode.TRUTH_FIREWALL_REQUIRED, 'Truth firewall requires claim validation before high-impact tools', {
|
|
242
|
+
userAction: 'Call vibecheck.get_truthpack or vibecheck.validate_claim first',
|
|
243
|
+
docsUrl: 'https://vibecheck.dev/docs/truth-firewall',
|
|
244
|
+
});
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
export default {
|
|
248
|
+
ErrorCode,
|
|
249
|
+
VibecheckError,
|
|
250
|
+
Errors,
|
|
251
|
+
createErrorEnvelope,
|
|
252
|
+
createSuccessEnvelope,
|
|
253
|
+
};
|
|
254
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI/Core Execution Layer
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper around CLI commands with:
|
|
5
|
+
* - Timeout handling
|
|
6
|
+
* - Cancellation support
|
|
7
|
+
* - Output parsing
|
|
8
|
+
* - Error normalization
|
|
9
|
+
*
|
|
10
|
+
* CRITICAL: Windows-safe. No shell=true. Args array only.
|
|
11
|
+
* Zero Unix shell assumptions (no head/grep/sed/awk).
|
|
12
|
+
*/
|
|
13
|
+
import { ErrorCode } from './errors.js';
|
|
14
|
+
/**
|
|
15
|
+
* Execution options
|
|
16
|
+
*/
|
|
17
|
+
export interface ExecuteOptions {
|
|
18
|
+
projectPath: string;
|
|
19
|
+
timeout?: number;
|
|
20
|
+
cacheMode?: 'auto' | 'force' | 'skip';
|
|
21
|
+
cacheMaxAge?: number;
|
|
22
|
+
requestId?: string;
|
|
23
|
+
signal?: AbortSignal;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Execution result
|
|
27
|
+
*/
|
|
28
|
+
export interface ExecuteResult<T> {
|
|
29
|
+
ok: boolean;
|
|
30
|
+
data?: T;
|
|
31
|
+
error?: {
|
|
32
|
+
code: ErrorCode;
|
|
33
|
+
message: string;
|
|
34
|
+
};
|
|
35
|
+
cached?: boolean;
|
|
36
|
+
durationMs: number;
|
|
37
|
+
exitCode?: number;
|
|
38
|
+
stdout?: string;
|
|
39
|
+
stderr?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Execute a CLI command
|
|
43
|
+
*
|
|
44
|
+
* CRITICAL: Uses spawn with args array. No shell=true. Windows-safe.
|
|
45
|
+
*/
|
|
46
|
+
export declare function executeCli<T>(command: string, args: string[], options: ExecuteOptions): Promise<ExecuteResult<T>>;
|
|
47
|
+
/**
|
|
48
|
+
* Execute CLI synchronously (for simple commands)
|
|
49
|
+
*
|
|
50
|
+
* CRITICAL: Uses spawnSync with args array. No shell. Windows-safe.
|
|
51
|
+
*/
|
|
52
|
+
export declare function executeCliSync<T>(command: string, args: string[], options: ExecuteOptions): ExecuteResult<T>;
|
|
53
|
+
/**
|
|
54
|
+
* Cancel a running command
|
|
55
|
+
*/
|
|
56
|
+
export declare function cancelExecution(requestId: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Get count of active executions
|
|
59
|
+
*/
|
|
60
|
+
export declare function getActiveExecutionCount(): number;
|
|
61
|
+
/**
|
|
62
|
+
* Get concurrency stats
|
|
63
|
+
*/
|
|
64
|
+
export declare function getConcurrencyStats(): {
|
|
65
|
+
global: number;
|
|
66
|
+
maxGlobal: number;
|
|
67
|
+
workspaces: Record<string, number>;
|
|
68
|
+
maxPerWorkspace: number;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Tool-specific executors
|
|
72
|
+
*/
|
|
73
|
+
export declare const ToolExecutors: {
|
|
74
|
+
doctor(options: ExecuteOptions): Promise<ExecuteResult<unknown>>;
|
|
75
|
+
scan(options: ExecuteOptions & {
|
|
76
|
+
profile?: string;
|
|
77
|
+
since?: string;
|
|
78
|
+
baseline?: string;
|
|
79
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
80
|
+
ship(options: ExecuteOptions & {
|
|
81
|
+
strict?: boolean;
|
|
82
|
+
mockproof?: boolean;
|
|
83
|
+
ci?: boolean;
|
|
84
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
85
|
+
prove(options: ExecuteOptions & {
|
|
86
|
+
url?: string;
|
|
87
|
+
auth?: string;
|
|
88
|
+
storageState?: string;
|
|
89
|
+
maxFixRounds?: number;
|
|
90
|
+
skipReality?: boolean;
|
|
91
|
+
skipFix?: boolean;
|
|
92
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
93
|
+
reality(options: ExecuteOptions & {
|
|
94
|
+
url: string;
|
|
95
|
+
auth?: string;
|
|
96
|
+
verifyAuth?: boolean;
|
|
97
|
+
storageState?: string;
|
|
98
|
+
maxPages?: number;
|
|
99
|
+
headed?: boolean;
|
|
100
|
+
recordVideo?: boolean;
|
|
101
|
+
recordTrace?: boolean;
|
|
102
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
103
|
+
fix(options: ExecuteOptions & {
|
|
104
|
+
apply?: boolean;
|
|
105
|
+
promptOnly?: boolean;
|
|
106
|
+
autopilot?: boolean;
|
|
107
|
+
maxMissions?: number;
|
|
108
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
109
|
+
guard(options: ExecuteOptions & {
|
|
110
|
+
claims?: boolean;
|
|
111
|
+
hallucinations?: boolean;
|
|
112
|
+
prompts?: boolean;
|
|
113
|
+
strict?: boolean;
|
|
114
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
115
|
+
ctx(options: ExecuteOptions & {
|
|
116
|
+
snapshot?: boolean;
|
|
117
|
+
sync?: boolean;
|
|
118
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
119
|
+
report(options: ExecuteOptions & {
|
|
120
|
+
type?: string;
|
|
121
|
+
format?: string;
|
|
122
|
+
output?: string;
|
|
123
|
+
maxFindings?: number;
|
|
124
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
125
|
+
polish(options: ExecuteOptions & {
|
|
126
|
+
category?: string;
|
|
127
|
+
fix?: boolean;
|
|
128
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
129
|
+
status(options: ExecuteOptions): Promise<ExecuteResult<unknown>>;
|
|
130
|
+
share(options: ExecuteOptions & {
|
|
131
|
+
missionDir?: string;
|
|
132
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
133
|
+
badge(options: ExecuteOptions & {
|
|
134
|
+
format?: string;
|
|
135
|
+
style?: string;
|
|
136
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
137
|
+
init(options: ExecuteOptions & {
|
|
138
|
+
force?: boolean;
|
|
139
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
140
|
+
};
|
|
141
|
+
declare const _default: {
|
|
142
|
+
executeCli: typeof executeCli;
|
|
143
|
+
executeCliSync: typeof executeCliSync;
|
|
144
|
+
cancelExecution: typeof cancelExecution;
|
|
145
|
+
getActiveExecutionCount: typeof getActiveExecutionCount;
|
|
146
|
+
getConcurrencyStats: typeof getConcurrencyStats;
|
|
147
|
+
ToolExecutors: {
|
|
148
|
+
doctor(options: ExecuteOptions): Promise<ExecuteResult<unknown>>;
|
|
149
|
+
scan(options: ExecuteOptions & {
|
|
150
|
+
profile?: string;
|
|
151
|
+
since?: string;
|
|
152
|
+
baseline?: string;
|
|
153
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
154
|
+
ship(options: ExecuteOptions & {
|
|
155
|
+
strict?: boolean;
|
|
156
|
+
mockproof?: boolean;
|
|
157
|
+
ci?: boolean;
|
|
158
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
159
|
+
prove(options: ExecuteOptions & {
|
|
160
|
+
url?: string;
|
|
161
|
+
auth?: string;
|
|
162
|
+
storageState?: string;
|
|
163
|
+
maxFixRounds?: number;
|
|
164
|
+
skipReality?: boolean;
|
|
165
|
+
skipFix?: boolean;
|
|
166
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
167
|
+
reality(options: ExecuteOptions & {
|
|
168
|
+
url: string;
|
|
169
|
+
auth?: string;
|
|
170
|
+
verifyAuth?: boolean;
|
|
171
|
+
storageState?: string;
|
|
172
|
+
maxPages?: number;
|
|
173
|
+
headed?: boolean;
|
|
174
|
+
recordVideo?: boolean;
|
|
175
|
+
recordTrace?: boolean;
|
|
176
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
177
|
+
fix(options: ExecuteOptions & {
|
|
178
|
+
apply?: boolean;
|
|
179
|
+
promptOnly?: boolean;
|
|
180
|
+
autopilot?: boolean;
|
|
181
|
+
maxMissions?: number;
|
|
182
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
183
|
+
guard(options: ExecuteOptions & {
|
|
184
|
+
claims?: boolean;
|
|
185
|
+
hallucinations?: boolean;
|
|
186
|
+
prompts?: boolean;
|
|
187
|
+
strict?: boolean;
|
|
188
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
189
|
+
ctx(options: ExecuteOptions & {
|
|
190
|
+
snapshot?: boolean;
|
|
191
|
+
sync?: boolean;
|
|
192
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
193
|
+
report(options: ExecuteOptions & {
|
|
194
|
+
type?: string;
|
|
195
|
+
format?: string;
|
|
196
|
+
output?: string;
|
|
197
|
+
maxFindings?: number;
|
|
198
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
199
|
+
polish(options: ExecuteOptions & {
|
|
200
|
+
category?: string;
|
|
201
|
+
fix?: boolean;
|
|
202
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
203
|
+
status(options: ExecuteOptions): Promise<ExecuteResult<unknown>>;
|
|
204
|
+
share(options: ExecuteOptions & {
|
|
205
|
+
missionDir?: string;
|
|
206
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
207
|
+
badge(options: ExecuteOptions & {
|
|
208
|
+
format?: string;
|
|
209
|
+
style?: string;
|
|
210
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
211
|
+
init(options: ExecuteOptions & {
|
|
212
|
+
force?: boolean;
|
|
213
|
+
}): Promise<ExecuteResult<unknown>>;
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
export default _default;
|
|
217
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../lib/executor.ts"],"names":[],"mappings":"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"}
|