veto-sdk 2.8.3 → 2.8.5

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.
@@ -0,0 +1,594 @@
1
+ import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname, isAbsolute, join, resolve, sep } from 'node:path';
3
+ import { runMcpInitCommand } from './mcp.js';
4
+ const DEFAULT_SERVER_NAME = 'veto';
5
+ const DEFAULT_MCP_CONFIG_RELATIVE = 'veto/mcp.config.yaml';
6
+ const DEFAULT_CLOUD_MCP_URL = 'https://api.veto.so/v1/mcp/default';
7
+ const CURSOR_CONFIG_RELATIVE = '.cursor/mcp.json';
8
+ const CODEX_CONFIG_RELATIVE = '.codex/config.toml';
9
+ const CLAUDE_HOOK_RELATIVE = '.claude/hooks/veto-hook.mjs';
10
+ const CLAUDE_SETTINGS_RELATIVE = '.claude/settings.json';
11
+ const CLAUDE_HOOK_COMMAND = '$CLAUDE_PROJECT_DIR/.claude/hooks/veto-hook.mjs';
12
+ const CLAUDE_HOOK_CONTENT = `#!/usr/bin/env node
13
+ import { spawnSync } from 'node:child_process';
14
+ import { existsSync } from 'node:fs';
15
+ import { resolve } from 'node:path';
16
+
17
+ async function readStdin() {
18
+ let input = '';
19
+ for await (const chunk of process.stdin) {
20
+ input += chunk;
21
+ }
22
+ return input;
23
+ }
24
+
25
+ function respond(permissionDecision, permissionDecisionReason) {
26
+ process.stdout.write(JSON.stringify({
27
+ hookSpecificOutput: {
28
+ hookEventName: 'PreToolUse',
29
+ permissionDecision,
30
+ permissionDecisionReason,
31
+ },
32
+ }) + '\\n');
33
+ process.exit(0);
34
+ }
35
+
36
+ function failOpen(reason) {
37
+ process.stderr.write('[veto-hook] ' + reason + '\\n');
38
+ respond('allow', reason);
39
+ }
40
+
41
+ function asRecord(value) {
42
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
43
+ return {};
44
+ }
45
+ return value;
46
+ }
47
+
48
+ function formatReason(data) {
49
+ const parts = [];
50
+ if (typeof data.reason === 'string' && data.reason.length > 0) {
51
+ parts.push(data.reason);
52
+ }
53
+ if (typeof data.ruleId === 'string' && data.ruleId.length > 0) {
54
+ parts.push('(policy:' + data.ruleId + ')');
55
+ }
56
+ return parts.length > 0 ? parts.join(' ') : undefined;
57
+ }
58
+
59
+ async function main() {
60
+ let envelope;
61
+ try {
62
+ const input = await readStdin();
63
+ envelope = JSON.parse(input || '{}');
64
+ } catch {
65
+ failOpen('Claude Code hook payload was not valid JSON; allowing call.');
66
+ return;
67
+ }
68
+
69
+ const projectDir = resolve(process.env.CLAUDE_PROJECT_DIR || process.cwd());
70
+ const configPath = resolve(projectDir, 'veto', 'veto.config.yaml');
71
+ if (!existsSync(configPath)) {
72
+ failOpen('Veto is not initialized in this project; run npx veto init to enable enforcement.');
73
+ return;
74
+ }
75
+
76
+ const toolName = typeof envelope.tool_name === 'string' ? envelope.tool_name : '';
77
+ if (!toolName) {
78
+ failOpen('Claude Code hook payload did not include tool_name; allowing call.');
79
+ return;
80
+ }
81
+
82
+ const timeoutValue = Number.parseInt(process.env.VETO_HOOK_TIMEOUT_MS || '5000', 10);
83
+ const timeout = Number.isInteger(timeoutValue) && timeoutValue > 0 ? timeoutValue : 5000;
84
+ const vetoCli = process.env.VETO_CLI || 'veto';
85
+ const guard = spawnSync(vetoCli, [
86
+ 'guard',
87
+ 'check',
88
+ '--tool',
89
+ toolName,
90
+ '--args',
91
+ JSON.stringify(asRecord(envelope.tool_input)),
92
+ '--directory',
93
+ projectDir,
94
+ '--mode',
95
+ 'local',
96
+ '--json',
97
+ ], {
98
+ encoding: 'utf-8',
99
+ timeout,
100
+ maxBuffer: 1024 * 1024,
101
+ });
102
+
103
+ if (guard.error) {
104
+ failOpen('Veto guard check failed to start: ' + guard.error.message + '; allowing call.');
105
+ return;
106
+ }
107
+
108
+ const stdout = (guard.stdout || '').trim();
109
+ const lastLine = stdout.split(/\\r?\\n/).filter(Boolean).at(-1);
110
+ if (!lastLine) {
111
+ const stderr = (guard.stderr || '').trim();
112
+ failOpen('Veto guard check produced no JSON output' + (stderr ? ': ' + stderr : '') + '; allowing call.');
113
+ return;
114
+ }
115
+
116
+ let result;
117
+ try {
118
+ result = JSON.parse(lastLine);
119
+ } catch {
120
+ failOpen('Veto guard check returned invalid JSON; allowing call.');
121
+ return;
122
+ }
123
+
124
+ if (!result.ok) {
125
+ const message = result.error && typeof result.error.message === 'string'
126
+ ? result.error.message
127
+ : 'Veto guard check failed';
128
+ failOpen(message + '; allowing call.');
129
+ return;
130
+ }
131
+
132
+ const data = asRecord(result.data);
133
+ const decision = data.decision;
134
+ const reason = formatReason(data);
135
+
136
+ if (decision === 'deny') {
137
+ respond('deny', reason || 'Blocked by Veto policy');
138
+ return;
139
+ }
140
+
141
+ if (decision === 'require_approval') {
142
+ respond('ask', reason || 'Veto policy requires approval');
143
+ return;
144
+ }
145
+
146
+ respond('allow', reason || 'Allowed by Veto policy');
147
+ }
148
+
149
+ void main();
150
+ `;
151
+ function ok(data) {
152
+ return {
153
+ ok: true,
154
+ data,
155
+ };
156
+ }
157
+ function fail(code, message, details) {
158
+ return {
159
+ ok: false,
160
+ error: {
161
+ code,
162
+ message,
163
+ details,
164
+ },
165
+ };
166
+ }
167
+ function isRecord(value) {
168
+ return !!value && typeof value === 'object' && !Array.isArray(value);
169
+ }
170
+ function toSlash(value) {
171
+ return value.split(sep).join('/');
172
+ }
173
+ function ensureDotSlash(value) {
174
+ const normalized = toSlash(value);
175
+ if (normalized.startsWith('.') || normalized.startsWith('/')) {
176
+ return normalized;
177
+ }
178
+ return `./${normalized}`;
179
+ }
180
+ function resolveProjectDir(directory) {
181
+ return resolve(directory ?? process.cwd());
182
+ }
183
+ function resolveProjectPath(projectDir, explicitPath, defaultRelative) {
184
+ if (explicitPath && isAbsolute(explicitPath)) {
185
+ return resolve(explicitPath);
186
+ }
187
+ return resolve(projectDir, explicitPath ?? defaultRelative);
188
+ }
189
+ function resolveGatewayConfig(projectDir, explicitPath) {
190
+ const path = resolveProjectPath(projectDir, explicitPath, DEFAULT_MCP_CONFIG_RELATIVE);
191
+ const reference = explicitPath
192
+ ? (isAbsolute(explicitPath) ? toSlash(resolve(explicitPath)) : ensureDotSlash(explicitPath))
193
+ : `./${DEFAULT_MCP_CONFIG_RELATIVE}`;
194
+ return {
195
+ path,
196
+ reference,
197
+ };
198
+ }
199
+ function resolveServerName(serverName) {
200
+ const resolved = (serverName ?? DEFAULT_SERVER_NAME).trim();
201
+ if (!resolved) {
202
+ throw new Error('--server-name must be a non-empty string');
203
+ }
204
+ return resolved;
205
+ }
206
+ function readJsonObject(path) {
207
+ if (!existsSync(path)) {
208
+ return {};
209
+ }
210
+ const content = readFileSync(path, 'utf-8').trim();
211
+ if (!content) {
212
+ return {};
213
+ }
214
+ const parsed = JSON.parse(content);
215
+ if (!isRecord(parsed)) {
216
+ throw new Error(`Invalid JSON config at ${path}: expected top-level object`);
217
+ }
218
+ return parsed;
219
+ }
220
+ function writeJsonObject(path, document) {
221
+ mkdirSync(dirname(path), { recursive: true });
222
+ writeFileSync(path, JSON.stringify(document, null, 2) + '\n', 'utf-8');
223
+ }
224
+ function createEnvInterpolation(name) {
225
+ return `\${env:${name}}`;
226
+ }
227
+ function createProxyMcpServerConfig(configReference) {
228
+ return {
229
+ command: 'veto-mcp-proxy',
230
+ args: ['--config', configReference],
231
+ env: {
232
+ VETO_API_KEY: createEnvInterpolation('VETO_API_KEY'),
233
+ },
234
+ };
235
+ }
236
+ function createCloudMcpServerConfig() {
237
+ return {
238
+ url: DEFAULT_CLOUD_MCP_URL,
239
+ serverUrl: DEFAULT_CLOUD_MCP_URL,
240
+ headers: {
241
+ 'X-Veto-API-Key': createEnvInterpolation('VETO_API_KEY'),
242
+ },
243
+ };
244
+ }
245
+ function initializeGatewayConfig(configPath) {
246
+ const result = runMcpInitCommand({ outputPath: configPath });
247
+ if (!result.ok) {
248
+ throw new Error(result.error?.message ?? 'Failed to initialize MCP gateway config');
249
+ }
250
+ return result.data?.created ?? false;
251
+ }
252
+ function runCursorInstall(options) {
253
+ const projectDir = resolveProjectDir(options.directory);
254
+ const path = resolveProjectPath(projectDir, options.outputPath, CURSOR_CONFIG_RELATIVE);
255
+ const serverName = resolveServerName(options.serverName);
256
+ const existingDocument = readJsonObject(path);
257
+ const rawServers = existingDocument.mcpServers;
258
+ if (rawServers !== undefined && !isRecord(rawServers)) {
259
+ throw new Error(`Invalid Cursor MCP config at ${path}: mcpServers must be an object`);
260
+ }
261
+ let gatewayConfig;
262
+ let gatewayConfigCreated;
263
+ let nextServerConfig;
264
+ let endpoint;
265
+ if (options.cloud) {
266
+ nextServerConfig = createCloudMcpServerConfig();
267
+ endpoint = DEFAULT_CLOUD_MCP_URL;
268
+ }
269
+ else {
270
+ gatewayConfig = resolveGatewayConfig(projectDir, options.configPath);
271
+ gatewayConfigCreated = initializeGatewayConfig(gatewayConfig.path);
272
+ nextServerConfig = createProxyMcpServerConfig(gatewayConfig.reference);
273
+ endpoint = gatewayConfig.reference;
274
+ }
275
+ const servers = { ...(isRecord(rawServers) ? rawServers : {}) };
276
+ const existing = servers[serverName];
277
+ const serverCreated = existing === undefined;
278
+ const updated = JSON.stringify(existing ?? null) !== JSON.stringify(nextServerConfig);
279
+ if (serverCreated || updated) {
280
+ servers[serverName] = nextServerConfig;
281
+ existingDocument.mcpServers = servers;
282
+ writeJsonObject(path, existingDocument);
283
+ }
284
+ const mode = options.cloud ? 'cloud' : 'local';
285
+ const messages = options.cloud
286
+ ? [
287
+ `Cursor MCP config ${serverCreated || updated ? 'updated' : 'already current'}: ${path}`,
288
+ `Server '${serverName}' uses Veto Cloud: ${DEFAULT_CLOUD_MCP_URL}`,
289
+ 'Set VETO_API_KEY in your environment and reload Cursor.',
290
+ ]
291
+ : [
292
+ `Cursor MCP config ${serverCreated || updated ? 'updated' : 'already current'}: ${path}`,
293
+ `Server '${serverName}' runs veto-mcp-proxy --config ${gatewayConfig.reference}`,
294
+ `Gateway config ${gatewayConfigCreated ? 'created' : 'reused'}: ${gatewayConfig.path}`,
295
+ 'Set VETO_API_KEY in your environment and reload Cursor.',
296
+ ];
297
+ return {
298
+ target: 'cursor',
299
+ projectDir,
300
+ path,
301
+ serverName,
302
+ serverCreated,
303
+ updated,
304
+ mode,
305
+ endpoint,
306
+ gatewayConfigPath: gatewayConfig?.path,
307
+ gatewayConfigReference: gatewayConfig?.reference,
308
+ gatewayConfigCreated,
309
+ messages,
310
+ };
311
+ }
312
+ function tomlString(value) {
313
+ return JSON.stringify(value);
314
+ }
315
+ function tomlStringArray(values) {
316
+ return `[${values.map((value) => tomlString(value)).join(', ')}]`;
317
+ }
318
+ function tomlKeySegment(value) {
319
+ if (/^[A-Za-z0-9_-]+$/.test(value)) {
320
+ return value;
321
+ }
322
+ return tomlString(value);
323
+ }
324
+ function createCodexMcpServerSection(serverName, configReference) {
325
+ const sectionName = `mcp_servers.${tomlKeySegment(serverName)}`;
326
+ return [
327
+ `[${sectionName}]`,
328
+ 'command = "veto-mcp-proxy"',
329
+ `args = ${tomlStringArray(['--config', configReference])}`,
330
+ 'enabled = true',
331
+ `env_vars = ${tomlStringArray(['VETO_API_KEY'])}`,
332
+ ].join('\n');
333
+ }
334
+ function parseTomlSectionName(line) {
335
+ const match = /^\s*\[([^\]]+)]\s*$/.exec(line);
336
+ return match?.[1]?.trim() ?? null;
337
+ }
338
+ function parseTomlServerName(sectionName) {
339
+ if (!sectionName.startsWith('mcp_servers.')) {
340
+ return null;
341
+ }
342
+ const rawName = sectionName.slice('mcp_servers.'.length).trim();
343
+ if (rawName.startsWith('"') && rawName.endsWith('"')) {
344
+ try {
345
+ return JSON.parse(rawName);
346
+ }
347
+ catch {
348
+ return rawName;
349
+ }
350
+ }
351
+ return rawName;
352
+ }
353
+ function findTomlServerSection(lines, serverName) {
354
+ for (let index = 0; index < lines.length; index++) {
355
+ const sectionName = parseTomlSectionName(lines[index] ?? '');
356
+ if (sectionName === null || parseTomlServerName(sectionName) !== serverName) {
357
+ continue;
358
+ }
359
+ let end = lines.length;
360
+ for (let next = index + 1; next < lines.length; next++) {
361
+ if (/^\s*\[/.test(lines[next] ?? '')) {
362
+ end = next;
363
+ break;
364
+ }
365
+ }
366
+ return {
367
+ start: index,
368
+ end,
369
+ };
370
+ }
371
+ return null;
372
+ }
373
+ function upsertTomlServerSection(content, serverName, section) {
374
+ const lines = content.replace(/\r\n/g, '\n').split('\n');
375
+ if (content.length === 0) {
376
+ return {
377
+ content: section + '\n',
378
+ serverCreated: true,
379
+ };
380
+ }
381
+ if (lines.at(-1) === '') {
382
+ lines.pop();
383
+ }
384
+ const existing = findTomlServerSection(lines, serverName);
385
+ const sectionLines = section.split('\n');
386
+ if (existing) {
387
+ lines.splice(existing.start, existing.end - existing.start, ...sectionLines);
388
+ }
389
+ else {
390
+ if (lines.length > 0 && lines.at(-1)?.trim() !== '') {
391
+ lines.push('');
392
+ }
393
+ lines.push(...sectionLines);
394
+ }
395
+ while (lines.length > 0 && lines.at(-1)?.trim() === '') {
396
+ lines.pop();
397
+ }
398
+ return {
399
+ content: lines.join('\n') + '\n',
400
+ serverCreated: existing === null,
401
+ };
402
+ }
403
+ function readTextFileIfExists(path) {
404
+ return existsSync(path) ? readFileSync(path, 'utf-8') : '';
405
+ }
406
+ function runCodexInstall(options) {
407
+ if (options.cloud) {
408
+ throw new Error('veto install codex does not support --cloud yet; use the local veto-mcp-proxy config.');
409
+ }
410
+ const projectDir = resolveProjectDir(options.directory);
411
+ const path = resolveProjectPath(projectDir, options.outputPath, CODEX_CONFIG_RELATIVE);
412
+ const serverName = resolveServerName(options.serverName);
413
+ const gatewayConfig = resolveGatewayConfig(projectDir, options.configPath);
414
+ const gatewayConfigCreated = initializeGatewayConfig(gatewayConfig.path);
415
+ const currentContent = readTextFileIfExists(path);
416
+ const section = createCodexMcpServerSection(serverName, gatewayConfig.reference);
417
+ const merged = upsertTomlServerSection(currentContent, serverName, section);
418
+ const updated = currentContent !== merged.content;
419
+ if (updated) {
420
+ mkdirSync(dirname(path), { recursive: true });
421
+ writeFileSync(path, merged.content, 'utf-8');
422
+ }
423
+ const trustHint = 'Project-local Codex MCP config only loads after the project is trusted.';
424
+ return {
425
+ target: 'codex',
426
+ projectDir,
427
+ path,
428
+ serverName,
429
+ serverCreated: merged.serverCreated,
430
+ updated,
431
+ gatewayConfigPath: gatewayConfig.path,
432
+ gatewayConfigReference: gatewayConfig.reference,
433
+ gatewayConfigCreated,
434
+ trustHint,
435
+ messages: [
436
+ `Codex MCP config ${updated ? 'updated' : 'already current'}: ${path}`,
437
+ `Server '${serverName}' runs veto-mcp-proxy --config ${gatewayConfig.reference}`,
438
+ `Gateway config ${gatewayConfigCreated ? 'created' : 'reused'}: ${gatewayConfig.path}`,
439
+ trustHint,
440
+ ],
441
+ };
442
+ }
443
+ function writeHookFile(path, force) {
444
+ if (!existsSync(path)) {
445
+ mkdirSync(dirname(path), { recursive: true });
446
+ writeFileSync(path, CLAUDE_HOOK_CONTENT, 'utf-8');
447
+ chmodSync(path, 0o755);
448
+ return 'created';
449
+ }
450
+ const existing = readFileSync(path, 'utf-8');
451
+ if (existing === CLAUDE_HOOK_CONTENT) {
452
+ chmodSync(path, 0o755);
453
+ return 'unchanged';
454
+ }
455
+ if (force) {
456
+ writeFileSync(path, CLAUDE_HOOK_CONTENT, 'utf-8');
457
+ chmodSync(path, 0o755);
458
+ return 'updated';
459
+ }
460
+ return 'skipped_existing';
461
+ }
462
+ function commandIsVetoHook(command) {
463
+ return typeof command === 'string' && /(^|[/$\\])veto-hook\.(mjs|js|py)(\s|$|"|')/.test(command);
464
+ }
465
+ function mergeClaudeSettings(settingsPath) {
466
+ const existed = existsSync(settingsPath);
467
+ const settings = readJsonObject(settingsPath);
468
+ const hooksValue = settings.hooks;
469
+ if (hooksValue !== undefined && !isRecord(hooksValue)) {
470
+ throw new Error(`Invalid Claude settings at ${settingsPath}: hooks must be an object`);
471
+ }
472
+ const hooks = isRecord(hooksValue) ? hooksValue : {};
473
+ const preToolUseValue = hooks.PreToolUse;
474
+ if (preToolUseValue !== undefined && !Array.isArray(preToolUseValue)) {
475
+ throw new Error(`Invalid Claude settings at ${settingsPath}: hooks.PreToolUse must be an array`);
476
+ }
477
+ const preToolUse = Array.isArray(preToolUseValue) ? preToolUseValue : [];
478
+ let found = false;
479
+ let changed = false;
480
+ for (const block of preToolUse) {
481
+ if (!isRecord(block) || !Array.isArray(block.hooks)) {
482
+ continue;
483
+ }
484
+ for (const hook of block.hooks) {
485
+ if (!isRecord(hook) || !commandIsVetoHook(hook.command)) {
486
+ continue;
487
+ }
488
+ found = true;
489
+ if (hook.command !== CLAUDE_HOOK_COMMAND) {
490
+ hook.command = CLAUDE_HOOK_COMMAND;
491
+ changed = true;
492
+ }
493
+ if (hook.type !== 'command') {
494
+ hook.type = 'command';
495
+ changed = true;
496
+ }
497
+ }
498
+ }
499
+ if (!found) {
500
+ preToolUse.push({
501
+ matcher: '',
502
+ hooks: [
503
+ {
504
+ type: 'command',
505
+ command: CLAUDE_HOOK_COMMAND,
506
+ timeout_ms: 5000,
507
+ },
508
+ ],
509
+ });
510
+ changed = true;
511
+ }
512
+ if (!isRecord(settings.hooks)) {
513
+ settings.hooks = hooks;
514
+ changed = true;
515
+ }
516
+ if (hooks.PreToolUse !== preToolUse) {
517
+ hooks.PreToolUse = preToolUse;
518
+ changed = true;
519
+ }
520
+ if (!changed) {
521
+ return {
522
+ created: false,
523
+ updated: false,
524
+ };
525
+ }
526
+ writeJsonObject(settingsPath, settings);
527
+ return {
528
+ created: !existed,
529
+ updated: true,
530
+ };
531
+ }
532
+ function runClaudeCodeInstall(options) {
533
+ if (options.cloud) {
534
+ throw new Error('veto install claude-code only supports local project policies.');
535
+ }
536
+ const projectDir = resolveProjectDir(options.directory);
537
+ const hookPath = join(projectDir, CLAUDE_HOOK_RELATIVE);
538
+ const settingsPath = join(projectDir, CLAUDE_SETTINGS_RELATIVE);
539
+ const hookStatus = writeHookFile(hookPath, options.force);
540
+ const settings = mergeClaudeSettings(settingsPath);
541
+ const uninstallHint = `Remove ${CLAUDE_HOOK_RELATIVE} and the Veto PreToolUse entry from ${CLAUDE_SETTINGS_RELATIVE}.`;
542
+ const hookMessage = hookStatus === 'skipped_existing'
543
+ ? `Hook exists and was not overwritten: ${hookPath} (use --force to replace it)`
544
+ : `Hook ${hookStatus}: ${hookPath}`;
545
+ return {
546
+ target: 'claude-code',
547
+ projectDir,
548
+ hookPath,
549
+ settingsPath,
550
+ hookStatus,
551
+ settingsCreated: settings.created,
552
+ settingsUpdated: settings.updated,
553
+ uninstallHint,
554
+ messages: [
555
+ hookMessage,
556
+ `Claude settings ${settings.updated ? 'updated' : 'already current'}: ${settingsPath}`,
557
+ 'Run `npx veto init` if this project does not have local policies yet.',
558
+ `Uninstall: ${uninstallHint}`,
559
+ ],
560
+ };
561
+ }
562
+ export function runInstallCommand(options) {
563
+ try {
564
+ if (options.target === 'claude-code') {
565
+ return ok(runClaudeCodeInstall(options));
566
+ }
567
+ if (options.target === 'cursor') {
568
+ return ok(runCursorInstall(options));
569
+ }
570
+ if (options.target === 'codex') {
571
+ return ok(runCodexInstall(options));
572
+ }
573
+ return fail('install_target_unknown', `Unknown install target: ${options.target}`, {
574
+ targets: ['claude-code', 'cursor', 'codex'],
575
+ });
576
+ }
577
+ catch (error) {
578
+ return fail('install_failed', 'Failed to install Veto integration.', {
579
+ target: options.target,
580
+ reason: error instanceof Error ? error.message : String(error),
581
+ });
582
+ }
583
+ }
584
+ export function formatInstallResult(result) {
585
+ if (!result.ok) {
586
+ const lines = [`Error (${result.error?.code ?? 'unknown'}): ${result.error?.message ?? 'Unknown error'}`];
587
+ if (result.error?.details !== undefined) {
588
+ lines.push(JSON.stringify(result.error.details, null, 2));
589
+ }
590
+ return lines.join('\n');
591
+ }
592
+ return result.data?.messages.join('\n') ?? 'ok';
593
+ }
594
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ import { type McpServeOptions } from './mcp.js';
3
+ export declare function parseMcpProxyOptions(argv?: string[]): McpServeOptions | null;
4
+ export declare function runMcpProxyCli(argv?: string[]): Promise<void>;
5
+ export declare function runMcpProxyCliOrExit(argv?: string[]): Promise<void>;
6
+ //# sourceMappingURL=mcp-proxy-bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-proxy-bin.d.ts","sourceRoot":"","sources":["../../src/cli/mcp-proxy-bin.ts"],"names":[],"mappings":";AAKA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAOpE,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,eAAe,GAAG,IAAI,CAiCnG;AAED,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1F;AAED,wBAAsB,oBAAoB,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhG"}