@provos/ironcurtain 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) 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/mcp-servers.json +10 -0
  12. package/dist/config/paths.d.ts +31 -0
  13. package/dist/config/paths.js +52 -2
  14. package/dist/config/paths.js.map +1 -1
  15. package/dist/config/types.d.ts +8 -0
  16. package/dist/config/user-config.d.ts +21 -3
  17. package/dist/config/user-config.js +34 -3
  18. package/dist/config/user-config.js.map +1 -1
  19. package/dist/docker/adapters/claude-code.js +104 -23
  20. package/dist/docker/adapters/claude-code.js.map +1 -1
  21. package/dist/docker/agent-adapter.d.ts +24 -1
  22. package/dist/docker/agent-adapter.js +6 -1
  23. package/dist/docker/agent-adapter.js.map +1 -1
  24. package/dist/docker/docker-agent-session.d.ts +16 -9
  25. package/dist/docker/docker-agent-session.js +64 -90
  26. package/dist/docker/docker-agent-session.js.map +1 -1
  27. package/dist/docker/docker-infrastructure.d.ts +51 -0
  28. package/dist/docker/docker-infrastructure.js +261 -0
  29. package/dist/docker/docker-infrastructure.js.map +1 -0
  30. package/dist/docker/docker-manager.js +3 -0
  31. package/dist/docker/docker-manager.js.map +1 -1
  32. package/dist/docker/mitm-proxy.js +4 -0
  33. package/dist/docker/mitm-proxy.js.map +1 -1
  34. package/dist/docker/oauth-credentials.d.ts +81 -0
  35. package/dist/docker/oauth-credentials.js +178 -0
  36. package/dist/docker/oauth-credentials.js.map +1 -0
  37. package/dist/docker/orientation.d.ts +1 -1
  38. package/dist/docker/orientation.js +3 -2
  39. package/dist/docker/orientation.js.map +1 -1
  40. package/dist/docker/provider-config.d.ts +3 -0
  41. package/dist/docker/provider-config.js +28 -0
  42. package/dist/docker/provider-config.js.map +1 -1
  43. package/dist/docker/pty-session.d.ts +27 -0
  44. package/dist/docker/pty-session.js +510 -0
  45. package/dist/docker/pty-session.js.map +1 -0
  46. package/dist/docker/pty-types.d.ts +24 -0
  47. package/dist/docker/pty-types.js +12 -0
  48. package/dist/docker/pty-types.js.map +1 -0
  49. package/dist/docker/types.d.ts +6 -0
  50. package/dist/escalation/escalation-watcher.d.ts +44 -0
  51. package/dist/escalation/escalation-watcher.js +92 -0
  52. package/dist/escalation/escalation-watcher.js.map +1 -0
  53. package/dist/escalation/listener-command.d.ts +10 -0
  54. package/dist/escalation/listener-command.js +407 -0
  55. package/dist/escalation/listener-command.js.map +1 -0
  56. package/dist/escalation/listener-state.d.ts +49 -0
  57. package/dist/escalation/listener-state.js +104 -0
  58. package/dist/escalation/listener-state.js.map +1 -0
  59. package/dist/escalation/session-registry.d.ts +17 -0
  60. package/dist/escalation/session-registry.js +98 -0
  61. package/dist/escalation/session-registry.js.map +1 -0
  62. package/dist/index.js +15 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/logger.js +2 -3
  65. package/dist/logger.js.map +1 -1
  66. package/dist/pipeline/annotate.js +35 -15
  67. package/dist/pipeline/annotate.js.map +1 -1
  68. package/dist/pipeline/constitution-customizer.d.ts +2 -1
  69. package/dist/pipeline/constitution-customizer.js +36 -3
  70. package/dist/pipeline/constitution-customizer.js.map +1 -1
  71. package/dist/pipeline/github-identity.d.ts +38 -0
  72. package/dist/pipeline/github-identity.js +64 -0
  73. package/dist/pipeline/github-identity.js.map +1 -0
  74. package/dist/pipeline/handwritten-scenarios.js +34 -0
  75. package/dist/pipeline/handwritten-scenarios.js.map +1 -1
  76. package/dist/sandbox/index.js +14 -3
  77. package/dist/sandbox/index.js.map +1 -1
  78. package/dist/servers/fetch-server.js +2 -2
  79. package/dist/session/base-transport.d.ts +19 -0
  80. package/dist/session/base-transport.js +36 -0
  81. package/dist/session/base-transport.js.map +1 -0
  82. package/dist/session/cli-transport.d.ts +3 -3
  83. package/dist/session/cli-transport.js +7 -4
  84. package/dist/session/cli-transport.js.map +1 -1
  85. package/dist/session/index.js +24 -78
  86. package/dist/session/index.js.map +1 -1
  87. package/dist/session/interaction-log.d.ts +13 -0
  88. package/dist/session/interaction-log.js +28 -0
  89. package/dist/session/interaction-log.js.map +1 -0
  90. package/dist/session/preflight.d.ts +3 -0
  91. package/dist/session/preflight.js +39 -18
  92. package/dist/session/preflight.js.map +1 -1
  93. package/dist/session/types.d.ts +2 -0
  94. package/dist/signal/bot-command.js +5 -0
  95. package/dist/signal/bot-command.js.map +1 -1
  96. package/dist/signal/format.d.ts +21 -1
  97. package/dist/signal/format.js +41 -3
  98. package/dist/signal/format.js.map +1 -1
  99. package/dist/signal/signal-bot-daemon.d.ts +53 -18
  100. package/dist/signal/signal-bot-daemon.js +344 -106
  101. package/dist/signal/signal-bot-daemon.js.map +1 -1
  102. package/dist/signal/signal-config.d.ts +4 -0
  103. package/dist/signal/signal-config.js +2 -0
  104. package/dist/signal/signal-config.js.map +1 -1
  105. package/dist/signal/signal-transport.d.ts +13 -7
  106. package/dist/signal/signal-transport.js +36 -12
  107. package/dist/signal/signal-transport.js.map +1 -1
  108. package/dist/trusted-process/audit-log.d.ts +6 -1
  109. package/dist/trusted-process/audit-log.js +22 -2
  110. package/dist/trusted-process/audit-log.js.map +1 -1
  111. package/dist/trusted-process/audit-redactor.d.ts +25 -0
  112. package/dist/trusted-process/audit-redactor.js +121 -0
  113. package/dist/trusted-process/audit-redactor.js.map +1 -0
  114. package/dist/trusted-process/escalation.d.ts +1 -1
  115. package/dist/trusted-process/escalation.js +6 -1
  116. package/dist/trusted-process/escalation.js.map +1 -1
  117. package/dist/trusted-process/index.d.ts +2 -1
  118. package/dist/trusted-process/index.js +47 -6
  119. package/dist/trusted-process/index.js.map +1 -1
  120. package/dist/trusted-process/mcp-client-manager.js +14 -2
  121. package/dist/trusted-process/mcp-client-manager.js.map +1 -1
  122. package/dist/trusted-process/mcp-error-utils.d.ts +11 -0
  123. package/dist/trusted-process/mcp-error-utils.js +50 -0
  124. package/dist/trusted-process/mcp-error-utils.js.map +1 -0
  125. package/dist/trusted-process/mcp-proxy-server.d.ts +4 -2
  126. package/dist/trusted-process/mcp-proxy-server.js +56 -13
  127. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  128. package/dist/trusted-process/path-utils.d.ts +15 -0
  129. package/dist/trusted-process/path-utils.js +38 -0
  130. package/dist/trusted-process/path-utils.js.map +1 -1
  131. package/dist/trusted-process/sandbox-integration.d.ts +5 -0
  132. package/dist/trusted-process/sandbox-integration.js +1 -1
  133. package/dist/trusted-process/sandbox-integration.js.map +1 -1
  134. package/dist/trusted-process/server-context.d.ts +21 -0
  135. package/dist/trusted-process/server-context.js +42 -0
  136. package/dist/trusted-process/server-context.js.map +1 -0
  137. package/dist/types/argument-roles.d.ts +5 -2
  138. package/dist/types/argument-roles.js +25 -2
  139. package/dist/types/argument-roles.js.map +1 -1
  140. package/docker/Dockerfile.claude-code +8 -3
  141. package/docker/entrypoint-claude-code.sh +64 -4
  142. package/package.json +16 -8
  143. package/src/config/constitution-user-base.md +2 -0
  144. package/src/config/generated/compiled-policy.json +199 -72
  145. package/src/config/generated/tool-annotations.json +1018 -36
  146. package/src/config/mcp-servers.json +10 -0
