@provos/ironcurtain 0.10.0 → 0.12.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 +68 -14
- package/dist/auth/oauth-provider.js +1 -4
- package/dist/auth/oauth-provider.js.map +1 -1
- package/dist/cli-help.d.ts +12 -0
- package/dist/cli-help.js +21 -0
- package/dist/cli-help.js.map +1 -1
- package/dist/cli.js +46 -6
- package/dist/cli.js.map +1 -1
- package/dist/config/agent-model-guard.d.ts +14 -0
- package/dist/config/agent-model-guard.js +24 -0
- package/dist/config/agent-model-guard.js.map +1 -0
- package/dist/config/config-command.js +277 -7
- package/dist/config/config-command.js.map +1 -1
- package/dist/config/first-start.js +62 -7
- package/dist/config/first-start.js.map +1 -1
- package/dist/config/generated/compiled-policy.json +528 -161
- package/dist/config/generated/test-scenarios.json +4810 -170
- package/dist/config/generated/tool-annotations.json +34 -47
- package/dist/config/index.d.ts +58 -0
- package/dist/config/index.js +97 -15
- package/dist/config/index.js.map +1 -1
- package/dist/config/mcp-servers.json +2 -2
- package/dist/config/model-provider.d.ts +9 -0
- package/dist/config/model-provider.js +13 -0
- package/dist/config/model-provider.js.map +1 -1
- package/dist/config/paths.d.ts +217 -0
- package/dist/config/paths.js +363 -14
- package/dist/config/paths.js.map +1 -1
- package/dist/config/types.d.ts +7 -1
- package/dist/config/user-config.d.ts +101 -6
- package/dist/config/user-config.js +145 -31
- package/dist/config/user-config.js.map +1 -1
- package/dist/config/validate-policy-dir.d.ts +10 -0
- package/dist/config/validate-policy-dir.js +59 -0
- package/dist/config/validate-policy-dir.js.map +1 -0
- package/dist/cron/job-commands.js +22 -2
- package/dist/cron/job-commands.js.map +1 -1
- package/dist/cron/types.d.ts +16 -2
- package/dist/cron/types.js +1 -3
- package/dist/cron/types.js.map +1 -1
- package/dist/daemon/daemon-command.js +30 -7
- package/dist/daemon/daemon-command.js.map +1 -1
- package/dist/daemon/ironcurtain-daemon.d.ts +62 -1
- package/dist/daemon/ironcurtain-daemon.js +231 -8
- package/dist/daemon/ironcurtain-daemon.js.map +1 -1
- package/dist/daemon-client/daemon-client.d.ts +123 -0
- package/dist/daemon-client/daemon-client.js +324 -0
- package/dist/daemon-client/daemon-client.js.map +1 -0
- package/dist/docker/adapters/claude-code.js +194 -20
- package/dist/docker/adapters/claude-code.js.map +1 -1
- package/dist/docker/adapters/codex.d.ts +9 -0
- package/dist/docker/adapters/codex.js +297 -0
- package/dist/docker/adapters/codex.js.map +1 -0
- package/dist/docker/adapters/goose.d.ts +12 -11
- package/dist/docker/adapters/goose.js +80 -27
- package/dist/docker/adapters/goose.js.map +1 -1
- package/dist/docker/agent-adapter.d.ts +183 -5
- package/dist/docker/agent-adapter.js +16 -0
- package/dist/docker/agent-adapter.js.map +1 -1
- package/dist/docker/agent-registry.js +5 -0
- package/dist/docker/agent-registry.js.map +1 -1
- package/dist/docker/apple-container-manager.d.ts +49 -0
- package/dist/docker/apple-container-manager.js +464 -0
- package/dist/docker/apple-container-manager.js.map +1 -0
- package/dist/docker/code-mode-proxy.d.ts +38 -0
- package/dist/docker/code-mode-proxy.js +6 -1
- package/dist/docker/code-mode-proxy.js.map +1 -1
- package/dist/docker/container-lifecycle.d.ts +2 -2
- package/dist/docker/container-lifecycle.js.map +1 -1
- package/dist/docker/container-runtime.d.ts +29 -0
- package/dist/docker/container-runtime.js +76 -0
- package/dist/docker/container-runtime.js.map +1 -0
- package/dist/docker/docker-agent-session.d.ts +113 -62
- package/dist/docker/docker-agent-session.js +271 -294
- package/dist/docker/docker-agent-session.js.map +1 -1
- package/dist/docker/docker-infrastructure.d.ts +428 -26
- package/dist/docker/docker-infrastructure.js +1005 -70
- package/dist/docker/docker-infrastructure.js.map +1 -1
- package/dist/docker/docker-manager.d.ts +58 -3
- package/dist/docker/docker-manager.js +378 -33
- package/dist/docker/docker-manager.js.map +1 -1
- package/dist/docker/docker-probe.d.ts +45 -0
- package/dist/docker/docker-probe.js +86 -0
- package/dist/docker/docker-probe.js.map +1 -0
- package/dist/docker/docker-progress-sink.d.ts +43 -0
- package/dist/docker/docker-progress-sink.js +299 -0
- package/dist/docker/docker-progress-sink.js.map +1 -0
- package/dist/docker/mitm-proxy.d.ts +135 -1
- package/dist/docker/mitm-proxy.js +611 -25
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/network-topology.d.ts +81 -0
- package/dist/docker/network-topology.js +160 -0
- package/dist/docker/network-topology.js.map +1 -0
- package/dist/docker/oauth-credentials.d.ts +59 -3
- package/dist/docker/oauth-credentials.js +181 -14
- package/dist/docker/oauth-credentials.js.map +1 -1
- package/dist/docker/oauth-token-manager.js +2 -2
- package/dist/docker/oauth-token-manager.js.map +1 -1
- package/dist/docker/orientation.d.ts +1 -1
- package/dist/docker/package-types.d.ts +1 -1
- package/dist/docker/provider-config.d.ts +78 -3
- package/dist/docker/provider-config.js +295 -31
- package/dist/docker/provider-config.js.map +1 -1
- package/dist/docker/provision-lock.d.ts +46 -0
- package/dist/docker/provision-lock.js +152 -0
- package/dist/docker/provision-lock.js.map +1 -0
- package/dist/docker/proxy-tools.d.ts +0 -2
- package/dist/docker/proxy-tools.js +2 -7
- package/dist/docker/proxy-tools.js.map +1 -1
- package/dist/docker/pty-session.d.ts +64 -1
- package/dist/docker/pty-session.js +306 -104
- package/dist/docker/pty-session.js.map +1 -1
- package/dist/docker/pty-types.d.ts +0 -2
- package/dist/docker/pty-types.js +0 -2
- package/dist/docker/pty-types.js.map +1 -1
- package/dist/docker/registry-proxy.d.ts +46 -0
- package/dist/docker/registry-proxy.js +255 -1
- package/dist/docker/registry-proxy.js.map +1 -1
- package/dist/docker/resource-limits.d.ts +134 -0
- package/dist/docker/resource-limits.js +203 -0
- package/dist/docker/resource-limits.js.map +1 -0
- package/dist/docker/spawn-with-idle-timeout.d.ts +39 -0
- package/dist/docker/spawn-with-idle-timeout.js +152 -0
- package/dist/docker/spawn-with-idle-timeout.js.map +1 -0
- package/dist/docker/sse-extractor.d.ts +51 -0
- package/dist/docker/sse-extractor.js +303 -0
- package/dist/docker/sse-extractor.js.map +1 -0
- package/dist/docker/token-stream-bus.d.ts +83 -0
- package/dist/docker/token-stream-bus.js +98 -0
- package/dist/docker/token-stream-bus.js.map +1 -0
- package/dist/docker/token-stream-types.d.ts +71 -0
- package/dist/docker/token-stream-types.js +8 -0
- package/dist/docker/token-stream-types.js.map +1 -0
- package/dist/docker/trajectory-capture.d.ts +79 -0
- package/dist/docker/trajectory-capture.js +521 -0
- package/dist/docker/trajectory-capture.js.map +1 -0
- package/dist/docker/trajectory-reassembler.d.ts +286 -0
- package/dist/docker/trajectory-reassembler.js +990 -0
- package/dist/docker/trajectory-reassembler.js.map +1 -0
- package/dist/docker/trajectory-tap.d.ts +100 -0
- package/dist/docker/trajectory-tap.js +410 -0
- package/dist/docker/trajectory-tap.js.map +1 -0
- package/dist/docker/trajectory-types.d.ts +187 -0
- package/dist/docker/trajectory-types.js +43 -0
- package/dist/docker/trajectory-types.js.map +1 -0
- package/dist/docker/types.d.ts +105 -12
- package/dist/doctor/checks.d.ts +171 -0
- package/dist/doctor/checks.js +598 -0
- package/dist/doctor/checks.js.map +1 -0
- package/dist/doctor/doctor-command.d.ts +29 -0
- package/dist/doctor/doctor-command.js +190 -0
- package/dist/doctor/doctor-command.js.map +1 -0
- package/dist/doctor/mcp-liveness.d.ts +28 -0
- package/dist/doctor/mcp-liveness.js +92 -0
- package/dist/doctor/mcp-liveness.js.map +1 -0
- package/dist/doctor/oauth-checks.d.ts +23 -0
- package/dist/doctor/oauth-checks.js +157 -0
- package/dist/doctor/oauth-checks.js.map +1 -0
- package/dist/doctor/output.d.ts +26 -0
- package/dist/doctor/output.js +82 -0
- package/dist/doctor/output.js.map +1 -0
- package/dist/escalation/listener-command.js +0 -3
- package/dist/escalation/listener-command.js.map +1 -1
- package/dist/event-bus/typed-event-bus.d.ts +26 -0
- package/dist/event-bus/typed-event-bus.js +35 -0
- package/dist/event-bus/typed-event-bus.js.map +1 -0
- package/dist/index.js +54 -21
- package/dist/index.js.map +1 -1
- package/dist/logger.js +31 -2
- package/dist/logger.js.map +1 -1
- package/dist/memory/auto-save.d.ts +18 -4
- package/dist/memory/auto-save.js +46 -6
- package/dist/memory/auto-save.js.map +1 -1
- package/dist/memory/memory-policy.d.ts +41 -0
- package/dist/memory/memory-policy.js +36 -0
- package/dist/memory/memory-policy.js.map +1 -0
- package/dist/mux/mux-app.d.ts +2 -0
- package/dist/mux/mux-app.js +1 -0
- package/dist/mux/mux-app.js.map +1 -1
- package/dist/mux/mux-command.d.ts +10 -1
- package/dist/mux/mux-command.js +74 -40
- package/dist/mux/mux-command.js.map +1 -1
- package/dist/mux/mux-renderer.js +2 -12
- package/dist/mux/mux-renderer.js.map +1 -1
- package/dist/mux/pty-bridge.d.ts +2 -0
- package/dist/mux/pty-bridge.js +3 -0
- package/dist/mux/pty-bridge.js.map +1 -1
- package/dist/mux/session-scanner.js +1 -2
- package/dist/mux/session-scanner.js.map +1 -1
- package/dist/{pipeline → observability}/llm-logger.d.ts +8 -3
- package/dist/{pipeline → observability}/llm-logger.js +8 -3
- package/dist/observability/llm-logger.js.map +1 -0
- package/dist/observe/observe-command.d.ts +12 -0
- package/dist/observe/observe-command.js +285 -0
- package/dist/observe/observe-command.js.map +1 -0
- package/dist/observe/observe-renderer.d.ts +24 -0
- package/dist/observe/observe-renderer.js +87 -0
- package/dist/observe/observe-renderer.js.map +1 -0
- package/dist/observe/observe-tui-rain.d.ts +42 -0
- package/dist/observe/observe-tui-rain.js +531 -0
- package/dist/observe/observe-tui-rain.js.map +1 -0
- package/dist/observe/observe-tui-text-panel.d.ts +46 -0
- package/dist/observe/observe-tui-text-panel.js +525 -0
- package/dist/observe/observe-tui-text-panel.js.map +1 -0
- package/dist/observe/observe-tui-types.d.ts +270 -0
- package/dist/observe/observe-tui-types.js +200 -0
- package/dist/observe/observe-tui-types.js.map +1 -0
- package/dist/observe/observe-tui-word-scorer.d.ts +143 -0
- package/dist/observe/observe-tui-word-scorer.js +572 -0
- package/dist/observe/observe-tui-word-scorer.js.map +1 -0
- package/dist/observe/observe-tui.d.ts +59 -0
- package/dist/observe/observe-tui.js +592 -0
- package/dist/observe/observe-tui.js.map +1 -0
- package/dist/persona/broad-policy-validator.d.ts +95 -0
- package/dist/persona/broad-policy-validator.js +171 -0
- package/dist/persona/broad-policy-validator.js.map +1 -0
- package/dist/persona/compile-persona-policy.d.ts +54 -2
- package/dist/persona/compile-persona-policy.js +29 -4
- package/dist/persona/compile-persona-policy.js.map +1 -1
- package/dist/persona/event-bus-progress-reporter.d.ts +57 -0
- package/dist/persona/event-bus-progress-reporter.js +66 -0
- package/dist/persona/event-bus-progress-reporter.js.map +1 -0
- package/dist/persona/memory-gate.d.ts +19 -0
- package/dist/persona/memory-gate.js +33 -0
- package/dist/persona/memory-gate.js.map +1 -0
- package/dist/persona/persona-command.js +77 -72
- package/dist/persona/persona-command.js.map +1 -1
- package/dist/persona/persona-compile-orchestrator.d.ts +101 -0
- package/dist/persona/persona-compile-orchestrator.js +504 -0
- package/dist/persona/persona-compile-orchestrator.js.map +1 -0
- package/dist/persona/persona-service.d.ts +137 -0
- package/dist/persona/persona-service.js +263 -0
- package/dist/persona/persona-service.js.map +1 -0
- package/dist/persona/policy-mutation-audit.d.ts +109 -0
- package/dist/persona/policy-mutation-audit.js +179 -0
- package/dist/persona/policy-mutation-audit.js.map +1 -0
- package/dist/persona/resolve.d.ts +22 -0
- package/dist/persona/resolve.js +45 -2
- package/dist/persona/resolve.js.map +1 -1
- package/dist/persona/rule-delta.d.ts +30 -0
- package/dist/persona/rule-delta.js +82 -0
- package/dist/persona/rule-delta.js.map +1 -0
- package/dist/persona/types.d.ts +28 -0
- package/dist/pipeline/annotate.js +10 -2
- package/dist/pipeline/annotate.js.map +1 -1
- package/dist/pipeline/compile.js +14 -2
- package/dist/pipeline/compile.js.map +1 -1
- package/dist/pipeline/constitution-compiler.d.ts +25 -14
- package/dist/pipeline/constitution-compiler.js +107 -38
- package/dist/pipeline/constitution-compiler.js.map +1 -1
- package/dist/pipeline/dynamic-list-types.d.ts +3 -6
- package/dist/pipeline/dynamic-list-types.js +3 -16
- package/dist/pipeline/dynamic-list-types.js.map +1 -1
- package/dist/pipeline/pipeline-runner.d.ts +63 -4
- package/dist/pipeline/pipeline-runner.js +242 -94
- package/dist/pipeline/pipeline-runner.js.map +1 -1
- package/dist/pipeline/pipeline-shared.d.ts +33 -4
- package/dist/pipeline/pipeline-shared.js +79 -19
- package/dist/pipeline/pipeline-shared.js.map +1 -1
- package/dist/pipeline/policy-verifier.js +16 -3
- package/dist/pipeline/policy-verifier.js.map +1 -1
- package/dist/pipeline/proxy-mcp-connections.js +17 -2
- package/dist/pipeline/proxy-mcp-connections.js.map +1 -1
- package/dist/pipeline/refresh-lists.js +3 -5
- package/dist/pipeline/refresh-lists.js.map +1 -1
- package/dist/pipeline/scenario-generator.d.ts +4 -8
- package/dist/pipeline/scenario-generator.js +13 -46
- package/dist/pipeline/scenario-generator.js.map +1 -1
- package/dist/sandbox/index.d.ts +29 -0
- package/dist/sandbox/index.js +351 -119
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/ironcurtain-protocol.d.ts +52 -0
- package/dist/sandbox/ironcurtain-protocol.js +185 -0
- package/dist/sandbox/ironcurtain-protocol.js.map +1 -0
- package/dist/session/agent-session.d.ts +6 -0
- package/dist/session/agent-session.js +16 -5
- package/dist/session/agent-session.js.map +1 -1
- package/dist/session/cli-transport.js +0 -6
- package/dist/session/cli-transport.js.map +1 -1
- package/dist/session/index.d.ts +35 -14
- package/dist/session/index.js +333 -130
- package/dist/session/index.js.map +1 -1
- package/dist/session/preflight.d.ts +21 -13
- package/dist/session/preflight.js +227 -88
- package/dist/session/preflight.js.map +1 -1
- package/dist/session/prompts.d.ts +2 -5
- package/dist/session/prompts.js.map +1 -1
- package/dist/session/session-manager.d.ts +61 -6
- package/dist/session/session-manager.js +72 -10
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/session-metadata.d.ts +21 -5
- package/dist/session/session-metadata.js +34 -12
- package/dist/session/session-metadata.js.map +1 -1
- package/dist/session/types.d.ts +320 -5
- package/dist/session/types.js +57 -1
- package/dist/session/types.js.map +1 -1
- package/dist/signal/bot-command.js +6 -1
- package/dist/signal/bot-command.js.map +1 -1
- package/dist/signal/setup-signal.js +13 -21
- package/dist/signal/setup-signal.js.map +1 -1
- package/dist/signal/signal-bot-daemon.d.ts +16 -1
- package/dist/signal/signal-bot-daemon.js +39 -27
- package/dist/signal/signal-bot-daemon.js.map +1 -1
- package/dist/signal/signal-container.d.ts +3 -3
- package/dist/signal/signal-container.js +9 -3
- package/dist/signal/signal-container.js.map +1 -1
- package/dist/skills/discovery.d.ts +77 -0
- package/dist/skills/discovery.js +206 -0
- package/dist/skills/discovery.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/staging.d.ts +28 -0
- package/dist/skills/staging.js +68 -0
- package/dist/skills/staging.js.map +1 -0
- package/dist/skills/types.d.ts +46 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/trusted-process/approval-whitelist.d.ts +0 -2
- package/dist/trusted-process/approval-whitelist.js +17 -17
- package/dist/trusted-process/approval-whitelist.js.map +1 -1
- package/dist/trusted-process/async-mutex.d.ts +32 -0
- package/dist/trusted-process/async-mutex.js +50 -0
- package/dist/trusted-process/async-mutex.js.map +1 -0
- package/dist/trusted-process/audit-log.d.ts +38 -1
- package/dist/trusted-process/audit-log.js +82 -13
- package/dist/trusted-process/audit-log.js.map +1 -1
- package/dist/trusted-process/call-circuit-breaker.d.ts +6 -0
- package/dist/trusted-process/call-circuit-breaker.js +23 -3
- package/dist/trusted-process/call-circuit-breaker.js.map +1 -1
- package/dist/trusted-process/container-command.d.ts +35 -0
- package/dist/trusted-process/container-command.js +49 -0
- package/dist/trusted-process/container-command.js.map +1 -0
- package/dist/trusted-process/control-server.d.ts +101 -0
- package/dist/trusted-process/control-server.js +282 -0
- package/dist/trusted-process/control-server.js.map +1 -0
- package/dist/trusted-process/domain-utils.d.ts +6 -6
- package/dist/trusted-process/domain-utils.js +7 -23
- package/dist/trusted-process/domain-utils.js.map +1 -1
- package/dist/trusted-process/error-prefixes.d.ts +16 -0
- package/dist/trusted-process/error-prefixes.js +17 -0
- package/dist/trusted-process/error-prefixes.js.map +1 -0
- package/dist/trusted-process/index.d.ts +40 -23
- package/dist/trusted-process/index.js +131 -225
- package/dist/trusted-process/index.js.map +1 -1
- package/dist/trusted-process/list-matcher.d.ts +17 -0
- package/dist/trusted-process/list-matcher.js +31 -0
- package/dist/trusted-process/list-matcher.js.map +1 -0
- package/dist/trusted-process/mcp-client-manager.d.ts +35 -6
- package/dist/trusted-process/mcp-client-manager.js +40 -45
- package/dist/trusted-process/mcp-client-manager.js.map +1 -1
- package/dist/trusted-process/mcp-proxy-server.d.ts +31 -120
- package/dist/trusted-process/mcp-proxy-server.js +201 -660
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/policy-engine.d.ts +16 -4
- package/dist/trusted-process/policy-engine.js +103 -47
- package/dist/trusted-process/policy-engine.js.map +1 -1
- package/dist/trusted-process/policy-roots.d.ts +6 -0
- package/dist/trusted-process/policy-roots.js +20 -0
- package/dist/trusted-process/policy-roots.js.map +1 -1
- package/dist/trusted-process/sandbox-integration.d.ts +12 -0
- package/dist/trusted-process/sandbox-integration.js +18 -0
- package/dist/trusted-process/sandbox-integration.js.map +1 -1
- package/dist/trusted-process/tcp-server-transport.d.ts +12 -1
- package/dist/trusted-process/tcp-server-transport.js +9 -1
- package/dist/trusted-process/tcp-server-transport.js.map +1 -1
- package/dist/trusted-process/tool-call-coordinator.d.ts +283 -0
- package/dist/trusted-process/tool-call-coordinator.js +592 -0
- package/dist/trusted-process/tool-call-coordinator.js.map +1 -0
- package/dist/trusted-process/tool-call-pipeline.d.ts +213 -0
- package/dist/trusted-process/tool-call-pipeline.js +832 -0
- package/dist/trusted-process/tool-call-pipeline.js.map +1 -0
- package/dist/trusted-process/tool-description-hints.d.ts +1 -1
- package/dist/types/argument-roles.d.ts +1 -1
- package/dist/types/argument-roles.js +14 -1
- package/dist/types/argument-roles.js.map +1 -1
- package/dist/types/audit.d.ts +9 -0
- package/dist/{session → types}/errors.d.ts +8 -2
- package/dist/{session → types}/errors.js +8 -2
- package/dist/types/errors.js.map +1 -0
- package/dist/types/reserved-servers.d.ts +11 -0
- package/dist/types/reserved-servers.js +12 -0
- package/dist/types/reserved-servers.js.map +1 -0
- package/dist/types/server-listing.d.ts +14 -0
- package/dist/types/server-listing.js +2 -0
- package/dist/types/server-listing.js.map +1 -0
- package/dist/types/slug.d.ts +2 -0
- package/dist/types/slug.js +2 -0
- package/dist/types/slug.js.map +1 -1
- package/dist/types/url-normalize.d.ts +16 -0
- package/dist/types/url-normalize.js +33 -0
- package/dist/types/url-normalize.js.map +1 -0
- package/dist/util/atomic-write.d.ts +31 -0
- package/dist/util/atomic-write.js +43 -0
- package/dist/util/atomic-write.js.map +1 -0
- package/dist/utils/error-message.d.ts +8 -0
- package/dist/utils/error-message.js +11 -0
- package/dist/utils/error-message.js.map +1 -0
- package/dist/utils/exec-error.d.ts +19 -0
- package/dist/utils/exec-error.js +16 -0
- package/dist/utils/exec-error.js.map +1 -0
- package/dist/utils/is-plain-object.d.ts +7 -0
- package/dist/utils/is-plain-object.js +12 -0
- package/dist/utils/is-plain-object.js.map +1 -0
- package/dist/utils/preflight-checks.d.ts +16 -0
- package/dist/utils/preflight-checks.js +178 -0
- package/dist/utils/preflight-checks.js.map +1 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.d.ts +7 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +725 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -0
- package/dist/web-ui/conn-registry.d.ts +14 -0
- package/dist/web-ui/conn-registry.js +25 -0
- package/dist/web-ui/conn-registry.js.map +1 -0
- package/dist/web-ui/dispatch/escalation-dispatch.d.ts +7 -0
- package/dist/web-ui/dispatch/escalation-dispatch.js +52 -0
- package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/job-dispatch.d.ts +8 -0
- package/dist/web-ui/dispatch/job-dispatch.js +83 -0
- package/dist/web-ui/dispatch/job-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/persona-dispatch.d.ts +50 -0
- package/dist/web-ui/dispatch/persona-dispatch.js +269 -0
- package/dist/web-ui/dispatch/persona-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/session-dispatch.d.ts +9 -0
- package/dist/web-ui/dispatch/session-dispatch.js +219 -0
- package/dist/web-ui/dispatch/session-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/token-stream-dispatch.d.ts +15 -0
- package/dist/web-ui/dispatch/token-stream-dispatch.js +55 -0
- package/dist/web-ui/dispatch/token-stream-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/types.d.ts +54 -0
- package/dist/web-ui/dispatch/types.js +72 -0
- package/dist/web-ui/dispatch/types.js.map +1 -0
- package/dist/web-ui/dispatch/workflow-dispatch.d.ts +103 -0
- package/dist/web-ui/dispatch/workflow-dispatch.js +1036 -0
- package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -0
- package/dist/web-ui/json-rpc-dispatch.d.ts +12 -0
- package/dist/web-ui/json-rpc-dispatch.js +34 -0
- package/dist/web-ui/json-rpc-dispatch.js.map +1 -0
- package/dist/web-ui/state-graph.d.ts +13 -0
- package/dist/web-ui/state-graph.js +82 -0
- package/dist/web-ui/state-graph.js.map +1 -0
- package/dist/web-ui/token-stream-bridge.d.ts +76 -0
- package/dist/web-ui/token-stream-bridge.js +265 -0
- package/dist/web-ui/token-stream-bridge.js.map +1 -0
- package/dist/web-ui/web-event-bus.d.ts +176 -0
- package/dist/web-ui/web-event-bus.js +19 -0
- package/dist/web-ui/web-event-bus.js.map +1 -0
- package/dist/web-ui/web-session-transport.d.ts +31 -0
- package/dist/web-ui/web-session-transport.js +109 -0
- package/dist/web-ui/web-session-transport.js.map +1 -0
- package/dist/web-ui/web-ui-server.d.ts +90 -0
- package/dist/web-ui/web-ui-server.js +477 -0
- package/dist/web-ui/web-ui-server.js.map +1 -0
- package/dist/web-ui/web-ui-types.d.ts +418 -0
- package/dist/web-ui/web-ui-types.js +32 -0
- package/dist/web-ui/web-ui-types.js.map +1 -0
- package/dist/web-ui/ws-utils.d.ts +5 -0
- package/dist/web-ui/ws-utils.js +12 -0
- package/dist/web-ui/ws-utils.js.map +1 -0
- package/dist/web-ui-static/assets/index-BD5U6ILh.css +1 -0
- package/dist/web-ui-static/assets/index-FMsHWEfK.js +79 -0
- package/dist/web-ui-static/assets/orbitron-latin-700-normal-4jsRXGGJ.woff2 +0 -0
- package/dist/web-ui-static/assets/orbitron-latin-700-normal-DmYOh-W9.woff +0 -0
- package/dist/web-ui-static/index.html +14 -0
- package/dist/workflow/artifacts.d.ts +59 -0
- package/dist/workflow/artifacts.js +188 -0
- package/dist/workflow/artifacts.js.map +1 -0
- package/dist/workflow/checkpoint-selection.d.ts +34 -0
- package/dist/workflow/checkpoint-selection.js +48 -0
- package/dist/workflow/checkpoint-selection.js.map +1 -0
- package/dist/workflow/checkpoint.d.ts +35 -0
- package/dist/workflow/checkpoint.js +84 -0
- package/dist/workflow/checkpoint.js.map +1 -0
- package/dist/workflow/cli-shared.d.ts +62 -0
- package/dist/workflow/cli-shared.js +117 -0
- package/dist/workflow/cli-shared.js.map +1 -0
- package/dist/workflow/cli-support.d.ts +92 -0
- package/dist/workflow/cli-support.js +421 -0
- package/dist/workflow/cli-support.js.map +1 -0
- package/dist/workflow/container-snapshots.d.ts +29 -0
- package/dist/workflow/container-snapshots.js +137 -0
- package/dist/workflow/container-snapshots.js.map +1 -0
- package/dist/workflow/daemon-gate-commands.d.ts +21 -0
- package/dist/workflow/daemon-gate-commands.js +599 -0
- package/dist/workflow/daemon-gate-commands.js.map +1 -0
- package/dist/workflow/definition-loader.d.ts +32 -0
- package/dist/workflow/definition-loader.js +56 -0
- package/dist/workflow/definition-loader.js.map +1 -0
- package/dist/workflow/discovery.d.ts +107 -0
- package/dist/workflow/discovery.js +263 -0
- package/dist/workflow/discovery.js.map +1 -0
- package/dist/workflow/errors.d.ts +66 -0
- package/dist/workflow/errors.js +49 -0
- package/dist/workflow/errors.js.map +1 -0
- package/dist/workflow/guards.d.ts +8 -0
- package/dist/workflow/guards.js +38 -0
- package/dist/workflow/guards.js.map +1 -0
- package/dist/workflow/lane-template.d.ts +89 -0
- package/dist/workflow/lane-template.js +141 -0
- package/dist/workflow/lane-template.js.map +1 -0
- package/dist/workflow/lint-integration.d.ts +64 -0
- package/dist/workflow/lint-integration.js +56 -0
- package/dist/workflow/lint-integration.js.map +1 -0
- package/dist/workflow/lint.d.ts +72 -0
- package/dist/workflow/lint.js +593 -0
- package/dist/workflow/lint.js.map +1 -0
- package/dist/workflow/machine-builder.d.ts +178 -0
- package/dist/workflow/machine-builder.js +678 -0
- package/dist/workflow/machine-builder.js.map +1 -0
- package/dist/workflow/message-log.d.ts +99 -0
- package/dist/workflow/message-log.js +40 -0
- package/dist/workflow/message-log.js.map +1 -0
- package/dist/workflow/orchestrator.d.ts +954 -0
- package/dist/workflow/orchestrator.js +3594 -0
- package/dist/workflow/orchestrator.js.map +1 -0
- package/dist/workflow/prompt-builder.d.ts +39 -0
- package/dist/workflow/prompt-builder.js +243 -0
- package/dist/workflow/prompt-builder.js.map +1 -0
- package/dist/workflow/run-state-command.d.ts +9 -0
- package/dist/workflow/run-state-command.js +414 -0
- package/dist/workflow/run-state-command.js.map +1 -0
- package/dist/workflow/run-state-debug-capture.d.ts +40 -0
- package/dist/workflow/run-state-debug-capture.js +101 -0
- package/dist/workflow/run-state-debug-capture.js.map +1 -0
- package/dist/workflow/status-parser.d.ts +68 -0
- package/dist/workflow/status-parser.js +274 -0
- package/dist/workflow/status-parser.js.map +1 -0
- package/dist/workflow/types.d.ts +598 -0
- package/dist/workflow/types.js +85 -0
- package/dist/workflow/types.js.map +1 -0
- package/dist/workflow/validate.d.ts +80 -0
- package/dist/workflow/validate.js +788 -0
- package/dist/workflow/validate.js.map +1 -0
- package/dist/workflow/workflow-command.d.ts +9 -0
- package/dist/workflow/workflow-command.js +670 -0
- package/dist/workflow/workflow-command.js.map +1 -0
- package/dist/workflow/workflow-discovery.d.ts +27 -0
- package/dist/workflow/workflow-discovery.js +121 -0
- package/dist/workflow/workflow-discovery.js.map +1 -0
- package/dist/workflow/workflow-manager.d.ts +156 -0
- package/dist/workflow/workflow-manager.js +359 -0
- package/dist/workflow/workflow-manager.js.map +1 -0
- package/dist/workflow/workflows/design-and-code/README.md +50 -0
- package/dist/workflow/workflows/design-and-code/workflow.yaml +169 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/format_report.js +29 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/package.json +5 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/requirements.txt +1 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/scripts/run_eval.py +41 -0
- package/dist/workflow/workflows/deterministic-eval-smoke/workflow.yaml +57 -0
- package/dist/workflow/workflows/deterministic-verdict-smoke/scripts/classify.py +18 -0
- package/dist/workflow/workflows/deterministic-verdict-smoke/workflow.yaml +51 -0
- package/dist/workflow/workflows/evolve/scripts/LICENSE +201 -0
- package/dist/workflow/workflows/evolve/scripts/README.md +314 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-brief +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-cognition +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-db +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-eval +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-files +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve-summary +16 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/__init__.py +14 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/__init__.py +17 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/base.py +21 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/factory.py +90 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/greedy.py +17 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/island.py +316 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/random.py +18 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/algorithms/ucb1.py +55 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/best_snapshot.py +62 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/cli.py +752 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/cognition.py +127 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/database.py +218 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/diff.py +57 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/embedding.py +84 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/file_lock.py +45 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/run_state.py +343 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/sampling_config.py +173 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/structures.py +93 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_core/vector_index.py +191 -0
- package/dist/workflow/workflows/evolve/scripts/evolve_result.py +1503 -0
- package/dist/workflow/workflows/evolve/scripts/requirements.txt +2 -0
- package/dist/workflow/workflows/evolve/workflow.yaml +646 -0
- package/dist/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
- package/dist/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
- package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
- package/dist/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
- package/dist/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
- package/dist/workflow/workflows/test-email-summary/workflow.yaml +90 -0
- package/dist/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +206 -0
- package/dist/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +167 -0
- package/dist/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +189 -0
- package/dist/workflow/workflows/vuln-discovery/workflow.yaml +925 -0
- package/dist/workflow/worktree.d.ts +43 -0
- package/dist/workflow/worktree.js +106 -0
- package/dist/workflow/worktree.js.map +1 -0
- package/docker/Dockerfile.base +31 -0
- package/docker/Dockerfile.base.arm64 +27 -0
- package/docker/Dockerfile.claude-code +3 -1
- package/docker/Dockerfile.codex +17 -0
- package/docker/Dockerfile.goose +3 -1
- package/docker/entrypoint-claude-code.sh +7 -0
- package/docker/entrypoint-codex.sh +42 -0
- package/docker/entrypoint-goose.sh +6 -0
- package/docker/entrypoint-uid-remap.sh +93 -0
- package/package.json +27 -11
- package/packages/web-ui/README.md +113 -0
- package/packages/web-ui/docs/workflow-state-machine.png +0 -0
- package/src/config/generated/compiled-policy.json +528 -161
- package/src/config/generated/test-scenarios.json +4810 -170
- package/src/config/generated/tool-annotations.json +34 -47
- package/src/config/mcp-servers.json +2 -2
- package/src/workflow/workflows/design-and-code/README.md +50 -0
- package/src/workflow/workflows/design-and-code/workflow.yaml +169 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/format_report.js +29 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/package.json +5 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/requirements.txt +1 -0
- package/src/workflow/workflows/deterministic-eval-smoke/scripts/run_eval.py +41 -0
- package/src/workflow/workflows/deterministic-eval-smoke/workflow.yaml +57 -0
- package/src/workflow/workflows/deterministic-verdict-smoke/scripts/classify.py +18 -0
- package/src/workflow/workflows/deterministic-verdict-smoke/workflow.yaml +51 -0
- package/src/workflow/workflows/evolve/scripts/LICENSE +201 -0
- package/src/workflow/workflows/evolve/scripts/README.md +314 -0
- package/src/workflow/workflows/evolve/scripts/evolve-brief +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-cognition +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-db +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-eval +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-files +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve-summary +16 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/__init__.py +14 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/__init__.py +17 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/base.py +21 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/factory.py +90 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/greedy.py +17 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/island.py +316 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/random.py +18 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/algorithms/ucb1.py +55 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/best_snapshot.py +62 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/cli.py +752 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/cognition.py +127 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/database.py +218 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/diff.py +57 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/embedding.py +84 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/file_lock.py +45 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/run_state.py +343 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/sampling_config.py +173 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/structures.py +93 -0
- package/src/workflow/workflows/evolve/scripts/evolve_core/vector_index.py +191 -0
- package/src/workflow/workflows/evolve/scripts/evolve_result.py +1503 -0
- package/src/workflow/workflows/evolve/scripts/requirements.txt +2 -0
- package/src/workflow/workflows/evolve/workflow.yaml +646 -0
- package/src/workflow/workflows/test-email-summary/skills/email-formatting/SKILL.md +55 -0
- package/src/workflow/workflows/test-email-summary/skills/gmail-query-syntax/SKILL.md +63 -0
- package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/SKILL.md +41 -0
- package/src/workflow/workflows/test-email-summary/skills/json-schema-emails/schema.json +34 -0
- package/src/workflow/workflows/test-email-summary/skills/summary-style-guide/SKILL.md +51 -0
- package/src/workflow/workflows/test-email-summary/workflow.yaml +90 -0
- package/src/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +206 -0
- package/src/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +167 -0
- package/src/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +189 -0
- package/src/workflow/workflows/vuln-discovery/workflow.yaml +925 -0
- package/dist/pipeline/llm-logger.js.map +0 -1
- package/dist/session/errors.js.map +0 -1
package/dist/config/paths.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { dirname, resolve } from 'node:path';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import {
|
|
6
|
+
import { JOB_ID_PATTERN } from '../types/slug.js';
|
|
7
|
+
/**
|
|
8
|
+
* Short slug length used in file/directory names that must fit under
|
|
9
|
+
* `sockaddr_un.sun_path` (macOS ~104 bytes, Linux ~108 bytes). 12 hex
|
|
10
|
+
* chars give 16^12 ≈ 2.8e14 combinations, so collisions in the
|
|
11
|
+
* host-wide `~/.ironcurtain/run/<slug>/` namespace are astronomical —
|
|
12
|
+
* important because bundle teardown runs `rmSync(runtimeRoot)` and a
|
|
13
|
+
* collision would wipe another live bundle's sockets. The full UUID
|
|
14
|
+
* remains the authoritative identity in Docker labels and directory
|
|
15
|
+
* paths; only socket-adjacent names use the short form. The new
|
|
16
|
+
* `~/.ironcurtain/run/<12chars>/sockets/<name>.sock` layout has ample
|
|
17
|
+
* sun_path budget for the longer slug on both macOS (104) and Linux
|
|
18
|
+
* (108).
|
|
19
|
+
*/
|
|
20
|
+
const BUNDLE_SLUG_LEN = 12;
|
|
21
|
+
/**
|
|
22
|
+
* Derives the short slug from a `BundleId`. Strips hyphens first so the
|
|
23
|
+
* resulting `BUNDLE_SLUG_LEN` characters are all hex — a raw
|
|
24
|
+
* `substring(0, 12)` on a canonical UUID would include the hyphen at
|
|
25
|
+
* position 8 and yield only 11 hex digits of entropy (16^11 ≈ 1.8e13).
|
|
26
|
+
* 12 hex digits give 16^12 ≈ 2.8e14, matching the collision-space math
|
|
27
|
+
* the layout depends on.
|
|
28
|
+
*/
|
|
29
|
+
function toBundleSlug(bundleId) {
|
|
30
|
+
return bundleId.replace(/-/g, '').substring(0, BUNDLE_SLUG_LEN);
|
|
31
|
+
}
|
|
7
32
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
33
|
/**
|
|
9
34
|
* Returns the IronCurtain home directory.
|
|
@@ -19,12 +44,37 @@ export function getSessionsDir() {
|
|
|
19
44
|
return resolve(getIronCurtainHome(), 'sessions');
|
|
20
45
|
}
|
|
21
46
|
/**
|
|
22
|
-
*
|
|
23
|
-
* (
|
|
47
|
+
* Characters permitted in any identifier that gets embedded in a
|
|
48
|
+
* filesystem path by this module (session IDs, workflow IDs, persona
|
|
49
|
+
* slugs, daemon log names). Rejects path separators, glob
|
|
50
|
+
* metacharacters, NUL bytes, and everything else that could escape the
|
|
51
|
+
* target directory.
|
|
52
|
+
*/
|
|
53
|
+
const PATH_SAFE_SLUG_RE = /^[a-zA-Z0-9_-]+$/;
|
|
54
|
+
function assertPathSafeSlug(kind, value) {
|
|
55
|
+
if (!PATH_SAFE_SLUG_RE.test(value)) {
|
|
56
|
+
throw new Error(`Invalid ${kind}: ${value}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Filenames shared across session-scoped and workflow-state-scoped
|
|
61
|
+
* layouts. Centralized so the "single source of truth" for how session
|
|
62
|
+
* artifacts are named does not drift between helpers and call sites.
|
|
63
|
+
*/
|
|
64
|
+
export const SESSION_LOG_FILENAME = 'session.log';
|
|
65
|
+
export const SESSION_METADATA_FILENAME = 'session-metadata.json';
|
|
66
|
+
export const SESSION_STATE_FILENAME = 'session-state.json';
|
|
67
|
+
/**
|
|
68
|
+
* Validates a workflow state slug of the form `{stateId}.{visitCount}`
|
|
69
|
+
* (e.g., `fetch.1`, `plan.2`). Accepts dot-separated segments where
|
|
70
|
+
* each segment satisfies `PATH_SAFE_SLUG_RE`. Empty segments — produced
|
|
71
|
+
* by `..`, leading or trailing dots — fail the per-segment check.
|
|
24
72
|
*/
|
|
25
|
-
function
|
|
26
|
-
if (
|
|
27
|
-
throw new Error(`Invalid
|
|
73
|
+
function assertStateSlug(value) {
|
|
74
|
+
if (value.length === 0)
|
|
75
|
+
throw new Error(`Invalid state slug: ${value}`);
|
|
76
|
+
for (const segment of value.split('.')) {
|
|
77
|
+
assertPathSafeSlug('state slug segment', segment);
|
|
28
78
|
}
|
|
29
79
|
}
|
|
30
80
|
/**
|
|
@@ -32,7 +82,7 @@ function validateSessionId(sessionId) {
|
|
|
32
82
|
* {home}/sessions/{sessionId}/
|
|
33
83
|
*/
|
|
34
84
|
export function getSessionDir(sessionId) {
|
|
35
|
-
|
|
85
|
+
assertPathSafeSlug('session ID', sessionId);
|
|
36
86
|
return resolve(getSessionsDir(), sessionId);
|
|
37
87
|
}
|
|
38
88
|
/**
|
|
@@ -54,7 +104,7 @@ export function getSessionEscalationDir(sessionId) {
|
|
|
54
104
|
* {home}/sessions/{sessionId}/session-metadata.json
|
|
55
105
|
*/
|
|
56
106
|
export function getSessionMetadataPath(sessionId) {
|
|
57
|
-
return resolve(getSessionDir(sessionId),
|
|
107
|
+
return resolve(getSessionDir(sessionId), SESSION_METADATA_FILENAME);
|
|
58
108
|
}
|
|
59
109
|
/**
|
|
60
110
|
* Returns the audit log path for a given session:
|
|
@@ -75,7 +125,7 @@ export function getSessionInteractionLogPath(sessionId) {
|
|
|
75
125
|
* {home}/sessions/{sessionId}/session.log
|
|
76
126
|
*/
|
|
77
127
|
export function getSessionLogPath(sessionId) {
|
|
78
|
-
return resolve(getSessionDir(sessionId),
|
|
128
|
+
return resolve(getSessionDir(sessionId), SESSION_LOG_FILENAME);
|
|
79
129
|
}
|
|
80
130
|
/**
|
|
81
131
|
* Returns the LLM interaction log path for a given session:
|
|
@@ -84,6 +134,32 @@ export function getSessionLogPath(sessionId) {
|
|
|
84
134
|
export function getSessionLlmLogPath(sessionId) {
|
|
85
135
|
return resolve(getSessionDir(sessionId), 'llm-interactions.jsonl');
|
|
86
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Returns the trajectory-capture directory for a single-session
|
|
139
|
+
* standalone run:
|
|
140
|
+
* {home}/sessions/{sessionId}/captures/
|
|
141
|
+
*
|
|
142
|
+
* Holds `{sessionId}.jsonl` and `manifest.jsonl` per
|
|
143
|
+
* docs/designs/mitm-token-trajectory-capture.md §7.
|
|
144
|
+
*/
|
|
145
|
+
export function getSessionCapturesDir(sessionId) {
|
|
146
|
+
return resolve(getSessionDir(sessionId), 'captures');
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Returns the JSONL file path for a single session's captured
|
|
150
|
+
* exchanges within `capturesDir`. Filename is `{sessionId}.jsonl`.
|
|
151
|
+
*/
|
|
152
|
+
export function getSessionCaptureFile(capturesDir, sessionId) {
|
|
153
|
+
assertPathSafeSlug('session ID', sessionId);
|
|
154
|
+
return resolve(capturesDir, `${sessionId}.jsonl`);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Returns the manifest path within a captures directory:
|
|
158
|
+
* {capturesDir}/manifest.jsonl
|
|
159
|
+
*/
|
|
160
|
+
export function getCaptureManifestFile(capturesDir) {
|
|
161
|
+
return resolve(capturesDir, 'manifest.jsonl');
|
|
162
|
+
}
|
|
87
163
|
/**
|
|
88
164
|
* Returns the auto-approver LLM interaction log path for a given session:
|
|
89
165
|
* {home}/sessions/{sessionId}/auto-approve-llm.jsonl
|
|
@@ -142,9 +218,7 @@ export function getLogsDir() {
|
|
|
142
218
|
* E.g., getDaemonLogPath('signal-bot') → {home}/logs/signal-bot.log
|
|
143
219
|
*/
|
|
144
220
|
export function getDaemonLogPath(name) {
|
|
145
|
-
|
|
146
|
-
throw new Error(`Invalid daemon log name: ${name}`);
|
|
147
|
-
}
|
|
221
|
+
assertPathSafeSlug('daemon log name', name);
|
|
148
222
|
return resolve(getLogsDir(), `${name}.log`);
|
|
149
223
|
}
|
|
150
224
|
/**
|
|
@@ -238,6 +312,24 @@ export function computeConstitutionHash(basePath) {
|
|
|
238
312
|
const text = loadConstitutionText(basePath);
|
|
239
313
|
return createHash('sha256').update(text).digest('hex');
|
|
240
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* Returns the user workflows directory: {home}/workflows/
|
|
317
|
+
* Users can place custom workflow definitions here.
|
|
318
|
+
*/
|
|
319
|
+
export function getUserWorkflowsDir() {
|
|
320
|
+
return resolve(getIronCurtainHome(), 'workflows');
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Returns the user-global skills directory: {home}/skills/
|
|
324
|
+
*
|
|
325
|
+
* Skills placed here are layered into every Docker session regardless
|
|
326
|
+
* of workflow or persona. See `src/skills/discovery.ts` for the
|
|
327
|
+
* resolution order (user-global → persona → workflow, last-wins on
|
|
328
|
+
* collision) and `docs/designs/skills-capability.md` for the format.
|
|
329
|
+
*/
|
|
330
|
+
export function getUserSkillsDir() {
|
|
331
|
+
return resolve(getIronCurtainHome(), 'skills');
|
|
332
|
+
}
|
|
241
333
|
// ---------------------------------------------------------------------------
|
|
242
334
|
// OAuth paths
|
|
243
335
|
// ---------------------------------------------------------------------------
|
|
@@ -285,6 +377,16 @@ export function getOAuthCredentialsPath(providerId) {
|
|
|
285
377
|
export function getDaemonSocketPath() {
|
|
286
378
|
return resolve(getIronCurtainHome(), 'daemon.sock');
|
|
287
379
|
}
|
|
380
|
+
/**
|
|
381
|
+
* Returns the web UI state file path: {home}/web-ui.json
|
|
382
|
+
*
|
|
383
|
+
* The daemon writes connection info (port + auth token) here on startup
|
|
384
|
+
* so CLI commands (e.g., `observe`) can connect to the WebSocket server.
|
|
385
|
+
* The file is removed on daemon shutdown.
|
|
386
|
+
*/
|
|
387
|
+
export function getWebUiStatePath() {
|
|
388
|
+
return resolve(getIronCurtainHome(), 'web-ui.json');
|
|
389
|
+
}
|
|
288
390
|
// ---------------------------------------------------------------------------
|
|
289
391
|
// Job paths (cron mode)
|
|
290
392
|
// ---------------------------------------------------------------------------
|
|
@@ -294,7 +396,6 @@ export function getDaemonSocketPath() {
|
|
|
294
396
|
export function getJobsDir() {
|
|
295
397
|
return resolve(getIronCurtainHome(), 'jobs');
|
|
296
398
|
}
|
|
297
|
-
import { JOB_ID_PATTERN } from '../cron/types.js';
|
|
298
399
|
/**
|
|
299
400
|
* Validates that a job ID contains only safe characters.
|
|
300
401
|
*/
|
|
@@ -331,4 +432,252 @@ export function getJobWorkspaceDir(jobId) {
|
|
|
331
432
|
export function getJobRunsDir(jobId) {
|
|
332
433
|
return resolve(getJobDir(jobId), 'runs');
|
|
333
434
|
}
|
|
435
|
+
// ---------------------------------------------------------------------------
|
|
436
|
+
// Workflow run paths
|
|
437
|
+
// ---------------------------------------------------------------------------
|
|
438
|
+
/**
|
|
439
|
+
* Returns the workflow runs base directory: {home}/workflow-runs/
|
|
440
|
+
*/
|
|
441
|
+
export function getWorkflowRunsDir() {
|
|
442
|
+
return resolve(getIronCurtainHome(), 'workflow-runs');
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Returns the directory for a specific workflow run:
|
|
446
|
+
* {home}/workflow-runs/{workflowId}/
|
|
447
|
+
*/
|
|
448
|
+
export function getWorkflowRunDir(workflowId) {
|
|
449
|
+
assertPathSafeSlug('workflow ID', workflowId);
|
|
450
|
+
return resolve(getWorkflowRunsDir(), workflowId);
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Returns the containers root for a workflow run:
|
|
454
|
+
* {home}/workflow-runs/{workflowId}/containers/
|
|
455
|
+
*
|
|
456
|
+
* Each bundle (one Docker container + its MITM/Code-Mode proxies, CA,
|
|
457
|
+
* fake keys, audit log, and per-state artifacts) lives under
|
|
458
|
+
* `containers/<bundleId>/`. A single-scope workflow has one entry; a
|
|
459
|
+
* bifurcated workflow with distinct `containerScope` values has one
|
|
460
|
+
* entry per distinct scope.
|
|
461
|
+
*/
|
|
462
|
+
export function getWorkflowContainersDir(workflowId) {
|
|
463
|
+
return resolve(getWorkflowRunDir(workflowId), 'containers');
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Returns the outer directory for a single bundle within a workflow run:
|
|
467
|
+
* {home}/workflow-runs/{workflowId}/containers/{bundleId}/
|
|
468
|
+
*
|
|
469
|
+
* Contains the bundle's audit log, its inner `bundle/` directory with
|
|
470
|
+
* sockets/CA/fake keys/orientation, and the per-state `states/` tree.
|
|
471
|
+
*/
|
|
472
|
+
export function getBundleDir(workflowId, bundleId) {
|
|
473
|
+
assertPathSafeSlug('bundle ID', bundleId);
|
|
474
|
+
return resolve(getWorkflowContainersDir(workflowId), bundleId);
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Returns the inner bundle artifact directory:
|
|
478
|
+
* {home}/workflow-runs/{workflowId}/containers/{bundleId}/bundle/
|
|
479
|
+
*
|
|
480
|
+
* Holds the bundle-scoped files that `DockerInfrastructure` manages:
|
|
481
|
+
* MCP/MITM sockets, CA cert, fake keys, orientation scripts, and the
|
|
482
|
+
* effective system prompt. Bind-mounted into the Docker container for
|
|
483
|
+
* the UDS endpoints.
|
|
484
|
+
*/
|
|
485
|
+
export function getBundleBundleDir(workflowId, bundleId) {
|
|
486
|
+
return resolve(getBundleDir(workflowId, bundleId), 'bundle');
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* Returns the per-bundle audit log path:
|
|
490
|
+
* {home}/workflow-runs/{workflowId}/containers/{bundleId}/audit.jsonl
|
|
491
|
+
*
|
|
492
|
+
* One audit file per bundle (coordinator). Each entry is tagged with
|
|
493
|
+
* the active `persona` so consumers can reconstruct per-persona /
|
|
494
|
+
* per-re-entry slices by scanning.
|
|
495
|
+
*/
|
|
496
|
+
export function getBundleAuditLogPath(workflowId, bundleId) {
|
|
497
|
+
return resolve(getBundleDir(workflowId, bundleId), 'audit.jsonl');
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Returns the trajectory-capture directory for a workflow bundle:
|
|
501
|
+
* {home}/workflow-runs/{workflowId}/containers/{bundleId}/captures/
|
|
502
|
+
*
|
|
503
|
+
* Sits alongside the bundle's audit log; holds one `{sessionId}.jsonl`
|
|
504
|
+
* per state visit plus a shared `manifest.jsonl`. See
|
|
505
|
+
* docs/designs/mitm-token-trajectory-capture.md §7.
|
|
506
|
+
*/
|
|
507
|
+
export function getBundleCapturesDir(workflowId, bundleId) {
|
|
508
|
+
return resolve(getBundleDir(workflowId, bundleId), 'captures');
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Returns the per-bundle states root:
|
|
512
|
+
* {home}/workflow-runs/{workflowId}/containers/{bundleId}/states/
|
|
513
|
+
*
|
|
514
|
+
* Each agent state invocation (including re-entries) that borrows this
|
|
515
|
+
* bundle gets its own subdirectory keyed by `{stateId}.{N}`.
|
|
516
|
+
*/
|
|
517
|
+
export function getBundleStatesDir(workflowId, bundleId) {
|
|
518
|
+
return resolve(getBundleDir(workflowId, bundleId), 'states');
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Returns the per-invocation artifact directory for a single state:
|
|
522
|
+
* {home}/workflow-runs/{workflowId}/containers/{bundleId}/states/{stateSlug}/
|
|
523
|
+
*
|
|
524
|
+
* Holds this invocation's `session.log` and `session-metadata.json`.
|
|
525
|
+
* `stateSlug` is `{stateId}.{N}` (e.g., `fetch.1`, `plan.2`).
|
|
526
|
+
*/
|
|
527
|
+
export function getInvocationDir(workflowId, bundleId, stateSlug) {
|
|
528
|
+
assertStateSlug(stateSlug);
|
|
529
|
+
return resolve(getBundleStatesDir(workflowId, bundleId), stateSlug);
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Picks the next available `{prefix}.{N}` slug in `statesDir`, where `prefix` is
|
|
533
|
+
* `stateId` or — when a fan-out `laneId` is supplied — `{stateId}_lane_{laneId}`.
|
|
534
|
+
* Returns `{prefix}.1` when no matching dir exists; otherwise the max existing
|
|
535
|
+
* N plus 1. Used so every state entry (true logical re-visits AND resume legs of
|
|
536
|
+
* a single visit) gets its own forensic dir — `session.log` and
|
|
537
|
+
* `session-metadata.json` no longer interleave across resume attempts.
|
|
538
|
+
*
|
|
539
|
+
* The `laneId` parameter is the fix for the fan-out artifact-dir collision: N
|
|
540
|
+
* same-state lanes run concurrently and, sharing one `stateId`, the check-then-act
|
|
541
|
+
* `{stateId}.{N}` computation races and clobbers each other's diagnostics. Keying
|
|
542
|
+
* the prefix on `lane.id` gives each lane its own `{stateId}_lane_{id}.{N}`
|
|
543
|
+
* namespace so per-lane `session.log` / `session-metadata.json` never collide.
|
|
544
|
+
*
|
|
545
|
+
* `laneId`, when supplied, MUST be a non-negative integer (the orchestrator
|
|
546
|
+
* assigns it as a fan-out loop index). It is interpolated into a directory-name
|
|
547
|
+
* prefix, so this is enforced as defense-in-depth on a path component: a
|
|
548
|
+
* non-integer or negative value throws (it would indicate an internal bug). A
|
|
549
|
+
* valid `laneId` renders as `_lane_<digits>`, which is path-safe and still
|
|
550
|
+
* passes the slug check.
|
|
551
|
+
*/
|
|
552
|
+
export function nextStateSlug(statesDir, stateId, laneId) {
|
|
553
|
+
assertPathSafeSlug('state ID', stateId);
|
|
554
|
+
if (laneId !== undefined && (!Number.isInteger(laneId) || laneId < 0)) {
|
|
555
|
+
throw new Error(`nextStateSlug: laneId must be a non-negative integer, got ${laneId}`);
|
|
556
|
+
}
|
|
557
|
+
const prefixBase = laneId === undefined ? stateId : `${stateId}_lane_${laneId}`;
|
|
558
|
+
let max = 0;
|
|
559
|
+
if (existsSync(statesDir)) {
|
|
560
|
+
const prefix = `${prefixBase}.`;
|
|
561
|
+
for (const entry of readdirSync(statesDir, { withFileTypes: true })) {
|
|
562
|
+
if (!entry.isDirectory() || !entry.name.startsWith(prefix))
|
|
563
|
+
continue;
|
|
564
|
+
// Decimal-digit-only suffix; reject "1e6", "0x10", " 1 ", "01",
|
|
565
|
+
// etc. so a stray dir name can't inflate the next slug.
|
|
566
|
+
const suffix = entry.name.slice(prefix.length);
|
|
567
|
+
if (!DECIMAL_SUFFIX_RE.test(suffix))
|
|
568
|
+
continue;
|
|
569
|
+
const n = Number(suffix);
|
|
570
|
+
if (n > max)
|
|
571
|
+
max = n;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
return `${prefixBase}.${max + 1}`;
|
|
575
|
+
}
|
|
576
|
+
const DECIMAL_SUFFIX_RE = /^(?:0|[1-9]\d*)$/;
|
|
577
|
+
/**
|
|
578
|
+
* Returns the coordinator control socket path for a bundle:
|
|
579
|
+
* {home}/run/{bundleId[0:12]}/ctrl.sock
|
|
580
|
+
*
|
|
581
|
+
* The coordinator listens on this UDS to accept policy hot-swap
|
|
582
|
+
* requests from the orchestrator. The socket sits under the bundle's
|
|
583
|
+
* per-bundle runtime root (mode `0o700`) so filesystem permissions
|
|
584
|
+
* gate access.
|
|
585
|
+
*
|
|
586
|
+
* The directory slug is truncated to 12 chars of `bundleId` so the
|
|
587
|
+
* assembled path fits under macOS `sockaddr_un.sun_path` (104 chars).
|
|
588
|
+
* 16^12 ≈ 2.8e14 combinations — collisions in the host-wide
|
|
589
|
+
* `run/<slug>/` namespace are astronomical.
|
|
590
|
+
*/
|
|
591
|
+
export function getBundleControlSocketPath(bundleId) {
|
|
592
|
+
return resolve(getBundleRuntimeRoot(bundleId), 'ctrl.sock');
|
|
593
|
+
}
|
|
594
|
+
// ---------------------------------------------------------------------------
|
|
595
|
+
// Per-bundle UDS endpoints (MCP proxy, MITM proxy, MITM control, coordinator)
|
|
596
|
+
// ---------------------------------------------------------------------------
|
|
597
|
+
//
|
|
598
|
+
// Every UDS file owned by a bundle lives under a single per-bundle root
|
|
599
|
+
// at `~/.ironcurtain/run/<bundleId[0:12]>/`. The directory is created
|
|
600
|
+
// with `0o700` (see `docker-infrastructure.ts`), inheriting the same
|
|
601
|
+
// security posture as the rest of the IronCurtain home. Worst-case
|
|
602
|
+
// assembled path (with a 20-char username) is about 76 bytes —
|
|
603
|
+
// comfortably under macOS 104 and Linux 108 `sockaddr_un.sun_path` caps.
|
|
604
|
+
//
|
|
605
|
+
// Three locations per bundle:
|
|
606
|
+
// run/<bid12>/ctrl.sock → coordinator control socket
|
|
607
|
+
// run/<bid12>/sockets/ → bind-mounted as /run/ironcurtain/
|
|
608
|
+
// run/<bid12>/host/ → host-local only (MITM control)
|
|
609
|
+
// The `sockets/` vs `host/` split keeps the bind-mounted endpoints
|
|
610
|
+
// separate from host-only endpoints so `isEndpointAllowed` is not the
|
|
611
|
+
// only thing standing between the container and the MITM control API.
|
|
612
|
+
/**
|
|
613
|
+
* Returns the per-bundle runtime root directory:
|
|
614
|
+
* {home}/run/{bundleId[0:12]}/
|
|
615
|
+
*
|
|
616
|
+
* Holds the coordinator control socket plus two subdirectories
|
|
617
|
+
* (`sockets/` and `host/`) so the bind-mounted UDS files can be
|
|
618
|
+
* co-located without exposing host-only sockets to the container.
|
|
619
|
+
*/
|
|
620
|
+
export function getBundleRuntimeRoot(bundleId) {
|
|
621
|
+
assertPathSafeSlug('bundle ID', bundleId);
|
|
622
|
+
return resolve(getIronCurtainHome(), 'run', toBundleSlug(bundleId));
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Returns the per-bundle container-visible sockets directory:
|
|
626
|
+
* {home}/run/{bundleId[0:12]}/sockets/
|
|
627
|
+
*
|
|
628
|
+
* Two UDS files live here:
|
|
629
|
+
* - `proxy.sock` (Code Mode proxy — bind-mounted into container)
|
|
630
|
+
* - `mitm-proxy.sock` (MITM proxy — bind-mounted into container)
|
|
631
|
+
*
|
|
632
|
+
* This directory is what `prepareDockerInfrastructure()` bind-mounts as
|
|
633
|
+
* `/run/ironcurtain/` inside the container (read-write). Only these two
|
|
634
|
+
* socket files live here — no audit logs, escalation files, or other
|
|
635
|
+
* session artifacts.
|
|
636
|
+
*/
|
|
637
|
+
export function getBundleSocketsDir(bundleId) {
|
|
638
|
+
return resolve(getBundleRuntimeRoot(bundleId), 'sockets');
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Returns the per-bundle host-only directory:
|
|
642
|
+
* {home}/run/{bundleId[0:12]}/host/
|
|
643
|
+
*
|
|
644
|
+
* Holds UDS files that must NOT be visible to the container
|
|
645
|
+
* (currently just the MITM control socket).
|
|
646
|
+
*/
|
|
647
|
+
export function getBundleHostOnlyDir(bundleId) {
|
|
648
|
+
return resolve(getBundleRuntimeRoot(bundleId), 'host');
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Code Mode proxy UDS path for a bundle:
|
|
652
|
+
* {home}/run/{bundleId[0:12]}/sockets/proxy.sock
|
|
653
|
+
*
|
|
654
|
+
* Bound by the host-side Code Mode proxy; reachable inside the
|
|
655
|
+
* container as `/run/ironcurtain/proxy.sock` via the bind mount on
|
|
656
|
+
* `getBundleSocketsDir()`.
|
|
657
|
+
*/
|
|
658
|
+
export function getBundleProxySocketPath(bundleId) {
|
|
659
|
+
return resolve(getBundleSocketsDir(bundleId), 'proxy.sock');
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* MITM proxy UDS path for a bundle:
|
|
663
|
+
* {home}/run/{bundleId[0:12]}/sockets/mitm-proxy.sock
|
|
664
|
+
*
|
|
665
|
+
* Bound by the host-side MITM proxy; reachable inside the container as
|
|
666
|
+
* `/run/ironcurtain/mitm-proxy.sock` via the bind mount on
|
|
667
|
+
* `getBundleSocketsDir()`.
|
|
668
|
+
*/
|
|
669
|
+
export function getBundleMitmProxySocketPath(bundleId) {
|
|
670
|
+
return resolve(getBundleSocketsDir(bundleId), 'mitm-proxy.sock');
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* MITM control UDS path for a bundle:
|
|
674
|
+
* {home}/run/{bundleId[0:12]}/host/mitm-control.sock
|
|
675
|
+
*
|
|
676
|
+
* Host-local only — lives under `host/` rather than `sockets/` so the
|
|
677
|
+
* bind mount that exposes `sockets/` at `/run/ironcurtain/` does not
|
|
678
|
+
* expose this socket to the container.
|
|
679
|
+
*/
|
|
680
|
+
export function getBundleMitmControlSocketPath(bundleId) {
|
|
681
|
+
return resolve(getBundleHostOnlyDir(bundleId), 'mitm-control.sock');
|
|
682
|
+
}
|
|
334
683
|
//# sourceMappingURL=paths.js.map
|
package/dist/config/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/config/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { ResolvedUserConfig } from './user-config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Auth kinds an adapter may receive. Subset of `AuthMethod['kind']` from
|
|
4
|
+
* `docker/oauth-credentials.ts` minus `'none'`: by the time an adapter is
|
|
5
|
+
* consulted, a credential has been resolved.
|
|
6
|
+
*/
|
|
7
|
+
export type DockerAuthKind = 'oauth' | 'apikey';
|
|
2
8
|
/**
|
|
3
9
|
* Network access configuration for a sandboxed MCP server.
|
|
4
10
|
*
|
|
@@ -105,7 +111,7 @@ export interface IronCurtainConfig {
|
|
|
105
111
|
* Adapters use this to choose between OAuth and API key env vars.
|
|
106
112
|
*/
|
|
107
113
|
dockerAuth?: {
|
|
108
|
-
readonly kind:
|
|
114
|
+
readonly kind: DockerAuthKind;
|
|
109
115
|
};
|
|
110
116
|
/**
|
|
111
117
|
* Whether this is a PTY session. When true, the proxy requires
|
|
@@ -31,9 +31,32 @@ export declare const USER_CONFIG_DEFAULTS: {
|
|
|
31
31
|
readonly auditRedaction: {
|
|
32
32
|
readonly enabled: true;
|
|
33
33
|
};
|
|
34
|
+
readonly preferredMode: "docker";
|
|
35
|
+
readonly dockerResources: {
|
|
36
|
+
/** Memory ceiling in MB; null means "do not pass --memory". */
|
|
37
|
+
readonly memoryMb: 8192;
|
|
38
|
+
/** CPU ceiling (fractional ok); null means "do not pass --cpus". */
|
|
39
|
+
readonly cpus: 4;
|
|
40
|
+
};
|
|
41
|
+
readonly snapshot: {
|
|
42
|
+
readonly enabled: true;
|
|
43
|
+
readonly maxAgeDays: 7;
|
|
44
|
+
readonly sweepIntervalHours: 24;
|
|
45
|
+
};
|
|
34
46
|
};
|
|
35
47
|
export declare const ESCALATION_TIMEOUT_MIN = 30;
|
|
36
48
|
export declare const ESCALATION_TIMEOUT_MAX = 600;
|
|
49
|
+
/**
|
|
50
|
+
* Strict model ID validator for `~/.ironcurtain/config.json`. A colon-prefixed
|
|
51
|
+
* value must name a known provider; bare names are accepted.
|
|
52
|
+
*/
|
|
53
|
+
export declare const qualifiedModelId: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
|
|
54
|
+
/**
|
|
55
|
+
* Looser model ID validator for workflow YAML. Additionally accepts
|
|
56
|
+
* Ollama-style "name:tag" identifiers (e.g. `glm-5.1:cloud`) reached via
|
|
57
|
+
* an upstream gateway like ANTHROPIC_BASE_URL.
|
|
58
|
+
*/
|
|
59
|
+
export declare const looseModelId: z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>;
|
|
37
60
|
export declare const WEB_SEARCH_PROVIDERS: readonly ["brave", "tavily", "serpapi"];
|
|
38
61
|
export type WebSearchProvider = (typeof WEB_SEARCH_PROVIDERS)[number];
|
|
39
62
|
/** Human-readable labels for web search providers. */
|
|
@@ -48,12 +71,24 @@ export declare const WEB_SEARCH_PROVIDER_URLS: Readonly<Record<WebSearchProvider
|
|
|
48
71
|
export declare const GOOSE_PROVIDERS: readonly ["anthropic", "openai", "google"];
|
|
49
72
|
/** Goose provider — structurally identical to ProviderId from model-provider.ts. */
|
|
50
73
|
export type GooseProvider = (typeof GOOSE_PROVIDERS)[number];
|
|
51
|
-
export declare const DOCKER_AGENTS: readonly ["claude-code", "goose"];
|
|
74
|
+
export declare const DOCKER_AGENTS: readonly ["claude-code", "goose", "codex"];
|
|
52
75
|
export type DockerAgent = (typeof DOCKER_AGENTS)[number];
|
|
76
|
+
export declare const SESSION_MODES: readonly ["docker", "builtin"];
|
|
77
|
+
export type SessionModeKind = (typeof SESSION_MODES)[number];
|
|
78
|
+
/**
|
|
79
|
+
* Container runtime backend for Docker Agent Mode sessions. 'auto'
|
|
80
|
+
* prefers the Apple container runtime when its preflight passes
|
|
81
|
+
* (Apple silicon, macOS 26+, container CLI >= 1.0 with services
|
|
82
|
+
* running) and falls back to Docker otherwise. The
|
|
83
|
+
* IRONCURTAIN_CONTAINER_RUNTIME env var overrides this setting.
|
|
84
|
+
* See docs/designs/apple-container-runtime.md.
|
|
85
|
+
*/
|
|
86
|
+
export declare const CONTAINER_RUNTIMES: readonly ["auto", "docker", "apple-container"];
|
|
87
|
+
export type ContainerRuntimeSetting = (typeof CONTAINER_RUNTIMES)[number];
|
|
53
88
|
export declare const userConfigSchema: z.ZodObject<{
|
|
54
|
-
agentModelId: z.ZodOptional<z.
|
|
55
|
-
policyModelId: z.ZodOptional<z.
|
|
56
|
-
prefilterModelId: z.ZodOptional<z.
|
|
89
|
+
agentModelId: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
|
|
90
|
+
policyModelId: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
|
|
91
|
+
prefilterModelId: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
|
|
57
92
|
anthropicApiKey: z.ZodOptional<z.ZodString>;
|
|
58
93
|
googleApiKey: z.ZodOptional<z.ZodString>;
|
|
59
94
|
openaiApiKey: z.ZodOptional<z.ZodString>;
|
|
@@ -72,11 +107,11 @@ export declare const userConfigSchema: z.ZodObject<{
|
|
|
72
107
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
73
108
|
thresholdTokens: z.ZodOptional<z.ZodNumber>;
|
|
74
109
|
keepRecentMessages: z.ZodOptional<z.ZodNumber>;
|
|
75
|
-
summaryModelId: z.ZodOptional<z.
|
|
110
|
+
summaryModelId: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
|
|
76
111
|
}, z.core.$strip>>;
|
|
77
112
|
autoApprove: z.ZodOptional<z.ZodObject<{
|
|
78
113
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
79
|
-
modelId: z.ZodOptional<z.
|
|
114
|
+
modelId: z.ZodOptional<z.ZodType<string, unknown, z.core.$ZodTypeInternals<string, unknown>>>;
|
|
80
115
|
}, z.core.$strip>>;
|
|
81
116
|
auditRedaction: z.ZodOptional<z.ZodObject<{
|
|
82
117
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -123,6 +158,16 @@ export declare const userConfigSchema: z.ZodObject<{
|
|
|
123
158
|
preferredDockerAgent: z.ZodOptional<z.ZodEnum<{
|
|
124
159
|
"claude-code": "claude-code";
|
|
125
160
|
goose: "goose";
|
|
161
|
+
codex: "codex";
|
|
162
|
+
}>>;
|
|
163
|
+
preferredMode: z.ZodOptional<z.ZodEnum<{
|
|
164
|
+
docker: "docker";
|
|
165
|
+
builtin: "builtin";
|
|
166
|
+
}>>;
|
|
167
|
+
containerRuntime: z.ZodOptional<z.ZodEnum<{
|
|
168
|
+
docker: "docker";
|
|
169
|
+
auto: "auto";
|
|
170
|
+
"apple-container": "apple-container";
|
|
126
171
|
}>>;
|
|
127
172
|
packageInstall: z.ZodOptional<z.ZodObject<{
|
|
128
173
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -130,6 +175,18 @@ export declare const userConfigSchema: z.ZodObject<{
|
|
|
130
175
|
allowedPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
131
176
|
deniedPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
132
177
|
}, z.core.$strip>>;
|
|
178
|
+
dockerResources: z.ZodOptional<z.ZodObject<{
|
|
179
|
+
memoryMb: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
180
|
+
cpus: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
181
|
+
}, z.core.$strip>>;
|
|
182
|
+
capture: z.ZodOptional<z.ZodObject<{
|
|
183
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
184
|
+
}, z.core.$strip>>;
|
|
185
|
+
snapshot: z.ZodOptional<z.ZodObject<{
|
|
186
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
187
|
+
maxAgeDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
188
|
+
sweepIntervalHours: z.ZodOptional<z.ZodNumber>;
|
|
189
|
+
}, z.core.$strip>>;
|
|
133
190
|
}, z.core.$strip>;
|
|
134
191
|
/** Parsed config from ~/.ironcurtain/config.json. All fields optional. */
|
|
135
192
|
export type UserConfig = z.infer<typeof userConfigSchema>;
|
|
@@ -171,6 +228,27 @@ export interface ResolvedPackageInstallConfig {
|
|
|
171
228
|
readonly allowedPackages: readonly string[];
|
|
172
229
|
readonly deniedPackages: readonly string[];
|
|
173
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Resolved Docker container resource ceilings.
|
|
233
|
+
*
|
|
234
|
+
* `null` is a deliberate "no limit" signal: callers must omit the
|
|
235
|
+
* corresponding `--memory` / `--cpus` flag, matching the existing pattern
|
|
236
|
+
* in `docker-manager.ts:buildCreateArgs()`.
|
|
237
|
+
*
|
|
238
|
+
* These are the user-configured ceilings BEFORE clamping. The runtime
|
|
239
|
+
* clamp (`clampDockerResources()` in `src/docker/resource-limits.ts`) lowers
|
|
240
|
+
* either value to fit the host's actual capacity; nulls pass through
|
|
241
|
+
* unchanged.
|
|
242
|
+
*/
|
|
243
|
+
export interface ResolvedDockerResourcesConfig {
|
|
244
|
+
readonly memoryMb: number | null;
|
|
245
|
+
readonly cpus: number | null;
|
|
246
|
+
}
|
|
247
|
+
export interface ResolvedSnapshotConfig {
|
|
248
|
+
readonly enabled: boolean;
|
|
249
|
+
readonly maxAgeDays: number | null;
|
|
250
|
+
readonly sweepIntervalHours: number;
|
|
251
|
+
}
|
|
174
252
|
/** Resolved web search config with all fields present. */
|
|
175
253
|
export interface ResolvedWebSearchConfig {
|
|
176
254
|
readonly provider: WebSearchProvider | null;
|
|
@@ -211,8 +289,25 @@ export interface ResolvedUserConfig {
|
|
|
211
289
|
readonly gooseModel: string;
|
|
212
290
|
/** Preferred Docker agent for auto-detection. */
|
|
213
291
|
readonly preferredDockerAgent: DockerAgent;
|
|
292
|
+
/** Preferred session mode: 'docker' (default) or 'builtin'. */
|
|
293
|
+
readonly preferredMode: SessionModeKind;
|
|
294
|
+
/** Container runtime backend: 'auto' (default), 'docker', or 'apple-container'. */
|
|
295
|
+
readonly containerRuntime: ContainerRuntimeSetting;
|
|
214
296
|
/** Package installation proxy configuration. */
|
|
215
297
|
readonly packageInstall: ResolvedPackageInstallConfig;
|
|
298
|
+
/** Docker container resource ceilings (pre-clamp). */
|
|
299
|
+
readonly dockerResources: ResolvedDockerResourcesConfig;
|
|
300
|
+
/** Workflow container snapshot retention and global enablement. */
|
|
301
|
+
readonly snapshot: ResolvedSnapshotConfig;
|
|
302
|
+
/**
|
|
303
|
+
* Trajectory-capture config. Optional — absent from
|
|
304
|
+
* USER_CONFIG_DEFAULTS so the `?? false` at the session-factory
|
|
305
|
+
* resolution point is authoritative. See
|
|
306
|
+
* docs/designs/mitm-token-trajectory-capture.md §10.
|
|
307
|
+
*/
|
|
308
|
+
readonly capture?: {
|
|
309
|
+
readonly enabled: boolean;
|
|
310
|
+
};
|
|
216
311
|
}
|
|
217
312
|
/**
|
|
218
313
|
* Loads user configuration from ~/.ironcurtain/config.json.
|