@provos/ironcurtain 0.12.0 → 0.13.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 (211) hide show
  1. package/README.md +14 -12
  2. package/dist/cli.js +6 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/config-command.d.ts +33 -1
  5. package/dist/config/config-command.js +608 -11
  6. package/dist/config/config-command.js.map +1 -1
  7. package/dist/config/openrouter-catalog.d.ts +46 -0
  8. package/dist/config/openrouter-catalog.js +111 -0
  9. package/dist/config/openrouter-catalog.js.map +1 -0
  10. package/dist/config/openrouter-models-fallback.d.ts +15 -0
  11. package/dist/config/openrouter-models-fallback.js +49 -0
  12. package/dist/config/openrouter-models-fallback.js.map +1 -0
  13. package/dist/config/types.d.ts +8 -0
  14. package/dist/config/user-config.d.ts +133 -7
  15. package/dist/config/user-config.js +234 -5
  16. package/dist/config/user-config.js.map +1 -1
  17. package/dist/daemon/daemon-command.js.map +1 -1
  18. package/dist/daemon/ironcurtain-daemon.js +6 -0
  19. package/dist/daemon/ironcurtain-daemon.js.map +1 -1
  20. package/dist/docker/adapters/claude-code.js +109 -1
  21. package/dist/docker/adapters/claude-code.js.map +1 -1
  22. package/dist/docker/adapters/codex.d.ts +10 -1
  23. package/dist/docker/adapters/codex.js +99 -20
  24. package/dist/docker/adapters/codex.js.map +1 -1
  25. package/dist/docker/adapters/goose.js +38 -2
  26. package/dist/docker/adapters/goose.js.map +1 -1
  27. package/dist/docker/agent-adapter.d.ts +29 -5
  28. package/dist/docker/agent-registry.js +1 -1
  29. package/dist/docker/agent-registry.js.map +1 -1
  30. package/dist/docker/apple-container-manager.d.ts +4 -4
  31. package/dist/docker/apple-container-manager.js +44 -22
  32. package/dist/docker/apple-container-manager.js.map +1 -1
  33. package/dist/docker/ca.js +9 -2
  34. package/dist/docker/ca.js.map +1 -1
  35. package/dist/docker/container-lifecycle.js +9 -0
  36. package/dist/docker/container-lifecycle.js.map +1 -1
  37. package/dist/docker/docker-agent-session.d.ts +31 -0
  38. package/dist/docker/docker-agent-session.js +67 -6
  39. package/dist/docker/docker-agent-session.js.map +1 -1
  40. package/dist/docker/docker-infrastructure.d.ts +55 -15
  41. package/dist/docker/docker-infrastructure.js +261 -61
  42. package/dist/docker/docker-infrastructure.js.map +1 -1
  43. package/dist/docker/docker-manager.js +127 -0
  44. package/dist/docker/docker-manager.js.map +1 -1
  45. package/dist/docker/docker-resource-lifecycle.d.ts +71 -0
  46. package/dist/docker/docker-resource-lifecycle.js +454 -0
  47. package/dist/docker/docker-resource-lifecycle.js.map +1 -0
  48. package/dist/docker/gc-command.d.ts +2 -0
  49. package/dist/docker/gc-command.js +37 -0
  50. package/dist/docker/gc-command.js.map +1 -0
  51. package/dist/docker/mitm-proxy.d.ts +6 -4
  52. package/dist/docker/mitm-proxy.js +105 -17
  53. package/dist/docker/mitm-proxy.js.map +1 -1
  54. package/dist/docker/network-topology.d.ts +16 -9
  55. package/dist/docker/network-topology.js +17 -10
  56. package/dist/docker/network-topology.js.map +1 -1
  57. package/dist/docker/openrouter.d.ts +107 -0
  58. package/dist/docker/openrouter.js +236 -0
  59. package/dist/docker/openrouter.js.map +1 -0
  60. package/dist/docker/orientation.js +1 -1
  61. package/dist/docker/orientation.js.map +1 -1
  62. package/dist/docker/platform.d.ts +3 -1
  63. package/dist/docker/platform.js +3 -1
  64. package/dist/docker/platform.js.map +1 -1
  65. package/dist/docker/provider-config.d.ts +6 -0
  66. package/dist/docker/provider-config.js.map +1 -1
  67. package/dist/docker/pty-session.d.ts +7 -0
  68. package/dist/docker/pty-session.js +111 -29
  69. package/dist/docker/pty-session.js.map +1 -1
  70. package/dist/docker/pty-types.d.ts +15 -0
  71. package/dist/docker/pty-types.js +8 -0
  72. package/dist/docker/pty-types.js.map +1 -1
  73. package/dist/docker/sse-extractor.js +55 -5
  74. package/dist/docker/sse-extractor.js.map +1 -1
  75. package/dist/docker/stream-delay.d.ts +86 -0
  76. package/dist/docker/stream-delay.js +218 -0
  77. package/dist/docker/stream-delay.js.map +1 -0
  78. package/dist/docker/token-stream-types.d.ts +15 -0
  79. package/dist/docker/trajectory-reassembler.d.ts +2 -2
  80. package/dist/docker/trajectory-reassembler.js +22 -2
  81. package/dist/docker/trajectory-reassembler.js.map +1 -1
  82. package/dist/docker/trajectory-tap.js +2 -2
  83. package/dist/docker/trajectory-tap.js.map +1 -1
  84. package/dist/docker/types.d.ts +63 -5
  85. package/dist/doctor/checks.d.ts +3 -3
  86. package/dist/doctor/checks.js +28 -11
  87. package/dist/doctor/checks.js.map +1 -1
  88. package/dist/doctor/doctor-command.js +1 -1
  89. package/dist/doctor/doctor-command.js.map +1 -1
  90. package/dist/escalation/escalation-watcher.js +6 -0
  91. package/dist/escalation/escalation-watcher.js.map +1 -1
  92. package/dist/{mux → escalation}/trusted-input.d.ts +7 -4
  93. package/dist/{mux → escalation}/trusted-input.js +8 -5
  94. package/dist/escalation/trusted-input.js.map +1 -0
  95. package/dist/hash.js.map +1 -1
  96. package/dist/index.js +37 -6
  97. package/dist/index.js.map +1 -1
  98. package/dist/mux/mux-app.d.ts +7 -0
  99. package/dist/mux/mux-app.js +17 -16
  100. package/dist/mux/mux-app.js.map +1 -1
  101. package/dist/mux/mux-command.js +8 -3
  102. package/dist/mux/mux-command.js.map +1 -1
  103. package/dist/mux/mux-input-handler.d.ts +26 -2
  104. package/dist/mux/mux-input-handler.js +93 -11
  105. package/dist/mux/mux-input-handler.js.map +1 -1
  106. package/dist/mux/mux-renderer.d.ts +2 -1
  107. package/dist/mux/mux-renderer.js +67 -0
  108. package/dist/mux/mux-renderer.js.map +1 -1
  109. package/dist/mux/provider-profile-snapshot.d.ts +44 -0
  110. package/dist/mux/provider-profile-snapshot.js +56 -0
  111. package/dist/mux/provider-profile-snapshot.js.map +1 -0
  112. package/dist/mux/types.d.ts +3 -2
  113. package/dist/mux/types.js +6 -2
  114. package/dist/mux/types.js.map +1 -1
  115. package/dist/observe/observe-command.js.map +1 -1
  116. package/dist/pipeline/constitution-compiler.js.map +1 -1
  117. package/dist/pipeline/generate-with-repair.js.map +1 -1
  118. package/dist/pipeline/refresh-lists.js.map +1 -1
  119. package/dist/pipeline/scenario-schema-validator.js.map +1 -1
  120. package/dist/{mux → pty}/pty-bridge.d.ts +39 -3
  121. package/dist/{mux → pty}/pty-bridge.js +68 -18
  122. package/dist/pty/pty-bridge.js.map +1 -0
  123. package/dist/pty/resolve-ironcurtain-bin.d.ts +17 -0
  124. package/dist/pty/resolve-ironcurtain-bin.js +22 -0
  125. package/dist/pty/resolve-ironcurtain-bin.js.map +1 -0
  126. package/dist/servers/fetch-server.js +2 -0
  127. package/dist/servers/fetch-server.js.map +1 -1
  128. package/dist/session/index.d.ts +1 -1
  129. package/dist/session/index.js +11 -2
  130. package/dist/session/index.js.map +1 -1
  131. package/dist/session/preflight.d.ts +19 -5
  132. package/dist/session/preflight.js +41 -25
  133. package/dist/session/preflight.js.map +1 -1
  134. package/dist/session/resource-budget-tracker.js +8 -0
  135. package/dist/session/resource-budget-tracker.js.map +1 -1
  136. package/dist/session/session-manager.d.ts +7 -0
  137. package/dist/session/session-manager.js.map +1 -1
  138. package/dist/session/types.d.ts +14 -0
  139. package/dist/signal/signal-bot-daemon.d.ts +1 -0
  140. package/dist/signal/signal-bot-daemon.js +9 -2
  141. package/dist/signal/signal-bot-daemon.js.map +1 -1
  142. package/dist/trusted-process/mcp-error-utils.js +4 -1
  143. package/dist/trusted-process/mcp-error-utils.js.map +1 -1
  144. package/dist/trusted-process/mcp-proxy-server.js +2 -0
  145. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  146. package/dist/trusted-process/policy-engine.js.map +1 -1
  147. package/dist/trusted-process/tcp-server-transport.d.ts +7 -0
  148. package/dist/trusted-process/tcp-server-transport.js +48 -10
  149. package/dist/trusted-process/tcp-server-transport.js.map +1 -1
  150. package/dist/utils/preflight-checks.js +1 -3
  151. package/dist/utils/preflight-checks.js.map +1 -1
  152. package/dist/utils/stdio-guard.d.ts +1 -0
  153. package/dist/utils/stdio-guard.js +27 -0
  154. package/dist/utils/stdio-guard.js.map +1 -0
  155. package/dist/web-ui/__tests__/config-dispatch.test.d.ts +13 -0
  156. package/dist/web-ui/__tests__/config-dispatch.test.js +383 -0
  157. package/dist/web-ui/__tests__/config-dispatch.test.js.map +1 -0
  158. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +6 -0
  159. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -1
  160. package/dist/web-ui/dispatch/config-dispatch.d.ts +15 -0
  161. package/dist/web-ui/dispatch/config-dispatch.js +277 -0
  162. package/dist/web-ui/dispatch/config-dispatch.js.map +1 -0
  163. package/dist/web-ui/dispatch/escalation-dispatch.js +11 -2
  164. package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -1
  165. package/dist/web-ui/dispatch/pty-dispatch.d.ts +15 -0
  166. package/dist/web-ui/dispatch/pty-dispatch.js +66 -0
  167. package/dist/web-ui/dispatch/pty-dispatch.js.map +1 -0
  168. package/dist/web-ui/dispatch/session-dispatch.js +69 -4
  169. package/dist/web-ui/dispatch/session-dispatch.js.map +1 -1
  170. package/dist/web-ui/dispatch/types.d.ts +12 -0
  171. package/dist/web-ui/dispatch/types.js +38 -1
  172. package/dist/web-ui/dispatch/types.js.map +1 -1
  173. package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -1
  174. package/dist/web-ui/json-rpc-dispatch.js +3 -0
  175. package/dist/web-ui/json-rpc-dispatch.js.map +1 -1
  176. package/dist/web-ui/pty-session-manager.d.ts +234 -0
  177. package/dist/web-ui/pty-session-manager.js +599 -0
  178. package/dist/web-ui/pty-session-manager.js.map +1 -0
  179. package/dist/web-ui/web-event-bus.d.ts +9 -0
  180. package/dist/web-ui/web-event-bus.js.map +1 -1
  181. package/dist/web-ui/web-session-transport.js.map +1 -1
  182. package/dist/web-ui/web-ui-server.d.ts +8 -0
  183. package/dist/web-ui/web-ui-server.js +25 -0
  184. package/dist/web-ui/web-ui-server.js.map +1 -1
  185. package/dist/web-ui/web-ui-types.d.ts +80 -1
  186. package/dist/web-ui/web-ui-types.js.map +1 -1
  187. package/dist/web-ui-static/assets/index-CCVI4nEK.css +1 -0
  188. package/dist/web-ui-static/assets/index-Dm012gvY.js +114 -0
  189. package/dist/web-ui-static/index.html +2 -2
  190. package/dist/workflow/daemon-gate-commands.js +38 -42
  191. package/dist/workflow/daemon-gate-commands.js.map +1 -1
  192. package/dist/workflow/machine-builder.js.map +1 -1
  193. package/dist/workflow/orchestrator.js +10 -7
  194. package/dist/workflow/orchestrator.js.map +1 -1
  195. package/dist/workflow/shutdown-signals.d.ts +7 -0
  196. package/dist/workflow/shutdown-signals.js +40 -0
  197. package/dist/workflow/shutdown-signals.js.map +1 -0
  198. package/dist/workflow/validate.js.map +1 -1
  199. package/dist/workflow/workflow-command.js +10 -8
  200. package/dist/workflow/workflow-command.js.map +1 -1
  201. package/dist/workflow/workflows/evolve/README.md +66 -0
  202. package/dist/workflow/workflows/vuln-discovery/README.md +54 -0
  203. package/docker/entrypoint-claude-code.sh +22 -0
  204. package/package.json +31 -27
  205. package/src/workflow/workflows/evolve/README.md +66 -0
  206. package/src/workflow/workflows/vuln-discovery/README.md +54 -0
  207. package/dist/mux/pty-bridge.js.map +0 -1
  208. package/dist/mux/trusted-input.js.map +0 -1
  209. package/dist/web-ui-static/assets/index-BD5U6ILh.css +0 -1
  210. package/dist/web-ui-static/assets/index-FMsHWEfK.js +0 -79
  211. package/packages/web-ui/README.md +0 -113
