@provos/ironcurtain 0.4.0 → 0.5.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 (161) hide show
  1. package/README.md +219 -248
  2. package/dist/cli.js +10 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/config-command.js +144 -6
  5. package/dist/config/config-command.js.map +1 -1
  6. package/dist/config/constitution-user-base.md +2 -0
  7. package/dist/config/first-start.js +77 -12
  8. package/dist/config/first-start.js.map +1 -1
  9. package/dist/config/generated/compiled-policy.json +199 -72
  10. package/dist/config/generated/tool-annotations.json +1018 -36
  11. package/dist/config/index.js +6 -0
  12. package/dist/config/index.js.map +1 -1
  13. package/dist/config/mcp-servers.json +13 -0
  14. package/dist/config/paths.d.ts +31 -0
  15. package/dist/config/paths.js +52 -2
  16. package/dist/config/paths.js.map +1 -1
  17. package/dist/config/types.d.ts +10 -0
  18. package/dist/config/user-config.d.ts +21 -3
  19. package/dist/config/user-config.js +34 -3
  20. package/dist/config/user-config.js.map +1 -1
  21. package/dist/docker/adapters/claude-code.d.ts +4 -0
  22. package/dist/docker/adapters/claude-code.js +96 -37
  23. package/dist/docker/adapters/claude-code.js.map +1 -1
  24. package/dist/docker/agent-adapter.d.ts +22 -13
  25. package/dist/docker/code-mode-proxy.d.ts +34 -0
  26. package/dist/docker/code-mode-proxy.js +137 -0
  27. package/dist/docker/code-mode-proxy.js.map +1 -0
  28. package/dist/docker/docker-agent-session.d.ts +22 -14
  29. package/dist/docker/docker-agent-session.js +144 -117
  30. package/dist/docker/docker-agent-session.js.map +1 -1
  31. package/dist/docker/docker-infrastructure.d.ts +51 -0
  32. package/dist/docker/docker-infrastructure.js +261 -0
  33. package/dist/docker/docker-infrastructure.js.map +1 -0
  34. package/dist/docker/docker-manager.js +27 -0
  35. package/dist/docker/docker-manager.js.map +1 -1
  36. package/dist/docker/mitm-proxy.js +4 -0
  37. package/dist/docker/mitm-proxy.js.map +1 -1
  38. package/dist/docker/oauth-credentials.d.ts +81 -0
  39. package/dist/docker/oauth-credentials.js +178 -0
  40. package/dist/docker/oauth-credentials.js.map +1 -0
  41. package/dist/docker/orientation.d.ts +3 -2
  42. package/dist/docker/orientation.js +4 -4
  43. package/dist/docker/orientation.js.map +1 -1
  44. package/dist/docker/provider-config.d.ts +3 -0
  45. package/dist/docker/provider-config.js +28 -0
  46. package/dist/docker/provider-config.js.map +1 -1
  47. package/dist/docker/pty-session.d.ts +27 -0
  48. package/dist/docker/pty-session.js +420 -0
  49. package/dist/docker/pty-session.js.map +1 -0
  50. package/dist/docker/pty-types.d.ts +24 -0
  51. package/dist/docker/pty-types.js +12 -0
  52. package/dist/docker/pty-types.js.map +1 -0
  53. package/dist/docker/types.d.ts +18 -2
  54. package/dist/escalation/escalation-watcher.d.ts +44 -0
  55. package/dist/escalation/escalation-watcher.js +92 -0
  56. package/dist/escalation/escalation-watcher.js.map +1 -0
  57. package/dist/escalation/listener-command.d.ts +10 -0
  58. package/dist/escalation/listener-command.js +407 -0
  59. package/dist/escalation/listener-command.js.map +1 -0
  60. package/dist/escalation/listener-state.d.ts +49 -0
  61. package/dist/escalation/listener-state.js +104 -0
  62. package/dist/escalation/listener-state.js.map +1 -0
  63. package/dist/escalation/session-registry.d.ts +17 -0
  64. package/dist/escalation/session-registry.js +98 -0
  65. package/dist/escalation/session-registry.js.map +1 -0
  66. package/dist/index.js +15 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/logger.js +2 -3
  69. package/dist/logger.js.map +1 -1
  70. package/dist/pipeline/annotate.js +35 -15
  71. package/dist/pipeline/annotate.js.map +1 -1
  72. package/dist/pipeline/constitution-customizer.d.ts +2 -1
  73. package/dist/pipeline/constitution-customizer.js +36 -3
  74. package/dist/pipeline/constitution-customizer.js.map +1 -1
  75. package/dist/pipeline/github-identity.d.ts +38 -0
  76. package/dist/pipeline/github-identity.js +64 -0
  77. package/dist/pipeline/github-identity.js.map +1 -0
  78. package/dist/pipeline/handwritten-scenarios.js +34 -0
  79. package/dist/pipeline/handwritten-scenarios.js.map +1 -1
  80. package/dist/sandbox/index.d.ts +25 -1
  81. package/dist/sandbox/index.js +90 -12
  82. package/dist/sandbox/index.js.map +1 -1
  83. package/dist/servers/fetch-server.d.ts +6 -1
  84. package/dist/servers/fetch-server.js +26 -14
  85. package/dist/servers/fetch-server.js.map +1 -1
  86. package/dist/session/agent-session.js +9 -5
  87. package/dist/session/agent-session.js.map +1 -1
  88. package/dist/session/base-transport.d.ts +19 -0
  89. package/dist/session/base-transport.js +36 -0
  90. package/dist/session/base-transport.js.map +1 -0
  91. package/dist/session/cli-transport.d.ts +3 -3
  92. package/dist/session/cli-transport.js +7 -4
  93. package/dist/session/cli-transport.js.map +1 -1
  94. package/dist/session/index.js +24 -106
  95. package/dist/session/index.js.map +1 -1
  96. package/dist/session/interaction-log.d.ts +13 -0
  97. package/dist/session/interaction-log.js +28 -0
  98. package/dist/session/interaction-log.js.map +1 -0
  99. package/dist/session/preflight.d.ts +3 -0
  100. package/dist/session/preflight.js +45 -18
  101. package/dist/session/preflight.js.map +1 -1
  102. package/dist/session/prompts.d.ts +9 -3
  103. package/dist/session/prompts.js +28 -10
  104. package/dist/session/prompts.js.map +1 -1
  105. package/dist/session/types.d.ts +2 -0
  106. package/dist/signal/bot-command.js +5 -0
  107. package/dist/signal/bot-command.js.map +1 -1
  108. package/dist/signal/format.d.ts +21 -1
  109. package/dist/signal/format.js +41 -3
  110. package/dist/signal/format.js.map +1 -1
  111. package/dist/signal/signal-bot-daemon.d.ts +53 -18
  112. package/dist/signal/signal-bot-daemon.js +344 -106
  113. package/dist/signal/signal-bot-daemon.js.map +1 -1
  114. package/dist/signal/signal-config.d.ts +4 -0
  115. package/dist/signal/signal-config.js +2 -0
  116. package/dist/signal/signal-config.js.map +1 -1
  117. package/dist/signal/signal-transport.d.ts +13 -7
  118. package/dist/signal/signal-transport.js +36 -12
  119. package/dist/signal/signal-transport.js.map +1 -1
  120. package/dist/trusted-process/audit-log.d.ts +6 -1
  121. package/dist/trusted-process/audit-log.js +22 -2
  122. package/dist/trusted-process/audit-log.js.map +1 -1
  123. package/dist/trusted-process/audit-redactor.d.ts +25 -0
  124. package/dist/trusted-process/audit-redactor.js +121 -0
  125. package/dist/trusted-process/audit-redactor.js.map +1 -0
  126. package/dist/trusted-process/escalation.d.ts +1 -1
  127. package/dist/trusted-process/escalation.js +6 -1
  128. package/dist/trusted-process/escalation.js.map +1 -1
  129. package/dist/trusted-process/index.d.ts +2 -1
  130. package/dist/trusted-process/index.js +24 -6
  131. package/dist/trusted-process/index.js.map +1 -1
  132. package/dist/trusted-process/mcp-client-manager.js +14 -2
  133. package/dist/trusted-process/mcp-client-manager.js.map +1 -1
  134. package/dist/trusted-process/mcp-error-utils.d.ts +11 -0
  135. package/dist/trusted-process/mcp-error-utils.js +50 -0
  136. package/dist/trusted-process/mcp-error-utils.js.map +1 -0
  137. package/dist/trusted-process/mcp-proxy-server.d.ts +115 -1
  138. package/dist/trusted-process/mcp-proxy-server.js +318 -267
  139. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  140. package/dist/trusted-process/policy-engine.d.ts +3 -1
  141. package/dist/trusted-process/policy-engine.js +17 -6
  142. package/dist/trusted-process/policy-engine.js.map +1 -1
  143. package/dist/trusted-process/sandbox-integration.d.ts +16 -4
  144. package/dist/trusted-process/sandbox-integration.js +14 -8
  145. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  146. package/dist/trusted-process/server-context.d.ts +21 -0
  147. package/dist/trusted-process/server-context.js +42 -0
  148. package/dist/trusted-process/server-context.js.map +1 -0
  149. package/dist/types/argument-roles.d.ts +12 -2
  150. package/dist/types/argument-roles.js +37 -4
  151. package/dist/types/argument-roles.js.map +1 -1
  152. package/docker/Dockerfile.claude-code +8 -3
  153. package/docker/entrypoint-claude-code.sh +64 -4
  154. package/package.json +19 -9
  155. package/src/config/constitution-user-base.md +2 -0
  156. package/src/config/generated/compiled-policy.json +199 -72
  157. package/src/config/generated/tool-annotations.json +1018 -36
  158. package/src/config/mcp-servers.json +13 -0
  159. package/dist/docker/managed-proxy.d.ts +0 -31
  160. package/dist/docker/managed-proxy.js +0 -265
  161. package/dist/docker/managed-proxy.js.map +0 -1
