@provos/ironcurtain 0.3.1 → 0.4.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 (73) hide show
  1. package/README.md +20 -1
  2. package/dist/cli.js +15 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/index.js +6 -1
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/config/user-config.d.ts +11 -0
  7. package/dist/config/user-config.js +56 -2
  8. package/dist/config/user-config.js.map +1 -1
  9. package/dist/docker/adapters/claude-code.js +14 -3
  10. package/dist/docker/adapters/claude-code.js.map +1 -1
  11. package/dist/docker/agent-adapter.d.ts +2 -0
  12. package/dist/docker/audit-log-tailer.d.ts +4 -3
  13. package/dist/docker/audit-log-tailer.js +9 -7
  14. package/dist/docker/audit-log-tailer.js.map +1 -1
  15. package/dist/docker/docker-agent-session.d.ts +11 -0
  16. package/dist/docker/docker-agent-session.js +103 -22
  17. package/dist/docker/docker-agent-session.js.map +1 -1
  18. package/dist/docker/docker-manager.js +82 -15
  19. package/dist/docker/docker-manager.js.map +1 -1
  20. package/dist/docker/managed-proxy.d.ts +7 -3
  21. package/dist/docker/managed-proxy.js +98 -8
  22. package/dist/docker/managed-proxy.js.map +1 -1
  23. package/dist/docker/mitm-proxy.d.ts +7 -4
  24. package/dist/docker/mitm-proxy.js +43 -13
  25. package/dist/docker/mitm-proxy.js.map +1 -1
  26. package/dist/docker/orientation.d.ts +1 -1
  27. package/dist/docker/orientation.js +5 -2
  28. package/dist/docker/orientation.js.map +1 -1
  29. package/dist/docker/platform.d.ts +20 -0
  30. package/dist/docker/platform.js +24 -0
  31. package/dist/docker/platform.js.map +1 -0
  32. package/dist/docker/types.d.ts +48 -6
  33. package/dist/session/index.js +16 -6
  34. package/dist/session/index.js.map +1 -1
  35. package/dist/signal/bot-command.d.ts +13 -0
  36. package/dist/signal/bot-command.js +54 -0
  37. package/dist/signal/bot-command.js.map +1 -0
  38. package/dist/signal/format.d.ts +31 -0
  39. package/dist/signal/format.js +101 -0
  40. package/dist/signal/format.js.map +1 -0
  41. package/dist/signal/index.d.ts +16 -0
  42. package/dist/signal/index.js +13 -0
  43. package/dist/signal/index.js.map +1 -0
  44. package/dist/signal/markdown-to-signal.d.ts +29 -0
  45. package/dist/signal/markdown-to-signal.js +154 -0
  46. package/dist/signal/markdown-to-signal.js.map +1 -0
  47. package/dist/signal/setup-signal.d.ts +48 -0
  48. package/dist/signal/setup-signal.js +443 -0
  49. package/dist/signal/setup-signal.js.map +1 -0
  50. package/dist/signal/signal-bot-daemon.d.ts +142 -0
  51. package/dist/signal/signal-bot-daemon.js +504 -0
  52. package/dist/signal/signal-bot-daemon.js.map +1 -0
  53. package/dist/signal/signal-config.d.ts +64 -0
  54. package/dist/signal/signal-config.js +53 -0
  55. package/dist/signal/signal-config.js.map +1 -0
  56. package/dist/signal/signal-container.d.ts +37 -0
  57. package/dist/signal/signal-container.js +112 -0
  58. package/dist/signal/signal-container.js.map +1 -0
  59. package/dist/signal/signal-transport.d.ts +34 -0
  60. package/dist/signal/signal-transport.js +70 -0
  61. package/dist/signal/signal-transport.js.map +1 -0
  62. package/dist/trusted-process/mcp-proxy-server.js +34 -3
  63. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  64. package/dist/trusted-process/path-utils.d.ts +5 -1
  65. package/dist/trusted-process/path-utils.js +47 -4
  66. package/dist/trusted-process/path-utils.js.map +1 -1
  67. package/dist/trusted-process/tcp-server-transport.d.ts +43 -0
  68. package/dist/trusted-process/tcp-server-transport.js +119 -0
  69. package/dist/trusted-process/tcp-server-transport.js.map +1 -0
  70. package/dist/types/argument-roles.js +20 -5
  71. package/dist/types/argument-roles.js.map +1 -1
  72. package/docker/Dockerfile.base.arm64 +23 -0
  73. package/package.json +6 -3
