@miriad-systems/backend 0.1.2 → 0.1.4
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/agent-manager.d.ts +20 -5
- package/dist/agent-manager.d.ts.map +1 -1
- package/dist/agent-manager.js +173 -17
- package/dist/agent-manager.js.map +1 -1
- package/dist/cli.js +21 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +7 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +35 -8
- package/dist/config.js.map +1 -1
- package/dist/engines/claude-engine.d.ts +12 -0
- package/dist/engines/claude-engine.d.ts.map +1 -0
- package/dist/engines/claude-engine.js +208 -0
- package/dist/engines/claude-engine.js.map +1 -0
- package/dist/engines/claude-sdk-engine.d.ts +19 -0
- package/dist/engines/claude-sdk-engine.d.ts.map +1 -0
- package/dist/engines/claude-sdk-engine.js +288 -0
- package/dist/engines/claude-sdk-engine.js.map +1 -0
- package/dist/engines/engine-manager.d.ts +31 -0
- package/dist/engines/engine-manager.d.ts.map +1 -0
- package/dist/engines/engine-manager.js +60 -0
- package/dist/engines/engine-manager.js.map +1 -0
- package/dist/engines/index.d.ts +15 -0
- package/dist/engines/index.d.ts.map +1 -0
- package/dist/engines/index.js +23 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/letta-engine.d.ts +32 -0
- package/dist/engines/letta-engine.d.ts.map +1 -0
- package/dist/engines/letta-engine.js +249 -0
- package/dist/engines/letta-engine.js.map +1 -0
- package/dist/engines/nuum-engine.d.ts +14 -0
- package/dist/engines/nuum-engine.d.ts.map +1 -0
- package/dist/engines/nuum-engine.js +273 -0
- package/dist/engines/nuum-engine.js.map +1 -0
- package/dist/engines/types.d.ts +74 -0
- package/dist/engines/types.d.ts.map +1 -0
- package/dist/engines/types.js +13 -0
- package/dist/engines/types.js.map +1 -0
- package/dist/runtime-client.d.ts +29 -0
- package/dist/runtime-client.d.ts.map +1 -1
- package/dist/runtime-client.js +71 -0
- package/dist/runtime-client.js.map +1 -1
- package/dist/tymbal-bridge.js +10 -10
- package/dist/tymbal-bridge.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -8
package/dist/agent-manager.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Manager
|
|
3
3
|
*
|
|
4
|
-
* Manages multiple
|
|
4
|
+
* Manages multiple agent instances within a single runtime process.
|
|
5
|
+
* Supports multiple engines: Claude SDK (in-process) and Nuum (subprocess).
|
|
5
6
|
* Handles agent lifecycle: activation, message routing, suspension.
|
|
6
7
|
*
|
|
7
|
-
* Key feature: Streaming input support - messages can be pushed to
|
|
8
|
-
* during execution
|
|
8
|
+
* Key feature: Streaming input support - messages can be pushed to agents
|
|
9
|
+
* during execution for mid-turn injection.
|
|
9
10
|
*/
|
|
10
11
|
import type { AgentState, ActivateAgentMessage, DeliverMessageMessage, SuspendAgentMessage, AgentFrameMessage } from './types.js';
|
|
11
12
|
export interface AgentManagerConfig {
|
|
@@ -26,6 +27,7 @@ export declare function parseAgentId(agentId: string): {
|
|
|
26
27
|
export declare class AgentManager {
|
|
27
28
|
private readonly config;
|
|
28
29
|
private readonly agents;
|
|
30
|
+
private readonly engineManager;
|
|
29
31
|
constructor(config: AgentManagerConfig);
|
|
30
32
|
/**
|
|
31
33
|
* Get all agents.
|
|
@@ -36,9 +38,13 @@ export declare class AgentManager {
|
|
|
36
38
|
*/
|
|
37
39
|
getAgent(agentId: string): AgentState | null;
|
|
38
40
|
/**
|
|
39
|
-
* Activate an agent
|
|
41
|
+
* Activate an agent with the specified engine.
|
|
40
42
|
*/
|
|
41
43
|
activate(message: ActivateAgentMessage): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Consume output from an engine process and feed to TymbalBridge.
|
|
46
|
+
*/
|
|
47
|
+
private consumeEngineOutput;
|
|
42
48
|
/**
|
|
43
49
|
* Format a message with sender header.
|
|
44
50
|
*/
|
|
@@ -49,7 +55,16 @@ export declare class AgentManager {
|
|
|
49
55
|
*/
|
|
50
56
|
deliverMessage(message: DeliverMessageMessage): Promise<void>;
|
|
51
57
|
/**
|
|
52
|
-
*
|
|
58
|
+
* Deliver message to Nuum engine (subprocess).
|
|
59
|
+
* Lazy spawns the engine on first message (when environment is known).
|
|
60
|
+
*/
|
|
61
|
+
private deliverMessageToNuum;
|
|
62
|
+
/**
|
|
63
|
+
* Deliver message to Claude SDK engine (in-process).
|
|
64
|
+
*/
|
|
65
|
+
private deliverMessageToClaudeSDK;
|
|
66
|
+
/**
|
|
67
|
+
* Suspend an agent (tear down engine).
|
|
53
68
|
*/
|
|
54
69
|
suspend(message: SuspendAgentMessage): Promise<void>;
|
|
55
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-manager.d.ts","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EACV,UAAU,EAEV,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AA+JpB,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,gDAAgD;IAChD,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACnD;AAMD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAUA;AAMD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAElC,MAAM,EAAE,kBAAkB;IAKtC;;OAEG;IACH,SAAS,IAAI,UAAU,EAAE;IAIzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAI5C;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8E5D;;OAEG;YACW,mBAAmB;IAiBjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDnE;;;OAGG;YACW,oBAAoB;IA0DlC;;OAEG;YACW,yBAAyB;IA6BvC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC1D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;YAIZ,cAAc;IA4I5B;;;OAGG;YACW,YAAY;CAmB3B"}
|
package/dist/agent-manager.js
CHANGED
|
@@ -1,17 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Manager
|
|
3
3
|
*
|
|
4
|
-
* Manages multiple
|
|
4
|
+
* Manages multiple agent instances within a single runtime process.
|
|
5
|
+
* Supports multiple engines: Claude SDK (in-process) and Nuum (subprocess).
|
|
5
6
|
* Handles agent lifecycle: activation, message routing, suspension.
|
|
6
7
|
*
|
|
7
|
-
* Key feature: Streaming input support - messages can be pushed to
|
|
8
|
-
* during execution
|
|
8
|
+
* Key feature: Streaming input support - messages can be pushed to agents
|
|
9
|
+
* during execution for mid-turn injection.
|
|
9
10
|
*/
|
|
10
11
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
11
12
|
import { join } from 'node:path';
|
|
12
13
|
import { randomUUID } from 'node:crypto';
|
|
13
14
|
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
14
15
|
import { TymbalBridge } from './tymbal-bridge.js';
|
|
16
|
+
import { createEngineManager, } from './engines/index.js';
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// URL Rewriting for Docker
|
|
19
|
+
// =============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Check if we're running inside a Docker container.
|
|
22
|
+
* When MIRIAD_CONFIG contains host.docker.internal, we know we're in Docker.
|
|
23
|
+
*/
|
|
24
|
+
function isRunningInDocker() {
|
|
25
|
+
const config = process.env.MIRIAD_CONFIG;
|
|
26
|
+
if (!config)
|
|
27
|
+
return false;
|
|
28
|
+
return config.includes('host.docker.internal');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Rewrite localhost URLs to host.docker.internal when running in Docker.
|
|
32
|
+
* This is needed because localhost inside a container refers to the container,
|
|
33
|
+
* not the host machine where the backend is running.
|
|
34
|
+
*/
|
|
35
|
+
function rewriteUrlForDocker(url) {
|
|
36
|
+
if (!isRunningInDocker())
|
|
37
|
+
return url;
|
|
38
|
+
return url.replace(/localhost/g, 'host.docker.internal');
|
|
39
|
+
}
|
|
15
40
|
// =============================================================================
|
|
16
41
|
// Message Stream Factory
|
|
17
42
|
// =============================================================================
|
|
@@ -114,8 +139,10 @@ export function parseAgentId(agentId) {
|
|
|
114
139
|
export class AgentManager {
|
|
115
140
|
config;
|
|
116
141
|
agents = new Map();
|
|
142
|
+
engineManager;
|
|
117
143
|
constructor(config) {
|
|
118
144
|
this.config = config;
|
|
145
|
+
this.engineManager = createEngineManager();
|
|
119
146
|
}
|
|
120
147
|
/**
|
|
121
148
|
* Get all agents.
|
|
@@ -130,12 +157,14 @@ export class AgentManager {
|
|
|
130
157
|
return this.agents.get(agentId)?.state ?? null;
|
|
131
158
|
}
|
|
132
159
|
/**
|
|
133
|
-
* Activate an agent
|
|
160
|
+
* Activate an agent with the specified engine.
|
|
134
161
|
*/
|
|
135
162
|
async activate(message) {
|
|
136
|
-
const { agentId, systemPrompt, mcpServers, workspacePath } = message;
|
|
163
|
+
const { agentId, systemPrompt, mcpServers, workspacePath, props } = message;
|
|
137
164
|
const { callsign } = parseAgentId(agentId);
|
|
138
|
-
|
|
165
|
+
// Extract engine from props, default to claude-sdk
|
|
166
|
+
const engineId = (props?.engine === 'nuum' ? 'nuum' : 'claude-sdk');
|
|
167
|
+
console.log(`[AgentManager] Activating ${agentId} with engine: ${engineId}`);
|
|
139
168
|
console.log(`[AgentManager] mcpServers from message:`, JSON.stringify(mcpServers));
|
|
140
169
|
// Check if already active
|
|
141
170
|
const existing = this.agents.get(agentId);
|
|
@@ -166,6 +195,7 @@ export class AgentManager {
|
|
|
166
195
|
workspacePath: resolvedPath,
|
|
167
196
|
systemPrompt,
|
|
168
197
|
mcpServers,
|
|
198
|
+
engine: engineId,
|
|
169
199
|
activatedAt: new Date().toISOString(),
|
|
170
200
|
lastActivity: new Date().toISOString(),
|
|
171
201
|
},
|
|
@@ -173,17 +203,48 @@ export class AgentManager {
|
|
|
173
203
|
messageQueue: [],
|
|
174
204
|
isProcessing: false,
|
|
175
205
|
messageStream: null,
|
|
206
|
+
engineProcess: null,
|
|
207
|
+
pendingEngineConfig: null,
|
|
176
208
|
};
|
|
177
209
|
console.log(`[AgentManager] Stored mcpServers in state:`, JSON.stringify(instance.state.mcpServers));
|
|
178
210
|
this.agents.set(agentId, instance);
|
|
211
|
+
// For Nuum engine, defer spawn to first message (when environment is known)
|
|
212
|
+
if (engineId === 'nuum') {
|
|
213
|
+
// Store config for lazy spawn - environment will be added when first message arrives
|
|
214
|
+
instance.pendingEngineConfig = {
|
|
215
|
+
agentId,
|
|
216
|
+
workspacePath: resolvedPath,
|
|
217
|
+
systemPrompt,
|
|
218
|
+
mcpServers,
|
|
219
|
+
// environment intentionally omitted - will be set from message
|
|
220
|
+
};
|
|
221
|
+
console.log(`[AgentManager] @${callsign} Nuum engine spawn deferred to first message`);
|
|
222
|
+
}
|
|
179
223
|
// Signal checkin (SDK ready)
|
|
180
|
-
// In a real implementation, we'd wait for SDK initialization
|
|
181
|
-
// For now, we mark as online immediately after activation setup
|
|
182
224
|
instance.state.status = 'online';
|
|
183
225
|
instance.state.lastActivity = new Date().toISOString();
|
|
184
226
|
this.config.onCheckin(agentId);
|
|
185
227
|
console.log(`[AgentManager] @${callsign} state: activating → online`);
|
|
186
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Consume output from an engine process and feed to TymbalBridge.
|
|
231
|
+
*/
|
|
232
|
+
async consumeEngineOutput(instance) {
|
|
233
|
+
if (!instance.engineProcess)
|
|
234
|
+
return;
|
|
235
|
+
const { callsign } = parseAgentId(instance.state.agentId);
|
|
236
|
+
try {
|
|
237
|
+
for await (const message of instance.engineProcess.output) {
|
|
238
|
+
await instance.bridge.processSDKMessage(message);
|
|
239
|
+
}
|
|
240
|
+
await instance.bridge.finalize();
|
|
241
|
+
console.log(`[AgentManager] @${callsign} engine output stream ended`);
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.error(`[AgentManager] @${callsign} engine output error:`, error);
|
|
245
|
+
this.config.onError?.(instance.state.agentId, error);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
187
248
|
/**
|
|
188
249
|
* Format a message with sender header.
|
|
189
250
|
*/
|
|
@@ -195,7 +256,7 @@ export class AgentManager {
|
|
|
195
256
|
* Auto-activates the agent if it doesn't exist (local runtime is always-on).
|
|
196
257
|
*/
|
|
197
258
|
async deliverMessage(message) {
|
|
198
|
-
const { agentId, systemPrompt, mcpServers } = message;
|
|
259
|
+
const { agentId, systemPrompt, mcpServers, environment, props } = message;
|
|
199
260
|
let instance = this.agents.get(agentId);
|
|
200
261
|
const { callsign } = parseAgentId(agentId);
|
|
201
262
|
// Auto-activate agent if not found or offline (local runtime is always-on)
|
|
@@ -207,12 +268,16 @@ export class AgentManager {
|
|
|
207
268
|
else {
|
|
208
269
|
console.warn(`[AgentManager] WARNING: Auto-activation WITHOUT mcpServers!`);
|
|
209
270
|
}
|
|
271
|
+
if (props?.engine) {
|
|
272
|
+
console.log(`[AgentManager] Auto-activation with engine: ${props.engine}`);
|
|
273
|
+
}
|
|
210
274
|
await this.activate({
|
|
211
275
|
type: 'activate',
|
|
212
276
|
agentId,
|
|
213
277
|
systemPrompt: systemPrompt || '',
|
|
214
278
|
workspacePath: '', // Will be ignored, uses local config
|
|
215
279
|
mcpServers, // Now passed from message
|
|
280
|
+
props, // Pass props from message (includes engine)
|
|
216
281
|
});
|
|
217
282
|
instance = this.agents.get(agentId);
|
|
218
283
|
if (!instance) {
|
|
@@ -226,6 +291,74 @@ export class AgentManager {
|
|
|
226
291
|
console.log(`[AgentManager] Updating mcpServers for online agent @${callsign} (count: ${mcpServers.length})`);
|
|
227
292
|
instance.state.mcpServers = mcpServers;
|
|
228
293
|
}
|
|
294
|
+
// Update environment if provided (per-request injection)
|
|
295
|
+
if (environment && instance) {
|
|
296
|
+
console.log(`[AgentManager] Updating environment for @${callsign} (count: ${Object.keys(environment).length})`);
|
|
297
|
+
instance.state.environment = environment;
|
|
298
|
+
}
|
|
299
|
+
// Route based on engine type
|
|
300
|
+
if (instance.state.engine === 'nuum') {
|
|
301
|
+
await this.deliverMessageToNuum(instance, message);
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
await this.deliverMessageToClaudeSDK(instance, message);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Deliver message to Nuum engine (subprocess).
|
|
309
|
+
* Lazy spawns the engine on first message (when environment is known).
|
|
310
|
+
*/
|
|
311
|
+
async deliverMessageToNuum(instance, message) {
|
|
312
|
+
const { callsign } = parseAgentId(instance.state.agentId);
|
|
313
|
+
// Lazy spawn: if engine not running, spawn now with environment from state
|
|
314
|
+
if (!instance.engineProcess) {
|
|
315
|
+
if (!instance.pendingEngineConfig) {
|
|
316
|
+
console.error(`[AgentManager] @${callsign} Nuum engine not running and no pending config`);
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
const nuumEngine = this.engineManager.getEngine('nuum');
|
|
321
|
+
if (!nuumEngine) {
|
|
322
|
+
throw new Error('Nuum engine not registered');
|
|
323
|
+
}
|
|
324
|
+
// Add environment from state (set by deliverMessage before this call)
|
|
325
|
+
const engineConfig = {
|
|
326
|
+
...instance.pendingEngineConfig,
|
|
327
|
+
environment: instance.state.environment,
|
|
328
|
+
};
|
|
329
|
+
console.log(`[AgentManager] @${callsign} lazy spawning Nuum engine with environment (${Object.keys(instance.state.environment || {}).length} vars)...`);
|
|
330
|
+
instance.engineProcess = await nuumEngine.spawn(engineConfig);
|
|
331
|
+
// Start consuming output and feeding to bridge
|
|
332
|
+
this.consumeEngineOutput(instance);
|
|
333
|
+
console.log(`[AgentManager] @${callsign} Nuum engine spawned (pid: ${instance.engineProcess.pid})`);
|
|
334
|
+
// Clear pending config - no longer needed
|
|
335
|
+
instance.pendingEngineConfig = null;
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
console.error(`[AgentManager] Failed to spawn Nuum engine for @${callsign}:`, error);
|
|
339
|
+
instance.state.status = 'error';
|
|
340
|
+
this.config.onError?.(instance.state.agentId, error);
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
// Send message to engine process with environment for per-turn updates
|
|
345
|
+
instance.engineProcess.send({
|
|
346
|
+
type: 'user',
|
|
347
|
+
content: message.content,
|
|
348
|
+
sender: message.sender,
|
|
349
|
+
systemPrompt: message.systemPrompt,
|
|
350
|
+
mcpServers: message.mcpServers,
|
|
351
|
+
environment: instance.state.environment,
|
|
352
|
+
});
|
|
353
|
+
instance.state.status = 'busy';
|
|
354
|
+
instance.state.lastActivity = new Date().toISOString();
|
|
355
|
+
console.log(`[AgentManager] @${callsign} sent message to Nuum engine`);
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Deliver message to Claude SDK engine (in-process).
|
|
359
|
+
*/
|
|
360
|
+
async deliverMessageToClaudeSDK(instance, message) {
|
|
361
|
+
const { callsign } = parseAgentId(instance.state.agentId);
|
|
229
362
|
// Format message with sender header
|
|
230
363
|
const formattedContent = this.formatMessage(message);
|
|
231
364
|
// If agent is processing and has an active stream, push to it (mid-execution delivery!)
|
|
@@ -242,11 +375,11 @@ export class AgentManager {
|
|
|
242
375
|
}
|
|
243
376
|
// Process message (will transition to busy)
|
|
244
377
|
console.log(`[AgentManager] @${callsign} calling processMessage with content length: ${formattedContent.length}`);
|
|
245
|
-
await this.processMessage(instance, formattedContent, systemPrompt);
|
|
378
|
+
await this.processMessage(instance, formattedContent, message.systemPrompt);
|
|
246
379
|
console.log(`[AgentManager] @${callsign} processMessage returned`);
|
|
247
380
|
}
|
|
248
381
|
/**
|
|
249
|
-
* Suspend an agent (tear down
|
|
382
|
+
* Suspend an agent (tear down engine).
|
|
250
383
|
*/
|
|
251
384
|
async suspend(message) {
|
|
252
385
|
const { agentId, reason } = message;
|
|
@@ -261,11 +394,16 @@ export class AgentManager {
|
|
|
261
394
|
// Update state
|
|
262
395
|
instance.state.status = 'offline';
|
|
263
396
|
instance.state.lastActivity = new Date().toISOString();
|
|
264
|
-
// Close any active message stream
|
|
397
|
+
// Close any active message stream (Claude SDK)
|
|
265
398
|
if (instance.messageStream) {
|
|
266
399
|
instance.messageStream.close();
|
|
267
400
|
instance.messageStream = null;
|
|
268
401
|
}
|
|
402
|
+
// Terminate engine process (Nuum)
|
|
403
|
+
if (instance.engineProcess) {
|
|
404
|
+
await instance.engineProcess.terminate(reason);
|
|
405
|
+
instance.engineProcess = null;
|
|
406
|
+
}
|
|
269
407
|
// Clear message queue
|
|
270
408
|
instance.messageQueue = [];
|
|
271
409
|
instance.isProcessing = false;
|
|
@@ -329,8 +467,15 @@ export class AgentManager {
|
|
|
329
467
|
includePartialMessages: true,
|
|
330
468
|
continue: shouldContinue,
|
|
331
469
|
cwd: workspace,
|
|
470
|
+
// Don't load settings from filesystem - prevents stored API keys from overriding env vars
|
|
471
|
+
// The SDK docs say: "When omitted or empty, no filesystem settings are loaded (SDK isolation mode)"
|
|
472
|
+
settingSources: [],
|
|
332
473
|
env: {
|
|
333
|
-
//
|
|
474
|
+
// Per-request environment variables and secrets (from system.environment artifacts)
|
|
475
|
+
// Applied first so process.env can override sensitive keys
|
|
476
|
+
...state.environment,
|
|
477
|
+
// Process env takes precedence - filter out PWD/OLDPWD to prevent parent's cwd from leaking
|
|
478
|
+
// This ensures platform-configured keys (ANTHROPIC_API_KEY, etc.) cannot be overridden by artifacts
|
|
334
479
|
...Object.fromEntries(Object.entries(process.env).filter(([key]) => !['PWD', 'OLDPWD'].includes(key))),
|
|
335
480
|
CLAUDE_CONFIG_DIR: claudeConfigDir,
|
|
336
481
|
},
|
|
@@ -342,22 +487,33 @@ export class AgentManager {
|
|
|
342
487
|
// Build MCP servers config - use type assertion since SDK uses discriminated unions
|
|
343
488
|
const mcpServers = {};
|
|
344
489
|
for (const server of state.mcpServers) {
|
|
345
|
-
if (server.transport === 'stdio') {
|
|
490
|
+
if (server.transport === 'stdio' && server.command) {
|
|
491
|
+
// Rewrite localhost URLs in env vars for Docker compatibility
|
|
492
|
+
const rewrittenEnv = server.env
|
|
493
|
+
? Object.fromEntries(Object.entries(server.env).map(([key, value]) => [
|
|
494
|
+
key,
|
|
495
|
+
typeof value === 'string' ? rewriteUrlForDocker(value) : value,
|
|
496
|
+
]))
|
|
497
|
+
: undefined;
|
|
346
498
|
mcpServers[server.name] = {
|
|
347
499
|
type: 'stdio',
|
|
348
500
|
command: server.command,
|
|
349
501
|
args: server.args,
|
|
350
|
-
env:
|
|
502
|
+
env: rewrittenEnv,
|
|
351
503
|
cwd: server.cwd,
|
|
352
504
|
};
|
|
353
505
|
}
|
|
354
|
-
else if (server.transport === 'sse' || server.transport === 'http') {
|
|
506
|
+
else if ((server.transport === 'sse' || server.transport === 'http') && server.url) {
|
|
355
507
|
mcpServers[server.name] = {
|
|
356
508
|
type: server.transport,
|
|
357
|
-
url: server.url,
|
|
509
|
+
url: rewriteUrlForDocker(server.url),
|
|
358
510
|
headers: server.headers,
|
|
359
511
|
};
|
|
360
512
|
}
|
|
513
|
+
else {
|
|
514
|
+
// Skip invalid configs (e.g., stdio without command, http without url)
|
|
515
|
+
console.warn(`[AgentManager] Skipping invalid MCP server '${server.name}': transport=${server.transport}, command=${server.command ?? 'null'}, url=${server.url ?? 'null'}`);
|
|
516
|
+
}
|
|
361
517
|
}
|
|
362
518
|
if (Object.keys(mcpServers).length > 0) {
|
|
363
519
|
console.log(`[AgentManager] Built SDK mcpServers:`, JSON.stringify(mcpServers));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-manager.js","sourceRoot":"","sources":["../src/agent-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -30,10 +30,11 @@ Commands:
|
|
|
30
30
|
Authenticate with Miriad using a connection string from the UI.
|
|
31
31
|
Example: npx @miriad-systems/backend auth "cast://bst_xxx@api.miriad.systems/space_abc"
|
|
32
32
|
|
|
33
|
-
start [--name <name>]
|
|
33
|
+
start [--name <name>] [--idle-timeout <minutes>]
|
|
34
34
|
Start the runtime and connect to Miriad.
|
|
35
35
|
Options:
|
|
36
|
-
--name <name>
|
|
36
|
+
--name <name> Runtime name (default: hostname)
|
|
37
|
+
--idle-timeout <minutes> Exit after N minutes of inactivity (default: never)
|
|
37
38
|
|
|
38
39
|
status
|
|
39
40
|
Show the runtime configuration and connection status.
|
|
@@ -91,14 +92,28 @@ async function cmdStart(args) {
|
|
|
91
92
|
if (nameIdx !== -1 && args[nameIdx + 1]) {
|
|
92
93
|
config.name = args[nameIdx + 1];
|
|
93
94
|
}
|
|
95
|
+
// Check for --idle-timeout flag
|
|
96
|
+
let idleTimeoutMinutes;
|
|
97
|
+
const idleIdx = args.indexOf('--idle-timeout');
|
|
98
|
+
if (idleIdx !== -1 && args[idleIdx + 1]) {
|
|
99
|
+
idleTimeoutMinutes = parseInt(args[idleIdx + 1], 10);
|
|
100
|
+
if (isNaN(idleTimeoutMinutes) || idleTimeoutMinutes <= 0) {
|
|
101
|
+
console.error('Error: --idle-timeout must be a positive number of minutes');
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
94
105
|
console.log('Starting local runtime...');
|
|
95
106
|
console.log(` Runtime: ${config.name} (${config.credentials.runtimeId})`);
|
|
96
107
|
console.log(` Space: ${config.spaceId}`);
|
|
97
108
|
console.log(` Workspace: ${config.workspace.basePath}`);
|
|
109
|
+
if (idleTimeoutMinutes) {
|
|
110
|
+
console.log(` Idle timeout: ${idleTimeoutMinutes} minutes`);
|
|
111
|
+
}
|
|
98
112
|
console.log();
|
|
99
113
|
// Create and connect runtime client
|
|
100
114
|
const client = new RuntimeClient({
|
|
101
115
|
config,
|
|
116
|
+
idleTimeoutMinutes,
|
|
102
117
|
onConnected: () => {
|
|
103
118
|
console.log('Runtime ready. Waiting for agents...');
|
|
104
119
|
},
|
|
@@ -108,6 +123,10 @@ async function cmdStart(args) {
|
|
|
108
123
|
onError: () => {
|
|
109
124
|
// Error already logged by RuntimeClient with clean formatting
|
|
110
125
|
},
|
|
126
|
+
onIdleTimeout: () => {
|
|
127
|
+
console.log(`\nIdle timeout (${idleTimeoutMinutes} minutes) - shutting down...`);
|
|
128
|
+
process.exit(0);
|
|
129
|
+
},
|
|
111
130
|
});
|
|
112
131
|
// Handle shutdown signals
|
|
113
132
|
const shutdown = async () => {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -14,9 +14,13 @@ export declare function getWsProtocol(host: string): 'ws' | 'wss';
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function parseConnectionString(connectionString: string): ParsedConnectionString;
|
|
16
16
|
/**
|
|
17
|
-
* Load runtime config
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* Load runtime config.
|
|
18
|
+
*
|
|
19
|
+
* Config sources (in priority order):
|
|
20
|
+
* 1. MIRIAD_CONFIG env var (JSON string) - for containerized deployments
|
|
21
|
+
* 2. Config file at ~/.config/miriad/config.json - for local installs
|
|
22
|
+
*
|
|
23
|
+
* Returns null if no config found.
|
|
20
24
|
*/
|
|
21
25
|
export declare function loadConfig(): Promise<RuntimeConfig | null>;
|
|
22
26
|
/**
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAyD3F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAExD;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAWtF;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAyD3F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAExD;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAWtF;AAqBD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAuBhE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAQlD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAMD;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAwB5B;AAMD;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,gBAAgB,EAAE,MAAM,EACxB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CA0CxB;AAMD,wBAAgB,cAAc,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAKjE"}
|
package/dist/config.js
CHANGED
|
@@ -72,19 +72,46 @@ export function parseConnectionString(connectionString) {
|
|
|
72
72
|
// Config Storage
|
|
73
73
|
// =============================================================================
|
|
74
74
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
|
|
75
|
+
* Parse and normalize a RuntimeConfig object.
|
|
76
|
+
* Expands tilde in workspace.basePath and sets defaults.
|
|
77
|
+
*/
|
|
78
|
+
function normalizeConfig(config) {
|
|
79
|
+
// Expand tilde in workspace basePath
|
|
80
|
+
if (config.workspace?.basePath) {
|
|
81
|
+
config.workspace.basePath = expandTilde(config.workspace.basePath);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Default workspace path if not specified
|
|
85
|
+
config.workspace = { basePath: DEFAULT_WORKSPACE_BASE };
|
|
86
|
+
}
|
|
87
|
+
return config;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Load runtime config.
|
|
91
|
+
*
|
|
92
|
+
* Config sources (in priority order):
|
|
93
|
+
* 1. MIRIAD_CONFIG env var (JSON string) - for containerized deployments
|
|
94
|
+
* 2. Config file at ~/.config/miriad/config.json - for local installs
|
|
95
|
+
*
|
|
96
|
+
* Returns null if no config found.
|
|
78
97
|
*/
|
|
79
98
|
export async function loadConfig() {
|
|
99
|
+
// Priority 1: Environment variable (for containers)
|
|
100
|
+
const envConfig = process.env.MIRIAD_CONFIG;
|
|
101
|
+
if (envConfig) {
|
|
102
|
+
try {
|
|
103
|
+
const config = JSON.parse(envConfig);
|
|
104
|
+
return normalizeConfig(config);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
throw new Error('MIRIAD_CONFIG env var contains invalid JSON');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Priority 2: Config file
|
|
80
111
|
try {
|
|
81
112
|
const content = await readFile(CONFIG_FILE, 'utf-8');
|
|
82
113
|
const config = JSON.parse(content);
|
|
83
|
-
|
|
84
|
-
if (config.workspace?.basePath) {
|
|
85
|
-
config.workspace.basePath = expandTilde(config.workspace.basePath);
|
|
86
|
-
}
|
|
87
|
-
return config;
|
|
114
|
+
return normalizeConfig(config);
|
|
88
115
|
}
|
|
89
116
|
catch (error) {
|
|
90
117
|
if (error.code === 'ENOENT') {
|