@@ -15,14 +15,15 @@ import { mkdirSync, readdirSync, readFileSync, writeFileSync, existsSync, copyFi
15
15
  import { resolve, dirname } from 'node:path';
16
16
  import { mkdtempSync } from 'node:fs';
17
17
  import { tmpdir, arch } from 'node:os';
18
+ import { quote } from 'shell-quote';
18
19
  import { createHash } from 'node:crypto';
19
20
  import { fileURLToPath } from 'node:url';
20
21
  import { AuditLogTailer } from './audit-log-tailer.js';
21
22
  import { prepareSession } from './orientation.js';
22
23
  import { INTERNAL_NETWORK_NAME, INTERNAL_NETWORK_SUBNET, INTERNAL_NETWORK_GATEWAY } from './platform.js';
23
24
  import { SessionNotReadyError, SessionClosedError } from '../session/errors.js';
25
+ import { createEscalationWatcher, atomicWriteJsonSync } from '../escalation/escalation-watcher.js';
24
26
  import * as logger from '../logger.js';
25
- const ESCALATION_POLL_INTERVAL_MS = 300;
26
27
  export class DockerAgentSession {
27
28
  sessionId;
28
29
  config;
@@ -40,19 +41,19 @@ export class DockerAgentSession {
40
41
  status = 'initializing';
41
42
  createdAt;
42
43
  containerId = null;
44
+ sidecarContainerId = null;
43
45
  networkName = null;
44
46
  systemPrompt = '';
45
47
  turns = [];
46
48
  diagnosticLog = [];
47
- pendingEscalation;
48
- seenEscalationIds = new Set();
49
- escalationPollInterval = null;
49
+ escalationWatcher = null;
50
50
  auditTailer = null;
51
51
  cumulativeActiveMs = 0;
52
52
  cumulativeCostUsd = 0;
53
53
  onEscalation;
54
54
  onEscalationExpired;
55
55
  onDiagnostic;
56
+ preBuiltInfrastructure;
56
57
  constructor(deps) {
57
58
  this.sessionId = deps.sessionId;
58
59
  this.config = deps.config;
@@ -70,13 +71,14 @@ export class DockerAgentSession {
70
71
  this.onEscalation = deps.onEscalation;
71
72
  this.onEscalationExpired = deps.onEscalationExpired;
72
73
  this.onDiagnostic = deps.onDiagnostic;
74
+ this.preBuiltInfrastructure = deps.preBuiltInfrastructure;
73
75
  this.createdAt = new Date().toISOString();
74
76
  }
75
77
  /**
76
78
  * Initialize the Docker agent session:
77
- * 1. Start MCP proxy (UDS)
78
- * 2. Start MITM proxy (UDS)
79
- * 3. Query proxy for available tools
79
+ * 1. Start Code Mode proxy (UDS/TCP)
80
+ * 2. Start MITM proxy (UDS/TCP)
81
+ * 3. Build server listings from sandbox help data
80
82
  * 4. Generate orientation files
81
83
  * 5. Ensure Docker image exists (with CA cert baked in)
82
84
  * 6. Create and start container (--network=none)
@@ -86,33 +88,49 @@ export class DockerAgentSession {
86
88
  // Ensure directories exist
87
89
  mkdirSync(this.sandboxDir, { recursive: true });
88
90
  mkdirSync(this.escalationDir, { recursive: true });
89
- // 1. Start MCP proxy
90
- await this.proxy.start();
91
- if (this.useTcp && this.proxy.port !== undefined) {
92
- logger.info(`MCP proxy listening on 127.0.0.1:${this.proxy.port}`);
91
+ let mitmAddr;
92
+ let image;
93
+ if (this.preBuiltInfrastructure) {
94
+ // Infrastructure already prepared by prepareDockerInfrastructure() --
95
+ // proxies are started, orientation is built, image name is resolved.
96
+ this.systemPrompt = this.preBuiltInfrastructure.systemPrompt;
97
+ image = this.preBuiltInfrastructure.image;
98
+ mitmAddr = this.preBuiltInfrastructure.mitmAddr;
93
99
  }
94
100
  else {
95
- logger.info(`MCP proxy listening on ${this.proxy.socketPath}`);
96
- }
97
- // 2. Start MITM proxy
98
- const mitmAddr = await this.mitmProxy.start();
99
- if (mitmAddr.port !== undefined) {
100
- logger.info(`MITM proxy listening on 127.0.0.1:${mitmAddr.port}`);
101
- }
102
- else {
103
- logger.info(`MITM proxy listening on ${mitmAddr.socketPath}`);
101
+ // Legacy path: start everything from scratch.
102
+ // 1. Start Code Mode proxy
103
+ await this.proxy.start();
104
+ if (this.useTcp && this.proxy.port !== undefined) {
105
+ logger.info(`Code Mode proxy listening on 127.0.0.1:${this.proxy.port}`);
106
+ }
107
+ else {
108
+ logger.info(`Code Mode proxy listening on ${this.proxy.socketPath}`);
109
+ }
110
+ // 2. Start MITM proxy
111
+ mitmAddr = await this.mitmProxy.start();
112
+ if (mitmAddr.port !== undefined) {
113
+ logger.info(`MITM proxy listening on 127.0.0.1:${mitmAddr.port}`);
114
+ }
115
+ else {
116
+ logger.info(`MITM proxy listening on ${mitmAddr.socketPath}`);
117
+ }
118
+ // 3. Build server listings from sandbox help data
119
+ const helpData = this.proxy.getHelpData();
120
+ const serverListings = Object.entries(helpData.serverDescriptions).map(([name, description]) => ({
121
+ name,
122
+ description,
123
+ }));
124
+ logger.info(`Available servers: ${serverListings.map((s) => s.name).join(', ')}`);
125
+ // 4. Generate orientation
126
+ // In TCP mode, the container reaches the MCP proxy via host.docker.internal
127
+ const proxyAddress = this.useTcp && this.proxy.port !== undefined ? `host.docker.internal:${this.proxy.port}` : undefined;
128
+ const { systemPrompt } = prepareSession(this.adapter, serverListings, this.sessionDir, this.config, this.sandboxDir, proxyAddress);
129
+ this.systemPrompt = systemPrompt;
130
+ // 5. Ensure Docker image exists (build if needed, with CA cert)
131
+ image = await this.adapter.getImage();
132
+ await this.ensureImage(image);
104
133
  }
105
- // 3. Query proxy for available tools
106
- const tools = await this.proxy.listTools();
107
- logger.info(`Available tools: ${tools.map((t) => t.name).join(', ')}`);
108
- // 4. Generate orientation
109
- // In TCP mode, the container reaches the MCP proxy via host.docker.internal
110
- const proxyAddress = this.useTcp && this.proxy.port !== undefined ? `host.docker.internal:${this.proxy.port}` : undefined;
111
- const { systemPrompt } = prepareSession(this.adapter, tools, this.sessionDir, this.config, this.sandboxDir, proxyAddress);
112
- this.systemPrompt = systemPrompt;
113
- // 5. Ensure Docker image exists (build if needed, with CA cert)
114
- const image = await this.adapter.getImage();
115
- await this.ensureImage(image);
116
134
  // 6. Create and start container
117
135
  const shortId = this.sessionId.substring(0, 12);
118
136
  const orientationDir = resolve(this.sessionDir, 'orientation');
@@ -120,26 +138,56 @@ export class DockerAgentSession {
120
138
  let network;
121
139
  let mounts;
122
140
  let extraHosts;
123
- if (this.useTcp && mitmAddr.port !== undefined) {
124
- // macOS TCP mode: internal bridge network blocks egress,
125
- // container reaches host proxies via gateway IP
141
+ if (this.useTcp && mitmAddr.port !== undefined && this.proxy.port !== undefined) {
142
+ // macOS TCP mode: internal bridge network blocks egress.
143
+ // A socat sidecar bridges the internal network to the host
144
+ // because Docker Desktop VMs don't forward gateway traffic.
145
+ const mcpPort = this.proxy.port;
146
+ const mitmPort = mitmAddr.port;
126
147
  env = {
127
148
  ...this.adapter.buildEnv(this.config, this.fakeKeys),
128
- HTTPS_PROXY: `http://host.docker.internal:${mitmAddr.port}`,
129
- HTTP_PROXY: `http://host.docker.internal:${mitmAddr.port}`,
149
+ HTTPS_PROXY: `http://host.docker.internal:${mitmPort}`,
150
+ HTTP_PROXY: `http://host.docker.internal:${mitmPort}`,
130
151
  };
131
152
  // Create an --internal Docker network that blocks internet egress
132
- // but allows container-to-gateway (host) connectivity for the proxies.
133
153
  await this.docker.createNetwork(INTERNAL_NETWORK_NAME, {
134
154
  internal: true,
135
155
  subnet: INTERNAL_NETWORK_SUBNET,
136
156
  gateway: INTERNAL_NETWORK_GATEWAY,
137
157
  });
138
158
  network = INTERNAL_NETWORK_NAME;
139
- extraHosts = [`host.docker.internal:${INTERNAL_NETWORK_GATEWAY}`];
159
+ // Ensure the socat image is available
160
+ const socatImage = 'alpine/socat';
161
+ if (!(await this.docker.imageExists(socatImage))) {
162
+ logger.info(`Pulling ${socatImage}...`);
163
+ await this.docker.pullImage(socatImage);
164
+ }
165
+ // Create socat sidecar on the default bridge (can reach host.docker.internal)
166
+ const sidecarName = `ironcurtain-sidecar-${shortId}`;
167
+ this.sidecarContainerId = await this.docker.create({
168
+ image: socatImage,
169
+ name: sidecarName,
170
+ network: 'bridge',
171
+ mounts: [],
172
+ env: {},
173
+ entrypoint: '/bin/sh',
174
+ command: [
175
+ '-c',
176
+ quote(['socat', `TCP-LISTEN:${mcpPort},fork,reuseaddr`, `TCP:host.docker.internal:${mcpPort}`]) +
177
+ ' & ' +
178
+ quote(['socat', `TCP-LISTEN:${mitmPort},fork,reuseaddr`, `TCP:host.docker.internal:${mitmPort}`]) +
179
+ ' & wait',
180
+ ],
181
+ });
182
+ await this.docker.start(this.sidecarContainerId);
183
+ // Connect sidecar to the internal network so the app container can reach it
184
+ await this.docker.connectNetwork(INTERNAL_NETWORK_NAME, this.sidecarContainerId);
185
+ const sidecarIp = await this.docker.getContainerIp(this.sidecarContainerId, INTERNAL_NETWORK_NAME);
186
+ extraHosts = [`host.docker.internal:${sidecarIp}`];
187
+ logger.info(`Sidecar ${sidecarName} bridging ports ${mcpPort},${mitmPort} at ${sidecarIp}`);
140
188
  mounts = [
141
189
  { source: this.sandboxDir, target: '/workspace', readonly: false },
142
- // No session dir mount needed -- sockets are replaced by TCP
190
+ // No session dir mount needed for sockets (TCP mode) -- only orientation subdir is mounted
143
191
  { source: orientationDir, target: '/etc/ironcurtain', readonly: true },
144
192
  ];
145
193
  }
@@ -151,35 +199,54 @@ export class DockerAgentSession {
151
199
  HTTP_PROXY: 'http://127.0.0.1:18080',
152
200
  };
153
201
  network = 'none';
202
+ // Mount only the sockets subdirectory into the container -- not the full
203
+ // session dir. This prevents the container from accessing escalation files,
204
+ // audit logs, or other session data. proxy.sock and mitm-proxy.sock are
205
+ // created in this directory by the host-side proxy setup.
206
+ const socketsDir = resolve(this.sessionDir, 'sockets');
207
+ mkdirSync(socketsDir, { recursive: true });
154
208
  mounts = [
155
209
  { source: this.sandboxDir, target: '/workspace', readonly: false },
156
- // Session dir contains proxy.sock and mitm-proxy.sock -- directory mount
157
- // exposes both to the container (file mounts for UDS don't work on macOS Docker Desktop).
158
- { source: this.sessionDir, target: '/run/ironcurtain', readonly: false },
210
+ { source: socketsDir, target: '/run/ironcurtain', readonly: false },
159
211
  { source: orientationDir, target: '/etc/ironcurtain', readonly: true },
160
212
  ];
161
213
  }
162
- this.containerId = await this.docker.create({
163
- image,
164
- name: `ironcurtain-${shortId}`,
165
- network,
166
- mounts,
167
- env,
168
- command: ['sleep', 'infinity'],
169
- sessionLabel: this.sessionId,
170
- resources: { memoryMb: 4096, cpus: 2 },
171
- extraHosts,
172
- });
173
- await this.docker.start(this.containerId);
174
- this.networkName = network;
175
- logger.info(`Container started: ${this.containerId.substring(0, 12)}`);
176
- // Connectivity check: verify the container can reach host proxies
177
- // through the internal network. Abort if unreachable.
178
- if (this.useTcp && network === INTERNAL_NETWORK_NAME && this.proxy.port !== undefined) {
179
- await this.checkInternalNetworkConnectivity(this.containerId, this.proxy.port);
214
+ try {
215
+ this.containerId = await this.docker.create({
216
+ image,
217
+ name: `ironcurtain-${shortId}`,
218
+ network,
219
+ mounts,
220
+ env,
221
+ command: ['sleep', 'infinity'],
222
+ sessionLabel: this.sessionId,
223
+ resources: { memoryMb: 4096, cpus: 2 },
224
+ extraHosts,
225
+ });
226
+ await this.docker.start(this.containerId);
227
+ this.networkName = network;
228
+ logger.info(`Container started: ${this.containerId.substring(0, 12)}`);
229
+ // Connectivity check: verify the container can reach host proxies
230
+ // through the internal network. Abort if unreachable.
231
+ if (this.useTcp && network === INTERNAL_NETWORK_NAME && this.proxy.port !== undefined) {
232
+ await this.checkInternalNetworkConnectivity(this.containerId, this.proxy.port);
233
+ }
234
+ }
235
+ catch (err) {
236
+ // Clean up sidecar if app container setup fails
237
+ if (this.sidecarContainerId) {
238
+ await this.docker.stop(this.sidecarContainerId);
239
+ await this.docker.remove(this.sidecarContainerId);
240
+ this.sidecarContainerId = null;
241
+ }
242
+ throw err;
180
243
  }
181
244
  // 7. Start watchers
182
- this.startEscalationWatcher();
245
+ this.escalationWatcher = createEscalationWatcher(this.escalationDir, {
246
+ onEscalation: (request) => this.onEscalation?.(request),
247
+ onEscalationExpired: () => this.onEscalationExpired?.(),
248
+ });
249
+ this.escalationWatcher.start();
183
250
  // Create the audit log file so fs.watch() can attach to it.
184
251
  // The proxy process appends entries; we create the empty file upfront.
185
252
  if (!existsSync(this.auditLogPath)) {
@@ -255,7 +322,7 @@ export class DockerAgentSession {
255
322
  this.auditTailer?.readNewEntries();
256
323
  }
257
324
  getPendingEscalation() {
258
- return this.pendingEscalation;
325
+ return this.escalationWatcher?.getPending();
259
326
  }
260
327
  getBudgetStatus() {
261
328
  const elapsedSeconds = this.cumulativeActiveMs / 1000;
@@ -280,24 +347,27 @@ export class DockerAgentSession {
280
347
  }
281
348
  // eslint-disable-next-line @typescript-eslint/require-await -- must be async to satisfy Session interface
282
349
  async resolveEscalation(escalationId, decision) {
283
- if (!this.pendingEscalation || this.pendingEscalation.escalationId !== escalationId) {
350
+ if (!this.escalationWatcher) {
284
351
  throw new Error(`No pending escalation with ID: ${escalationId}`);
285
352
  }
286
- const responsePath = resolve(this.escalationDir, `response-${escalationId}.json`);
287
- writeFileSync(responsePath, JSON.stringify({ decision }));
288
- this.pendingEscalation = undefined;
353
+ this.escalationWatcher.resolve(escalationId, decision);
289
354
  }
290
355
  async close() {
291
356
  if (this.status === 'closed')
292
357
  return;
293
358
  this.status = 'closed';
294
- this.stopEscalationWatcher();
359
+ this.escalationWatcher?.stop();
295
360
  this.auditTailer?.stop();
296
361
  // Stop and remove container
297
362
  if (this.containerId) {
298
363
  await this.docker.stop(this.containerId);
299
364
  await this.docker.remove(this.containerId);
300
365
  }
366
+ // Stop and remove sidecar container
367
+ if (this.sidecarContainerId) {
368
+ await this.docker.stop(this.sidecarContainerId);
369
+ await this.docker.remove(this.sidecarContainerId);
370
+ }
301
371
  // Remove internal network (ignore errors -- other sessions may use it)
302
372
  if (this.networkName === INTERNAL_NETWORK_NAME) {
303
373
  await this.docker.removeNetwork(INTERNAL_NETWORK_NAME);
@@ -313,70 +383,27 @@ export class DockerAgentSession {
313
383
  }
314
384
  /**
315
385
  * Checks whether the container can reach host-side proxies via the
316
- * internal Docker network. Throws if connectivity fails.
386
+ * socat sidecar on the internal Docker network. Throws if connectivity fails.
317
387
  */
318
388
  async checkInternalNetworkConnectivity(containerId, mcpPort) {
319
- const result = await this.docker.exec(containerId, ['socat', '-u', '/dev/null', `TCP:host.docker.internal:${mcpPort},connect-timeout=5`], 10_000);
389
+ const result = await this.docker.exec(containerId, ['socat', '-u', '/dev/null', `TCP:host.docker.internal:${mcpPort},connect-timeout=5`],
390
+ // Allow a small buffer above socat's 5s connect-timeout for docker exec/process startup overhead.
391
+ 6_000);
320
392
  if (result.exitCode !== 0) {
321
393
  throw new Error(`Internal network connectivity check failed (exit=${result.exitCode}). ` +
322
- `The container cannot reach host-side proxies on the --internal Docker network. ` +
323
- `This may indicate that Docker Desktop does not forward bridge gateway traffic to the host.`);
324
- }
325
- }
326
- startEscalationWatcher() {
327
- this.escalationPollInterval = setInterval(() => {
328
- this.pollEscalationDirectory();
329
- }, ESCALATION_POLL_INTERVAL_MS);
330
- }
331
- stopEscalationWatcher() {
332
- if (this.escalationPollInterval) {
333
- clearInterval(this.escalationPollInterval);
334
- this.escalationPollInterval = null;
335
- }
336
- }
337
- pollEscalationDirectory() {
338
- if (this.pendingEscalation) {
339
- this.checkEscalationExpiry();
340
- return;
341
- }
342
- try {
343
- const files = readdirSync(this.escalationDir);
344
- const requestFile = files.find((f) => f.startsWith('request-') && f.endsWith('.json') && !this.seenEscalationIds.has(this.extractEscalationId(f)));
345
- if (!requestFile)
346
- return;
347
- const requestPath = resolve(this.escalationDir, requestFile);
348
- const request = JSON.parse(readFileSync(requestPath, 'utf-8'));
349
- this.seenEscalationIds.add(request.escalationId);
350
- this.pendingEscalation = request;
351
- this.onEscalation?.(request);
352
- }
353
- catch {
354
- // Directory may not exist yet or be empty
355
- }
356
- }
357
- checkEscalationExpiry() {
358
- if (!this.pendingEscalation)
359
- return;
360
- const escalationId = this.pendingEscalation.escalationId;
361
- const requestExists = existsSync(resolve(this.escalationDir, `request-${escalationId}.json`));
362
- const responseExists = existsSync(resolve(this.escalationDir, `response-${escalationId}.json`));
363
- if (!requestExists && !responseExists) {
364
- this.pendingEscalation = undefined;
365
- this.onEscalationExpired?.();
394
+ `The container cannot reach host-side proxies via the socat sidecar on the --internal Docker network. ` +
395
+ `Check that the sidecar container is running and connected to the internal network.`);
366
396
  }
367
397
  }
368
398
  writeUserContext(userMessage) {
369
399
  try {
370
400
  const contextPath = resolve(this.escalationDir, 'user-context.json');
371
- writeFileSync(contextPath, JSON.stringify({ userMessage }));
401
+ atomicWriteJsonSync(contextPath, { userMessage });
372
402
  }
373
403
  catch {
374
404
  // Ignore write failures
375
405
  }
376
406
  }
377
- extractEscalationId(filename) {
378
- return filename.replace(/^request-/, '').replace(/\.json$/, '');
379
- }
380
407
  /**
381
408
  * Ensures the Docker image exists and is up-to-date, building it
382
409
  * (and the base image) if needed.
@@ -1 +1 @@
1
- {"version":3,"file":"docker-agent-session.js","sourceRoot":"","sources":["../../src/docker/docker-agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-agent-session.js","sourceRoot":"","sources":["../../src/docker/docker-agent-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Shared Docker session infrastructure setup.
3
+ *
4
+ * Extracts the common setup steps (session dirs, proxies, orientation,
5
+ * CA, fake keys, image) used by both the standard DockerAgentSession
6
+ * and the PTY session module.
7
+ */
8
+ import type { IronCurtainConfig } from '../config/types.js';
9
+ import type { SessionMode } from '../session/types.js';
10
+ import type { AgentAdapter } from './agent-adapter.js';
11
+ import type { DockerProxy } from './code-mode-proxy.js';
12
+ import type { MitmProxy } from './mitm-proxy.js';
13
+ import type { CertificateAuthority } from './ca.js';
14
+ import type { DockerManager } from './types.js';
15
+ /** All the infrastructure created during Docker session setup. */
16
+ export interface DockerInfrastructure {
17
+ readonly sessionId: string;
18
+ readonly sessionDir: string;
19
+ readonly sandboxDir: string;
20
+ readonly escalationDir: string;
21
+ readonly auditLogPath: string;
22
+ readonly proxy: DockerProxy;
23
+ readonly mitmProxy: MitmProxy;
24
+ readonly docker: DockerManager;
25
+ readonly adapter: AgentAdapter;
26
+ readonly ca: CertificateAuthority;
27
+ readonly fakeKeys: Map<string, string>;
28
+ readonly orientationDir: string;
29
+ readonly systemPrompt: string;
30
+ readonly image: string;
31
+ readonly useTcp: boolean;
32
+ readonly socketsDir: string;
33
+ /** MITM proxy listen address (port for TCP mode, socketPath for UDS mode). */
34
+ readonly mitmAddr: {
35
+ socketPath?: string;
36
+ port?: number;
37
+ };
38
+ /** Authentication method used for this session ('oauth' or 'apikey'). */
39
+ readonly authKind: 'oauth' | 'apikey';
40
+ }
41
+ /**
42
+ * Prepares all Docker infrastructure needed to run a session.
43
+ *
44
+ * This is the shared setup logic used by both createDockerSession()
45
+ * and runPtySession(). After calling this, the caller diverges:
46
+ * - Standard mode: creates DockerAgentSession (sleep infinity + docker exec)
47
+ * - PTY mode: attaches terminal directly via socat + Node.js PTY proxy
48
+ */
49
+ export declare function prepareDockerInfrastructure(config: IronCurtainConfig, mode: SessionMode & {
50
+ kind: 'docker';
51
+ }, sessionDir: string, sandboxDir: string, escalationDir: string, auditLogPath: string, sessionId: string): Promise<DockerInfrastructure>;