@kaitranntt/ccs 7.36.0 → 7.37.0-dev.2
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/auth/commands/show-command.d.ts.map +1 -1
- package/dist/auth/commands/show-command.js +7 -2
- package/dist/auth/commands/show-command.js.map +1 -1
- package/dist/cliproxy/account-manager.d.ts +5 -207
- package/dist/cliproxy/account-manager.d.ts.map +1 -1
- package/dist/cliproxy/account-manager.js +35 -795
- package/dist/cliproxy/account-manager.js.map +1 -1
- package/dist/cliproxy/accounts/bulk-ops.d.ts +22 -0
- package/dist/cliproxy/accounts/bulk-ops.d.ts.map +1 -0
- package/dist/cliproxy/accounts/bulk-ops.js +88 -0
- package/dist/cliproxy/accounts/bulk-ops.js.map +1 -0
- package/dist/cliproxy/accounts/index.d.ts +19 -0
- package/dist/cliproxy/accounts/index.d.ts.map +1 -0
- package/dist/cliproxy/accounts/index.js +54 -0
- package/dist/cliproxy/accounts/index.js.map +1 -0
- package/dist/cliproxy/accounts/query.d.ts +36 -0
- package/dist/cliproxy/accounts/query.d.ts.map +1 -0
- package/dist/cliproxy/accounts/query.js +94 -0
- package/dist/cliproxy/accounts/query.js.map +1 -0
- package/dist/cliproxy/accounts/registry.d.ts +74 -0
- package/dist/cliproxy/accounts/registry.d.ts.map +1 -0
- package/dist/cliproxy/accounts/registry.js +510 -0
- package/dist/cliproxy/accounts/registry.js.map +1 -0
- package/dist/cliproxy/accounts/token-file-ops.d.ts +64 -0
- package/dist/cliproxy/accounts/token-file-ops.d.ts.map +1 -0
- package/dist/cliproxy/accounts/token-file-ops.js +206 -0
- package/dist/cliproxy/accounts/token-file-ops.js.map +1 -0
- package/dist/cliproxy/accounts/types.d.ts +66 -0
- package/dist/cliproxy/accounts/types.d.ts.map +1 -0
- package/dist/cliproxy/accounts/types.js +12 -0
- package/dist/cliproxy/accounts/types.js.map +1 -0
- package/dist/cliproxy/auth/auth-types.d.ts +2 -0
- package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
- package/dist/cliproxy/auth/oauth-handler.js +60 -0
- package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
- package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -1
- package/dist/cliproxy/auth/token-expiry-checker.js +5 -1
- package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
- package/dist/cliproxy/binary/downloader.d.ts +39 -0
- package/dist/cliproxy/binary/downloader.d.ts.map +1 -1
- package/dist/cliproxy/binary/downloader.js +97 -5
- package/dist/cliproxy/binary/downloader.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts +11 -28
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +20 -1018
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config/env-builder.d.ts +60 -0
- package/dist/cliproxy/config/env-builder.d.ts.map +1 -0
- package/dist/cliproxy/config/env-builder.js +311 -0
- package/dist/cliproxy/config/env-builder.js.map +1 -0
- package/dist/cliproxy/config/generator.d.ts +63 -0
- package/dist/cliproxy/config/generator.d.ts.map +1 -0
- package/dist/cliproxy/config/generator.js +336 -0
- package/dist/cliproxy/config/generator.js.map +1 -0
- package/dist/cliproxy/config/index.d.ts +10 -0
- package/dist/cliproxy/config/index.d.ts.map +1 -0
- package/dist/cliproxy/config/index.js +26 -0
- package/dist/cliproxy/config/index.js.map +1 -0
- package/dist/cliproxy/config/path-resolver.d.ts +47 -0
- package/dist/cliproxy/config/path-resolver.d.ts.map +1 -0
- package/dist/cliproxy/config/path-resolver.js +104 -0
- package/dist/cliproxy/config/path-resolver.js.map +1 -0
- package/dist/cliproxy/config/port-manager.d.ts +33 -0
- package/dist/cliproxy/config/port-manager.d.ts.map +1 -0
- package/dist/cliproxy/config/port-manager.js +68 -0
- package/dist/cliproxy/config/port-manager.js.map +1 -0
- package/dist/cliproxy/config/thinking-config.d.ts +39 -0
- package/dist/cliproxy/config/thinking-config.d.ts.map +1 -0
- package/dist/cliproxy/config/thinking-config.js +143 -0
- package/dist/cliproxy/config/thinking-config.js.map +1 -0
- package/dist/cliproxy/config-generator.d.ts +9 -221
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +12 -856
- package/dist/cliproxy/config-generator.js.map +1 -1
- package/dist/cliproxy/executor/env-resolver.d.ts +45 -0
- package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -0
- package/dist/cliproxy/executor/env-resolver.js +106 -0
- package/dist/cliproxy/executor/env-resolver.js.map +1 -0
- package/dist/cliproxy/executor/index.d.ts +24 -0
- package/dist/cliproxy/executor/index.d.ts.map +1 -0
- package/dist/cliproxy/executor/index.js +669 -0
- package/dist/cliproxy/executor/index.js.map +1 -0
- package/dist/cliproxy/executor/lifecycle-manager.d.ts +33 -0
- package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +1 -0
- package/dist/cliproxy/executor/lifecycle-manager.js +161 -0
- package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -0
- package/dist/cliproxy/executor/retry-handler.d.ts +27 -0
- package/dist/cliproxy/executor/retry-handler.d.ts.map +1 -0
- package/dist/cliproxy/executor/retry-handler.js +109 -0
- package/dist/cliproxy/executor/retry-handler.js.map +1 -0
- package/dist/cliproxy/executor/session-bridge.d.ts +30 -0
- package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -0
- package/dist/cliproxy/executor/session-bridge.js +232 -0
- package/dist/cliproxy/executor/session-bridge.js.map +1 -0
- package/dist/cliproxy/index.d.ts +2 -0
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +4 -1
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/cliproxy/schema-sanitizer.d.ts +45 -0
- package/dist/cliproxy/schema-sanitizer.d.ts.map +1 -0
- package/dist/cliproxy/schema-sanitizer.js +283 -0
- package/dist/cliproxy/schema-sanitizer.js.map +1 -0
- package/dist/cliproxy/tool-sanitization-proxy.d.ts +3 -2
- package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +1 -1
- package/dist/cliproxy/tool-sanitization-proxy.js +14 -3
- package/dist/cliproxy/tool-sanitization-proxy.js.map +1 -1
- package/dist/commands/cliproxy/auth-subcommand.d.ts +10 -0
- package/dist/commands/cliproxy/auth-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/auth-subcommand.js +55 -0
- package/dist/commands/cliproxy/auth-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/help-subcommand.d.ts +8 -0
- package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/help-subcommand.js +87 -0
- package/dist/commands/cliproxy/help-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/index.d.ts +11 -0
- package/dist/commands/cliproxy/index.d.ts.map +1 -0
- package/dist/commands/cliproxy/index.js +196 -0
- package/dist/commands/cliproxy/index.js.map +1 -0
- package/dist/commands/cliproxy/install-subcommand.d.ts +14 -0
- package/dist/commands/cliproxy/install-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/install-subcommand.js +112 -0
- package/dist/commands/cliproxy/install-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +10 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +54 -0
- package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand.d.ts +16 -0
- package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/quota-subcommand.js +383 -0
- package/dist/commands/cliproxy/quota-subcommand.js.map +1 -0
- package/dist/commands/cliproxy/variant-subcommand.d.ts +11 -0
- package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -0
- package/dist/commands/cliproxy/variant-subcommand.js +292 -0
- package/dist/commands/cliproxy/variant-subcommand.js.map +1 -0
- package/dist/commands/cliproxy-command.d.ts +4 -15
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +5 -1090
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +1 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/ui/assets/{accounts-BBpXWvSH.js → accounts-D0KU1a-4.js} +1 -1
- package/dist/ui/assets/{alert-dialog-vAfEWTTx.js → alert-dialog-BNRDV_Kh.js} +1 -1
- package/dist/ui/assets/{api-DZ5UMkSM.js → api-ClkFu9LY.js} +1 -1
- package/dist/ui/assets/{auth-section-CaMKkkvu.js → auth-section-CNhNN1Jp.js} +1 -1
- package/dist/ui/assets/{backups-section-WHuXhsOd.js → backups-section-CZ721HIu.js} +1 -1
- package/dist/ui/assets/cliproxy-DeGucfVg.js +3 -0
- package/dist/ui/assets/{cliproxy-control-panel-RfbZRHh8.js → cliproxy-control-panel-T9i_Ldh0.js} +1 -1
- package/dist/ui/assets/{confirm-dialog-DflEMDZr.js → confirm-dialog-Cy1__gRc.js} +1 -1
- package/dist/ui/assets/{copilot-qDXWR1GO.js → copilot-Cdqs2Jbh.js} +3 -3
- package/dist/ui/assets/{globalenv-section-f_BGs9T6.js → globalenv-section-BEKtYN6I.js} +1 -1
- package/dist/ui/assets/{health-C8g76Gw9.js → health-BaHazGgS.js} +1 -1
- package/dist/ui/assets/{index-DFnuP2Pl.js → index-BTBpI5th.js} +1 -1
- package/dist/ui/assets/index-BZn6kF0u.js +1 -0
- package/dist/ui/assets/{index-lueAmZoj.js → index-C2MS84sf.js} +1 -1
- package/dist/ui/assets/{index-BgcyV-uV.js → index-CiULLjNI.js} +8 -8
- package/dist/ui/assets/{index-mYPtkHHX.js → index-PjscK1jS.js} +1 -1
- package/dist/ui/assets/{proxy-status-widget-B4pFTeam.js → proxy-status-widget-BY6Lnr80.js} +1 -1
- package/dist/ui/assets/{shared-DBOiFFnj.js → shared-dZGNvBe9.js} +1 -1
- package/dist/ui/assets/{switch-DtGK4jP3.js → switch-BCFbehJz.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/utils/shell-executor.d.ts +5 -2
- package/dist/utils/shell-executor.d.ts.map +1 -1
- package/dist/utils/shell-executor.js +17 -19
- package/dist/utils/shell-executor.js.map +1 -1
- package/dist/web-server/routes/account-routes.d.ts.map +1 -1
- package/dist/web-server/routes/account-routes.js +14 -2
- package/dist/web-server/routes/account-routes.js.map +1 -1
- package/package.json +3 -1
- package/dist/ui/assets/cliproxy-BJ4pL9JG.js +0 -3
- package/dist/ui/assets/index-DZpRED6o.js +0 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Session Bridge - Integration with session tracking and proxy detection
|
|
4
|
+
*
|
|
5
|
+
* Handles:
|
|
6
|
+
* - Session registration and unregistration
|
|
7
|
+
* - Proxy detection and version checking
|
|
8
|
+
* - Orphaned proxy reclamation
|
|
9
|
+
* - Startup lock coordination
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
+
}) : function(o, v) {
|
|
25
|
+
o["default"] = v;
|
|
26
|
+
});
|
|
27
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.setupCleanupHandlers = exports.registerProxySession = exports.checkOrJoinProxy = void 0;
|
|
36
|
+
const ui_1 = require("../../utils/ui");
|
|
37
|
+
const binary_manager_1 = require("../binary-manager");
|
|
38
|
+
const session_tracker_1 = require("../session-tracker");
|
|
39
|
+
const proxy_detector_1 = require("../proxy-detector");
|
|
40
|
+
const startup_lock_1 = require("../startup-lock");
|
|
41
|
+
const platform_commands_1 = require("../../utils/platform-commands");
|
|
42
|
+
/**
|
|
43
|
+
* Check for existing proxy and handle version mismatch, or determine if new spawn needed
|
|
44
|
+
*/
|
|
45
|
+
async function checkOrJoinProxy(port, timeout, verbose) {
|
|
46
|
+
const log = (msg) => {
|
|
47
|
+
if (verbose) {
|
|
48
|
+
console.error(`[cliproxy] ${msg}`);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
// Cleanup orphaned sessions before detection
|
|
52
|
+
(0, session_tracker_1.cleanupOrphanedSessions)(port);
|
|
53
|
+
let sessionId;
|
|
54
|
+
let shouldSpawn = false;
|
|
55
|
+
// Use startup lock to coordinate with other CCS processes
|
|
56
|
+
await (0, startup_lock_1.withStartupLock)(async () => {
|
|
57
|
+
// Detect running proxy using multiple methods (HTTP, session-lock, port-process)
|
|
58
|
+
let proxyStatus = await (0, proxy_detector_1.detectRunningProxy)(port);
|
|
59
|
+
log(`Proxy detection: ${JSON.stringify(proxyStatus)}`);
|
|
60
|
+
// Check for version mismatch - restart proxy if installed version differs from running
|
|
61
|
+
if (proxyStatus.running && proxyStatus.verified && proxyStatus.version) {
|
|
62
|
+
const installedVersion = (0, binary_manager_1.getInstalledCliproxyVersion)();
|
|
63
|
+
if (installedVersion !== proxyStatus.version) {
|
|
64
|
+
console.log((0, ui_1.warn)(`Version mismatch: running v${proxyStatus.version}, installed v${installedVersion}. Restarting proxy...`));
|
|
65
|
+
log(`Stopping outdated proxy (PID: ${proxyStatus.pid ?? 'unknown'})...`);
|
|
66
|
+
const stopResult = await (0, session_tracker_1.stopProxy)(port);
|
|
67
|
+
if (stopResult.stopped) {
|
|
68
|
+
log(`Stopped outdated proxy successfully`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
log(`Stop proxy result: ${stopResult.error ?? 'unknown error'}`);
|
|
72
|
+
}
|
|
73
|
+
// Wait for port to be released
|
|
74
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
75
|
+
// Re-detect proxy status (should now be not running)
|
|
76
|
+
proxyStatus = await (0, proxy_detector_1.detectRunningProxy)(port);
|
|
77
|
+
log(`Re-detection after version mismatch restart: ${JSON.stringify(proxyStatus)}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (proxyStatus.running && proxyStatus.verified) {
|
|
81
|
+
// Healthy proxy found - join it
|
|
82
|
+
if (proxyStatus.pid) {
|
|
83
|
+
sessionId = (0, proxy_detector_1.reclaimOrphanedProxy)(port, proxyStatus.pid, verbose) ?? undefined;
|
|
84
|
+
}
|
|
85
|
+
if (sessionId) {
|
|
86
|
+
console.log((0, ui_1.info)(`Joined existing CLIProxy on port ${port} (${proxyStatus.method})`));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Failed to register session - proxy is running but we can't track it
|
|
90
|
+
console.log((0, ui_1.info)(`Using existing CLIProxy on port ${port} (session tracking unavailable)`));
|
|
91
|
+
log(`PID=${proxyStatus.pid ?? 'unknown'}, session registration skipped`);
|
|
92
|
+
}
|
|
93
|
+
return; // Exit lock early, skip spawning
|
|
94
|
+
}
|
|
95
|
+
if (proxyStatus.running && !proxyStatus.verified) {
|
|
96
|
+
// Proxy detected but not ready yet (another process is starting it)
|
|
97
|
+
log(`Proxy starting up (detected via ${proxyStatus.method}), waiting...`);
|
|
98
|
+
const becameHealthy = await (0, proxy_detector_1.waitForProxyHealthy)(port, timeout);
|
|
99
|
+
if (becameHealthy) {
|
|
100
|
+
if (proxyStatus.pid) {
|
|
101
|
+
sessionId = (0, proxy_detector_1.reclaimOrphanedProxy)(port, proxyStatus.pid, verbose) ?? undefined;
|
|
102
|
+
}
|
|
103
|
+
console.log((0, ui_1.info)(`Joined CLIProxy after startup wait`));
|
|
104
|
+
return; // Exit lock early
|
|
105
|
+
}
|
|
106
|
+
// Proxy didn't become healthy - kill and respawn
|
|
107
|
+
if (proxyStatus.pid) {
|
|
108
|
+
log(`Proxy PID ${proxyStatus.pid} not responding, killing...`);
|
|
109
|
+
(0, platform_commands_1.killProcessOnPort)(port, verbose);
|
|
110
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (proxyStatus.blocked && proxyStatus.blocker) {
|
|
114
|
+
// Port blocked by non-CLIProxy process
|
|
115
|
+
// Last resort: try HTTP health check (handles Windows PID-XXXXX case)
|
|
116
|
+
const isActuallyOurs = await (0, proxy_detector_1.waitForProxyHealthy)(port, 1000);
|
|
117
|
+
if (isActuallyOurs) {
|
|
118
|
+
sessionId = (0, proxy_detector_1.reclaimOrphanedProxy)(port, proxyStatus.blocker.pid, verbose) ?? undefined;
|
|
119
|
+
console.log((0, ui_1.info)(`Reclaimed CLIProxy with unrecognized process name`));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// Truly blocked by another application
|
|
123
|
+
const { getPortCheckCommand } = await Promise.resolve().then(() => __importStar(require('../../utils/platform-commands')));
|
|
124
|
+
console.error('');
|
|
125
|
+
console.error((0, ui_1.warn)(`Port ${port} is blocked by ${proxyStatus.blocker.processName} (PID ${proxyStatus.blocker.pid})`));
|
|
126
|
+
console.error('');
|
|
127
|
+
console.error('To fix this, close the blocking application or run:');
|
|
128
|
+
console.error(` ${getPortCheckCommand(port)}`);
|
|
129
|
+
console.error('');
|
|
130
|
+
throw new Error(`Port ${port} is in use by another application`);
|
|
131
|
+
}
|
|
132
|
+
// No proxy found - need to spawn
|
|
133
|
+
shouldSpawn = true;
|
|
134
|
+
});
|
|
135
|
+
return { sessionId, shouldSpawn };
|
|
136
|
+
}
|
|
137
|
+
exports.checkOrJoinProxy = checkOrJoinProxy;
|
|
138
|
+
/**
|
|
139
|
+
* Register a new proxy session after spawning
|
|
140
|
+
*/
|
|
141
|
+
function registerProxySession(port, pid, backend, verbose) {
|
|
142
|
+
const installedVersion = (0, binary_manager_1.getInstalledCliproxyVersion)();
|
|
143
|
+
const sessionId = (0, session_tracker_1.registerSession)(port, pid, installedVersion, backend);
|
|
144
|
+
if (verbose) {
|
|
145
|
+
console.error(`[cliproxy] Registered session ${sessionId} with new proxy (PID ${pid}, version ${installedVersion})`);
|
|
146
|
+
}
|
|
147
|
+
return sessionId;
|
|
148
|
+
}
|
|
149
|
+
exports.registerProxySession = registerProxySession;
|
|
150
|
+
/**
|
|
151
|
+
* Setup cleanup handlers for session unregistration
|
|
152
|
+
*/
|
|
153
|
+
function setupCleanupHandlers(claude, sessionId, sessionPort, codexReasoningProxy, toolSanitizationProxy, httpsTunnel, verbose) {
|
|
154
|
+
const log = (msg) => {
|
|
155
|
+
if (verbose) {
|
|
156
|
+
console.error(`[cliproxy] ${msg}`);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const cleanup = () => {
|
|
160
|
+
log('Parent signal received, cleaning up');
|
|
161
|
+
if (codexReasoningProxy &&
|
|
162
|
+
typeof codexReasoningProxy === 'object' &&
|
|
163
|
+
'stop' in codexReasoningProxy) {
|
|
164
|
+
codexReasoningProxy.stop();
|
|
165
|
+
}
|
|
166
|
+
if (toolSanitizationProxy &&
|
|
167
|
+
typeof toolSanitizationProxy === 'object' &&
|
|
168
|
+
'stop' in toolSanitizationProxy) {
|
|
169
|
+
toolSanitizationProxy.stop();
|
|
170
|
+
}
|
|
171
|
+
if (httpsTunnel && typeof httpsTunnel === 'object' && 'stop' in httpsTunnel) {
|
|
172
|
+
httpsTunnel.stop();
|
|
173
|
+
}
|
|
174
|
+
// Unregister session, proxy keeps running (local mode only)
|
|
175
|
+
if (sessionId) {
|
|
176
|
+
(0, session_tracker_1.unregisterSession)(sessionId, sessionPort);
|
|
177
|
+
}
|
|
178
|
+
claude.kill('SIGTERM');
|
|
179
|
+
};
|
|
180
|
+
claude.on('exit', (code, signal) => {
|
|
181
|
+
log(`Claude exited: code=${code}, signal=${signal}`);
|
|
182
|
+
if (codexReasoningProxy &&
|
|
183
|
+
typeof codexReasoningProxy === 'object' &&
|
|
184
|
+
'stop' in codexReasoningProxy) {
|
|
185
|
+
codexReasoningProxy.stop();
|
|
186
|
+
}
|
|
187
|
+
if (toolSanitizationProxy &&
|
|
188
|
+
typeof toolSanitizationProxy === 'object' &&
|
|
189
|
+
'stop' in toolSanitizationProxy) {
|
|
190
|
+
toolSanitizationProxy.stop();
|
|
191
|
+
}
|
|
192
|
+
if (httpsTunnel && typeof httpsTunnel === 'object' && 'stop' in httpsTunnel) {
|
|
193
|
+
httpsTunnel.stop();
|
|
194
|
+
}
|
|
195
|
+
// Unregister this session (proxy keeps running for persistence) - only for local mode
|
|
196
|
+
if (sessionId) {
|
|
197
|
+
(0, session_tracker_1.unregisterSession)(sessionId, sessionPort);
|
|
198
|
+
log(`Session ${sessionId} unregistered, proxy persists for other sessions or future use`);
|
|
199
|
+
}
|
|
200
|
+
if (signal) {
|
|
201
|
+
process.kill(process.pid, signal);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
process.exit(code || 0);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
claude.on('error', (error) => {
|
|
208
|
+
console.error(require('../../utils/ui').fail(`Claude CLI error: ${error}`));
|
|
209
|
+
if (codexReasoningProxy &&
|
|
210
|
+
typeof codexReasoningProxy === 'object' &&
|
|
211
|
+
'stop' in codexReasoningProxy) {
|
|
212
|
+
codexReasoningProxy.stop();
|
|
213
|
+
}
|
|
214
|
+
if (toolSanitizationProxy &&
|
|
215
|
+
typeof toolSanitizationProxy === 'object' &&
|
|
216
|
+
'stop' in toolSanitizationProxy) {
|
|
217
|
+
toolSanitizationProxy.stop();
|
|
218
|
+
}
|
|
219
|
+
if (httpsTunnel && typeof httpsTunnel === 'object' && 'stop' in httpsTunnel) {
|
|
220
|
+
httpsTunnel.stop();
|
|
221
|
+
}
|
|
222
|
+
// Unregister session, proxy keeps running (local mode only)
|
|
223
|
+
if (sessionId) {
|
|
224
|
+
(0, session_tracker_1.unregisterSession)(sessionId, sessionPort);
|
|
225
|
+
}
|
|
226
|
+
process.exit(1);
|
|
227
|
+
});
|
|
228
|
+
process.once('SIGTERM', cleanup);
|
|
229
|
+
process.once('SIGINT', cleanup);
|
|
230
|
+
}
|
|
231
|
+
exports.setupCleanupHandlers = setupCleanupHandlers;
|
|
232
|
+
//# sourceMappingURL=session-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-bridge.js","sourceRoot":"","sources":["../../../src/cliproxy/executor/session-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/cliproxy/index.d.ts
CHANGED
|
@@ -38,4 +38,6 @@ export type { Tool, ToolUseBlock, ContentBlock, SanitizationChange } from './too
|
|
|
38
38
|
export { ToolNameMapper } from './tool-name-mapper';
|
|
39
39
|
export type { ToolSanitizationProxyConfig } from './tool-sanitization-proxy';
|
|
40
40
|
export { ToolSanitizationProxy } from './tool-sanitization-proxy';
|
|
41
|
+
export type { SchemaSanitizationResult } from './schema-sanitizer';
|
|
42
|
+
export { sanitizeInputSchema, sanitizeToolSchemas } from './schema-sanitizer';
|
|
41
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cliproxy/index.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.configureProviderModel = exports.getCurrentModel = exports.hasUserSettings = exports.findModel = exports.getProviderCatalog = exports.supportsModelConfig = exports.MODEL_CATALOG = exports.clearConfigCache = exports.getEnvVarsFromConfig = exports.getModelMappingFromConfig = exports.loadBaseConfig = exports.CLIPROXY_CONFIG_VERSION = exports.CLIPROXY_DEFAULT_PORT = exports.deleteConfig = exports.configExists = exports.getBinDir = exports.getCliproxyConfigPath = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.ensureProviderSettings = exports.getProviderSettingsPath = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.parseUserApiKeys = exports.configNeedsRegeneration = exports.regenerateConfig = exports.generateConfig = exports.getVersionPinPath = exports.isVersionPinned = exports.clearPinnedVersion = exports.savePinnedVersion = exports.getPinnedVersion = exports.fetchLatestCliproxyVersion = exports.installCliproxyVersion = exports.getInstalledCliproxyVersion = exports.getCLIProxyPath = exports.isCLIProxyInstalled = exports.ensureCLIProxyBinary = exports.BinaryManager = exports.CLIPROXY_VERSION = exports.getPlatformDescription = exports.isPlatformSupported = exports.getArchiveBinaryName = exports.getExecutableName = exports.getChecksumsUrl = exports.getDownloadUrl = exports.detectPlatform = void 0;
|
|
8
8
|
exports.ManagementApiClient = exports.THINKING_BUDGET_DEFAULT_MIN = exports.THINKING_BUDGET_MAX = exports.THINKING_BUDGET_MIN = exports.THINKING_AUTO_VALUE = exports.THINKING_OFF_VALUES = exports.VALID_THINKING_TIERS = exports.VALID_THINKING_LEVELS = exports.THINKING_LEVEL_BUDGETS = exports.validateThinking = exports.getAuthSummary = exports.resetAuthToDefaults = exports.setVariantApiKey = exports.setGlobalManagementSecret = exports.setGlobalApiKey = exports.getEffectiveManagementSecret = exports.getEffectiveApiKey = exports.maskToken = exports.generateSecureToken = exports.withStartupLock = exports.acquireStartupLock = exports.reclaimOrphanedProxy = exports.waitForProxyHealthy = exports.detectRunningProxy = exports.getServiceStatus = exports.stopCliproxyService = exports.ensureCliproxyService = exports.TOGETHER_TEMPLATE = exports.OPENROUTER_TEMPLATE = exports.removeOpenAICompatProvider = exports.updateOpenAICompatProvider = exports.addOpenAICompatProvider = exports.getOpenAICompatProvider = exports.listOpenAICompatProviders = exports.fetchAccountQuota = exports.isCliproxyRunning = exports.fetchCliproxyStats = exports.displayAuthStatus = exports.getProviderTokenDir = exports.getOAuthConfig = exports.ensureAuth = exports.triggerOAuth = exports.clearAuth = exports.getAllAuthStatus = exports.getAuthStatus = exports.isAuthenticated = exports.findAvailablePort = exports.isPortAvailable = exports.execClaudeWithCLIProxy = exports.showCurrentConfig = void 0;
|
|
9
|
-
exports.ToolSanitizationProxy = exports.ToolNameMapper = exports.GEMINI_MAX_TOOL_NAME_LENGTH = exports.smartTruncate = exports.removeDuplicateSegments = exports.isValidToolName = exports.sanitizeToolName = exports.isProfileSyncable = exports.getSyncableProfileCount = exports.generateSyncPreview = exports.generateSyncPayload = exports.mapProfileToClaudeKey = exports.loadSyncableProfiles = exports.createManagementClient = void 0;
|
|
9
|
+
exports.sanitizeToolSchemas = exports.sanitizeInputSchema = exports.ToolSanitizationProxy = exports.ToolNameMapper = exports.GEMINI_MAX_TOOL_NAME_LENGTH = exports.smartTruncate = exports.removeDuplicateSegments = exports.isValidToolName = exports.sanitizeToolName = exports.isProfileSyncable = exports.getSyncableProfileCount = exports.generateSyncPreview = exports.generateSyncPayload = exports.mapProfileToClaudeKey = exports.loadSyncableProfiles = exports.createManagementClient = void 0;
|
|
10
10
|
// Platform detection
|
|
11
11
|
var platform_detector_1 = require("./platform-detector");
|
|
12
12
|
Object.defineProperty(exports, "detectPlatform", { enumerable: true, get: function () { return platform_detector_1.detectPlatform; } });
|
|
@@ -148,4 +148,7 @@ var tool_name_mapper_1 = require("./tool-name-mapper");
|
|
|
148
148
|
Object.defineProperty(exports, "ToolNameMapper", { enumerable: true, get: function () { return tool_name_mapper_1.ToolNameMapper; } });
|
|
149
149
|
var tool_sanitization_proxy_1 = require("./tool-sanitization-proxy");
|
|
150
150
|
Object.defineProperty(exports, "ToolSanitizationProxy", { enumerable: true, get: function () { return tool_sanitization_proxy_1.ToolSanitizationProxy; } });
|
|
151
|
+
var schema_sanitizer_1 = require("./schema-sanitizer");
|
|
152
|
+
Object.defineProperty(exports, "sanitizeInputSchema", { enumerable: true, get: function () { return schema_sanitizer_1.sanitizeInputSchema; } });
|
|
153
|
+
Object.defineProperty(exports, "sanitizeToolSchemas", { enumerable: true, get: function () { return schema_sanitizer_1.sanitizeToolSchemas; } });
|
|
151
154
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cliproxy/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Sanitizer
|
|
3
|
+
*
|
|
4
|
+
* Sanitizes MCP tool input_schema to remove non-standard JSON Schema properties
|
|
5
|
+
* that Gemini/Vertex APIs reject.
|
|
6
|
+
*
|
|
7
|
+
* MCP servers (especially design tools) include UI-specific metadata in schemas:
|
|
8
|
+
* - cornerRadius, fillColor, fontFamily, fontSize, fontWeight, gap, padding, etc.
|
|
9
|
+
*
|
|
10
|
+
* These are valid as MCP hints but invalid for strict JSON Schema validation.
|
|
11
|
+
*/
|
|
12
|
+
export interface SchemaSanitizationResult {
|
|
13
|
+
/** The sanitized schema */
|
|
14
|
+
schema: Record<string, unknown>;
|
|
15
|
+
/** Number of properties removed */
|
|
16
|
+
removedCount: number;
|
|
17
|
+
/** List of removed property paths for logging */
|
|
18
|
+
removedPaths: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Sanitize an input_schema object, removing non-standard JSON Schema properties.
|
|
22
|
+
*
|
|
23
|
+
* @param inputSchema The tool's input_schema object
|
|
24
|
+
* @returns Sanitization result with cleaned schema and metadata
|
|
25
|
+
*/
|
|
26
|
+
export declare function sanitizeInputSchema(inputSchema: Record<string, unknown> | null | undefined): SchemaSanitizationResult;
|
|
27
|
+
/**
|
|
28
|
+
* Sanitize an array of tools, cleaning their input_schema properties.
|
|
29
|
+
*
|
|
30
|
+
* @param tools Array of tool definitions
|
|
31
|
+
* @returns Object with sanitized tools and total removed count
|
|
32
|
+
*/
|
|
33
|
+
export declare function sanitizeToolSchemas(tools: Array<{
|
|
34
|
+
name: string;
|
|
35
|
+
input_schema?: Record<string, unknown>;
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
}>): {
|
|
38
|
+
tools: typeof tools;
|
|
39
|
+
totalRemoved: number;
|
|
40
|
+
removedByTool: Array<{
|
|
41
|
+
name: string;
|
|
42
|
+
removed: string[];
|
|
43
|
+
}>;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=schema-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-sanitizer.d.ts","sourceRoot":"","sources":["../../src/cliproxy/schema-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsEH,MAAM,WAAW,wBAAwB;IACvC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAsMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACtD,wBAAwB,CA2B1B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,GAC7F;IACD,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CAC3D,CAkCA"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Schema Sanitizer
|
|
4
|
+
*
|
|
5
|
+
* Sanitizes MCP tool input_schema to remove non-standard JSON Schema properties
|
|
6
|
+
* that Gemini/Vertex APIs reject.
|
|
7
|
+
*
|
|
8
|
+
* MCP servers (especially design tools) include UI-specific metadata in schemas:
|
|
9
|
+
* - cornerRadius, fillColor, fontFamily, fontSize, fontWeight, gap, padding, etc.
|
|
10
|
+
*
|
|
11
|
+
* These are valid as MCP hints but invalid for strict JSON Schema validation.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.sanitizeToolSchemas = exports.sanitizeInputSchema = void 0;
|
|
15
|
+
/** Valid JSON Schema Draft-07 keywords (used by Anthropic/Gemini APIs) */
|
|
16
|
+
const VALID_JSON_SCHEMA_KEYWORDS = new Set([
|
|
17
|
+
// Core
|
|
18
|
+
'type',
|
|
19
|
+
'properties',
|
|
20
|
+
'required',
|
|
21
|
+
'items',
|
|
22
|
+
'enum',
|
|
23
|
+
'const',
|
|
24
|
+
'default',
|
|
25
|
+
// String validation
|
|
26
|
+
'minLength',
|
|
27
|
+
'maxLength',
|
|
28
|
+
'pattern',
|
|
29
|
+
'format',
|
|
30
|
+
// Number validation
|
|
31
|
+
'minimum',
|
|
32
|
+
'maximum',
|
|
33
|
+
'exclusiveMinimum',
|
|
34
|
+
'exclusiveMaximum',
|
|
35
|
+
'multipleOf',
|
|
36
|
+
// Array validation
|
|
37
|
+
'minItems',
|
|
38
|
+
'maxItems',
|
|
39
|
+
'uniqueItems',
|
|
40
|
+
'contains',
|
|
41
|
+
'additionalItems',
|
|
42
|
+
// Object validation
|
|
43
|
+
'additionalProperties',
|
|
44
|
+
'patternProperties',
|
|
45
|
+
'minProperties',
|
|
46
|
+
'maxProperties',
|
|
47
|
+
'propertyNames',
|
|
48
|
+
'dependencies',
|
|
49
|
+
// Composition
|
|
50
|
+
'oneOf',
|
|
51
|
+
'anyOf',
|
|
52
|
+
'allOf',
|
|
53
|
+
'not',
|
|
54
|
+
'if',
|
|
55
|
+
'then',
|
|
56
|
+
'else',
|
|
57
|
+
// Metadata (allowed by most APIs)
|
|
58
|
+
'title',
|
|
59
|
+
'description',
|
|
60
|
+
'$id',
|
|
61
|
+
'$schema',
|
|
62
|
+
'$ref',
|
|
63
|
+
'$defs',
|
|
64
|
+
'definitions',
|
|
65
|
+
'$comment',
|
|
66
|
+
'examples',
|
|
67
|
+
'readOnly',
|
|
68
|
+
'writeOnly',
|
|
69
|
+
'deprecated',
|
|
70
|
+
'contentMediaType',
|
|
71
|
+
'contentEncoding',
|
|
72
|
+
]);
|
|
73
|
+
/** Maximum recursion depth to prevent stack overflow */
|
|
74
|
+
const MAX_DEPTH = 100;
|
|
75
|
+
/**
|
|
76
|
+
* Check if a key is a valid JSON Schema keyword.
|
|
77
|
+
*/
|
|
78
|
+
function isValidSchemaKey(key) {
|
|
79
|
+
return VALID_JSON_SCHEMA_KEYWORDS.has(key);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Recursively sanitize a JSON Schema object.
|
|
83
|
+
* Removes non-standard properties while preserving valid schema structure.
|
|
84
|
+
*
|
|
85
|
+
* @param schema The schema object to sanitize
|
|
86
|
+
* @param path Current path for logging (e.g., "properties.foo.items")
|
|
87
|
+
* @param removedPaths Accumulator for removed property paths
|
|
88
|
+
* @param visited WeakSet to track visited objects and prevent circular references
|
|
89
|
+
* @param depth Current recursion depth to prevent stack overflow
|
|
90
|
+
* @returns Sanitized schema object
|
|
91
|
+
*/
|
|
92
|
+
function sanitizeSchemaRecursive(schema, path, removedPaths, visited = new WeakSet(), depth = 0) {
|
|
93
|
+
// Guard: prevent stack overflow from deep nesting
|
|
94
|
+
if (depth > MAX_DEPTH) {
|
|
95
|
+
return schema;
|
|
96
|
+
}
|
|
97
|
+
// Handle non-objects (primitives, null)
|
|
98
|
+
if (typeof schema !== 'object' || schema === null) {
|
|
99
|
+
return schema;
|
|
100
|
+
}
|
|
101
|
+
// Guard: prevent infinite recursion from circular references
|
|
102
|
+
if (visited.has(schema)) {
|
|
103
|
+
return schema;
|
|
104
|
+
}
|
|
105
|
+
// Mark object as visited
|
|
106
|
+
visited.add(schema);
|
|
107
|
+
// Handle arrays
|
|
108
|
+
if (Array.isArray(schema)) {
|
|
109
|
+
return schema.map((item, index) => sanitizeSchemaRecursive(item, `${path}[${index}]`, removedPaths, visited, depth + 1));
|
|
110
|
+
}
|
|
111
|
+
// Handle objects
|
|
112
|
+
const result = {};
|
|
113
|
+
const obj = schema;
|
|
114
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
115
|
+
const keyPath = path ? `${path}.${key}` : key;
|
|
116
|
+
// Special handling for nested schema containers
|
|
117
|
+
if (key === 'properties' && typeof value === 'object' && value !== null) {
|
|
118
|
+
// Recurse into each property definition
|
|
119
|
+
const sanitizedProps = {};
|
|
120
|
+
for (const [propName, propSchema] of Object.entries(value)) {
|
|
121
|
+
sanitizedProps[propName] = sanitizeSchemaRecursive(propSchema, `${keyPath}.${propName}`, removedPaths, visited, depth + 1);
|
|
122
|
+
}
|
|
123
|
+
result[key] = sanitizedProps;
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (key === 'items') {
|
|
127
|
+
// items can be object or array of objects
|
|
128
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (key === 'additionalProperties' && typeof value === 'object') {
|
|
132
|
+
// Can be boolean or schema object
|
|
133
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (key === 'additionalItems' && typeof value === 'object' && value !== null) {
|
|
137
|
+
// Can be boolean or schema object (tuple validation)
|
|
138
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
// Composition keywords contain schema arrays
|
|
142
|
+
if (['oneOf', 'anyOf', 'allOf'].includes(key) && Array.isArray(value)) {
|
|
143
|
+
result[key] = value.map((item, index) => sanitizeSchemaRecursive(item, `${keyPath}[${index}]`, removedPaths, visited, depth + 1));
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
if (key === 'not' && typeof value === 'object') {
|
|
147
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
if (key === 'propertyNames' && typeof value === 'object') {
|
|
151
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
// Conditional keywords
|
|
155
|
+
if (['if', 'then', 'else'].includes(key) && typeof value === 'object') {
|
|
156
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (key === 'contains' && typeof value === 'object') {
|
|
160
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (key === '$defs' || key === 'definitions') {
|
|
164
|
+
// Definition containers
|
|
165
|
+
if (typeof value === 'object' && value !== null) {
|
|
166
|
+
const sanitizedDefs = {};
|
|
167
|
+
for (const [defName, defSchema] of Object.entries(value)) {
|
|
168
|
+
sanitizedDefs[defName] = sanitizeSchemaRecursive(defSchema, `${keyPath}.${defName}`, removedPaths, visited, depth + 1);
|
|
169
|
+
}
|
|
170
|
+
result[key] = sanitizedDefs;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (key === 'patternProperties') {
|
|
175
|
+
// Pattern property containers - preserve pattern keys and sanitize schema values
|
|
176
|
+
if (typeof value === 'object' && value !== null) {
|
|
177
|
+
const sanitizedPatterns = {};
|
|
178
|
+
for (const [pattern, patternSchema] of Object.entries(value)) {
|
|
179
|
+
sanitizedPatterns[pattern] = sanitizeSchemaRecursive(patternSchema, `${keyPath}.${pattern}`, removedPaths, visited, depth + 1);
|
|
180
|
+
}
|
|
181
|
+
result[key] = sanitizedPatterns;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (key === 'dependencies') {
|
|
186
|
+
if (typeof value === 'object' && value !== null) {
|
|
187
|
+
const sanitizedDeps = {};
|
|
188
|
+
for (const [depName, depValue] of Object.entries(value)) {
|
|
189
|
+
// Schema dependencies need recursion, property dependencies (arrays) pass through
|
|
190
|
+
if (typeof depValue === 'object' && depValue !== null && !Array.isArray(depValue)) {
|
|
191
|
+
sanitizedDeps[depName] = sanitizeSchemaRecursive(depValue, `${keyPath}.${depName}`, removedPaths, visited, depth + 1);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
sanitizedDeps[depName] = depValue;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
result[key] = sanitizedDeps;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// Check if this is a valid JSON Schema keyword
|
|
202
|
+
if (isValidSchemaKey(key)) {
|
|
203
|
+
// Recurse for nested objects that might contain schemas
|
|
204
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
205
|
+
result[key] = sanitizeSchemaRecursive(value, keyPath, removedPaths, visited, depth + 1);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
result[key] = value;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
// Non-standard property - remove it
|
|
213
|
+
removedPaths.push(keyPath);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return result;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Sanitize an input_schema object, removing non-standard JSON Schema properties.
|
|
220
|
+
*
|
|
221
|
+
* @param inputSchema The tool's input_schema object
|
|
222
|
+
* @returns Sanitization result with cleaned schema and metadata
|
|
223
|
+
*/
|
|
224
|
+
function sanitizeInputSchema(inputSchema) {
|
|
225
|
+
// Preserve null/undefined as-is (graceful handling of missing schemas)
|
|
226
|
+
if (inputSchema === null || inputSchema === undefined) {
|
|
227
|
+
return {
|
|
228
|
+
schema: inputSchema,
|
|
229
|
+
removedCount: 0,
|
|
230
|
+
removedPaths: [],
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// Non-object types (arrays, primitives) - return empty object
|
|
234
|
+
if (typeof inputSchema !== 'object' || Array.isArray(inputSchema)) {
|
|
235
|
+
return { schema: {}, removedCount: 0, removedPaths: [] };
|
|
236
|
+
}
|
|
237
|
+
const removedPaths = [];
|
|
238
|
+
const sanitized = sanitizeSchemaRecursive(inputSchema, '', removedPaths);
|
|
239
|
+
return {
|
|
240
|
+
schema: sanitized,
|
|
241
|
+
removedCount: removedPaths.length,
|
|
242
|
+
removedPaths,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
exports.sanitizeInputSchema = sanitizeInputSchema;
|
|
246
|
+
/**
|
|
247
|
+
* Sanitize an array of tools, cleaning their input_schema properties.
|
|
248
|
+
*
|
|
249
|
+
* @param tools Array of tool definitions
|
|
250
|
+
* @returns Object with sanitized tools and total removed count
|
|
251
|
+
*/
|
|
252
|
+
function sanitizeToolSchemas(tools) {
|
|
253
|
+
const removedByTool = [];
|
|
254
|
+
let totalRemoved = 0;
|
|
255
|
+
const sanitizedTools = tools.map((tool) => {
|
|
256
|
+
// Guard against non-object elements
|
|
257
|
+
if (typeof tool !== 'object' || tool === null) {
|
|
258
|
+
return tool;
|
|
259
|
+
}
|
|
260
|
+
if (!tool.input_schema || typeof tool.input_schema !== 'object') {
|
|
261
|
+
return tool;
|
|
262
|
+
}
|
|
263
|
+
const result = sanitizeInputSchema(tool.input_schema);
|
|
264
|
+
if (result.removedCount > 0) {
|
|
265
|
+
removedByTool.push({
|
|
266
|
+
name: tool.name,
|
|
267
|
+
removed: result.removedPaths,
|
|
268
|
+
});
|
|
269
|
+
totalRemoved += result.removedCount;
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
...tool,
|
|
273
|
+
input_schema: result.schema,
|
|
274
|
+
};
|
|
275
|
+
});
|
|
276
|
+
return {
|
|
277
|
+
tools: sanitizedTools,
|
|
278
|
+
totalRemoved,
|
|
279
|
+
removedByTool,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
exports.sanitizeToolSchemas = sanitizeToolSchemas;
|
|
283
|
+
//# sourceMappingURL=schema-sanitizer.js.map
|