@kaitranntt/ccs 6.6.0-dev.2 → 6.6.0-dev.4
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/README.md +1 -0
- package/dist/ccs.js +7 -0
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +208 -122
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config-generator.d.ts +14 -0
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +31 -1
- package/dist/cliproxy/config-generator.js.map +1 -1
- package/dist/cliproxy/proxy-config-resolver.d.ts +79 -0
- package/dist/cliproxy/proxy-config-resolver.d.ts.map +1 -0
- package/dist/cliproxy/proxy-config-resolver.js +208 -0
- package/dist/cliproxy/proxy-config-resolver.js.map +1 -0
- package/dist/cliproxy/remote-proxy-client.d.ts +51 -0
- package/dist/cliproxy/remote-proxy-client.d.ts.map +1 -0
- package/dist/cliproxy/remote-proxy-client.js +198 -0
- package/dist/cliproxy/remote-proxy-client.js.map +1 -0
- package/dist/cliproxy/types.d.ts +24 -0
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +17 -0
- package/dist/commands/help-command.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +23 -0
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +56 -2
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +25 -2
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/ui/assets/{accounts-C1DiBVWf.js → accounts-DNYYJ7ul.js} +1 -1
- package/dist/ui/assets/{analytics-34-9qi4o.js → analytics-Dhp2ikxe.js} +1 -1
- package/dist/ui/assets/{api-Lcsxd42l.js → api-CZf-jQ-_.js} +1 -1
- package/dist/ui/assets/{card-tk5ihPK8.js → card--rU2tDlq.js} +1 -1
- package/dist/ui/assets/{cliproxy-lpz8UdFt.js → cliproxy-DZ_5oEVY.js} +1 -1
- package/dist/ui/assets/{cliproxy-control-panel-BzhsXWKa.js → cliproxy-control-panel-DKMAi4_4.js} +1 -1
- package/dist/ui/assets/{code-editor-rSl_-6ob.js → code-editor-CYOD5x0C.js} +1 -1
- package/dist/ui/assets/{copilot-Djc29_O8.js → copilot-Dd0yazW6.js} +2 -2
- package/dist/ui/assets/{health-ByL12ZVZ.js → health-CyZQOQg7.js} +1 -1
- package/dist/ui/assets/icons-BOsxPbiD.js +1 -0
- package/dist/ui/assets/index-Brq6EBKZ.css +1 -0
- package/dist/ui/assets/{index-c9idYjfn.js → index-Ced9Xuhx.js} +11 -11
- package/dist/ui/assets/settings-COL3veEu.js +1 -0
- package/dist/ui/assets/{shared-CojMqcSc.js → shared-BG9bijB0.js} +1 -1
- package/dist/ui/assets/{switch-BQbPcCIQ.js → switch-fBCFt0Fe.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/web-server/index.d.ts.map +1 -1
- package/dist/web-server/index.js +3 -0
- package/dist/web-server/index.js.map +1 -1
- package/dist/web-server/routes/proxy-routes.d.ts +11 -0
- package/dist/web-server/routes/proxy-routes.d.ts.map +1 -0
- package/dist/web-server/routes/proxy-routes.js +88 -0
- package/dist/web-server/routes/proxy-routes.js.map +1 -0
- package/package.json +1 -1
- package/dist/ui/assets/icons-U_6eBV_J.js +0 -1
- package/dist/ui/assets/index-CeV2P3Sp.css +0 -1
- package/dist/ui/assets/settings-BzHi9yIP.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-generator.d.ts","sourceRoot":"","sources":["../../src/cliproxy/config-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;AAMH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AASjF,4BAA4B;AAC5B,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,gDAAgD;AAChD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAWzC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,cAAc,CAe5E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CAEhF;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAItE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAsGD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAA8B,GACnC,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,MAA8B,GAAG,MAAM,CA4B7E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAoBjD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAA8B,GACnC,MAAM,CAAC,UAAU,CAiCnB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAA8B,EACpC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAAC,UAAU,CA8CnB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAmBvE"}
|
|
1
|
+
{"version":3,"file":"config-generator.d.ts","sourceRoot":"","sources":["../../src/cliproxy/config-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;;AAMH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AASjF,4BAA4B;AAC5B,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,gDAAgD;AAChD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAWzC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,cAAc,CAe5E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CAEhF;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAItE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAsGD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAA8B,GACnC,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,MAA8B,GAAG,MAAM,CA4B7E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAoBjD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAA8B,GACnC,MAAM,CAAC,UAAU,CAiCnB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,GAAE,MAA8B,EACpC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAAC,UAAU,CA8CnB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAmBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3F,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiCxB"}
|
|
@@ -32,7 +32,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.ensureProviderSettings = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.getProviderSettingsPath = exports.deleteConfig = exports.configExists = exports.configNeedsRegeneration = exports.regenerateConfig = exports.generateConfig = exports.getBinDir = exports.getConfigPath = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.CLIPROXY_CONFIG_VERSION = exports.getCliproxyWritablePath = exports.CCS_CONTROL_PANEL_SECRET = exports.CCS_INTERNAL_API_KEY = exports.CLIPROXY_DEFAULT_PORT = void 0;
|
|
35
|
+
exports.getRemoteEnvVars = exports.ensureProviderSettings = exports.getEffectiveEnvVars = exports.getClaudeEnvVars = exports.getProviderSettingsPath = exports.deleteConfig = exports.configExists = exports.configNeedsRegeneration = exports.regenerateConfig = exports.generateConfig = exports.getBinDir = exports.getConfigPath = exports.getAuthDir = exports.getProviderAuthDir = exports.getCliproxyDir = exports.getModelMapping = exports.getProviderConfig = exports.CLIPROXY_CONFIG_VERSION = exports.getCliproxyWritablePath = exports.CCS_CONTROL_PANEL_SECRET = exports.CCS_INTERNAL_API_KEY = exports.CLIPROXY_DEFAULT_PORT = void 0;
|
|
36
36
|
const fs = __importStar(require("fs"));
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const config_manager_1 = require("../utils/config-manager");
|
|
@@ -448,4 +448,34 @@ function ensureProviderSettings(provider) {
|
|
|
448
448
|
});
|
|
449
449
|
}
|
|
450
450
|
exports.ensureProviderSettings = ensureProviderSettings;
|
|
451
|
+
/**
|
|
452
|
+
* Get environment variables for remote proxy mode.
|
|
453
|
+
* Uses the remote proxy's provider endpoint as the base URL.
|
|
454
|
+
*
|
|
455
|
+
* @param provider CLIProxy provider (gemini, codex, agy, qwen, iflow)
|
|
456
|
+
* @param remoteConfig Remote proxy connection details
|
|
457
|
+
* @returns Environment variables for Claude CLI
|
|
458
|
+
*/
|
|
459
|
+
function getRemoteEnvVars(provider, remoteConfig) {
|
|
460
|
+
const baseUrl = `${remoteConfig.protocol}://${remoteConfig.host}:${remoteConfig.port}/api/provider/${provider}`;
|
|
461
|
+
const models = getModelMapping(provider);
|
|
462
|
+
// Get global env vars (DISABLE_TELEMETRY, etc.)
|
|
463
|
+
const globalEnv = getGlobalEnvVars();
|
|
464
|
+
// Get additional env vars from base config (ANTHROPIC_MAX_TOKENS, etc.)
|
|
465
|
+
const baseEnvVars = (0, base_config_loader_1.getEnvVarsFromConfig)(provider);
|
|
466
|
+
// Filter out core env vars from base config to avoid conflicts
|
|
467
|
+
const { ANTHROPIC_BASE_URL: _baseUrl, ANTHROPIC_AUTH_TOKEN: _authToken, ANTHROPIC_MODEL: _model, ANTHROPIC_DEFAULT_OPUS_MODEL: _opusModel, ANTHROPIC_DEFAULT_SONNET_MODEL: _sonnetModel, ANTHROPIC_DEFAULT_HAIKU_MODEL: _haikuModel, ...additionalEnvVars } = baseEnvVars;
|
|
468
|
+
const env = {
|
|
469
|
+
...globalEnv,
|
|
470
|
+
...additionalEnvVars,
|
|
471
|
+
ANTHROPIC_BASE_URL: baseUrl,
|
|
472
|
+
ANTHROPIC_AUTH_TOKEN: remoteConfig.authToken || exports.CCS_INTERNAL_API_KEY,
|
|
473
|
+
ANTHROPIC_MODEL: models.claudeModel,
|
|
474
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: models.opusModel || models.claudeModel,
|
|
475
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: models.sonnetModel || models.claudeModel,
|
|
476
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: models.haikuModel || models.claudeModel,
|
|
477
|
+
};
|
|
478
|
+
return env;
|
|
479
|
+
}
|
|
480
|
+
exports.getRemoteEnvVars = getRemoteEnvVars;
|
|
451
481
|
//# sourceMappingURL=config-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-generator.js","sourceRoot":"","sources":["../../src/cliproxy/config-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-generator.js","sourceRoot":"","sources":["../../src/cliproxy/config-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proxy Config Resolver
|
|
3
|
+
*
|
|
4
|
+
* Resolves proxy configuration from multiple sources with priority:
|
|
5
|
+
* CLI flags > Environment variables > config.yaml > defaults
|
|
6
|
+
*
|
|
7
|
+
* Supports both local (spawn CLIProxyAPI) and remote (connect to external) modes.
|
|
8
|
+
*/
|
|
9
|
+
import { ResolvedProxyConfig } from './types';
|
|
10
|
+
/** CLI flags for proxy configuration */
|
|
11
|
+
export declare const PROXY_CLI_FLAGS: readonly ["--proxy-host", "--proxy-port", "--proxy-protocol", "--proxy-auth-token", "--local-proxy", "--remote-only"];
|
|
12
|
+
/** Environment variable names for proxy configuration */
|
|
13
|
+
export declare const PROXY_ENV_VARS: {
|
|
14
|
+
readonly host: "CCS_PROXY_HOST";
|
|
15
|
+
readonly port: "CCS_PROXY_PORT";
|
|
16
|
+
readonly protocol: "CCS_PROXY_PROTOCOL";
|
|
17
|
+
readonly authToken: "CCS_PROXY_AUTH_TOKEN";
|
|
18
|
+
readonly fallbackEnabled: "CCS_PROXY_FALLBACK_ENABLED";
|
|
19
|
+
};
|
|
20
|
+
/** Parsed CLI proxy flags */
|
|
21
|
+
interface ParsedProxyFlags {
|
|
22
|
+
host?: string;
|
|
23
|
+
port?: number;
|
|
24
|
+
protocol?: 'http' | 'https';
|
|
25
|
+
authToken?: string;
|
|
26
|
+
localProxy: boolean;
|
|
27
|
+
remoteOnly: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** Proxy config from environment variables */
|
|
30
|
+
interface EnvProxyConfig {
|
|
31
|
+
host?: string;
|
|
32
|
+
port?: number;
|
|
33
|
+
protocol?: 'http' | 'https';
|
|
34
|
+
authToken?: string;
|
|
35
|
+
fallbackEnabled?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse proxy-related CLI flags from argv.
|
|
39
|
+
* Returns parsed flags and remaining args (with proxy flags removed).
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseProxyFlags(args: string[]): {
|
|
42
|
+
flags: ParsedProxyFlags;
|
|
43
|
+
remainingArgs: string[];
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Get proxy configuration from environment variables.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getProxyEnvVars(): EnvProxyConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Resolve proxy configuration with priority: CLI > ENV > config.yaml > defaults.
|
|
51
|
+
*
|
|
52
|
+
* @param cliArgs - Raw CLI arguments
|
|
53
|
+
* @param configYamlProxy - Proxy section from config.yaml (optional, Phase 1)
|
|
54
|
+
* @returns Resolved configuration and remaining args (without proxy flags)
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveProxyConfig(cliArgs: string[], _configYamlProxy?: {
|
|
57
|
+
remote?: {
|
|
58
|
+
enabled?: boolean;
|
|
59
|
+
host?: string;
|
|
60
|
+
port?: number;
|
|
61
|
+
protocol?: 'http' | 'https';
|
|
62
|
+
auth_token?: string;
|
|
63
|
+
fallback_enabled?: boolean;
|
|
64
|
+
};
|
|
65
|
+
local?: {
|
|
66
|
+
port?: number;
|
|
67
|
+
auto_start?: boolean;
|
|
68
|
+
};
|
|
69
|
+
}): {
|
|
70
|
+
config: ResolvedProxyConfig;
|
|
71
|
+
remainingArgs: string[];
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Check if args contain any proxy flags.
|
|
75
|
+
* Used for quick filtering before full parse.
|
|
76
|
+
*/
|
|
77
|
+
export declare function hasProxyFlags(args: string[]): boolean;
|
|
78
|
+
export {};
|
|
79
|
+
//# sourceMappingURL=proxy-config-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-config-resolver.d.ts","sourceRoot":"","sources":["../../src/cliproxy/proxy-config-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG9C,wCAAwC;AACxC,eAAO,MAAM,eAAe,uHAOlB,CAAC;AAEX,yDAAyD;AACzD,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAEX,6BAA6B;AAC7B,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,8CAA8C;AAC9C,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC/C,KAAK,EAAE,gBAAgB,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CA2DA;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,cAAc,CAyChD;AAeD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EAAE,EAEjB,gBAAgB,CAAC,EAAE;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACH,GACA;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CA6D1D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAUrD"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Proxy Config Resolver
|
|
4
|
+
*
|
|
5
|
+
* Resolves proxy configuration from multiple sources with priority:
|
|
6
|
+
* CLI flags > Environment variables > config.yaml > defaults
|
|
7
|
+
*
|
|
8
|
+
* Supports both local (spawn CLIProxyAPI) and remote (connect to external) modes.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.hasProxyFlags = exports.resolveProxyConfig = exports.getProxyEnvVars = exports.parseProxyFlags = exports.PROXY_ENV_VARS = exports.PROXY_CLI_FLAGS = void 0;
|
|
12
|
+
const config_generator_1 = require("./config-generator");
|
|
13
|
+
/** CLI flags for proxy configuration */
|
|
14
|
+
exports.PROXY_CLI_FLAGS = [
|
|
15
|
+
'--proxy-host',
|
|
16
|
+
'--proxy-port',
|
|
17
|
+
'--proxy-protocol',
|
|
18
|
+
'--proxy-auth-token',
|
|
19
|
+
'--local-proxy',
|
|
20
|
+
'--remote-only',
|
|
21
|
+
];
|
|
22
|
+
/** Environment variable names for proxy configuration */
|
|
23
|
+
exports.PROXY_ENV_VARS = {
|
|
24
|
+
host: 'CCS_PROXY_HOST',
|
|
25
|
+
port: 'CCS_PROXY_PORT',
|
|
26
|
+
protocol: 'CCS_PROXY_PROTOCOL',
|
|
27
|
+
authToken: 'CCS_PROXY_AUTH_TOKEN',
|
|
28
|
+
fallbackEnabled: 'CCS_PROXY_FALLBACK_ENABLED',
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Parse proxy-related CLI flags from argv.
|
|
32
|
+
* Returns parsed flags and remaining args (with proxy flags removed).
|
|
33
|
+
*/
|
|
34
|
+
function parseProxyFlags(args) {
|
|
35
|
+
const flags = {
|
|
36
|
+
localProxy: false,
|
|
37
|
+
remoteOnly: false,
|
|
38
|
+
};
|
|
39
|
+
const remainingArgs = [];
|
|
40
|
+
let i = 0;
|
|
41
|
+
while (i < args.length) {
|
|
42
|
+
const arg = args[i];
|
|
43
|
+
if (arg === '--proxy-host' && args[i + 1] && !args[i + 1].startsWith('-')) {
|
|
44
|
+
flags.host = args[i + 1];
|
|
45
|
+
i += 2;
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (arg === '--proxy-port' && args[i + 1] && !args[i + 1].startsWith('-')) {
|
|
49
|
+
const port = parseInt(args[i + 1], 10);
|
|
50
|
+
if (!isNaN(port) && port > 0 && port <= 65535) {
|
|
51
|
+
flags.port = port;
|
|
52
|
+
}
|
|
53
|
+
i += 2;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (arg === '--proxy-protocol' && args[i + 1] && !args[i + 1].startsWith('-')) {
|
|
57
|
+
const proto = args[i + 1].toLowerCase();
|
|
58
|
+
if (proto === 'http' || proto === 'https') {
|
|
59
|
+
flags.protocol = proto;
|
|
60
|
+
}
|
|
61
|
+
i += 2;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (arg === '--proxy-auth-token' && args[i + 1] && !args[i + 1].startsWith('-')) {
|
|
65
|
+
flags.authToken = args[i + 1];
|
|
66
|
+
i += 2;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (arg === '--local-proxy') {
|
|
70
|
+
flags.localProxy = true;
|
|
71
|
+
i += 1;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (arg === '--remote-only') {
|
|
75
|
+
flags.remoteOnly = true;
|
|
76
|
+
i += 1;
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
// Not a proxy flag - keep in remaining args
|
|
80
|
+
remainingArgs.push(arg);
|
|
81
|
+
i += 1;
|
|
82
|
+
}
|
|
83
|
+
return { flags, remainingArgs };
|
|
84
|
+
}
|
|
85
|
+
exports.parseProxyFlags = parseProxyFlags;
|
|
86
|
+
/**
|
|
87
|
+
* Get proxy configuration from environment variables.
|
|
88
|
+
*/
|
|
89
|
+
function getProxyEnvVars() {
|
|
90
|
+
const config = {};
|
|
91
|
+
const host = process.env[exports.PROXY_ENV_VARS.host];
|
|
92
|
+
if (host) {
|
|
93
|
+
config.host = host;
|
|
94
|
+
}
|
|
95
|
+
const port = process.env[exports.PROXY_ENV_VARS.port];
|
|
96
|
+
if (port) {
|
|
97
|
+
const portNum = parseInt(port, 10);
|
|
98
|
+
if (!isNaN(portNum) && portNum > 0 && portNum <= 65535) {
|
|
99
|
+
config.port = portNum;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const protocol = process.env[exports.PROXY_ENV_VARS.protocol];
|
|
103
|
+
if (protocol) {
|
|
104
|
+
const proto = protocol.toLowerCase();
|
|
105
|
+
if (proto === 'http' || proto === 'https') {
|
|
106
|
+
config.protocol = proto;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const authToken = process.env[exports.PROXY_ENV_VARS.authToken];
|
|
110
|
+
if (authToken) {
|
|
111
|
+
config.authToken = authToken;
|
|
112
|
+
}
|
|
113
|
+
const fallback = process.env[exports.PROXY_ENV_VARS.fallbackEnabled];
|
|
114
|
+
if (fallback !== undefined) {
|
|
115
|
+
// Accept: '1', 'true', 'yes' as enabled; '0', 'false', 'no' as disabled
|
|
116
|
+
const lower = fallback.toLowerCase();
|
|
117
|
+
if (lower === '1' || lower === 'true' || lower === 'yes') {
|
|
118
|
+
config.fallbackEnabled = true;
|
|
119
|
+
}
|
|
120
|
+
else if (lower === '0' || lower === 'false' || lower === 'no') {
|
|
121
|
+
config.fallbackEnabled = false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return config;
|
|
125
|
+
}
|
|
126
|
+
exports.getProxyEnvVars = getProxyEnvVars;
|
|
127
|
+
/**
|
|
128
|
+
* Default proxy configuration values.
|
|
129
|
+
*/
|
|
130
|
+
const DEFAULT_PROXY_CONFIG = {
|
|
131
|
+
mode: 'local',
|
|
132
|
+
port: config_generator_1.CLIPROXY_DEFAULT_PORT,
|
|
133
|
+
protocol: 'http',
|
|
134
|
+
fallbackEnabled: true,
|
|
135
|
+
autoStartLocal: true,
|
|
136
|
+
remoteOnly: false,
|
|
137
|
+
forceLocal: false,
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Resolve proxy configuration with priority: CLI > ENV > config.yaml > defaults.
|
|
141
|
+
*
|
|
142
|
+
* @param cliArgs - Raw CLI arguments
|
|
143
|
+
* @param configYamlProxy - Proxy section from config.yaml (optional, Phase 1)
|
|
144
|
+
* @returns Resolved configuration and remaining args (without proxy flags)
|
|
145
|
+
*/
|
|
146
|
+
function resolveProxyConfig(cliArgs, _configYamlProxy) {
|
|
147
|
+
// 1. Parse CLI flags (highest priority)
|
|
148
|
+
const { flags: cliFlags, remainingArgs } = parseProxyFlags(cliArgs);
|
|
149
|
+
// 2. Get environment variables
|
|
150
|
+
const envConfig = getProxyEnvVars();
|
|
151
|
+
// 3. config.yaml proxy section (passed as parameter - Phase 1 provides this)
|
|
152
|
+
// For now, we use empty object if not provided; Phase 1 integrates unified config loading
|
|
153
|
+
const yamlConfig = _configYamlProxy || {};
|
|
154
|
+
// 4. Build resolved config with priority merge
|
|
155
|
+
const resolved = {
|
|
156
|
+
...DEFAULT_PROXY_CONFIG,
|
|
157
|
+
};
|
|
158
|
+
// Determine mode: remote if host is specified anywhere (unless --local-proxy)
|
|
159
|
+
const hasRemoteHost = cliFlags.host || envConfig.host || yamlConfig.remote?.host || yamlConfig.remote?.enabled;
|
|
160
|
+
// --local-proxy forces local mode regardless of remote config
|
|
161
|
+
if (cliFlags.localProxy) {
|
|
162
|
+
resolved.mode = 'local';
|
|
163
|
+
resolved.forceLocal = true;
|
|
164
|
+
}
|
|
165
|
+
else if (hasRemoteHost) {
|
|
166
|
+
resolved.mode = 'remote';
|
|
167
|
+
}
|
|
168
|
+
// Merge host: CLI > ENV > config.yaml
|
|
169
|
+
resolved.host = cliFlags.host ?? envConfig.host ?? yamlConfig.remote?.host;
|
|
170
|
+
// Merge port: CLI > ENV > config.yaml (remote or local) > default
|
|
171
|
+
resolved.port =
|
|
172
|
+
cliFlags.port ??
|
|
173
|
+
envConfig.port ??
|
|
174
|
+
(resolved.mode === 'remote' ? yamlConfig.remote?.port : yamlConfig.local?.port) ??
|
|
175
|
+
DEFAULT_PROXY_CONFIG.port;
|
|
176
|
+
// Merge protocol: CLI > ENV > config.yaml > default
|
|
177
|
+
resolved.protocol =
|
|
178
|
+
cliFlags.protocol ?? envConfig.protocol ?? yamlConfig.remote?.protocol ?? 'http';
|
|
179
|
+
// Merge auth token: CLI > ENV > config.yaml
|
|
180
|
+
resolved.authToken = cliFlags.authToken ?? envConfig.authToken ?? yamlConfig.remote?.auth_token;
|
|
181
|
+
// Merge fallback enabled: ENV > config.yaml > default
|
|
182
|
+
resolved.fallbackEnabled =
|
|
183
|
+
envConfig.fallbackEnabled ?? yamlConfig.remote?.fallback_enabled ?? true;
|
|
184
|
+
// --remote-only from CLI
|
|
185
|
+
resolved.remoteOnly = cliFlags.remoteOnly;
|
|
186
|
+
// If --remote-only, disable fallback
|
|
187
|
+
if (resolved.remoteOnly) {
|
|
188
|
+
resolved.fallbackEnabled = false;
|
|
189
|
+
}
|
|
190
|
+
// Auto-start local from config.yaml > default
|
|
191
|
+
resolved.autoStartLocal = yamlConfig.local?.auto_start ?? true;
|
|
192
|
+
return { config: resolved, remainingArgs };
|
|
193
|
+
}
|
|
194
|
+
exports.resolveProxyConfig = resolveProxyConfig;
|
|
195
|
+
/**
|
|
196
|
+
* Check if args contain any proxy flags.
|
|
197
|
+
* Used for quick filtering before full parse.
|
|
198
|
+
*/
|
|
199
|
+
function hasProxyFlags(args) {
|
|
200
|
+
return args.some((arg) => arg === '--proxy-host' ||
|
|
201
|
+
arg === '--proxy-port' ||
|
|
202
|
+
arg === '--proxy-protocol' ||
|
|
203
|
+
arg === '--proxy-auth-token' ||
|
|
204
|
+
arg === '--local-proxy' ||
|
|
205
|
+
arg === '--remote-only');
|
|
206
|
+
}
|
|
207
|
+
exports.hasProxyFlags = hasProxyFlags;
|
|
208
|
+
//# sourceMappingURL=proxy-config-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-config-resolver.js","sourceRoot":"","sources":["../../src/cliproxy/proxy-config-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remote Proxy Client for CLIProxyAPI
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for health checks and connection testing against remote CLIProxyAPI instances.
|
|
5
|
+
* Uses native fetch API with aggressive timeout for CLI responsiveness.
|
|
6
|
+
*/
|
|
7
|
+
/** Error codes for remote proxy status */
|
|
8
|
+
export type RemoteProxyErrorCode = 'CONNECTION_REFUSED' | 'TIMEOUT' | 'AUTH_FAILED' | 'UNKNOWN';
|
|
9
|
+
/** Status returned from remote proxy health check */
|
|
10
|
+
export interface RemoteProxyStatus {
|
|
11
|
+
/** Whether the remote proxy is reachable */
|
|
12
|
+
reachable: boolean;
|
|
13
|
+
/** Latency in milliseconds (only set if reachable) */
|
|
14
|
+
latencyMs?: number;
|
|
15
|
+
/** Error message (only set if not reachable) */
|
|
16
|
+
error?: string;
|
|
17
|
+
/** Error code for programmatic handling */
|
|
18
|
+
errorCode?: RemoteProxyErrorCode;
|
|
19
|
+
}
|
|
20
|
+
/** Configuration for remote proxy client */
|
|
21
|
+
export interface RemoteProxyClientConfig {
|
|
22
|
+
/** Remote proxy host (IP or hostname) */
|
|
23
|
+
host: string;
|
|
24
|
+
/** Remote proxy port */
|
|
25
|
+
port: number;
|
|
26
|
+
/** Protocol to use (http or https) */
|
|
27
|
+
protocol: 'http' | 'https';
|
|
28
|
+
/** Optional auth token for Authorization header */
|
|
29
|
+
authToken?: string;
|
|
30
|
+
/** Request timeout in ms (default: 2000) */
|
|
31
|
+
timeout?: number;
|
|
32
|
+
/** Allow self-signed certificates (default: false) */
|
|
33
|
+
allowSelfSigned?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check health of remote CLIProxyAPI instance
|
|
37
|
+
*
|
|
38
|
+
* @param config Remote proxy client configuration
|
|
39
|
+
* @returns RemoteProxyStatus with reachability and latency
|
|
40
|
+
*/
|
|
41
|
+
export declare function checkRemoteProxy(config: RemoteProxyClientConfig): Promise<RemoteProxyStatus>;
|
|
42
|
+
/**
|
|
43
|
+
* Test connection to remote CLIProxyAPI (alias for dashboard use)
|
|
44
|
+
*
|
|
45
|
+
* This is an alias for checkRemoteProxy() for semantic clarity in UI contexts.
|
|
46
|
+
*
|
|
47
|
+
* @param config Remote proxy client configuration
|
|
48
|
+
* @returns RemoteProxyStatus with reachability and latency
|
|
49
|
+
*/
|
|
50
|
+
export declare function testConnection(config: RemoteProxyClientConfig): Promise<RemoteProxyStatus>;
|
|
51
|
+
//# sourceMappingURL=remote-proxy-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-proxy-client.d.ts","sourceRoot":"","sources":["../../src/cliproxy/remote-proxy-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,0CAA0C;AAC1C,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;AAEhG,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA8DD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAmH5B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEhG"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Remote Proxy Client for CLIProxyAPI
|
|
4
|
+
*
|
|
5
|
+
* HTTP client for health checks and connection testing against remote CLIProxyAPI instances.
|
|
6
|
+
* Uses native fetch API with aggressive timeout for CLI responsiveness.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.testConnection = exports.checkRemoteProxy = void 0;
|
|
33
|
+
const https = __importStar(require("https"));
|
|
34
|
+
/** Default timeout for remote proxy requests (aggressive for CLI UX) */
|
|
35
|
+
const DEFAULT_TIMEOUT_MS = 2000;
|
|
36
|
+
/**
|
|
37
|
+
* Map error to RemoteProxyErrorCode
|
|
38
|
+
*/
|
|
39
|
+
function mapErrorToCode(error, statusCode) {
|
|
40
|
+
const message = error.message.toLowerCase();
|
|
41
|
+
const code = error.code?.toLowerCase();
|
|
42
|
+
// Connection refused
|
|
43
|
+
if (code === 'econnrefused' || message.includes('connection refused')) {
|
|
44
|
+
return 'CONNECTION_REFUSED';
|
|
45
|
+
}
|
|
46
|
+
// Timeout
|
|
47
|
+
if (code === 'etimedout' ||
|
|
48
|
+
code === 'timeout' ||
|
|
49
|
+
message.includes('timeout') ||
|
|
50
|
+
message.includes('aborted')) {
|
|
51
|
+
return 'TIMEOUT';
|
|
52
|
+
}
|
|
53
|
+
// Auth failed (401/403)
|
|
54
|
+
if (statusCode === 401 || statusCode === 403) {
|
|
55
|
+
return 'AUTH_FAILED';
|
|
56
|
+
}
|
|
57
|
+
return 'UNKNOWN';
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get human-readable error message from error code
|
|
61
|
+
*/
|
|
62
|
+
function getErrorMessage(errorCode, rawError) {
|
|
63
|
+
switch (errorCode) {
|
|
64
|
+
case 'CONNECTION_REFUSED':
|
|
65
|
+
return 'Connection refused - is the proxy running?';
|
|
66
|
+
case 'TIMEOUT':
|
|
67
|
+
return 'Connection timed out';
|
|
68
|
+
case 'AUTH_FAILED':
|
|
69
|
+
return 'Authentication failed - check auth token';
|
|
70
|
+
default:
|
|
71
|
+
return rawError || 'Unknown error';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a custom HTTPS agent for self-signed certificate support
|
|
76
|
+
*/
|
|
77
|
+
function createHttpsAgent(allowSelfSigned) {
|
|
78
|
+
if (!allowSelfSigned)
|
|
79
|
+
return undefined;
|
|
80
|
+
return new https.Agent({
|
|
81
|
+
rejectUnauthorized: false,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check health of remote CLIProxyAPI instance
|
|
86
|
+
*
|
|
87
|
+
* @param config Remote proxy client configuration
|
|
88
|
+
* @returns RemoteProxyStatus with reachability and latency
|
|
89
|
+
*/
|
|
90
|
+
async function checkRemoteProxy(config) {
|
|
91
|
+
const { host, port, protocol, authToken, allowSelfSigned = false } = config;
|
|
92
|
+
const timeout = config.timeout ?? DEFAULT_TIMEOUT_MS;
|
|
93
|
+
const url = `${protocol}://${host}:${port}/health`;
|
|
94
|
+
const startTime = Date.now();
|
|
95
|
+
try {
|
|
96
|
+
const controller = new AbortController();
|
|
97
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
98
|
+
// Build request options
|
|
99
|
+
const headers = {
|
|
100
|
+
Accept: 'application/json',
|
|
101
|
+
};
|
|
102
|
+
if (authToken) {
|
|
103
|
+
headers['Authorization'] = `Bearer ${authToken}`;
|
|
104
|
+
}
|
|
105
|
+
// For HTTPS with self-signed certs, we need to use native https module
|
|
106
|
+
// Bun's fetch doesn't support custom agents
|
|
107
|
+
let response;
|
|
108
|
+
if (protocol === 'https' && allowSelfSigned) {
|
|
109
|
+
// Warn about security implications
|
|
110
|
+
console.error('[!] Allowing self-signed certificate - not recommended for production');
|
|
111
|
+
// Use native https module for self-signed cert support
|
|
112
|
+
response = await new Promise((resolve, reject) => {
|
|
113
|
+
const agent = createHttpsAgent(true);
|
|
114
|
+
const reqTimeout = setTimeout(() => {
|
|
115
|
+
reject(new Error('Request timeout'));
|
|
116
|
+
}, timeout);
|
|
117
|
+
const req = https.request(url, {
|
|
118
|
+
method: 'GET',
|
|
119
|
+
headers,
|
|
120
|
+
agent,
|
|
121
|
+
timeout,
|
|
122
|
+
}, (res) => {
|
|
123
|
+
clearTimeout(reqTimeout);
|
|
124
|
+
let data = '';
|
|
125
|
+
res.on('data', (chunk) => (data += chunk));
|
|
126
|
+
res.on('end', () => {
|
|
127
|
+
resolve(new Response(data, {
|
|
128
|
+
status: res.statusCode || 500,
|
|
129
|
+
statusText: res.statusMessage,
|
|
130
|
+
}));
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
req.on('error', (err) => {
|
|
134
|
+
clearTimeout(reqTimeout);
|
|
135
|
+
reject(err);
|
|
136
|
+
});
|
|
137
|
+
req.on('timeout', () => {
|
|
138
|
+
req.destroy();
|
|
139
|
+
reject(new Error('Request timeout'));
|
|
140
|
+
});
|
|
141
|
+
req.end();
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
// Standard fetch for HTTP or HTTPS without self-signed
|
|
146
|
+
response = await fetch(url, {
|
|
147
|
+
signal: controller.signal,
|
|
148
|
+
headers,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
clearTimeout(timeoutId);
|
|
152
|
+
const latencyMs = Date.now() - startTime;
|
|
153
|
+
// Check for auth failure
|
|
154
|
+
if (response.status === 401 || response.status === 403) {
|
|
155
|
+
return {
|
|
156
|
+
reachable: false,
|
|
157
|
+
error: getErrorMessage('AUTH_FAILED'),
|
|
158
|
+
errorCode: 'AUTH_FAILED',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// 200 OK = healthy
|
|
162
|
+
if (response.ok) {
|
|
163
|
+
return {
|
|
164
|
+
reachable: true,
|
|
165
|
+
latencyMs,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// Non-200 but connected
|
|
169
|
+
return {
|
|
170
|
+
reachable: false,
|
|
171
|
+
error: `Unexpected status: ${response.status}`,
|
|
172
|
+
errorCode: 'UNKNOWN',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
const err = error;
|
|
177
|
+
const errorCode = mapErrorToCode(err);
|
|
178
|
+
return {
|
|
179
|
+
reachable: false,
|
|
180
|
+
error: getErrorMessage(errorCode, err.message),
|
|
181
|
+
errorCode,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
exports.checkRemoteProxy = checkRemoteProxy;
|
|
186
|
+
/**
|
|
187
|
+
* Test connection to remote CLIProxyAPI (alias for dashboard use)
|
|
188
|
+
*
|
|
189
|
+
* This is an alias for checkRemoteProxy() for semantic clarity in UI contexts.
|
|
190
|
+
*
|
|
191
|
+
* @param config Remote proxy client configuration
|
|
192
|
+
* @returns RemoteProxyStatus with reachability and latency
|
|
193
|
+
*/
|
|
194
|
+
async function testConnection(config) {
|
|
195
|
+
return checkRemoteProxy(config);
|
|
196
|
+
}
|
|
197
|
+
exports.testConnection = testConnection;
|
|
198
|
+
//# sourceMappingURL=remote-proxy-client.js.map
|