@@ -21,7 +21,7 @@ import { createSessionId, getBundleShortId } from '../session/types.js';
21
21
  import { buildSessionConfig } from '../session/index.js';
22
22
  import { validateWorkspacePath } from '../session/workspace-validation.js';
23
23
  import { CONTAINER_WORKSPACE_DIR } from './agent-adapter.js';
24
- import { PTY_SOCK_NAME, DEFAULT_PTY_PORT } from './pty-types.js';
24
+ import { PTY_SOCK_NAME, DEFAULT_PTY_PORT, APPLE_PTY_GUEST_SOCK } from './pty-types.js';
25
25
  import { createEscalationWatcher, atomicWriteJsonSync } from '../escalation/escalation-watcher.js';
26
26
  import { getSessionDir, getSessionCapturesDir, getPtyRegistryDir, SESSION_STATE_FILENAME } from '../config/paths.js';
27
27
  import * as logger from '../logger.js';
@@ -29,7 +29,8 @@ import { buildDockerClaudeMd } from './claude-md-seed.js';
29
29
  import { getInternalNetworkName } from './platform.js';
30
30
  import { cleanupContainers } from './container-lifecycle.js';
31
31
  import { clampDockerResources } from './resource-limits.js';
32
- import { buildAgentUidRemap } from './docker-infrastructure.js';
32
+ import { buildAgentUidRemap, buildUdsSocketMounts } from './docker-infrastructure.js';
33
+ import { createIronCurtainInternalNetwork, InternalNetworkConnectivityError, managedResourceLabels, reconcileIronCurtainDockerResourcesBestEffort, releaseManagedResourceLease, withInternalNetworkAllocationRetry, } from './docker-resource-lifecycle.js';
33
34
  /** Maximum time to wait for the PTY socket to appear (ms). */