@@ -8,6 +8,12 @@
8
8
  import type { IronCurtainConfig } from '../config/types.js';
9
9
  import type { ProviderConfig } from './provider-config.js';
10
10
  import type { ServerListing } from '../session/prompts.js';
11
+ /**
12
+ * The workspace directory inside Docker containers. The host sandbox
13
+ * directory is bind-mounted at this path. Used for path rewriting
14
+ * between container and host in both directions.
15
+ */
16
+ export declare const CONTAINER_WORKSPACE_DIR = "/workspace";
11
17
  /**
12
18
  * Structured response from an agent adapter, carrying both the
13
19
  * text response and optional cost/usage metadata reported by the agent.
@@ -32,6 +38,8 @@ export interface AgentConfigFile {
32
38
  readonly path: string;
33
39
  /** File content. */
34
40
  readonly content: string;
41
+ /** Optional file mode (e.g. 0o755 for executable scripts). */
42
+ readonly mode?: number;
35
43
  }
36
44
  /**
37
45
  * Context passed to the adapter for generating orientation content.
@@ -94,8 +102,11 @@ export interface AgentAdapter {
94
102
  * Returns LLM provider configurations for this agent.
95
103
  * The MITM proxy uses these to build the host allowlist,
96
104
  * generate fake API keys, swap keys in requests, and filter endpoints.
105
+ *
106
+ * @param authKind - When 'oauth', returns providers configured for bearer
107
+ * token injection instead of header-based API key injection.
97
108
  */
