@herdctl/core 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/config/index.d.ts +1 -1
  2. package/dist/config/index.d.ts.map +1 -1
  3. package/dist/config/index.js +3 -1
  4. package/dist/config/index.js.map +1 -1
  5. package/dist/config/schema.d.ts +571 -0
  6. package/dist/config/schema.d.ts.map +1 -1
  7. package/dist/config/schema.js +67 -1
  8. package/dist/config/schema.js.map +1 -1
  9. package/dist/fleet-manager/__tests__/slack-manager.test.d.ts +11 -0
  10. package/dist/fleet-manager/__tests__/slack-manager.test.d.ts.map +1 -0
  11. package/dist/fleet-manager/__tests__/slack-manager.test.js +1022 -0
  12. package/dist/fleet-manager/__tests__/slack-manager.test.js.map +1 -0
  13. package/dist/fleet-manager/context.d.ts +4 -0
  14. package/dist/fleet-manager/context.d.ts.map +1 -1
  15. package/dist/fleet-manager/event-types.d.ts +113 -0
  16. package/dist/fleet-manager/event-types.d.ts.map +1 -1
  17. package/dist/fleet-manager/fleet-manager.d.ts +3 -0
  18. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  19. package/dist/fleet-manager/fleet-manager.js +10 -0
  20. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  21. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  22. package/dist/fleet-manager/job-control.js +5 -2
  23. package/dist/fleet-manager/job-control.js.map +1 -1
  24. package/dist/fleet-manager/slack-manager.d.ts +158 -0
  25. package/dist/fleet-manager/slack-manager.d.ts.map +1 -0
  26. package/dist/fleet-manager/slack-manager.js +570 -0
  27. package/dist/fleet-manager/slack-manager.js.map +1 -0
  28. package/dist/fleet-manager/status-queries.d.ts +2 -1
  29. package/dist/fleet-manager/status-queries.d.ts.map +1 -1
  30. package/dist/fleet-manager/status-queries.js +42 -3
  31. package/dist/fleet-manager/status-queries.js.map +1 -1
  32. package/dist/fleet-manager/types.d.ts +43 -3
  33. package/dist/fleet-manager/types.d.ts.map +1 -1
  34. package/dist/hooks/__tests__/slack-runner.test.d.ts +5 -0
  35. package/dist/hooks/__tests__/slack-runner.test.d.ts.map +1 -0
  36. package/dist/hooks/__tests__/slack-runner.test.js +307 -0
  37. package/dist/hooks/__tests__/slack-runner.test.js.map +1 -0
  38. package/dist/hooks/hook-executor.d.ts +1 -0
  39. package/dist/hooks/hook-executor.d.ts.map +1 -1
  40. package/dist/hooks/hook-executor.js +8 -0
  41. package/dist/hooks/hook-executor.js.map +1 -1
  42. package/dist/hooks/index.d.ts +2 -1
  43. package/dist/hooks/index.d.ts.map +1 -1
  44. package/dist/hooks/index.js +2 -0
  45. package/dist/hooks/index.js.map +1 -1
  46. package/dist/hooks/runners/slack.d.ts +62 -0
  47. package/dist/hooks/runners/slack.d.ts.map +1 -0
  48. package/dist/hooks/runners/slack.js +329 -0
  49. package/dist/hooks/runners/slack.js.map +1 -0
  50. package/dist/hooks/types.d.ts +4 -4
  51. package/dist/hooks/types.d.ts.map +1 -1
  52. package/dist/runner/__tests__/file-sender-mcp.test.d.ts +2 -0
  53. package/dist/runner/__tests__/file-sender-mcp.test.d.ts.map +1 -0
  54. package/dist/runner/__tests__/file-sender-mcp.test.js +177 -0
  55. package/dist/runner/__tests__/file-sender-mcp.test.js.map +1 -0
  56. package/dist/runner/__tests__/job-executor.test.js +12 -12
  57. package/dist/runner/__tests__/job-executor.test.js.map +1 -1
  58. package/dist/runner/file-sender-mcp.d.ts +69 -0
  59. package/dist/runner/file-sender-mcp.d.ts.map +1 -0
  60. package/dist/runner/file-sender-mcp.js +145 -0
  61. package/dist/runner/file-sender-mcp.js.map +1 -0
  62. package/dist/runner/index.d.ts +1 -0
  63. package/dist/runner/index.d.ts.map +1 -1
  64. package/dist/runner/index.js +2 -0
  65. package/dist/runner/index.js.map +1 -1
  66. package/dist/runner/job-executor.d.ts.map +1 -1
  67. package/dist/runner/job-executor.js +35 -5
  68. package/dist/runner/job-executor.js.map +1 -1
  69. package/dist/runner/runtime/__tests__/docker-security.test.js +12 -12
  70. package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -1
  71. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.d.ts +2 -0
  72. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.d.ts.map +1 -0
  73. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.js +191 -0
  74. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.js.map +1 -0
  75. package/dist/runner/runtime/container-manager.d.ts +5 -1
  76. package/dist/runner/runtime/container-manager.d.ts.map +1 -1
  77. package/dist/runner/runtime/container-manager.js +115 -5
  78. package/dist/runner/runtime/container-manager.js.map +1 -1
  79. package/dist/runner/runtime/container-runner.d.ts +2 -0
  80. package/dist/runner/runtime/container-runner.d.ts.map +1 -1
  81. package/dist/runner/runtime/container-runner.js +121 -74
  82. package/dist/runner/runtime/container-runner.js.map +1 -1
  83. package/dist/runner/runtime/index.d.ts +1 -0
  84. package/dist/runner/runtime/index.d.ts.map +1 -1
  85. package/dist/runner/runtime/index.js +2 -0
  86. package/dist/runner/runtime/index.js.map +1 -1
  87. package/dist/runner/runtime/interface.d.ts +2 -0
  88. package/dist/runner/runtime/interface.d.ts.map +1 -1
  89. package/dist/runner/runtime/mcp-http-bridge.d.ts +39 -0
  90. package/dist/runner/runtime/mcp-http-bridge.d.ts.map +1 -0
  91. package/dist/runner/runtime/mcp-http-bridge.js +205 -0
  92. package/dist/runner/runtime/mcp-http-bridge.js.map +1 -0
  93. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -1
  94. package/dist/runner/runtime/sdk-runtime.js +74 -1
  95. package/dist/runner/runtime/sdk-runtime.js.map +1 -1
  96. package/dist/runner/types.d.ts +44 -0
  97. package/dist/runner/types.d.ts.map +1 -1
  98. package/dist/state/index.d.ts +1 -1
  99. package/dist/state/index.d.ts.map +1 -1
  100. package/dist/state/index.js +1 -1
  101. package/dist/state/index.js.map +1 -1
  102. package/dist/state/session-validation.d.ts +8 -0
  103. package/dist/state/session-validation.d.ts.map +1 -1
  104. package/dist/state/session-validation.js +36 -0
  105. package/dist/state/session-validation.js.map +1 -1
  106. package/package.json +1 -9
