@kaitranntt/ccs 7.7.1 → 7.8.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/api/services/profile-reader.js +3 -3
  2. package/dist/api/services/profile-reader.js.map +1 -1
  3. package/dist/api/services/profile-writer.js +1 -1
  4. package/dist/api/services/profile-writer.js.map +1 -1
  5. package/dist/auth/profile-registry.d.ts +11 -0
  6. package/dist/auth/profile-registry.d.ts.map +1 -1
  7. package/dist/auth/profile-registry.js +30 -0
  8. package/dist/auth/profile-registry.js.map +1 -1
  9. package/dist/ccs.js +12 -0
  10. package/dist/ccs.js.map +1 -1
  11. package/dist/cliproxy/auth/auth-types.d.ts +2 -0
  12. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  13. package/dist/cliproxy/auth/kiro-import.d.ts +23 -0
  14. package/dist/cliproxy/auth/kiro-import.d.ts.map +1 -0
  15. package/dist/cliproxy/auth/kiro-import.js +140 -0
  16. package/dist/cliproxy/auth/kiro-import.js.map +1 -0
  17. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  18. package/dist/cliproxy/auth/oauth-handler.js +10 -0
  19. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  20. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  21. package/dist/cliproxy/auth/oauth-process.js +25 -4
  22. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  23. package/dist/cliproxy/auth-token-manager.d.ts +82 -0
  24. package/dist/cliproxy/auth-token-manager.d.ts.map +1 -0
  25. package/dist/cliproxy/auth-token-manager.js +187 -0
  26. package/dist/cliproxy/auth-token-manager.js.map +1 -0
  27. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  28. package/dist/cliproxy/binary-manager.js +21 -0
  29. package/dist/cliproxy/binary-manager.js.map +1 -1
  30. package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
  31. package/dist/cliproxy/cliproxy-executor.js +64 -7
  32. package/dist/cliproxy/cliproxy-executor.js.map +1 -1
  33. package/dist/cliproxy/config-generator.d.ts +13 -4
  34. package/dist/cliproxy/config-generator.d.ts.map +1 -1
  35. package/dist/cliproxy/config-generator.js +37 -15
  36. package/dist/cliproxy/config-generator.js.map +1 -1
  37. package/dist/cliproxy/index.d.ts +1 -0
  38. package/dist/cliproxy/index.d.ts.map +1 -1
  39. package/dist/cliproxy/index.js +12 -1
  40. package/dist/cliproxy/index.js.map +1 -1
  41. package/dist/cliproxy/model-config.d.ts.map +1 -1
  42. package/dist/cliproxy/model-config.js +4 -3
  43. package/dist/cliproxy/model-config.js.map +1 -1
  44. package/dist/cliproxy/proxy-detector.d.ts +2 -0
  45. package/dist/cliproxy/proxy-detector.d.ts.map +1 -1
  46. package/dist/cliproxy/proxy-detector.js +7 -2
  47. package/dist/cliproxy/proxy-detector.js.map +1 -1
  48. package/dist/cliproxy/services/variant-config-adapter.d.ts +12 -2
  49. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  50. package/dist/cliproxy/services/variant-config-adapter.js +51 -8
  51. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  52. package/dist/cliproxy/services/variant-service.d.ts +10 -0
  53. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  54. package/dist/cliproxy/services/variant-service.js +63 -6
  55. package/dist/cliproxy/services/variant-service.js.map +1 -1
  56. package/dist/cliproxy/services/variant-settings.d.ts +6 -2
  57. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  58. package/dist/cliproxy/services/variant-settings.js +36 -8
  59. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  60. package/dist/cliproxy/session-tracker.d.ts +30 -8
  61. package/dist/cliproxy/session-tracker.d.ts.map +1 -1
  62. package/dist/cliproxy/session-tracker.js +150 -41
  63. package/dist/cliproxy/session-tracker.js.map +1 -1
  64. package/dist/cliproxy/stats-fetcher.js +6 -6
  65. package/dist/cliproxy/stats-fetcher.js.map +1 -1
  66. package/dist/commands/cliproxy-command.d.ts.map +1 -1
  67. package/dist/commands/cliproxy-command.js +8 -3
  68. package/dist/commands/cliproxy-command.js.map +1 -1
  69. package/dist/commands/help-command.d.ts.map +1 -1
  70. package/dist/commands/help-command.js +1 -0
  71. package/dist/commands/help-command.js.map +1 -1
  72. package/dist/commands/tokens-command.d.ts +19 -0
  73. package/dist/commands/tokens-command.d.ts.map +1 -0
  74. package/dist/commands/tokens-command.js +173 -0
  75. package/dist/commands/tokens-command.js.map +1 -0
  76. package/dist/config/unified-config-loader.d.ts.map +1 -1
  77. package/dist/config/unified-config-loader.js +4 -26
  78. package/dist/config/unified-config-loader.js.map +1 -1
  79. package/dist/config/unified-config-types.d.ts +18 -1
  80. package/dist/config/unified-config-types.d.ts.map +1 -1
  81. package/dist/config/unified-config-types.js +2 -1
  82. package/dist/config/unified-config-types.js.map +1 -1
  83. package/dist/management/checks/config-check.d.ts +12 -1
  84. package/dist/management/checks/config-check.d.ts.map +1 -1
  85. package/dist/management/checks/config-check.js +97 -41
  86. package/dist/management/checks/config-check.js.map +1 -1
  87. package/dist/management/checks/profile-check.d.ts +5 -1
  88. package/dist/management/checks/profile-check.d.ts.map +1 -1
  89. package/dist/management/checks/profile-check.js +56 -25
  90. package/dist/management/checks/profile-check.js.map +1 -1
  91. package/dist/management/recovery-manager.d.ts +0 -12
  92. package/dist/management/recovery-manager.d.ts.map +1 -1
  93. package/dist/management/recovery-manager.js +0 -92
  94. package/dist/management/recovery-manager.js.map +1 -1
  95. package/dist/types/config.d.ts +2 -0
  96. package/dist/types/config.d.ts.map +1 -1
  97. package/dist/types/config.js.map +1 -1
  98. package/dist/types/index.d.ts +1 -1
  99. package/dist/types/index.d.ts.map +1 -1
  100. package/dist/types/index.js.map +1 -1
  101. package/dist/ui/assets/{accounts-BMhHiKKx.js → accounts-BskeFX4q.js} +1 -1
  102. package/dist/ui/assets/{api-OCBlXCQa.js → api-DDfDv6io.js} +1 -1
  103. package/dist/ui/assets/auth-section-CJ-rbTvw.js +1 -0
  104. package/dist/ui/assets/{card-CLsl42We.js → card-Bq2myX0t.js} +1 -1
  105. package/dist/ui/assets/cliproxy-VwDQtVjR.js +3 -0
  106. package/dist/ui/assets/cliproxy-control-panel-Cry9Abs2.js +1 -0
  107. package/dist/ui/assets/{confirm-dialog-BtYM09Tb.js → confirm-dialog-Co6NQQJE.js} +1 -1
  108. package/dist/ui/assets/{copilot-7MWkGdns.js → copilot-O4-5AJN-.js} +3 -3
  109. package/dist/ui/assets/{globalenv-section-Co6qbs3V.js → globalenv-section-Y-8L73rf.js} +1 -1
  110. package/dist/ui/assets/{health-Bh1b5210.js → health-Bz25ui1F.js} +1 -1
  111. package/dist/ui/assets/icons-CMYcel9O.js +1 -0
  112. package/dist/ui/assets/{index-B_TRzkFq.js → index-B6iHZf0L.js} +1 -1
  113. package/dist/ui/assets/{index-CApIIy9d.js → index-BDZarTrS.js} +14 -14
  114. package/dist/ui/assets/{index-C8KcL2cj.js → index-BnkiBb9j.js} +1 -1
  115. package/dist/ui/assets/index-CytnH70K.css +1 -0
  116. package/dist/ui/assets/{index-CXVq9xuH.js → index-O_YI97iE.js} +1 -1
  117. package/dist/ui/assets/{shared-Ckt5nAjF.js → shared-BWVvIk4j.js} +1 -1
  118. package/dist/ui/assets/{switch-BCFPnHGe.js → switch-BVhPwalx.js} +1 -1
  119. package/dist/ui/index.html +3 -3
  120. package/dist/utils/config-manager.d.ts +7 -0
  121. package/dist/utils/config-manager.d.ts.map +1 -1
  122. package/dist/utils/config-manager.js +66 -12
  123. package/dist/utils/config-manager.js.map +1 -1
  124. package/dist/utils/port-utils.d.ts +8 -0
  125. package/dist/utils/port-utils.d.ts.map +1 -1
  126. package/dist/utils/port-utils.js +21 -1
  127. package/dist/utils/port-utils.js.map +1 -1
  128. package/dist/web-server/file-watcher.d.ts.map +1 -1
  129. package/dist/web-server/file-watcher.js +3 -2
  130. package/dist/web-server/file-watcher.js.map +1 -1
  131. package/dist/web-server/health/config-checks.d.ts +3 -2
  132. package/dist/web-server/health/config-checks.d.ts.map +1 -1
  133. package/dist/web-server/health/config-checks.js +40 -2
  134. package/dist/web-server/health/config-checks.js.map +1 -1
  135. package/dist/web-server/health/profile-checks.d.ts +2 -1
  136. package/dist/web-server/health/profile-checks.d.ts.map +1 -1
  137. package/dist/web-server/health/profile-checks.js +33 -1
  138. package/dist/web-server/health/profile-checks.js.map +1 -1
  139. package/dist/web-server/health-service.d.ts.map +1 -1
  140. package/dist/web-server/health-service.js +14 -0
  141. package/dist/web-server/health-service.js.map +1 -1
  142. package/dist/web-server/overview-routes.d.ts.map +1 -1
  143. package/dist/web-server/overview-routes.js +11 -30
  144. package/dist/web-server/overview-routes.js.map +1 -1
  145. package/dist/web-server/routes/account-routes.d.ts +3 -2
  146. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  147. package/dist/web-server/routes/account-routes.js +43 -46
  148. package/dist/web-server/routes/account-routes.js.map +1 -1
  149. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  150. package/dist/web-server/routes/cliproxy-auth-routes.js +47 -0
  151. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  152. package/dist/web-server/routes/route-helpers.d.ts +2 -7
  153. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  154. package/dist/web-server/routes/route-helpers.js +4 -26
  155. package/dist/web-server/routes/route-helpers.js.map +1 -1
  156. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  157. package/dist/web-server/routes/settings-routes.js +161 -13
  158. package/dist/web-server/routes/settings-routes.js.map +1 -1
  159. package/dist/web-server/routes/variant-routes.d.ts +2 -0
  160. package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
  161. package/dist/web-server/routes/variant-routes.js +44 -98
  162. package/dist/web-server/routes/variant-routes.js.map +1 -1
  163. package/package.json +1 -1
  164. package/dist/ui/assets/cliproxy-C09j9zae.js +0 -3
  165. package/dist/ui/assets/cliproxy-control-panel-CM6pDYK8.js +0 -1
  166. package/dist/ui/assets/icons-B9mnOvwW.js +0 -1
  167. package/dist/ui/assets/index-CK2sRZzn.css +0 -1
