@dsiloed/silo-link 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/api/dsiloed-client.d.ts +30 -0
  2. package/dist/api/dsiloed-client.d.ts.map +1 -1
  3. package/dist/api/dsiloed-client.js +66 -0
  4. package/dist/api/dsiloed-client.js.map +1 -1
  5. package/dist/cable/subscription-manager.d.ts +7 -3
  6. package/dist/cable/subscription-manager.d.ts.map +1 -1
  7. package/dist/cable/subscription-manager.js +36 -11
  8. package/dist/cable/subscription-manager.js.map +1 -1
  9. package/dist/cli/commands.d.ts.map +1 -1
  10. package/dist/cli/commands.js +112 -24
  11. package/dist/cli/commands.js.map +1 -1
  12. package/dist/config/config-manager.d.ts +4 -4
  13. package/dist/config/config-manager.d.ts.map +1 -1
  14. package/dist/config/config-manager.js +28 -14
  15. package/dist/config/config-manager.js.map +1 -1
  16. package/dist/core/agent-launcher.d.ts +30 -1
  17. package/dist/core/agent-launcher.d.ts.map +1 -1
  18. package/dist/core/base-tmux-launcher.d.ts +102 -0
  19. package/dist/core/base-tmux-launcher.d.ts.map +1 -0
  20. package/dist/core/base-tmux-launcher.js +491 -0
  21. package/dist/core/base-tmux-launcher.js.map +1 -0
  22. package/dist/core/bridge.d.ts +14 -2
  23. package/dist/core/bridge.d.ts.map +1 -1
  24. package/dist/core/bridge.js +129 -35
  25. package/dist/core/bridge.js.map +1 -1
  26. package/dist/core/claude-launcher.d.ts +24 -100
  27. package/dist/core/claude-launcher.d.ts.map +1 -1
  28. package/dist/core/claude-launcher.js +130 -489
  29. package/dist/core/claude-launcher.js.map +1 -1
  30. package/dist/core/gemini-launcher.d.ts +37 -27
  31. package/dist/core/gemini-launcher.d.ts.map +1 -1
  32. package/dist/core/gemini-launcher.js +126 -38
  33. package/dist/core/gemini-launcher.js.map +1 -1
  34. package/dist/core/launcher-factory.d.ts.map +1 -1
  35. package/dist/core/launcher-factory.js +1 -2
  36. package/dist/core/launcher-factory.js.map +1 -1
  37. package/dist/core/openai-launcher.d.ts +14 -17
  38. package/dist/core/openai-launcher.d.ts.map +1 -1
  39. package/dist/core/openai-launcher.js +23 -44
  40. package/dist/core/openai-launcher.js.map +1 -1
  41. package/dist/core/session-manager.d.ts +3 -0
  42. package/dist/core/session-manager.d.ts.map +1 -1
  43. package/dist/core/session-manager.js +11 -0
  44. package/dist/core/session-manager.js.map +1 -1
  45. package/dist/core/workspace-manager.d.ts.map +1 -1
  46. package/dist/core/workspace-manager.js +53 -16
  47. package/dist/core/workspace-manager.js.map +1 -1
  48. package/dist/mcp/server.d.ts +3 -0
  49. package/dist/mcp/server.d.ts.map +1 -1
  50. package/dist/mcp/server.js +19 -2
  51. package/dist/mcp/server.js.map +1 -1
  52. package/dist/mcp/tools/register-tools.d.ts +2 -0
  53. package/dist/mcp/tools/register-tools.d.ts.map +1 -1
  54. package/dist/mcp/tools/register-tools.js +174 -16
  55. package/dist/mcp/tools/register-tools.js.map +1 -1
  56. package/dist/types/index.d.ts +11 -0
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/package.json +1 -1
@@ -6,9 +6,9 @@ import { ActionCableClient } from '../cable/action-cable-client.js';
6
6
  import { SubscriptionManager } from '../cable/subscription-manager.js';
7
7
  import { SessionManager } from '../core/session-manager.js';
8
8
  import { MessageQueue } from '../core/message-queue.js';