@@ -6,7 +6,7 @@
6
6
  * built-in session, just with a UDS transport instead of stdio.
7
7
  */
8
8
  import { fork } from 'node:child_process';
9
- import { existsSync } from 'node:fs';
9
+ import { existsSync, readFileSync, unlinkSync } from 'node:fs';
10
10
  import { setTimeout as delay } from 'node:timers/promises';
11
11
  import { resolve, dirname } from 'node:path';
12
12
  import { fileURLToPath } from 'node:url';
@@ -27,6 +27,56 @@ function getProxyModulePath() {
27
27
  return compiledPath;
28
28
  return resolve(__dirname, '..', 'trusted-process', 'mcp-proxy-server.ts');
29
29
  }
30
+ /**
31
+ * Creates a temporary MCP client connection via TCP.
32
+ * Used for listTools() queries in TCP mode.
33
+ */
34
+ class TcpClientTransport {
35
+ socket = null;
36
+ readBuffer = new ReadBuffer();
37
+ host;
38
+ port;
39
+ onclose;
40
+ onerror;
41
+ onmessage;
42
+ constructor(host, port) {
43
+ this.host = host;
44
+ this.port = port;
45
+ }
46
+ async start() {
47
+ return new Promise((resolve, reject) => {
48
+ this.socket = netConnect({ host: this.host, port: this.port }, () => resolve());
49
+ this.socket.on('error', reject);
50
+ this.socket.on('data', (chunk) => {
51
+ this.readBuffer.append(chunk);
52
+ let message;
53
+ while ((message = this.readBuffer.readMessage()) !== null) {
54
+ this.onmessage?.(message);
55
+ }
56
+ });
57
+ this.socket.on('close', () => this.onclose?.());
58
+ });
59
+ }
60
+ async send(message) {
61
+ const socket = this.socket;
62
+ if (!socket || socket.destroyed) {
63
+ throw new Error('TCP client not connected');
64
+ }
65
+ return new Promise((resolve, reject) => {
66
+ socket.write(serializeMessage(message), (err) => {
67
+ if (err)
68
+ reject(err);
69
+ else
70
+ resolve();
71
+ });
72
+ });
73
+ }
74
+ // eslint-disable-next-line @typescript-eslint/require-await -- must be async to satisfy Transport interface
75
+ async close() {
76
+ this.socket?.destroy();
77
+ this.socket = null;
78
+ }
79
+ }
30
80
  /**
31
81
  * Creates a temporary MCP client connection to the UDS socket.
32
82
  * Used for listTools() queries.
@@ -77,17 +127,45 @@ class UdsClientTransport {
77
127
  }
78
128
  export function createManagedProxy(options) {
79
129
  let childProcess = null;
130
+ const useTcp = options.listenMode === 'tcp';
131
+ let resolvedPort;
132
+ // In TCP mode, the proxy writes its port to this file after binding
133
+ const portFilePath = resolve(dirname(options.socketPath), 'proxy-port.txt');
80
134
  return {
81
135
  socketPath: options.socketPath,
136
+ get port() {
137
+ return resolvedPort;
138
+ },
82
139
  async start() {
140
+ // Remove stale port file from a prior crashed run to prevent
141
+ // false readiness during polling.
142
+ if (useTcp) {
143
+ try {
144
+ unlinkSync(portFilePath);
145
+ }
146
+ catch {
147
+ /* file may not exist */
148
+ }
149
+ }
83
150
  const modulePath = getProxyModulePath();
