@kaitranntt/ccs 6.5.0 → 6.6.0-dev.3
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 -4
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/binary-manager.d.ts +16 -2
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +39 -15
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +208 -118
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config-generator.d.ts +21 -1
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +60 -9
- 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/service-manager.d.ts.map +1 -1
- package/dist/cliproxy/service-manager.js +4 -0
- package/dist/cliproxy/service-manager.js.map +1 -1
- package/dist/cliproxy/stats-fetcher.d.ts +24 -0
- package/dist/cliproxy/stats-fetcher.d.ts.map +1 -1
- package/dist/cliproxy/stats-fetcher.js +56 -1
- package/dist/cliproxy/stats-fetcher.js.map +1 -1
- package/dist/cliproxy/types.d.ts +24 -0
- package/dist/cliproxy/types.d.ts.map +1 -1
- package/dist/commands/cleanup-command.d.ts +1 -0
- package/dist/commands/cleanup-command.d.ts.map +1 -1
- package/dist/commands/cleanup-command.js +158 -10
- package/dist/commands/cleanup-command.js.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/commands/update-command.d.ts +1 -1
- package/dist/commands/update-command.d.ts.map +1 -1
- package/dist/commands/update-command.js +24 -132
- package/dist/commands/update-command.js.map +1 -1
- package/dist/config/unified-config-loader.d.ts +6 -1
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +58 -1
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +74 -2
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +38 -2
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/copilot/copilot-executor.d.ts.map +1 -1
- package/dist/copilot/copilot-executor.js +6 -1
- package/dist/copilot/copilot-executor.js.map +1 -1
- package/dist/ui/assets/accounts-DNYYJ7ul.js +1 -0
- package/dist/ui/assets/analytics-Dhp2ikxe.js +1 -0
- package/dist/ui/assets/api-CZf-jQ-_.js +1 -0
- package/dist/ui/assets/{card-CR0u1y_L.js → card--rU2tDlq.js} +1 -1
- package/dist/ui/assets/{charts-D_0N6JY8.js → charts-B9Jh-s-X.js} +1 -1
- package/dist/ui/assets/cliproxy-DZ_5oEVY.js +1 -0
- package/dist/ui/assets/{cliproxy-control-panel-DIIw97Bs.js → cliproxy-control-panel-DKMAi4_4.js} +1 -1
- package/dist/ui/assets/{code-editor-CVohe7u9.js → code-editor-CYOD5x0C.js} +1 -1
- package/dist/ui/assets/{code-highlight-C2TXE0-z.js → code-highlight-BoHWVYut.js} +1 -1
- package/dist/ui/assets/copilot-Dd0yazW6.js +4 -0
- package/dist/ui/assets/{form-utils-BXvNPyud.js → form-utils-BuXDJb0w.js} +1 -1
- package/dist/ui/assets/{health-Dh8bSHe-.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-Ced9Xuhx.js +48 -0
- package/dist/ui/assets/{notifications-cqk-Qeo2.js → notifications-B2Pz7lik.js} +1 -1
- package/dist/ui/assets/{radix-ui-VbLlN_Dz.js → radix-ui-DFHQr9A5.js} +1 -1
- package/dist/ui/assets/react-vendor-FspHSO0w.js +3 -0
- package/dist/ui/assets/settings-COL3veEu.js +1 -0
- package/dist/ui/assets/{shared-DQlPCpix.js → shared-BG9bijB0.js} +1 -1
- package/dist/ui/assets/{switch-pOvJh4Ez.js → switch-fBCFt0Fe.js} +1 -1
- package/dist/ui/assets/{tanstack-yybD444-.js → tanstack-C4gT2P7V.js} +1 -1
- package/dist/ui/index.html +9 -9
- package/dist/utils/package-manager-detector.d.ts +1 -4
- package/dist/utils/package-manager-detector.d.ts.map +1 -1
- package/dist/utils/package-manager-detector.js +2 -61
- package/dist/utils/package-manager-detector.js.map +1 -1
- 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/dist/web-server/routes.d.ts.map +1 -1
- package/dist/web-server/routes.js +141 -2
- package/dist/web-server/routes.js.map +1 -1
- package/package.json +6 -3
- package/scripts/send-discord-release.cjs +214 -0
- package/scripts/worker.js +18 -38
- package/VERSION +0 -1
- package/dist/ui/assets/accounts-OHf-47mH.js +0 -1
- package/dist/ui/assets/analytics-C4uOxyuU.js +0 -1
- package/dist/ui/assets/api-B_mbwU9C.js +0 -1
- package/dist/ui/assets/cliproxy-tXwMpEJd.js +0 -1
- package/dist/ui/assets/copilot-C-eWI9Ce.js +0 -4
- package/dist/ui/assets/icons-WTNLz24z.js +0 -1
- package/dist/ui/assets/index-BXPLu3zJ.js +0 -44
- package/dist/ui/assets/index-D2qNwUdc.css +0 -1
- package/dist/ui/assets/react-vendor-DMek_JCF.js +0 -3
- package/dist/ui/assets/settings-Bi8Aw4yN.js +0 -1
- package/scripts/sync-version-plugin.cjs +0 -41
- package/scripts/sync-version.js +0 -15
|
@@ -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.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");
|
|
@@ -45,6 +45,15 @@ exports.CLIPROXY_DEFAULT_PORT = 8317;
|
|
|
45
45
|
exports.CCS_INTERNAL_API_KEY = 'ccs-internal-managed';
|
|
46
46
|
/** Simple secret key for Control Panel login (user-facing) */
|
|
47
47
|
exports.CCS_CONTROL_PANEL_SECRET = 'ccs';
|
|
48
|
+
/**
|
|
49
|
+
* Get CLIProxy writable directory for logs and runtime files.
|
|
50
|
+
* This directory is set as WRITABLE_PATH env var when spawning CLIProxy.
|
|
51
|
+
* Logs will be stored in ~/.ccs/cliproxy/logs/
|
|
52
|
+
*/
|
|
53
|
+
function getCliproxyWritablePath() {
|
|
54
|
+
return path.join((0, config_manager_1.getCcsDir)(), 'cliproxy');
|
|
55
|
+
}
|
|
56
|
+
exports.getCliproxyWritablePath = getCliproxyWritablePath;
|
|
48
57
|
/**
|
|
49
58
|
* Config version - bump when config format changes to trigger regeneration
|
|
50
59
|
* v1: Initial config (port, auth-dir, api-keys only)
|
|
@@ -351,6 +360,17 @@ function getClaudeEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT) {
|
|
|
351
360
|
};
|
|
352
361
|
}
|
|
353
362
|
exports.getClaudeEnvVars = getClaudeEnvVars;
|
|
363
|
+
/**
|
|
364
|
+
* Get global env vars to inject into all third-party profiles.
|
|
365
|
+
* Returns empty object if disabled.
|
|
366
|
+
*/
|
|
367
|
+
function getGlobalEnvVars() {
|
|
368
|
+
const globalEnvConfig = (0, unified_config_loader_1.getGlobalEnvConfig)();
|
|
369
|
+
if (!globalEnvConfig.enabled) {
|
|
370
|
+
return {};
|
|
371
|
+
}
|
|
372
|
+
return globalEnvConfig.env;
|
|
373
|
+
}
|
|
354
374
|
/**
|
|
355
375
|
* Get effective environment variables for provider
|
|
356
376
|
*
|
|
@@ -359,10 +379,12 @@ exports.getClaudeEnvVars = getClaudeEnvVars;
|
|
|
359
379
|
* 2. User settings file (~/.ccs/{provider}.settings.json) if exists
|
|
360
380
|
* 3. Bundled defaults from PROVIDER_CONFIGS
|
|
361
381
|
*
|
|
362
|
-
*
|
|
382
|
+
* All results are merged with global_env vars (telemetry/reporting disables).
|
|
363
383
|
* User takes full responsibility for custom settings.
|
|
364
384
|
*/
|
|
365
385
|
function getEffectiveEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT, customSettingsPath) {
|
|
386
|
+
// Get global env vars (DISABLE_TELEMETRY, etc.)
|
|
387
|
+
const globalEnv = getGlobalEnvVars();
|
|
366
388
|
// Priority 1: Custom settings path (for user-defined variants)
|
|
367
389
|
if (customSettingsPath) {
|
|
368
390
|
const expandedPath = customSettingsPath.replace(/^~/, require('os').homedir());
|
|
@@ -371,8 +393,8 @@ function getEffectiveEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT, cus
|
|
|
371
393
|
const content = fs.readFileSync(expandedPath, 'utf-8');
|
|
372
394
|
const settings = JSON.parse(content);
|
|
373
395
|
if (settings.env && typeof settings.env === 'object') {
|
|
374
|
-
// Custom variant settings found -
|
|
375
|
-
return settings.env;
|
|
396
|
+
// Custom variant settings found - merge with global env
|
|
397
|
+
return { ...globalEnv, ...settings.env };
|
|
376
398
|
}
|
|
377
399
|
}
|
|
378
400
|
catch {
|
|
@@ -392,9 +414,8 @@ function getEffectiveEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT, cus
|
|
|
392
414
|
const content = fs.readFileSync(settingsPath, 'utf-8');
|
|
393
415
|
const settings = JSON.parse(content);
|
|
394
416
|
if (settings.env && typeof settings.env === 'object') {
|
|
395
|
-
// User override found -
|
|
396
|
-
|
|
397
|
-
return settings.env;
|
|
417
|
+
// User override found - merge with global env
|
|
418
|
+
return { ...globalEnv, ...settings.env };
|
|
398
419
|
}
|
|
399
420
|
}
|
|
400
421
|
catch {
|
|
@@ -402,8 +423,8 @@ function getEffectiveEnvVars(provider, port = exports.CLIPROXY_DEFAULT_PORT, cus
|
|
|
402
423
|
// Silent fallback: don't spam errors for broken user files
|
|
403
424
|
}
|
|
404
425
|
}
|
|
405
|
-
// No override or invalid - use bundled defaults
|
|
406
|
-
return getClaudeEnvVars(provider, port);
|
|
426
|
+
// No override or invalid - use bundled defaults merged with global env
|
|
427
|
+
return { ...globalEnv, ...getClaudeEnvVars(provider, port) };
|
|
407
428
|
}
|
|
408
429
|
exports.getEffectiveEnvVars = getEffectiveEnvVars;
|
|
409
430
|
/**
|
|
@@ -427,4 +448,34 @@ function ensureProviderSettings(provider) {
|
|
|
427
448
|
});
|
|
428
449
|
}
|
|
429
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;
|
|
430
481
|
//# sourceMappingURL=config-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-generator.js","sourceRoot":"","sources":["../../src/cliproxy/config-generator.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,4DAAoD;AACpD,oCAAmC;AAEnC,6DAAuF;AACvF,
|
|
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"}
|