claude-chrome-parallel 2.1.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/LICENSE +21 -0
- package/README.md +353 -0
- package/dist/cdp/client.d.ts +120 -0
- package/dist/cdp/client.d.ts.map +1 -0
- package/dist/cdp/client.js +345 -0
- package/dist/cdp/client.js.map +1 -0
- package/dist/chrome/launcher.d.ts +42 -0
- package/dist/chrome/launcher.d.ts.map +1 -0
- package/dist/chrome/launcher.js +256 -0
- package/dist/chrome/launcher.js.map +1 -0
- package/dist/cli/claude-session.d.ts +11 -0
- package/dist/cli/claude-session.js +349 -0
- package/dist/cli/claude-session.js.map +1 -0
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.js +562 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.d.ts +16 -0
- package/dist/cli/install.js +185 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/uninstall.d.ts +7 -0
- package/dist/cli/uninstall.js +126 -0
- package/dist/cli/uninstall.js.map +1 -0
- package/dist/config/config-recovery.d.ts +69 -0
- package/dist/config/config-recovery.d.ts.map +1 -0
- package/dist/config/config-recovery.js +302 -0
- package/dist/config/config-recovery.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +22 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/session-isolator.d.ts +76 -0
- package/dist/config/session-isolator.d.ts.map +1 -0
- package/dist/config/session-isolator.js +268 -0
- package/dist/config/session-isolator.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/master/index.d.ts +18 -0
- package/dist/master/index.d.ts.map +1 -0
- package/dist/master/index.js +75 -0
- package/dist/master/index.js.map +1 -0
- package/dist/master/ipc-server.d.ts +21 -0
- package/dist/master/ipc-server.d.ts.map +1 -0
- package/dist/master/ipc-server.js +175 -0
- package/dist/master/ipc-server.js.map +1 -0
- package/dist/master/request-handler.d.ts +17 -0
- package/dist/master/request-handler.d.ts.map +1 -0
- package/dist/master/request-handler.js +134 -0
- package/dist/master/request-handler.js.map +1 -0
- package/dist/master/session-registry.d.ts +120 -0
- package/dist/master/session-registry.d.ts.map +1 -0
- package/dist/master/session-registry.js +247 -0
- package/dist/master/session-registry.js.map +1 -0
- package/dist/mcp-server.d.ts +69 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +301 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/session-manager.d.ts +107 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +322 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/shared/ipc-constants.d.ts +16 -0
- package/dist/shared/ipc-constants.d.ts.map +1 -0
- package/dist/shared/ipc-constants.js +66 -0
- package/dist/shared/ipc-constants.js.map +1 -0
- package/dist/shared/ipc-protocol.d.ts +33 -0
- package/dist/shared/ipc-protocol.d.ts.map +1 -0
- package/dist/shared/ipc-protocol.js +20 -0
- package/dist/shared/ipc-protocol.js.map +1 -0
- package/dist/tools/computer.d.ts +6 -0
- package/dist/tools/computer.d.ts.map +1 -0
- package/dist/tools/computer.js +426 -0
- package/dist/tools/computer.js.map +1 -0
- package/dist/tools/find.d.ts +6 -0
- package/dist/tools/find.d.ts.map +1 -0
- package/dist/tools/find.js +242 -0
- package/dist/tools/find.js.map +1 -0
- package/dist/tools/form-input.d.ts +6 -0
- package/dist/tools/form-input.d.ts.map +1 -0
- package/dist/tools/form-input.js +181 -0
- package/dist/tools/form-input.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +26 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/javascript.d.ts +6 -0
- package/dist/tools/javascript.d.ts.map +1 -0
- package/dist/tools/javascript.js +134 -0
- package/dist/tools/javascript.js.map +1 -0
- package/dist/tools/navigate.d.ts +6 -0
- package/dist/tools/navigate.d.ts.map +1 -0
- package/dist/tools/navigate.js +155 -0
- package/dist/tools/navigate.js.map +1 -0
- package/dist/tools/read-page.d.ts +6 -0
- package/dist/tools/read-page.d.ts.map +1 -0
- package/dist/tools/read-page.js +182 -0
- package/dist/tools/read-page.js.map +1 -0
- package/dist/tools/tabs-context.d.ts +6 -0
- package/dist/tools/tabs-context.d.ts.map +1 -0
- package/dist/tools/tabs-context.js +73 -0
- package/dist/tools/tabs-context.js.map +1 -0
- package/dist/tools/tabs-create.d.ts +6 -0
- package/dist/tools/tabs-create.d.ts.map +1 -0
- package/dist/tools/tabs-create.js +49 -0
- package/dist/tools/tabs-create.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +54 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +14 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/session.d.ts +28 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +6 -0
- package/dist/types/session.js.map +1 -0
- package/dist/utils/atomic-file.d.ts +50 -0
- package/dist/utils/atomic-file.d.ts.map +1 -0
- package/dist/utils/atomic-file.js +217 -0
- package/dist/utils/atomic-file.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json-validator.d.ts +40 -0
- package/dist/utils/json-validator.d.ts.map +1 -0
- package/dist/utils/json-validator.js +295 -0
- package/dist/utils/json-validator.js.map +1 -0
- package/dist/utils/ref-id-manager.d.ts +26 -0
- package/dist/utils/ref-id-manager.d.ts.map +1 -0
- package/dist/utils/ref-id-manager.js +81 -0
- package/dist/utils/ref-id-manager.js.map +1 -0
- package/dist/utils/request-queue.d.ts +37 -0
- package/dist/utils/request-queue.d.ts.map +1 -0
- package/dist/utils/request-queue.js +110 -0
- package/dist/utils/request-queue.js.map +1 -0
- package/dist/worker/auto-master.d.ts +24 -0
- package/dist/worker/auto-master.d.ts.map +1 -0
- package/dist/worker/auto-master.js +135 -0
- package/dist/worker/auto-master.js.map +1 -0
- package/dist/worker/index.d.ts +25 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +93 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/ipc-client.d.ts +26 -0
- package/dist/worker/ipc-client.d.ts.map +1 -0
- package/dist/worker/ipc-client.js +211 -0
- package/dist/worker/ipc-client.js.map +1 -0
- package/dist/worker/remote-session-manager.d.ts +114 -0
- package/dist/worker/remote-session-manager.d.ts.map +1 -0
- package/dist/worker/remote-session-manager.js +151 -0
- package/dist/worker/remote-session-manager.js.map +1 -0
- package/dist/worker/tools.d.ts +7 -0
- package/dist/worker/tools.d.ts.map +1 -0
- package/dist/worker/tools.js +340 -0
- package/dist/worker/tools.js.map +1 -0
- package/dist/worker/worker-mcp-server.d.ts +70 -0
- package/dist/worker/worker-mcp-server.d.ts.map +1 -0
- package/dist/worker/worker-mcp-server.js +295 -0
- package/dist/worker/worker-mcp-server.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Claude Session - Standalone wrapper for running Claude Code in isolated environments
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* claude-session [claude-args...] - Start Claude Code with isolated config
|
|
8
|
+
* claude-session --list - List active sessions
|
|
9
|
+
* claude-session --cleanup - Clean up stale sessions
|
|
10
|
+
* claude-session --recover - Recover corrupted .claude.json
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
+
var ownKeys = function(o) {
|
|
30
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
+
var ar = [];
|
|
32
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
return ownKeys(o);
|
|
36
|
+
};
|
|
37
|
+
return function (mod) {
|
|
38
|
+
if (mod && mod.__esModule) return mod;
|
|
39
|
+
var result = {};
|
|
40
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
+
__setModuleDefault(result, mod);
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
})();
|
|
45
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const os = __importStar(require("os"));
|
|
49
|
+
const child_process_1 = require("child_process");
|
|
50
|
+
const BASE_DIR = path.join(os.homedir(), '.claude-chrome-parallel');
|
|
51
|
+
const SESSIONS_DIR = path.join(BASE_DIR, 'sessions');
|
|
52
|
+
const BACKUPS_DIR = path.join(BASE_DIR, 'backups');
|
|
53
|
+
/**
|
|
54
|
+
* Generate unique session ID
|
|
55
|
+
*/
|
|
56
|
+
function generateSessionId() {
|
|
57
|
+
const timestamp = Date.now().toString(36);
|
|
58
|
+
const random = Math.random().toString(36).substring(2, 8);
|
|
59
|
+
return `${timestamp}-${random}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if JSON is valid
|
|
63
|
+
*/
|
|
64
|
+
function isValidJson(content) {
|
|
65
|
+
try {
|
|
66
|
+
JSON.parse(content);
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create backup of config
|
|
75
|
+
*/
|
|
76
|
+
function createBackup(configPath) {
|
|
77
|
+
if (!fs.existsSync(configPath))
|
|
78
|
+
return null;
|
|
79
|
+
fs.mkdirSync(BACKUPS_DIR, { recursive: true });
|
|
80
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
81
|
+
const backupPath = path.join(BACKUPS_DIR, `.claude.json.${timestamp}.bak`);
|
|
82
|
+
fs.copyFileSync(configPath, backupPath);
|
|
83
|
+
return backupPath;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* List all sessions
|
|
87
|
+
*/
|
|
88
|
+
function listSessions() {
|
|
89
|
+
if (!fs.existsSync(SESSIONS_DIR))
|
|
90
|
+
return [];
|
|
91
|
+
const sessions = [];
|
|
92
|
+
const entries = fs.readdirSync(SESSIONS_DIR, { withFileTypes: true });
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
if (!entry.isDirectory())
|
|
95
|
+
continue;
|
|
96
|
+
const metadataPath = path.join(SESSIONS_DIR, entry.name, '.session-metadata.json');
|
|
97
|
+
if (fs.existsSync(metadataPath)) {
|
|
98
|
+
try {
|
|
99
|
+
const metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf8'));
|
|
100
|
+
sessions.push(metadata);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Skip invalid metadata
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return sessions.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Cleanup stale sessions
|
|
111
|
+
*/
|
|
112
|
+
function cleanupSessions(maxAgeHours = 24) {
|
|
113
|
+
if (!fs.existsSync(SESSIONS_DIR))
|
|
114
|
+
return 0;
|
|
115
|
+
const maxAgeMs = maxAgeHours * 60 * 60 * 1000;
|
|
116
|
+
const now = Date.now();
|
|
117
|
+
let removed = 0;
|
|
118
|
+
const entries = fs.readdirSync(SESSIONS_DIR, { withFileTypes: true });
|
|
119
|
+
for (const entry of entries) {
|
|
120
|
+
if (!entry.isDirectory())
|
|
121
|
+
continue;
|
|
122
|
+
const sessionDir = path.join(SESSIONS_DIR, entry.name);
|
|
123
|
+
const metadataPath = path.join(sessionDir, '.session-metadata.json');
|
|
124
|
+
let shouldDelete = false;
|
|
125
|
+
if (fs.existsSync(metadataPath)) {
|
|
126
|
+
try {
|
|
127
|
+
const metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf8'));
|
|
128
|
+
const age = now - new Date(metadata.createdAt).getTime();
|
|
129
|
+
shouldDelete = age > maxAgeMs;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
shouldDelete = true;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
shouldDelete = true;
|
|
137
|
+
}
|
|
138
|
+
if (shouldDelete) {
|
|
139
|
+
fs.rmSync(sessionDir, { recursive: true, force: true });
|
|
140
|
+
removed++;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return removed;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Recover corrupted config
|
|
147
|
+
*/
|
|
148
|
+
function recoverConfig() {
|
|
149
|
+
const configPath = path.join(os.homedir(), '.claude.json');
|
|
150
|
+
if (!fs.existsSync(configPath)) {
|
|
151
|
+
console.log('No .claude.json found - nothing to recover');
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
const content = fs.readFileSync(configPath, 'utf8');
|
|
155
|
+
if (isValidJson(content)) {
|
|
156
|
+
console.log('Config is valid - no recovery needed');
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
console.log('Config is corrupted - attempting recovery...');
|
|
160
|
+
// Backup corrupted file
|
|
161
|
+
createBackup(configPath);
|
|
162
|
+
// Try to extract valid JSON from concatenated content
|
|
163
|
+
if (content.includes('}{')) {
|
|
164
|
+
let depth = 0;
|
|
165
|
+
let inString = false;
|
|
166
|
+
let escapeNext = false;
|
|
167
|
+
for (let i = 0; i < content.length; i++) {
|
|
168
|
+
const char = content[i];
|
|
169
|
+
if (escapeNext) {
|
|
170
|
+
escapeNext = false;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (char === '\\' && inString) {
|
|
174
|
+
escapeNext = true;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (char === '"') {
|
|
178
|
+
inString = !inString;
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (inString)
|
|
182
|
+
continue;
|
|
183
|
+
if (char === '{')
|
|
184
|
+
depth++;
|
|
185
|
+
else if (char === '}') {
|
|
186
|
+
depth--;
|
|
187
|
+
if (depth === 0) {
|
|
188
|
+
const firstObject = content.substring(0, i + 1);
|
|
189
|
+
try {
|
|
190
|
+
JSON.parse(firstObject);
|
|
191
|
+
fs.writeFileSync(configPath, firstObject);
|
|
192
|
+
console.log('Recovered first JSON object');
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
const secondObject = content.substring(i + 1);
|
|
197
|
+
try {
|
|
198
|
+
JSON.parse(secondObject);
|
|
199
|
+
fs.writeFileSync(configPath, secondObject);
|
|
200
|
+
console.log('Recovered second JSON object');
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Try to restore from backup
|
|
212
|
+
if (fs.existsSync(BACKUPS_DIR)) {
|
|
213
|
+
const backups = fs.readdirSync(BACKUPS_DIR)
|
|
214
|
+
.filter(f => f.startsWith('.claude.json.'))
|
|
215
|
+
.sort()
|
|
216
|
+
.reverse();
|
|
217
|
+
for (const backup of backups) {
|
|
218
|
+
const backupContent = fs.readFileSync(path.join(BACKUPS_DIR, backup), 'utf8');
|
|
219
|
+
if (isValidJson(backupContent)) {
|
|
220
|
+
fs.writeFileSync(configPath, backupContent);
|
|
221
|
+
console.log(`Restored from backup: ${backup}`);
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Last resort: create empty config
|
|
227
|
+
fs.writeFileSync(configPath, '{}');
|
|
228
|
+
console.log('Created new empty config (backup of corrupted file saved)');
|
|
229
|
+
return true;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Start Claude Code with isolated config
|
|
233
|
+
*/
|
|
234
|
+
function startIsolatedSession(claudeArgs) {
|
|
235
|
+
const sessionId = generateSessionId();
|
|
236
|
+
const sessionDir = path.join(SESSIONS_DIR, sessionId);
|
|
237
|
+
console.log(`Session: ${sessionId}`);
|
|
238
|
+
// Create session directory
|
|
239
|
+
fs.mkdirSync(sessionDir, { recursive: true });
|
|
240
|
+
// Copy existing config
|
|
241
|
+
const originalConfig = path.join(os.homedir(), '.claude.json');
|
|
242
|
+
const sessionConfig = path.join(sessionDir, '.claude.json');
|
|
243
|
+
if (fs.existsSync(originalConfig)) {
|
|
244
|
+
const content = fs.readFileSync(originalConfig, 'utf8');
|
|
245
|
+
if (isValidJson(content)) {
|
|
246
|
+
fs.copyFileSync(originalConfig, sessionConfig);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
console.warn('Warning: Original config corrupted, starting fresh');
|
|
250
|
+
fs.writeFileSync(sessionConfig, '{}');
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
fs.writeFileSync(sessionConfig, '{}');
|
|
255
|
+
}
|
|
256
|
+
// Create metadata
|
|
257
|
+
const metadata = {
|
|
258
|
+
id: sessionId,
|
|
259
|
+
createdAt: new Date().toISOString(),
|
|
260
|
+
originalHome: os.homedir(),
|
|
261
|
+
pid: process.pid,
|
|
262
|
+
};
|
|
263
|
+
fs.writeFileSync(path.join(sessionDir, '.session-metadata.json'), JSON.stringify(metadata, null, 2));
|
|
264
|
+
console.log('Starting Claude Code...\n');
|
|
265
|
+
// Set up isolated environment
|
|
266
|
+
const env = {
|
|
267
|
+
...process.env,
|
|
268
|
+
HOME: sessionDir,
|
|
269
|
+
USERPROFILE: sessionDir,
|
|
270
|
+
CLAUDE_CONFIG_DIR: sessionDir,
|
|
271
|
+
};
|
|
272
|
+
// Start Claude
|
|
273
|
+
const claudeCmd = process.platform === 'win32' ? 'claude.cmd' : 'claude';
|
|
274
|
+
const child = (0, child_process_1.spawn)(claudeCmd, claudeArgs, {
|
|
275
|
+
env,
|
|
276
|
+
stdio: 'inherit',
|
|
277
|
+
shell: true,
|
|
278
|
+
});
|
|
279
|
+
// Cleanup on exit
|
|
280
|
+
const cleanup = () => {
|
|
281
|
+
console.log('\nCleaning up session...');
|
|
282
|
+
try {
|
|
283
|
+
fs.rmSync(sessionDir, { recursive: true, force: true });
|
|
284
|
+
}
|
|
285
|
+
catch {
|
|
286
|
+
// Ignore cleanup errors
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
child.on('close', (code) => {
|
|
290
|
+
cleanup();
|
|
291
|
+
process.exit(code ?? 0);
|
|
292
|
+
});
|
|
293
|
+
process.on('SIGINT', () => child.kill('SIGINT'));
|
|
294
|
+
process.on('SIGTERM', () => child.kill('SIGTERM'));
|
|
295
|
+
}
|
|
296
|
+
// Main
|
|
297
|
+
const args = process.argv.slice(2);
|
|
298
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
299
|
+
console.log(`
|
|
300
|
+
Claude Session - Run Claude Code with isolated config
|
|
301
|
+
|
|
302
|
+
Usage:
|
|
303
|
+
claude-session [claude-args...] Start Claude Code with isolated config
|
|
304
|
+
claude-session --list List active sessions
|
|
305
|
+
claude-session --cleanup [hours] Clean up sessions older than N hours (default: 24)
|
|
306
|
+
claude-session --recover Recover corrupted .claude.json
|
|
307
|
+
claude-session --help Show this help
|
|
308
|
+
|
|
309
|
+
Examples:
|
|
310
|
+
claude-session Start interactive session
|
|
311
|
+
claude-session "Fix the bug" Start with prompt
|
|
312
|
+
claude-session --list Show active sessions
|
|
313
|
+
claude-session --cleanup 12 Clean up sessions older than 12 hours
|
|
314
|
+
`);
|
|
315
|
+
process.exit(0);
|
|
316
|
+
}
|
|
317
|
+
if (args.includes('--list')) {
|
|
318
|
+
const sessions = listSessions();
|
|
319
|
+
if (sessions.length === 0) {
|
|
320
|
+
console.log('No active sessions');
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
console.log(`Active sessions (${sessions.length}):\n`);
|
|
324
|
+
for (const session of sessions) {
|
|
325
|
+
const age = Date.now() - new Date(session.createdAt).getTime();
|
|
326
|
+
const ageStr = age < 60000
|
|
327
|
+
? `${Math.floor(age / 1000)}s ago`
|
|
328
|
+
: age < 3600000
|
|
329
|
+
? `${Math.floor(age / 60000)}m ago`
|
|
330
|
+
: `${Math.floor(age / 3600000)}h ago`;
|
|
331
|
+
console.log(` ${session.id} (${ageStr})`);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
process.exit(0);
|
|
335
|
+
}
|
|
336
|
+
if (args.includes('--cleanup')) {
|
|
337
|
+
const hoursIndex = args.indexOf('--cleanup') + 1;
|
|
338
|
+
const hours = hoursIndex < args.length ? parseInt(args[hoursIndex], 10) || 24 : 24;
|
|
339
|
+
const removed = cleanupSessions(hours);
|
|
340
|
+
console.log(`Cleaned up ${removed} stale session(s)`);
|
|
341
|
+
process.exit(0);
|
|
342
|
+
}
|
|
343
|
+
if (args.includes('--recover')) {
|
|
344
|
+
recoverConfig();
|
|
345
|
+
process.exit(0);
|
|
346
|
+
}
|
|
347
|
+
// Start isolated session
|
|
348
|
+
startIsolatedSession(args);
|
|
349
|
+
//# sourceMappingURL=claude-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-session.js","sourceRoot":"","sources":["../../cli/claude-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CLI for Claude Chrome Parallel
|
|
4
|
+
*
|
|
5
|
+
* Commands:
|
|
6
|
+
* - install: Install extension and native messaging host
|
|
7
|
+
* - uninstall: Remove extension and native messaging host
|
|
8
|
+
* - serve: Start MCP server for Claude Code
|
|
9
|
+
* - sessions: List or clear sessions
|
|
10
|
+
* - launch: Start Claude Code with isolated config
|
|
11
|
+
* - doctor: Check installation status
|
|
12
|
+
* - recover: Recover corrupted .claude.json
|
|
13
|
+
*/
|
|
14
|
+
export {};
|