84
151
  const isTsSource = modulePath.endsWith('.ts');
85
- // Fork the proxy process with PROXY_SOCKET_PATH set
152
+ // Fork the proxy process with the appropriate transport env vars
86
153
  const env = {
87
154
  ...process.env,
88
155
  ...options.env,
89
- PROXY_SOCKET_PATH: options.socketPath,
90
156
  };
157
+ if (useTcp) {
158
+ // Ensure UDS-specific env vars do not leak from the parent environment
159
+ delete env.PROXY_SOCKET_PATH;
160
+ env.PROXY_TCP_PORT = '0'; // OS-assigned port
161
+ env.PROXY_PORT_FILE = portFilePath;
162
+ }
163
+ else {
164
+ // Ensure TCP-specific env vars do not leak from the parent environment
165
+ delete env.PROXY_TCP_PORT;
166
+ delete env.PROXY_PORT_FILE;
167
+ env.PROXY_SOCKET_PATH = options.socketPath;
168
+ }
91
169
  const cwd = options.cwd ?? process.cwd();
92
170
  if (isTsSource) {
93
171
  // In development, use tsx to run TypeScript directly
@@ -119,21 +197,33 @@ export function createManagedProxy(options) {
119
197
  proxyExited = true;
120
198
  proxyExitCode = code;
121
199
  });
122
- // Poll for socket readiness
200
+ // Poll for readiness: port file in TCP mode, socket file in UDS mode
201
+ const readinessTarget = useTcp ? portFilePath : options.socketPath;
123
202
  const start = Date.now();
124
- while (!existsSync(options.socketPath)) {
203
+ while (!existsSync(readinessTarget)) {
125
204
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- mutated by async 'exit' event handler
126
205
  if (proxyExited) {
127
- throw new Error(`MCP proxy process exited with code ${proxyExitCode} before creating socket.\nStderr: ${proxyStderr}`);
206
+ throw new Error(`MCP proxy process exited with code ${proxyExitCode} before becoming ready.\nStderr: ${proxyStderr}`);
128
207
  }
129
208
  if (Date.now() - start > SOCKET_READY_TIMEOUT_MS) {
130
- throw new Error(`MCP proxy did not create socket at ${options.socketPath} within ${SOCKET_READY_TIMEOUT_MS}ms.\nStderr: ${proxyStderr}`);
209
+ throw new Error(`MCP proxy did not become ready within ${SOCKET_READY_TIMEOUT_MS}ms.\nStderr: ${proxyStderr}`);
131
210
  }
132
211
  await delay(SOCKET_POLL_INTERVAL_MS);
133
212
  }
213
+ // In TCP mode, read the port from the file
214
+ if (useTcp && portFilePath) {
215
+ const rawPort = readFileSync(portFilePath, 'utf-8').trim();
216
+ const parsedPort = parseInt(rawPort, 10);
217
+ if (!Number.isInteger(parsedPort) || parsedPort <= 0 || parsedPort > 65535) {
218
+ throw new Error(`Invalid TCP port "${rawPort}" read from ${portFilePath}.`);
219
+ }
220
+ resolvedPort = parsedPort;
221
+ }
134
222
  },