34
35
  const PTY_READINESS_TIMEOUT_MS = 30_000;
35
36
  /**
@@ -142,7 +143,20 @@ function writeSessionSnapshot(sessionDir, snapshot) {
142
143
  * Claude Code, attaches the terminal, and blocks until the session ends.
143
144
  */
144
145
  export async function runPtySession(options) {
145
- const { prepareDockerInfrastructure, writeHostOnlyAptProxyConfig, checkHostOnlyConnectivity } = await import('./docker-infrastructure.js');
146
+ let retryDocker;
147
+ await withInternalNetworkAllocationRetry({
148
+ maxAttempts: 4,
149
+ description: 'PTY internal Docker network',
150
+ reconcile: async () => {
151
+ if (retryDocker)
152
+ await reconcileIronCurtainDockerResourcesBestEffort(retryDocker, 'PTY internal network retry');
153
+ },
154
+ }, (excludedSubnets, attempt) => runPtySessionAttempt(options, excludedSubnets, attempt, (docker) => {
155
+ retryDocker = docker;
156
+ }));
157
+ }
158
+ async function runPtySessionAttempt(options, excludedSubnets, attempt, onDockerReady) {
159
+ const { prepareDockerInfrastructure, writeAptProxyConfigViaExec, checkDockerContainerWritableStorage, checkHostOnlyConnectivity, checkInternalNetworkConnectivity, } = await import('./docker-infrastructure.js');
146
160
  // When resuming, validate the snapshot and reuse the existing session directory
147
161
  const resumeSnapshot = options.resumeSessionId
148
162
  ? validateResumeSession(options.resumeSessionId, options.config.protectedPaths)
@@ -152,6 +166,10 @@ export async function runPtySession(options) {
152
166
  const sessionId = createSessionId();
153
167
  const effectiveSessionId = options.resumeSessionId ?? sessionId;
154
168
  const sessionDir = getSessionDir(effectiveSessionId);
169
+ // On resume, restore the profile the same way workspacePath is restored:
170
+ // the persisted snapshot name wins over any passed flag (which is
171
+ // warn-ignored upstream). Fresh sessions use the passed flag.
172
+ const providerProfileName = isResume ? resumeSnapshot.providerProfileName : options.providerProfileName;
155
173
  // Delegate to shared buildSessionConfig() so PTY sessions get the same
156
174
  // config patching as standard Docker sessions (persona, memory MCP server
157
175
  // injection, server allowlist, policy dir, etc.).
@@ -159,7 +177,13 @@ export async function runPtySession(options) {
159
177
  resumeSessionId: options.resumeSessionId,
160
178
  workspacePath: isResume ? resumeSnapshot.workspacePath : options.workspacePath,
161
179
  persona: options.persona,
180
+ providerProfileName,
181
+ mode: options.mode,
162
182
  });
183
+ // Resolve the active-profile name to persist in the snapshot for resume.
184
+ // Docker mode always: PTY sessions are Docker-only. Mirrors the batch
185
+ // path's metadata write (§9.7 F3).
186
+ const resolvedProviderProfileName = providerProfileName ?? options.config.userConfig.modelProviders.default;
163
187
  // Layer PTY-specific fields on top of the shared config.
164
188
  const sessionConfig = { ...dirConfig.config, isPtySession: true };
165
189
  const { sandboxDir, escalationDir, systemPromptAugmentation } = dirConfig;
@@ -203,6 +227,7 @@ export async function runPtySession(options) {
203
227
  let docker = null;
204
228
  let useTcp;
205
229
  let networkName = null;
230
+ let allocatedNetworkSubnet;
206
231
  // Flushes the trajectory-capture session (clean, non-poisoned session-end)
207
232
  // before infra teardown. Assigned inside the try once the bundle exists;
208
233
  // invoked in finally. Undefined when capture is disabled. PTY mode tears
@@ -233,7 +258,8 @@ export async function runPtySession(options) {
233
258
  override: options.captureTracesOverride,
234
259
  capturesDir: getSessionCapturesDir(effectiveSessionId),
235
260
  recordedAgentName: options.mode.agent,
236
- });
261
+ }, undefined, // scriptsDir
262
+ providerProfileName);
237
263
  // PTY sessions are standalone: pin the MITM proxy's token-stream
