@provos/ironcurtain 0.6.0 → 0.7.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.
- package/README.md +29 -86
- package/dist/cli-help.d.ts +63 -0
- package/dist/cli-help.js +102 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/cli.js +79 -56
- package/dist/cli.js.map +1 -1
- package/dist/config/config-command.js +136 -2
- package/dist/config/config-command.js.map +1 -1
- package/dist/config/constitution-readonly.md +21 -0
- package/dist/config/generated/tool-annotations.json +487 -338
- package/dist/config/generated-readonly/compiled-policy.json +468 -0
- package/dist/config/index.d.ts +21 -1
- package/dist/config/index.js +12 -4
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-servers.json +2 -8
- package/dist/config/paths.d.ts +47 -0
- package/dist/config/paths.js +81 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/tool-description-hints.json +15 -0
- package/dist/config/types.d.ts +7 -0
- package/dist/config/user-config.d.ts +21 -0
- package/dist/config/user-config.js +8 -0
- package/dist/config/user-config.js.map +1 -1
- package/dist/cron/compile-task-policy.d.ts +17 -0
- package/dist/cron/compile-task-policy.js +39 -0
- package/dist/cron/compile-task-policy.js.map +1 -0
- package/dist/cron/constitution-generator.d.ts +60 -0
- package/dist/cron/constitution-generator.js +217 -0
- package/dist/cron/constitution-generator.js.map +1 -0
- package/dist/cron/cron-scheduler.d.ts +65 -0
- package/dist/cron/cron-scheduler.js +184 -0
- package/dist/cron/cron-scheduler.js.map +1 -0
- package/dist/cron/file-lock.d.ts +41 -0
- package/dist/cron/file-lock.js +156 -0
- package/dist/cron/file-lock.js.map +1 -0
- package/dist/cron/format-utils.d.ts +18 -0
- package/dist/cron/format-utils.js +145 -0
- package/dist/cron/format-utils.js.map +1 -0
- package/dist/cron/git-sync.d.ts +22 -0
- package/dist/cron/git-sync.js +121 -0
- package/dist/cron/git-sync.js.map +1 -0
- package/dist/cron/headless-transport.d.ts +27 -0
- package/dist/cron/headless-transport.js +43 -0
- package/dist/cron/headless-transport.js.map +1 -0
- package/dist/cron/job-commands.d.ts +39 -0
- package/dist/cron/job-commands.js +585 -0
- package/dist/cron/job-commands.js.map +1 -0
- package/dist/cron/job-customizer.d.ts +22 -0
- package/dist/cron/job-customizer.js +47 -0
- package/dist/cron/job-customizer.js.map +1 -0
- package/dist/cron/job-store.d.ts +35 -0
- package/dist/cron/job-store.js +111 -0
- package/dist/cron/job-store.js.map +1 -0
- package/dist/cron/types.d.ts +135 -0
- package/dist/cron/types.js +22 -0
- package/dist/cron/types.js.map +1 -0
- package/dist/daemon/control-socket.d.ts +127 -0
- package/dist/daemon/control-socket.js +261 -0
- package/dist/daemon/control-socket.js.map +1 -0
- package/dist/daemon/daemon-command.d.ts +13 -0
- package/dist/daemon/daemon-command.js +230 -0
- package/dist/daemon/daemon-command.js.map +1 -0
- package/dist/daemon/ironcurtain-daemon.d.ts +90 -0
- package/dist/daemon/ironcurtain-daemon.js +550 -0
- package/dist/daemon/ironcurtain-daemon.js.map +1 -0
- package/dist/docker/adapters/claude-code.js +7 -47
- package/dist/docker/adapters/claude-code.js.map +1 -1
- package/dist/docker/adapters/goose.d.ts +58 -0
- package/dist/docker/adapters/goose.js +250 -0
- package/dist/docker/adapters/goose.js.map +1 -0
- package/dist/docker/adapters/shared-scripts.d.ts +29 -0
- package/dist/docker/adapters/shared-scripts.js +80 -0
- package/dist/docker/adapters/shared-scripts.js.map +1 -0
- package/dist/docker/agent-adapter.d.ts +12 -0
- package/dist/docker/agent-adapter.js.map +1 -1
- package/dist/docker/agent-registry.d.ts +6 -1
- package/dist/docker/agent-registry.js +10 -1
- package/dist/docker/agent-registry.js.map +1 -1
- package/dist/docker/docker-agent-session.d.ts +2 -25
- package/dist/docker/docker-agent-session.js +7 -106
- package/dist/docker/docker-agent-session.js.map +1 -1
- package/dist/docker/docker-infrastructure.d.ts +8 -0
- package/dist/docker/docker-infrastructure.js +12 -11
- package/dist/docker/docker-infrastructure.js.map +1 -1
- package/dist/docker/mitm-proxy.js +10 -5
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/oauth-credentials.js +2 -2
- package/dist/docker/oauth-credentials.js.map +1 -1
- package/dist/docker/pty-session.js +146 -39
- package/dist/docker/pty-session.js.map +1 -1
- package/dist/escalation/escalation-watcher.d.ts +2 -0
- package/dist/escalation/escalation-watcher.js +3 -0
- package/dist/escalation/escalation-watcher.js.map +1 -1
- package/dist/escalation/session-registry.js +1 -14
- package/dist/escalation/session-registry.js.map +1 -1
- package/dist/index.js +43 -5
- package/dist/index.js.map +1 -1
- package/dist/mux/mux-app.js +11 -6
- package/dist/mux/mux-app.js.map +1 -1
- package/dist/mux/mux-command.js +49 -10
- package/dist/mux/mux-command.js.map +1 -1
- package/dist/mux/mux-input-handler.d.ts +5 -0
- package/dist/mux/mux-input-handler.js +64 -9
- package/dist/mux/mux-input-handler.js.map +1 -1
- package/dist/mux/mux-renderer.d.ts +20 -0
- package/dist/mux/mux-renderer.js +127 -35
- package/dist/mux/mux-renderer.js.map +1 -1
- package/dist/mux/mux-splash.js +2 -1
- package/dist/mux/mux-splash.js.map +1 -1
- package/dist/mux/paste-interceptor.d.ts +22 -0
- package/dist/mux/paste-interceptor.js +143 -0
- package/dist/mux/paste-interceptor.js.map +1 -0
- package/dist/mux/pty-bridge.js +1 -1
- package/dist/mux/pty-bridge.js.map +1 -1
- package/dist/mux/types.d.ts +8 -1
- package/dist/mux/types.js +17 -5
- package/dist/mux/types.js.map +1 -1
- package/dist/persona/compile-persona-policy.d.ts +21 -0
- package/dist/persona/compile-persona-policy.js +50 -0
- package/dist/persona/compile-persona-policy.js.map +1 -0
- package/dist/persona/persona-command.d.ts +9 -0
- package/dist/persona/persona-command.js +479 -0
- package/dist/persona/persona-command.js.map +1 -0
- package/dist/persona/persona-customizer.d.ts +23 -0
- package/dist/persona/persona-customizer.js +52 -0
- package/dist/persona/persona-customizer.js.map +1 -0
- package/dist/persona/persona-prompt.d.ts +19 -0
- package/dist/persona/persona-prompt.js +42 -0
- package/dist/persona/persona-prompt.js.map +1 -0
- package/dist/persona/resolve.d.ts +46 -0
- package/dist/persona/resolve.js +108 -0
- package/dist/persona/resolve.js.map +1 -0
- package/dist/persona/types.d.ts +40 -0
- package/dist/persona/types.js +20 -0
- package/dist/persona/types.js.map +1 -0
- package/dist/pipeline/annotate.js +10 -4
- package/dist/pipeline/annotate.js.map +1 -1
- package/dist/pipeline/compile.d.ts +14 -31
- package/dist/pipeline/compile.js +50 -563
- package/dist/pipeline/compile.js.map +1 -1
- package/dist/pipeline/constitution-compiler.d.ts +6 -0
- package/dist/pipeline/constitution-compiler.js +42 -6
- package/dist/pipeline/constitution-compiler.js.map +1 -1
- package/dist/pipeline/constitution-customizer.d.ts +3 -0
- package/dist/pipeline/constitution-customizer.js +19 -5
- package/dist/pipeline/constitution-customizer.js.map +1 -1
- package/dist/pipeline/customizer-loop.d.ts +34 -0
- package/dist/pipeline/customizer-loop.js +167 -0
- package/dist/pipeline/customizer-loop.js.map +1 -0
- package/dist/pipeline/mcp-connections.d.ts +16 -0
- package/dist/pipeline/mcp-connections.js +61 -0
- package/dist/pipeline/mcp-connections.js.map +1 -0
- package/dist/pipeline/pipeline-runner.d.ts +86 -0
- package/dist/pipeline/pipeline-runner.js +547 -0
- package/dist/pipeline/pipeline-runner.js.map +1 -0
- package/dist/pipeline/pipeline-shared.d.ts +37 -3
- package/dist/pipeline/pipeline-shared.js +77 -16
- package/dist/pipeline/pipeline-shared.js.map +1 -1
- package/dist/pipeline/refresh-lists.js +38 -12
- package/dist/pipeline/refresh-lists.js.map +1 -1
- package/dist/pipeline/scenario-generator.js +2 -1
- package/dist/pipeline/scenario-generator.js.map +1 -1
- package/dist/pipeline/tool-annotator.d.ts +3 -3
- package/dist/pipeline/tool-annotator.js +114 -4
- package/dist/pipeline/tool-annotator.js.map +1 -1
- package/dist/pipeline/types.d.ts +52 -0
- package/dist/sandbox/index.js +36 -1
- package/dist/sandbox/index.js.map +1 -1
- package/dist/session/agent-session.d.ts +3 -0
- package/dist/session/agent-session.js +10 -1
- package/dist/session/agent-session.js.map +1 -1
- package/dist/session/index.d.ts +10 -0
- package/dist/session/index.js +134 -12
- package/dist/session/index.js.map +1 -1
- package/dist/session/preflight.js +26 -6
- package/dist/session/preflight.js.map +1 -1
- package/dist/session/prompts.d.ts +14 -0
- package/dist/session/prompts.js +39 -2
- package/dist/session/prompts.js.map +1 -1
- package/dist/session/session-manager.d.ts +105 -0
- package/dist/session/session-manager.js +134 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session-metadata.d.ts +18 -0
- package/dist/session/session-metadata.js +34 -0
- package/dist/session/session-metadata.js.map +1 -0
- package/dist/session/types.d.ts +47 -0
- package/dist/session/workspace-validation.d.ts +2 -0
- package/dist/session/workspace-validation.js +6 -5
- package/dist/session/workspace-validation.js.map +1 -1
- package/dist/signal/bot-command.d.ts +2 -0
- package/dist/signal/bot-command.js +8 -0
- package/dist/signal/bot-command.js.map +1 -1
- package/dist/signal/format.d.ts +27 -0
- package/dist/signal/format.js +59 -0
- package/dist/signal/format.js.map +1 -1
- package/dist/signal/signal-bot-daemon.d.ts +27 -25
- package/dist/signal/signal-bot-daemon.js +153 -135
- package/dist/signal/signal-bot-daemon.js.map +1 -1
- package/dist/signal/signal-container.js +63 -19
- package/dist/signal/signal-container.js.map +1 -1
- package/dist/signal/signal-transport.js +3 -8
- package/dist/signal/signal-transport.js.map +1 -1
- package/dist/trusted-process/domain-utils.d.ts +37 -4
- package/dist/trusted-process/domain-utils.js +130 -11
- package/dist/trusted-process/domain-utils.js.map +1 -1
- package/dist/trusted-process/index.js +6 -2
- package/dist/trusted-process/index.js.map +1 -1
- package/dist/trusted-process/mcp-client-manager.js +11 -5
- package/dist/trusted-process/mcp-client-manager.js.map +1 -1
- package/dist/trusted-process/mcp-proxy-server.d.ts +21 -0
- package/dist/trusted-process/mcp-proxy-server.js +91 -28
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/permissive-output-validator.d.ts +23 -0
- package/dist/trusted-process/permissive-output-validator.js +10 -0
- package/dist/trusted-process/permissive-output-validator.js.map +1 -0
- package/dist/trusted-process/policy-engine.d.ts +29 -7
- package/dist/trusted-process/policy-engine.js +149 -92
- package/dist/trusted-process/policy-engine.js.map +1 -1
- package/dist/trusted-process/tool-description-hints.d.ts +19 -0
- package/dist/trusted-process/tool-description-hints.js +53 -0
- package/dist/trusted-process/tool-description-hints.js.map +1 -0
- package/dist/types/argument-roles.d.ts +33 -1
- package/dist/types/argument-roles.js +129 -1
- package/dist/types/argument-roles.js.map +1 -1
- package/dist/types/slug.d.ts +7 -0
- package/dist/types/slug.js +14 -0
- package/dist/types/slug.js.map +1 -0
- package/dist/utils/editor.d.ts +24 -0
- package/dist/utils/editor.js +66 -0
- package/dist/utils/editor.js.map +1 -0
- package/docker/Dockerfile.goose +34 -0
- package/docker/entrypoint-goose.sh +30 -0
- package/package.json +1 -1
- package/src/config/generated/tool-annotations.json +487 -338
- package/src/config/mcp-servers.json +2 -8
|
@@ -12,13 +12,14 @@
|
|
|
12
12
|
* -> Code Mode Proxy (MCP)
|
|
13
13
|
* -> mcp-proxy-server (PolicyEngine + Audit)
|
|
14
14
|
*/
|
|
15
|
-
import { createConnection } from 'node:net';
|
|
15
|
+
import { createConnection, createServer } from 'node:net';
|
|
16
16
|
import { execFile } from 'node:child_process';
|
|
17
17
|
import { mkdirSync, writeFileSync, unlinkSync } from 'node:fs';
|
|
18
18
|
import { resolve } from 'node:path';
|
|
19
19
|
import chalk from 'chalk';
|
|
20
20
|
import ora from 'ora';
|
|
21
21
|
import { createSessionId } from '../session/types.js';
|
|
22
|
+
import { patchMcpServerAllowedDirectory } from '../session/index.js';
|
|
22
23
|
import { CONTAINER_WORKSPACE_DIR } from './agent-adapter.js';
|
|
23
24
|
import { PTY_SOCK_NAME, DEFAULT_PTY_PORT } from './pty-types.js';
|
|
24
25
|
import { createEscalationWatcher, atomicWriteJsonSync } from '../escalation/escalation-watcher.js';
|
|
@@ -67,6 +68,10 @@ export async function runPtySession(options) {
|
|
|
67
68
|
isPtySession: true,
|
|
68
69
|
mcpServers: JSON.parse(JSON.stringify(options.config.mcpServers)),
|
|
69
70
|
};
|
|
71
|
+
// Sync the filesystem server's directory arg with the session sandbox.
|
|
72
|
+
// Without this, the filesystem server inherits the stale default from
|
|
73
|
+
// loadConfig() (~/.ironcurtain/sandbox) instead of the session workspace.
|
|
74
|
+
patchMcpServerAllowedDirectory(sessionConfig, sandboxDir);
|
|
70
75
|
const initSpinner = ora({
|
|
71
76
|
text: `Initializing PTY session (${options.mode.agent})...`,
|
|
72
77
|
stream: process.stderr,
|
|
@@ -90,14 +95,16 @@ export async function runPtySession(options) {
|
|
|
90
95
|
}
|
|
91
96
|
};
|
|
92
97
|
process.on('exit', restoreTerminal);
|
|
93
|
-
// SIGTERM
|
|
98
|
+
// SIGTERM/SIGHUP trigger graceful shutdown by aborting the PTY connection.
|
|
94
99
|
// This causes attachPty() to resolve, which then falls through to the
|
|
95
100
|
// finally block for full async cleanup (containers, proxies, files).
|
|
101
|
+
// SIGHUP is included because node-pty's kill() sends SIGHUP by default.
|
|
96
102
|
const shutdownController = new AbortController();
|
|
97
|
-
const
|
|
103
|
+
const handleShutdownSignal = () => {
|
|
98
104
|
shutdownController.abort();
|
|
99
105
|
};
|
|
100
|
-
process.on('SIGTERM',
|
|
106
|
+
process.on('SIGTERM', handleShutdownSignal);
|
|
107
|
+
process.on('SIGHUP', handleShutdownSignal);
|
|
101
108
|
// Infra variables set inside try, used in finally for cleanup
|
|
102
109
|
let proxy = null;
|
|
103
110
|
let mitmProxy = null;
|
|
@@ -126,6 +133,8 @@ export async function runPtySession(options) {
|
|
|
126
133
|
let network;
|
|
127
134
|
let mounts;
|
|
128
135
|
let extraHosts;
|
|
136
|
+
let hostPtyPort;
|
|
137
|
+
const mainContainerName = `ironcurtain-pty-${shortId}`;
|
|
129
138
|
if (useTcp && proxy.port !== undefined && mitmAddr.port !== undefined) {
|
|
130
139
|
// macOS TCP mode
|
|
131
140
|
const mcpPort = proxy.port;
|
|
@@ -146,9 +155,15 @@ export async function runPtySession(options) {
|
|
|
146
155
|
logger.info(`Pulling ${socatImage}...`);
|
|
147
156
|
await docker.pullImage(socatImage);
|
|
148
157
|
}
|
|
149
|
-
// Create socat sidecar
|
|
158
|
+
// Create socat sidecar: forwards MCP/MITM container→host and PTY host→container.
|
|
159
|
+
// The PTY socat is reversed because the host connects TO the container's PTY socket.
|
|
160
|
+
// Docker DNS resolves the main container name on the internal network, and socat
|
|
161
|
+
// with `fork` only resolves at connection time (so it's fine that main starts later).
|
|
150
162
|
const sidecarName = `ironcurtain-sidecar-${shortId}`;
|
|
151
|
-
|
|
163
|
+
// Container-internal PTY port is fixed; host-side port is dynamic to
|
|
164
|
+
// avoid conflicts when multiple PTY sessions run concurrently.
|
|
165
|
+
const containerPtyPort = ptyPort ?? DEFAULT_PTY_PORT;
|
|
166
|
+
hostPtyPort = await findFreePort();
|
|
152
167
|
sidecarContainerId = await docker.create({
|
|
153
168
|
image: socatImage,
|
|
154
169
|
name: sidecarName,
|
|
@@ -156,13 +171,18 @@ export async function runPtySession(options) {
|
|
|
156
171
|
mounts: [],
|
|
157
172
|
env: {},
|
|
158
173
|
entrypoint: '/bin/sh',
|
|
174
|
+
ports: [`127.0.0.1:${hostPtyPort}:${containerPtyPort}`],
|
|
159
175
|
command: [
|
|
160
176
|
'-c',
|
|
161
177
|
quote(['socat', `TCP-LISTEN:${mcpPort},fork,reuseaddr`, `TCP:host.docker.internal:${mcpPort}`]) +
|
|
162
178
|
' & ' +
|
|
163
179
|
quote(['socat', `TCP-LISTEN:${mitmPort},fork,reuseaddr`, `TCP:host.docker.internal:${mitmPort}`]) +
|
|
164
180
|
' & ' +
|
|
165
|
-
quote([
|
|
181
|
+
quote([
|
|
182
|
+
'socat',
|
|
183
|
+
`TCP-LISTEN:${containerPtyPort},fork,reuseaddr`,
|
|
184
|
+
`TCP:${mainContainerName}:${containerPtyPort}`,
|
|
185
|
+
]) +
|
|
166
186
|
' & wait',
|
|
167
187
|
],
|
|
168
188
|
});
|
|
@@ -199,7 +219,7 @@ export async function runPtySession(options) {
|
|
|
199
219
|
// Create and start container with PTY command and TTY
|
|
200
220
|
containerId = await docker.create({
|
|
201
221
|
image,
|
|
202
|
-
name:
|
|
222
|
+
name: mainContainerName,
|
|
203
223
|
network,
|
|
204
224
|
mounts,
|
|
205
225
|
env,
|
|
@@ -221,11 +241,25 @@ export async function runPtySession(options) {
|
|
|
221
241
|
onEscalationExpired: () => { },
|
|
222
242
|
});
|
|
223
243
|
escalationFileWatcher.start();
|
|
224
|
-
// Wait for PTY socket readiness
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
244
|
+
// Wait for PTY socket readiness.
|
|
245
|
+
// On macOS TCP mode, skip the readiness probe — the main container's socat
|
|
246
|
+
// does NOT use `fork`, so it only accepts one connection. A readiness probe
|
|
247
|
+
// would consume that slot and cause the real attachPty connection to fail.
|
|
248
|
+
// Instead, attachPty retries internally for TCP targets.
|
|
249
|
+
let ptyTarget;
|
|
250
|
+
if (useTcp) {
|
|
251
|
+
if (hostPtyPort === undefined) {
|
|
252
|
+
throw new Error('PTY session misconfiguration: useTcp is true but hostPtyPort was not assigned');
|
|
253
|
+
}
|
|
254
|
+
ptyTarget = { host: 'localhost', port: hostPtyPort };
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
ptyTarget = resolve(socketsDir, PTY_SOCK_NAME);
|
|
258
|
+
}
|
|
259
|
+
if (!useTcp) {
|
|
260
|
+
await waitForPtyReady(ptyTarget);
|
|
261
|
+
logger.info('PTY readiness check passed');
|
|
262
|
+
}
|
|
229
263
|
initSpinner.succeed(chalk.dim('PTY session ready'));
|
|
230
264
|
process.stderr.write('\n');
|
|
231
265
|
// Attach terminal via Node.js PTY proxy
|
|
@@ -234,6 +268,7 @@ export async function runPtySession(options) {
|
|
|
234
268
|
containerId,
|
|
235
269
|
signal: shutdownController.signal,
|
|
236
270
|
});
|
|
271
|
+
logger.info(`PTY attach returned with exit code ${exitCode}`);
|
|
237
272
|
// PTY disconnected -- restore terminal and show shutdown progress
|
|
238
273
|
restoreTerminal();
|
|
239
274
|
process.stderr.write('\n');
|
|
@@ -253,7 +288,8 @@ export async function runPtySession(options) {
|
|
|
253
288
|
}
|
|
254
289
|
restoreTerminal();
|
|
255
290
|
process.off('exit', restoreTerminal);
|
|
256
|
-
process.off('SIGTERM',
|
|
291
|
+
process.off('SIGTERM', handleShutdownSignal);
|
|
292
|
+
process.off('SIGHUP', handleShutdownSignal);
|
|
257
293
|
// Stop escalation watcher
|
|
258
294
|
escalationFileWatcher?.stop();
|
|
259
295
|
// Delete registration file
|
|
@@ -298,8 +334,43 @@ function connectToTarget(target) {
|
|
|
298
334
|
/**
|
|
299
335
|
* Attaches the user's terminal to the container PTY via a Node.js socket.
|
|
300
336
|
* Returns a promise that resolves with 0 on normal close, 1 on error.
|
|
337
|
+
*
|
|
338
|
+
* For TCP targets (macOS), retries the connection with polling since
|
|
339
|
+
* the container's socat may not be listening yet when this is called.
|
|
340
|
+
* The socat inside the container does NOT use `fork`, so only one
|
|
341
|
+
* connection is accepted — no separate readiness probe is used.
|
|
301
342
|
*/
|
|
302
|
-
function attachPty(options) {
|
|
343
|
+
async function attachPty(options) {
|
|
344
|
+
const isTcp = typeof options.target !== 'string';
|
|
345
|
+
if (isTcp) {
|
|
346
|
+
// TCP: poll until the connection succeeds and stays open, then attach.
|
|
347
|
+
const deadline = Date.now() + PTY_READINESS_TIMEOUT_MS;
|
|
348
|
+
while (Date.now() < deadline) {
|
|
349
|
+
const code = await attachPtyOnce(options);
|
|
350
|
+
// code 0 with very short duration means the connection was closed immediately
|
|
351
|
+
// (socat not ready or backend refused). Retry unless signal aborted.
|
|
352
|
+
if (options.signal?.aborted)
|
|
353
|
+
return 0;
|
|
354
|
+
// If we got a real session (not an instant close), return the exit code.
|
|
355
|
+
// We detect "instant close" by checking if the connection lasted meaningfully.
|
|
356
|
+
// attachPtyOnce sets a flag when data was received from the remote.
|
|
357
|
+
if (code !== -1)
|
|
358
|
+
return code;
|
|
359
|
+
logger.info('PTY TCP connection closed immediately, retrying...');
|
|
360
|
+
await new Promise((r) => setTimeout(r, PTY_READINESS_POLL_MS));
|
|
361
|
+
}
|
|
362
|
+
throw new Error(`PTY TCP connection did not stabilize within ${PTY_READINESS_TIMEOUT_MS / 1000}s`);
|
|
363
|
+
}
|
|
364
|
+
// UDS (Linux): readiness was already verified, so -1 (no data before close)
|
|
365
|
+
// is treated as a normal close — the container exited before sending output.
|
|
366
|
+
const code = await attachPtyOnce(options);
|
|
367
|
+
return code === -1 ? 0 : code;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Single attempt to attach to the PTY. Returns -1 if the connection
|
|
371
|
+
* was closed before any data was received (signals retry for TCP).
|
|
372
|
+
*/
|
|
373
|
+
function attachPtyOnce(options) {
|
|
303
374
|
const conn = connectToTarget(options.target);
|
|
304
375
|
const { stdin, stdout } = process;
|
|
305
376
|
return new Promise((resolvePromise) => {
|
|
@@ -311,14 +382,11 @@ function attachPty(options) {
|
|
|
311
382
|
resolvePromise(code);
|
|
312
383
|
};
|
|
313
384
|
conn.once('connect', () => {
|
|
314
|
-
//
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
// SIGWINCH: forward terminal resize to container PTY.
|
|
320
|
-
// verifyAbort cancels the background verify loop on first user resize
|
|
321
|
-
// so it doesn't fight with the new size.
|
|
385
|
+
// Defer raw mode, stdin forwarding, and resize handling until the first
|
|
386
|
+
// data arrives from the remote. For TCP retries, an instant close (no
|
|
387
|
+
// data) returns -1 without touching the terminal, so the user is never
|
|
388
|
+
// left stuck in raw mode between retry attempts.
|
|
389
|
+
let receivedData = false;
|
|
322
390
|
const verifyAbort = new AbortController();
|
|
323
391
|
let isFirstResize = true;
|
|
324
392
|
const onResize = () => {
|
|
@@ -338,15 +406,6 @@ function attachPty(options) {
|
|
|
338
406
|
});
|
|
339
407
|
}
|
|
340
408
|
};
|
|
341
|
-
stdout.on('resize', onResize);
|
|
342
|
-
// Send initial size
|
|
343
|
-
onResize();
|
|
344
|
-
// Background verify+retry to ensure the initial resize took effect.
|
|
345
|
-
// Fire-and-forget -- does not block the PTY proxy.
|
|
346
|
-
// Canceled via verifyAbort when the user resizes the terminal.
|
|
347
|
-
if (stdout.columns && stdout.rows) {
|
|
348
|
-
void verifyInitialPtySize(options.containerId, stdout.columns, stdout.rows, verifyAbort.signal);
|
|
349
|
-
}
|
|
350
409
|
// Host -> Container
|
|
351
410
|
// Ctrl-\ (0x1c) is intercepted as an emergency exit since raw mode
|
|
352
411
|
// disables normal signal generation for SIGQUIT.
|
|
@@ -360,16 +419,38 @@ function attachPty(options) {
|
|
|
360
419
|
}
|
|
361
420
|
conn.write(data);
|
|
362
421
|
};
|
|
363
|
-
|
|
364
|
-
//
|
|
422
|
+
// Container -> Host (untrusted output, displayed directly).
|
|
423
|
+
// Piped immediately so no data is lost; raw mode and stdin forwarding
|
|
424
|
+
// are deferred until we confirm the connection is real (first data).
|
|
365
425
|
conn.pipe(stdout);
|
|
426
|
+
conn.once('data', () => {
|
|
427
|
+
receivedData = true;
|
|
428
|
+
// Now that the connection is confirmed, enter raw mode and start
|
|
429
|
+
// forwarding user input to the container.
|
|
430
|
+
if (stdin.isTTY) {
|
|
431
|
+
stdin.setRawMode(true);
|
|
432
|
+
}
|
|
433
|
+
stdin.resume();
|
|
434
|
+
stdin.on('data', onData);
|
|
435
|
+
// Start resize forwarding and send initial size
|
|
436
|
+
stdout.on('resize', onResize);
|
|
437
|
+
onResize();
|
|
438
|
+
// Background verify+retry to ensure the initial resize took effect.
|
|
439
|
+
// Fire-and-forget -- does not block the PTY proxy.
|
|
440
|
+
// Canceled via verifyAbort when the user resizes the terminal.
|
|
441
|
+
if (stdout.columns && stdout.rows) {
|
|
442
|
+
void verifyInitialPtySize(options.containerId, stdout.columns, stdout.rows, verifyAbort.signal);
|
|
443
|
+
}
|
|
444
|
+
});
|
|
366
445
|
// Use function declarations (hoisted) so cleanup and onAbort can
|
|
367
446
|
// reference each other without temporal dead zone issues.
|
|
368
447
|
function cleanup() {
|
|
369
448
|
stdout.removeListener('resize', onResize);
|
|
370
449
|
stdin.removeListener('data', onData);
|
|
371
450
|
conn.unpipe(stdout);
|
|
372
|
-
|
|
451
|
+
if (receivedData) {
|
|
452
|
+
stdin.pause();
|
|
453
|
+
}
|
|
373
454
|
verifyAbort.abort();
|
|
374
455
|
options.signal?.removeEventListener('abort', onAbort);
|
|
375
456
|
}
|
|
@@ -385,15 +466,15 @@ function attachPty(options) {
|
|
|
385
466
|
options.signal?.addEventListener('abort', onAbort, { once: true });
|
|
386
467
|
conn.once('close', () => {
|
|
387
468
|
cleanup();
|
|
388
|
-
settle(0);
|
|
469
|
+
settle(receivedData ? 0 : -1);
|
|
389
470
|
});
|
|
390
471
|
conn.once('error', () => {
|
|
391
472
|
cleanup();
|
|
392
|
-
settle(1);
|
|
473
|
+
settle(receivedData ? 1 : -1);
|
|
393
474
|
});
|
|
394
475
|
});
|
|
395
476
|
conn.once('error', () => {
|
|
396
|
-
settle(1);
|
|
477
|
+
settle(-1); // connection failed, signal retry for TCP
|
|
397
478
|
});
|
|
398
479
|
});
|
|
399
480
|
}
|
|
@@ -474,7 +555,8 @@ async function waitForPtyReady(target) {
|
|
|
474
555
|
throw new Error(`PTY socket did not become ready within ${PTY_READINESS_TIMEOUT_MS / 1000}s`);
|
|
475
556
|
}
|
|
476
557
|
/**
|
|
477
|
-
* Tries to connect to a target. Returns true if the connection succeeds.
|
|
558
|
+
* Tries to connect to a UDS target. Returns true if the connection succeeds.
|
|
559
|
+
* Used only for Linux readiness polling (macOS TCP skips the readiness probe).
|
|
478
560
|
*/
|
|
479
561
|
function tryConnect(target) {
|
|
480
562
|
return new Promise((resolve) => {
|
|
@@ -494,6 +576,31 @@ function tryConnect(target) {
|
|
|
494
576
|
});
|
|
495
577
|
});
|
|
496
578
|
}
|
|
579
|
+
// --- Port allocation ---
|
|
580
|
+
/**
|
|
581
|
+
* Finds a free TCP port on localhost by binding to port 0 and immediately
|
|
582
|
+
* closing the server. Used on macOS to allocate the PTY host port dynamically
|
|
583
|
+
* so multiple PTY sessions can run concurrently.
|
|
584
|
+
*
|
|
585
|
+
* Note: inherent TOCTOU window between discovering the port and Docker
|
|
586
|
+
* binding it. In practice this is extremely unlikely for ephemeral ports.
|
|
587
|
+
*/
|
|
588
|
+
function findFreePort() {
|
|
589
|
+
return new Promise((resolve, reject) => {
|
|
590
|
+
const srv = createServer();
|
|
591
|
+
srv.listen(0, '127.0.0.1', () => {
|
|
592
|
+
const addr = srv.address();
|
|
593
|
+
if (!addr || typeof addr === 'string') {
|
|
594
|
+
srv.close();
|
|
595
|
+
reject(new Error('Failed to get ephemeral port'));
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
const { port } = addr;
|
|
599
|
+
srv.close(() => resolve(port));
|
|
600
|
+
});
|
|
601
|
+
srv.on('error', reject);
|
|
602
|
+
});
|
|
603
|
+
}
|
|
497
604
|
// --- Registration ---
|
|
498
605
|
/**
|
|
499
606
|
* Writes a PTY session registration file to the registry directory.
|
|
@@ -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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"}
|
|
@@ -12,6 +12,8 @@ export interface EscalationWatcherEvents {
|
|
|
12
12
|
onEscalation: (request: EscalationRequest) => void;
|
|
13
13
|
/** A pending escalation expired (proxy timed out and cleaned up files). */
|
|
14
14
|
onEscalationExpired: (escalationId: string) => void;
|
|
15
|
+
/** A pending escalation was resolved (approved or denied). */
|
|
16
|
+
onEscalationResolved?: (escalationId: string, decision: 'approved' | 'denied') => void;
|
|
15
17
|
}
|
|
16
18
|
export interface EscalationWatcher {
|
|
17
19
|
/** Start polling the escalation directory. */
|
|
@@ -87,6 +87,9 @@ export function createEscalationWatcher(escalationDir, events, options) {
|
|
|
87
87
|
// Stale detection: verify the request file still exists after writing the response.
|
|
88
88
|
// If the proxy already timed out and cleaned up, the response was too late.
|
|
89
89
|
const requestStillExists = existsSync(resolve(escalationDir, `request-${escalationId}.json`));
|
|
90
|
+
if (requestStillExists) {
|
|
91
|
+
events.onEscalationResolved?.(escalationId, decision);
|
|
92
|
+
}
|
|
90
93
|
return requestStillExists;
|
|
91
94
|
},
|
|
92
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escalation-watcher.js","sourceRoot":"","sources":["../../src/escalation/escalation-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,wBAAwB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"escalation-watcher.js","sourceRoot":"","sources":["../../src/escalation/escalation-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { readdirSync, readFileSync, unlinkSync, existsSync } from 'node:fs';
|
|
13
13
|
import { resolve } from 'node:path';
|
|
14
|
+
import { isPidAlive } from './listener-lock.js';
|
|
14
15
|
/**
|
|
15
16
|
* Reads all valid, non-stale session registrations from the registry directory.
|
|
16
17
|
* Removes stale registrations (PID no longer alive) as a side effect.
|
|
@@ -70,20 +71,6 @@ function isValidRegistration(value) {
|
|
|
70
71
|
typeof obj.startedAt === 'string' &&
|
|
71
72
|
typeof obj.pid === 'number');
|
|
72
73
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Checks if a PID is alive. Uses process.kill(pid, 0) which
|
|
75
|
-
* returns true if the process exists and the caller has permission
|
|
76
|
-
* to signal it (same user).
|
|
77
|
-
*/
|
|
78
|
-
function isPidAlive(pid) {
|
|
79
|
-
try {
|
|
80
|
-
process.kill(pid, 0);
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
74
|
/**
|
|
88
75
|
* Removes a stale registration file. Best-effort -- ignores errors.
|
|
89
76
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../../src/escalation/session-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../../src/escalation/session-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,aAAa,GAA6B,EAAE,CAAC;IAEnD,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY;YAAE,SAAS;QAE5B,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QAE9C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CACL,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;QACrC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;QACjC,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;IAC5D,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,24 +6,52 @@ import chalk from 'chalk';
|
|
|
6
6
|
import ora from 'ora';
|
|
7
7
|
import { loadConfig, loadGeneratedPolicy, checkConstitutionFreshness, getPackageGeneratedDir } from './config/index.js';
|
|
8
8
|
import { getUserConfigPath } from './config/paths.js';
|
|
9
|
+
import { checkHelp } from './cli-help.js';
|
|
9
10
|
import * as logger from './logger.js';
|
|
10
11
|
import { CliTransport } from './session/cli-transport.js';
|
|
11
12
|
import { createSession } from './session/index.js';
|
|
12
13
|
import { resolveSessionMode } from './session/preflight.js';
|
|
13
14
|
import { validateWorkspacePath } from './session/workspace-validation.js';
|
|
15
|
+
const startSpec = {
|
|
16
|
+
name: 'ironcurtain start',
|
|
17
|
+
description: 'Run the agent (interactive or single-shot)',
|
|
18
|
+
usage: ['ironcurtain start [options] [task]'],
|
|
19
|
+
options: [
|
|
20
|
+
{ flag: 'resume', short: 'r', description: 'Resume a previous session', placeholder: '<id>' },
|
|
21
|
+
{ flag: 'agent', short: 'a', description: 'Agent mode: builtin or claude-code (Docker)', placeholder: '<name>' },
|
|
22
|
+
{ flag: 'workspace', short: 'w', description: 'Use an existing directory as the workspace', placeholder: '<path>' },
|
|
23
|
+
{ flag: 'persona', short: 'p', description: 'Use a named persona profile', placeholder: '<name>' },
|
|
24
|
+
{ flag: 'pty', description: 'Attach terminal directly to agent PTY (Docker mode only)' },
|
|
25
|
+
{ flag: 'list-agents', description: 'List registered agent adapters' },
|
|
26
|
+
],
|
|
27
|
+
examples: [
|
|
28
|
+
'ironcurtain start # Interactive session',
|
|
29
|
+
'ironcurtain start "Summarize files in ." # Single-shot task',
|
|
30
|
+
'ironcurtain start --resume <session-id> # Resume a session',
|
|
31
|
+
'ironcurtain start -w ./my-project "Fix bugs" # Work in existing directory',
|
|
32
|
+
'ironcurtain start --agent claude-code "task" # Docker: Claude Code',
|
|
33
|
+
'ironcurtain start -p exec-assistant "Check mail" # Use a persona',
|
|
34
|
+
'ironcurtain start --pty # PTY mode: interactive Docker terminal',
|
|
35
|
+
'ironcurtain start --list-agents # List available agents',
|
|
36
|
+
],
|
|
37
|
+
};
|
|
14
38
|
export async function main(args) {
|
|
15
39
|
const { values, positionals } = parseArgs({
|
|
16
40
|
args: args ?? process.argv.slice(2),
|
|
17
41
|
options: {
|
|
42
|
+
help: { type: 'boolean', short: 'h' },
|
|
18
43
|
resume: { type: 'string', short: 'r' },
|
|
19
44
|
agent: { type: 'string', short: 'a' },
|
|
20
45
|
workspace: { type: 'string', short: 'w' },
|
|
46
|
+
persona: { type: 'string', short: 'p' },
|
|
21
47
|
pty: { type: 'boolean' },
|
|
22
48
|
'list-agents': { type: 'boolean' },
|
|
23
49
|
},
|
|
24
50
|
allowPositionals: true,
|
|
25
51
|
strict: false,
|
|
26
52
|
});
|
|
53
|
+
if (checkHelp(values, startSpec))
|
|
54
|
+
return;
|
|
27
55
|
// Handle --list-agents: print registered agents and exit
|
|
28
56
|
if (values['list-agents']) {
|
|
29
57
|
const { registerBuiltinAdapters, listAgents } = await import('./docker/agent-registry.js');
|
|
@@ -43,15 +71,19 @@ export async function main(args) {
|
|
|
43
71
|
const resumeSessionId = values.resume;
|
|
44
72
|
const agentName = values.agent;
|
|
45
73
|
const rawWorkspace = values.workspace;
|
|
74
|
+
const personaName = values.persona;
|
|
46
75
|
const config = loadConfig();
|
|
47
|
-
//
|
|
76
|
+
// When resuming, CLI --workspace and --persona are ignored -- the original
|
|
77
|
+
// values are restored from persisted session metadata.
|
|
48
78
|
if (resumeSessionId && rawWorkspace) {
|
|
49
|
-
process.stderr.write(chalk.
|
|
50
|
-
|
|
79
|
+
process.stderr.write(chalk.yellow('Note: --workspace is ignored when resuming; original workspace is restored.\n'));
|
|
80
|
+
}
|
|
81
|
+
if (resumeSessionId && personaName) {
|
|
82
|
+
process.stderr.write(chalk.yellow('Note: --persona is ignored when resuming; original persona is restored.\n'));
|
|
51
83
|
}
|
|
52
84
|
// Validate --workspace before anything else that uses config
|
|
53
85
|
let workspacePath;
|
|
54
|
-
if (rawWorkspace) {
|
|
86
|
+
if (rawWorkspace && !resumeSessionId) {
|
|
55
87
|
try {
|
|
56
88
|
workspacePath = validateWorkspacePath(rawWorkspace, config.protectedPaths);
|
|
57
89
|
}
|
|
@@ -71,7 +103,11 @@ export async function main(args) {
|
|
|
71
103
|
}
|
|
72
104
|
const mode = preflight.mode;
|
|
73
105
|
// Check constitution freshness once here, before any proxy processes are spawned.
|
|
74
|
-
const { compiledPolicy } = loadGeneratedPolicy(
|
|
106
|
+
const { compiledPolicy } = loadGeneratedPolicy({
|
|
107
|
+
policyDir: config.generatedDir,
|
|
108
|
+
toolAnnotationsDir: config.toolAnnotationsDir ?? config.generatedDir,
|
|
109
|
+
fallbackDir: getPackageGeneratedDir(),
|
|
110
|
+
});
|
|
75
111
|
checkConstitutionFreshness(compiledPolicy, config.constitutionPath);
|
|
76
112
|
// PTY mode: attach terminal directly to Claude Code in a Docker container
|
|
77
113
|
if (values.pty) {
|
|
@@ -100,7 +136,9 @@ export async function main(args) {
|
|
|
100
136
|
config,
|
|
101
137
|
mode,
|
|
102
138
|
resumeSessionId,
|
|
139
|
+
// workspacePath is already undefined when resuming (validation skipped above)
|
|
103
140
|
workspacePath,
|
|
141
|
+
persona: resumeSessionId ? undefined : personaName,
|
|
104
142
|
onEscalation: transport.createEscalationHandler(),
|
|
105
143
|
onEscalationExpired: transport.createEscalationExpiredHandler(),
|
|
106
144
|
onDiagnostic: transport.createDiagnosticHandler(),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAe;IACxC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;YACtC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;YACzC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACxB,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACnC;QACD,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1B,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QAC3F,MAAM,uBAAuB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAClE,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,MAAM,CAAC,MAA4B,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,KAA2B,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,CAAC,SAA+B,CAAC;IAC5D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|