98
- getProviders(): readonly ProviderConfig[];
109
+ getProviders(authKind?: 'oauth' | 'apikey'): readonly ProviderConfig[];
99
110
  /**
100
111
  * Constructs environment variables for the container.
101
112
  * Receives fake keys instead of real keys -- the real keys never
@@ -111,4 +122,16 @@ export interface AgentAdapter {
111
122
  * @param stdout - captured stdout from the container
112
123
  */
113
124
  extractResponse(exitCode: number, stdout: string): AgentResponse;
125
+ /**
126
+ * Returns the Docker container command for PTY mode.
127
+ * When provided, the container runs this command directly instead of
128
+ * `sleep infinity`, and the host attaches via a PTY proxy.
129
+ *
130
+ * Adapters that do not implement this method do not support PTY mode.
131
+ *
132
+ * @param systemPrompt - the orientation prompt (written to a file, not embedded in shell)
133
+ * @param ptySockPath - the UDS path for the PTY listener (Linux), or undefined for TCP mode
134
+ * @param ptyPort - the TCP port for the PTY listener (macOS), or undefined for UDS mode
135
+ */
136
+ buildPtyCommand?(systemPrompt: string, ptySockPath: string | undefined, ptyPort: number | undefined): readonly string[];
114
137
  }
@@ -5,5 +5,10 @@
5
5
  * that handles its specific configuration needs: Docker image, MCP client
6
6
  * config format, system prompt injection, and output parsing.
7
7
  */
8
- export {};
8
+ /**
9
+ * The workspace directory inside Docker containers. The host sandbox
10
+ * directory is bind-mounted at this path. Used for path rewriting
11
+ * between container and host in both directions.
12
+ */
13
+ export const CONTAINER_WORKSPACE_DIR = '/workspace';
9
14
  //# sourceMappingURL=agent-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/docker/agent-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
