@dsiloed/silo-link 1.2.9 → 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.
- package/dist/api/dsiloed-client.d.ts +30 -0
- package/dist/api/dsiloed-client.d.ts.map +1 -1
- package/dist/api/dsiloed-client.js +66 -0
- package/dist/api/dsiloed-client.js.map +1 -1
- package/dist/cable/subscription-manager.d.ts +7 -3
- package/dist/cable/subscription-manager.d.ts.map +1 -1
- package/dist/cable/subscription-manager.js +36 -11
- package/dist/cable/subscription-manager.js.map +1 -1
- package/dist/cli/claude-md-block.d.ts +1 -1
- package/dist/cli/claude-md-block.d.ts.map +1 -1
- package/dist/cli/claude-md-block.js +31 -70
- package/dist/cli/claude-md-block.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +112 -24
- package/dist/cli/commands.js.map +1 -1
- package/dist/config/config-manager.d.ts +4 -4
- package/dist/config/config-manager.d.ts.map +1 -1
- package/dist/config/config-manager.js +28 -14
- package/dist/config/config-manager.js.map +1 -1
- package/dist/core/agent-launcher.d.ts +30 -1
- package/dist/core/agent-launcher.d.ts.map +1 -1
- package/dist/core/base-tmux-launcher.d.ts +102 -0
- package/dist/core/base-tmux-launcher.d.ts.map +1 -0
- package/dist/core/base-tmux-launcher.js +491 -0
- package/dist/core/base-tmux-launcher.js.map +1 -0
- package/dist/core/bridge.d.ts +14 -2
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +129 -35
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/claude-launcher.d.ts +24 -100
- package/dist/core/claude-launcher.d.ts.map +1 -1
- package/dist/core/claude-launcher.js +130 -489
- package/dist/core/claude-launcher.js.map +1 -1
- package/dist/core/gemini-launcher.d.ts +37 -27
- package/dist/core/gemini-launcher.d.ts.map +1 -1
- package/dist/core/gemini-launcher.js +126 -38
- package/dist/core/gemini-launcher.js.map +1 -1
- package/dist/core/launcher-factory.d.ts.map +1 -1
- package/dist/core/launcher-factory.js +1 -2
- package/dist/core/launcher-factory.js.map +1 -1
- package/dist/core/openai-launcher.d.ts +14 -17
- package/dist/core/openai-launcher.d.ts.map +1 -1
- package/dist/core/openai-launcher.js +23 -44
- package/dist/core/openai-launcher.js.map +1 -1
- package/dist/core/session-manager.d.ts +3 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +11 -0
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/workspace-manager.d.ts.map +1 -1
- package/dist/core/workspace-manager.js +53 -16
- package/dist/core/workspace-manager.js.map +1 -1
- package/dist/mcp/server.d.ts +3 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +19 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/register-tools.d.ts +2 -0
- package/dist/mcp/tools/register-tools.d.ts.map +1 -1
- package/dist/mcp/tools/register-tools.js +210 -49
- package/dist/mcp/tools/register-tools.js.map +1 -1
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/core/bridge.js
CHANGED
|
@@ -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
|
-
|
|
20
|
+
launchers = new Map();
|
|
21
|
+
defaultProvider;
|
|
21
22
|
workspaceManager;
|
|
22
23
|
mcpServer;
|
|
23
24
|
shuttingDown = false;
|
|
24
|
-
|
|
25
|
-
|
|
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.
|
|
42
|
-
|
|
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
|
|
104
|
-
this.
|
|
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
|
|
152
|
-
this.
|
|
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.
|
|
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
|
-
//
|
|
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 =
|
|
257
|
-
const progressInstruction =
|
|
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
|
|
260
|
-
: `Call
|
|
261
|
-
|
|
262
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
286
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
355
|
-
for (const
|
|
356
|
-
|
|
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 ${
|
|
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.
|
|
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.
|
|
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,
|
package/dist/core/bridge.js.map
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
*
|
|
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":"
|
|
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"}
|