@@ -6,6 +6,8 @@
6
6
  */
7
7
  import Dockerode from "dockerode";
8
8
  import * as path from "node:path";
9
+ import * as fs from "node:fs";
10
+ import * as os from "node:os";
9
11
  /**
10
12
  * Container manager for herdctl Docker execution
11
13
  */
@@ -224,7 +226,6 @@ export function buildContainerMounts(agent, dockerConfig, stateDir) {
224
226
  // Claude CLI writes sessions to ~/.claude/projects/<encoded-workspace>/
225
227
  // Inside container, working dir is /workspace → encoded as "-workspace"
226
228
  // Mount docker-sessions to this location so we can watch files from host
227
- // Note: Authentication uses ANTHROPIC_API_KEY env var, so no auth mount needed
228
229
  const dockerSessionsDir = path.join(stateDir, "docker-sessions");
229
230
  mounts.push({
230
231
  hostPath: dockerSessionsDir,
@@ -235,22 +236,131 @@ export function buildContainerMounts(agent, dockerConfig, stateDir) {
235
236
  mounts.push(...dockerConfig.volumes);
236
237
  return mounts;
237
238
  }
239
+ const CLAUDE_OAUTH_TOKEN_URL = "https://console.anthropic.com/v1/oauth/token";
240
+ const CLAUDE_OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
241
+ // Refresh 5 minutes before expiry to avoid race conditions
242
+ const TOKEN_REFRESH_BUFFER_MS = 5 * 60 * 1000;
243
+ /**
244
+ * Read Claude OAuth credentials from the mounted credentials file.
245
+ * Returns the parsed claudeAiOauth object or null if unavailable.
246
+ */
247
+ function readCredentialsFile() {
248
+ const credsPath = path.join(os.homedir(), ".claude", ".credentials.json");
249
+ try {
250
+ const creds = JSON.parse(fs.readFileSync(credsPath, "utf-8"));
251
+ return creds.claudeAiOauth ?? null;
252
+ }
253
+ catch {
254
+ return null;
255
+ }
256
+ }
257
+ /**
258
+ * Write updated OAuth tokens back to the credentials file.
259
+ */
260
+ function writeCredentialsFile(oauth) {
261
+ const credsPath = path.join(os.homedir(), ".claude", ".credentials.json");
262
+ try {
263
+ let creds = {};
264
+ try {
265
+ creds = JSON.parse(fs.readFileSync(credsPath, "utf-8"));
266
+ }
267
+ catch {
268
+ // File doesn't exist or is invalid — start fresh
269
+ }
270
+ creds.claudeAiOauth = oauth;
271
+ fs.writeFileSync(credsPath, JSON.stringify(creds, null, 2));
272
+ }
273
+ catch (err) {
274
+ console.error("[buildContainerEnv] Failed to write credentials file:", err);
275
+ }
276
+ }
277
+ /**
278
+ * Refresh the Claude OAuth access token using the refresh token.
279
+ * Updates the credentials file with the new tokens.
280
+ * Returns the updated oauth object, or null on failure.
281
+ */
282
+ async function refreshClaudeOAuthToken(refreshToken) {
283
+ try {
284
+ console.log("[buildContainerEnv] Refreshing Claude OAuth token...");
285
+ const response = await fetch(CLAUDE_OAUTH_TOKEN_URL, {
286
+ method: "POST",
287
+ headers: { "Content-Type": "application/json" },
288
+ body: JSON.stringify({
289
+ grant_type: "refresh_token",
290
+ refresh_token: refreshToken,
291
+ client_id: CLAUDE_OAUTH_CLIENT_ID,
292
+ }),
293
+ });
294
+ if (!response.ok) {
295
+ console.error(`[buildContainerEnv] Token refresh failed: HTTP ${response.status}`);
296
+ return null;
297
+ }
298
+ const data = await response.json();
299
+ const oauth = {
300
+ accessToken: data.access_token,
301
+ refreshToken: data.refresh_token,
302
+ expiresAt: Date.now() + data.expires_in * 1000,
303
+ };
304
+ writeCredentialsFile(oauth);
305
+ console.log(`[buildContainerEnv] Token refreshed, expires in ${Math.round(data.expires_in / 3600)}h`);
306
+ return oauth;
307
+ }
308
+ catch (err) {
309
+ console.error("[buildContainerEnv] Token refresh error:", err);
310
+ return null;
311
+ }
312
+ }
238
313
  /**
239
314
  * Build environment variables for container
240
315
  *
316
+ * Reads OAuth tokens from the mounted credentials file and refreshes
317
+ * them if expired. This ensures agents always get valid tokens without
318
+ * requiring manual herdctl restarts.
319
+ *
241
320
  * @param agent - Resolved agent configuration
242
321
  * @param config - Docker configuration (for custom env vars)
243
322
  * @returns Array of "KEY=value" strings
244
323
  */
245
- export function buildContainerEnv(agent, config) {
324
+ export async function buildContainerEnv(agent, config) {
246
325
  const env = [];
247
326
  // Pass through API key if available (preferred over mounted auth)
248
327
  if (process.env.ANTHROPIC_API_KEY) {
249
328
  env.push(`ANTHROPIC_API_KEY=${process.env.ANTHROPIC_API_KEY}`);
250
329
  }
251
- // Pass through OAuth token if available (for Claude Max web authentication)
252
- if (process.env.CLAUDE_CODE_OAUTH_TOKEN) {
253
- env.push(`CLAUDE_CODE_OAUTH_TOKEN=${process.env.CLAUDE_CODE_OAUTH_TOKEN}`);
330
+ // Read fresh OAuth tokens from mounted credentials file on each spawn.
331
+ let oauth = readCredentialsFile();
332
+ // Refresh if token is expired or about to expire
333
+ if (oauth?.refreshToken && oauth?.expiresAt) {
334
+ const now = Date.now();
335
+ if (now >= oauth.expiresAt - TOKEN_REFRESH_BUFFER_MS) {
336
+ const refreshed = await refreshClaudeOAuthToken(oauth.refreshToken);
337
+ if (refreshed) {
338
+ oauth = refreshed;
339
+ }
340
+ }
341
+ }
342
+ if (oauth) {
343
+ if (oauth.accessToken) {
344
+ env.push(`CLAUDE_CODE_OAUTH_TOKEN=${oauth.accessToken}`);
345
+ }
346
+ if (oauth.refreshToken) {
347
+ env.push(`CLAUDE_REFRESH_TOKEN=${oauth.refreshToken}`);
348
+ }
349
+ if (oauth.expiresAt) {
350
+ env.push(`CLAUDE_EXPIRES_AT=${oauth.expiresAt}`);
351
+ }
352
+ }
353
+ else {
354
+ // Fall back to env vars if credentials file not available
355
+ if (process.env.CLAUDE_CODE_OAUTH_TOKEN) {
356
+ env.push(`CLAUDE_CODE_OAUTH_TOKEN=${process.env.CLAUDE_CODE_OAUTH_TOKEN}`);
357
+ }
358
+ if (process.env.CLAUDE_REFRESH_TOKEN) {
359
+ env.push(`CLAUDE_REFRESH_TOKEN=${process.env.CLAUDE_REFRESH_TOKEN}`);
360
+ }
361
+ if (process.env.CLAUDE_EXPIRES_AT) {
362
+ env.push(`CLAUDE_EXPIRES_AT=${process.env.CLAUDE_EXPIRES_AT}`);
363
+ }
254
364
  }
255
365
  // Add custom environment variables from docker config
256
366
  if (config?.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"container-manager.js","sourceRoot":"","sources":["../../../src/runner/runtime/container-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-manager.js","sourceRoot":"","sources":["../../../src/runner/runtime/container-manager.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,8 @@ export declare class ContainerRunner implements RuntimeInterface {
56
56
  * Execute SDK runtime inside Docker container
57
57
  *
58
58
  * Runs docker-sdk-wrapper.js script which imports SDK and streams messages as JSONL.
59
+ * If injected MCP servers are present, starts HTTP bridges on the Docker network
60
+ * so the agent container can access them via `http://herdctl:<port>/mcp`.
59
61
  */
60
62
  private executeSDKRuntime;
61
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-runner.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/container-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAapD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IAbhB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;OAOG;gBAEO,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,YAAY,EAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,OAAO,WAAW,CAAC;IAM9B;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC;IAqEzE;;;;OAIG;YACY,iBAAiB;IAkChC;;;;OAIG;YACY,iBAAiB;CAgGjC"}
1
+ {"version":3,"file":"container-runner.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/container-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAwB,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYvD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAapD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IAbhB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;OAOG;gBAEO,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,YAAY,EAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,OAAO,WAAW,CAAC;IAM9B;;;;;;OAMG;IACI,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC;IAqEzE;;;;OAIG;YACY,iBAAiB;IAkChC;;;;;;OAMG;YACY,iBAAiB;CAkJjC"}
@@ -20,6 +20,7 @@ import * as path from "node:path";
20
20
  import * as fs from "node:fs/promises";
21
21
  import { PassThrough } from "node:stream";
22
22
  import { createInterface } from "node:readline";
23
+ import { startMcpHttpBridge } from "./mcp-http-bridge.js";
23
24
  import { ContainerManager, buildContainerMounts, buildContainerEnv, } from "./container-manager.js";
24
25
  import { CLIRuntime } from "./cli-runtime.js";
25
26
  import { SDKRuntime } from "./sdk-runtime.js";
@@ -64,7 +65,7 @@ export class ContainerRunner {
64
65
  await fs.mkdir(dockerSessionsDir, { recursive: true });
65
66
  // Build mounts and environment
66
67
  const mounts = buildContainerMounts(agent, this.config, this.stateDir);
67
- const env = buildContainerEnv(agent, this.config);
68
+ const env = await buildContainerEnv(agent, this.config);
68
69
  // Get or create container
69
70
  const container = await this.manager.getOrCreateContainer(agent.name, this.config, mounts, env);
70
71
  try {
@@ -150,85 +151,131 @@ export class ContainerRunner {
150
151
  * Execute SDK runtime inside Docker container
151
152
  *
152
153
  * Runs docker-sdk-wrapper.js script which imports SDK and streams messages as JSONL.
154
+ * If injected MCP servers are present, starts HTTP bridges on the Docker network
155
+ * so the agent container can access them via `http://herdctl:<port>/mcp`.
153
156
  */
154
157
  async *executeSDKRuntime(container, options) {
155
- // Build SDK options
156
- const sdkOptions = toSDKOptions(options.agent, {
157
- resume: options.resume,
158
- fork: options.fork,
159
- });
160
- // Override cwd for Docker - workspace is always mounted at /workspace
161
- sdkOptions.cwd = "/workspace";
162
- // Prepare options JSON for wrapper script
163
- const wrapperOptions = {
164
- prompt: options.prompt,
165
- sdkOptions,
166
- };
167
- // Create exec with environment variable
168
- // Use bash login shell to get full environment including PATH
169
- const optionsJson = JSON.stringify(wrapperOptions).replace(/'/g, "'\\''");
170
- const command = `export HERDCTL_SDK_OPTIONS='${optionsJson}' && node /usr/local/lib/docker-sdk-wrapper.js`;
171
- console.log("[ContainerRunner] SDK exec command:", command);
172
- console.log("[ContainerRunner] Options JSON length:", optionsJson.length);
173
- const exec = await container.exec({
174
- Cmd: [
175
- "bash",
176
- "-l",
177
- "-c",
178
- command,
179
- ],
180
- AttachStdout: true,
181
- AttachStderr: true,
182
- AttachStdin: false,
183
- Tty: false,
184
- WorkingDir: "/workspace",
185
- });
186
- // Start exec and get stream
187
- const stream = await exec.start({ hijack: true, stdin: false });
188
- // Demultiplex stdout/stderr
189
- const stdout = new PassThrough();
190
- const stderr = new PassThrough();
191
- const modem = new Dockerode().modem;
192
- modem.demuxStream(stream, stdout, stderr);
193
- // Collect stderr for error diagnosis
194
- const stderrLines = [];
195
- const stderrRl = createInterface({
196
- input: stderr,
197
- crlfDelay: Infinity,
198
- });
199
- stderrRl.on("line", (line) => {
200
- const trimmed = line.trim();
201
- if (trimmed) {
202
- console.error("[ContainerRunner] SDK stderr:", trimmed);
203
- stderrLines.push(trimmed);
158
+ // Start HTTP bridges for injected MCP servers
159
+ const bridges = [];
160
+ try {
161
+ // Build SDK options
162
+ const sdkOptions = toSDKOptions(options.agent, {
163
+ resume: options.resume,
164
+ fork: options.fork,
165
+ });
166
+ // Override cwd for Docker - workspace is always mounted at /workspace
167
+ sdkOptions.cwd = "/workspace";
168
+ // Start HTTP bridges for injected MCP servers and inject as HTTP configs
169
+ if (options.injectedMcpServers && Object.keys(options.injectedMcpServers).length > 0) {
170
+ const mcpServers = sdkOptions.mcpServers ?? {};
171
+ for (const [name, def] of Object.entries(options.injectedMcpServers)) {
172
+ const bridge = await startMcpHttpBridge(def);
173
+ bridges.push(bridge);
174
+ // Agent container connects via Docker DNS: herdctl is the hostname
175
+ // of the herdctl container on the shared Docker network (herdctl-net)
176
+ mcpServers[name] = {
177
+ type: "http",
178
+ url: `http://herdctl:${bridge.port}/mcp`,
179
+ };
180
+ console.log(`[ContainerRunner] Started MCP HTTP bridge for '${name}' on port ${bridge.port}`);
181
+ }
182
+ sdkOptions.mcpServers = mcpServers;
183
+ // Auto-add injected MCP server tool patterns to allowedTools
184
+ // Without this, agents with an allowedTools list can't call injected tools
185
+ if (sdkOptions.allowedTools?.length) {
186
+ for (const name of Object.keys(options.injectedMcpServers)) {
187
+ sdkOptions.allowedTools.push(`mcp__${name}__*`);
188
+ }
189
+ }
190
+ // File uploads via MCP tools can take longer than the default 60s timeout
191
+ if (options.injectedMcpServers["herdctl-file-sender"]) {
192
+ if (!process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT) {
193
+ process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT = "120000";
194
+ }
195
+ }
204
196
  }
205
- });
206
- // Parse stdout line-by-line as JSONL
207
- const rl = createInterface({
208
- input: stdout,
209
- crlfDelay: Infinity,
210
- });
211
- for await (const line of rl) {
212
- const trimmed = line.trim();
213
- if (!trimmed)
214
- continue;
215
- try {
216
- const message = JSON.parse(trimmed);
217
- yield message;
197
+ // Prepare options JSON for wrapper script
198
+ const wrapperOptions = {
199
+ prompt: options.prompt,
200
+ sdkOptions,
201
+ };
202
+ // Create exec with environment variable
203
+ // Use bash login shell to get full environment including PATH
204
+ const optionsJson = JSON.stringify(wrapperOptions).replace(/'/g, "'\\''");
205
+ const command = `export HERDCTL_SDK_OPTIONS='${optionsJson}' && node /usr/local/lib/docker-sdk-wrapper.js`;
206
+ console.log("[ContainerRunner] SDK exec command:", command);
207
+ console.log("[ContainerRunner] Options JSON length:", optionsJson.length);
208
+ const exec = await container.exec({
209
+ Cmd: [
210
+ "bash",
211
+ "-l",
212
+ "-c",
213
+ command,
214
+ ],
215
+ AttachStdout: true,
216
+ AttachStderr: true,
217
+ AttachStdin: false,
218
+ Tty: false,
219
+ WorkingDir: "/workspace",
220
+ });
221
+ // Start exec and get stream
222
+ const stream = await exec.start({ hijack: true, stdin: false });
223
+ // Demultiplex stdout/stderr
224
+ const stdout = new PassThrough();
225
+ const stderr = new PassThrough();
226
+ const modem = new Dockerode().modem;
227
+ modem.demuxStream(stream, stdout, stderr);
228
+ // Collect stderr for error diagnosis
229
+ const stderrLines = [];
230
+ const stderrRl = createInterface({
231
+ input: stderr,
232
+ crlfDelay: Infinity,
233
+ });
234
+ stderrRl.on("line", (line) => {
235
+ const trimmed = line.trim();
236
+ if (trimmed) {
237
+ console.error("[ContainerRunner] SDK stderr:", trimmed);
238
+ stderrLines.push(trimmed);
239
+ }
240
+ });
241
+ // Parse stdout line-by-line as JSONL
242
+ const rl = createInterface({
243
+ input: stdout,
244
+ crlfDelay: Infinity,
245
+ });
246
+ for await (const line of rl) {
247
+ const trimmed = line.trim();
248
+ if (!trimmed)
249
+ continue;
250
+ try {
251
+ const message = JSON.parse(trimmed);
252
+ yield message;
253
+ }
254
+ catch (error) {
255
+ console.warn(`[ContainerRunner] Failed to parse SDK output: ${error instanceof Error ? error.message : String(error)}`);
256
+ }
218
257
  }
219
- catch (error) {
220
- console.warn(`[ContainerRunner] Failed to parse SDK output: ${error instanceof Error ? error.message : String(error)}`);
258
+ // Check exec exit code
259
+ const inspectData = await exec.inspect();
260
+ const exitCode = inspectData.ExitCode ?? 0;
261
+ if (exitCode !== 0) {
262
+ const stderr = stderrLines.join("\n");
263
+ yield {
264
+ type: "error",
265
+ message: `SDK wrapper exited with code ${exitCode}${stderr ? `\n\nStderr:\n${stderr}` : ""}`,
266
+ };
221
267
  }
222
268
  }
223
- // Check exec exit code
224
- const inspectData = await exec.inspect();
225
- const exitCode = inspectData.ExitCode ?? 0;
226
- if (exitCode !== 0) {
227
- const stderr = stderrLines.join("\n");
228
- yield {
229
- type: "error",
230
- message: `SDK wrapper exited with code ${exitCode}${stderr ? `\n\nStderr:\n${stderr}` : ""}`,
231
- };
269
+ finally {
270
+ // Always close HTTP bridges to prevent port leaks
271
+ for (const bridge of bridges) {
272
+ try {
273
+ await bridge.close();
274
+ }
275
+ catch (err) {
276
+ console.error("[ContainerRunner] Failed to close MCP HTTP bridge:", err);
277
+ }
278
+ }
232
279
  }
233
280
  }
234
281
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-runner.js","sourceRoot":"","sources":["../../../src/runner/runtime/container-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-runner.js","sourceRoot":"","sources":["../../../src/runner/runtime/container-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAahB;IACA;IAbF,OAAO,CAAmB;IAC1B,QAAQ,CAAS;IAEzB;;;;;;;OAOG;IACH,YACU,OAAyB,EACzB,MAAoB,EAC5B,QAAgB,EAChB,MAA4B;QAHpB,YAAO,GAAP,OAAO,CAAkB;QACzB,WAAM,GAAN,MAAM,CAAc;QAI5B,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,OAAO,CAAC,OAA8B;QAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAE1B,oEAAoE;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACtE,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAExD,0BAA0B;QAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CACvD,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,MAAM,EACX,MAAM,EACN,GAAG,CACJ,CAAC;QAEF,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,WAAW,GAAG,aAAa,CAAC,EAAE,CAAC;YAErC,gDAAgD;YAChD,IAAI,IAAI,CAAC,OAAO,YAAY,UAAU,EAAE,CAAC;gBACvC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;YACD,yCAAyC;iBACpC,IAAI,IAAI,CAAC,OAAO,YAAY,UAAU,EAAE,CAAC;gBAC5C,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YACD,uBAAuB;iBAClB,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzD,MAAM;gBACJ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,4BAA4B,YAAY,EAAE;aACtC,CAAC;YAEhB,6CAA6C;QAC/C,CAAC;gBAAS,CAAC;YACT,6DAA6D;YAC7D,wEAAwE;YACxE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,SAAS,EAAE,CAAC;oBACnB,0DAA0D;oBAC1D,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,SAAS,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,8DAA8D;YAC9D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,kDAAkD;gBAClD,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,YAAY,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,CAAC,iBAAiB,CAC9B,WAAmB,EACnB,iBAAyB,EACzB,OAA8B;QAE9B,kDAAkD;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBAC7C,uDAAuD;gBACvD,wEAAwE;gBACxE,+FAA+F;gBAC/F,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAChC,oCAAoC;oBACpC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;gBAC3C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,MAAM,aAAa,GAAG,+BAA+B,aAAa,cAAc,UAAU,EAAE,CAAC;gBAE7F,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;gBACvH,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE/D,4DAA4D;gBAC5D,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE;oBACvE,YAAY,EAAE,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,iEAAiE;YACjE,kBAAkB,EAAE,iBAAiB;SACtC,CAAC,CAAC;QAEH,yEAAyE;QACzE,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,CAAC,iBAAiB,CAC9B,SAAwC,EACxC,OAA8B;QAE9B,8CAA8C;QAC9C,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,oBAAoB;YACpB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;YAEH,sEAAsE;YACtE,UAAU,CAAC,GAAG,GAAG,YAAY,CAAC;YAE9B,yEAAyE;YACzE,IAAI,OAAO,CAAC,kBAAkB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrF,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;gBAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;oBAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAErB,mEAAmE;oBACnE,sEAAsE;oBACtE,UAAU,CAAC,IAAI,CAAC,GAAG;wBACjB,IAAI,EAAE,MAAM;wBACZ,GAAG,EAAE,kBAAkB,MAAM,CAAC,IAAI,MAAM;qBACzC,CAAC;oBAEF,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChG,CAAC;gBAED,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;gBAEnC,6DAA6D;gBAC7D,2EAA2E;gBAC3E,IAAI,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC3D,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBAED,0EAA0E;gBAC1E,IAAI,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC;wBAClD,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,QAAQ,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,MAAM,cAAc,GAAG;gBACrB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU;aACX,CAAC;YAEF,wCAAwC;YACxC,8DAA8D;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,+BAA+B,WAAW,gDAAgD,CAAC;YAE3G,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1E,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;gBAChC,GAAG,EAAE;oBACH,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,OAAO;iBACR;gBACD,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAE,KAAK;gBAClB,GAAG,EAAE,KAAK;gBACV,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;YAEH,4BAA4B;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAEhE,4BAA4B;YAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC,KAAK,CAAC;YACpC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE1C,qCAAqC;YACrC,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,eAAe,CAAC;gBAC/B,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;oBACxD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,qCAAqC;YACrC,MAAM,EAAE,GAAG,eAAe,CAAC;gBACzB,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO;oBAAE,SAAS;gBAEvB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;oBAClD,MAAM,OAAO,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CACV,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1G,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC3C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,gCAAgC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;iBAC/E,CAAC;YAClB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,kDAAkD;YAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -17,4 +17,5 @@ export { CLISessionWatcher, watchSessionFile, } from "./cli-session-watcher.js";
17
17
  export { type DockerConfig, type PathMapping, type NetworkMode, type VolumeMode, parseMemoryToBytes, parseVolumeMount, getHostUser, resolveDockerConfig, DEFAULT_DOCKER_IMAGE, DEFAULT_MEMORY_LIMIT, DEFAULT_MAX_CONTAINERS, } from "./docker-config.js";
18
18
  export { ContainerRunner } from "./container-runner.js";
19
19
  export { ContainerManager, buildContainerMounts, buildContainerEnv, } from "./container-manager.js";
20
+ export { startMcpHttpBridge, type McpHttpBridge } from "./mcp-http-bridge.js";
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -18,4 +18,6 @@ export { parseMemoryToBytes, parseVolumeMount, getHostUser, resolveDockerConfig,
18
18
  // Container execution
19
19
  export { ContainerRunner } from "./container-runner.js";
20
20
  export { ContainerManager, buildContainerMounts, buildContainerEnv, } from "./container-manager.js";
21
+ // MCP HTTP bridge for Docker
22
+ export { startMcpHttpBridge } from "./mcp-http-bridge.js";
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runner/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,uBAAuB;AACvB,OAAO,EAKL,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runner/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,uBAAuB;AACvB,OAAO,EAKL,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC"}
@@ -24,6 +24,8 @@ export interface RuntimeExecuteOptions {
24
24
  fork?: boolean;
25
25
  /** AbortController for cancellation support */
26
26
  abortController?: AbortController;
27
+ /** MCP servers to inject at runtime (SDK and Docker runtimes) */
28
+ injectedMcpServers?: Record<string, import("../types.js").InjectedMcpServerDef>;
27
29
  }
28
30
  /**
29
31
  * Runtime interface for executing Claude agents
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IAErB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CACpE"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IAErB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,oBAAoB,CAAC,CAAC;CACjF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CACpE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * MCP HTTP Bridge
3
+ *
4
+ * Minimal HTTP server implementing MCP Streamable HTTP transport (JSON-RPC 2.0 over POST).
5
+ * Used by ContainerRunner to expose injected MCP servers to Docker containers.
6
+ *
7
+ * The agent container connects to `http://herdctl:<port>/mcp` and the bridge
8
+ * translates tool calls to the in-process handler functions from InjectedMcpServerDef.
9
+ *
10
+ * Supports:
11
+ * - initialize
12
+ * - notifications/initialized
13
+ * - tools/list
14
+ * - tools/call
15
+ * - ping
16
+ *
17
+ * @module mcp-http-bridge
18
+ */
19
+ import { type Server } from "node:http";
20
+ import type { InjectedMcpServerDef } from "../types.js";
21
+ export interface McpHttpBridge {
22
+ /** The HTTP server */
23
+ server: Server;
24
+ /** Port the server is listening on */
25
+ port: number;
26
+ /** Stop the bridge server */
27
+ close: () => Promise<void>;
28
+ }
29
+ /**
30
+ * Start an MCP HTTP bridge for an InjectedMcpServerDef.
31
+ *
32
+ * Binds to 0.0.0.0 on a random available port. The agent container
33
+ * connects via `http://herdctl:<port>/mcp`.
34
+ *
35
+ * @param def - The injected MCP server definition to expose
36
+ * @returns Promise resolving to the bridge with server, port, and close method
37
+ */
38
+ export declare function startMcpHttpBridge(def: InjectedMcpServerDef): Promise<McpHttpBridge>;
39
+ //# sourceMappingURL=mcp-http-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-http-bridge.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/mcp-http-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAA6C,MAAM,WAAW,CAAC;AACjG,OAAO,KAAK,EAAE,oBAAoB,EAAyC,MAAM,aAAa,CAAC;AAoB/F,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AA8KD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoC1F"}