238
264
  // routing ID to this session's ID for the session's lifetime.
239
265
  const captureSessionId = effectiveSessionId;
@@ -256,6 +282,7 @@ export async function runPtySession(options) {
256
282
  };
257
283
  }
258
284
  ({ docker, proxy, mitmProxy, useTcp } = infra);
285
+ onDockerReady(docker);
259
286
  const { adapter, fakeKeys, orientationDir, socketsDir, systemPrompt: baseSystemPrompt, image, mitmAddr, conversationStateDir, conversationStateConfig, skillsMount, } = infra;
260
287
  // Write CLAUDE.md into conversation state dir (unconditionally, even on
261
288
  // resume, since persona/memory config may change between sessions).
@@ -289,24 +316,41 @@ export async function runPtySession(options) {
289
316
  writeFileSync(resolve(orientationDir, 'system-prompt.txt'), systemPrompt);
290
317
  // Write the effective system prompt to the session directory for debugging
291
318
  writeFileSync(resolve(sessionDir, 'system-prompt.txt'), systemPrompt);
292
- // Determine PTY connection target
293
- const ptySockPath = useTcp ? undefined : `/run/ironcurtain/${PTY_SOCK_NAME}`;
319
+ // Determine PTY connection target. On apple-container the guest
320
+ // listens under /tmp (see APPLE_PTY_GUEST_SOCK) and the runtime's
321
+ // --publish-socket bridges it to <socketsDir>/pty.sock on the host,
322
+ // so the host-side ptyTarget below is identical to Linux.
323
+ const ptySockPath = useTcp
324
+ ? undefined
325
+ : infra.runtimeKind === 'apple-container'
326
+ ? APPLE_PTY_GUEST_SOCK
327
+ : `/run/ironcurtain/${PTY_SOCK_NAME}`;
294
328
  const ptyPort = useTcp ? DEFAULT_PTY_PORT : undefined;
295
329
  // Build the PTY command
296
330
  const ptyCommand = adapter.buildPtyCommand(systemPrompt, ptySockPath, ptyPort);
297
331
  // Build container configuration
298
332
  const shortId = getBundleShortId(bundleId);
299
333
  const { quote } = await import('shell-quote');
300
- const internalNetworkName = getInternalNetworkName(shortId);
334
+ const baseInternalNetworkName = getInternalNetworkName(shortId);
335
+ const internalNetworkName = attempt === 1 ? baseInternalNetworkName : `${baseInternalNetworkName}-a${attempt}`;
336
+ const managedLabels = infra.runtimeKind === 'docker' ? managedResourceLabels(bundleId) : undefined;
337
+ const resourceLabels = managedLabels
338
+ ? Object.fromEntries(Object.entries(managedLabels).filter(([key]) => key !== 'ironcurtain.bundle'))
339
+ : undefined;
301
340
  let env;
302
341
  let network;
303
342
  let mounts;
304
343
  let extraHosts;
344
+ let publishSockets;
305
345
  let hostPtyPort;
306
- // tcp-hostonly only: apt proxy config written into the container via
307
- // exec after start (apple container cannot bind-mount single files).
308
- let hostOnlyAptProxyUrl;
346
+ // apple-container only (both `uds` and the retained `tcp-hostonly`):
347
+ // apt proxy config written into the container via exec after start
348
+ // instead of bind-mounted — see writeAptProxyConfigViaExec.
349
+ let execAptProxyUrl;
309
350
  const mainContainerName = `ironcurtain-pty-${shortId}`;
351
+ if (infra.runtimeKind === 'docker') {
352
+ await reconcileIronCurtainDockerResourcesBestEffort(docker, 'PTY session startup');
353
+ }
310
354
  // Remove stale main container from a crashed previous session (same session
311
355
  // ID means same deterministic name, which would conflict on docker create).
312
356
  // Done before the TCP/UDS branch since the main container name is
@@ -327,7 +371,7 @@ export async function runPtySession(options) {
327
371
  HTTPS_PROXY: proxyUrl,
328
372
  HTTP_PROXY: proxyUrl,
329
373
  };
330
- hostOnlyAptProxyUrl = proxyUrl;
374
+ execAptProxyUrl = proxyUrl;
331
375
  network = infra.hostOnlyNetwork.name;
332
376
  // Report the prepare-phase network as networkName so the finally
333
377
  // block's cleanupContainers removes it with the container.
@@ -350,11 +394,13 @@ export async function runPtySession(options) {
350
394
  // Write apt proxy config so sudo apt-get routes through the MITM proxy
351
395
  const aptProxyPath = resolve(orientationDir, 'apt-proxy.conf');
352
396
  writeFileSync(aptProxyPath, `Acquire::http::Proxy "${proxyUrl}";\nAcquire::https::Proxy "${proxyUrl}";\n`);
353
- await docker.createNetwork(internalNetworkName, {
354
- internal: true,
397
+ const allocatedNetwork = await createIronCurtainInternalNetwork(docker, internalNetworkName, bundleId, {
398
+ excludedSubnets,
355
399
  });
400
+ allocatedNetworkSubnet = allocatedNetwork.subnet;
356
401
  network = internalNetworkName;
357
402
  networkName = internalNetworkName;
403
+ logger.info(`Allocated internal Docker network ${internalNetworkName} at ${allocatedNetwork.subnet}`);
358
404
  const socatImage = 'alpine/socat';
359
405
  if (!(await docker.imageExists(socatImage))) {
360
406
  logger.info(`Pulling ${socatImage}...`);
@@ -381,6 +427,7 @@ export async function runPtySession(options) {
381
427
  // PTY sessions are standalone (no workflow/scope), so only the
382
428
  // bundle label is emitted. See docs/designs/workflow-session-identity.md §7.
383
429
  bundleLabel: bundleId,
430
+ labels: resourceLabels,
384
431
  ports: [`127.0.0.1:${hostPtyPort}:${containerPtyPort}`],
385
432
  command: [
386
433
  '-c',
@@ -407,23 +454,39 @@ export async function runPtySession(options) {
407
454
  ];
408
455
  }
409
456
  else {
410
- // Linux UDS mode
411
- const linuxProxyUrl = 'http://127.0.0.1:18080';
457
+ // UDS mode (Linux Docker AND apple-container >= 1.1.0)
458
+ const udsProxyUrl = 'http://127.0.0.1:18080';
412
459
  env = {
413
460
  ...adapter.buildEnv(sessionConfig, fakeKeys),
414
- HTTPS_PROXY: linuxProxyUrl,
415
- HTTP_PROXY: linuxProxyUrl,
461
+ HTTPS_PROXY: udsProxyUrl,
462
+ HTTP_PROXY: udsProxyUrl,
416
463
  };
417
464
  network = null;
418
- // Write apt proxy config so sudo apt-get routes through the MITM proxy
419
- const aptProxyPathLinux = resolve(orientationDir, 'apt-proxy.conf');
420
- writeFileSync(aptProxyPathLinux, `Acquire::http::Proxy "${linuxProxyUrl}";\nAcquire::https::Proxy "${linuxProxyUrl}";\n`);
421
465
  mounts = [
422
466
  { source: sandboxDir, target: CONTAINER_WORKSPACE_DIR, readonly: false },
423
- { source: socketsDir, target: '/run/ironcurtain', readonly: false },
467
+ ...buildUdsSocketMounts(infra.runtimeKind, socketsDir),
424
468
  { source: orientationDir, target: '/etc/ironcurtain', readonly: true },
425
- { source: aptProxyPathLinux, target: '/etc/apt/apt.conf.d/90-ironcurtain-proxy', readonly: true },
426
469
  ];
470
+ if (infra.runtimeKind === 'apple-container') {
471
+ // apple-container: 1.1.0's virtiofs silently drops a directory
472
+ // share when a file inside that directory is ALSO -v-mounted, so
473
+ // the apt config (which lives under orientationDir) is written
474
+ // via exec after start instead of bind-mounted. Bridge the
475
+ // guest's PTY listener back to the host via a vsock relay; the
476
+ // host-side socket materializes when the guest bind()s, so
477
+ // waitForPtyReady's existence poll below is a valid readiness
478
+ // signal on both runtimes.
479
+ execAptProxyUrl = udsProxyUrl;
480
+ if (ptySockPath !== undefined) {
481
+ publishSockets = [{ hostPath: resolve(socketsDir, PTY_SOCK_NAME), containerPath: ptySockPath }];
482
+ }
483
+ }
484
+ else {
485
+ // Linux Docker: single-file bind mount for the apt proxy config.
486
+ const aptProxyPathUds = resolve(orientationDir, 'apt-proxy.conf');
487
+ writeFileSync(aptProxyPathUds, `Acquire::http::Proxy "${udsProxyUrl}";\nAcquire::https::Proxy "${udsProxyUrl}";\n`);
488
+ mounts.push({ source: aptProxyPathUds, target: '/etc/apt/apt.conf.d/90-ironcurtain-proxy', readonly: true });
489
+ }
427
490
  }
428
491
  // Mount conversation state directory if the adapter supports resume
429
492
  if (conversationStateDir && conversationStateConfig) {
@@ -464,7 +527,7 @@ export async function runPtySession(options) {
464
527
  // setup in `docker-infrastructure.ts::createSessionContainers`;
465
528
  // when adding fields here, mirror the change there. macOS skips
466
529
  // the remap because VirtioFS translates UIDs transparently.
467
- const uidRemap = buildAgentUidRemap(useTcp);
530
+ const uidRemap = buildAgentUidRemap(infra.runtimeKind === 'apple-container' || useTcp);
468
531
  // Resource ceilings come from userConfig (defaults: 8 GB / 4 cpus) and
469
532
  // are clamped to fit the host. `null` in either field is preserved as
470
533
  // "no flag emitted" (see clampDockerResources docs).
@@ -480,8 +543,10 @@ export async function runPtySession(options) {
480
543
  // PTY sessions are standalone (no workflow/scope), so only the
481
544
  // bundle label is emitted. See docs/designs/workflow-session-identity.md §7.
482
545
  bundleLabel: bundleId,
546
+ labels: resourceLabels,
483
547
  resources: { memoryMb: ptyResources.memoryMb, cpus: ptyResources.cpus },
484
548
  extraHosts,
549
+ publishSockets,
485
550
  capAdd: [
486
551
  'SETUID', // sudo setuid
487
552
  'SETGID', // sudo setgid
@@ -494,15 +559,30 @@ export async function runPtySession(options) {
494
559
  });
495
560
  await docker.start(containerId);
496
561
  logger.info(`PTY container started: ${containerId.substring(0, 12)}`);
497
- // tcp-hostonly: write the apt proxy config inside the container and
498
- // run the fail-closed connectivity gate (gateway proxies reachable,
499
- // internet egress blocked) before attaching.
562
+ if (infra.runtimeKind === 'docker') {
563
+ await checkDockerContainerWritableStorage(docker, containerId);
564
+ }
565
+ // apple-container (uds and the retained tcp-hostonly): write the apt
566
+ // proxy config inside the container via exec instead of a bind mount.
567
+ if (execAptProxyUrl !== undefined) {
568
+ await writeAptProxyConfigViaExec(docker, containerId, execAptProxyUrl);
569
+ }
570
+ // tcp-hostonly only: fail-closed connectivity gate (gateway proxies
571
+ // reachable, internet egress blocked) before attaching.
500
572
  if (infra.topology === 'tcp-hostonly' && infra.hostOnlyNetwork !== undefined && proxy.port !== undefined) {
501
- if (hostOnlyAptProxyUrl !== undefined) {
502
- await writeHostOnlyAptProxyConfig(docker, containerId, hostOnlyAptProxyUrl);
503
- }
504
573
  await checkHostOnlyConnectivity(docker, containerId, infra.hostOnlyNetwork.gateway, proxy.port);
505
574
  }
575
+ else if (infra.topology === 'tcp-sidecar' && proxy.port !== undefined && mitmAddr.port !== undefined) {
576
+ try {
577
+ await checkInternalNetworkConnectivity(docker, containerId, proxy.port, mitmAddr.port);
578
+ }
579
+ catch (error) {
580
+ if (error instanceof InternalNetworkConnectivityError) {
581
+ throw new InternalNetworkConnectivityError(error.message, allocatedNetworkSubnet);
582
+ }
583
+ throw error;
584
+ }
585
+ }
506
586
  // Write session registration for the escalation listener
507
587
  registrationPath = writeRegistration(effectiveSessionId, escalationDir, adapter.displayName);
508
588
  // Start escalation file watcher (emits BEL to alert user)
@@ -607,6 +687,7 @@ export async function runPtySession(options) {
607
687
  networkName,
608
688
  });
609
689
  }
690
+ releaseManagedResourceLease(effectiveSessionId);
610
691
  // Stop proxies
611
692
  await mitmProxy?.stop().catch(() => { });
612
693
  await proxy?.stop().catch(() => { });
@@ -621,6 +702,7 @@ export async function runPtySession(options) {
621
702
  exitCode: ptyExitCode,
622
703
  lastActivity: new Date().toISOString(),
623
704
  workspacePath: sandboxDir,
705
+ providerProfileName: resolvedProviderProfileName,
624
706
  agent: adapterIdForSnapshot,
625
707
  label: `${adapterDisplayNameForSnapshot ?? adapterIdForSnapshot} (interactive)`,
626
708
  resumable: canResume,
@@ -1 +1 @@
1
- {"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../src/docker/pty-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-session.js","sourceRoot":"","sources":["../../src/docker/pty-session.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,13 @@ export interface SessionSnapshot {
33
33
  readonly lastActivity: string;
34
34
  /** Host-side workspace path. */
35
35
  readonly workspacePath: string;
36
+ /**
37
+ * Resolved provider-profile name active for this session (`'native'` or a
38
+ * configured profile). Restored on resume so a later `modelProviders.default`
39
+ * change does not re-route the resumed session. Absent on snapshots written
40
+ * before this field existed. See docs/designs/openrouter-integration.md §9.7 F3.
41
+ */
42
+ readonly providerProfileName?: string;
36
43
  /** Agent adapter ID (e.g., 'claude-code', 'goose'). */
37
44
  readonly agent: string;
38
45
  /** Human-readable session label. */
@@ -46,5 +53,13 @@ export declare const PTY_REGISTRY_DIR_NAME = "pty-registry";
46
53
  export declare const LISTENER_LOCK_FILE = "escalation-listener.lock";
47
54
  /** PTY socket filename (Linux UDS mode). */
48
55
  export declare const PTY_SOCK_NAME = "pty.sock";
56
+ /**
57
+ * Guest-side PTY socket path on apple-container. `/run/ironcurtain` is
58
+ * auto-created `root:root 0755` by the per-file `-v` socket mounts, so
59
+ * the non-root `codespace` user cannot `bind()` there; `/tmp` is
60
+ * world-writable. Bridged to `<socketsDir>/pty.sock` on the host via
61
+ * `--publish-socket`.
62
+ */
63
+ export declare const APPLE_PTY_GUEST_SOCK = "/tmp/ironcurtain-pty.sock";
49
64
  /** Default PTY port inside the container (macOS TCP mode only). */
50
65
  export declare const DEFAULT_PTY_PORT = 19000;
@@ -7,6 +7,14 @@ export const PTY_REGISTRY_DIR_NAME = 'pty-registry';
7
7
  export const LISTENER_LOCK_FILE = 'escalation-listener.lock';
8
8
  /** PTY socket filename (Linux UDS mode). */
9
9
  export const PTY_SOCK_NAME = 'pty.sock';
10
+ /**
11
+ * Guest-side PTY socket path on apple-container. `/run/ironcurtain` is
12
+ * auto-created `root:root 0755` by the per-file `-v` socket mounts, so
13
+ * the non-root `codespace` user cannot `bind()` there; `/tmp` is
14
+ * world-writable. Bridged to `<socketsDir>/pty.sock` on the host via
15
+ * `--publish-socket`.
16
+ */
17
+ export const APPLE_PTY_GUEST_SOCK = '/tmp/ironcurtain-pty.sock';
10
18
  /** Default PTY port inside the container (macOS TCP mode only). */
11
19
  export const DEFAULT_PTY_PORT = 19000;
12
20
  //# sourceMappingURL=pty-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pty-types.js","sourceRoot":"","sources":["../../src/docker/pty-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2CH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEpD,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAE7D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"pty-types.js","sourceRoot":"","sources":["../../src/docker/pty-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkDH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEpD,sDAAsD;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAE7D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC"}
@@ -29,6 +29,35 @@ function obj(value) {
29
29
  function arr(value) {
30
30
  return Array.isArray(value) ? value : undefined;
31
31
  }
32
+ /** First argument that is a number, else undefined (to distinguish absent from 0). */
33
+ function firstNumber(...values) {
34
+ for (const value of values)
35
+ if (typeof value === 'number')
36
+ return value;
37
+ return undefined;
38
+ }
39
+ /**
40
+ * Extracts OpenRouter's authoritative `usage.cost` (USD) and cache-read token
41
+ * count from a terminal usage object. OpenRouter reports cache reads under a
42
+ * DIFFERENT key per wire format (§10.2), so all three are accepted:
43
+ * - Anthropic skin (`/api/v1/messages`): `cache_read_input_tokens`
44
+ * - Chat Completions (`/api/v1/chat/completions`): `prompt_tokens_details.cached_tokens`
45
+ * - Responses (`/api/v1/responses`): `input_tokens_details.cached_tokens`
46
+ * `cost` is a top-level field of the usage object on every skin. Native
47
+ * (non-OpenRouter) usage objects carry none of these, so both fields come back
48
+ * undefined and the event carries no extra data.
49
+ */
50
+ function extractOpenRouterUsage(usage) {
51
+ if (!usage)
52
+ return {};
53
+ const promptDetails = obj(usage['prompt_tokens_details']);
54
+ const inputDetails = obj(usage['input_tokens_details']);
55
+ const cachedTokens = firstNumber(usage['cache_read_input_tokens'], promptDetails?.['cached_tokens'], inputDetails?.['cached_tokens']);
56
+ return {
57
+ ...(typeof usage['cost'] === 'number' ? { costUsd: usage['cost'] } : {}),
58
+ ...(cachedTokens !== undefined ? { cachedTokens } : {}),
59
+ };
60
+ }
32
61
  /**
33
62
  * A passthrough Transform stream that intercepts SSE data flowing
34
63
  * through the MITM proxy without modifying the forwarded bytes.
@@ -211,7 +240,7 @@ export class SseExtractorTransform extends Transform {
211
240
  if (type === 'message_delta') {
212
241
  const delta = obj(root['delta']);
213
242
  const usage = obj(root['usage']);
214
- this.emitSafe(this.makeMessageEnd(str(delta?.['stop_reason']), 0, num(usage?.['output_tokens'])));
243
+ this.emitSafe(this.makeMessageEnd(str(delta?.['stop_reason']), 0, num(usage?.['output_tokens']), extractOpenRouterUsage(usage)));
215
244
  return;
216
245
  }
217
246
  if (type === 'message_stop') {
@@ -242,6 +271,17 @@ export class SseExtractorTransform extends Transform {
242
271
  const root = obj(parsed);
243
272
  if (!root)
244
273
  return;
274
+ // OpenRouter Responses wire (Codex): the terminal `response.completed` /
275
+ // `response.done` event carries authoritative usage under `response.usage`.
276
+ // The rest of this parser understands only the chat-completions `choices`
277
+ // shape, so without this branch the Responses cost/cache is dropped (§10.2).
278
+ const rootType = str(root['type']);
279
+ if (rootType === 'response.completed' || rootType === 'response.done') {
280
+ const response = obj(root['response']);
281
+ const status = str(response?.['status']) || 'stop';
282
+ this.emitSafe(this.makeMessageEnd(status, 0, 0, extractOpenRouterUsage(obj(response?.['usage']))));
283
+ return;
284
+ }
245
285
  const now = Date.now();
246
286
  const choices = arr(root['choices']);
247
287
  if (!choices || choices.length === 0) {
@@ -258,7 +298,7 @@ export class SseExtractorTransform extends Transform {
258
298
  if (!delta) {
259
299
  const finishReason = str(choice['finish_reason']) || undefined;
260
300
  if (finishReason) {
261
- this.emitSafe(this.makeMessageEnd(finishReason, 0, 0));
301
+ this.emitSafe(this.makeMessageEnd(finishReason, 0, 0, extractOpenRouterUsage(obj(root['usage']))));
262
302
  }
263
303
  return;
264
304
  }
@@ -279,16 +319,26 @@ export class SseExtractorTransform extends Transform {
279
319
  return;
280
320
  }
281
321
  // Empty delta with finish_reason (common OpenAI pattern for stream end).
322
+ // OpenRouter rides authoritative usage on this final chunk (§10.2).
282
323
  const finishReason = str(choice['finish_reason']) || undefined;
283
324
  if (finishReason) {
284
- this.emitSafe(this.makeMessageEnd(finishReason, 0, 0));
325
+ this.emitSafe(this.makeMessageEnd(finishReason, 0, 0, extractOpenRouterUsage(obj(root['usage']))));
285
326
  return;
286
327
  }
287
328
  // Unknown delta shape -- emit as raw.
288
329
  this.emitSafe({ kind: 'raw', eventType: 'openai_delta', data, timestamp: now });
289
330
  }
290
- makeMessageEnd(stopReason, inputTokens, outputTokens) {
291
- return { kind: 'message_end', stopReason, inputTokens, outputTokens, timestamp: Date.now() };
331
+ makeMessageEnd(stopReason, inputTokens, outputTokens, usage) {
332
+ return {
333
+ kind: 'message_end',
334
+ stopReason,
335
+ inputTokens,
336
+ outputTokens,
337
+ // `usage` (from extractOpenRouterUsage) already contains ONLY the defined
338
+ // OpenRouter fields, so spreading it omits absent keys without re-guarding.
339
+ ...(usage ?? {}),
340
+ timestamp: Date.now(),
341
+ };
292
342
  }
293
343
  /** Invoke the callback, swallowing any listener errors. */
294
344
  emitSafe(event) {