@herdctl/core 4.0.0 → 4.1.1

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 (156) 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/loader.d.ts.map +1 -1
  6. package/dist/config/loader.js +3 -1
  7. package/dist/config/loader.js.map +1 -1
  8. package/dist/config/schema.d.ts +571 -0
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +67 -1
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/fleet-manager/__tests__/coverage.test.js +8 -0
  13. package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
  14. package/dist/fleet-manager/__tests__/discord-manager.test.js +2 -2
  15. package/dist/fleet-manager/__tests__/discord-manager.test.js.map +1 -1
  16. package/dist/fleet-manager/__tests__/slack-manager.test.d.ts +11 -0
  17. package/dist/fleet-manager/__tests__/slack-manager.test.d.ts.map +1 -0
  18. package/dist/fleet-manager/__tests__/slack-manager.test.js +1027 -0
  19. package/dist/fleet-manager/__tests__/slack-manager.test.js.map +1 -0
  20. package/dist/fleet-manager/context.d.ts +4 -0
  21. package/dist/fleet-manager/context.d.ts.map +1 -1
  22. package/dist/fleet-manager/discord-manager.js +7 -7
  23. package/dist/fleet-manager/discord-manager.js.map +1 -1
  24. package/dist/fleet-manager/event-types.d.ts +113 -0
  25. package/dist/fleet-manager/event-types.d.ts.map +1 -1
  26. package/dist/fleet-manager/fleet-manager.d.ts +3 -0
  27. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  28. package/dist/fleet-manager/fleet-manager.js +15 -9
  29. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  30. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  31. package/dist/fleet-manager/job-control.js +6 -3
  32. package/dist/fleet-manager/job-control.js.map +1 -1
  33. package/dist/fleet-manager/job-queue.d.ts.map +1 -1
  34. package/dist/fleet-manager/job-queue.js +2 -6
  35. package/dist/fleet-manager/job-queue.js.map +1 -1
  36. package/dist/fleet-manager/slack-manager.d.ts +158 -0
  37. package/dist/fleet-manager/slack-manager.d.ts.map +1 -0
  38. package/dist/fleet-manager/slack-manager.js +570 -0
  39. package/dist/fleet-manager/slack-manager.js.map +1 -0
  40. package/dist/fleet-manager/status-queries.d.ts +2 -1
  41. package/dist/fleet-manager/status-queries.d.ts.map +1 -1
  42. package/dist/fleet-manager/status-queries.js +42 -3
  43. package/dist/fleet-manager/status-queries.js.map +1 -1
  44. package/dist/fleet-manager/types.d.ts +43 -3
  45. package/dist/fleet-manager/types.d.ts.map +1 -1
  46. package/dist/hooks/__tests__/slack-runner.test.d.ts +5 -0
  47. package/dist/hooks/__tests__/slack-runner.test.d.ts.map +1 -0
  48. package/dist/hooks/__tests__/slack-runner.test.js +307 -0
  49. package/dist/hooks/__tests__/slack-runner.test.js.map +1 -0
  50. package/dist/hooks/hook-executor.d.ts +1 -0
  51. package/dist/hooks/hook-executor.d.ts.map +1 -1
  52. package/dist/hooks/hook-executor.js +8 -0
  53. package/dist/hooks/hook-executor.js.map +1 -1
  54. package/dist/hooks/index.d.ts +2 -1
  55. package/dist/hooks/index.d.ts.map +1 -1
  56. package/dist/hooks/index.js +2 -0
  57. package/dist/hooks/index.js.map +1 -1
  58. package/dist/hooks/runners/slack.d.ts +62 -0
  59. package/dist/hooks/runners/slack.d.ts.map +1 -0
  60. package/dist/hooks/runners/slack.js +329 -0
  61. package/dist/hooks/runners/slack.js.map +1 -0
  62. package/dist/hooks/types.d.ts +4 -4
  63. package/dist/hooks/types.d.ts.map +1 -1
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +2 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/runner/__tests__/file-sender-mcp.test.d.ts +2 -0
  69. package/dist/runner/__tests__/file-sender-mcp.test.d.ts.map +1 -0
  70. package/dist/runner/__tests__/file-sender-mcp.test.js +177 -0
  71. package/dist/runner/__tests__/file-sender-mcp.test.js.map +1 -0
  72. package/dist/runner/__tests__/job-executor.test.js +12 -12
  73. package/dist/runner/__tests__/job-executor.test.js.map +1 -1
  74. package/dist/runner/file-sender-mcp.d.ts +69 -0
  75. package/dist/runner/file-sender-mcp.d.ts.map +1 -0
  76. package/dist/runner/file-sender-mcp.js +145 -0
  77. package/dist/runner/file-sender-mcp.js.map +1 -0
  78. package/dist/runner/index.d.ts +1 -0
  79. package/dist/runner/index.d.ts.map +1 -1
  80. package/dist/runner/index.js +2 -0
  81. package/dist/runner/index.js.map +1 -1
  82. package/dist/runner/job-executor.d.ts +1 -0
  83. package/dist/runner/job-executor.d.ts.map +1 -1
  84. package/dist/runner/job-executor.js +38 -11
  85. package/dist/runner/job-executor.js.map +1 -1
  86. package/dist/runner/runtime/__tests__/docker-security.test.js +12 -12
  87. package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -1
  88. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.d.ts +2 -0
  89. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.d.ts.map +1 -0
  90. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.js +191 -0
  91. package/dist/runner/runtime/__tests__/mcp-http-bridge.test.js.map +1 -0
  92. package/dist/runner/runtime/cli-runtime.d.ts.map +1 -1
  93. package/dist/runner/runtime/cli-runtime.js +29 -27
  94. package/dist/runner/runtime/cli-runtime.js.map +1 -1
  95. package/dist/runner/runtime/cli-session-watcher.d.ts.map +1 -1
  96. package/dist/runner/runtime/cli-session-watcher.js +20 -18
  97. package/dist/runner/runtime/cli-session-watcher.js.map +1 -1
  98. package/dist/runner/runtime/container-manager.d.ts +5 -1
  99. package/dist/runner/runtime/container-manager.d.ts.map +1 -1
  100. package/dist/runner/runtime/container-manager.js +117 -5
  101. package/dist/runner/runtime/container-manager.js.map +1 -1
  102. package/dist/runner/runtime/container-runner.d.ts +2 -0
  103. package/dist/runner/runtime/container-runner.d.ts.map +1 -1
  104. package/dist/runner/runtime/container-runner.js +127 -78
  105. package/dist/runner/runtime/container-runner.js.map +1 -1
  106. package/dist/runner/runtime/index.d.ts +1 -0
  107. package/dist/runner/runtime/index.d.ts.map +1 -1
  108. package/dist/runner/runtime/index.js +2 -0
  109. package/dist/runner/runtime/index.js.map +1 -1
  110. package/dist/runner/runtime/interface.d.ts +2 -0
  111. package/dist/runner/runtime/interface.d.ts.map +1 -1
  112. package/dist/runner/runtime/mcp-http-bridge.d.ts +39 -0
  113. package/dist/runner/runtime/mcp-http-bridge.d.ts.map +1 -0
  114. package/dist/runner/runtime/mcp-http-bridge.js +205 -0
  115. package/dist/runner/runtime/mcp-http-bridge.js.map +1 -0
  116. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -1
  117. package/dist/runner/runtime/sdk-runtime.js +74 -1
  118. package/dist/runner/runtime/sdk-runtime.js.map +1 -1
  119. package/dist/runner/types.d.ts +44 -0
  120. package/dist/runner/types.d.ts.map +1 -1
  121. package/dist/scheduler/__tests__/scheduler.test.js +2 -2
  122. package/dist/scheduler/__tests__/scheduler.test.js.map +1 -1
  123. package/dist/scheduler/schedule-runner.d.ts.map +1 -1
  124. package/dist/scheduler/schedule-runner.js +2 -6
  125. package/dist/scheduler/schedule-runner.js.map +1 -1
  126. package/dist/scheduler/schedule-state.d.ts.map +1 -1
  127. package/dist/scheduler/schedule-state.js +2 -3
  128. package/dist/scheduler/schedule-state.js.map +1 -1
  129. package/dist/scheduler/scheduler.d.ts.map +1 -1
  130. package/dist/scheduler/scheduler.js +3 -7
  131. package/dist/scheduler/scheduler.js.map +1 -1
  132. package/dist/state/fleet-state.d.ts.map +1 -1
  133. package/dist/state/fleet-state.js +2 -3
  134. package/dist/state/fleet-state.js.map +1 -1
  135. package/dist/state/index.d.ts +1 -1
  136. package/dist/state/index.d.ts.map +1 -1
  137. package/dist/state/index.js +1 -1
  138. package/dist/state/index.js.map +1 -1
  139. package/dist/state/schemas/job-output.d.ts +2 -2
  140. package/dist/state/session-validation.d.ts +8 -0
  141. package/dist/state/session-validation.d.ts.map +1 -1
  142. package/dist/state/session-validation.js +36 -0
  143. package/dist/state/session-validation.js.map +1 -1
  144. package/dist/utils/__tests__/logger.test.d.ts +2 -0
  145. package/dist/utils/__tests__/logger.test.d.ts.map +1 -0
  146. package/dist/utils/__tests__/logger.test.js +360 -0
  147. package/dist/utils/__tests__/logger.test.js.map +1 -0
  148. package/dist/utils/index.d.ts +5 -0
  149. package/dist/utils/index.d.ts.map +1 -0
  150. package/dist/utils/index.js +5 -0
  151. package/dist/utils/index.js.map +1 -0
  152. package/dist/utils/logger.d.ts +72 -0
  153. package/dist/utils/logger.d.ts.map +1 -0
  154. package/dist/utils/logger.js +117 -0
  155. package/dist/utils/logger.js.map +1 -0
  156. package/package.json +1 -9
