forkoff 1.0.11 → 1.0.13

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 (57) hide show
  1. package/README.md +7 -4
  2. package/dist/__tests__/cli-commands.test.d.ts +6 -0
  3. package/dist/__tests__/cli-commands.test.d.ts.map +1 -0
  4. package/dist/__tests__/cli-commands.test.js +213 -0
  5. package/dist/__tests__/cli-commands.test.js.map +1 -0
  6. package/dist/__tests__/startup.test.d.ts +11 -0
  7. package/dist/__tests__/startup.test.d.ts.map +1 -0
  8. package/dist/__tests__/startup.test.js +234 -0
  9. package/dist/__tests__/startup.test.js.map +1 -0
  10. package/dist/__tests__/tools/claude-process.test.js +221 -15
  11. package/dist/__tests__/tools/claude-process.test.js.map +1 -1
  12. package/dist/__tests__/tools/permission-hook.test.d.ts +17 -0
  13. package/dist/__tests__/tools/permission-hook.test.d.ts.map +1 -0
  14. package/dist/__tests__/tools/permission-hook.test.js +616 -0
  15. package/dist/__tests__/tools/permission-hook.test.js.map +1 -0
  16. package/dist/__tests__/tools/permission-ipc.test.d.ts +11 -0
  17. package/dist/__tests__/tools/permission-ipc.test.d.ts.map +1 -0
  18. package/dist/__tests__/tools/permission-ipc.test.js +612 -0
  19. package/dist/__tests__/tools/permission-ipc.test.js.map +1 -0
  20. package/dist/config.js +1 -1
  21. package/dist/index.d.ts +2 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1010 -898
  24. package/dist/index.js.map +1 -1
  25. package/dist/startup.d.ts.map +1 -1
  26. package/dist/startup.js +45 -15
  27. package/dist/startup.js.map +1 -1
  28. package/dist/tools/__tests__/claude-sessions.test.d.ts +2 -0
  29. package/dist/tools/__tests__/claude-sessions.test.d.ts.map +1 -0
  30. package/dist/tools/__tests__/claude-sessions.test.js +306 -0
  31. package/dist/tools/__tests__/claude-sessions.test.js.map +1 -0
  32. package/dist/tools/claude-process.d.ts +81 -4
  33. package/dist/tools/claude-process.d.ts.map +1 -1
  34. package/dist/tools/claude-process.js +332 -20
  35. package/dist/tools/claude-process.js.map +1 -1
  36. package/dist/tools/claude-sessions.d.ts +5 -0
  37. package/dist/tools/claude-sessions.d.ts.map +1 -1
  38. package/dist/tools/claude-sessions.js +16 -2
  39. package/dist/tools/claude-sessions.js.map +1 -1
  40. package/dist/tools/index.d.ts +1 -0
  41. package/dist/tools/index.d.ts.map +1 -1
  42. package/dist/tools/index.js +3 -1
  43. package/dist/tools/index.js.map +1 -1
  44. package/dist/tools/permission-hook.d.ts +41 -0
  45. package/dist/tools/permission-hook.d.ts.map +1 -0
  46. package/dist/tools/permission-hook.js +312 -0
  47. package/dist/tools/permission-hook.js.map +1 -0
  48. package/dist/tools/permission-ipc.d.ts +109 -0
  49. package/dist/tools/permission-ipc.d.ts.map +1 -0
  50. package/dist/tools/permission-ipc.js +295 -0
  51. package/dist/tools/permission-ipc.js.map +1 -0
  52. package/dist/websocket.d.ts +14 -0
  53. package/dist/websocket.d.ts.map +1 -1
  54. package/dist/websocket.js +34 -4
  55. package/dist/websocket.js.map +1 -1
  56. package/jest.config.js +3 -0
  57. package/package.json +1 -1
@@ -45,6 +45,8 @@ const cross_spawn_1 = __importDefault(require("cross-spawn"));
45
45
  const events_1 = require("events");
46
46
  const os = __importStar(require("os"));
47
47
  const path = __importStar(require("path"));