@@ -38,7 +38,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
38
38
  return result;
39
39
  };
40
40
  Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.getProxyStatus = exports.stopProxy = exports.cleanupOrphanedSessions = exports.hasActiveSessions = exports.getSessionCount = exports.unregisterSession = exports.registerSession = exports.getExistingProxy = void 0;
41
+ exports.getRunningProxyVersion = exports.getProxyStatus = exports.stopProxy = exports.cleanupOrphanedSessions = exports.hasActiveSessions = exports.getSessionCount = exports.unregisterSession = exports.registerSession = exports.getExistingProxy = exports.deleteSessionLockForPort = exports.getSessionLockPath = void 0;
42
42
  const fs = __importStar(require("fs"));
43
43
  const path = __importStar(require("path"));
44
44
  const crypto = __importStar(require("crypto"));
@@ -49,13 +49,21 @@ const config_generator_2 = require("./config-generator");
49
49
  function generateSessionId() {
50
50
  return crypto.randomBytes(8).toString('hex');
51
51
  }
52
- /** Get path to session lock file */
53
- function getSessionLockPath() {
54
- return path.join((0, config_generator_1.getCliproxyDir)(), 'sessions.json');
52
+ /** Get path to session lock file for specific port */
53
+ function getSessionLockPathForPort(port) {
54
+ if (port === config_generator_2.CLIPROXY_DEFAULT_PORT) {
55
+ return path.join((0, config_generator_1.getCliproxyDir)(), 'sessions.json');
56
+ }
57
+ return path.join((0, config_generator_1.getCliproxyDir)(), `sessions-${port}.json`);
55
58
  }
56
- /** Read session lock file (returns null if not exists or invalid) */
57
- function readSessionLock() {
58
- const lockPath = getSessionLockPath();
59
+ /** Get path to session lock file (default port) - kept for future use */
60
+ function _getSessionLockPath() {
61
+ return getSessionLockPathForPort(config_generator_2.CLIPROXY_DEFAULT_PORT);
62
+ }
63
+ exports.getSessionLockPath = _getSessionLockPath;
64
+ /** Read session lock file for specific port (returns null if not exists or invalid) */
65
+ function readSessionLockForPort(port) {
66
+ const lockPath = getSessionLockPathForPort(port);
59
67
  try {
60
68
  if (!fs.existsSync(lockPath)) {
61
69
  return null;
@@ -74,18 +82,22 @@ function readSessionLock() {
74
82
  return null;
75
83
  }
76
84
  }
77
- /** Write session lock file */
78
- function writeSessionLock(lock) {
79
- const lockPath = getSessionLockPath();
85
+ /** Read session lock file (default port, returns null if not exists or invalid) */
86
+ function readSessionLock() {
87
+ return readSessionLockForPort(config_generator_2.CLIPROXY_DEFAULT_PORT);
88
+ }
89
+ /** Write session lock file for specific port */
90
+ function writeSessionLockForPort(lock) {
91
+ const lockPath = getSessionLockPathForPort(lock.port);
80
92
  const dir = path.dirname(lockPath);
81
93
  if (!fs.existsSync(dir)) {
82
94
  fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
83
95
  }
84
96
  fs.writeFileSync(lockPath, JSON.stringify(lock, null, 2), { mode: 0o600 });
85
97
  }
86
- /** Delete session lock file */
87
- function deleteSessionLock() {
88
- const lockPath = getSessionLockPath();
98
+ /** Delete session lock file for specific port */
99
+ function deleteSessionLockForPort(port) {
100
+ const lockPath = getSessionLockPathForPort(port);
89
101
  try {
90
102
  if (fs.existsSync(lockPath)) {
91
103
  fs.unlinkSync(lockPath);
@@ -95,6 +107,11 @@ function deleteSessionLock() {
95
107
  // Ignore errors on cleanup
96
108
  }
97
109
  }
110
+ exports.deleteSessionLockForPort = deleteSessionLockForPort;
111
+ /** Delete session lock file (default port) */
112
+ function deleteSessionLock() {
113
+ deleteSessionLockForPort(config_generator_2.CLIPROXY_DEFAULT_PORT);
114
+ }
98
115
  /** Check if a PID is still running */
99
116
  function isProcessRunning(pid) {
100
117
  try {
@@ -102,16 +119,38 @@ function isProcessRunning(pid) {
102
119
  process.kill(pid, 0);
103
120
  return true;
104
121
  }
105
- catch {
122
+ catch (err) {
123
+ const e = err;
124
+ // EPERM means process exists but we don't have permission to signal it
125
+ if (e.code === 'EPERM') {
126
+ return true;
127
+ }
128
+ // ESRCH means no such process
106
129
  return false;
107
130
  }
108
131
  }
132
+ /**
133
+ * Wait for a process to exit within a timeout.
134
+ * @param pid Process ID to wait for
135
+ * @param timeoutMs Maximum time to wait in milliseconds
136
+ * @returns true if process exited, false if timeout
137
+ */
138
+ async function waitForProcessExit(pid, timeoutMs) {
139
+ const start = Date.now();
140
+ while (Date.now() - start < timeoutMs) {
141
+ if (!isProcessRunning(pid)) {
142
+ return true; // Process exited
143
+ }
144
+ await new Promise((resolve) => setTimeout(resolve, 100));
145
+ }
146
+ return false; // Timeout
147
+ }
109
148
  /**
110
149
  * Check if there's an existing proxy running that we can reuse.
111
150
  * Returns the existing lock if proxy is healthy, null otherwise.
112
151
  */
113
152
  function getExistingProxy(port) {
114
- const lock = readSessionLock();
153
+ const lock = readSessionLockForPort(port);
115
154
  if (!lock) {
116
155
  return null;
117
156
  }
@@ -122,7 +161,7 @@ function getExistingProxy(port) {
122
161
  // Verify proxy process is still running
123
162
  if (!isProcessRunning(lock.pid)) {
124
163
  // Proxy crashed - clean up stale lock
125
- deleteSessionLock();
164
+ deleteSessionLockForPort(port);
126
165
  return null;
127
166
  }
128
167
  return lock;
@@ -131,15 +170,18 @@ exports.getExistingProxy = getExistingProxy;
131
170
  /**
132
171
  * Register a new session with the proxy.
133
172
  * Call this when starting a new CCS session that will use an existing proxy.
173
+ * @param port Port the proxy is running on
174
+ * @param proxyPid PID of the proxy process
175
+ * @param version Optional CLIProxy version (stored when spawning new proxy)
134
176
  * @returns Session ID for this session
135
177
  */
136
- function registerSession(port, proxyPid) {
178
+ function registerSession(port, proxyPid, version) {
137
179
  const sessionId = generateSessionId();
138
- const existingLock = readSessionLock();
180
+ const existingLock = readSessionLockForPort(port);
139
181
  if (existingLock && existingLock.port === port && existingLock.pid === proxyPid) {
140
182
  // Add to existing sessions
141
183
  existingLock.sessions.push(sessionId);
142
- writeSessionLock(existingLock);
184
+ writeSessionLockForPort(existingLock);
143
185
  }
144
186
  else {
145
187
  // Create new lock (first session for this proxy)
@@ -148,17 +190,38 @@ function registerSession(port, proxyPid) {
148
190
  pid: proxyPid,
149
191
  sessions: [sessionId],
150
192
  startedAt: new Date().toISOString(),
193
+ version,
151
194
  };
152
- writeSessionLock(newLock);
195
+ writeSessionLockForPort(newLock);
153
196
  }
154
197
  return sessionId;
155
198
  }
156
199
  exports.registerSession = registerSession;
157
200
  /**
158
201
  * Unregister a session from the proxy.
202
+ * @param sessionId Session ID to unregister
203
+ * @param port Port to unregister from (optional, searches default port if not provided)
159
204
  * @returns true if this was the last session (proxy should be killed)
160
205
  */
161
- function unregisterSession(sessionId) {
206
+ function unregisterSession(sessionId, port) {
207
+ // If port provided, use port-specific lookup
208
+ if (port !== undefined) {
209
+ const lock = readSessionLockForPort(port);
210
+ if (!lock) {
211
+ return true;
212
+ }
213
+ const index = lock.sessions.indexOf(sessionId);
214
+ if (index !== -1) {
215
+ lock.sessions.splice(index, 1);
216
+ }
217
+ if (lock.sessions.length === 0) {
218
+ deleteSessionLockForPort(port);
219
+ return true;
220
+ }
221
+ writeSessionLockForPort(lock);
222
+ return false;
223
+ }
224
+ // Fallback: search default port (backward compat)
162
225
  const lock = readSessionLock();
163
226
  if (!lock) {
164
227
  // No lock file - assume we're the only session
@@ -176,15 +239,16 @@ function unregisterSession(sessionId) {
176
239
  return true;
177
240
  }
178
241
  // Other sessions still active - keep proxy running
179
- writeSessionLock(lock);
242
+ writeSessionLockForPort(lock);
180
243
  return false;
181
244
  }
182
245
  exports.unregisterSession = unregisterSession;
183
246
  /**
184
247
  * Get current session count for the proxy.
248
+ * @param port Port to check (defaults to CLIPROXY_DEFAULT_PORT)
185
249
  */
186
- function getSessionCount() {
187
- const lock = readSessionLock();
250
+ function getSessionCount(port = config_generator_2.CLIPROXY_DEFAULT_PORT) {
251
+ const lock = readSessionLockForPort(port);
188
252
  if (!lock) {
189
253
  return 0;
190
254
  }
@@ -194,15 +258,16 @@ exports.getSessionCount = getSessionCount;
194
258
  /**
195
259
  * Check if proxy has any active sessions.
196
260
  * Used to determine if a "zombie" proxy should be killed.
261
+ * @param port Port to check (defaults to CLIPROXY_DEFAULT_PORT)
197
262
  */
198
- function hasActiveSessions() {
199
- const lock = readSessionLock();
263
+ function hasActiveSessions(port = config_generator_2.CLIPROXY_DEFAULT_PORT) {
264
+ const lock = readSessionLockForPort(port);
200
265
  if (!lock) {
201
266
  return false;
202
267
  }
203
268
  // Verify proxy is still running
204
269
  if (!isProcessRunning(lock.pid)) {
205
- deleteSessionLock();
270
+ deleteSessionLockForPort(port);
206
271
  return false;
207
272
  }
208
273
  return lock.sessions.length > 0;
@@ -213,42 +278,55 @@ exports.hasActiveSessions = hasActiveSessions;
213
278
  * Called on startup to ensure clean state.
214
279
  */
215
280
  function cleanupOrphanedSessions(port) {
216
- const lock = readSessionLock();
281
+ const lock = readSessionLockForPort(port);
217
282
  if (!lock) {
218
283
  return;
219
284
  }
220
- // If port doesn't match, this lock is for a different proxy
285
+ // If port doesn't match, this shouldn't happen with port-specific files
221
286
  if (lock.port !== port) {
222
287
  return;
223
288
  }
224
289
  // If proxy is dead, clean up lock
225
290
  if (!isProcessRunning(lock.pid)) {
226
- deleteSessionLock();
291
+ deleteSessionLockForPort(port);
227
292
  }
228
293
  }
229
294
  exports.cleanupOrphanedSessions = cleanupOrphanedSessions;
230
295
  /**
231
296
  * Stop the CLIProxy process and clean up session lock.
232
297
  * Falls back to port-based detection if no session lock exists.
298
+ * @param port Port to stop (defaults to CLIPROXY_DEFAULT_PORT)
233
299
  * @returns Object with success status and details
234
300
  */
235
- async function stopProxy() {
236
- const lock = readSessionLock();
301
+ async function stopProxy(port = config_generator_2.CLIPROXY_DEFAULT_PORT) {
302
+ const lock = readSessionLockForPort(port);
237
303
  if (!lock) {
238
304
  // No session lock - try to find process by port (legacy/untracked proxy)
239
- const portProcess = await (0, port_utils_1.getPortProcess)(config_generator_2.CLIPROXY_DEFAULT_PORT);
305
+ const portProcess = await (0, port_utils_1.getPortProcess)(port);
240
306
  if (!portProcess) {
241
307
  return { stopped: false, error: 'No active CLIProxy session found' };
242
308
  }
243
309
  if (!(0, port_utils_1.isCLIProxyProcess)(portProcess)) {
244
310
  return {
245
311
  stopped: false,
246
- error: `Port ${config_generator_2.CLIPROXY_DEFAULT_PORT} is in use by ${portProcess.processName}, not CLIProxy`,
312
+ error: `Port ${port} is in use by ${portProcess.processName}, not CLIProxy`,
247
313
  };
248
314
  }
249
315
  // Found CLIProxy running without session lock - kill it
250
316
  try {
251
317
  process.kill(portProcess.pid, 'SIGTERM');
318
+ // Wait for graceful shutdown
319
+ const exited = await waitForProcessExit(portProcess.pid, 3000);
320
+ if (!exited) {
321
+ // Escalate to SIGKILL
322
+ try {
323
+ process.kill(portProcess.pid, 'SIGKILL');
324
+ await waitForProcessExit(portProcess.pid, 1000);
325
+ }
326
+ catch {
327
+ // Process may have exited between check and kill
328
+ }
329
+ }
252
330
  return { stopped: true, pid: portProcess.pid, sessionCount: 0 };
253
331
  }
254
332
  catch (err) {
@@ -261,7 +339,7 @@ async function stopProxy() {
261
339
  }
262
340
  // Check if proxy is running
263
341
  if (!isProcessRunning(lock.pid)) {
264
- deleteSessionLock();
342
+ deleteSessionLockForPort(port);
265
343
  return { stopped: false, error: 'CLIProxy was not running (cleaned up stale lock)' };
266
344
  }
267
345
  const sessionCount = lock.sessions.length;
@@ -269,15 +347,27 @@ async function stopProxy() {
269
347
  try {
270
348
  // Kill the proxy process
271
349
  process.kill(pid, 'SIGTERM');
350
+ // Wait for graceful shutdown
351
+ const exited = await waitForProcessExit(pid, 3000);
352
+ if (!exited) {
353
+ // Escalate to SIGKILL
354
+ try {
355
+ process.kill(pid, 'SIGKILL');
356
+ await waitForProcessExit(pid, 1000);
357
+ }
358
+ catch {
359
+ // Process may have exited between check and kill
360
+ }
361
+ }
272
362
  // Clean up session lock
273
- deleteSessionLock();
363
+ deleteSessionLockForPort(port);
274
364
  return { stopped: true, pid, sessionCount };
275
365
  }
276
366
  catch (err) {
277
367
  const error = err;
278
368
  if (error.code === 'ESRCH') {
279
369
  // Process already gone
280
- deleteSessionLock();
370
+ deleteSessionLockForPort(port);
281
371
  return { stopped: false, error: 'CLIProxy process already terminated' };
282
372
  }
283
373
  return { stopped: false, pid, error: `Failed to stop: ${error.message}` };
@@ -285,16 +375,16 @@ async function stopProxy() {
285
375
  }
286
376
  exports.stopProxy = stopProxy;
287
377
  /**
288
- * Get proxy status information.
378
+ * Get proxy status information for specific port.
289
379
  */
290
- function getProxyStatus() {
291
- const lock = readSessionLock();
380
+ function getProxyStatus(port = config_generator_2.CLIPROXY_DEFAULT_PORT) {
381
+ const lock = readSessionLockForPort(port);
292
382
  if (!lock) {
293
383
  return { running: false };
294
384
  }
295
385
  // Verify proxy is still running
296
386
  if (!isProcessRunning(lock.pid)) {
297
- deleteSessionLock();
387
+ deleteSessionLockForPort(port);
298
388
  return { running: false };
299
389
  }
300
390
  return {
@@ -303,7 +393,26 @@ function getProxyStatus() {
303
393
  pid: lock.pid,
304
394
  sessionCount: lock.sessions.length,
305
395
  startedAt: lock.startedAt,
396
+ version: lock.version,
306
397
  };
307
398
  }
308
399
  exports.getProxyStatus = getProxyStatus;
400
+ /**
401
+ * Get the version of the running proxy from session lock.
402
+ * @param port Port to check (defaults to CLIPROXY_DEFAULT_PORT)
403
+ * @returns Version string if available, null otherwise
404
+ */
405
+ function getRunningProxyVersion(port = config_generator_2.CLIPROXY_DEFAULT_PORT) {
406
+ const lock = readSessionLockForPort(port);
407
+ if (!lock) {
408
+ return null;
409
+ }
410
+ // Verify proxy is still running
411
+ if (!isProcessRunning(lock.pid)) {
412
+ deleteSessionLockForPort(port);
413
+ return null;
414
+ }
415
+ return lock.version ?? null;
416
+ }
417
+ exports.getRunningProxyVersion = getRunningProxyVersion;
309
418
  //# sourceMappingURL=session-tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/cliproxy/session-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/cliproxy/session-tracker.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.isCliproxyRunning = exports.fetchCliproxyErrorLogContent = exports.fetchCliproxyErrorLogs = exports.fetchCliproxyModels = exports.fetchCliproxyStats = void 0;
10
- const config_generator_1 = require("./config-generator");
10
+ const auth_token_manager_1 = require("./auth-token-manager");
11
11
  const proxy_target_resolver_1 = require("./proxy-target-resolver");
12
12
  /**
13
13
  * Fetch usage statistics from CLIProxyAPI management API
@@ -28,7 +28,7 @@ async function fetchCliproxyStats(port) {
28
28
  // For management endpoints, use CCS control panel secret for local, remote auth for remote
29
29
  const headers = target.isRemote
30
30
  ? (0, proxy_target_resolver_1.buildProxyHeaders)(target)
31
- : { Accept: 'application/json', Authorization: `Bearer ${config_generator_1.CCS_CONTROL_PANEL_SECRET}` };
31
+ : { Accept: 'application/json', Authorization: `Bearer ${(0, auth_token_manager_1.getEffectiveManagementSecret)()}` };
32
32
  const response = await fetch(url, {
33
33
  signal: controller.signal,
34
34
  headers,
@@ -127,10 +127,10 @@ async function fetchCliproxyModels(port) {
127
127
  target.port = port;
128
128
  }
129
129
  const url = (0, proxy_target_resolver_1.buildProxyUrl)(target, '/v1/models');
130
- // For /v1 endpoints: use remote auth token for remote, ccs-internal-managed for local
130
+ // For /v1 endpoints: use remote auth token for remote, effective API key for local
131
131
  const headers = target.isRemote
132
132
  ? (0, proxy_target_resolver_1.buildProxyHeaders)(target)
133
- : { Accept: 'application/json', Authorization: 'Bearer ccs-internal-managed' };
133
+ : { Accept: 'application/json', Authorization: `Bearer ${(0, auth_token_manager_1.getEffectiveApiKey)()}` };
134
134
  const response = await fetch(url, {
135
135
  signal: controller.signal,
136
136
  headers,
@@ -183,7 +183,7 @@ async function fetchCliproxyErrorLogs(port) {
183
183
  // For management endpoints, use CCS control panel secret for local, remote auth for remote
184
184
  const headers = target.isRemote
185
185
  ? (0, proxy_target_resolver_1.buildProxyHeaders)(target)
186
- : { Accept: 'application/json', Authorization: `Bearer ${config_generator_1.CCS_CONTROL_PANEL_SECRET}` };
186
+ : { Accept: 'application/json', Authorization: `Bearer ${(0, auth_token_manager_1.getEffectiveManagementSecret)()}` };
187
187
  const response = await fetch(url, {
188
188
  signal: controller.signal,
189
189
  headers,
@@ -220,7 +220,7 @@ async function fetchCliproxyErrorLogContent(name, port) {
220
220
  // For management endpoints, use CCS control panel secret for local, remote auth for remote
221
221
  const headers = target.isRemote
222
222
  ? (0, proxy_target_resolver_1.buildProxyHeaders)(target)
223
- : { Authorization: `Bearer ${config_generator_1.CCS_CONTROL_PANEL_SECRET}` };
223
+ : { Authorization: `Bearer ${(0, auth_token_manager_1.getEffectiveManagementSecret)()}` };
224
224
  const response = await fetch(url, {
225
225
  signal: controller.signal,
226
226
  headers,
@@ -1 +1 @@
1
- {"version":3,"file":"stats-fetcher.js","sourceRoot":"","sources":["../../src/cliproxy/stats-fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats-fetcher.js","sourceRoot":"","sources":["../../src/cliproxy/stats-fetcher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cliproxy-command.d.ts","sourceRoot":"","sources":["../../src/commands/cliproxy-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAkjBH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDzE"}
1
+ {"version":3,"file":"cliproxy-command.d.ts","sourceRoot":"","sources":["../../src/commands/cliproxy-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAujBH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDzE"}
@@ -231,7 +231,8 @@ async function handleCreate(args) {
231
231
  const settingsDisplay = (0, unified_config_loader_1.isUnifiedMode)()
232
232
  ? '~/.ccs/config.yaml'
233
233
  : `~/.ccs/${path.basename(result.settingsPath || '')}`;
234
- console.log((0, ui_1.infoBox)(`Variant: ${name}\nProvider: ${provider}\nModel: ${model}\n${account ? `Account: ${account}\n` : ''}${(0, unified_config_loader_1.isUnifiedMode)() ? 'Config' : 'Settings'}: ${settingsDisplay}`, configType));
234
+ const portInfo = result.variant?.port ? `Port: ${result.variant.port}\n` : '';
235
+ console.log((0, ui_1.infoBox)(`Variant: ${name}\nProvider: ${provider}\nModel: ${model}\n${portInfo}${account ? `Account: ${account}\n` : ''}${(0, unified_config_loader_1.isUnifiedMode)() ? 'Config' : 'Settings'}: ${settingsDisplay}`, configType));
235
236
  console.log('');
236
237
  console.log((0, ui_1.header)('Usage'));
237
238
  console.log(` ${(0, ui_1.color)(`ccs ${name} "your prompt"`, 'command')}`);
@@ -267,9 +268,10 @@ async function handleList() {
267
268
  console.log((0, ui_1.subheader)('Custom Variants'));
268
269
  const rows = variantNames.map((name) => {
269
270
  const variant = variants[name];
270
- return [name, variant.provider, variant.settings || '-'];
271
+ const portStr = variant.port ? String(variant.port) : '-';
272
+ return [name, variant.provider, portStr, variant.settings || '-'];
271
273
  });
272
- console.log((0, ui_1.table)(rows, { head: ['Variant', 'Provider', 'Settings'], colWidths: [15, 12, 35] }));
274
+ console.log((0, ui_1.table)(rows, { head: ['Variant', 'Provider', 'Port', 'Settings'], colWidths: [15, 12, 8, 30] }));
273
275
  console.log('');
274
276
  console.log((0, ui_1.dim)(`Total: ${variantNames.length} custom variant(s)`));
275
277
  console.log('');
@@ -315,6 +317,9 @@ async function handleRemove(args) {
315
317
  console.log('');
316
318
  console.log(`Variant '${(0, ui_1.color)(name, 'command')}' will be removed.`);
317
319
  console.log(` Provider: ${variant.provider}`);
320
+ if (variant.port) {
321
+ console.log(` Port: ${variant.port}`);
322
+ }
318
323
  console.log(` Settings: ${variant.settings || '-'}`);
319
324
  console.log('');
320
325
  const confirmed = parsedArgs.yes || (await prompt_1.InteractivePrompt.confirm('Delete this variant?', { default: false }));