@@ -6,6 +6,10 @@
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";
11
+ import { createLogger } from "../../utils/logger.js";
12
+ const logger = createLogger("ContainerManager");
9
13
  /**
10
14
  * Container manager for herdctl Docker execution
11
15
  */
@@ -224,7 +228,6 @@ export function buildContainerMounts(agent, dockerConfig, stateDir) {
224
228
  // Claude CLI writes sessions to ~/.claude/projects/<encoded-workspace>/
225
229
  // Inside container, working dir is /workspace → encoded as "-workspace"
226
230
  // 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
231
  const dockerSessionsDir = path.join(stateDir, "docker-sessions");
229
232
  mounts.push({
230
233
  hostPath: dockerSessionsDir,
@@ -235,22 +238,131 @@ export function buildContainerMounts(agent, dockerConfig, stateDir) {
235
238
  mounts.push(...dockerConfig.volumes);
236
239
  return mounts;
237
240
  }
241
+ const CLAUDE_OAUTH_TOKEN_URL = "https://console.anthropic.com/v1/oauth/token";
242
+ const CLAUDE_OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
243
+ // Refresh 5 minutes before expiry to avoid race conditions
244
+ const TOKEN_REFRESH_BUFFER_MS = 5 * 60 * 1000;
245
+ /**
246
+ * Read Claude OAuth credentials from the mounted credentials file.
247
+ * Returns the parsed claudeAiOauth object or null if unavailable.
248
+ */
249
+ function readCredentialsFile() {
250
+ const credsPath = path.join(os.homedir(), ".claude", ".credentials.json");
251
+ try {
252
+ const creds = JSON.parse(fs.readFileSync(credsPath, "utf-8"));
253
+ return creds.claudeAiOauth ?? null;
254
+ }
255
+ catch {
256
+ return null;
257
+ }
258
+ }
259
+ /**
260
+ * Write updated OAuth tokens back to the credentials file.
261
+ */
262
+ function writeCredentialsFile(oauth) {
263
+ const credsPath = path.join(os.homedir(), ".claude", ".credentials.json");
264
+ try {
265
+ let creds = {};
266
+ try {
267
+ creds = JSON.parse(fs.readFileSync(credsPath, "utf-8"));
268
+ }
269
+ catch {
270
+ // File doesn't exist or is invalid — start fresh
271
+ }
272
+ creds.claudeAiOauth = oauth;
273
+ fs.writeFileSync(credsPath, JSON.stringify(creds, null, 2));
274
+ }
275
+ catch (err) {
276
+ logger.error(`Failed to write credentials file: ${err}`);
277
+ }
278
+ }
279
+ /**
280
+ * Refresh the Claude OAuth access token using the refresh token.
281
+ * Updates the credentials file with the new tokens.
282
+ * Returns the updated oauth object, or null on failure.
283
+ */
284
+ async function refreshClaudeOAuthToken(refreshToken) {
285
+ try {
286
+ logger.info("Refreshing Claude OAuth token...");
287
+ const response = await fetch(CLAUDE_OAUTH_TOKEN_URL, {
288
+ method: "POST",
289
+ headers: { "Content-Type": "application/json" },
290
+ body: JSON.stringify({
291
+ grant_type: "refresh_token",
292
+ refresh_token: refreshToken,
293
+ client_id: CLAUDE_OAUTH_CLIENT_ID,
294
+ }),
295
+ });
296
+ if (!response.ok) {
297
+ logger.error(`Token refresh failed: HTTP ${response.status}`);
298
+ return null;
299
+ }
300
+ const data = await response.json();
301
+ const oauth = {
302
+ accessToken: data.access_token,
303
+ refreshToken: data.refresh_token,
304
+ expiresAt: Date.now() + data.expires_in * 1000,
305
+ };
306
+ writeCredentialsFile(oauth);
307
+ logger.info(`Token refreshed, expires in ${Math.round(data.expires_in / 3600)}h`);
308
+ return oauth;
309
+ }
310
+ catch (err) {
311
+ logger.error(`Token refresh error: ${err}`);
312
+ return null;
313
+ }
314
+ }
238
315
  /**
239
316
  * Build environment variables for container
240
317
  *
318
+ * Reads OAuth tokens from the mounted credentials file and refreshes
319
+ * them if expired. This ensures agents always get valid tokens without
320
+ * requiring manual herdctl restarts.
321
+ *
241
322
  * @param agent - Resolved agent configuration
242
323
  * @param config - Docker configuration (for custom env vars)
243
324
  * @returns Array of "KEY=value" strings
244
325
  */
245
- export function buildContainerEnv(agent, config) {
326
+ export async function buildContainerEnv(agent, config) {
246
327
  const env = [];
247
328
  // Pass through API key if available (preferred over mounted auth)
248
329
  if (process.env.ANTHROPIC_API_KEY) {
249
330
  env.push(`ANTHROPIC_API_KEY=${process.env.ANTHROPIC_API_KEY}`);
250
331
  }
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}`);
332
+ // Read fresh OAuth tokens from mounted credentials file on each spawn.
333
+ let oauth = readCredentialsFile();
334
+ // Refresh if token is expired or about to expire
335
+ if (oauth?.refreshToken && oauth?.expiresAt) {
336
+ const now = Date.now();
337
+ if (now >= oauth.expiresAt - TOKEN_REFRESH_BUFFER_MS) {
338
+ const refreshed = await refreshClaudeOAuthToken(oauth.refreshToken);
339
+ if (refreshed) {
340
+ oauth = refreshed;
341
+ }
342
+ }
343
+ }
344
+ if (oauth) {
345
+ if (oauth.accessToken) {
346
+ env.push(`CLAUDE_CODE_OAUTH_TOKEN=${oauth.accessToken}`);
347
+ }
348
+ if (oauth.refreshToken) {
349
+ env.push(`CLAUDE_REFRESH_TOKEN=${oauth.refreshToken}`);
350
+ }
351
+ if (oauth.expiresAt) {
352
+ env.push(`CLAUDE_EXPIRES_AT=${oauth.expiresAt}`);
353
+ }
354
+ }
355
+ else {
356
+ // Fall back to env vars if credentials file not available
357
+ if (process.env.CLAUDE_CODE_OAUTH_TOKEN) {
358
+ env.push(`CLAUDE_CODE_OAUTH_TOKEN=${process.env.CLAUDE_CODE_OAUTH_TOKEN}`);
359
+ }
360
+ if (process.env.CLAUDE_REFRESH_TOKEN) {
361
+ env.push(`CLAUDE_REFRESH_TOKEN=${process.env.CLAUDE_REFRESH_TOKEN}`);
362
+ }
363
+ if (process.env.CLAUDE_EXPIRES_AT) {
364
+ env.push(`CLAUDE_EXPIRES_AT=${process.env.CLAUDE_EXPIRES_AT}`);
365
+ }
254
366
  }
255
367
  // Add custom environment variables from docker config
256
368
  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;AAevD;;;;;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,11 +20,14 @@ 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";
26
27
  import { toSDKOptions } from "../sdk-adapter.js";
27
28
  import Dockerode from "dockerode";
29
+ import { createLogger } from "../../utils/logger.js";
30
+ const logger = createLogger("ContainerRunner");
28
31
  /**
29
32
  * Container runtime decorator
30
33
  *
@@ -64,7 +67,7 @@ export class ContainerRunner {
64
67
  await fs.mkdir(dockerSessionsDir, { recursive: true });
65
68
  // Build mounts and environment
66
69
  const mounts = buildContainerMounts(agent, this.config, this.stateDir);
67
- const env = buildContainerEnv(agent, this.config);
70
+ const env = await buildContainerEnv(agent, this.config);
68
71
  // Get or create container
69
72
  const container = await this.manager.getOrCreateContainer(agent.name, this.config, mounts, env);
70
73
  try {
@@ -101,7 +104,7 @@ export class ContainerRunner {
101
104
  }
102
105
  catch (stopError) {
103
106
  // Log but don't fail - container might already be stopped
104
- console.error('[ContainerRunner] Failed to stop ephemeral container:', stopError);
107
+ logger.error(`Failed to stop ephemeral container: ${stopError}`);
105
108
  }
106
109
  }
107
110
  // Always cleanup old containers, regardless of success/failure
@@ -111,7 +114,7 @@ export class ContainerRunner {
111
114
  }
112
115
  catch (cleanupError) {
113
116
  // Log cleanup errors but don't fail the execution
114
- console.error('[ContainerRunner] Failed to cleanup old containers:', cleanupError);
117
+ logger.error(`Failed to cleanup old containers: ${cleanupError}`);
115
118
  }
116
119
  }
117
120
  }
@@ -133,8 +136,8 @@ export class ContainerRunner {
133
136
  return `'${arg.replace(/'/g, "'\\''")}'`;
134
137
  }).join(" ");
