@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.
- package/README.md +14 -12
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/config/config-command.d.ts +33 -1
- package/dist/config/config-command.js +608 -11
- package/dist/config/config-command.js.map +1 -1
- package/dist/config/openrouter-catalog.d.ts +46 -0
- package/dist/config/openrouter-catalog.js +111 -0
- package/dist/config/openrouter-catalog.js.map +1 -0
- package/dist/config/openrouter-models-fallback.d.ts +15 -0
- package/dist/config/openrouter-models-fallback.js +49 -0
- package/dist/config/openrouter-models-fallback.js.map +1 -0
- package/dist/config/types.d.ts +8 -0
- package/dist/config/user-config.d.ts +133 -7
- package/dist/config/user-config.js +234 -5
- package/dist/config/user-config.js.map +1 -1
- package/dist/daemon/daemon-command.js.map +1 -1
- package/dist/daemon/ironcurtain-daemon.js +6 -0
- package/dist/daemon/ironcurtain-daemon.js.map +1 -1
- package/dist/docker/adapters/claude-code.js +109 -1
- package/dist/docker/adapters/claude-code.js.map +1 -1
- package/dist/docker/adapters/codex.d.ts +10 -1
- package/dist/docker/adapters/codex.js +99 -20
- package/dist/docker/adapters/codex.js.map +1 -1
- package/dist/docker/adapters/goose.js +38 -2
- package/dist/docker/adapters/goose.js.map +1 -1
- package/dist/docker/agent-adapter.d.ts +29 -5
- package/dist/docker/agent-registry.js +1 -1
- package/dist/docker/agent-registry.js.map +1 -1
- package/dist/docker/apple-container-manager.d.ts +4 -4
- package/dist/docker/apple-container-manager.js +44 -22
- package/dist/docker/apple-container-manager.js.map +1 -1
- package/dist/docker/ca.js +9 -2
- package/dist/docker/ca.js.map +1 -1
- package/dist/docker/container-lifecycle.js +9 -0
- package/dist/docker/container-lifecycle.js.map +1 -1
- package/dist/docker/docker-agent-session.d.ts +31 -0
- package/dist/docker/docker-agent-session.js +67 -6
- package/dist/docker/docker-agent-session.js.map +1 -1
- package/dist/docker/docker-infrastructure.d.ts +55 -15
- package/dist/docker/docker-infrastructure.js +261 -61
- package/dist/docker/docker-infrastructure.js.map +1 -1
- package/dist/docker/docker-manager.js +127 -0
- package/dist/docker/docker-manager.js.map +1 -1
- package/dist/docker/docker-resource-lifecycle.d.ts +71 -0
- package/dist/docker/docker-resource-lifecycle.js +454 -0
- package/dist/docker/docker-resource-lifecycle.js.map +1 -0
- package/dist/docker/gc-command.d.ts +2 -0
- package/dist/docker/gc-command.js +37 -0
- package/dist/docker/gc-command.js.map +1 -0
- package/dist/docker/mitm-proxy.d.ts +6 -4
- package/dist/docker/mitm-proxy.js +105 -17
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/network-topology.d.ts +16 -9
- package/dist/docker/network-topology.js +17 -10
- package/dist/docker/network-topology.js.map +1 -1
- package/dist/docker/openrouter.d.ts +107 -0
- package/dist/docker/openrouter.js +236 -0
- package/dist/docker/openrouter.js.map +1 -0
- package/dist/docker/orientation.js +1 -1
- package/dist/docker/orientation.js.map +1 -1
- package/dist/docker/platform.d.ts +3 -1
- package/dist/docker/platform.js +3 -1
- package/dist/docker/platform.js.map +1 -1
- package/dist/docker/provider-config.d.ts +6 -0
- package/dist/docker/provider-config.js.map +1 -1
- package/dist/docker/pty-session.d.ts +7 -0
- package/dist/docker/pty-session.js +111 -29
- package/dist/docker/pty-session.js.map +1 -1
- package/dist/docker/pty-types.d.ts +15 -0
- package/dist/docker/pty-types.js +8 -0
- package/dist/docker/pty-types.js.map +1 -1
- package/dist/docker/sse-extractor.js +55 -5
- package/dist/docker/sse-extractor.js.map +1 -1
- package/dist/docker/stream-delay.d.ts +86 -0
- package/dist/docker/stream-delay.js +218 -0
- package/dist/docker/stream-delay.js.map +1 -0
- package/dist/docker/token-stream-types.d.ts +15 -0
- package/dist/docker/trajectory-reassembler.d.ts +2 -2
- package/dist/docker/trajectory-reassembler.js +22 -2
- package/dist/docker/trajectory-reassembler.js.map +1 -1
- package/dist/docker/trajectory-tap.js +2 -2
- package/dist/docker/trajectory-tap.js.map +1 -1
- package/dist/docker/types.d.ts +63 -5
- package/dist/doctor/checks.d.ts +3 -3
- package/dist/doctor/checks.js +28 -11
- package/dist/doctor/checks.js.map +1 -1
- package/dist/doctor/doctor-command.js +1 -1
- package/dist/doctor/doctor-command.js.map +1 -1
- package/dist/escalation/escalation-watcher.js +6 -0
- package/dist/escalation/escalation-watcher.js.map +1 -1
- package/dist/{mux → escalation}/trusted-input.d.ts +7 -4
- package/dist/{mux → escalation}/trusted-input.js +8 -5
- package/dist/escalation/trusted-input.js.map +1 -0
- package/dist/hash.js.map +1 -1
- package/dist/index.js +37 -6
- package/dist/index.js.map +1 -1
- package/dist/mux/mux-app.d.ts +7 -0
- package/dist/mux/mux-app.js +17 -16
- package/dist/mux/mux-app.js.map +1 -1
- package/dist/mux/mux-command.js +8 -3
- package/dist/mux/mux-command.js.map +1 -1
- package/dist/mux/mux-input-handler.d.ts +26 -2
- package/dist/mux/mux-input-handler.js +93 -11
- package/dist/mux/mux-input-handler.js.map +1 -1
- package/dist/mux/mux-renderer.d.ts +2 -1
- package/dist/mux/mux-renderer.js +67 -0
- package/dist/mux/mux-renderer.js.map +1 -1
- package/dist/mux/provider-profile-snapshot.d.ts +44 -0
- package/dist/mux/provider-profile-snapshot.js +56 -0
- package/dist/mux/provider-profile-snapshot.js.map +1 -0
- package/dist/mux/types.d.ts +3 -2
- package/dist/mux/types.js +6 -2
- package/dist/mux/types.js.map +1 -1
- package/dist/observe/observe-command.js.map +1 -1
- package/dist/pipeline/constitution-compiler.js.map +1 -1
- package/dist/pipeline/generate-with-repair.js.map +1 -1
- package/dist/pipeline/refresh-lists.js.map +1 -1
- package/dist/pipeline/scenario-schema-validator.js.map +1 -1
- package/dist/{mux → pty}/pty-bridge.d.ts +39 -3
- package/dist/{mux → pty}/pty-bridge.js +68 -18
- package/dist/pty/pty-bridge.js.map +1 -0
- package/dist/pty/resolve-ironcurtain-bin.d.ts +17 -0
- package/dist/pty/resolve-ironcurtain-bin.js +22 -0
- package/dist/pty/resolve-ironcurtain-bin.js.map +1 -0
- package/dist/servers/fetch-server.js +2 -0
- package/dist/servers/fetch-server.js.map +1 -1
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.js +11 -2
- package/dist/session/index.js.map +1 -1
- package/dist/session/preflight.d.ts +19 -5
- package/dist/session/preflight.js +41 -25
- package/dist/session/preflight.js.map +1 -1
- package/dist/session/resource-budget-tracker.js +8 -0
- package/dist/session/resource-budget-tracker.js.map +1 -1
- package/dist/session/session-manager.d.ts +7 -0
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/types.d.ts +14 -0
- package/dist/signal/signal-bot-daemon.d.ts +1 -0
- package/dist/signal/signal-bot-daemon.js +9 -2
- package/dist/signal/signal-bot-daemon.js.map +1 -1
- package/dist/trusted-process/mcp-error-utils.js +4 -1
- package/dist/trusted-process/mcp-error-utils.js.map +1 -1
- package/dist/trusted-process/mcp-proxy-server.js +2 -0
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/policy-engine.js.map +1 -1
- package/dist/trusted-process/tcp-server-transport.d.ts +7 -0
- package/dist/trusted-process/tcp-server-transport.js +48 -10
- package/dist/trusted-process/tcp-server-transport.js.map +1 -1
- package/dist/utils/preflight-checks.js +1 -3
- package/dist/utils/preflight-checks.js.map +1 -1
- package/dist/utils/stdio-guard.d.ts +1 -0
- package/dist/utils/stdio-guard.js +27 -0
- package/dist/utils/stdio-guard.js.map +1 -0
- package/dist/web-ui/__tests__/config-dispatch.test.d.ts +13 -0
- package/dist/web-ui/__tests__/config-dispatch.test.js +383 -0
- package/dist/web-ui/__tests__/config-dispatch.test.js.map +1 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +6 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -1
- package/dist/web-ui/dispatch/config-dispatch.d.ts +15 -0
- package/dist/web-ui/dispatch/config-dispatch.js +277 -0
- package/dist/web-ui/dispatch/config-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/escalation-dispatch.js +11 -2
- package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -1
- package/dist/web-ui/dispatch/pty-dispatch.d.ts +15 -0
- package/dist/web-ui/dispatch/pty-dispatch.js +66 -0
- package/dist/web-ui/dispatch/pty-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/session-dispatch.js +69 -4
- package/dist/web-ui/dispatch/session-dispatch.js.map +1 -1
- package/dist/web-ui/dispatch/types.d.ts +12 -0
- package/dist/web-ui/dispatch/types.js +38 -1
- package/dist/web-ui/dispatch/types.js.map +1 -1
- package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -1
- package/dist/web-ui/json-rpc-dispatch.js +3 -0
- package/dist/web-ui/json-rpc-dispatch.js.map +1 -1
- package/dist/web-ui/pty-session-manager.d.ts +234 -0
- package/dist/web-ui/pty-session-manager.js +599 -0
- package/dist/web-ui/pty-session-manager.js.map +1 -0
- package/dist/web-ui/web-event-bus.d.ts +9 -0
- package/dist/web-ui/web-event-bus.js.map +1 -1
- package/dist/web-ui/web-session-transport.js.map +1 -1
- package/dist/web-ui/web-ui-server.d.ts +8 -0
- package/dist/web-ui/web-ui-server.js +25 -0
- package/dist/web-ui/web-ui-server.js.map +1 -1
- package/dist/web-ui/web-ui-types.d.ts +80 -1
- package/dist/web-ui/web-ui-types.js.map +1 -1
- package/dist/web-ui-static/assets/index-CCVI4nEK.css +1 -0
- package/dist/web-ui-static/assets/index-Dm012gvY.js +114 -0
- package/dist/web-ui-static/index.html +2 -2
- package/dist/workflow/daemon-gate-commands.js +38 -42
- package/dist/workflow/daemon-gate-commands.js.map +1 -1
- package/dist/workflow/machine-builder.js.map +1 -1
- package/dist/workflow/orchestrator.js +10 -7
- package/dist/workflow/orchestrator.js.map +1 -1
- package/dist/workflow/shutdown-signals.d.ts +7 -0
- package/dist/workflow/shutdown-signals.js +40 -0
- package/dist/workflow/shutdown-signals.js.map +1 -0
- package/dist/workflow/validate.js.map +1 -1
- package/dist/workflow/workflow-command.js +10 -8
- package/dist/workflow/workflow-command.js.map +1 -1
- package/dist/workflow/workflows/evolve/README.md +66 -0
- package/dist/workflow/workflows/vuln-discovery/README.md +54 -0
- package/docker/entrypoint-claude-code.sh +22 -0
- package/package.json +31 -27
- package/src/workflow/workflows/evolve/README.md +66 -0
- package/src/workflow/workflows/vuln-discovery/README.md +54 -0
- package/dist/mux/pty-bridge.js.map +0 -1
- package/dist/mux/trusted-input.js.map +0 -1
- package/dist/web-ui-static/assets/index-BD5U6ILh.css +0 -1
- package/dist/web-ui-static/assets/index-FMsHWEfK.js +0 -79
- 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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
//
|
|
307
|
-
//
|
|
308
|
-
|
|
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
|
-
|
|
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
|
|
354
|
-
|
|
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
|
|
411
|
-
const
|
|
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:
|
|
415
|
-
HTTP_PROXY:
|
|
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
|
-
|
|
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
|
-
|
|
498
|
-
|
|
499
|
-
|
|
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;
|
package/dist/docker/pty-types.js
CHANGED
|
@@ -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;
|
|
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 {
|
|
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) {
|