@amodalai/runtime 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/src/agent/agent-runner.js +13 -1
  2. package/dist/src/agent/agent-runner.js.map +1 -1
  3. package/dist/src/agent/config-watcher.d.ts +2 -2
  4. package/dist/src/agent/config-watcher.js +28 -15
  5. package/dist/src/agent/config-watcher.js.map +1 -1
  6. package/dist/src/agent/config-watcher.test.js +13 -4
  7. package/dist/src/agent/config-watcher.test.js.map +1 -1
  8. package/dist/src/agent/eval-store.d.ts +14 -0
  9. package/dist/src/agent/eval-store.js +44 -0
  10. package/dist/src/agent/eval-store.js.map +1 -1
  11. package/dist/src/agent/local-server.d.ts +1 -1
  12. package/dist/src/agent/local-server.js +39 -26
  13. package/dist/src/agent/local-server.js.map +1 -1
  14. package/dist/src/agent/local-server.test.js +2 -1
  15. package/dist/src/agent/local-server.test.js.map +1 -1
  16. package/dist/src/agent/proactive/proactive-runner.d.ts +3 -3
  17. package/dist/src/agent/proactive/proactive-runner.js +3 -3
  18. package/dist/src/agent/proactive/proactive-runner.js.map +1 -1
  19. package/dist/src/agent/proactive/proactive-runner.test.js +2 -2
  20. package/dist/src/agent/proactive/proactive-runner.test.js.map +1 -1
  21. package/dist/src/agent/routes/admin-chat.d.ts +2 -2
  22. package/dist/src/agent/routes/admin-chat.js +2 -2
  23. package/dist/src/agent/routes/admin-chat.js.map +1 -1
  24. package/dist/src/agent/routes/chat.d.ts +6 -6
  25. package/dist/src/agent/routes/chat.js +3 -3
  26. package/dist/src/agent/routes/chat.js.map +1 -1
  27. package/dist/src/agent/routes/chat.test.js +7 -6
  28. package/dist/src/agent/routes/chat.test.js.map +1 -1
  29. package/dist/src/agent/routes/evals.d.ts +2 -2
  30. package/dist/src/agent/routes/evals.js +116 -28
  31. package/dist/src/agent/routes/evals.js.map +1 -1
  32. package/dist/src/agent/routes/inspect.d.ts +2 -2
  33. package/dist/src/agent/routes/inspect.js +11 -22
  34. package/dist/src/agent/routes/inspect.js.map +1 -1
  35. package/dist/src/agent/routes/inspect.test.js +11 -16
  36. package/dist/src/agent/routes/inspect.test.js.map +1 -1
  37. package/dist/src/agent/routes/task.d.ts +2 -2
  38. package/dist/src/agent/routes/task.js +4 -4
  39. package/dist/src/agent/routes/task.js.map +1 -1
  40. package/dist/src/agent/routes/task.test.js.map +1 -1
  41. package/dist/src/agent/session-store.d.ts +2 -2
  42. package/dist/src/agent/session-store.js +9 -6
  43. package/dist/src/agent/session-store.js.map +1 -1
  44. package/dist/src/agent/snapshot-server.js +10 -2
  45. package/dist/src/agent/snapshot-server.js.map +1 -1
  46. package/dist/src/index.d.ts +4 -1
  47. package/dist/src/index.js +3 -1
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/routes/chat-stream.js +2 -1
  50. package/dist/src/routes/chat-stream.js.map +1 -1
  51. package/dist/src/server.js +0 -2
  52. package/dist/src/server.js.map +1 -1
  53. package/dist/src/server.test.js +37 -6
  54. package/dist/src/server.test.js.map +1 -1
  55. package/dist/src/session/custom-tool-adapter.d.ts +74 -0
  56. package/dist/src/session/custom-tool-adapter.js +149 -0
  57. package/dist/src/session/custom-tool-adapter.js.map +1 -0
  58. package/dist/src/session/session-manager.d.ts +67 -3
  59. package/dist/src/session/session-manager.js +313 -7
  60. package/dist/src/session/session-manager.js.map +1 -1
  61. package/dist/src/session/session-manager.test.js +63 -6
  62. package/dist/src/session/session-manager.test.js.map +1 -1
  63. package/dist/src/session/session-runner.js +12 -0
  64. package/dist/src/session/session-runner.js.map +1 -1
  65. package/dist/src/types.d.ts +1 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +2 -2
  68. package/dist/src/agent/agent-runner.test.d.ts +0 -6
  69. package/dist/src/agent/agent-runner.test.js +0 -552
  70. package/dist/src/agent/agent-runner.test.js.map +0 -1
  71. package/dist/src/agent/session-manager.d.ts +0 -88
  72. package/dist/src/agent/session-manager.js +0 -341
  73. package/dist/src/agent/session-manager.js.map +0 -1
  74. package/dist/src/agent/session-manager.test.d.ts +0 -6
  75. package/dist/src/agent/session-manager.test.js +0 -145
  76. package/dist/src/agent/session-manager.test.js.map +0 -1