1
+ {"version":3,"file":"agent-adapter.js","sourceRoot":"","sources":["../../src/docker/agent-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC"}
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import type { Session, SessionId, SessionInfo, ConversationTurn, DiagnosticEvent, EscalationRequest, BudgetStatus } from '../session/types.js';
15
15
  import type { IronCurtainConfig } from '../config/types.js';
16
- import type { AgentAdapter } from './agent-adapter.js';
16
+ import { type AgentAdapter } from './agent-adapter.js';
17
17
  import type { DockerManager } from './types.js';
18
18
  import type { DockerProxy } from './code-mode-proxy.js';
19
19
  import type { MitmProxy } from './mitm-proxy.js';
@@ -36,6 +36,19 @@ export interface DockerAgentSessionDeps {
36
36
  readonly onEscalation?: (request: EscalationRequest) => void;
37
37
  readonly onEscalationExpired?: () => void;
38
38
  readonly onDiagnostic?: (event: DiagnosticEvent) => void;
39
+ /**
40
+ * When set, proxies are already started, orientation is built, and
41
+ * the image name is resolved. initialize() skips those steps and
42
+ * proceeds directly to container creation + watchers.
43
+ */
44
+ readonly preBuiltInfrastructure?: {
45
+ readonly systemPrompt: string;
46
+ readonly image: string;
47
+ readonly mitmAddr: {
48
+ socketPath?: string;
49
+ port?: number;
50
+ };
51
+ };
39
52
  }
40
53
  export declare class DockerAgentSession implements Session {
41
54
  private readonly sessionId;
@@ -59,15 +72,14 @@ export declare class DockerAgentSession implements Session {
59
72
  private systemPrompt;
60
73
  private turns;
61
74
  private diagnosticLog;
62
- private pendingEscalation;
63
- private seenEscalationIds;
64
- private escalationPollInterval;
75
+ private escalationWatcher;
65
76
  private auditTailer;
66
77
  private cumulativeActiveMs;
67
78
  private cumulativeCostUsd;
68
79
  private readonly onEscalation?;
69
80
  private readonly onEscalationExpired?;
70
81
  private readonly onDiagnostic?;
82
+ private readonly preBuiltInfrastructure?;
71
83
  constructor(deps: DockerAgentSessionDeps);
72
84
  /**
73
85
  * Initialize the Docker agent session:
@@ -96,12 +108,7 @@ export declare class DockerAgentSession implements Session {
96
108
  * socat sidecar on the internal Docker network. Throws if connectivity fails.
97
109
  */
98
110
  private checkInternalNetworkConnectivity;
99
- private startEscalationWatcher;
100
- private stopEscalationWatcher;
101
- private pollEscalationDirectory;
102
- private checkEscalationExpiry;
103
111
  private writeUserContext;
104
- private extractEscalationId;
105
112
  /**
106
113
  * Ensures the Docker image exists and is up-to-date, building it
107
114
  * (and the base image) if needed.
@@ -18,12 +18,13 @@ import { tmpdir, arch } from 'node:os';
18
18
  import { quote } from 'shell-quote';
19
19
  import { createHash } from 'node:crypto';
20
20
  import { fileURLToPath } from 'node:url';
21
+ import { CONTAINER_WORKSPACE_DIR } from './agent-adapter.js';
21
22
  import { AuditLogTailer } from './audit-log-tailer.js';
22
23
  import { prepareSession } from './orientation.js';
23
24
  import { INTERNAL_NETWORK_NAME, INTERNAL_NETWORK_SUBNET, INTERNAL_NETWORK_GATEWAY } from './platform.js';
24
25
  import { SessionNotReadyError, SessionClosedError } from '../session/errors.js';
26
+ import { createEscalationWatcher, atomicWriteJsonSync } from '../escalation/escalation-watcher.js';
25
27
  import * as logger from '../logger.js';
26
- const ESCALATION_POLL_INTERVAL_MS = 300;
27
28
  export class DockerAgentSession {
28
29
  sessionId;
29
30
  config;
@@ -46,15 +47,14 @@ export class DockerAgentSession {
46
47
  systemPrompt = '';
47
48
  turns = [];
48
49
  diagnosticLog = [];
49
- pendingEscalation;
50
- seenEscalationIds = new Set();
51
- escalationPollInterval = null;
50
+ escalationWatcher = null;
52
51
  auditTailer = null;
53
52
  cumulativeActiveMs = 0;
54
53
  cumulativeCostUsd = 0;
55
54
  onEscalation;
56
55
  onEscalationExpired;
57
56
  onDiagnostic;
57
+ preBuiltInfrastructure;
58
58
  constructor(deps) {
59
59
  this.sessionId = deps.sessionId;
60
60
  this.config = deps.config;
@@ -72,6 +72,7 @@ export class DockerAgentSession {
72
72
  this.onEscalation = deps.onEscalation;
73
73
  this.onEscalationExpired = deps.onEscalationExpired;
74
74
  this.onDiagnostic = deps.onDiagnostic;
75
+ this.preBuiltInfrastructure = deps.preBuiltInfrastructure;
75
76
  this.createdAt = new Date().toISOString();
76
77
  }
77
78
  /**
@@ -88,37 +89,49 @@ export class DockerAgentSession {
88
89
  // Ensure directories exist
89
90
  mkdirSync(this.sandboxDir, { recursive: true });
90
91
  mkdirSync(this.escalationDir, { recursive: true });
91
- // 1. Start Code Mode proxy
92
- await this.proxy.start();
93
- if (this.useTcp && this.proxy.port !== undefined) {
94
- logger.info(`Code Mode proxy listening on 127.0.0.1:${this.proxy.port}`);
92
+ let mitmAddr;
93
+ let image;
94
+ if (this.preBuiltInfrastructure) {
95
+ // Infrastructure already prepared by prepareDockerInfrastructure() --
96
+ // proxies are started, orientation is built, image name is resolved.
97
+ this.systemPrompt = this.preBuiltInfrastructure.systemPrompt;
98
+ image = this.preBuiltInfrastructure.image;
99
+ mitmAddr = this.preBuiltInfrastructure.mitmAddr;
95
100
  }
96
101
  else {
97
- logger.info(`Code Mode proxy listening on ${this.proxy.socketPath}`);
98
- }
99
- // 2. Start MITM proxy
100
- const mitmAddr = await this.mitmProxy.start();
101
- if (mitmAddr.port !== undefined) {
102
- logger.info(`MITM proxy listening on 127.0.0.1:${mitmAddr.port}`);
103
- }
104
- else {
105
- logger.info(`MITM proxy listening on ${mitmAddr.socketPath}`);
102
+ // Legacy path: start everything from scratch.
103
+ // 1. Start Code Mode proxy
104
+ await this.proxy.start();
105
+ if (this.useTcp && this.proxy.port !== undefined) {
106
+ logger.info(`Code Mode proxy listening on 127.0.0.1:${this.proxy.port}`);
107
+ }
108
+ else {
109
+ logger.info(`Code Mode proxy listening on ${this.proxy.socketPath}`);
110
+ }
111
+ // 2. Start MITM proxy
112
+ mitmAddr = await this.mitmProxy.start();
113
+ if (mitmAddr.port !== undefined) {
114
+ logger.info(`MITM proxy listening on 127.0.0.1:${mitmAddr.port}`);
115
+ }
116
+ else {
117
+ logger.info(`MITM proxy listening on ${mitmAddr.socketPath}`);
118
+ }
119
+ // 3. Build server listings from sandbox help data
120
+ const helpData = this.proxy.getHelpData();
121
+ const serverListings = Object.entries(helpData.serverDescriptions).map(([name, description]) => ({
122
+ name,
123
+ description,
124
+ }));
125
+ logger.info(`Available servers: ${serverListings.map((s) => s.name).join(', ')}`);
126
+ // 4. Generate orientation
127
+ // In TCP mode, the container reaches the MCP proxy via host.docker.internal
128
+ const proxyAddress = this.useTcp && this.proxy.port !== undefined ? `host.docker.internal:${this.proxy.port}` : undefined;
129
+ const { systemPrompt } = prepareSession(this.adapter, serverListings, this.sessionDir, this.config, this.sandboxDir, proxyAddress);
130
+ this.systemPrompt = systemPrompt;
131
+ // 5. Ensure Docker image exists (build if needed, with CA cert)
132
+ image = await this.adapter.getImage();
133
+ await this.ensureImage(image);
106
134
  }
107
- // 3. Build server listings from sandbox help data
108
- const helpData = this.proxy.getHelpData();
109
- const serverListings = Object.entries(helpData.serverDescriptions).map(([name, description]) => ({
110
- name,
111
- description,
112
- }));
113
- logger.info(`Available servers: ${serverListings.map((s) => s.name).join(', ')}`);
114
- // 4. Generate orientation
115
- // In TCP mode, the container reaches the MCP proxy via host.docker.internal
116
- const proxyAddress = this.useTcp && this.proxy.port !== undefined ? `host.docker.internal:${this.proxy.port}` : undefined;
117
- const { systemPrompt } = prepareSession(this.adapter, serverListings, this.sessionDir, this.config, this.sandboxDir, proxyAddress);
118
- this.systemPrompt = systemPrompt;
119
- // 5. Ensure Docker image exists (build if needed, with CA cert)
120
- const image = await this.adapter.getImage();
121
- await this.ensureImage(image);
122
135
  // 6. Create and start container
123
136
  const shortId = this.sessionId.substring(0, 12);
124
137
  const orientationDir = resolve(this.sessionDir, 'orientation');
@@ -174,7 +187,7 @@ export class DockerAgentSession {
174
187
  extraHosts = [`host.docker.internal:${sidecarIp}`];
175
188
  logger.info(`Sidecar ${sidecarName} bridging ports ${mcpPort},${mitmPort} at ${sidecarIp}`);
176
189
  mounts = [
177
- { source: this.sandboxDir, target: '/workspace', readonly: false },
190
+ { source: this.sandboxDir, target: CONTAINER_WORKSPACE_DIR, readonly: false },
178
191
  // No session dir mount needed for sockets (TCP mode) -- only orientation subdir is mounted
179
192
  { source: orientationDir, target: '/etc/ironcurtain', readonly: true },
180
193
  ];
@@ -187,11 +200,15 @@ export class DockerAgentSession {
187
200
  HTTP_PROXY: 'http://127.0.0.1:18080',
188
201
  };
189
202
  network = 'none';
203
+ // Mount only the sockets subdirectory into the container -- not the full
204
+ // session dir. This prevents the container from accessing escalation files,
205
+ // audit logs, or other session data. proxy.sock and mitm-proxy.sock are
206
+ // created in this directory by the host-side proxy setup.
207
+ const socketsDir = resolve(this.sessionDir, 'sockets');
208
+ mkdirSync(socketsDir, { recursive: true });
190
209
  mounts = [
191
- { source: this.sandboxDir, target: '/workspace', readonly: false },
192
- // Session dir contains proxy.sock and mitm-proxy.sock -- directory mount
193
- // exposes both to the container (file mounts for UDS don't work on macOS Docker Desktop).
194
- { source: this.sessionDir, target: '/run/ironcurtain', readonly: false },
210
+ { source: this.sandboxDir, target: CONTAINER_WORKSPACE_DIR, readonly: false },
211
+ { source: socketsDir, target: '/run/ironcurtain', readonly: false },
195
212
  { source: orientationDir, target: '/etc/ironcurtain', readonly: true },
196
213
  ];
197
214
  }
@@ -226,7 +243,11 @@ export class DockerAgentSession {
226
243
  throw err;
227
244
  }
228
245
  // 7. Start watchers
229
- this.startEscalationWatcher();
246
+ this.escalationWatcher = createEscalationWatcher(this.escalationDir, {
247
+ onEscalation: (request) => this.onEscalation?.(request),
248
+ onEscalationExpired: () => this.onEscalationExpired?.(),
249
+ });
250
+ this.escalationWatcher.start();
230
251
  // Create the audit log file so fs.watch() can attach to it.
231
252
  // The proxy process appends entries; we create the empty file upfront.
232
253
  if (!existsSync(this.auditLogPath)) {
@@ -302,7 +323,7 @@ export class DockerAgentSession {
302
323
  this.auditTailer?.readNewEntries();
303
324
  }
304
325
  getPendingEscalation() {
305
- return this.pendingEscalation;
326
+ return this.escalationWatcher?.getPending();
306
327
  }
307
328
  getBudgetStatus() {
308
329
  const elapsedSeconds = this.cumulativeActiveMs / 1000;
@@ -327,18 +348,16 @@ export class DockerAgentSession {
327
348
  }
328
349
  // eslint-disable-next-line @typescript-eslint/require-await -- must be async to satisfy Session interface
329
350
  async resolveEscalation(escalationId, decision) {
330
- if (!this.pendingEscalation || this.pendingEscalation.escalationId !== escalationId) {
351
+ if (!this.escalationWatcher) {
331
352
  throw new Error(`No pending escalation with ID: ${escalationId}`);
332
353
  }
333
- const responsePath = resolve(this.escalationDir, `response-${escalationId}.json`);
334
- writeFileSync(responsePath, JSON.stringify({ decision }));
335
- this.pendingEscalation = undefined;
354
+ this.escalationWatcher.resolve(escalationId, decision);
336
355
  }
337
356
  async close() {
338
357
  if (this.status === 'closed')
339
358
  return;
340
359
  this.status = 'closed';
341
- this.stopEscalationWatcher();
360
+ this.escalationWatcher?.stop();
342
361
  this.auditTailer?.stop();
343
362
  // Stop and remove container
344
363
  if (this.containerId) {
@@ -377,60 +396,15 @@ export class DockerAgentSession {
377
396
  `Check that the sidecar container is running and connected to the internal network.`);
378
397
  }
379
398
  }
380
- startEscalationWatcher() {
381
- this.escalationPollInterval = setInterval(() => {
382
- this.pollEscalationDirectory();
383
- }, ESCALATION_POLL_INTERVAL_MS);
384
- }
385
- stopEscalationWatcher() {
386
- if (this.escalationPollInterval) {
387
- clearInterval(this.escalationPollInterval);
388
- this.escalationPollInterval = null;
389
- }
390
- }
391
- pollEscalationDirectory() {
392
- if (this.pendingEscalation) {
393
- this.checkEscalationExpiry();
394
- return;
395
- }
396
- try {
397
- const files = readdirSync(this.escalationDir);
398
- const requestFile = files.find((f) => f.startsWith('request-') && f.endsWith('.json') && !this.seenEscalationIds.has(this.extractEscalationId(f)));
399
- if (!requestFile)
400
- return;
401
- const requestPath = resolve(this.escalationDir, requestFile);
402
- const request = JSON.parse(readFileSync(requestPath, 'utf-8'));
403
- this.seenEscalationIds.add(request.escalationId);
404
- this.pendingEscalation = request;
405
- this.onEscalation?.(request);
406
- }
407
- catch {
408
- // Directory may not exist yet or be empty
409
- }
410
- }
411
- checkEscalationExpiry() {
412
- if (!this.pendingEscalation)
413
- return;
414
- const escalationId = this.pendingEscalation.escalationId;
415
- const requestExists = existsSync(resolve(this.escalationDir, `request-${escalationId}.json`));
416
- const responseExists = existsSync(resolve(this.escalationDir, `response-${escalationId}.json`));
417
- if (!requestExists && !responseExists) {
418
- this.pendingEscalation = undefined;
419
- this.onEscalationExpired?.();
420
- }
421
- }
422
399
  writeUserContext(userMessage) {
423
400
  try {
424
401
  const contextPath = resolve(this.escalationDir, 'user-context.json');
425
- writeFileSync(contextPath, JSON.stringify({ userMessage }));
402
+ atomicWriteJsonSync(contextPath, { userMessage });
426
403
  }
427
404
  catch {
428
405
  // Ignore write failures
429
406
  }
430
407
  }
431
- extractEscalationId(filename) {
432
- return filename.replace(/^request-/, '').replace(/\.json$/, '');
433
- }
434
408
  /**
435
409
  * Ensures the Docker image exists and is up-to-date, building it
436
410
  * (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>;