@kaitranntt/ccs 7.37.0-dev.2 → 7.37.0

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.
Files changed (137) hide show
  1. package/dist/cliproxy/account-manager.d.ts +207 -5
  2. package/dist/cliproxy/account-manager.d.ts.map +1 -1
  3. package/dist/cliproxy/account-manager.js +795 -35
  4. package/dist/cliproxy/account-manager.js.map +1 -1
  5. package/dist/cliproxy/auth/token-expiry-checker.d.ts.map +1 -1
  6. package/dist/cliproxy/auth/token-expiry-checker.js +1 -5
  7. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  8. package/dist/cliproxy/cliproxy-executor.d.ts +28 -11
  9. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  10. package/dist/cliproxy/cliproxy-executor.js +1028 -20
  11. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  12. package/dist/cliproxy/config-generator.d.ts +221 -9
  13. package/dist/cliproxy/config-generator.d.ts.map +1 -1
  14. package/dist/cliproxy/config-generator.js +856 -12
  15. package/dist/cliproxy/config-generator.js.map +1 -1
  16. package/dist/commands/cliproxy-command.d.ts +15 -4
  17. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  18. package/dist/commands/cliproxy-command.js +1090 -5
  19. package/dist/commands/cliproxy-command.js.map +1 -1
  20. package/dist/ui/assets/{accounts-D0KU1a-4.js → accounts-DmKrgrCj.js} +1 -1
  21. package/dist/ui/assets/{alert-dialog-BNRDV_Kh.js → alert-dialog-CHcjWgRn.js} +1 -1
  22. package/dist/ui/assets/{api-ClkFu9LY.js → api-BFHZ3RKb.js} +1 -1
  23. package/dist/ui/assets/{auth-section-CNhNN1Jp.js → auth-section-DAI6Q5vU.js} +1 -1
  24. package/dist/ui/assets/{backups-section-CZ721HIu.js → backups-section-B1O8i4FM.js} +1 -1
  25. package/dist/ui/assets/cliproxy-BsSI8qFW.js +3 -0
  26. package/dist/ui/assets/{cliproxy-control-panel-T9i_Ldh0.js → cliproxy-control-panel-3zVE7jZH.js} +1 -1
  27. package/dist/ui/assets/{confirm-dialog-Cy1__gRc.js → confirm-dialog-DV0JzL4A.js} +1 -1
  28. package/dist/ui/assets/{copilot-Cdqs2Jbh.js → copilot-BX8vT5RR.js} +3 -3
  29. package/dist/ui/assets/{globalenv-section-BEKtYN6I.js → globalenv-section-BAft0m9b.js} +1 -1
  30. package/dist/ui/assets/{health-BaHazGgS.js → health-ct5TpFUE.js} +1 -1
  31. package/dist/ui/assets/{index-C2MS84sf.js → index-B8-K01HW.js} +1 -1
  32. package/dist/ui/assets/{index-BTBpI5th.js → index-BOsGipAU.js} +1 -1
  33. package/dist/ui/assets/{index-BZn6kF0u.js → index-CU3zgD6n.js} +1 -1
  34. package/dist/ui/assets/{index-PjscK1jS.js → index-RZ6b7YTz.js} +1 -1
  35. package/dist/ui/assets/{index-CiULLjNI.js → index-gfWiPznS.js} +8 -8
  36. package/dist/ui/assets/{proxy-status-widget-BY6Lnr80.js → proxy-status-widget-Ng9oZdrw.js} +1 -1
  37. package/dist/ui/assets/{shared-dZGNvBe9.js → shared-DpInRmag.js} +1 -1
  38. package/dist/ui/assets/{switch-BCFbehJz.js → switch-DkRSlAu-.js} +1 -1
  39. package/dist/ui/index.html +1 -1
  40. package/package.json +1 -1
  41. package/dist/cliproxy/accounts/bulk-ops.d.ts +0 -22
  42. package/dist/cliproxy/accounts/bulk-ops.d.ts.map +0 -1
  43. package/dist/cliproxy/accounts/bulk-ops.js +0 -88
  44. package/dist/cliproxy/accounts/bulk-ops.js.map +0 -1
  45. package/dist/cliproxy/accounts/index.d.ts +0 -19
  46. package/dist/cliproxy/accounts/index.d.ts.map +0 -1
  47. package/dist/cliproxy/accounts/index.js +0 -54
  48. package/dist/cliproxy/accounts/index.js.map +0 -1
  49. package/dist/cliproxy/accounts/query.d.ts +0 -36
  50. package/dist/cliproxy/accounts/query.d.ts.map +0 -1
  51. package/dist/cliproxy/accounts/query.js +0 -94
  52. package/dist/cliproxy/accounts/query.js.map +0 -1
  53. package/dist/cliproxy/accounts/registry.d.ts +0 -74
  54. package/dist/cliproxy/accounts/registry.d.ts.map +0 -1
  55. package/dist/cliproxy/accounts/registry.js +0 -510
  56. package/dist/cliproxy/accounts/registry.js.map +0 -1
  57. package/dist/cliproxy/accounts/token-file-ops.d.ts +0 -64
  58. package/dist/cliproxy/accounts/token-file-ops.d.ts.map +0 -1
  59. package/dist/cliproxy/accounts/token-file-ops.js +0 -206
  60. package/dist/cliproxy/accounts/token-file-ops.js.map +0 -1
  61. package/dist/cliproxy/accounts/types.d.ts +0 -66
  62. package/dist/cliproxy/accounts/types.d.ts.map +0 -1
  63. package/dist/cliproxy/accounts/types.js +0 -12
  64. package/dist/cliproxy/accounts/types.js.map +0 -1
  65. package/dist/cliproxy/config/env-builder.d.ts +0 -60
  66. package/dist/cliproxy/config/env-builder.d.ts.map +0 -1
  67. package/dist/cliproxy/config/env-builder.js +0 -311
  68. package/dist/cliproxy/config/env-builder.js.map +0 -1
  69. package/dist/cliproxy/config/generator.d.ts +0 -63
  70. package/dist/cliproxy/config/generator.d.ts.map +0 -1
  71. package/dist/cliproxy/config/generator.js +0 -336
  72. package/dist/cliproxy/config/generator.js.map +0 -1
  73. package/dist/cliproxy/config/index.d.ts +0 -10
  74. package/dist/cliproxy/config/index.d.ts.map +0 -1
  75. package/dist/cliproxy/config/index.js +0 -26
  76. package/dist/cliproxy/config/index.js.map +0 -1
  77. package/dist/cliproxy/config/path-resolver.d.ts +0 -47
  78. package/dist/cliproxy/config/path-resolver.d.ts.map +0 -1
  79. package/dist/cliproxy/config/path-resolver.js +0 -104
  80. package/dist/cliproxy/config/path-resolver.js.map +0 -1
  81. package/dist/cliproxy/config/port-manager.d.ts +0 -33
  82. package/dist/cliproxy/config/port-manager.d.ts.map +0 -1
  83. package/dist/cliproxy/config/port-manager.js +0 -68
  84. package/dist/cliproxy/config/port-manager.js.map +0 -1
  85. package/dist/cliproxy/config/thinking-config.d.ts +0 -39
  86. package/dist/cliproxy/config/thinking-config.d.ts.map +0 -1
  87. package/dist/cliproxy/config/thinking-config.js +0 -143
  88. package/dist/cliproxy/config/thinking-config.js.map +0 -1
  89. package/dist/cliproxy/executor/env-resolver.d.ts +0 -45
  90. package/dist/cliproxy/executor/env-resolver.d.ts.map +0 -1
  91. package/dist/cliproxy/executor/env-resolver.js +0 -106
  92. package/dist/cliproxy/executor/env-resolver.js.map +0 -1
  93. package/dist/cliproxy/executor/index.d.ts +0 -24
  94. package/dist/cliproxy/executor/index.d.ts.map +0 -1
  95. package/dist/cliproxy/executor/index.js +0 -669
  96. package/dist/cliproxy/executor/index.js.map +0 -1
  97. package/dist/cliproxy/executor/lifecycle-manager.d.ts +0 -33
  98. package/dist/cliproxy/executor/lifecycle-manager.d.ts.map +0 -1
  99. package/dist/cliproxy/executor/lifecycle-manager.js +0 -161
  100. package/dist/cliproxy/executor/lifecycle-manager.js.map +0 -1
  101. package/dist/cliproxy/executor/retry-handler.d.ts +0 -27
  102. package/dist/cliproxy/executor/retry-handler.d.ts.map +0 -1
  103. package/dist/cliproxy/executor/retry-handler.js +0 -109
  104. package/dist/cliproxy/executor/retry-handler.js.map +0 -1
  105. package/dist/cliproxy/executor/session-bridge.d.ts +0 -30
  106. package/dist/cliproxy/executor/session-bridge.d.ts.map +0 -1
  107. package/dist/cliproxy/executor/session-bridge.js +0 -232
  108. package/dist/cliproxy/executor/session-bridge.js.map +0 -1
  109. package/dist/commands/cliproxy/auth-subcommand.d.ts +0 -10
  110. package/dist/commands/cliproxy/auth-subcommand.d.ts.map +0 -1
  111. package/dist/commands/cliproxy/auth-subcommand.js +0 -55
  112. package/dist/commands/cliproxy/auth-subcommand.js.map +0 -1
  113. package/dist/commands/cliproxy/help-subcommand.d.ts +0 -8
  114. package/dist/commands/cliproxy/help-subcommand.d.ts.map +0 -1
  115. package/dist/commands/cliproxy/help-subcommand.js +0 -87
  116. package/dist/commands/cliproxy/help-subcommand.js.map +0 -1
  117. package/dist/commands/cliproxy/index.d.ts +0 -11
  118. package/dist/commands/cliproxy/index.d.ts.map +0 -1
  119. package/dist/commands/cliproxy/index.js +0 -196
  120. package/dist/commands/cliproxy/index.js.map +0 -1
  121. package/dist/commands/cliproxy/install-subcommand.d.ts +0 -14
  122. package/dist/commands/cliproxy/install-subcommand.d.ts.map +0 -1
  123. package/dist/commands/cliproxy/install-subcommand.js +0 -112
  124. package/dist/commands/cliproxy/install-subcommand.js.map +0 -1
  125. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts +0 -10
  126. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.d.ts.map +0 -1
  127. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +0 -54
  128. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +0 -1
  129. package/dist/commands/cliproxy/quota-subcommand.d.ts +0 -16
  130. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +0 -1
  131. package/dist/commands/cliproxy/quota-subcommand.js +0 -383
  132. package/dist/commands/cliproxy/quota-subcommand.js.map +0 -1
  133. package/dist/commands/cliproxy/variant-subcommand.d.ts +0 -11
  134. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +0 -1
  135. package/dist/commands/cliproxy/variant-subcommand.js +0 -292
  136. package/dist/commands/cliproxy/variant-subcommand.js.map +0 -1
  137. package/dist/ui/assets/cliproxy-DeGucfVg.js +0 -3