@@ -3,7 +3,8 @@
3
3
  * Copyright 2025 Amodal Labs, Inc.
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
- import { AmodalConfig, type AmodalConfigParameters, Scheduler, type GeminiClient } from '@amodalai/core';
6
+ import { AmodalConfig, type AmodalConfigParameters, Scheduler, type GeminiClient, PlanModeManager, McpManager } from '@amodalai/core';
7
+ import type { AmodalRepo, CustomToolExecutor, CustomShellExecutor, StoreBackend } from '@amodalai/core';
7
8
  import type { AuthContext } from '../middleware/auth.js';
8
9
  export interface PendingAskUser {
9
10
  resolve: (answers: Record<string, string>) => void;
@@ -39,7 +40,19 @@ export interface ManagedSession {
39
40
  /** Provider used for this session (pinned at creation, survives hydration) */
40
41
  provider?: string;
41
42
  /** Store backend for cleanup on session destroy */
42
- storeBackend?: import('@amodalai/core').StoreBackend;
43
+ storeBackend?: StoreBackend;
44
+ /** Plan mode manager (local dev) */
45
+ planModeManager?: PlanModeManager;
46
+ /** MCP server manager (local dev) */
47
+ mcpManager?: McpManager;
48
+ /** Session title */
49
+ title?: string;
50
+ /** Custom tool executor (local dev) */
51
+ toolExecutor?: CustomToolExecutor;
52
+ /** Custom shell executor (local dev) */
53
+ shellExecutor?: CustomShellExecutor;
54
+ /** App ID for this session */
55
+ appId?: string;
43
56
  }
44
57
  export interface SessionManagerOptions {
45
58
  /** Base config parameters to clone for each session */
@@ -50,15 +63,30 @@ export interface SessionManagerOptions {
50
63
  cleanupIntervalMs?: number;
51
64
  /** Platform API URL (for loading org-specific config per session) */
52
65
  platformApiUrl?: string;
66
+ /** Repo for local dev mode — sessions initialized from repo config instead of platform API */
67
+ repo?: AmodalRepo;
68
+ /** Custom tool executor (local dev) */
69
+ toolExecutor?: CustomToolExecutor;
70
+ /** Custom shell executor (local dev) */
71
+ shellExecutor?: CustomShellExecutor;
72
+ /** Shared store backend (local dev) */
73
+ storeBackend?: StoreBackend;
53
74
  }
54
75
  export declare class SessionManager {
55
76
  private readonly sessions;
56
- private readonly baseParams;
77
+ private baseParams;
57
78
  private readonly ttlMs;
58
79
  private readonly platformApiUrl?;
80
+ private repo?;
81
+ private readonly toolExecutor?;
82
+ private readonly shellExecutor?;
83
+ private readonly sharedStoreBackend?;
59
84
  private cleanupTimer;
60
85
  /** Deduplicates concurrent hydration requests for the same conversation */
61
86
  private readonly pendingHydrations;
87
+ /** Persistent MCP manager for inspect operations (lazy-initialized) */
88
+ private inspectMcp?;
89
+ private inspectMcpInitialized;
62
90
  constructor(options: SessionManagerOptions);
63
91
  /**
64
92
  * Create a new session with optional role override and auth context.
@@ -91,6 +119,42 @@ export declare class SessionManager {
91
119
  * Destroy a session, flushing its audit log.
92
120
  */
93
121
  destroy(id: string): Promise<void>;
122
+ /**
123
+ * Get the repo (local dev mode).
124
+ */
125
+ getRepo(): AmodalRepo | undefined;
126
+ /**
127
+ * Update the repo for new sessions (hot reload).
128
+ * Existing sessions keep their old config.
129
+ */
130
+ updateRepo(repo: AmodalRepo): void;
131
+ /**
132
+ * Re-register a session under a different ID (e.g., restoring original ID on session restore).
133
+ */
134
+ reregister(session: ManagedSession, newId: string): void;
135
+ /**
136
+ * Create an admin session for the config chat.
137
+ * Uses admin agent skills/knowledge but the current repo's connections.
138
+ */
139
+ createAdminSession(): Promise<ManagedSession>;
140
+ /**
141
+ * Get a persistent MCP manager for inspect/health operations.
142
+ * Lazy-initialized on first call, reused across requests.
143
+ */
144
+ getInspectMcpManager(): Promise<McpManager | undefined>;
145
+ /**
146
+ * Initialize MCP servers for a session from repo connections.
147
+ */
148
+ private initMcp;
149
+ /**
150
+ * Build the list of upstream core tools to enable based on repo config.
151
+ * Only tools relevant to the Amodal runtime are included.
152
+ */
153
+ private buildCoreToolsList;
154
+ /**
155
+ * Build MCP server configs from repo connections.
156
+ */
157
+ private buildMcpConfigs;
94
158
  /**
95
159
  * Remove sessions that have been idle longer than the TTL.
96
160
  */
@@ -4,8 +4,25 @@
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
6
  import { randomUUID } from 'node:crypto';
7
- import { AmodalConfig, Scheduler, ROOT_SCHEDULER_ID, ApprovalMode, PolicyDecision, AgentSDK, buildDefaultPrompt, } from '@amodalai/core';
7
+ import { AmodalConfig, Scheduler, ROOT_SCHEDULER_ID, ApprovalMode, PolicyDecision, AgentSDK, buildDefaultPrompt, PlanModeManager, McpManager, ensureAdminAgent, loadAdminAgent, } from '@amodalai/core';
8
8
  import { convertSessionMessagesToHistory } from './history-converter.js';
9
+ /**
10
+ * Resolve env: references in a string record.
11
+ * "env:VAR_NAME" → process.env.VAR_NAME value
12
+ */
13
+ function resolveEnvRefs(record) {
14
+ const resolved = {};
15
+ for (const [key, value] of Object.entries(record)) {
16
+ if (value.startsWith('env:')) {
17
+ const envVar = value.slice(4);
18
+ resolved[key] = process.env[envVar] ?? '';
19
+ }
20
+ else {
21
+ resolved[key] = value;
22
+ }
23
+ }
24
+ return resolved;
25
+ }
9
26
  const DEFAULT_TTL_MS = 30 * 60 * 1000; // 30 minutes
10
27
  const DEFAULT_CLEANUP_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
11
28
  const ASK_USER_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
@@ -14,13 +31,24 @@ export class SessionManager {
14
31
  baseParams;
15
32
  ttlMs;
16
33
  platformApiUrl;
34
+ repo;
35
+ toolExecutor;
36
+ shellExecutor;
37
+ sharedStoreBackend;
17
38
  cleanupTimer = null;
18
39
  /** Deduplicates concurrent hydration requests for the same conversation */
19
40
  pendingHydrations = new Map();
41
+ /** Persistent MCP manager for inspect operations (lazy-initialized) */
42
+ inspectMcp;
43
+ inspectMcpInitialized = false;
20
44
  constructor(options) {
21
45
  this.baseParams = options.baseParams;
22
46
  this.ttlMs = options.ttlMs ?? DEFAULT_TTL_MS;
23
47
  this.platformApiUrl = options.platformApiUrl;
48
+ this.repo = options.repo;
49
+ this.toolExecutor = options.toolExecutor;
50
+ this.shellExecutor = options.shellExecutor;
51
+ this.sharedStoreBackend = options.storeBackend;
24
52
  const cleanupIntervalMs = options.cleanupIntervalMs ?? DEFAULT_CLEANUP_INTERVAL_MS;
25
53
  this.cleanupTimer = setInterval(() => void this.cleanup(), cleanupIntervalMs);
26
54
  // Don't keep the process alive just for cleanup
@@ -39,9 +67,8 @@ export class SessionManager {
39
67
  approvalMode: ApprovalMode.YOLO,
40
68
  interactive: false,
41
69
  noBrowser: true,
42
- // Disable all upstream Gemini CLI tools by default.
43
- // Only Amodal platform tools (request, present, etc.) are registered.
44
- coreTools: [],
70
+ // Build coreTools list based on repo config
71
+ coreTools: this.repo ? this.buildCoreToolsList(this.repo) : [],
45
72
  policyEngineConfig: {
46
73
  approvalMode: ApprovalMode.YOLO,
47
74
  defaultDecision: PolicyDecision.ALLOW,
@@ -55,6 +82,45 @@ export class SessionManager {
55
82
  if (role) {
56
83
  sessionParams.activeRole = role;
57
84
  }
85
+ // Inject repo config into session params when in local mode
86
+ if (this.repo) {
87
+ const { buildConnectionsMap } = await import('@amodalai/core');
88
+ const connectionsMap = buildConnectionsMap(this.repo.connections);
89
+ sessionParams.connections = connectionsMap;
90
+ sessionParams.appDocuments = this.repo.knowledge.map((k) => ({
91
+ id: k.name,
92
+ scope_type: 'application',
93
+ scope_id: 'local',
94
+ title: k.title ?? k.name,
95
+ category: 'system_docs',
96
+ body: k.body,
97
+ tags: [],
98
+ status: 'active',
99
+ created_by: 'local',
100
+ created_at: new Date().toISOString(),
101
+ updated_at: new Date().toISOString(),
102
+ }));
103
+ sessionParams.bundleSkills = this.repo.skills.map((s) => ({
104
+ name: s.name,
105
+ description: s.description ?? '',
106
+ body: s.body,
107
+ }));
108
+ sessionParams.basePrompt = this.repo.config.basePrompt;
109
+ sessionParams.agentName = this.repo.config.name;
110
+ sessionParams.agentContext = this.repo.config.description;
111
+ // Model config from repo
112
+ const mainModel = this.repo.config.models?.main;
113
+ if (mainModel) {
114
+ sessionParams.modelConfig = {
115
+ provider: mainModel.provider ?? 'anthropic',
116
+ model: mainModel.model,
117
+ };
118
+ }
119
+ // Stores
120
+ if (this.repo.stores.length > 0) {
121
+ sessionParams.stores = this.repo.stores;
122
+ }
123
+ }
58
124
  let config;
59
125
  // Platform session: use AgentSDK to fetch KB docs, org details, secrets
60
126
  if (auth?.token && this.platformApiUrl) {
@@ -87,7 +153,82 @@ export class SessionManager {
87
153
  }
88
154
  }
89
155
  config = new AmodalConfig(sessionParams);
90
- await config.initialize();
156
+ // For non-platform sessions, skip the full upstream Config.initialize()
157
+ // which hangs trying to scan files, discover agents, and authenticate
158
+ // with Gemini. Instead, do a minimal init:
159
+ // 1. initializeAuth() — sets up MultiProviderContentGenerator for non-Google
160
+ // 2. registerTools() — registers amodal tools on the upstream registry
161
+ //
162
+ // We need to manually create the tool registry and message bus since
163
+ // the upstream Config only creates them in _initialize().
164
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
165
+ const upstreamRaw = config.getUpstreamConfig();
166
+ // Initialize storage (required by many upstream components)
167
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
168
+ const storage = (upstreamRaw['storage'] ?? upstreamRaw['_storage']);
169
+ if (storage?.initialize) {
170
+ await storage.initialize();
171
+ }
172
+ // Create agent registry and tool registry if not already created
173
+ if (!upstreamRaw['toolRegistry'] && !upstreamRaw['_toolRegistry']) {
174
+ // Agent registry must exist before tool registry (createToolRegistry references it).
175
+ // Use a minimal stub — we register Amodal subagents separately.
176
+ if (!upstreamRaw['agentRegistry']) {
177
+ upstreamRaw['agentRegistry'] = {
178
+ getAllDefinitions: () => [],
179
+ agents: new Map(),
180
+ allDefinitions: new Map(),
181
+ initialize: async () => { },
182
+ };
183
+ }
184
+ // Prompt registry stub (referenced by some tools)
185
+ if (!upstreamRaw['promptRegistry']) {
186
+ upstreamRaw['promptRegistry'] = { getPrompts: () => [] };
187
+ }
188
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
189
+ const upstreamConfig = config.getUpstreamConfig();
190
+ const registry = await upstreamConfig.createToolRegistry();
191
+ upstreamRaw['_toolRegistry'] = registry;
192
+ }
193
+ // Initialize auth (replaces content generator for non-Google providers)
194
+ await config.initializeAuth();
195
+ // Register amodal tools (request, present, knowledge, stores)
196
+ await config.registerTools();
197
+ // Register custom tools from repo tools/ directory
198
+ if (this.repo && this.repo.tools.length > 0) {
199
+ const { CustomToolAdapter } = await import('./custom-tool-adapter.js');
200
+ const { LocalToolExecutor } = await import('../agent/tool-executor-local.js');
201
+ const executor = this.toolExecutor ?? new LocalToolExecutor();
202
+ const registry = config.getUpstreamConfig().getToolRegistry();
203
+ // Session isn't created yet — we'll set it after session construction
204
+ // For now store the tools to register after session is built
205
+ for (const tool of this.repo.tools) {
206
+ if (tool.confirm === 'never')
207
+ continue; // hidden from LLM
208
+ // Create a placeholder session for the adapter — will be updated below
209
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- partial session for tool context
210
+ const placeholder = { config, toolExecutor: executor };
211
+ const adapter = new CustomToolAdapter(tool, placeholder, executor);
212
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- adapter matches upstream tool interface
213
+ registry.registerTool(adapter);
214
+ }
215
+ process.stderr.write(`[SESSION] Registered ${String(this.repo.tools.length)} custom tool(s)\n`);
216
+ }
217
+ // Set model on upstream config so GeminiClient.startChat() can resolve it
218
+ if (sessionParams.modelConfig?.model) {
219
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
220
+ const upstreamForModel = config.getUpstreamConfig();
221
+ if (!upstreamForModel.model && !upstreamForModel._model) {
222
+ upstreamForModel['model'] = sessionParams.modelConfig.model;
223
+ upstreamForModel['_model'] = sessionParams.modelConfig.model;
224
+ }
225
+ }
226
+ // Initialize the GeminiClient (creates the Chat instance)
227
+ // Must happen after tool registry and content generator are set up.
228
+ const gemClient = config.getGeminiClient();
229
+ if (!gemClient.isInitialized()) {
230
+ await gemClient.initialize();
231
+ }
91
232
  }
92
233
  // Inject app secrets as process env vars so shell_exec commands can
93
234
  // reference them (e.g. $API_BASE_URL in curl commands). The shell execution
@@ -139,9 +280,10 @@ export class SessionManager {
139
280
  // Initialize store backend if stores are configured.
140
281
  // Must happen before initializeAuth/tool registration so store tools
141
282
  // are available when registerAmodalTools runs.
283
+ // In local dev mode, use the shared store backend from options.
142
284
  const stores = config.getStores();
143
- let storeBackend;
144
- if (stores.length > 0) {
285
+ let storeBackend = this.sharedStoreBackend;
286
+ if (stores.length > 0 && !storeBackend) {
145
287
  try {
146
288
  const { PGLiteStoreBackend } = await import('../stores/pglite-store-backend.js');
147
289
  const backend = new PGLiteStoreBackend();
@@ -283,7 +425,15 @@ export class SessionManager {
283
425
  model: mc?.model ?? config.getModel(),
284
426
  provider: mc?.provider,
285
427
  storeBackend,
428
+ planModeManager: new PlanModeManager(),
429
+ toolExecutor: this.toolExecutor,
430
+ shellExecutor: this.shellExecutor,
431
+ appId: auth?.applicationId,
286
432
  };
433
+ // Initialize MCP servers if repo has MCP connections
434
+ if (this.repo) {
435
+ await this.initMcp(session, this.repo);
436
+ }
287
437
  this.sessions.set(sessionId, session);
288
438
  return session;
289
439
  }
@@ -395,6 +545,150 @@ export class SessionManager {
395
545
  }
396
546
  await session.config.shutdownAudit();
397
547
  }
548
+ // ---------------------------------------------------------------------------
549
+ // Local dev features
550
+ // ---------------------------------------------------------------------------
551
+ /**
552
+ * Get the repo (local dev mode).
553
+ */
554
+ getRepo() {
555
+ return this.repo;
556
+ }
557
+ /**
558
+ * Update the repo for new sessions (hot reload).
559
+ * Existing sessions keep their old config.
560
+ */
561
+ updateRepo(repo) {
562
+ this.repo = repo;
563
+ // Reset inspect MCP manager so it picks up new connections
564
+ this.inspectMcpInitialized = false;
565
+ this.inspectMcp = undefined;
566
+ }
567
+ /**
568
+ * Re-register a session under a different ID (e.g., restoring original ID on session restore).
569
+ */
570
+ reregister(session, newId) {
571
+ this.sessions.delete(session.id);
572
+ session.id = newId;
573
+ this.sessions.set(newId, session);
574
+ }
575
+ /**
576
+ * Create an admin session for the config chat.
577
+ * Uses admin agent skills/knowledge but the current repo's connections.
578
+ */
579
+ async createAdminSession() {
580
+ if (!this.repo) {
581
+ throw new Error('Admin sessions require a repo');
582
+ }
583
+ const agentDir = await ensureAdminAgent(this.repo.origin);
584
+ const adminContent = await loadAdminAgent(agentDir);
585
+ // Create a session with admin context
586
+ // The admin session uses the same create() flow but with overridden prompts
587
+ const session = await this.create('admin');
588
+ // Override system prompt with admin agent prompt
589
+ if (adminContent.agentPrompt) {
590
+ try {
591
+ session.geminiClient.getChat().setSystemInstruction(adminContent.agentPrompt);
592
+ }
593
+ catch {
594
+ // Non-fatal
595
+ }
596
+ }
597
+ session.appId = 'admin';
598
+ return session;
599
+ }
600
+ /**
601
+ * Get a persistent MCP manager for inspect/health operations.
602
+ * Lazy-initialized on first call, reused across requests.
603
+ */
604
+ async getInspectMcpManager() {
605
+ if (this.inspectMcpInitialized)
606
+ return this.inspectMcp;
607
+ this.inspectMcpInitialized = true;
608
+ if (!this.repo)
609
+ return undefined;
610
+ // Build MCP server configs from repo connections
611
+ const mcpServers = this.buildMcpConfigs(this.repo);
612
+ if (Object.keys(mcpServers).length === 0)
613
+ return undefined;
614
+ const manager = new McpManager();
615
+ try {
616
+ await manager.startServers(mcpServers);
617
+ this.inspectMcp = manager;
618
+ return manager;
619
+ }
620
+ catch (err) {
621
+ const msg = err instanceof Error ? err.message : String(err);
622
+ process.stderr.write(`[INSPECT] MCP initialization failed: ${msg}\n`);
623
+ this.inspectMcp = manager;
624
+ return manager;
625
+ }
626
+ }
627
+ /**
628
+ * Initialize MCP servers for a session from repo connections.
629
+ */
630
+ async initMcp(session, repo) {
631
+ const mcpServers = this.buildMcpConfigs(repo);
632
+ if (Object.keys(mcpServers).length === 0)
633
+ return;
634
+ const manager = new McpManager();
635
+ try {
636
+ await manager.startServers(mcpServers);
637
+ if (manager.connectedCount > 0) {
638
+ session.mcpManager = manager;
639
+ }
640
+ }
641
+ catch (err) {
642
+ const msg = err instanceof Error ? err.message : String(err);
643
+ process.stderr.write(`[SESSION] MCP initialization failed: ${msg}\n`);
644
+ }
645
+ }
646
+ /**
647
+ * Build the list of upstream core tools to enable based on repo config.
648
+ * Only tools relevant to the Amodal runtime are included.
649
+ */
650
+ buildCoreToolsList(repo) {
651
+ const tools = [
652
+ // Always available
653
+ 'enter_plan_mode',
654
+ 'exit_plan_mode',
655
+ 'ask_user',
656
+ ];
657
+ // Shell execution (opt-in via config.sandbox.shellExec)
658
+ if (repo.config.sandbox?.shellExec) {
659
+ tools.push('shell');
660
+ }
661
+ return tools;
662
+ }
663
+ /**
664
+ * Build MCP server configs from repo connections.
665
+ */
666
+ buildMcpConfigs(repo) {
667
+ const mcpServers = {};
668
+ for (const [name, conn] of repo.connections) {
669
+ if (conn.spec.protocol === 'mcp') {
670
+ const resolvedHeaders = conn.spec.headers ? resolveEnvRefs(conn.spec.headers) : undefined;
671
+ const resolvedEnv = conn.spec.env ? resolveEnvRefs(conn.spec.env) : undefined;
672
+ mcpServers[name] = {
673
+ transport: conn.spec.transport ?? 'stdio',
674
+ command: conn.spec.command,
675
+ args: conn.spec.args,
676
+ env: resolvedEnv,
677
+ url: conn.spec.url,
678
+ headers: resolvedHeaders,
679
+ trust: conn.spec.trust,
680
+ };
681
+ }
682
+ }
683
+ if (repo.mcpServers) {
684
+ for (const [name, config] of Object.entries(repo.mcpServers)) {
685
+ if (!mcpServers[name]) {
686
+ mcpServers[name] = config;
687
+ }
688
+ }
689
+ }
690
+ return mcpServers;
691
+ }
398
692
  /**
399
693
  * Remove sessions that have been idle longer than the TTL.
400
694
  */
@@ -419,6 +713,18 @@ export class SessionManager {
419
713
  clearInterval(this.cleanupTimer);
420
714
  this.cleanupTimer = null;
421
715
  }
716
+ // Shutdown MCP managers for all sessions
717
+ for (const session of this.sessions.values()) {
718
+ if (session.mcpManager) {
719
+ await session.mcpManager.shutdown().catch(() => { });
720
+ }
721
+ }
722
+ // Shutdown persistent inspect MCP manager
723
+ if (this.inspectMcp) {
724
+ await this.inspectMcp.shutdown().catch(() => { });
725
+ this.inspectMcp = undefined;
726
+ this.inspectMcpInitialized = false;
727
+ }
422
728
  const ids = [...this.sessions.keys()];
423
729
  for (const id of ids) {
424
730
  await this.destroy(id);
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../src/session/session-manager.ts"],"names":[],"mappings":"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"}