135
138
  const claudeCommand = `cd /workspace && printf %s "${escapedPrompt}" | claude ${claudeArgs}`;
136
- console.log("[ContainerRunner] Executing docker command:", "docker", ["exec", containerId, "sh", "-c", claudeCommand]);
137
- console.log("[ContainerRunner] Prompt length:", prompt.length);
139
+ logger.debug(`Executing docker exec in container ${containerId}`);
140
+ logger.debug(`Prompt length: ${prompt.length}`);
138
141
  // execa returns Subprocess directly (which is promise-like)
139
142
  return execa("docker", ["exec", containerId, "sh", "-c", claudeCommand], {
140
143
  cancelSignal: signal,
@@ -150,85 +153,131 @@ export class ContainerRunner {
150
153
  * Execute SDK runtime inside Docker container
151
154
  *
152
155
  * Runs docker-sdk-wrapper.js script which imports SDK and streams messages as JSONL.
156
+ * If injected MCP servers are present, starts HTTP bridges on the Docker network
157
+ * so the agent container can access them via `http://herdctl:<port>/mcp`.
153
158
  */
154
159
  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);
160
+ // Start HTTP bridges for injected MCP servers
161
+ const bridges = [];
162
+ try {
163
+ // Build SDK options
164
+ const sdkOptions = toSDKOptions(options.agent, {
165
+ resume: options.resume,
166
+ fork: options.fork,
167
+ });
168
+ // Override cwd for Docker - workspace is always mounted at /workspace
169
+ sdkOptions.cwd = "/workspace";
170
+ // Start HTTP bridges for injected MCP servers and inject as HTTP configs
171
+ if (options.injectedMcpServers && Object.keys(options.injectedMcpServers).length > 0) {
172
+ const mcpServers = sdkOptions.mcpServers ?? {};
173
+ for (const [name, def] of Object.entries(options.injectedMcpServers)) {
174
+ const bridge = await startMcpHttpBridge(def);
175
+ bridges.push(bridge);
176
+ // Agent container connects via Docker DNS: herdctl is the hostname
177
+ // of the herdctl container on the shared Docker network (herdctl-net)
178
+ mcpServers[name] = {
179
+ type: "http",
180
+ url: `http://herdctl:${bridge.port}/mcp`,
181
+ };
182
+ logger.debug(`Started MCP HTTP bridge for '${name}' on port ${bridge.port}`);
183
+ }
184
+ sdkOptions.mcpServers = mcpServers;
185
+ // Auto-add injected MCP server tool patterns to allowedTools
186
+ // Without this, agents with an allowedTools list can't call injected tools
187
+ if (sdkOptions.allowedTools?.length) {
188
+ for (const name of Object.keys(options.injectedMcpServers)) {
189
+ sdkOptions.allowedTools.push(`mcp__${name}__*`);
190
+ }
191
+ }
192
+ // File uploads via MCP tools can take longer than the default 60s timeout
193
+ if (options.injectedMcpServers["herdctl-file-sender"]) {
194
+ if (!process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT) {
195
+ process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT = "120000";
196
+ }
197
+ }
204
198
  }
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;
199
+ // Prepare options JSON for wrapper script
200
+ const wrapperOptions = {
201
+ prompt: options.prompt,
202
+ sdkOptions,
203
+ };
204
+ // Create exec with environment variable
205
+ // Use bash login shell to get full environment including PATH
206
+ const optionsJson = JSON.stringify(wrapperOptions).replace(/'/g, "'\\''");
207
+ const command = `export HERDCTL_SDK_OPTIONS='${optionsJson}' && node /usr/local/lib/docker-sdk-wrapper.js`;
208
+ logger.debug(`SDK exec command length: ${command.length}`);
209
+ logger.debug(`Options JSON length: ${optionsJson.length}`);
210
+ const exec = await container.exec({
211
+ Cmd: [
212
+ "bash",
213
+ "-l",
214
+ "-c",
215
+ command,
216
+ ],
217
+ AttachStdout: true,
218
+ AttachStderr: true,
219
+ AttachStdin: false,
220
+ Tty: false,
221
+ WorkingDir: "/workspace",
222
+ });
223
+ // Start exec and get stream
224
+ const stream = await exec.start({ hijack: true, stdin: false });
225
+ // Demultiplex stdout/stderr
226
+ const stdout = new PassThrough();
227
+ const stderr = new PassThrough();
228
+ const modem = new Dockerode().modem;
229
+ modem.demuxStream(stream, stdout, stderr);
230
+ // Collect stderr for error diagnosis
231
+ const stderrLines = [];
232
+ const stderrRl = createInterface({
233
+ input: stderr,
234
+ crlfDelay: Infinity,
235
+ });
236
+ stderrRl.on("line", (line) => {
237
+ const trimmed = line.trim();
238
+ if (trimmed) {
239
+ logger.error(`SDK stderr: ${trimmed}`);
240
+ stderrLines.push(trimmed);
241
+ }
242
+ });
243
+ // Parse stdout line-by-line as JSONL
244
+ const rl = createInterface({
245
+ input: stdout,
246
+ crlfDelay: Infinity,
247
+ });
248
+ for await (const line of rl) {
249
+ const trimmed = line.trim();
250
+ if (!trimmed)
251
+ continue;
252
+ try {
253
+ const message = JSON.parse(trimmed);
254
+ yield message;
255
+ }
256
+ catch (error) {
257
+ logger.warn(`Failed to parse SDK output: ${error instanceof Error ? error.message : String(error)}`);
258
+ }
218
259
  }
219
- catch (error) {
220
- console.warn(`[ContainerRunner] Failed to parse SDK output: ${error instanceof Error ? error.message : String(error)}`);
260
+ // Check exec exit code
261
+ const inspectData = await exec.inspect();
262
+ const exitCode = inspectData.ExitCode ?? 0;
263
+ if (exitCode !== 0) {
264
+ const stderr = stderrLines.join("\n");
265
+ yield {
266
+ type: "error",
267
+ message: `SDK wrapper exited with code ${exitCode}${stderr ? `\n\nStderr:\n${stderr}` : ""}`,
268
+ };
221
269
  }
222
270
  }
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
- };
271
+ finally {
272
+ // Always close HTTP bridges to prevent port leaks
273
+ for (const bridge of bridges) {
274
+ try {
275
+ await bridge.close();
276
+ }
277
+ catch (err) {
278
+ logger.error(`Failed to close MCP HTTP bridge: ${err}`);
279
+ }
280
+ }
232
281
  }
233
282
  }
234
283
  }
@@ -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;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE/C;;;;;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,MAAM,CAAC,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAC;gBACnE,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,MAAM,CAAC,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;YACpE,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,MAAM,CAAC,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAC;gBAClE,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEhD,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,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/E,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,MAAM,CAAC,KAAK,CAAC,4BAA4B,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,wBAAwB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAE3D,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,MAAM,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;oBACvC,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,MAAM,CAAC,IAAI,CACT,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,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,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAC;gBAC1D,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"}