@kaitranntt/ccs 6.0.0-dev.1 → 6.0.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.
- package/VERSION +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +75 -129
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/package.json +1 -1
- package/dist/cliproxy/session-tracker.d.ts +0 -54
- package/dist/cliproxy/session-tracker.d.ts.map +0 -1
- package/dist/cliproxy/session-tracker.js +0 -228
- package/dist/cliproxy/session-tracker.js.map +0 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.0.0
|
|
1
|
+
6.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-executor.d.ts","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgBH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cliproxy-executor.d.ts","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAgBH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqE3D;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC,IAAI,CAAC,CA0Wf;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAepE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,GAAE,MAA8B,EACzC,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -52,7 +52,6 @@ const account_manager_1 = require("./account-manager");
|
|
|
52
52
|
const platform_commands_1 = require("../utils/platform-commands");
|
|
53
53
|
const port_utils_1 = require("../utils/port-utils");
|
|
54
54
|
const websearch_manager_2 = require("../utils/websearch-manager");
|
|
55
|
-
const session_tracker_1 = require("./session-tracker");
|
|
56
55
|
/** Default executor configuration */
|
|
57
56
|
const DEFAULT_CONFIG = {
|
|
58
57
|
port: config_generator_1.CLIPROXY_DEFAULT_PORT,
|
|
@@ -279,104 +278,76 @@ async function execClaudeWithCLIProxy(claudeCli, provider, args, config = {}) {
|
|
|
279
278
|
log(`Generating config for ${provider}`);
|
|
280
279
|
const configPath = (0, config_generator_1.generateConfig)(provider, cfg.port);
|
|
281
280
|
log(`Config written: ${configPath}`);
|
|
282
|
-
// 6a. Pre-flight check:
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
sessionId = (0, session_tracker_1.registerSession)(cfg.port, existingProxy.pid);
|
|
294
|
-
isReusingProxy = true;
|
|
295
|
-
console.log((0, ui_1.info)(`Joined existing CLIProxy (${existingProxy.sessions.length + 1} sessions active)`));
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
// No existing proxy - check if port is free
|
|
299
|
-
const portProcess = await (0, port_utils_1.getPortProcess)(cfg.port);
|
|
300
|
-
if (portProcess) {
|
|
301
|
-
if ((0, port_utils_1.isCLIProxyProcess)(portProcess)) {
|
|
302
|
-
// CLIProxy on port but no session lock - likely orphaned/zombie
|
|
303
|
-
// Only kill if no active sessions registered
|
|
304
|
-
if (!(0, session_tracker_1.hasActiveSessions)()) {
|
|
305
|
-
log(`Found zombie CLIProxy on port ${cfg.port} (PID ${portProcess.pid}), killing...`);
|
|
306
|
-
const killed = (0, platform_commands_1.killProcessOnPort)(cfg.port, verbose);
|
|
307
|
-
if (killed) {
|
|
308
|
-
console.log((0, ui_1.info)(`Cleaned up zombie CLIProxy process`));
|
|
309
|
-
// Wait a bit for port to be released
|
|
310
|
-
await new Promise((r) => setTimeout(r, 500));
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
// Active sessions exist but getExistingProxy returned null - something's wrong
|
|
315
|
-
// Try to connect anyway
|
|
316
|
-
log(`CLIProxy on port ${cfg.port} has active sessions, attempting to join...`);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
else {
|
|
320
|
-
// Non-CLIProxy process blocking the port - warn user
|
|
321
|
-
console.error('');
|
|
322
|
-
console.error((0, ui_1.warn)(`Port ${cfg.port} is blocked by ${portProcess.processName} (PID ${portProcess.pid})`));
|
|
323
|
-
console.error('');
|
|
324
|
-
console.error('To fix this, close the blocking application or run:');
|
|
325
|
-
console.error(` ${(0, platform_commands_1.getPortCheckCommand)(cfg.port)}`);
|
|
326
|
-
console.error('');
|
|
327
|
-
throw new Error(`Port ${cfg.port} is in use by another application`);
|
|
281
|
+
// 6a. Pre-flight check: ensure port is free (auto-kill zombie CLIProxy)
|
|
282
|
+
const portProcess = await (0, port_utils_1.getPortProcess)(cfg.port);
|
|
283
|
+
if (portProcess) {
|
|
284
|
+
if ((0, port_utils_1.isCLIProxyProcess)(portProcess)) {
|
|
285
|
+
// Zombie CLIProxy from previous run - auto-kill it
|
|
286
|
+
log(`Found zombie CLIProxy on port ${cfg.port} (PID ${portProcess.pid}), killing...`);
|
|
287
|
+
const killed = (0, platform_commands_1.killProcessOnPort)(cfg.port, verbose);
|
|
288
|
+
if (killed) {
|
|
289
|
+
console.log((0, ui_1.info)(`Cleaned up zombie CLIProxy process`));
|
|
290
|
+
// Wait a bit for port to be released
|
|
291
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
328
292
|
}
|
|
329
293
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
log(`Spawning: ${binaryPath} ${proxyArgs.join(' ')}`);
|
|
333
|
-
proxy = (0, child_process_1.spawn)(binaryPath, proxyArgs, {
|
|
334
|
-
stdio: ['ignore', verbose ? 'pipe' : 'ignore', verbose ? 'pipe' : 'ignore'],
|
|
335
|
-
detached: false,
|
|
336
|
-
});
|
|
337
|
-
// Forward proxy output in verbose mode
|
|
338
|
-
if (verbose) {
|
|
339
|
-
proxy.stdout?.on('data', (data) => {
|
|
340
|
-
process.stderr.write(`[cliproxy-out] ${data.toString()}`);
|
|
341
|
-
});
|
|
342
|
-
proxy.stderr?.on('data', (data) => {
|
|
343
|
-
process.stderr.write(`[cliproxy-err] ${data.toString()}`);
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
// Handle proxy errors
|
|
347
|
-
proxy.on('error', (error) => {
|
|
348
|
-
console.error((0, ui_1.fail)(`CLIProxy spawn error: ${error.message}`));
|
|
349
|
-
});
|
|
350
|
-
// 7. Wait for proxy readiness via TCP polling
|
|
351
|
-
const readySpinner = new progress_indicator_1.ProgressIndicator(`Waiting for CLIProxy on port ${cfg.port}`);
|
|
352
|
-
readySpinner.start();
|
|
353
|
-
try {
|
|
354
|
-
await waitForProxyReady(cfg.port, cfg.timeout, cfg.pollInterval);
|
|
355
|
-
readySpinner.succeed(`CLIProxy ready on port ${cfg.port}`);
|
|
356
|
-
}
|
|
357
|
-
catch (error) {
|
|
358
|
-
readySpinner.fail('CLIProxy startup failed');
|
|
359
|
-
proxy.kill('SIGTERM');
|
|
360
|
-
const err = error;
|
|
361
|
-
console.error('');
|
|
362
|
-
console.error((0, ui_1.fail)('CLIProxy failed to start'));
|
|
294
|
+
else {
|
|
295
|
+
// Non-CLIProxy process blocking the port - warn user
|
|
363
296
|
console.error('');
|
|
364
|
-
console.error(
|
|
365
|
-
console.error(` 1. Port ${cfg.port} already in use`);
|
|
366
|
-
console.error(' 2. Binary crashed on startup');
|
|
367
|
-
console.error(' 3. Invalid configuration');
|
|
297
|
+
console.error((0, ui_1.warn)(`Port ${cfg.port} is blocked by ${portProcess.processName} (PID ${portProcess.pid})`));
|
|
368
298
|
console.error('');
|
|
369
|
-
console.error('
|
|
370
|
-
console.error(`
|
|
371
|
-
console.error(' - Run with --verbose for detailed logs');
|
|
372
|
-
console.error(` - View config: ${(0, platform_commands_1.getCatCommand)(configPath)}`);
|
|
373
|
-
console.error(' - Try: ccs doctor --fix');
|
|
299
|
+
console.error('To fix this, close the blocking application or run:');
|
|
300
|
+
console.error(` ${(0, platform_commands_1.getPortCheckCommand)(cfg.port)}`);
|
|
374
301
|
console.error('');
|
|
375
|
-
throw new Error(`
|
|
302
|
+
throw new Error(`Port ${cfg.port} is in use by another application`);
|
|
376
303
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
304
|
+
}
|
|
305
|
+
// 6b. Spawn CLIProxyAPI binary
|
|
306
|
+
const proxyArgs = ['--config', configPath];
|
|
307
|
+
log(`Spawning: ${binaryPath} ${proxyArgs.join(' ')}`);
|
|
308
|
+
const proxy = (0, child_process_1.spawn)(binaryPath, proxyArgs, {
|
|
309
|
+
stdio: ['ignore', verbose ? 'pipe' : 'ignore', verbose ? 'pipe' : 'ignore'],
|
|
310
|
+
detached: false,
|
|
311
|
+
});
|
|
312
|
+
// Forward proxy output in verbose mode
|
|
313
|
+
if (verbose) {
|
|
314
|
+
proxy.stdout?.on('data', (data) => {
|
|
315
|
+
process.stderr.write(`[cliproxy-out] ${data.toString()}`);
|
|
316
|
+
});
|
|
317
|
+
proxy.stderr?.on('data', (data) => {
|
|
318
|
+
process.stderr.write(`[cliproxy-err] ${data.toString()}`);
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
// Handle proxy errors
|
|
322
|
+
proxy.on('error', (error) => {
|
|
323
|
+
console.error((0, ui_1.fail)(`CLIProxy spawn error: ${error.message}`));
|
|
324
|
+
});
|
|
325
|
+
// 7. Wait for proxy readiness via TCP polling
|
|
326
|
+
const readySpinner = new progress_indicator_1.ProgressIndicator(`Waiting for CLIProxy on port ${cfg.port}`);
|
|
327
|
+
readySpinner.start();
|
|
328
|
+
try {
|
|
329
|
+
await waitForProxyReady(cfg.port, cfg.timeout, cfg.pollInterval);
|
|
330
|
+
readySpinner.succeed(`CLIProxy ready on port ${cfg.port}`);
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
readySpinner.fail('CLIProxy startup failed');
|
|
334
|
+
proxy.kill('SIGTERM');
|
|
335
|
+
const err = error;
|
|
336
|
+
console.error('');
|
|
337
|
+
console.error((0, ui_1.fail)('CLIProxy failed to start'));
|
|
338
|
+
console.error('');
|
|
339
|
+
console.error('Possible causes:');
|
|
340
|
+
console.error(` 1. Port ${cfg.port} already in use`);
|
|
341
|
+
console.error(' 2. Binary crashed on startup');
|
|
342
|
+
console.error(' 3. Invalid configuration');
|
|
343
|
+
console.error('');
|
|
344
|
+
console.error('Troubleshooting:');
|
|
345
|
+
console.error(` - Check port: ${(0, platform_commands_1.getPortCheckCommand)(cfg.port)}`);
|
|
346
|
+
console.error(' - Run with --verbose for detailed logs');
|
|
347
|
+
console.error(` - View config: ${(0, platform_commands_1.getCatCommand)(configPath)}`);
|
|
348
|
+
console.error(' - Try: ccs doctor --fix');
|
|
349
|
+
console.error('');
|
|
350
|
+
throw new Error(`CLIProxy startup failed: ${err.message}`);
|
|
380
351
|
}
|
|
381
352
|
// 7. Execute Claude CLI with proxied environment
|
|
382
353
|
// Uses custom settings path (for variants), user settings, or bundled defaults
|
|
@@ -427,25 +398,10 @@ async function execClaudeWithCLIProxy(claudeCli, provider, args, config = {}) {
|
|
|
427
398
|
env,
|
|
428
399
|
});
|
|
429
400
|
}
|
|
430
|
-
// 8. Cleanup:
|
|
401
|
+
// 8. Cleanup: kill proxy when Claude exits
|
|
431
402
|
claude.on('exit', (code, signal) => {
|
|
432
403
|
log(`Claude exited: code=${code}, signal=${signal}`);
|
|
433
|
-
|
|
434
|
-
const shouldKillProxy = (0, session_tracker_1.unregisterSession)(sessionId);
|
|
435
|
-
log(`Session ${sessionId} unregistered, shouldKillProxy=${shouldKillProxy}`);
|
|
436
|
-
if (shouldKillProxy && proxy) {
|
|
437
|
-
// We were the last session and we own the proxy - kill it
|
|
438
|
-
log('Last session, killing proxy');
|
|
439
|
-
proxy.kill('SIGTERM');
|
|
440
|
-
}
|
|
441
|
-
else if (shouldKillProxy && isReusingProxy) {
|
|
442
|
-
// We were the last session but don't own the proxy process
|
|
443
|
-
// The proxy will be cleaned up as zombie on next session start
|
|
444
|
-
log('Last session but reusing proxy, proxy will be cleaned up later');
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
log(`Other sessions still active, keeping proxy running`);
|
|
448
|
-
}
|
|
404
|
+
proxy.kill('SIGTERM');
|
|
449
405
|
if (signal) {
|
|
450
406
|
process.kill(process.pid, signal);
|
|
451
407
|
}
|
|
@@ -455,34 +411,24 @@ async function execClaudeWithCLIProxy(claudeCli, provider, args, config = {}) {
|
|
|
455
411
|
});
|
|
456
412
|
claude.on('error', (error) => {
|
|
457
413
|
console.error((0, ui_1.fail)(`Claude CLI error: ${error}`));
|
|
458
|
-
|
|
459
|
-
const shouldKillProxy = (0, session_tracker_1.unregisterSession)(sessionId);
|
|
460
|
-
if (shouldKillProxy && proxy) {
|
|
461
|
-
proxy.kill('SIGTERM');
|
|
462
|
-
}
|
|
414
|
+
proxy.kill('SIGTERM');
|
|
463
415
|
process.exit(1);
|
|
464
416
|
});
|
|
465
417
|
// Handle parent process termination (SIGTERM, SIGINT)
|
|
466
418
|
const cleanup = () => {
|
|
467
419
|
log('Parent signal received, cleaning up');
|
|
468
|
-
|
|
469
|
-
const shouldKillProxy = (0, session_tracker_1.unregisterSession)(sessionId);
|
|
470
|
-
if (shouldKillProxy && proxy) {
|
|
471
|
-
proxy.kill('SIGTERM');
|
|
472
|
-
}
|
|
420
|
+
proxy.kill('SIGTERM');
|
|
473
421
|
claude.kill('SIGTERM');
|
|
474
422
|
};
|
|
475
423
|
process.once('SIGTERM', cleanup);
|
|
476
424
|
process.once('SIGINT', cleanup);
|
|
477
|
-
// Handle proxy crash
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
});
|
|
485
|
-
}
|
|
425
|
+
// Handle proxy crash
|
|
426
|
+
proxy.on('exit', (code, signal) => {
|
|
427
|
+
if (code !== 0 && code !== null) {
|
|
428
|
+
log(`Proxy exited unexpectedly: code=${code}, signal=${signal}`);
|
|
429
|
+
// Don't kill Claude - it may have already exited
|
|
430
|
+
}
|
|
431
|
+
});
|
|
486
432
|
}
|
|
487
433
|
exports.execClaudeWithCLIProxy = execClaudeWithCLIProxy;
|
|
488
434
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliproxy-executor.js","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cliproxy-executor.js","sourceRoot":"","sources":["../../src/cliproxy/cliproxy-executor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session Tracker for CLIProxy Multi-Instance Support
|
|
3
|
-
*
|
|
4
|
-
* Manages reference counting for shared CLIProxy instances.
|
|
5
|
-
* Multiple CCS sessions can share a single proxy on the same port.
|
|
6
|
-
* Proxy only terminates when ALL sessions exit (count reaches 0).
|
|
7
|
-
*
|
|
8
|
-
* Lock file format: ~/.ccs/cliproxy/sessions.json
|
|
9
|
-
* {
|
|
10
|
-
* "port": 8317,
|
|
11
|
-
* "pid": 12345, // CLIProxy process PID
|
|
12
|
-
* "sessions": ["abc123", "def456"], // Active session IDs
|
|
13
|
-
* "startedAt": "2024-01-01T00:00:00Z"
|
|
14
|
-
* }
|
|
15
|
-
*/
|
|
16
|
-
/** Session lock file structure */
|
|
17
|
-
interface SessionLock {
|
|
18
|
-
port: number;
|
|
19
|
-
pid: number;
|
|
20
|
-
sessions: string[];
|
|
21
|
-
startedAt: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Check if there's an existing proxy running that we can reuse.
|
|
25
|
-
* Returns the existing lock if proxy is healthy, null otherwise.
|
|
26
|
-
*/
|
|
27
|
-
export declare function getExistingProxy(port: number): SessionLock | null;
|
|
28
|
-
/**
|
|
29
|
-
* Register a new session with the proxy.
|
|
30
|
-
* Call this when starting a new CCS session that will use an existing proxy.
|
|
31
|
-
* @returns Session ID for this session
|
|
32
|
-
*/
|
|
33
|
-
export declare function registerSession(port: number, proxyPid: number): string;
|
|
34
|
-
/**
|
|
35
|
-
* Unregister a session from the proxy.
|
|
36
|
-
* @returns true if this was the last session (proxy should be killed)
|
|
37
|
-
*/
|
|
38
|
-
export declare function unregisterSession(sessionId: string): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Get current session count for the proxy.
|
|
41
|
-
*/
|
|
42
|
-
export declare function getSessionCount(): number;
|
|
43
|
-
/**
|
|
44
|
-
* Check if proxy has any active sessions.
|
|
45
|
-
* Used to determine if a "zombie" proxy should be killed.
|
|
46
|
-
*/
|
|
47
|
-
export declare function hasActiveSessions(): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Clean up orphaned sessions (when proxy crashes).
|
|
50
|
-
* Called on startup to ensure clean state.
|
|
51
|
-
*/
|
|
52
|
-
export declare function cleanupOrphanedSessions(port: number): void;
|
|
53
|
-
export {};
|
|
54
|
-
//# sourceMappingURL=session-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.d.ts","sourceRoot":"","sources":["../../src/cliproxy/session-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,kCAAkC;AAClC,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAoED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmBjE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAuB5D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAa3C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAe1D"}
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Session Tracker for CLIProxy Multi-Instance Support
|
|
4
|
-
*
|
|
5
|
-
* Manages reference counting for shared CLIProxy instances.
|
|
6
|
-
* Multiple CCS sessions can share a single proxy on the same port.
|
|
7
|
-
* Proxy only terminates when ALL sessions exit (count reaches 0).
|
|
8
|
-
*
|
|
9
|
-
* Lock file format: ~/.ccs/cliproxy/sessions.json
|
|
10
|
-
* {
|
|
11
|
-
* "port": 8317,
|
|
12
|
-
* "pid": 12345, // CLIProxy process PID
|
|
13
|
-
* "sessions": ["abc123", "def456"], // Active session IDs
|
|
14
|
-
* "startedAt": "2024-01-01T00:00:00Z"
|
|
15
|
-
* }
|
|
16
|
-
*/
|
|
17
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
-
if (mod && mod.__esModule) return mod;
|
|
35
|
-
var result = {};
|
|
36
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
-
__setModuleDefault(result, mod);
|
|
38
|
-
return result;
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.cleanupOrphanedSessions = exports.hasActiveSessions = exports.getSessionCount = exports.unregisterSession = exports.registerSession = exports.getExistingProxy = void 0;
|
|
42
|
-
const fs = __importStar(require("fs"));
|
|
43
|
-
const path = __importStar(require("path"));
|
|
44
|
-
const crypto = __importStar(require("crypto"));
|
|
45
|
-
const config_generator_1 = require("./config-generator");
|
|
46
|
-
/** Generate unique session ID */
|
|
47
|
-
function generateSessionId() {
|
|
48
|
-
return crypto.randomBytes(8).toString('hex');
|
|
49
|
-
}
|
|
50
|
-
/** Get path to session lock file */
|
|
51
|
-
function getSessionLockPath() {
|
|
52
|
-
return path.join((0, config_generator_1.getCliproxyDir)(), 'sessions.json');
|
|
53
|
-
}
|
|
54
|
-
/** Read session lock file (returns null if not exists or invalid) */
|
|
55
|
-
function readSessionLock() {
|
|
56
|
-
const lockPath = getSessionLockPath();
|
|
57
|
-
try {
|
|
58
|
-
if (!fs.existsSync(lockPath)) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
const content = fs.readFileSync(lockPath, 'utf-8');
|
|
62
|
-
const lock = JSON.parse(content);
|
|
63
|
-
// Validate structure
|
|
64
|
-
if (typeof lock.port !== 'number' ||
|
|
65
|
-
typeof lock.pid !== 'number' ||
|
|
66
|
-
!Array.isArray(lock.sessions)) {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
return lock;
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
/** Write session lock file */
|
|
76
|
-
function writeSessionLock(lock) {
|
|
77
|
-
const lockPath = getSessionLockPath();
|
|
78
|
-
const dir = path.dirname(lockPath);
|
|
79
|
-
if (!fs.existsSync(dir)) {
|
|
80
|
-
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
81
|
-
}
|
|
82
|
-
fs.writeFileSync(lockPath, JSON.stringify(lock, null, 2), { mode: 0o600 });
|
|
83
|
-
}
|
|
84
|
-
/** Delete session lock file */
|
|
85
|
-
function deleteSessionLock() {
|
|
86
|
-
const lockPath = getSessionLockPath();
|
|
87
|
-
try {
|
|
88
|
-
if (fs.existsSync(lockPath)) {
|
|
89
|
-
fs.unlinkSync(lockPath);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
// Ignore errors on cleanup
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/** Check if a PID is still running */
|
|
97
|
-
function isProcessRunning(pid) {
|
|
98
|
-
try {
|
|
99
|
-
// Sending signal 0 checks if process exists without killing it
|
|
100
|
-
process.kill(pid, 0);
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
catch {
|
|
104
|
-
return false;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Check if there's an existing proxy running that we can reuse.
|
|
109
|
-
* Returns the existing lock if proxy is healthy, null otherwise.
|
|
110
|
-
*/
|
|
111
|
-
function getExistingProxy(port) {
|
|
112
|
-
const lock = readSessionLock();
|
|
113
|
-
if (!lock) {
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
// Verify port matches
|
|
117
|
-
if (lock.port !== port) {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
// Verify proxy process is still running
|
|
121
|
-
if (!isProcessRunning(lock.pid)) {
|
|
122
|
-
// Proxy crashed - clean up stale lock
|
|
123
|
-
deleteSessionLock();
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
return lock;
|
|
127
|
-
}
|
|
128
|
-
exports.getExistingProxy = getExistingProxy;
|
|
129
|
-
/**
|
|
130
|
-
* Register a new session with the proxy.
|
|
131
|
-
* Call this when starting a new CCS session that will use an existing proxy.
|
|
132
|
-
* @returns Session ID for this session
|
|
133
|
-
*/
|
|
134
|
-
function registerSession(port, proxyPid) {
|
|
135
|
-
const sessionId = generateSessionId();
|
|
136
|
-
const existingLock = readSessionLock();
|
|
137
|
-
if (existingLock && existingLock.port === port && existingLock.pid === proxyPid) {
|
|
138
|
-
// Add to existing sessions
|
|
139
|
-
existingLock.sessions.push(sessionId);
|
|
140
|
-
writeSessionLock(existingLock);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
// Create new lock (first session for this proxy)
|
|
144
|
-
const newLock = {
|
|
145
|
-
port,
|
|
146
|
-
pid: proxyPid,
|
|
147
|
-
sessions: [sessionId],
|
|
148
|
-
startedAt: new Date().toISOString(),
|
|
149
|
-
};
|
|
150
|
-
writeSessionLock(newLock);
|
|
151
|
-
}
|
|
152
|
-
return sessionId;
|
|
153
|
-
}
|
|
154
|
-
exports.registerSession = registerSession;
|
|
155
|
-
/**
|
|
156
|
-
* Unregister a session from the proxy.
|
|
157
|
-
* @returns true if this was the last session (proxy should be killed)
|
|
158
|
-
*/
|
|
159
|
-
function unregisterSession(sessionId) {
|
|
160
|
-
const lock = readSessionLock();
|
|
161
|
-
if (!lock) {
|
|
162
|
-
// No lock file - assume we're the only session
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
// Remove this session from the list
|
|
166
|
-
const index = lock.sessions.indexOf(sessionId);
|
|
167
|
-
if (index !== -1) {
|
|
168
|
-
lock.sessions.splice(index, 1);
|
|
169
|
-
}
|
|
170
|
-
// Check if any sessions remain
|
|
171
|
-
if (lock.sessions.length === 0) {
|
|
172
|
-
// Last session - clean up lock file
|
|
173
|
-
deleteSessionLock();
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
// Other sessions still active - keep proxy running
|
|
177
|
-
writeSessionLock(lock);
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
exports.unregisterSession = unregisterSession;
|
|
181
|
-
/**
|
|
182
|
-
* Get current session count for the proxy.
|
|
183
|
-
*/
|
|
184
|
-
function getSessionCount() {
|
|
185
|
-
const lock = readSessionLock();
|
|
186
|
-
if (!lock) {
|
|
187
|
-
return 0;
|
|
188
|
-
}
|
|
189
|
-
return lock.sessions.length;
|
|
190
|
-
}
|
|
191
|
-
exports.getSessionCount = getSessionCount;
|
|
192
|
-
/**
|
|
193
|
-
* Check if proxy has any active sessions.
|
|
194
|
-
* Used to determine if a "zombie" proxy should be killed.
|
|
195
|
-
*/
|
|
196
|
-
function hasActiveSessions() {
|
|
197
|
-
const lock = readSessionLock();
|
|
198
|
-
if (!lock) {
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
|
-
// Verify proxy is still running
|
|
202
|
-
if (!isProcessRunning(lock.pid)) {
|
|
203
|
-
deleteSessionLock();
|
|
204
|
-
return false;
|
|
205
|
-
}
|
|
206
|
-
return lock.sessions.length > 0;
|
|
207
|
-
}
|
|
208
|
-
exports.hasActiveSessions = hasActiveSessions;
|
|
209
|
-
/**
|
|
210
|
-
* Clean up orphaned sessions (when proxy crashes).
|
|
211
|
-
* Called on startup to ensure clean state.
|
|
212
|
-
*/
|
|
213
|
-
function cleanupOrphanedSessions(port) {
|
|
214
|
-
const lock = readSessionLock();
|
|
215
|
-
if (!lock) {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
|
-
// If port doesn't match, this lock is for a different proxy
|
|
219
|
-
if (lock.port !== port) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
// If proxy is dead, clean up lock
|
|
223
|
-
if (!isProcessRunning(lock.pid)) {
|
|
224
|
-
deleteSessionLock();
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
exports.cleanupOrphanedSessions = cleanupOrphanedSessions;
|
|
228
|
-
//# sourceMappingURL=session-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.js","sourceRoot":"","sources":["../../src/cliproxy/session-tracker.ts"],"names":[],"mappings":"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"}
|