@@ -1,232 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-bridge.js","sourceRoot":"","sources":["../../../src/cliproxy/executor/session-bridge.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * CLIProxy OAuth Authentication Operations
3
- *
4
- * Handles:
5
- * - ccs cliproxy list
6
- * - OAuth status display
7
- * - Built-in profile authentication status
8
- */
9
- export declare function handleList(): Promise<void>;
10
- //# sourceMappingURL=auth-subcommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/cliproxy/auth-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA8ChD"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- /**
3
- * CLIProxy OAuth Authentication Operations
4
- *
5
- * Handles:
6
- * - ccs cliproxy list
7
- * - OAuth status display
8
- * - Built-in profile authentication status
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.handleList = void 0;
12
- const auth_handler_1 = require("../../cliproxy/auth-handler");
13
- const services_1 = require("../../cliproxy/services");
14
- const ui_1 = require("../../utils/ui");
15
- async function handleList() {
16
- await (0, ui_1.initUI)();
17
- console.log((0, ui_1.header)('CLIProxy Profiles'));
18
- console.log('');
19
- // Built-in profiles
20
- console.log((0, ui_1.subheader)('Built-in Profiles'));
21
- const authStatuses = (0, auth_handler_1.getAllAuthStatus)();
22
- for (const status of authStatuses) {
23
- const oauthConfig = (0, auth_handler_1.getOAuthConfig)(status.provider);
24
- const icon = status.authenticated ? (0, ui_1.ok)('') : (0, ui_1.warn)('');
25
- const authLabel = status.authenticated
26
- ? (0, ui_1.color)('authenticated', 'success')
27
- : (0, ui_1.dim)('not authenticated');
28
- const lastAuthStr = status.lastAuth ? (0, ui_1.dim)(` (${status.lastAuth.toLocaleDateString()})`) : '';
29
- console.log(` ${icon} ${(0, ui_1.color)(status.provider, 'command').padEnd(18)} ${oauthConfig.displayName.padEnd(16)} ${authLabel}${lastAuthStr}`);
30
- }
31
- console.log('');
32
- console.log((0, ui_1.dim)(' To authenticate: ccs <provider> --auth'));
33
- console.log((0, ui_1.dim)(' To logout: ccs <provider> --logout'));
34
- console.log('');
35
- // Custom variants
36
- const variants = (0, services_1.listVariants)();
37
- const variantNames = Object.keys(variants);
38
- if (variantNames.length > 0) {
39
- console.log((0, ui_1.subheader)('Custom Variants'));
40
- const rows = variantNames.map((name) => {
41
- const variant = variants[name];
42
- const portStr = variant.port ? String(variant.port) : '-';
43
- return [name, variant.provider, portStr, variant.settings || '-'];
44
- });
45
- console.log((0, ui_1.table)(rows, { head: ['Variant', 'Provider', 'Port', 'Settings'], colWidths: [15, 12, 8, 30] }));
46
- console.log('');
47
- console.log((0, ui_1.dim)(`Total: ${variantNames.length} custom variant(s)`));
48
- console.log('');
49
- }
50
- console.log((0, ui_1.dim)('To create a custom variant:'));
51
- console.log(` ${(0, ui_1.color)('ccs cliproxy create', 'command')}`);
52
- console.log('');
53
- }
54
- exports.handleList = handleList;
55
- //# sourceMappingURL=auth-subcommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-subcommand.js","sourceRoot":"","sources":["../../../src/commands/cliproxy/auth-subcommand.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * CLIProxy Help Display
3
- *
4
- * Handles:
5
- * - ccs cliproxy --help
6
- */
7
- export declare function showHelp(): Promise<void>;
8
- //# sourceMappingURL=help-subcommand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help-subcommand.d.ts","sourceRoot":"","sources":["../../../src/commands/cliproxy/help-subcommand.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA8E9C"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- /**
3
- * CLIProxy Help Display
4
- *
5
- * Handles:
6
- * - ccs cliproxy --help
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.showHelp = void 0;
10
- const ui_1 = require("../../utils/ui");
11
- const platform_detector_1 = require("../../cliproxy/platform-detector");
12
- async function showHelp() {
13
- await (0, ui_1.initUI)();
14
- console.log('');
15
- console.log((0, ui_1.header)('CLIProxy Management'));
16
- console.log('');
17
- console.log((0, ui_1.subheader)('Usage:'));
18
- console.log(` ${(0, ui_1.color)('ccs cliproxy', 'command')} <command> [options]`);
19
- console.log('');
20
- const sections = [
21
- [
22
- 'Profile Commands:',
23
- [
24
- ['create [name]', 'Create new CLIProxy variant profile'],
25
- ['list', 'List all CLIProxy variant profiles'],
26
- ['remove <name>', 'Remove a CLIProxy variant profile'],
27
- ],
28
- ],
29
- [
30
- 'Local Sync:',
31
- [
32
- ['sync', 'Sync API profiles to local CLIProxy config'],
33
- ['sync --dry-run', 'Preview sync without applying'],
34
- ['sync --verbose', 'Show detailed sync information'],
35
- ],
36
- ],
37
- [
38
- 'Quota Management:',
39
- [
40
- ['default <account>', 'Set default account for rotation'],
41
- ['pause <account>', 'Pause account (skip in rotation)'],
42
- ['resume <account>', 'Resume paused account'],
43
- ['quota', 'Show quota status for all providers'],
44
- ['quota --provider <name>', 'Filter by provider (agy|codex|gemini)'],
45
- ],
46
- ],
47
- [
48
- 'Proxy Lifecycle:',
49
- [
50
- ['status', 'Show running CLIProxy status'],
51
- ['stop', 'Stop running CLIProxy instance'],
52
- ['doctor', 'Quota diagnostics and shared project detection'],
53
- ],
54
- ],
55
- [
56
- 'Binary Commands:',
57
- [
58
- ['--install <version>', 'Install and pin a specific version'],
59
- ['--latest', 'Install the latest version (no pin)'],
60
- ['--update', 'Unpin and update to latest version'],
61
- ],
62
- ],
63
- [
64
- 'Options:',
65
- [
66
- ['--backend <type>', 'Use specific backend: original | plus (default: from config)'],
67
- ['--verbose, -v', 'Show detailed quota fetch diagnostics'],
68
- ],
69
- ],
70
- ];
71
- for (const [title, cmds] of sections) {
72
- console.log((0, ui_1.subheader)(title));
73
- const maxLen = Math.max(...cmds.map(([cmd]) => cmd.length));
74
- for (const [cmd, desc] of cmds) {
75
- console.log(` ${(0, ui_1.color)(cmd.padEnd(maxLen + 2), 'command')} ${desc}`);
76
- }
77
- console.log('');
78
- }
79
- console.log((0, ui_1.dim)(' Note: CLIProxy now persists by default. Use "stop" to terminate.'));
80
- console.log('');
81
- console.log((0, ui_1.subheader)('Notes:'));
82
- console.log(` Default fallback version: ${(0, ui_1.color)((0, platform_detector_1.getFallbackVersion)(), 'info')}`);
83
- console.log(` Releases: ${(0, ui_1.color)(`https://github.com/${platform_detector_1.BACKEND_CONFIG[platform_detector_1.DEFAULT_BACKEND].repo}/releases`, 'path')}`);
84
- console.log('');
85
- }
86
- exports.showHelp = showHelp;
87
- //# sourceMappingURL=help-subcommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help-subcommand.js","sourceRoot":"","sources":["../../../src/commands/cliproxy/help-subcommand.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * CLIProxy Command Dispatcher
3
- *
4
- * Routes cliproxy subcommands to their respective handlers.
5
- * This is the main entry point for all `ccs cliproxy` commands.
6
- */
7
- /**
8
- * Main router for cliproxy commands
9
- */
10
- export declare function handleCliproxyCommand(args: string[]): Promise<void>;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/cliproxy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmIH;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiGzE"}
@@ -1,196 +0,0 @@
1
- "use strict";
2
- /**
3
- * CLIProxy Command Dispatcher
4
- *
5
- * Routes cliproxy subcommands to their respective handlers.
6
- * This is the main entry point for all `ccs cliproxy` commands.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.handleCliproxyCommand = void 0;
10
- const platform_detector_1 = require("../../cliproxy/platform-detector");
11
- const unified_config_loader_1 = require("../../config/unified-config-loader");
12
- const cliproxy_sync_handler_1 = require("../cliproxy-sync-handler");
13
- // Import subcommand handlers
14
- const auth_subcommand_1 = require("./auth-subcommand");
15
- const quota_subcommand_1 = require("./quota-subcommand");
16
- const variant_subcommand_1 = require("./variant-subcommand");
17
- const proxy_lifecycle_subcommand_1 = require("./proxy-lifecycle-subcommand");
18
- const install_subcommand_1 = require("./install-subcommand");
19
- const help_subcommand_1 = require("./help-subcommand");
20
- /**
21
- * Parse --backend flag from args
22
- * Returns the backend value and remaining args without --backend flag
23
- */
24
- function parseBackendArg(args) {
25
- const backendIdx = args.indexOf('--backend');
26
- if (backendIdx === -1) {
27
- // Also check for --backend=value format
28
- const backendEqualsIdx = args.findIndex((a) => a.startsWith('--backend='));
29
- if (backendEqualsIdx !== -1) {
30
- const value = args[backendEqualsIdx].split('=')[1];
31
- if (value !== 'original' && value !== 'plus') {
32
- console.warn(`Invalid backend '${value}'. Valid options: original, plus`);
33
- return { backend: undefined, remainingArgs: args };
34
- }
35
- const remainingArgs = [...args];
36
- remainingArgs.splice(backendEqualsIdx, 1);
37
- return { backend: value, remainingArgs };
38
- }
39
- return { backend: undefined, remainingArgs: args };
40
- }
41
- const value = args[backendIdx + 1];
42
- if (value !== 'original' && value !== 'plus') {
43
- console.warn(`Invalid backend '${value}'. Valid options: original, plus`);
44
- return { backend: undefined, remainingArgs: args };
45
- }
46
- const remainingArgs = [...args];
47
- remainingArgs.splice(backendIdx, 2);
48
- return { backend: value, remainingArgs };
49
- }
50
- /**
51
- * Get effective backend (CLI flag > config.yaml > default)
52
- */
53
- function getEffectiveBackend(cliBackend) {
54
- if (cliBackend)
55
- return cliBackend;
56
- const config = (0, unified_config_loader_1.loadOrCreateUnifiedConfig)();
57
- return config.cliproxy?.backend ?? platform_detector_1.DEFAULT_BACKEND;
58
- }
59
- /**
60
- * Parse --provider flag from args for quota command
61
- * Returns the provider filter value and remaining args
62
- * Accepts: agy, codex, gemini, gemini-cli, all
63
- */
64
- function parseProviderArg(args) {
65
- const providerIdx = args.indexOf('--provider');
66
- if (providerIdx === -1) {
67
- // Also check for --provider=value format
68
- const providerEqualsIdx = args.findIndex((a) => a.startsWith('--provider='));
69
- if (providerEqualsIdx !== -1) {
70
- const value = args[providerEqualsIdx].split('=')[1]?.toLowerCase() || '';
71
- const remainingArgs = [...args];
72
- remainingArgs.splice(providerEqualsIdx, 1);
73
- // Handle empty value
74
- if (!value) {
75
- console.error('Warning: --provider requires a value. Valid options: agy, codex, gemini, gemini-cli, all');
76
- return { provider: 'all', remainingArgs };
77
- }
78
- // Normalize gemini-cli to gemini
79
- const normalized = value === 'gemini-cli' ? 'gemini' : value;
80
- if (normalized !== 'agy' &&
81
- normalized !== 'codex' &&
82
- normalized !== 'gemini' &&
83
- normalized !== 'all') {
84
- console.error(`Invalid provider '${value}'. Valid options: agy, codex, gemini, gemini-cli, all`);
85
- return { provider: 'all', remainingArgs };
86
- }
87
- return { provider: normalized, remainingArgs };
88
- }
89
- return { provider: 'all', remainingArgs: args };
90
- }
91
- const rawValue = args[providerIdx + 1];
92
- // Warn if no value or value looks like another flag
93
- if (!rawValue || rawValue.startsWith('-')) {
94
- console.error('Warning: --provider requires a value. Valid options: agy, codex, gemini, gemini-cli, all');
95
- }
96
- const value = rawValue?.toLowerCase() || 'all';
97
- const remainingArgs = [...args];
98
- remainingArgs.splice(providerIdx, 2);
99
- // Normalize gemini-cli to gemini
100
- const normalized = value === 'gemini-cli' ? 'gemini' : value;
101
- if (normalized !== 'agy' &&
102
- normalized !== 'codex' &&
103
- normalized !== 'gemini' &&
104
- normalized !== 'all') {
105
- console.error(`Invalid provider '${value}'. Valid options: agy, codex, gemini, gemini-cli, all`);
106
- return { provider: 'all', remainingArgs };
107
- }
108
- return { provider: normalized, remainingArgs };
109
- }
110
- /**
111
- * Main router for cliproxy commands
112
- */
113
- async function handleCliproxyCommand(args) {
114
- // Parse --backend flag first (before other processing)
115
- const { backend: cliBackend, remainingArgs } = parseBackendArg(args);
116
- const effectiveBackend = getEffectiveBackend(cliBackend);
117
- const verbose = remainingArgs.includes('--verbose') || remainingArgs.includes('-v');
118
- const command = remainingArgs[0];
119
- if (remainingArgs.includes('--help') || remainingArgs.includes('-h')) {
120
- await (0, help_subcommand_1.showHelp)();
121
- return;
122
- }
123
- // Profile commands
124
- if (command === 'create') {
125
- await (0, variant_subcommand_1.handleCreate)(remainingArgs.slice(1), effectiveBackend);
126
- return;
127
- }
128
- if (command === 'list' || command === 'ls') {
129
- await (0, auth_subcommand_1.handleList)();
130
- return;
131
- }
132
- if (command === 'remove' || command === 'delete' || command === 'rm') {
133
- await (0, variant_subcommand_1.handleRemove)(remainingArgs.slice(1));
134
- return;
135
- }
136
- // Sync command
137
- if (command === 'sync') {
138
- await (0, cliproxy_sync_handler_1.handleSync)(remainingArgs.slice(1));
139
- return;
140
- }
141
- // Proxy lifecycle commands
142
- if (command === 'stop') {
143
- await (0, proxy_lifecycle_subcommand_1.handleStop)();
144
- return;
145
- }
146
- if (command === 'status') {
147
- await (0, proxy_lifecycle_subcommand_1.handleProxyStatus)();
148
- return;
149
- }
150
- // Diagnostics
151
- if (command === 'doctor' || command === 'diag') {
152
- await (0, quota_subcommand_1.handleDoctor)(verbose);
153
- return;
154
- }
155
- // Quota management commands
156
- if (command === 'default') {
157
- await (0, quota_subcommand_1.handleSetDefault)(remainingArgs.slice(1));
158
- return;
159
- }
160
- if (command === 'pause') {
161
- await (0, quota_subcommand_1.handlePauseAccount)(remainingArgs.slice(1));
162
- return;
163
- }
164
- if (command === 'resume') {
165
- await (0, quota_subcommand_1.handleResumeAccount)(remainingArgs.slice(1));
166
- return;
167
- }
168
- if (command === 'quota') {
169
- const { provider: providerFilter } = parseProviderArg(remainingArgs.slice(1));
170
- await (0, quota_subcommand_1.handleQuotaStatus)(verbose, providerFilter);
171
- return;
172
- }
173
- // Binary installation commands
174
- const installIdx = remainingArgs.indexOf('--install');
175
- if (installIdx !== -1) {
176
- let version = remainingArgs[installIdx + 1];
177
- if (!version || version.startsWith('-')) {
178
- console.error('Missing version argument for --install');
179
- console.error(' Usage: ccs cliproxy --install <version>');
180
- console.error(' Example: ccs cliproxy --install 6.6.80-0');
181
- process.exit(1);
182
- }
183
- // Strip leading 'v' prefix and whitespace (user may type " v6.6.80-0 ")
184
- version = version.trim().replace(/^v/, '');
185
- await (0, install_subcommand_1.handleInstallVersion)(version, verbose, effectiveBackend);
186
- return;
187
- }
188
- if (remainingArgs.includes('--latest') || remainingArgs.includes('--update')) {
189
- await (0, install_subcommand_1.handleInstallLatest)(verbose, effectiveBackend);
190
- return;
191
- }
192
- // Default: show status
193
- await (0, install_subcommand_1.showStatus)(verbose, effectiveBackend);
194
- }
195
- exports.handleCliproxyCommand = handleCliproxyCommand;
196
- //# sourceMappingURL=index.js.map