48
+ const fs = __importStar(require("fs"));
49
+ const permission_ipc_1 = require("./permission-ipc");
48
50
  /**
49
51
  * Regular expression patterns used to detect approval prompts in Claude CLI output.
50
52
  * When any of these patterns match the output, an approval request is triggered
@@ -115,6 +117,14 @@ class ClaudeProcessManager extends events_1.EventEmitter {
115
117
  this.closedSessions = new Map();
116
118
  /** Maximum number of auto-restarts per session to prevent chaos */
117
119
  this.MAX_AUTO_RESTARTS = 3;
120
+ /** Permission IPC managers per session */
121
+ this.permissionIpcManagers = new Map();
122
+ /** Track which process started each IPC manager (to avoid race conditions on close) */
123
+ this.ipcOwnerProcess = new Map();
124
+ /** Track directories where we've configured hooks */
125
+ this.hookConfiguredDirs = new Set();
126
+ /** Track sessions that mobile has explicitly taken over (via claude_resume_session) */
127
+ this.takenOverSessions = new Set();
118
128
  }
119
129
  /** Type-safe emit for known events */
120
130
  emit(event, ...args) {
@@ -127,7 +137,7 @@ class ClaudeProcessManager extends events_1.EventEmitter {
127
137
  /**
128
138
  * Start a new Claude session in the specified directory
129
139
  */
130
- async startSession(directory, terminalSessionId, dangerouslySkipPermissions) {
140
+ async startSession(directory, terminalSessionId, dangerouslySkipPermissions, interactivePermissions) {
131
141
  const resolvedDir = this.resolvePath(directory);
132
142
  // SDK flags for structured JSON communication
133
143
  const args = [
@@ -135,9 +145,18 @@ class ClaudeProcessManager extends events_1.EventEmitter {
135
145
  '--input-format', 'stream-json', // JSONL input to Claude
136
146
  '--verbose', // Complete messages
137
147
  ];
138
- // Add unrestricted mode flag when enabled from mobile
148
+ // Permission modes (in priority order):
149
+ // 1. dangerouslySkipPermissions → --dangerously-skip-permissions (full unrestricted access)
150
+ // 2. interactivePermissions → configure hooks for mobile approval (opt-in)
151
+ // 3. default → no hooks, Claude uses its own local permission mode
139
152
  if (dangerouslySkipPermissions) {
140
- args.push('--dangerouslySkipPermissions');
153
+ args.push('--dangerously-skip-permissions');
154
+ }
155
+ else if (interactivePermissions) {
156
+ // Configure PreToolUse hook for interactive approvals
157
+ this.configureHook(resolvedDir);
158
+ // Start IPC manager to bridge hook ↔ WebSocket
159
+ this.startPermissionIpc(terminalSessionId);
141
160
  }
142
161
  // SECURITY: Using cross-spawn instead of shell: true to prevent command injection
143
162
  const proc = (0, cross_spawn_1.default)('claude', args, {
@@ -146,13 +165,13 @@ class ClaudeProcessManager extends events_1.EventEmitter {
146
165
  stdio: ['pipe', 'pipe', 'pipe'],
147
166
  });
148
167
  this.setupProcessHandlers(terminalSessionId, proc, resolvedDir);
149
- this.processes.set(terminalSessionId, { terminalSessionId, process: proc, directory: resolvedDir, outputBuffer: [], wasAutoRestarted: false, dangerouslySkipPermissions: !!dangerouslySkipPermissions });
168
+ this.processes.set(terminalSessionId, { terminalSessionId, process: proc, directory: resolvedDir, outputBuffer: [], wasAutoRestarted: false, dangerouslySkipPermissions: !!dangerouslySkipPermissions, interactivePermissions: !!interactivePermissions });
150
169
  return { cwd: resolvedDir };
151
170
  }
152
171
  /**
153
172
  * Resume an existing Claude session
154
173
  */
155
- async resumeSession(sessionKey, directory, terminalSessionId, dangerouslySkipPermissions) {
174
+ async resumeSession(sessionKey, directory, terminalSessionId, dangerouslySkipPermissions, interactivePermissions) {
156
175
  const resolvedDir = this.resolvePath(directory);
157
176
  // SDK flags for structured JSON communication
158
177
  const args = [
@@ -161,13 +180,18 @@ class ClaudeProcessManager extends events_1.EventEmitter {
161
180
  '--input-format', 'stream-json', // JSONL input to Claude
162
181
  '--verbose', // Complete messages
163
182
  ];
164
- // When unrestricted mode is enabled, use --dangerouslySkipPermissions for full access
165
- // Otherwise fall back to --permission-mode acceptEdits for auto-approving file edits
183
+ // Permission modes (in priority order):
184
+ // 1. dangerouslySkipPermissions --dangerously-skip-permissions (full unrestricted access)
185
+ // 2. interactivePermissions → configure hooks for mobile approval (opt-in)
186
+ // 3. default → no hooks, Claude uses its own local permission mode
166
187
  if (dangerouslySkipPermissions) {
167
- args.push('--dangerouslySkipPermissions');
188
+ args.push('--dangerously-skip-permissions');
168
189
  }
169
- else {
170
- args.push('--permission-mode', 'acceptEdits');
190
+ else if (interactivePermissions) {
191
+ // Configure PreToolUse hook for interactive approvals
192
+ this.configureHook(resolvedDir);
193
+ // Start IPC manager to bridge hook ↔ WebSocket
194
+ this.startPermissionIpc(terminalSessionId, sessionKey);
171
195
  }
172
196
  console.log(`[Claude Process] Spawning: claude ${args.join(' ')}`);
173
197
  // SECURITY: Using cross-spawn instead of shell: true to prevent command injection
@@ -177,7 +201,7 @@ class ClaudeProcessManager extends events_1.EventEmitter {
177
201
  stdio: ['pipe', 'pipe', 'pipe'],
178
202
  });
179
203
  this.setupProcessHandlers(terminalSessionId, proc, resolvedDir, sessionKey);
180
- this.processes.set(terminalSessionId, { terminalSessionId, process: proc, directory: resolvedDir, sessionKey, outputBuffer: [], wasAutoRestarted: false, dangerouslySkipPermissions: !!dangerouslySkipPermissions });
204
+ this.processes.set(terminalSessionId, { terminalSessionId, process: proc, directory: resolvedDir, sessionKey, outputBuffer: [], wasAutoRestarted: false, dangerouslySkipPermissions: !!dangerouslySkipPermissions, interactivePermissions: !!interactivePermissions });
181
205
  // Store session info for future message sends (needed since we spawn fresh process per message)
182
206
  this.closedSessions.set(terminalSessionId, {
183
207
  sessionKey,
@@ -186,6 +210,7 @@ class ClaudeProcessManager extends events_1.EventEmitter {
186
210
  lastExitTime: Date.now(),
187
211
  restartCount: 0,
188
212
  dangerouslySkipPermissions: !!dangerouslySkipPermissions,
213
+ interactivePermissions: !!interactivePermissions,
189
214
  });
190
215
  return { cwd: resolvedDir };
191
216
  }
@@ -216,6 +241,13 @@ class ClaudeProcessManager extends events_1.EventEmitter {
216
241
  console.log(`[Claude Process] No session info found for ${terminalSessionId}`);
217
242
  return false;
218
243
  }
244
+ // If the session key is mobile-generated (not a real Claude session), start fresh
245
+ // instead of trying --resume with a non-existent key. The session_id capture in
246
+ // setupProcessHandlers will store the real key for subsequent messages.
247
+ if (restartInfo?.isRealSession === false) {
248
+ console.log(`[Claude Process] Session key is mobile-generated — starting fresh session instead of --resume`);
249
+ return this.startAndSendMessage(directory, terminalSessionId, input, restartInfo.dangerouslySkipPermissions, restartInfo.interactivePermissions);
250
+ }
219
251
  // Spawn a fresh Claude process for this message
220
252
  // IMPORTANT: We must write to stdin immediately after spawn - Claude CLI with
221
253
  // stream-json input format exits if it doesn't receive input quickly
@@ -230,7 +262,7 @@ class ClaudeProcessManager extends events_1.EventEmitter {
230
262
  };
231
263
  const jsonLine = JSON.stringify(message) + '\n';
232
264
  try {
233
- await this.resumeSession(sessionKey, directory, terminalSessionId, restartInfo?.dangerouslySkipPermissions);
265
+ await this.resumeSession(sessionKey, directory, terminalSessionId, restartInfo?.dangerouslySkipPermissions, restartInfo?.interactivePermissions);
234
266
  info = this.processes.get(terminalSessionId);
235
267
  }
236
268
  catch (err) {
@@ -271,13 +303,21 @@ class ClaudeProcessManager extends events_1.EventEmitter {
271
303
  * Used by auto-prompt quick actions where no prior session exists.
272
304
  * Spawns claude with stream-json flags, writes the JSONL user message to stdin right away.
273
305
  */
274
- async startAndSendMessage(directory, terminalSessionId, message) {
306
+ async startAndSendMessage(directory, terminalSessionId, message, dangerouslySkipPermissions, interactivePermissions) {
275
307
  const resolvedDir = this.resolvePath(directory);
276
308
  const args = [
277
309
  '--output-format', 'stream-json',
278
310
  '--input-format', 'stream-json',
279
311
  '--verbose',
280
312
  ];
313
+ // Permission modes (same priority as startSession/resumeSession)
314
+ if (dangerouslySkipPermissions) {
315
+ args.push('--dangerously-skip-permissions');
316
+ }
317
+ else if (interactivePermissions) {
318
+ this.configureHook(resolvedDir);
319
+ this.startPermissionIpc(terminalSessionId);
320
+ }
281
321
  const proc = (0, cross_spawn_1.default)('claude', args, {
282
322
  cwd: resolvedDir,
283
323
  env: { ...process.env, TERM: 'xterm-256color' },
@@ -290,6 +330,22 @@ class ClaudeProcessManager extends events_1.EventEmitter {
290
330
  directory: resolvedDir,
291
331
  outputBuffer: [],
292
332
  wasAutoRestarted: false,
333
+ dangerouslySkipPermissions: !!dangerouslySkipPermissions,
334
+ interactivePermissions: !!interactivePermissions,
335
+ });
336
+ // Mark session as taken over so subsequent user_message events go through
337
+ // sendInput() instead of creating another fresh session each time
338
+ this.markTakenOver(terminalSessionId);
339
+ // Store restart info so sendInput can find session details if the process
340
+ // is killed before the SDK result captures the real session_id
341
+ this.closedSessions.set(terminalSessionId, {
342
+ directory: resolvedDir,
343
+ lastExitCode: 0,
344
+ lastExitTime: Date.now(),
345
+ restartCount: 0,
346
+ dangerouslySkipPermissions: !!dangerouslySkipPermissions,
347
+ interactivePermissions: !!interactivePermissions,
348
+ isRealSession: false, // Will become true when session_id is captured from SDK output
293
349
  });
294
350
  // Format as JSONL user message and write immediately
295
351
  const jsonLine = JSON.stringify({
@@ -325,19 +381,34 @@ class ClaudeProcessManager extends events_1.EventEmitter {
325
381
  isClaudeSession(terminalSessionId) {
326
382
  return this.processes.has(terminalSessionId) || this.closedSessions.has(terminalSessionId);
327
383
  }
384
+ /**
385
+ * Check if CLI has a running process for this session (not just registered)
386
+ */
387
+ hasRunningProcess(terminalSessionId) {
388
+ const info = this.processes.get(terminalSessionId);
389
+ return !!(info?.process && info.process.exitCode === null);
390
+ }
328
391
  /**
329
392
  * Register session info without spawning a process.
330
393
  * Used when mobile opens a session view - we store the info so we can spawn later on first message.
331
394
  */
332
- registerSession(sessionKey, directory, terminalSessionId, dangerouslySkipPermissions) {
333
- console.log(`[Claude Process] Registering session: ${sessionKey} in ${directory}${dangerouslySkipPermissions ? ' (unrestricted)' : ''}`);
395
+ registerSession(sessionKey, directory, terminalSessionId, dangerouslySkipPermissions, interactivePermissions, isRealSession) {
396
+ // If we already captured a real Claude session key (from SDK output) for this
397
+ // terminalSessionId, preserve it. This prevents reconnects from overwriting
398
+ // the real key with the mobile-generated one (e.g. brainstorm-*).
399
+ const existing = this.closedSessions.get(terminalSessionId);
400
+ const effectiveSessionKey = (existing?.isRealSession && existing.sessionKey) ? existing.sessionKey : sessionKey;
401
+ const effectiveIsReal = (existing?.isRealSession) ? true : isRealSession;
402
+ console.log(`[Claude Process] Registering session: ${effectiveSessionKey} in ${directory}${dangerouslySkipPermissions ? ' (unrestricted)' : ''}${interactivePermissions ? ' (interactive)' : ''}${effectiveIsReal === false ? ' (fresh — no real Claude session)' : ''}`);
334
403
  this.closedSessions.set(terminalSessionId, {
335
- sessionKey,
404
+ sessionKey: effectiveSessionKey,
336
405
  directory,
337
- lastExitCode: 0,
406
+ lastExitCode: existing?.lastExitCode ?? 0,
338
407
  lastExitTime: Date.now(),
339
408
  restartCount: 0,
340
409
  dangerouslySkipPermissions,
410
+ interactivePermissions,
411
+ isRealSession: effectiveIsReal,
341
412
  });
342
413
  }
343
414
  /**
@@ -389,7 +460,12 @@ class ClaudeProcessManager extends events_1.EventEmitter {
389
460
  lastExitCode: 0,
390
461
  lastExitTime: Date.now(),
391
462
  restartCount: 0,
463
+ dangerouslySkipPermissions: processInfo.dangerouslySkipPermissions,
464
+ interactivePermissions: processInfo.interactivePermissions,
465
+ isRealSession: true, // Now we have a real Claude session key
392
466
  });
467
+ // Notify listeners so transcript watcher can switch to new session's JSONL file
468
+ this.emit('session_id_captured', { terminalSessionId, sessionId: message.session_id, directory });
393
469
  }
394
470
  }
395
471
  }
@@ -438,13 +514,20 @@ class ClaudeProcessManager extends events_1.EventEmitter {
438
514
  const restartCount = processInfo?.wasAutoRestarted
439
515
  ? (existingInfo?.restartCount ?? 0)
440
516
  : 0;
517
+ // Use processInfo.sessionKey if it was captured from SDK output (e.g. session_id
518
+ // in result message after startAndSendMessage), otherwise fall back to the closure's
519
+ // sessionKey from setupProcessHandlers. This ensures fresh sessions get the real key.
520
+ const resolvedSessionKey = processInfo?.sessionKey || sessionKey;
441
521
  this.closedSessions.set(terminalSessionId, {
442
- sessionKey,
522
+ sessionKey: resolvedSessionKey,
443
523
  directory,
444
524
  lastExitCode: exitCode,
445
525
  lastExitTime: Date.now(),
446
526
  restartCount,
447
527
  dangerouslySkipPermissions: processInfo?.dangerouslySkipPermissions,
528
+ interactivePermissions: processInfo?.interactivePermissions,
529
+ // Once we have a real session key (captured from SDK), mark as real
530
+ isRealSession: resolvedSessionKey ? true : existingInfo?.isRealSession,
448
531
  });
449
532
  // Emit exit event
450
533
  const exitOutput = {
@@ -462,8 +545,29 @@ class ClaudeProcessManager extends events_1.EventEmitter {
462
545
  exitCode,
463
546
  };
464
547
  this.emit('session_ended', endedEvent);
465
- // Clean up
466
- this.processes.delete(terminalSessionId);
548
+ // Only clean up IPC/hooks if no newer process has replaced this one.
549
+ // Race condition: when sendInput kills the old process and spawns a new one,
550
+ // the old close handler fires AFTER the new process starts, which would
551
+ // incorrectly tear down the new process's IPC and hooks.
552
+ const currentProcess = this.processes.get(terminalSessionId);
553
+ const isCurrentProcess = currentProcess?.process === proc;
554
+ if (isCurrentProcess || !currentProcess) {
555
+ // Clean up permission IPC for this session
556
+ this.stopPermissionIpc(terminalSessionId);
557
+ // Remove hook config if no other sessions are using this directory
558
+ const otherSessionsInDir = Array.from(this.processes.values())
559
+ .filter(p => p.directory === directory && p.terminalSessionId !== terminalSessionId);
560
+ if (otherSessionsInDir.length === 0) {
561
+ this.removeHook(directory);
562
+ }
563
+ }
564
+ else {
565
+ console.log(`[Claude Process] Skipping IPC/hook cleanup — newer process owns this session`);
566
+ }
567
+ // Clean up process map entry only if it's still this process
568
+ if (isCurrentProcess) {
569
+ this.processes.delete(terminalSessionId);
570
+ }
467
571
  });
468
572
  proc.on('error', (error) => {
469
573
  console.error(`[Claude Process] Error for ${terminalSessionId}:`, error.message);
@@ -543,6 +647,214 @@ class ClaudeProcessManager extends events_1.EventEmitter {
543
647
  console.log(`[Claude Process] Restart counter cleared for ${terminalSessionId}`);
544
648
  }
545
649
  }
650
+ /**
651
+ * Mark a session as taken over by the mobile user.
652
+ */
653
+ markTakenOver(terminalSessionId) {
654
+ this.takenOverSessions.add(terminalSessionId);
655
+ console.log(`[Claude Process] Session marked as taken over: ${terminalSessionId}`);
656
+ }
657
+ /**
658
+ * Check if a session has been taken over by the mobile user.
659
+ */
660
+ isTakenOver(terminalSessionId) {
661
+ return this.takenOverSessions.has(terminalSessionId);
662
+ }
663
+ /**
664
+ * Clear taken-over state for a single session.
665
+ */
666
+ clearTakenOver(terminalSessionId) {
667
+ this.takenOverSessions.delete(terminalSessionId);
668
+ }
669
+ /**
670
+ * Clear all taken-over sessions (e.g., when mobile disconnects).
671
+ */
672
+ clearAllTakenOver() {
673
+ this.takenOverSessions.clear();
674
+ console.log(`[Claude Process] All taken-over sessions cleared`);
675
+ }
676
+ /**
677
+ * Get all pending permission prompts across all IPC managers.
678
+ * Used to sync pending permissions to mobile on take-over.
679
+ */
680
+ getAllPendingPrompts() {
681
+ const allPrompts = [];
682
+ for (const [, ipcManager] of this.permissionIpcManagers) {
683
+ allPrompts.push(...ipcManager.getPendingPromptData());
684
+ }
685
+ return allPrompts;
686
+ }
687
+ /**
688
+ * Auto-allow all pending permission prompts across all IPC managers.
689
+ * Called when mobile disconnects so Claude doesn't hang waiting for approval.
690
+ */
691
+ autoAllowAllPendingPrompts() {
692
+ const pending = this.getAllPendingPrompts();
693
+ for (const prompt of pending) {
694
+ // Find the IPC manager that owns this prompt and respond
695
+ for (const [, ipcManager] of this.permissionIpcManagers) {
696
+ ipcManager.handleResponse(prompt.promptId, 'allow', 'Auto-allowed: mobile disconnected');
697
+ }
698
+ }
699
+ if (pending.length > 0) {
700
+ console.log(`[Claude Process] Auto-allowed ${pending.length} pending permission prompt(s) on mobile disconnect`);
701
+ }
702
+ }
703
+ /**
704
+ * Tear down all permission hooks and IPC managers.
705
+ * Called when mobile disconnects — hooks get re-configured on next Take Over + message.
706
+ */
707
+ cleanupAllPermissionState() {
708
+ // Stop all IPC managers
709
+ for (const [sessionId, ipcManager] of this.permissionIpcManagers) {
710
+ ipcManager.cleanup();
711
+ console.log(`[Claude Process] Stopped permission IPC for ${sessionId}`);
712
+ }
713
+ this.permissionIpcManagers.clear();
714
+ // Remove hooks from all configured directories
715
+ for (const dir of Array.from(this.hookConfiguredDirs)) {
716
+ this.removeHook(dir);
717
+ }
718
+ console.log(`[Claude Process] All permission hooks and IPC managers cleaned up`);
719
+ }
720
+ /**
721
+ * Write permission rules to disk so the hook script can read them.
722
+ * Rules are written to a well-known temp file that the hook reads on each invocation.
723
+ */
724
+ updatePermissionRules(rules) {
725
+ const rulesDir = path.join(os.tmpdir(), 'forkoff-permissions');
726
+ const rulesFile = path.join(rulesDir, 'rules.json');
727
+ try {
728
+ if (!fs.existsSync(rulesDir)) {
729
+ fs.mkdirSync(rulesDir, { recursive: true });
730
+ }
731
+ fs.writeFileSync(rulesFile, JSON.stringify(rules, null, 2), 'utf-8');
732
+ console.log(`[Claude Process] Permission rules written to ${rulesFile}`);
733
+ }
734
+ catch (err) {
735
+ console.error(`[Claude Process] Failed to write permission rules:`, err.message);
736
+ }
737
+ }
738
+ /**
739
+ * Configure the PreToolUse hook in the project's .claude/settings.local.json.
740
+ * This tells Claude Code to run our hook script before each tool use.
741
+ */
742
+ configureHook(cwd) {
743
+ const hookScriptPath = path.resolve(__dirname, 'permission-hook.js');
744
+ // Verify hook script exists (it should be compiled alongside this file)
745
+ if (!fs.existsSync(hookScriptPath)) {
746
+ console.log(`[Claude Process] Hook script not found at ${hookScriptPath}, skipping hook configuration`);
747
+ return;
748
+ }
749
+ const claudeDir = path.join(cwd, '.claude');
750
+ const settingsFile = path.join(claudeDir, 'settings.local.json');
751
+ try {
752
+ // Create .claude dir if needed
753
+ fs.mkdirSync(claudeDir, { recursive: true });
754
+ // Read existing settings or start fresh
755
+ let settings = {};
756
+ if (fs.existsSync(settingsFile)) {
757
+ try {
758
+ settings = JSON.parse(fs.readFileSync(settingsFile, 'utf-8'));
759
+ }
760
+ catch {
761
+ settings = {};
762
+ }
763
+ }
764
+ // Add our hook
765
+ if (!settings.hooks)
766
+ settings.hooks = {};
767
+ if (!settings.hooks.PreToolUse)
768
+ settings.hooks.PreToolUse = [];
769
+ // Check if our hook is already configured
770
+ const hookCommand = `node "${hookScriptPath}"`;
771
+ const alreadyConfigured = settings.hooks.PreToolUse.some((h) => h.hooks?.some((hook) => hook.command?.includes('permission-hook')));
772
+ if (!alreadyConfigured) {
773
+ settings.hooks.PreToolUse.push({
774
+ matcher: '',
775
+ hooks: [{
776
+ type: 'command',
777
+ command: hookCommand,
778
+ }],
779
+ });
780
+ }
781
+ fs.writeFileSync(settingsFile, JSON.stringify(settings, null, 2), 'utf-8');
782
+ this.hookConfiguredDirs.add(cwd);
783
+ console.log(`[Claude Process] Hook configured in ${settingsFile}`);
784
+ }
785
+ catch (err) {
786
+ console.log(`[Claude Process] Failed to configure hook: ${err.message}`);
787
+ }
788
+ }
789
+ /**
790
+ * Remove our hook from the project's .claude/settings.local.json.
791
+ */
792
+ removeHook(cwd) {
793
+ if (!this.hookConfiguredDirs.has(cwd))
794
+ return;
795
+ const settingsFile = path.join(cwd, '.claude', 'settings.local.json');
796
+ if (!fs.existsSync(settingsFile))
797
+ return;
798
+ try {
799
+ const settings = JSON.parse(fs.readFileSync(settingsFile, 'utf-8'));
800
+ if (!settings.hooks?.PreToolUse)
801
+ return;
802
+ // Remove our hook entries
803
+ settings.hooks.PreToolUse = settings.hooks.PreToolUse.filter((h) => !h.hooks?.some((hook) => hook.command?.includes('permission-hook')));
804
+ // Clean up empty arrays
805
+ if (settings.hooks.PreToolUse.length === 0)
806
+ delete settings.hooks.PreToolUse;
807
+ if (settings.hooks && Object.keys(settings.hooks).length === 0)
808
+ delete settings.hooks;
809
+ // Write back or delete if empty
810
+ if (Object.keys(settings).length === 0) {
811
+ fs.unlinkSync(settingsFile);
812
+ }
813
+ else {
814
+ fs.writeFileSync(settingsFile, JSON.stringify(settings, null, 2), 'utf-8');
815
+ }
816
+ this.hookConfiguredDirs.delete(cwd);
817
+ console.log(`[Claude Process] Hook removed from ${settingsFile}`);
818
+ }
819
+ catch (err) {
820
+ console.log(`[Claude Process] Failed to remove hook: ${err.message}`);
821
+ }
822
+ }
823
+ /**
824
+ * Start the permission IPC manager for a session.
825
+ * Listens for hook permission requests and forwards them as events.
826
+ */
827
+ startPermissionIpc(terminalSessionId, sessionKey) {
828
+ // Stop any existing IPC manager for this session
829
+ this.stopPermissionIpc(terminalSessionId);
830
+ const ipcManager = new permission_ipc_1.PermissionIpcManager();
831
+ // Forward permission_prompt events from IPC manager
832
+ ipcManager.on('permission_prompt', (event) => {
833
+ this.emit('permission_prompt', event);
834
+ });
835
+ ipcManager.start(terminalSessionId, sessionKey);
836
+ this.permissionIpcManagers.set(terminalSessionId, ipcManager);
837
+ console.log(`[Claude Process] Permission IPC started for ${terminalSessionId}`);
838
+ }
839
+ /**
840
+ * Stop the permission IPC manager for a session.
841
+ */
842
+ stopPermissionIpc(terminalSessionId) {
843
+ const existing = this.permissionIpcManagers.get(terminalSessionId);
844
+ if (existing) {
845
+ existing.cleanup();
846
+ this.permissionIpcManagers.delete(terminalSessionId);
847
+ }
848
+ }
849
+ /**
850
+ * Handle a permission response from mobile for a specific prompt.
851
+ */
852
+ handlePermissionResponse(promptId, decision, reason) {
853
+ // Find the IPC manager that has this prompt
854
+ for (const [, ipcManager] of this.permissionIpcManagers) {
855
+ ipcManager.handleResponse(promptId, decision, reason);
856
+ }
857
+ }
546
858
  /**
547
859
  * Checks Claude CLI output for approval patterns and emits approval request events.
548
860
  *
@@ -1 +1 @@
1
- {"version":3,"file":"claude-process.js","sourceRoot":"","sources":["../../src/tools/claude-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-process.js","sourceRoot":"","sources":["../../src/tools/claude-process.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,11 @@ declare class ClaudeSessionDetector extends EventEmitter {
50
50
  * handle names containing hyphens (e.g. "Dev-SharbelAS").
51
51
  */
52
52
  private resolveEncodedPath;
53
+ /**
54
+ * Pre-populate the known sessions cache so that startWatching()
55
+ * doesn't re-emit sessions that were already sent via batch.
56
+ */
57
+ seedKnownSessions(sessions: ClaudeSessionInfo[]): void;
53
58
  /**
54
59
  * Start watching for session changes
55
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"claude-sessions.d.ts","sourceRoot":"","sources":["../../src/tools/claude-sessions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,cAAM,qBAAsB,SAAQ,YAAY;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,iBAAiB,CAAkB;;IAQ3C;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;OAGG;IACH,eAAe,IAAI,OAAO;IA+C1B;;OAEG;IACH,YAAY,IAAI,iBAAiB,EAAE;IAyCnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA6C1B;;OAEG;IACH,aAAa,CAAC,UAAU,GAAE,MAAa,GAAG,IAAI;IAc9C;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqD3B;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;CAGnC;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC;AACjE,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"claude-sessions.d.ts","sourceRoot":"","sources":["../../src/tools/claude-sessions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,cAAM,qBAAsB,SAAQ,YAAY;IAC9C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,iBAAiB,CAAkB;;IAQ3C;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;OAGG;IACH,eAAe,IAAI,OAAO;IA+C1B;;OAEG;IACH,YAAY,IAAI,iBAAiB,EAAE;IAyCnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA6C1B;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAOtD;;OAEG;IACH,aAAa,CAAC,UAAU,GAAE,MAAa,GAAG,IAAI;IAkB9C;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqD3B;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;CAGnC;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC;AACjE,eAAe,qBAAqB,CAAC"}