135
223
  async listTools() {
136
- const transport = new UdsClientTransport(options.socketPath);
224
+ const transport = useTcp && resolvedPort !== undefined
225
+ ? new TcpClientTransport('127.0.0.1', resolvedPort)
226
+ : new UdsClientTransport(options.socketPath);
137
227
  const client = new Client({ name: 'ironcurtain-tool-lister', version: VERSION }, {});
138
228
  try {
139
229
  await client.connect(transport);
@@ -1 +1 @@
1
- {"version":3,"file":"managed-proxy.js","sourceRoot":"","sources":["../../src/docker/managed-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-proxy.js","sourceRoot":"","sources":["../../src/docker/managed-proxy.ts"],"names":[],"mappings":"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"}
@@ -15,16 +15,19 @@
15
15
  import { type CertificateAuthority } from './ca.js';
16
16
  import { type ProviderConfig } from './provider-config.js';
17
17
  export interface MitmProxy {
18
- /** Start listening on the UDS. Pre-warms cert cache for all providers. */
18
+ /** Start listening on the UDS or TCP port. Pre-warms cert cache for all providers. */
19
19
  start(): Promise<{
20
- socketPath: string;
20
+ socketPath?: string;
21
+ port?: number;
21
22
  }>;
22
23
  /** Stop the proxy and close all connections. */
23
24
  stop(): Promise<void>;
24
25
  }
25
26
  export interface MitmProxyOptions {
26
- /** Absolute path for the Unix domain socket. */
27
- readonly socketPath: string;
27
+ /** Absolute path for the Unix domain socket (UDS mode). Omit for TCP mode. */
28
+ readonly socketPath?: string;
29
+ /** TCP port to listen on (0 for OS-assigned). Omit for UDS mode. */
30
+ readonly listenPort?: number;
28
31
  /** CA certificate and key for signing per-host certs. */
29
32
  readonly ca: CertificateAuthority;
30
33
  /**
@@ -193,6 +193,16 @@ export function createMitmProxy(options) {
193
193
  }
194
194
  }
195
195
  if (needsRewrite) {
196
+ // Reject requests with content-encoding we cannot parse (e.g. gzip).
197
+ // Without this, a compressed body would fail JSON.parse and be forwarded
198
+ // as-is, bypassing the rewriter while the upstream decompresses it.
199
+ const contentEncoding = clientReq.headers['content-encoding']?.toLowerCase();
200
+ if (contentEncoding && contentEncoding !== 'identity') {
201
+ logger.info(`[mitm-proxy] REJECTED ${method} ${targetHost}${path} - unsupported Content-Encoding: ${contentEncoding}`);
202
+ clientRes.writeHead(415, { 'Content-Type': 'text/plain' });
203
+ clientRes.end(`Unsupported Content-Encoding for this endpoint: ${contentEncoding}`);
204
+ return;
205
+ }
196
206
  // shouldRewriteBody guarantees requestRewriter, method, and path are defined
197
207
  const rewriter = provider.config.requestRewriter;
198
208
  const reqMethod = method;
@@ -291,21 +301,39 @@ export function createMitmProxy(options) {
291
301
  // 7. Emit into shared inner HTTP server
292
302
  innerServer.emit('connection', tlsSocket);
293
303
  });
304
+ const useTcp = options.listenPort !== undefined;
305
+ if (!useTcp && !options.socketPath) {
306
+ throw new Error('MitmProxyOptions: either socketPath or listenPort must be provided');
307
+ }
294
308
  return {
295
309
  async start() {
296
- // Clean up stale socket file from a previous run
297
- if (existsSync(options.socketPath)) {
298
- unlinkSync(options.socketPath);
299
- }
300
310
  // Pre-warm cert cache for all configured providers
301
311
  for (const mapping of options.providers) {
302
312
  getOrCreateSecureContext(mapping.config.host);
303
313
  }
314
+ if (useTcp) {
315
+ // TCP mode: listen on host:port
316
+ return new Promise((resolve, reject) => {
317
+ const onError = reject;
318
+ outerServer.listen(options.listenPort, '0.0.0.0', () => {
319
+ outerServer.removeListener('error', onError);
320
+ const addr = outerServer.address();
321
+ const port = addr && typeof addr === 'object' ? addr.port : (options.listenPort ?? 0);
322
+ resolve({ port });
323
+ });
324
+ outerServer.once('error', onError);
325
+ });
326
+ }
327
+ // UDS mode: listen on socket path
328
+ const socketPath = options.socketPath ?? '';
329
+ if (existsSync(socketPath)) {
330
+ unlinkSync(socketPath);
331
+ }
304
332
  return new Promise((resolve, reject) => {
305
333
  const onError = reject;
306
- outerServer.listen(options.socketPath, () => {
334
+ outerServer.listen(socketPath, () => {
307
335
  outerServer.removeListener('error', onError);
308
- resolve({ socketPath: options.socketPath });
336
+ resolve({ socketPath });
309
337
  });
310
338
  outerServer.once('error', onError);
311
339
  });
@@ -337,14 +365,16 @@ export function createMitmProxy(options) {
337
365
  // 4. Close the inner HTTP server.
338
366
  innerServer.closeAllConnections();
339
367
  innerServer.close();
340
- // 5. Clean up socket file
341
- try {
342
- if (existsSync(options.socketPath)) {
343
- unlinkSync(options.socketPath);
368
+ // 5. Clean up socket file (UDS mode only)
369
+ if (!useTcp && options.socketPath) {
370
+ try {
371
+ if (existsSync(options.socketPath)) {
372
+ unlinkSync(options.socketPath);
373
+ }
374
+ }
375
+ catch {
376
+ // Ignore cleanup errors
344
377
  }
345
- }
346
- catch {
347
- // Ignore cleanup errors
348
378
  }
349
379
  },
350
380
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mitm-proxy.js","sourceRoot":"","sources":["../../src/docker/mitm-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mitm-proxy.js","sourceRoot":"","sources":["../../src/docker/mitm-proxy.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,6 @@ export declare function extractAllowedDomains(config: IronCurtainConfig): string
18
18
  * 1. Generates MCP client config via adapter (written to orientation dir)
19
19
  * 2. Builds the system prompt via adapter (returned for per-turn injection)
20
20
  */
21
- export declare function prepareSession(adapter: AgentAdapter, proxyTools: ToolInfo[], sessionDir: string, config: IronCurtainConfig, hostSandboxDir: string): {
21
+ export declare function prepareSession(adapter: AgentAdapter, proxyTools: ToolInfo[], sessionDir: string, config: IronCurtainConfig, hostSandboxDir: string, proxyAddress?: string): {
22
22
  systemPrompt: string;
23
23
  };
@@ -43,7 +43,7 @@ function writeConfigFiles(baseDir, files) {
43
43
  * 1. Generates MCP client config via adapter (written to orientation dir)
44
44
  * 2. Builds the system prompt via adapter (returned for per-turn injection)
45
45
  */
46
- export function prepareSession(adapter, proxyTools, sessionDir, config, hostSandboxDir) {
46
+ export function prepareSession(adapter, proxyTools, sessionDir, config, hostSandboxDir, proxyAddress) {
47
47
  const orientationDir = resolve(sessionDir, 'orientation');
48
48
  mkdirSync(orientationDir, { recursive: true });
49
49
  const context = {
@@ -51,8 +51,11 @@ export function prepareSession(adapter, proxyTools, sessionDir, config, hostSand
51
51
  hostSandboxDir,
52
52
  tools: proxyTools,
53
53
  allowedDomains: extractAllowedDomains(config),
54
+ networkMode: proxyAddress ? 'bridge' : 'none',
54
55
  };
55
- writeConfigFiles(orientationDir, adapter.generateMcpConfig('/run/ironcurtain/proxy.sock', proxyTools));
56
+ // proxyAddress is either a TCP host:port (macOS) or defaults to the UDS path (Linux)
57
+ const address = proxyAddress ?? '/run/ironcurtain/proxy.sock';
58
+ writeConfigFiles(orientationDir, adapter.generateMcpConfig(address, proxyTools));
56
59
  writeConfigFiles(orientationDir, adapter.generateOrientationFiles(context));
57
60
  const systemPrompt = adapter.buildSystemPrompt(context);
58
61
  return { systemPrompt };
@@ -1 +1 @@
1
- {"version":3,"file":"orientation.js","sourceRoot":"","sources":["../../src/docker/orientation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAI7C;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAwB;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB,EACrB,UAAsB,EACtB,UAAkB,EAClB,MAAyB,EACzB,cAAsB;IAEtB,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1D,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,YAAY;QAC1B,cAAc;QACd,KAAK,EAAE,UAAU;QACjB,cAAc,EAAE,qBAAqB,CAAC,MAAM,CAAC;KAC9C,CAAC;IAEF,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC,CAAC;IACvG,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"orientation.js","sourceRoot":"","sources":["../../src/docker/orientation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAI7C;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAwB;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB,EACrB,UAAsB,EACtB,UAAkB,EAClB,MAAyB,EACzB,cAAsB,EACtB,YAAqB;IAErB,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1D,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,YAAY;QAC1B,cAAc;QACd,KAAK,EAAE,UAAU;QACjB,cAAc,EAAE,qBAAqB,CAAC,MAAM,CAAC;QAC7C,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KAC9C,CAAC;IAEF,qFAAqF;IACrF,MAAM,OAAO,GAAG,YAAY,IAAI,6BAA6B,CAAC;IAC9D,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACjF,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Platform detection for Docker transport selection.
3
+ *
4
+ * Docker Desktop on macOS uses VirtioFS for bind mounts, which does
5
+ * not support Unix domain sockets. On macOS, we use TCP transport
6
+ * instead so the container can reach host-side proxies via
7
+ * `host.docker.internal`.
8
+ */
9
+ /**
10
+ * Returns true when the Docker session should use TCP transport
11
+ * instead of Unix domain sockets. Currently true on macOS where
12
+ * Docker Desktop's VirtioFS does not support UDS in bind mounts.
13
+ */
14
+ export declare function useTcpTransport(): boolean;
15
+ /** Docker network name for the internal (no-egress) bridge used in TCP mode. */
16
+ export declare const INTERNAL_NETWORK_NAME = "ironcurtain-internal";
17
+ /** Subnet for the internal bridge network. */
18
+ export declare const INTERNAL_NETWORK_SUBNET = "172.30.0.0/24";
19
+ /** Gateway IP for the internal bridge network (host-side). */
20
+ export declare const INTERNAL_NETWORK_GATEWAY = "172.30.0.1";
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Platform detection for Docker transport selection.
3
+ *
4
+ * Docker Desktop on macOS uses VirtioFS for bind mounts, which does
5
+ * not support Unix domain sockets. On macOS, we use TCP transport
6
+ * instead so the container can reach host-side proxies via
7
+ * `host.docker.internal`.
8
+ */
9
+ import { platform } from 'node:os';
10
+ /**
11
+ * Returns true when the Docker session should use TCP transport
12
+ * instead of Unix domain sockets. Currently true on macOS where
13
+ * Docker Desktop's VirtioFS does not support UDS in bind mounts.
14
+ */
15
+ export function useTcpTransport() {
16
+ return platform() === 'darwin';
17
+ }
18
+ /** Docker network name for the internal (no-egress) bridge used in TCP mode. */
19
+ export const INTERNAL_NETWORK_NAME = 'ironcurtain-internal';
20
+ /** Subnet for the internal bridge network. */
21
+ export const INTERNAL_NETWORK_SUBNET = '172.30.0.0/24';
22
+ /** Gateway IP for the internal bridge network (host-side). */
23
+ export const INTERNAL_NETWORK_GATEWAY = '172.30.0.1';
24
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/docker/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC"}
@@ -17,11 +17,40 @@ export interface DockerContainerConfig {
17
17
  readonly command: readonly string[];
18
18
  /** IronCurtain session label for stale container detection. */
19
19
  readonly sessionLabel?: string;
20
+ /** Extra --add-host entries (e.g. ["host.docker.internal:172.30.0.1"]). When set, suppresses the default host-gateway mapping. */
21
+ readonly extraHosts?: readonly string[];
20
22
  /** Optional resource limits. */
21
23
  readonly resources?: {
22
24
  readonly memoryMb?: number;
23
25
  readonly cpus?: number;
24
26
  };
27
+ /**
28
+ * Port bindings in 'hostPort:containerPort' format.
29
+ * Optional. Defaults to no ports exposed.
30
+ *
31
+ * SECURITY NOTE: Agent containers must NEVER expose ports.
32
+ * This field exists solely for service containers (e.g., signal-cli)
33
+ * that need to expose a local API. Only bind to 127.0.0.1 in practice
34
+ * (e.g., '127.0.0.1:18080:8080').
35
+ */
36
+ readonly ports?: readonly string[];
37
+ /**
38
+ * Docker restart policy (e.g., 'unless-stopped', 'on-failure:3').
39
+ * Optional. Defaults to no restart policy (container stops when stopped).
40
+ *
41
+ * Agent containers must NEVER set a restart policy - they are
42
+ * ephemeral per-session containers managed by session lifecycle.
43
+ */
44
+ readonly restartPolicy?: string;
45
+ /**
46
+ * Linux capabilities to re-add after --cap-drop=ALL.
47
+ * Optional. Defaults to none (fully unprivileged).
48
+ *
49
+ * Third-party service containers may need specific capabilities
50
+ * for their entrypoints (e.g., CHOWN, SETUID). Agent containers
51
+ * must NEVER set this field.
52
+ */
53
+ readonly capAdd?: readonly string[];
25
54
  }
26
55
  /** A volume mount for a Docker container. */
27
56
  export interface DockerMount {
@@ -51,20 +80,20 @@ export interface DockerManager {
51
80
  /** Create a container with the given configuration. Returns container ID. */
52
81
  create(config: DockerContainerConfig): Promise<string>;
53
82
  /** Start a created container. */
54
- start(containerId: string): Promise<void>;
83
+ start(nameOrId: string): Promise<void>;
55
84
  /**
56
85
  * Execute a command inside a running container via `docker exec`.
57
86
  * Returns when the command exits. Both stdout and stderr are captured.
58
87
  *
59
88
  * @param timeoutMs - kill the exec process after this many ms.
60
89
  */
61
- exec(containerId: string, command: readonly string[], timeoutMs?: number): Promise<DockerExecResult>;
90
+ exec(nameOrId: string, command: readonly string[], timeoutMs?: number): Promise<DockerExecResult>;
62
91
  /** Stop a running container (SIGTERM, then SIGKILL after grace period). */
63
- stop(containerId: string): Promise<void>;
92
+ stop(nameOrId: string): Promise<void>;
64
93
  /** Remove a container (must be stopped). */
65
- remove(containerId: string): Promise<void>;
94
+ remove(nameOrId: string): Promise<void>;
66
95
  /** Check if a container is running. */
67
- isRunning(containerId: string): Promise<boolean>;
96
+ isRunning(nameOrId: string): Promise<boolean>;
68
97
  /** Check if a Docker image exists locally. */
69
98
  imageExists(image: string): Promise<boolean>;
70
99
  /** Build a Docker image from a Dockerfile. Optional labels are stamped on the image. */
@@ -72,7 +101,20 @@ export interface DockerManager {
72
101
  /** Read a label value from a Docker image. Returns undefined if image or label doesn't exist. */
73
102
  getImageLabel(image: string, label: string): Promise<string | undefined>;
74
103
  /** Create a Docker network. No-op if it already exists. */
75
- createNetwork(name: string): Promise<void>;
104
+ createNetwork(name: string, options?: {
105
+ internal?: boolean;
106
+ subnet?: string;
107
+ gateway?: string;
108
+ }): Promise<void>;
76
109
  /** Remove a Docker network. Ignores errors (e.g., already removed). */
77
110
  removeNetwork(name: string): Promise<void>;
111
+ /** Pull a Docker image from a registry. */
112
+ pullImage(image: string): Promise<void>;
113
+ /**
114
+ * Check if a container exists (running or stopped).
115
+ * Unlike isRunning(), returns true for stopped containers.
116
+ */
117
+ containerExists(nameOrId: string): Promise<boolean>;
118
+ /** Returns the image ID (sha256 digest) for a container or image. undefined if not found. */
119
+ getImageId(nameOrId: string): Promise<string | undefined>;
78
120
  }
@@ -78,8 +78,10 @@ async function createDockerSession(agentId, options) {
78
78
  const { generateFakeKey } = await import('../docker/fake-keys.js');
79
79
  const { createDockerManager } = await import('../docker/docker-manager.js');
80
80
  const { DockerAgentSession } = await import('../docker/docker-agent-session.js');
81
+ const { useTcpTransport } = await import('../docker/platform.js');
81
82
  await registerBuiltinAdapters();
82
83
  const adapter = getAgent(agentId);
84
+ const useTcp = useTcpTransport();
83
85
  const socketPath = resolve(sessionConfig.sessionDir, 'proxy.sock');
84
86
  // Build the same set of env vars the built-in sandbox passes to the proxy.
85
87
  // See src/sandbox/index.ts for the authoritative list.
@@ -93,6 +95,7 @@ async function createDockerSession(agentId, options) {
93
95
  ESCALATION_DIR: sessionConfig.escalationDir,
94
96
  ESCALATION_TIMEOUT_SECONDS: String(config.escalationTimeoutSeconds),
95
97
  SANDBOX_POLICY: sessionConfig.config.sandboxPolicy ?? 'warn',
98
+ CONTAINER_WORKSPACE_DIR: '/workspace',
96
99
  };
97
100
  if (sessionConfig.config.sessionLogPath) {
98
101
  proxyEnv.SESSION_LOG_PATH = sessionConfig.config.sessionLogPath;
@@ -111,6 +114,7 @@ async function createDockerSession(agentId, options) {
111
114
  const proxy = createManagedProxy({
112
115
  socketPath,
113
116
  env: proxyEnv,
117
+ listenMode: useTcp ? 'tcp' : 'uds',
114
118
  });
115
119
  // Load or generate the IronCurtain CA for TLS termination
116
120
  const { getIronCurtainHome } = await import('../config/paths.js');
@@ -127,12 +131,17 @@ async function createDockerSession(agentId, options) {
127
131
  const realKey = resolveRealApiKey(providerConfig.host, config);
128
132
  providerMappings.push({ config: providerConfig, fakeKey, realKey });
129
133
  }
130
- const mitmProxySocketPath = resolve(sessionConfig.sessionDir, 'mitm-proxy.sock');
131
- const mitmProxy = createMitmProxy({
132
- socketPath: mitmProxySocketPath,
133
- ca,
134
- providers: providerMappings,
135
- });
134
+ const mitmProxy = useTcp
135
+ ? createMitmProxy({
136
+ listenPort: 0,
137
+ ca,
138
+ providers: providerMappings,
139
+ })
140
+ : createMitmProxy({
141
+ socketPath: resolve(sessionConfig.sessionDir, 'mitm-proxy.sock'),
142
+ ca,
143
+ providers: providerMappings,
144
+ });
136
145
  const docker = createDockerManager();
137
146
  const session = new DockerAgentSession({
138
147
  config: sessionConfig.config,
@@ -147,6 +156,7 @@ async function createDockerSession(agentId, options) {
147
156
  sandboxDir: sessionConfig.sandboxDir,
148
157
  escalationDir: sessionConfig.escalationDir,
149
158
  auditLogPath: sessionConfig.auditLogPath,
159
+ useTcp,
150
160
  onEscalation: options.onEscalation,
151
161
  onEscalationExpired: options.onEscalationExpired,
152
162
  onDiagnostic: options.onDiagnostic,