9
- import { ClaudeLauncher } from '../core/claude-launcher.js';
10
9
  import { SiloLinkMcpServer } from '../mcp/server.js';
11
10
  import { WorkspaceManager } from '../core/workspace-manager.js';
11
+ import { createLauncher } from '../core/launcher-factory.js';
12
12
  export class Bridge {
13
13
  config;
14
14
  jwt;
@@ -17,12 +17,14 @@ export class Bridge {
17
17
  subscriptionManager;
18
18
  sessionManager;
19
19
  messageQueue;
20
- claudeLauncher;
20
+ launchers = new Map();
21
+ defaultProvider;
21
22
  workspaceManager;
22
23
  mcpServer;
23
24
  shuttingDown = false;
24
- constructor() {
25
- this.config = loadConfig();
25
+ startedAt = null;
26
+ constructor(env) {
27
+ this.config = loadConfig(env);
26
28
  this.jwt = new JwtGenerator(this.config);
27
29
  this.dsiloedClient = new DSiloedClient(this.config, this.jwt);
28
30
  this.cableClient = new ActionCableClient(this.config, this.jwt);
@@ -38,8 +40,15 @@ export class Bridge {
38
40
  });
39
41
  this.messageQueue = new MessageQueue();
40
42
  this.workspaceManager = new WorkspaceManager();
41
- this.claudeLauncher = new ClaudeLauncher(this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager);
42
- this.subscriptionManager = new SubscriptionManager(this.cableClient, this.messageQueue, this.sessionManager, this.claudeLauncher, this.dsiloedClient);
43
+ this.defaultProvider = this.config.agent_provider || 'claude';
44
+ // Create launchers for all supported providers
45
+ const claudeLauncher = createLauncher('claude', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager);
46
+ this.launchers.set('claude', claudeLauncher);
47
+ const geminiLauncher = createLauncher('gemini', this.config, this.sessionManager, this.dsiloedClient, this.messageQueue, this.workspaceManager);
48
+ this.launchers.set('gemini', geminiLauncher);
49
+ // Default launcher is used for auto-launch on inbound messages
50
+ const defaultLauncher = this.getLauncher();
51
+ this.subscriptionManager = new SubscriptionManager(this.cableClient, this.messageQueue, this.sessionManager, defaultLauncher, this.dsiloedClient);
43
52
  this.mcpServer = new SiloLinkMcpServer({
44
53
  config: this.config,
45
54
  sessionManager: this.sessionManager,
@@ -48,8 +57,29 @@ export class Bridge {
48
57
  subscriptionManager: this.subscriptionManager,
49
58
  cableClient: this.cableClient,
50
59
  workspaceManager: this.workspaceManager,
60
+ launcher: defaultLauncher,
61
+ startedAt: () => this.startedAt,
51
62
  });
52
63
  }
64
+ /**
65
+ * Get a launcher by provider, falling back to the default.
66
+ */
67
+ getLauncher(provider) {
68
+ if (provider && this.launchers.has(provider)) {
69
+ return this.launchers.get(provider);
70
+ }
71
+ return this.launchers.get(this.defaultProvider);
72
+ }
73
+ /**
74
+ * Find the launcher that owns a given conversation.
75
+ */
76
+ getLauncherForConversation(conversationId) {
77
+ for (const launcher of this.launchers.values()) {
78
+ if (launcher.getByConversation(conversationId))
79
+ return launcher;
80
+ }
81
+ return undefined;
82
+ }
53
83
  async start() {
54
84
  // Check for tmux — required for launching Claude Code sessions
55
85
  try {
@@ -100,14 +130,17 @@ export class Bridge {
100
130
  await this.cleanupStaleAgentSessions();
101
131
  // Workspaces remain in workspaces.json but no placeholder agent sessions are created.
102
132
  // Agent sessions are only created when a real Claude session launches and registers.
103
- // Start Claude auto-respawn monitor if configured
104
- this.claudeLauncher.startIdleMonitor();
133
+ // Start idle monitors for all enabled launchers
134
+ for (const launcher of this.launchers.values()) {
135
+ launcher.startIdleMonitor();
136
+ }
105
137
  // Handle shutdown signals
106
138
  const shutdown = () => this.stop();
107
139
  process.on('SIGTERM', shutdown);
108
140
  process.on('SIGINT', shutdown);
109
141
  // Start heartbeat broadcast so the frontend knows we're alive
110
142
  this.startHeartbeat();
143
+ this.startedAt = new Date();
111
144
  console.log('SiloLink ready.\n');
112
145
  }
113
146
  heartbeatTimer = null;
@@ -148,8 +181,10 @@ export class Bridge {
148
181
  }
149
182
  // Stop JWT refresh
150
183
  this.jwt.stopAutoRefresh();
151
- // Kill Claude processes FIRST so they don't lose in-flight messages
152
- this.claudeLauncher.destroy();
184
+ // Kill all agent processes FIRST so they don't lose in-flight messages
185
+ for (const launcher of this.launchers.values()) {
186
+ launcher.destroy();
187
+ }
153
188
  // Then unregister all sessions and complete their agent sessions
154
189
  const sessions = this.sessionManager.getAll();
155
190
  for (const session of sessions) {
@@ -193,7 +228,7 @@ export class Bridge {
193
228
  }
194
229
  // Capture resume ID from metadata if available
195
230
  if (session.metadata?.claude_resume_id) {
196
- this.claudeLauncher.setLastResumeId(session.metadata.claude_resume_id);
231
+ this.getLauncher('claude').setLastResumeId(session.metadata.claude_resume_id);
197
232
  }
198
233
  try {
199
234
  await this.dsiloedClient.completeAgentSession(session.id);
@@ -249,41 +284,90 @@ export class Bridge {
249
284
  if (convId) {
250
285
  this.subscriptionManager.subscribe(convId);
251
286
  }
252
- // Build prompt
287
+ // Select the coding agent launcher (default or per-session override)
288
+ const launcher = this.getLauncher(cmd.coding_agent);
289
+ const providerName = cmd.coding_agent || this.defaultProvider;
290
+ // Build prompt with provider-appropriate MCP tool name prefix
291
+ // Claude uses mcp__silolink__remote_*, Gemini uses silolink_remote_*
292
+ const toolPrefix = providerName === 'gemini' ? 'silolink_' : 'mcp__silolink__';
293
+ const docFile = providerName === 'gemini' ? 'GEMINI.md' : 'CLAUDE.md';
294
+ const agentIdParam = cmd.llm_agent_id ? `, "llm_agent_id": ${cmd.llm_agent_id}` : '';
253
295
  const registerParams = convId
254
- ? `{ "conversation_id": ${convId} }`
255
- : `{ "session_name": "${name}" }`;
256
- const readyInstruction = 'After registering, IMMEDIATELY send a remote_notify message telling the user you are ready (e.g. "Session ready! How can I help?"). Then enter the poll loop.';
257
- const progressInstruction = 'CRITICAL: The user is NOT watching the terminal — they are communicating via PortableMind. You MUST send a remote_notify progress update after EVERY major step (e.g. file edits, commits, merges, deploys, errors). Do not go silent while working.';
296
+ ? `{ "conversation_id": ${convId}${agentIdParam} }`
297
+ : `{ "session_name": "${name}"${agentIdParam} }`;
298
+ const readyInstruction = `After registering, IMMEDIATELY send a ${toolPrefix}remote_notify message telling the user you are ready (e.g. "Session ready! How can I help?"). Then enter the poll loop.`;
299
+ const progressInstruction = `CRITICAL: The user is NOT watching the terminal — they are communicating via PortableMind. You MUST send a ${toolPrefix}remote_notify progress update after EVERY major step (e.g. file edits, commits, merges, deploys, errors). Do not go silent while working.`;
300
+ // Inject workflow context so the agent can complete its stage
301
+ const workflowInstruction = cmd.orchestration_execution_id && cmd.orchestration_stage_execution_id
302
+ ? `\n\nORCHESTRATION CONTEXT: You are running as part of a orchestration pipeline. When you finish your work, you MUST call ${toolPrefix}remote_orchestration_stage_complete with orchestration_stage_execution_id: ${cmd.orchestration_stage_execution_id}, success: true/false, output: "<summary>", and any artifacts you produced (key, artifact_type: llm_file|project|task_set|json_data, llm_file_id/project_id if applicable). Orchestration Execution ID: ${cmd.orchestration_execution_id}.`
303
+ : '';
258
304
  const sessionPrompt = cmd.prompt
259
- ? `${cmd.prompt}\n\nIMPORTANT: First call mcp__silolink__remote_register with these exact parameters: ${registerParams}. ${readyInstruction} ${progressInstruction} See CLAUDE.md for the poll loop pattern.`
260
- : `Call mcp__silolink__remote_register with these exact parameters: ${registerParams}. ${readyInstruction} See CLAUDE.md for the poll loop pattern.`;
261
- this.config.claude_session_prompt = sessionPrompt;
262
- // Set workspace config if provided
305
+ ? `${cmd.prompt}${workflowInstruction}\n\nIMPORTANT: First call ${toolPrefix}remote_register with these exact parameters: ${registerParams}. ${readyInstruction} ${progressInstruction} See ${docFile} for the poll loop pattern.`
306
+ : `Call ${toolPrefix}remote_register with these exact parameters: ${registerParams}. ${readyInstruction} See ${docFile} for the poll loop pattern.`;
307
+ // Set the prompt on the correct config field for the selected provider
308
+ if (providerName === 'gemini') {
309
+ this.config.gemini_session_prompt = sessionPrompt;
310
+ }
311
+ else {
312
+ this.config.claude_session_prompt = sessionPrompt;
313
+ }
314
+ console.log(`[SiloLink] Using ${providerName} launcher for session`);
315
+ // Set LlmAgent ID for SDLC agent orchestration
316
+ if (cmd.llm_agent_id) {
317
+ launcher.setLlmAgentId(cmd.llm_agent_id);
318
+ }
319
+ // Set workspace config if branch provided (creates worktree)
263
320
  if (cmd.repo_path && cmd.branch) {
264
- this.claudeLauncher.setWorkspaceConfig({
321
+ launcher.setWorkspaceConfig({
265
322
  repoPath: cmd.repo_path,
266
323
  branch: cmd.branch,
267
324
  baseBranch: cmd.base_branch,
268
325
  });
269
326
  }
327
+ else if (cmd.repo_path) {
328
+ // repo_path without branch — just set CWD, no worktree
329
+ launcher.setRepoCwd(cmd.repo_path);
330
+ }
331
+ // Set MCP tool allowlist for stage-specific tool filtering
332
+ if (cmd.mcp_tool_allowlist) {
333
+ launcher.setMcpToolAllowlist(cmd.mcp_tool_allowlist);
334
+ }
270
335
  // Post an initial message so the user knows the session is starting
271
336
  if (convId) {
272
- this.dsiloedClient.postMessage(convId, '**[Claude Code]** Starting session... Claude is initializing and will be ready shortly.')
337
+ const agentDisplayName = providerName === 'gemini' ? 'Gemini' : 'Claude Code';
338
+ this.dsiloedClient.postMessage(convId, `**[${agentDisplayName}]** Starting session... ${agentDisplayName} is initializing and will be ready shortly.`)
273
339
  .catch(err => console.error('[SiloLink] Failed to post startup message:', err));
274
340
  }
275
- const launched = await this.claudeLauncher.launchInternal('control-channel', convId);
341
+ // Store the provider so remote_register can tag the session
342
+ if (convId) {
343
+ this.sessionManager.setPendingProvider(convId, providerName);
344
+ }
345
+ const launched = await launcher.launchInternal('control-channel', convId);
276
346
  console.log(`[SiloLink] Launch command result: ${launched ? 'started' : 'skipped (already running?)'}`);
347
+ // Report tmux session name back so the orchestration monitor can track it
348
+ if (launched && convId && (cmd.orchestration_stage_execution_id || cmd.orchestration_execution_id)) {
349
+ const tmuxName = launcher.getTmuxSessionForConversation(convId);
350
+ if (tmuxName) {
351
+ this.cableClient.sendCommand('SilolinkControlChannel', {
352
+ type: 'tmux_session_started',
353
+ conversation_id: convId,
354
+ tmux_session_name: tmuxName,
355
+ orchestration_stage_execution_id: cmd.orchestration_stage_execution_id,
356
+ });
357
+ }
358
+ }
277
359
  break;
278
360
  }
279
361
  case 'stop': {
280
362
  if (cmd.conversation_id) {
281
- this.claudeLauncher.killByConversation(cmd.conversation_id);
363
+ const stopLauncher = this.getLauncherForConversation(cmd.conversation_id) || this.getLauncher();
364
+ stopLauncher.killByConversation(cmd.conversation_id);
282
365
  console.log(`[SiloLink] Stop command executed — killed session for conversation ${cmd.conversation_id}`);
283
366
  }
284
367
  else {
285
- this.claudeLauncher.kill();
286
- console.log('[SiloLink] Stop command executed — all Claude sessions killed');
368
+ for (const l of this.launchers.values())
369
+ l.kill();
370
+ console.log('[SiloLink] Stop command executed — all sessions killed');
287
371
  }
288
372
  break;
289
373
  }
@@ -302,7 +386,8 @@ export class Bridge {
302
386
  convId = session?.conversationId;
303
387
  }
304
388
  if (convId) {
305
- const proc = this.claudeLauncher.getByConversation(convId);
389
+ const peekLauncher = this.getLauncherForConversation(convId) || this.getLauncher();
390
+ const proc = peekLauncher.getByConversation(convId);
306
391
  tmuxSessions = proc ? [proc.processId] : [];
307
392
  }
308
393
  else {
@@ -346,16 +431,20 @@ export class Bridge {
346
431
  case 'interrupt': {
347
432
  const intConvId = cmd.conversation_id;
348
433
  if (intConvId) {
349
- const interrupted = await this.claudeLauncher.interrupt(intConvId);
434
+ const intLauncher = this.getLauncherForConversation(intConvId) || this.getLauncher();
435
+ const interrupted = await intLauncher.interrupt(intConvId);
350
436
  console.log(`[SiloLink] Interrupt command result: ${interrupted ? 'sent' : 'no session found'}`);
351
437
  }
352
438
  else {
353
- // Interrupt all sessions
354
- const processes = this.claudeLauncher.getProcesses();
355
- for (const proc of processes) {
356
- await this.claudeLauncher.interrupt(proc.conversationId);
439
+ // Interrupt all sessions across all launchers
440
+ let totalProcesses = 0;
441
+ for (const l of this.launchers.values()) {
442
+ for (const proc of l.getProcesses()) {
443
+ await l.interrupt(proc.conversationId);
444
+ totalProcesses++;
445
+ }
357
446
  }
358
- console.log(`[SiloLink] Interrupt sent to ${processes.length} session(s)`);
447
+ console.log(`[SiloLink] Interrupt sent to ${totalProcesses} session(s)`);
359
448
  }
360
449
  break;
361
450
  }
@@ -374,7 +463,8 @@ export class Bridge {
374
463
  receivedAt: new Date(),
375
464
  });
376
465
  // Also nudge via tmux in case the session isn't polling
377
- this.claudeLauncher.nudge();
466
+ const nudgeLauncher = this.getLauncherForConversation(nudgeConvId) || this.getLauncher();
467
+ nudgeLauncher.nudge();
378
468
  console.log(`[SiloLink] Nudge sent to session ${session.sessionId} (conversation ${nudgeConvId})`);
379
469
  }
380
470
  else {
@@ -393,7 +483,8 @@ export class Bridge {
393
483
  receivedAt: new Date(),
394
484
  });
395
485
  }
396
- this.claudeLauncher.nudge();
486
+ for (const l of this.launchers.values())
487
+ l.nudge();
397
488
  console.log(`[SiloLink] Nudge sent to ${sessions.length} session(s)`);
398
489
  }
399
490
  break;
@@ -408,9 +499,12 @@ export class Bridge {
408
499
  }
409
500
  }
410
501
  getStatus() {
502
+ const now = Date.now();
411
503
  return {
412
504
  state: this.cableClient.getState(),
413
505
  sessions: this.sessionManager.getAll().length,
506
+ startedAt: this.startedAt?.toISOString() ?? null,
507
+ uptimeSeconds: this.startedAt ? Math.floor((now - this.startedAt.getTime()) / 1000) : null,
414
508
  config: {
415
509
  host: this.config.host,
416
510
  tenant: this.config.tenant_id,
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/core/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/core/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { SiloLinkConfig, WorkspaceLaunchConfig } from '../types/index.js';
1
+ import type { SiloLinkConfig } from '../types/index.js';
2
2
  import type { SessionManager } from './session-manager.js';
3
3
  import type { MessageQueue } from './message-queue.js';
4
4
  import type { DSiloedClient } from '../api/dsiloed-client.js';
5
5
  import type { WorkspaceManager } from './workspace-manager.js';
6
- import type { AgentLauncher, LaunchConfig, AgentProcess } from './agent-launcher.js';
6
+ import { BaseTmuxLauncher } from './base-tmux-launcher.js';
7
7
  /**
8
8
  * Claude Code implementation of the AgentLauncher interface.
9
9
  *
@@ -14,113 +14,37 @@ import type { AgentLauncher, LaunchConfig, AgentProcess } from './agent-launcher
14
14
  * - Store Claude session ID in DSiloed agent_session metadata
15
15
  * - Kill all child processes on SiloLink shutdown
16
16
  */
17
- export declare class ClaudeLauncher implements AgentLauncher {
18
- private config;
19
- private sessionManager;
20
- private dsiloedClient;
21
- private workspaceManager;
17
+ export declare class ClaudeLauncher extends BaseTmuxLauncher {
22
18
  private childProcess;
23
- private tmuxSessions;
24
- private tmuxSessionWorkspaces;
25
- private tmuxMonitorTimer;
26
- private idleCheckTimer;
27
- private launchingConversations;
28
- private messageQueue;
29
- private enabled;
30
- private lastNudgeAt;
31
- private nudgeCount;
32
- private lastActivitySnapshot;
33
- private lastClaudeSessionId;
34
- private pendingTriggerMessage;
35
- private pendingWorkspaceConfig;
36
- private pendingWorkspaceCwd;
37
19
  constructor(config: SiloLinkConfig, sessionManager: SessionManager, dsiloedClient?: DSiloedClient, messageQueue?: MessageQueue, workspaceManager?: WorkspaceManager);
38
- isEnabled(): boolean;
39
- isAutoRespawnEnabled(): boolean;
40
- hasLiveProcess(): boolean;
20
+ protected getCommand(): string;
21
+ protected getArgs(): string[];
22
+ protected getReadyIndicator(): string[];
23
+ protected formatPrompt(prompt: string): string;
24
+ protected setupMcpConfig(cwd: string, toolAllowlist?: string[] | null): Promise<void>;
25
+ protected checkEnabled(): boolean;
26
+ protected getWorkingDirectory(): string;
27
+ protected isAutoRespawnConfigured(): boolean;
28
+ protected getIdleTimeoutMs(): number;
29
+ protected getSessionPrompt(): string | undefined;
30
+ protected getAgentEnv(): Record<string, string>;
31
+ protected getTmuxPrefix(): string;
32
+ protected getLogTag(): string;
33
+ protected getCostMetadataKey(): string;
34
+ protected buildLaunchPrompt(reason: string, conversationId: number | undefined, agentContext: string, workspaceContext: string): {
35
+ prompt: string;
36
+ extraArgs: string[];
37
+ };
41
38
  getLastClaudeSessionId(): string | null;
42
- setLastResumeId(resumeId: string): void;
43
- /**
44
- * Start the idle monitor that nudges idle sessions or respawns dead ones.
45
- */
46
- startIdleMonitor(): void;
47
- stopIdleMonitor(): void;
48
- /**
49
- * Launch a new Claude Code session. Uses --resume if a previous session ID is available.
50
- * This is the internal launch method — use launchAgent() for the AgentLauncher interface.
51
- */
52
- launchInternal(reason?: string, conversationId?: number): Promise<boolean>;
53
39
  /**
54
40
  * Store the Claude resume ID in the DSiloed agent session metadata.
55
41
  */
56
42
  private storeResumeId;
57
43
  /**
58
- * Set workspace configuration for the next launch.
59
- * The worktree will be created when launch() is called.
60
- */
61
- setWorkspaceConfig(config: WorkspaceLaunchConfig | null): void;
62
- /**
63
- * Called when an inbound message arrives and no active session can handle it.
64
- * @param triggerMessage - Content of the message that triggered the launch (included in prompt)
65
- */
66
- launchOnMessage(conversationId?: number, triggerMessage?: string): Promise<boolean>;
67
- /**
68
- * Check for idle sessions — nudge if process alive, respawn if dead.
69
- * If a session has been nudged multiple times without responding and has
70
- * pending messages, kill and relaunch it (hung session recovery).
71
- */
72
- private checkIdle;
73
- /**
74
- * Monitor a tmux session and detect when it exits.
75
- */
76
- private monitorTmuxSession;
77
- private checkTmuxSessions;
78
- /**
79
- * Send a message to all running Claude sessions via tmux send-keys.
80
- */
81
- nudge(): boolean;
82
- /**
83
- * Interrupt the Claude session for a specific conversation.
84
- * Sends Escape to stop current work, then redirects Claude to check
85
- * for new messages via remote_poll.
86
- */
87
- interrupt(conversationId: number, message?: string): Promise<boolean>;
88
- /**
89
- * Kill the Claude session for a specific conversation.
90
- */
91
- killByConversation(conversationId: number): void;
92
- /**
93
- * Kill all running Claude Code sessions.
44
+ * Extended idle checking with Claude-specific hung session recovery.
94
45
  */
46
+ protected checkIdle(): Promise<void>;
95
47
  kill(): void;
96
- /**
97
- * Launch a new agent process (AgentLauncher interface).
98
- */
99
- launch(config: LaunchConfig): Promise<AgentProcess | null>;
100
- /**
101
- * Resume a previous session by ID.
102
- */
103
- resume(resumeId: string, config: LaunchConfig): Promise<AgentProcess | null>;
104
- /**
105
- * Check if a specific process is still alive.
106
- */
107
- isAlive(process: AgentProcess): Promise<boolean>;
108
- /**
109
- * Terminate a specific agent process.
110
- */
111
- terminate(process: AgentProcess): void;
112
- /**
113
- * Terminate all managed agent processes.
114
- */
115
- terminateAll(): void;
116
- /**
117
- * Get all currently running agent processes.
118
- */
119
- getProcesses(): AgentProcess[];
120
- /**
121
- * Get the process handling a specific conversation.
122
- */
123
- getByConversation(conversationId: number): AgentProcess | undefined;
124
- destroy(): void;
48
+ stopIdleMonitor(): void;
125
49
  }
126
50
  //# sourceMappingURL=claude-launcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-launcher.d.ts","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-launcher.d.ts","sourceRoot":"","sources":["../../src/core/claude-launcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,YAAY,CAA6B;gBAG/C,MAAM,EAAE,cAAc,EACtB,cAAc,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC,SAAS,CAAC,UAAU,IAAI,MAAM;IAI9B,SAAS,CAAC,OAAO,IAAI,MAAM,EAAE;IAI7B,SAAS,CAAC,iBAAiB,IAAI,MAAM,EAAE;IAIvC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;cAI9B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3F,SAAS,CAAC,YAAY,IAAI,OAAO;IAIjC,SAAS,CAAC,mBAAmB,IAAI,MAAM;IAIvC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,gBAAgB,IAAI,MAAM;IAIpC,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAIhD,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO/C,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC,SAAS,CAAC,SAAS,IAAI,MAAM;IAI7B,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAItC,SAAS,CAAC,iBAAiB,CACzB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IAoD1C,sBAAsB,IAAI,MAAM,GAAG,IAAI;IAIvC;;OAEG;YACW,aAAa;IAe3B;;OAEG;cACsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkG1C,IAAI,IAAI,IAAI;IAQrB,eAAe,IAAI,IAAI;CAMxB"}