@dsiloed/silo-link 1.3.0 → 1.5.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/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +118 -27
- 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 +30 -15
- 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 +106 -0
- package/dist/core/base-tmux-launcher.d.ts.map +1 -0
- package/dist/core/base-tmux-launcher.js +506 -0
- package/dist/core/base-tmux-launcher.js.map +1 -0
- package/dist/core/bridge.d.ts +19 -2
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +155 -37
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/claude-launcher.d.ts +28 -100
- package/dist/core/claude-launcher.d.ts.map +1 -1
- package/dist/core/claude-launcher.js +164 -487
- 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 +135 -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 +174 -16
- package/dist/mcp/tools/register-tools.js.map +1 -1
- package/dist/types/index.d.ts +11 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { SiloLinkConfig, ConversationResponse, MessageResponse, AgentSessionResponse } from '../types/index.js';
|
|
2
2
|
import type { JwtGenerator } from '../config/jwt-generator.js';
|
|
3
|
+
export interface LaunchContext {
|
|
4
|
+
agent_id: number;
|
|
5
|
+
agent_name: string;
|
|
6
|
+
system_prompt?: string;
|
|
7
|
+
user_prompt?: string;
|
|
8
|
+
reference_docs?: string;
|
|
9
|
+
role_types: string[];
|
|
10
|
+
}
|
|
3
11
|
export declare class DSiloedClient {
|
|
4
12
|
private config;
|
|
5
13
|
private jwt;
|
|
@@ -13,10 +21,16 @@ export declare class DSiloedClient {
|
|
|
13
21
|
postMessage(conversationId: number, message: string): Promise<MessageResponse>;
|
|
14
22
|
getMessages(conversationId: number, limit?: number): Promise<MessageResponse[]>;
|
|
15
23
|
getConversation(conversationId: number): Promise<ConversationResponse>;
|
|
24
|
+
fetchLaunchContext(agentId: number): Promise<LaunchContext | null>;
|
|
25
|
+
getActiveAgentRun(llmAgentId: number): Promise<{
|
|
26
|
+
id: number;
|
|
27
|
+
} | null>;
|
|
16
28
|
createAgentSession(data: {
|
|
17
29
|
session_type: string;
|
|
18
30
|
session_name: string;
|
|
19
31
|
llm_conversation_id?: number;
|
|
32
|
+
llm_agent_id?: number;
|
|
33
|
+
project_id?: number;
|
|
20
34
|
metadata?: Record<string, unknown>;
|
|
21
35
|
}): Promise<AgentSessionResponse | null>;
|
|
22
36
|
updateAgentSession(agentSessionId: number, data: {
|
|
@@ -28,5 +42,21 @@ export declare class DSiloedClient {
|
|
|
28
42
|
updateAgentSessionStatus(agentSessionId: number, status: string): Promise<void>;
|
|
29
43
|
getAgentSessionsForConversation(conversationId: number): Promise<AgentSessionResponse[]>;
|
|
30
44
|
getActiveAgentSessions(sessionType?: string): Promise<AgentSessionResponse[]>;
|
|
45
|
+
private postStageAction;
|
|
46
|
+
completeOrchestrationStage(stageExecutionId: number, success: boolean, output: string, artifacts?: Array<{
|
|
47
|
+
key: string;
|
|
48
|
+
artifact_type: string;
|
|
49
|
+
llm_file_id?: number;
|
|
50
|
+
project_id?: number;
|
|
51
|
+
description?: string;
|
|
52
|
+
data?: Record<string, unknown>;
|
|
53
|
+
}>): Promise<{
|
|
54
|
+
success: boolean;
|
|
55
|
+
message?: string;
|
|
56
|
+
}>;
|
|
57
|
+
reviewCompleteOrchestrationStage(stageExecutionId: number, success: boolean, output: string): Promise<{
|
|
58
|
+
success: boolean;
|
|
59
|
+
message?: string;
|
|
60
|
+
}>;
|
|
31
61
|
}
|
|
32
62
|
//# sourceMappingURL=dsiloed-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsiloed-client.d.ts","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACrH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,GAAG,CAAe;gBACd,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY;IAKrD,OAAO,KAAK,OAAO,GAMlB;IAED,OAAO,CAAC,GAAG;YAIG,gBAAgB;IAUxB,wBAAwB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAqB3D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAoB1E,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4B1F,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAe9E,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBnF,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkBtE,kBAAkB,CAAC,IAAI,EAAE;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAqBlC,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE;QACrD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBX,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5D,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/E,+BAA+B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAsBxF,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"dsiloed-client.d.ts","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,48 @@ export class DSiloedClient {
|
|
|
126
126
|
// API returns { llm_conversation: {...} } for show action
|
|
127
127
|
return (json.llm_conversation || json);
|
|
128
128
|
}
|
|
129
|
+
// --- Launch Context for SDLC agents ---
|
|
130
|
+
async fetchLaunchContext(agentId) {
|
|
131
|
+
try {
|
|
132
|
+
const res = await this.fetchWithTimeout(this.url(`/api/v1/llm_agents/${agentId}/launch_context`), {
|
|
133
|
+
method: 'GET',
|
|
134
|
+
headers: this.headers,
|
|
135
|
+
});
|
|
136
|
+
if (!res.ok) {
|
|
137
|
+
console.error(`[SiloLink] Failed to fetch launch context for agent ${agentId} (${res.status})`);
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const json = (await res.json());
|
|
141
|
+
return json.launch_context;
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
console.error('[SiloLink] Error fetching launch context:', err);
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// --- LlmAgentRun lookup ---
|
|
149
|
+
async getActiveAgentRun(llmAgentId) {
|
|
150
|
+
try {
|
|
151
|
+
const params = new URLSearchParams({
|
|
152
|
+
llm_agent_id: String(llmAgentId),
|
|
153
|
+
limit: '1',
|
|
154
|
+
});
|
|
155
|
+
const res = await this.fetchWithTimeout(this.url(`/api/v1/llm_agent_runs?${params}`), {
|
|
156
|
+
method: 'GET',
|
|
157
|
+
headers: this.headers,
|
|
158
|
+
});
|
|
159
|
+
if (!res.ok)
|
|
160
|
+
return null;
|
|
161
|
+
const json = (await res.json());
|
|
162
|
+
// Find most recent non-completed run
|
|
163
|
+
const activeRun = json.llm_agent_runs?.find(r => !r.completed_at);
|
|
164
|
+
return activeRun ? { id: activeRun.id } : null;
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
console.error('[SiloLink] Error fetching active agent run:', err);
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
129
171
|
// --- Agent Session tracking ---
|
|
130
172
|
async createAgentSession(data) {
|
|
131
173
|
try {
|
|
@@ -240,5 +282,29 @@ export class DSiloedClient {
|
|
|
240
282
|
return [];
|
|
241
283
|
}
|
|
242
284
|
}
|
|
285
|
+
async postStageAction(stageExecutionId, action, body) {
|
|
286
|
+
try {
|
|
287
|
+
const res = await this.fetchWithTimeout(this.url(`/api/v1/orchestration_stage_executions/${stageExecutionId}/${action}`), {
|
|
288
|
+
method: 'POST',
|
|
289
|
+
headers: this.headers,
|
|
290
|
+
body: JSON.stringify(body),
|
|
291
|
+
});
|
|
292
|
+
if (!res.ok) {
|
|
293
|
+
const text = await res.text();
|
|
294
|
+
return { success: false, message: `HTTP ${res.status}: ${text}` };
|
|
295
|
+
}
|
|
296
|
+
return (await res.json());
|
|
297
|
+
}
|
|
298
|
+
catch (err) {
|
|
299
|
+
console.error(`[SiloLink] Error in orchestration stage ${action}:`, err);
|
|
300
|
+
return { success: false, message: String(err) };
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
async completeOrchestrationStage(stageExecutionId, success, output, artifacts = []) {
|
|
304
|
+
return this.postStageAction(stageExecutionId, 'complete', { success, output, artifacts });
|
|
305
|
+
}
|
|
306
|
+
async reviewCompleteOrchestrationStage(stageExecutionId, success, output) {
|
|
307
|
+
return this.postStageAction(stageExecutionId, 'review_complete', { success, output });
|
|
308
|
+
}
|
|
243
309
|
}
|
|
244
310
|
//# sourceMappingURL=dsiloed-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsiloed-client.js","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,aAAa;IAChB,MAAM,CAAiB;IACvB,GAAG,CAAe;IAC1B,YAAY,MAAsB,EAAE,GAAiB;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAY,OAAO;QACjB,OAAO;YACL,eAAe,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAChD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAClC,cAAc,EAAE,kBAAkB;SACnC,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,IAAY;QACtB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,UAAuB,EAAE;QACnE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,wBAAwB,EAAE,oBAAoB;aAC/C,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,EAAE;gBACvF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmD,CAAC;YAClF,OAAO,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,wBAAwB,EAAE,oBAAoB;YAC9C,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,EAAE;YACvF,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmD,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CACxC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAC7C,CAAC;QACF,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAY,EAAE,WAAmB;QAC9D,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,iBAAiB;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,gBAAgB,EAAE;oBAChB,IAAI;oBACJ,WAAW;oBACX,wBAAwB,EAAE,oBAAoB;oBAC9C,OAAO,EAAE,IAAI;iBACd;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+C,CAAC;QAC9E,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,OAAe;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,cAAc,OAAO,CAAC,EAAE;YACpG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,QAAgB,EAAE;QAC1D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC;YAC3C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,EAAE;YAClF,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC3D,oDAAoD;QACpD,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAsB,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,cAAc,EAAE,CAAC,EAAE;YAC/F,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgD,CAAC;QAC/E,0DAA0D;QAC1D,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAyB,CAAC;IACjE,CAAC;IAED,iCAAiC;IAEjC,KAAK,CAAC,kBAAkB,CAAC,IAKxB;QACC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;gBAC1E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,8CAA8C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4C,CAAC;YAC3E,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,IAGhD;QACC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,cAAc,EAAE,CAAC,EAAE;gBACjG,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,KAAK,CAAC,2CAA2C,QAAQ,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,cAAsB;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,cAAc,YAAY,CAAC,EAAE;gBAC1F,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,cAAsB;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,cAAc,WAAW,CAAC,EAAE;gBACzF,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,cAAsB,EAAE,MAAc;QACnE,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,EAAE;gBACzF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,mBAAmB,EAAE,cAAc;oBACnC,iBAAiB,EAAE,cAAc;oBACjC,MAAM;iBACP,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,cAAsB;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC;gBAC3C,YAAY,EAAE,UAAU;aACzB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,EAAE;gBACpF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+C,CAAC;YAC9E,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,WAAoB;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5D,IAAI,WAAW;gBAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAEzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,CAAC,EAAE;gBAC3F,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+C,CAAC;YAC9E,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"dsiloed-client.js","sourceRoot":"","sources":["../../src/api/dsiloed-client.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,aAAa;IAChB,MAAM,CAAiB;IACvB,GAAG,CAAe;IAC1B,YAAY,MAAsB,EAAE,GAAiB;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAY,OAAO;QACjB,OAAO;YACL,eAAe,EAAE,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YAChD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAClC,cAAc,EAAE,kBAAkB;SACnC,CAAC;IACJ,CAAC;IAEO,GAAG,CAAC,IAAY;QACtB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,UAAuB,EAAE;QACnE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,wBAAwB,EAAE,oBAAoB;aAC/C,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,EAAE;gBACvF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmD,CAAC;YAClF,OAAO,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;YACxE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,wBAAwB,EAAE,oBAAoB;YAC9C,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,MAAM,EAAE,CAAC,EAAE;YACvF,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmD,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CACxC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAC7C,CAAC;QACF,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,IAAY,EAAE,WAAmB;QAC9D,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,iBAAiB;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,gBAAgB,EAAE;oBAChB,IAAI;oBACJ,WAAW;oBACX,wBAAwB,EAAE,oBAAoB;oBAC9C,OAAO,EAAE,IAAI;iBACd;aACF,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+C,CAAC;QAC9E,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,OAAe;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,cAAc,OAAO,CAAC,EAAE;YACpG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,QAAgB,EAAE;QAC1D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC;YAC3C,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,MAAM,EAAE,CAAC,EAAE;YAClF,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;QAC3D,oDAAoD;QACpD,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAsB,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,cAAc,EAAE,CAAC,EAAE;YAC/F,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgD,CAAC;QAC/E,0DAA0D;QAC1D,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAyB,CAAC;IACjE,CAAC;IAED,yCAAyC;IAEzC,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,OAAO,iBAAiB,CAAC,EAAE;gBAChG,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,uDAAuD,OAAO,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChG,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsC,CAAC;YACrE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,6BAA6B;IAE7B,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;gBAChC,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,EAAE;gBACpF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiE,CAAC;YAChG,qCAAqC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAClE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,iCAAiC;IAEjC,KAAK,CAAC,kBAAkB,CAAC,IAOxB;QACC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE;gBAC1E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,8CAA8C,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4C,CAAC;YAC3E,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,IAGhD;QACC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,cAAc,EAAE,CAAC,EAAE;gBACjG,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,KAAK,CAAC,2CAA2C,QAAQ,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,cAAsB;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,cAAc,YAAY,CAAC,EAAE;gBAC1F,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,cAAsB;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,cAAc,WAAW,CAAC,EAAE;gBACzF,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,cAAsB,EAAE,MAAc;QACnE,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,EAAE;gBACzF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,mBAAmB,EAAE,cAAc;oBACnC,iBAAiB,EAAE,cAAc;oBACjC,MAAM;iBACP,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,cAAsB;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC;gBAC3C,YAAY,EAAE,UAAU;aACzB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,EAAE;gBACpF,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+C,CAAC;YAC9E,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4DAA4D,EAAE,GAAG,CAAC,CAAC;YACjF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,WAAoB;QAC/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5D,IAAI,WAAW;gBAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAEzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,CAAC,EAAE;gBAC3F,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA+C,CAAC;YAC9E,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,gBAAwB,EACxB,MAAc,EACd,IAA6B;QAE7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACrC,IAAI,CAAC,GAAG,CAAC,0CAA0C,gBAAgB,IAAI,MAAM,EAAE,CAAC,EAChF;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CACF,CAAC;YAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC;YACpE,CAAC;YAED,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2C,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2CAA2C,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;YACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,gBAAwB,EACxB,OAAgB,EAChB,MAAc,EACd,YAA4J,EAAE;QAE9J,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,gCAAgC,CACpC,gBAAwB,EACxB,OAAgB,EAChB,MAAc;QAEd,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;CACF"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { ActionCableClient } from './action-cable-client.js';
|
|
2
2
|
import type { MessageQueue } from '../core/message-queue.js';
|
|
3
3
|
import type { SessionManager } from '../core/session-manager.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { AgentLauncher } from '../core/agent-launcher.js';
|
|
5
5
|
import type { DSiloedClient } from '../api/dsiloed-client.js';
|
|
6
6
|
export declare class SubscriptionManager {
|
|
7
7
|
private cableClient;
|
|
8
8
|
private messageQueue;
|
|
9
9
|
private sessionManager;
|
|
10
|
-
private
|
|
10
|
+
private launcher;
|
|
11
11
|
private dsiloedClient;
|
|
12
12
|
private outboundMessageIds;
|
|
13
13
|
private recentContentHashes;
|
|
14
14
|
private pendingMessages;
|
|
15
|
-
constructor(cableClient: ActionCableClient, messageQueue: MessageQueue, sessionManager: SessionManager,
|
|
15
|
+
constructor(cableClient: ActionCableClient, messageQueue: MessageQueue, sessionManager: SessionManager, launcher?: AgentLauncher, dsiloedClient?: DSiloedClient);
|
|
16
16
|
subscribe(conversationId: number): void;
|
|
17
17
|
unsubscribe(conversationId: number): void;
|
|
18
18
|
/**
|
|
@@ -25,6 +25,10 @@ export declare class SubscriptionManager {
|
|
|
25
25
|
*/
|
|
26
26
|
drainPendingMessages(conversationId: number, sessionId: string): void;
|
|
27
27
|
trackOutboundMessageId(messageId: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the LlmAgent ID for a conversation (if any) and launch Claude.
|
|
30
|
+
*/
|
|
31
|
+
private resolveAgentAndLaunch;
|
|
28
32
|
private handleCableMessage;
|
|
29
33
|
}
|
|
30
34
|
//# sourceMappingURL=subscription-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager.d.ts","sourceRoot":"","sources":["../../src/cable/subscription-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"subscription-manager.d.ts","sourceRoot":"","sources":["../../src/cable/subscription-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,kBAAkB,CAAgB;IAE1C,OAAO,CAAC,mBAAmB,CAA6C;IAExE,OAAO,CAAC,eAAe,CAA4C;gBAGjE,WAAW,EAAE,iBAAiB,EAC9B,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,aAAa,EACxB,aAAa,CAAC,EAAE,aAAa;IAa/B,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIvC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,2BAA2B,IAAI,IAAI;IAanC;;;OAGG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAWrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO/C;;OAEG;YACW,qBAAqB;IAoBnC,OAAO,CAAC,kBAAkB;CAoH3B"}
|
|
@@ -4,18 +4,18 @@ export class SubscriptionManager {
|
|
|
4
4
|
cableClient;
|
|
5
5
|
messageQueue;
|
|
6
6
|
sessionManager;
|
|
7
|
-
|
|
7
|
+
launcher;
|
|
8
8
|
dsiloedClient;
|
|
9
9
|
outboundMessageIds = [];
|
|
10
10
|
// Content-based dedup: track recent message content hashes to catch echoed user messages
|
|
11
11
|
recentContentHashes = [];
|
|
12
12
|
// Buffer messages for conversations that don't have a session yet (pending launch)
|
|
13
13
|
pendingMessages = new Map();
|
|
14
|
-
constructor(cableClient, messageQueue, sessionManager,
|
|
14
|
+
constructor(cableClient, messageQueue, sessionManager, launcher, dsiloedClient) {
|
|
15
15
|
this.cableClient = cableClient;
|
|
16
16
|
this.messageQueue = messageQueue;
|
|
17
17
|
this.sessionManager = sessionManager;
|
|
18
|
-
this.
|
|
18
|
+
this.launcher = launcher || null;
|
|
19
19
|
this.dsiloedClient = dsiloedClient || null;
|
|
20
20
|
this.cableClient.on('message', (event) => {
|
|
21
21
|
this.handleCableMessage(event.conversationId, event.data);
|
|
@@ -63,6 +63,29 @@ export class SubscriptionManager {
|
|
|
63
63
|
this.outboundMessageIds.shift();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Resolve the LlmAgent ID for a conversation (if any) and launch Claude.
|
|
68
|
+
*/
|
|
69
|
+
async resolveAgentAndLaunch(conversationId, triggerContent) {
|
|
70
|
+
let llmAgentId;
|
|
71
|
+
if (this.dsiloedClient) {
|
|
72
|
+
try {
|
|
73
|
+
const conv = await this.dsiloedClient.getConversation(conversationId);
|
|
74
|
+
if (conv.accessor_record_type === 'LlmAgent' && conv.accessor_record_id) {
|
|
75
|
+
llmAgentId = conv.accessor_record_id;
|
|
76
|
+
console.log(`[SiloLink] Conversation ${conversationId} belongs to LlmAgent ${llmAgentId}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Non-fatal — launch without agent context
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!this.launcher) {
|
|
84
|
+
console.error('[SiloLink] Cannot launch agent: launcher is null');
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
await this.launcher.launchOnMessage(conversationId, triggerContent, llmAgentId);
|
|
88
|
+
}
|
|
66
89
|
handleCableMessage(conversationId, data) {
|
|
67
90
|
const msg = data;
|
|
68
91
|
// Silently skip non-message events (typing indicators, read receipts, etc.)
|
|
@@ -83,8 +106,9 @@ export class SubscriptionManager {
|
|
|
83
106
|
const role = typeof rawMessage === 'string'
|
|
84
107
|
? 'user'
|
|
85
108
|
: rawMessage?.role || 'user';
|
|
86
|
-
// Secondary echo prevention: skip messages with
|
|
87
|
-
|
|
109
|
+
// Secondary echo prevention: skip messages with any agent prefix
|
|
110
|
+
const AGENT_PREFIXES = ['**[Claude Code]**', '**[Gemini]**', '**[OpenAI]**', '**[SiloLink]**'];
|
|
111
|
+
if (AGENT_PREFIXES.some(p => content.startsWith(p))) {
|
|
88
112
|
console.log(`[SiloLink] Skipping echo (prefix match): ${content.substring(0, 50)}`);
|
|
89
113
|
return;
|
|
90
114
|
}
|
|
@@ -119,10 +143,10 @@ export class SubscriptionManager {
|
|
|
119
143
|
// is busy but not making SiloLink MCP calls.
|
|
120
144
|
const staleCutoff = 5 * 60 * 1000; // 5 minutes
|
|
121
145
|
const sessionAge = Date.now() - session.lastActivity.getTime();
|
|
122
|
-
if (sessionAge > staleCutoff && this.
|
|
146
|
+
if (sessionAge > staleCutoff && this.launcher?.isEnabled()) {
|
|
123
147
|
console.log(`[SiloLink] Session ${session.sessionId} is stale (no MCP activity for ${Math.round(sessionAge / 60000)}min) — recycling for conv=${conversationId}`);
|
|
124
148
|
// Kill the stale tmux session
|
|
125
|
-
this.
|
|
149
|
+
this.launcher.killByConversation(conversationId);
|
|
126
150
|
// Clean up the dead session
|
|
127
151
|
this.messageQueue.clearSession(session.sessionId);
|
|
128
152
|
this.sessionManager.unregister(session.sessionId);
|
|
@@ -137,12 +161,12 @@ export class SubscriptionManager {
|
|
|
137
161
|
// No active session (either never had one, or stale session was just recycled)
|
|
138
162
|
{
|
|
139
163
|
console.log(`[SiloLink] No active session for conversation ${conversationId}`);
|
|
140
|
-
// Auto-launch
|
|
141
|
-
if (this.
|
|
164
|
+
// Auto-launch coding agent if configured
|
|
165
|
+
if (this.launcher?.isEnabled()) {
|
|
142
166
|
console.log(`[SiloLink] Triggering auto-launch for inbound message...`);
|
|
143
167
|
// Let the user know we're restarting
|
|
144
168
|
if (this.dsiloedClient) {
|
|
145
|
-
this.dsiloedClient.postMessage(conversationId, '**[
|
|
169
|
+
this.dsiloedClient.postMessage(conversationId, '**[SiloLink]** Restarting session... Agent is initializing and will be ready shortly.')
|
|
146
170
|
.catch(() => { });
|
|
147
171
|
}
|
|
148
172
|
// Buffer the message so it's delivered once the session registers
|
|
@@ -153,7 +177,8 @@ export class SubscriptionManager {
|
|
|
153
177
|
console.log(`[SiloLink] Buffered message for conversation ${conversationId} (pending session)`);
|
|
154
178
|
// Pass the triggering message content so it can be included in the launch prompt
|
|
155
179
|
const triggerContent = inbound.content?.substring(0, 500) || '';
|
|
156
|
-
this
|
|
180
|
+
// Check if this conversation belongs to an LlmAgent, then launch
|
|
181
|
+
this.resolveAgentAndLaunch(conversationId, triggerContent).catch(err => {
|
|
157
182
|
console.error(`[SiloLink] Auto-launch failed: ${err.message}`);
|
|
158
183
|
});
|
|
159
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../src/cable/subscription-manager.ts"],"names":[],"mappings":"AAOA,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,qCAAqC;AAErE,MAAM,OAAO,mBAAmB;IACtB,WAAW,CAAoB;IAC/B,YAAY,CAAe;IAC3B,cAAc,CAAiB;IAC/B,
|
|
1
|
+
{"version":3,"file":"subscription-manager.js","sourceRoot":"","sources":["../../src/cable/subscription-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAwU9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/cli/commands.js
CHANGED
|
@@ -7,20 +7,33 @@ import { interactiveConfig, configExists, loadConfig } from '../config/config-ma
|
|
|
7
7
|
import { writePidFile, readPidFile, removePidFile, isProcessRunning } from './daemon.js';
|
|
8
8
|
import { SILOLINK_CLAUDE_MD_BLOCK } from './claude-md-block.js';
|
|
9
9
|
import { Bridge } from '../core/bridge.js';
|
|
10
|
+
/**
|
|
11
|
+
* Ensure config exists for the given environment, exiting with an error if not.
|
|
12
|
+
*/
|
|
13
|
+
function ensureConfig(env) {
|
|
14
|
+
if (!configExists(env)) {
|
|
15
|
+
const hint = env ? `silolink config --env ${env}` : 'silolink config';
|
|
16
|
+
console.error(`Config not found. Run "${hint}" first.`);
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
return loadConfig(env);
|
|
20
|
+
}
|
|
21
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
22
|
+
const __dirname = path.dirname(__filename);
|
|
23
|
+
const pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf-8'));
|
|
10
24
|
const program = new Command();
|
|
11
25
|
program
|
|
12
26
|
.name('silolink')
|
|
13
27
|
.description('Claude Code Remote Bridge — connects Claude Code to DSiloed')
|
|
14
|
-
.version(
|
|
28
|
+
.version(pkg.version);
|
|
15
29
|
program
|
|
16
30
|
.command('start')
|
|
17
31
|
.description('Start the SiloLink bridge')
|
|
18
32
|
.option('-d, --daemon', 'Run in background')
|
|
33
|
+
.option('-e, --env <environment>', 'Environment config to use (e.g. dev, prod, local)')
|
|
19
34
|
.action(async (opts) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
35
|
+
const env = opts.env;
|
|
36
|
+
ensureConfig(env);
|
|
24
37
|
// Check if already running
|
|
25
38
|
const existingPid = readPidFile();
|
|
26
39
|
if (existingPid && isProcessRunning(existingPid)) {
|
|
@@ -30,7 +43,10 @@ program
|
|
|
30
43
|
if (opts.daemon) {
|
|
31
44
|
// Spawn detached process
|
|
32
45
|
const entryPoint = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../index.js');
|
|
33
|
-
const
|
|
46
|
+
const args = ['start'];
|
|
47
|
+
if (env)
|
|
48
|
+
args.push('--env', env);
|
|
49
|
+
const child = spawn(process.execPath, [entryPoint, ...args], {
|
|
34
50
|
detached: true,
|
|
35
51
|
stdio: 'ignore',
|
|
36
52
|
});
|
|
@@ -41,7 +57,7 @@ program
|
|
|
41
57
|
// Foreground mode
|
|
42
58
|
writePidFile();
|
|
43
59
|
process.on('exit', removePidFile);
|
|
44
|
-
const bridge = new Bridge();
|
|
60
|
+
const bridge = new Bridge(env);
|
|
45
61
|
await bridge.start();
|
|
46
62
|
});
|
|
47
63
|
program
|
|
@@ -70,7 +86,8 @@ program
|
|
|
70
86
|
program
|
|
71
87
|
.command('status')
|
|
72
88
|
.description('Show SiloLink status')
|
|
73
|
-
.
|
|
89
|
+
.option('-e, --env <environment>', 'Environment config to use')
|
|
90
|
+
.action(async (opts) => {
|
|
74
91
|
const pid = readPidFile();
|
|
75
92
|
if (!pid || !isProcessRunning(pid)) {
|
|
76
93
|
console.log('SiloLink is not running');
|
|
@@ -78,11 +95,11 @@ program
|
|
|
78
95
|
}
|
|
79
96
|
console.log(`SiloLink running (PID ${pid})`);
|
|
80
97
|
try {
|
|
81
|
-
const config = loadConfig();
|
|
98
|
+
const config = loadConfig(opts.env);
|
|
82
99
|
const res = await fetch(`http://localhost:${config.mcp_port}/health`);
|
|
83
100
|
const status = await res.json();
|
|
84
101
|
console.log(` ActionCable: ${status.cable}`);
|
|
85
|
-
console.log(` Sessions: ${status.
|
|
102
|
+
console.log(` Sessions: ${status.active_sessions}`);
|
|
86
103
|
}
|
|
87
104
|
catch {
|
|
88
105
|
console.log(' (could not reach health endpoint)');
|
|
@@ -91,12 +108,13 @@ program
|
|
|
91
108
|
program
|
|
92
109
|
.command('sessions')
|
|
93
110
|
.description('List active sessions')
|
|
94
|
-
.
|
|
111
|
+
.option('-e, --env <environment>', 'Environment config to use')
|
|
112
|
+
.action(async (opts) => {
|
|
95
113
|
try {
|
|
96
|
-
const config = loadConfig();
|
|
114
|
+
const config = loadConfig(opts.env);
|
|
97
115
|
const res = await fetch(`http://localhost:${config.mcp_port}/health`);
|
|
98
116
|
const status = (await res.json());
|
|
99
|
-
console.log(`Active sessions: ${status.
|
|
117
|
+
console.log(`Active sessions: ${status.active_sessions}`);
|
|
100
118
|
}
|
|
101
119
|
catch {
|
|
102
120
|
console.log('SiloLink is not running or unreachable');
|
|
@@ -106,14 +124,12 @@ program
|
|
|
106
124
|
.command('launch')
|
|
107
125
|
.description('Launch a Claude Code session connected to SiloLink')
|
|
108
126
|
.option('-p, --prompt <prompt>', 'Custom prompt for Claude Code')
|
|
127
|
+
.option('-e, --env <environment>', 'Environment config to use')
|
|
109
128
|
.action(async (opts) => {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const config = loadConfig();
|
|
115
|
-
if (!config.claude_command || !config.claude_working_directory) {
|
|
116
|
-
console.error('Claude launcher not configured. Set claude_command and claude_working_directory in ~/.silolink/config.json');
|
|
129
|
+
const env = opts.env;
|
|
130
|
+
const config = ensureConfig(env);
|
|
131
|
+
if (!config.claude_command || !config.projects_path) {
|
|
132
|
+
console.error('Launcher not configured. Set claude_command and projects_path in ~/.silolink/config.json');
|
|
117
133
|
process.exit(1);
|
|
118
134
|
}
|
|
119
135
|
// Import dynamically to avoid circular deps
|
|
@@ -140,12 +156,10 @@ program
|
|
|
140
156
|
.command('interrupt')
|
|
141
157
|
.description('Interrupt the active Claude session and redirect to check for new messages')
|
|
142
158
|
.option('-c, --conversation <id>', 'Conversation ID to interrupt (default: all)')
|
|
159
|
+
.option('-e, --env <environment>', 'Environment config to use')
|
|
143
160
|
.action(async (opts) => {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
process.exit(1);
|
|
147
|
-
}
|
|
148
|
-
const config = loadConfig();
|
|
161
|
+
const env = opts.env;
|
|
162
|
+
const config = ensureConfig(env);
|
|
149
163
|
const convId = opts.conversation ? parseInt(opts.conversation, 10) : undefined;
|
|
150
164
|
try {
|
|
151
165
|
const { JwtGenerator } = await import('../config/jwt-generator.js');
|
|
@@ -175,11 +189,88 @@ program
|
|
|
175
189
|
console.error(`Failed to send interrupt: ${err}`);
|
|
176
190
|
}
|
|
177
191
|
});
|
|
192
|
+
program
|
|
193
|
+
.command('pipeline')
|
|
194
|
+
.description('Create and start an SDLC pipeline')
|
|
195
|
+
.requiredOption('-n, --name <name>', 'Pipeline name')
|
|
196
|
+
.requiredOption('-s, --spec <spec>', 'Feature specification')
|
|
197
|
+
.option('-r, --repo <path>', 'Path to git repository')
|
|
198
|
+
.option('-b, --base-branch <branch>', 'Base branch (default: development)', 'development')
|
|
199
|
+
.option('-t, --tier <tier>', 'Pipeline tier: 1 (dev only) or 2 (full)', '2')
|
|
200
|
+
.option('--hub <id>', 'Existing conversation ID to use as approval hub (creates one if omitted)')
|
|
201
|
+
.option('-e, --env <environment>', 'Environment config to use')
|
|
202
|
+
.action(async (opts) => {
|
|
203
|
+
const env = opts.env;
|
|
204
|
+
const config = ensureConfig(env);
|
|
205
|
+
try {
|
|
206
|
+
const { JwtGenerator } = await import('../config/jwt-generator.js');
|
|
207
|
+
const jwt = new JwtGenerator(config);
|
|
208
|
+
const token = jwt.generate();
|
|
209
|
+
const body = {
|
|
210
|
+
name: opts.name,
|
|
211
|
+
spec: opts.spec,
|
|
212
|
+
base_branch: opts.baseBranch,
|
|
213
|
+
tier: parseInt(opts.tier, 10),
|
|
214
|
+
};
|
|
215
|
+
if (opts.repo)
|
|
216
|
+
body.repo_path = opts.repo;
|
|
217
|
+
if (opts.hub)
|
|
218
|
+
body.hub_conversation_id = parseInt(opts.hub, 10);
|
|
219
|
+
console.log(`Creating SDLC pipeline "${opts.name}" (tier ${opts.tier})...`);
|
|
220
|
+
const res = await fetch(`${config.host}/api/v1/silolink/pipeline`, {
|
|
221
|
+
method: 'POST',
|
|
222
|
+
headers: {
|
|
223
|
+
'Content-Type': 'application/json',
|
|
224
|
+
'Authorization': `Bearer ${token}`,
|
|
225
|
+
'Tenant-Id': config.tenant_id,
|
|
226
|
+
},
|
|
227
|
+
body: JSON.stringify(body),
|
|
228
|
+
});
|
|
229
|
+
const data = await res.json();
|
|
230
|
+
if (!data.success) {
|
|
231
|
+
console.error(`Failed: ${data.message || res.status}`);
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
console.log(`Pipeline created!`);
|
|
235
|
+
console.log(` Project ID: ${data.project_id}`);
|
|
236
|
+
console.log(` Hub (approvals): ${config.host}/conversations/${data.hub_conversation_id}`);
|
|
237
|
+
console.log(` Agent conversations:`);
|
|
238
|
+
for (const [role, convId] of Object.entries(data.conversations || {})) {
|
|
239
|
+
console.log(` ${role}: ${config.host}/conversations/${convId}`);
|
|
240
|
+
}
|
|
241
|
+
// Post the spec as the first message to the PO (or Dev Manager for T1) conversation
|
|
242
|
+
const firstConvRole = parseInt(opts.tier, 10) <= 1 ? 'dev_manager' : 'product_owner';
|
|
243
|
+
const firstConvId = data.conversations?.[firstConvRole];
|
|
244
|
+
if (firstConvId) {
|
|
245
|
+
console.log(`\nPosting spec to ${firstConvRole} conversation...`);
|
|
246
|
+
const msgRes = await fetch(`${config.host}/api/v1/llm_conversations/${firstConvId}/chat`, {
|
|
247
|
+
method: 'POST',
|
|
248
|
+
headers: {
|
|
249
|
+
'Content-Type': 'application/json',
|
|
250
|
+
'Authorization': `Bearer ${token}`,
|
|
251
|
+
'Tenant-Id': config.tenant_id,
|
|
252
|
+
},
|
|
253
|
+
body: JSON.stringify({ message: `New SDLC Pipeline: ${opts.name}\n\n${opts.spec}` }),
|
|
254
|
+
});
|
|
255
|
+
if (msgRes.ok) {
|
|
256
|
+
console.log('Spec posted — SiloLink will auto-launch the agent session.');
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
console.warn('Warning: Could not post spec message. Post it manually in the conversation.');
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
console.error(`Pipeline creation failed: ${err}`);
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
178
268
|
program
|
|
179
269
|
.command('config')
|
|
180
270
|
.description('Configure SiloLink')
|
|
181
|
-
.
|
|
182
|
-
|
|
271
|
+
.option('-e, --env <environment>', 'Environment config to use (e.g. dev, prod, local)')
|
|
272
|
+
.action(async (opts) => {
|
|
273
|
+
await interactiveConfig(opts.env);
|
|
183
274
|
});
|
|
184
275
|
program
|
|
185
276
|
.command('setup-claude-md')
|