@provos/ironcurtain 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -19
- 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 +14 -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.d.ts +33 -1
- package/dist/config/config-command.js +723 -11
- package/dist/config/config-command.js.map +1 -1
- package/dist/config/first-start.js +2 -8
- package/dist/config/first-start.js.map +1 -1
- 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/openrouter-catalog.d.ts +46 -0
- package/dist/config/openrouter-catalog.js +111 -0
- package/dist/config/openrouter-catalog.js.map +1 -0
- package/dist/config/openrouter-models-fallback.d.ts +15 -0
- package/dist/config/openrouter-models-fallback.js +49 -0
- package/dist/config/openrouter-models-fallback.js.map +1 -0
- package/dist/config/paths.d.ts +48 -6
- package/dist/config/paths.js +63 -8
- package/dist/config/paths.js.map +1 -1
- package/dist/config/types.d.ts +8 -0
- package/dist/config/user-config.d.ts +179 -6
- package/dist/config/user-config.js +282 -5
- package/dist/config/user-config.js.map +1 -1
- package/dist/daemon/daemon-command.js +14 -5
- package/dist/daemon/daemon-command.js.map +1 -1
- package/dist/daemon/ironcurtain-daemon.d.ts +18 -0
- package/dist/daemon/ironcurtain-daemon.js +28 -1
- 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 +109 -1
- package/dist/docker/adapters/claude-code.js.map +1 -1
- package/dist/docker/adapters/codex.d.ts +18 -0
- package/dist/docker/adapters/codex.js +376 -0
- package/dist/docker/adapters/codex.js.map +1 -0
- package/dist/docker/adapters/goose.js +38 -2
- package/dist/docker/adapters/goose.js.map +1 -1
- package/dist/docker/agent-adapter.d.ts +34 -6
- package/dist/docker/agent-adapter.js +2 -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 +486 -0
- package/dist/docker/apple-container-manager.js.map +1 -0
- package/dist/docker/ca.js +9 -2
- package/dist/docker/ca.js.map +1 -1
- package/dist/docker/code-mode-proxy.d.ts +11 -0
- package/dist/docker/code-mode-proxy.js +3 -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 +9 -0
- 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 +31 -0
- package/dist/docker/docker-agent-session.js +97 -7
- package/dist/docker/docker-agent-session.js.map +1 -1
- package/dist/docker/docker-infrastructure.d.ts +232 -15
- package/dist/docker/docker-infrastructure.js +762 -118
- package/dist/docker/docker-infrastructure.js.map +1 -1
- package/dist/docker/docker-manager.d.ts +25 -5
- package/dist/docker/docker-manager.js +388 -21
- 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 +1 -1
- package/dist/docker/docker-resource-lifecycle.d.ts +71 -0
- package/dist/docker/docker-resource-lifecycle.js +454 -0
- package/dist/docker/docker-resource-lifecycle.js.map +1 -0
- package/dist/docker/gc-command.d.ts +2 -0
- package/dist/docker/gc-command.js +37 -0
- package/dist/docker/gc-command.js.map +1 -0
- package/dist/docker/mitm-proxy.d.ts +58 -5
- package/dist/docker/mitm-proxy.js +338 -26
- package/dist/docker/mitm-proxy.js.map +1 -1
- package/dist/docker/network-topology.d.ts +88 -0
- package/dist/docker/network-topology.js +167 -0
- package/dist/docker/network-topology.js.map +1 -0
- package/dist/docker/oauth-credentials.d.ts +13 -0
- package/dist/docker/oauth-credentials.js +125 -0
- package/dist/docker/oauth-credentials.js.map +1 -1
- package/dist/docker/openrouter.d.ts +107 -0
- package/dist/docker/openrouter.js +236 -0
- package/dist/docker/openrouter.js.map +1 -0
- package/dist/docker/orientation.js +1 -1
- package/dist/docker/orientation.js.map +1 -1
- package/dist/docker/package-types.d.ts +1 -1
- package/dist/docker/platform.d.ts +3 -1
- package/dist/docker/platform.js +3 -1
- package/dist/docker/platform.js.map +1 -1
- package/dist/docker/provider-config.d.ts +35 -1
- package/dist/docker/provider-config.js +93 -3
- 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/pty-session.d.ts +22 -0
- package/dist/docker/pty-session.js +238 -84
- package/dist/docker/pty-session.js.map +1 -1
- package/dist/docker/pty-types.d.ts +15 -0
- package/dist/docker/pty-types.js +8 -0
- package/dist/docker/pty-types.js.map +1 -1
- package/dist/docker/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 +14 -5
- package/dist/docker/resource-limits.js +11 -8
- package/dist/docker/resource-limits.js.map +1 -1
- package/dist/docker/sse-extractor.js +55 -5
- package/dist/docker/sse-extractor.js.map +1 -1
- package/dist/docker/stream-delay.d.ts +86 -0
- package/dist/docker/stream-delay.js +218 -0
- package/dist/docker/stream-delay.js.map +1 -0
- package/dist/docker/token-stream-types.d.ts +15 -0
- package/dist/docker/trajectory-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 +1010 -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 +116 -12
- package/dist/doctor/checks.d.ts +39 -6
- package/dist/doctor/checks.js +129 -25
- package/dist/doctor/checks.js.map +1 -1
- package/dist/doctor/doctor-command.js +39 -9
- package/dist/doctor/doctor-command.js.map +1 -1
- package/dist/doctor/mcp-liveness.d.ts +1 -1
- package/dist/doctor/mcp-liveness.js +12 -4
- package/dist/doctor/mcp-liveness.js.map +1 -1
- package/dist/escalation/escalation-watcher.js +6 -0
- package/dist/escalation/escalation-watcher.js.map +1 -1
- package/dist/{mux → escalation}/trusted-input.d.ts +7 -4
- package/dist/{mux → escalation}/trusted-input.js +8 -5
- package/dist/escalation/trusted-input.js.map +1 -0
- package/dist/hash.js.map +1 -1
- package/dist/index.js +65 -16
- package/dist/index.js.map +1 -1
- package/dist/mux/mux-app.d.ts +9 -0
- package/dist/mux/mux-app.js +18 -16
- package/dist/mux/mux-app.js.map +1 -1
- package/dist/mux/mux-command.js +26 -8
- package/dist/mux/mux-command.js.map +1 -1
- package/dist/mux/mux-input-handler.d.ts +26 -2
- package/dist/mux/mux-input-handler.js +93 -11
- package/dist/mux/mux-input-handler.js.map +1 -1
- package/dist/mux/mux-renderer.d.ts +2 -1
- package/dist/mux/mux-renderer.js +67 -0
- package/dist/mux/mux-renderer.js.map +1 -1
- package/dist/mux/provider-profile-snapshot.d.ts +44 -0
- package/dist/mux/provider-profile-snapshot.js +56 -0
- package/dist/mux/provider-profile-snapshot.js.map +1 -0
- package/dist/mux/types.d.ts +3 -2
- package/dist/mux/types.js +6 -2
- package/dist/mux/types.js.map +1 -1
- package/dist/observe/observe-command.js +112 -125
- package/dist/observe/observe-command.js.map +1 -1
- 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/persona-command.js +46 -76
- 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/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 +12 -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.js.map +1 -1
- package/dist/pipeline/generate-with-repair.js.map +1 -1
- package/dist/pipeline/pipeline-runner.d.ts +63 -4
- package/dist/pipeline/pipeline-runner.js +159 -50
- package/dist/pipeline/pipeline-runner.js.map +1 -1
- package/dist/pipeline/pipeline-shared.d.ts +32 -3
- package/dist/pipeline/pipeline-shared.js +76 -8
- package/dist/pipeline/pipeline-shared.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-schema-validator.js.map +1 -1
- package/dist/{mux → pty}/pty-bridge.d.ts +41 -3
- package/dist/{mux → pty}/pty-bridge.js +71 -18
- package/dist/pty/pty-bridge.js.map +1 -0
- package/dist/pty/resolve-ironcurtain-bin.d.ts +17 -0
- package/dist/pty/resolve-ironcurtain-bin.js +22 -0
- package/dist/pty/resolve-ironcurtain-bin.js.map +1 -0
- package/dist/sandbox/index.d.ts +19 -4
- package/dist/sandbox/index.js +31 -18
- package/dist/sandbox/index.js.map +1 -1
- package/dist/servers/fetch-server.js +2 -0
- package/dist/servers/fetch-server.js.map +1 -1
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.js +20 -2
- package/dist/session/index.js.map +1 -1
- package/dist/session/preflight.d.ts +20 -35
- package/dist/session/preflight.js +92 -109
- package/dist/session/preflight.js.map +1 -1
- package/dist/session/resource-budget-tracker.js +8 -0
- package/dist/session/resource-budget-tracker.js.map +1 -1
- package/dist/session/session-manager.d.ts +7 -0
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/types.d.ts +23 -0
- package/dist/signal/bot-command.js +6 -1
- package/dist/signal/bot-command.js.map +1 -1
- package/dist/signal/setup-signal.js +1 -1
- package/dist/signal/setup-signal.js.map +1 -1
- package/dist/signal/signal-bot-daemon.d.ts +1 -0
- package/dist/signal/signal-bot-daemon.js +9 -2
- package/dist/signal/signal-bot-daemon.js.map +1 -1
- package/dist/signal/signal-container.d.ts +3 -3
- package/dist/signal/signal-container.js +2 -2
- package/dist/signal/signal-container.js.map +1 -1
- package/dist/trusted-process/call-circuit-breaker.d.ts +6 -0
- package/dist/trusted-process/call-circuit-breaker.js +22 -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/mcp-error-utils.js +4 -1
- package/dist/trusted-process/mcp-error-utils.js.map +1 -1
- package/dist/trusted-process/mcp-proxy-server.js +37 -3
- package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
- package/dist/trusted-process/policy-engine.js +13 -2
- package/dist/trusted-process/policy-engine.js.map +1 -1
- package/dist/trusted-process/tcp-server-transport.d.ts +19 -1
- package/dist/trusted-process/tcp-server-transport.js +56 -10
- package/dist/trusted-process/tcp-server-transport.js.map +1 -1
- package/dist/trusted-process/tool-call-coordinator.d.ts +22 -8
- package/dist/trusted-process/tool-call-coordinator.js +149 -65
- package/dist/trusted-process/tool-call-coordinator.js.map +1 -1
- package/dist/trusted-process/tool-call-pipeline.d.ts +8 -0
- package/dist/trusted-process/tool-call-pipeline.js +68 -34
- package/dist/trusted-process/tool-call-pipeline.js.map +1 -1
- 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/preflight-checks.js +1 -3
- package/dist/utils/preflight-checks.js.map +1 -1
- package/dist/utils/stdio-guard.d.ts +1 -0
- package/dist/utils/stdio-guard.js +27 -0
- package/dist/utils/stdio-guard.js.map +1 -0
- package/dist/web-ui/__tests__/config-dispatch.test.d.ts +13 -0
- package/dist/web-ui/__tests__/config-dispatch.test.js +383 -0
- package/dist/web-ui/__tests__/config-dispatch.test.js.map +1 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +6 -0
- package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -1
- package/dist/web-ui/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/config-dispatch.d.ts +15 -0
- package/dist/web-ui/dispatch/config-dispatch.js +277 -0
- package/dist/web-ui/dispatch/config-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/escalation-dispatch.js +11 -2
- package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -1
- package/dist/web-ui/dispatch/persona-dispatch.d.ts +46 -2
- package/dist/web-ui/dispatch/persona-dispatch.js +209 -56
- package/dist/web-ui/dispatch/persona-dispatch.js.map +1 -1
- package/dist/web-ui/dispatch/pty-dispatch.d.ts +15 -0
- package/dist/web-ui/dispatch/pty-dispatch.js +66 -0
- package/dist/web-ui/dispatch/pty-dispatch.js.map +1 -0
- package/dist/web-ui/dispatch/session-dispatch.js +89 -6
- package/dist/web-ui/dispatch/session-dispatch.js.map +1 -1
- package/dist/web-ui/dispatch/types.d.ts +35 -0
- package/dist/web-ui/dispatch/types.js +42 -1
- package/dist/web-ui/dispatch/types.js.map +1 -1
- package/dist/web-ui/dispatch/workflow-dispatch.js +116 -5
- package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -1
- package/dist/web-ui/json-rpc-dispatch.js +4 -1
- package/dist/web-ui/json-rpc-dispatch.js.map +1 -1
- package/dist/web-ui/pty-session-manager.d.ts +234 -0
- package/dist/web-ui/pty-session-manager.js +599 -0
- package/dist/web-ui/pty-session-manager.js.map +1 -0
- package/dist/web-ui/web-event-bus.d.ts +34 -1
- package/dist/web-ui/web-event-bus.js.map +1 -1
- package/dist/web-ui/web-session-transport.js.map +1 -1
- package/dist/web-ui/web-ui-server.d.ts +22 -0
- package/dist/web-ui/web-ui-server.js +41 -0
- package/dist/web-ui/web-ui-server.js.map +1 -1
- package/dist/web-ui/web-ui-types.d.ts +212 -5
- package/dist/web-ui/web-ui-types.js.map +1 -1
- package/dist/web-ui-static/assets/index-CCVI4nEK.css +1 -0
- package/dist/web-ui-static/assets/index-Dm012gvY.js +114 -0
- package/dist/web-ui-static/index.html +2 -2
- package/dist/workflow/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.js +0 -2
- package/dist/workflow/cli-support.js.map +1 -1
- 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 +595 -0
- package/dist/workflow/daemon-gate-commands.js.map +1 -0
- package/dist/workflow/discovery.d.ts +29 -0
- package/dist/workflow/discovery.js +67 -7
- package/dist/workflow/discovery.js.map +1 -1
- 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.d.ts +7 -1
- package/dist/workflow/lint.js +186 -3
- package/dist/workflow/lint.js.map +1 -1
- package/dist/workflow/machine-builder.d.ts +90 -2
- package/dist/workflow/machine-builder.js +222 -29
- package/dist/workflow/machine-builder.js.map +1 -1
- package/dist/workflow/message-log.d.ts +15 -1
- package/dist/workflow/message-log.js.map +1 -1
- package/dist/workflow/orchestrator.d.ts +505 -1
- package/dist/workflow/orchestrator.js +1725 -69
- package/dist/workflow/orchestrator.js.map +1 -1
- package/dist/workflow/prompt-builder.js +2 -1
- package/dist/workflow/prompt-builder.js.map +1 -1
- package/dist/workflow/run-state-command.js +1 -1
- package/dist/workflow/run-state-command.js.map +1 -1
- package/dist/workflow/shutdown-signals.d.ts +7 -0
- package/dist/workflow/shutdown-signals.js +40 -0
- package/dist/workflow/shutdown-signals.js.map +1 -0
- package/dist/workflow/status-parser.js +19 -4
- package/dist/workflow/status-parser.js.map +1 -1
- package/dist/workflow/types.d.ts +123 -23
- package/dist/workflow/types.js +2 -0
- package/dist/workflow/types.js.map +1 -1
- package/dist/workflow/validate.d.ts +23 -1
- package/dist/workflow/validate.js +311 -22
- package/dist/workflow/validate.js.map +1 -1
- package/dist/workflow/workflow-command.d.ts +0 -17
- package/dist/workflow/workflow-command.js +118 -94
- package/dist/workflow/workflow-command.js.map +1 -1
- package/dist/workflow/workflow-discovery.d.ts +2 -0
- package/dist/workflow/workflow-discovery.js +22 -1
- package/dist/workflow/workflow-discovery.js.map +1 -1
- package/dist/workflow/workflow-manager.d.ts +34 -0
- package/dist/workflow/workflow-manager.js +52 -1
- package/dist/workflow/workflow-manager.js.map +1 -1
- package/dist/workflow/workflows/design-and-code/README.md +50 -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/README.md +66 -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/workflow.yaml +1 -0
- package/dist/workflow/workflows/vuln-discovery/README.md +54 -0
- package/dist/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +6 -1
- package/dist/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +1 -0
- package/dist/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +4 -0
- package/dist/workflow/workflows/vuln-discovery/workflow.yaml +13 -8
- package/docker/Dockerfile.base +22 -0
- package/docker/Dockerfile.base.arm64 +18 -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 +28 -45
- package/docker/entrypoint-codex.sh +42 -0
- package/docker/entrypoint-goose.sh +5 -24
- package/docker/entrypoint-uid-remap.sh +93 -0
- package/package.json +39 -30
- package/src/workflow/workflows/design-and-code/README.md +50 -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/README.md +66 -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/workflow.yaml +1 -0
- package/src/workflow/workflows/vuln-discovery/README.md +54 -0
- package/src/workflow/workflows/vuln-discovery/skills/harness-design-fuzzing/SKILL.md +6 -1
- package/src/workflow/workflows/vuln-discovery/skills/memory-safety-c-cpp/SKILL.md +1 -0
- package/src/workflow/workflows/vuln-discovery/skills/vulnerability-triage/SKILL.md +4 -0
- package/src/workflow/workflows/vuln-discovery/workflow.yaml +13 -8
- package/dist/mux/pty-bridge.js.map +0 -1
- package/dist/mux/trusted-input.js.map +0 -1
- package/dist/web-ui-static/assets/index-BFO5z1js.js +0 -76
- package/dist/web-ui-static/assets/index-CCUwrkIL.css +0 -1
- package/packages/web-ui/README.md +0 -113
|
@@ -11,11 +11,26 @@
|
|
|
11
11
|
* 1. Code Mode instructions (from session/prompts.ts) for tool discovery
|
|
12
12
|
* 2. Docker environment context explaining workspace, host access, and policy
|
|
13
13
|
*/
|
|
14
|
+
import { OPENROUTER_BASE_URL, OPENROUTER_HOST } from '../../config/user-config.js';
|
|
14
15
|
import { parseModelId } from '../../config/model-provider.js';
|
|
16
|
+
import { makeOpenRouterProviderForProfile, openRouterCredential, resolveMappedModel } from '../openrouter.js';
|
|
15
17
|
import { anthropicProvider, claudePlatformProvider, anthropicOAuthProvider, claudePlatformOAuthProvider, } from '../provider-config.js';
|
|
16
18
|
import { buildSystemPrompt } from '../../session/prompts.js';
|
|
17
19
|
import { buildResizePtyScript, buildCheckPtySizeScript, buildNetworkSection, buildPolicySection, buildAttributionSection, } from './shared-scripts.js';
|
|
18
20
|
const CLAUDE_CODE_IMAGE = 'ironcurtain-claude-code:latest';
|
|
21
|
+
/**
|
|
22
|
+
* Claude Code streaming-watchdog tuning vars forwarded from the host env into
|
|
23
|
+
* the container when set (see `buildEnv`). Curated allowlist — these govern
|
|
24
|
+
* the idle-stream abort ("Response stalled mid-stream", issue #367) and let it
|
|
25
|
+
* be exercised against the MITM stream-delay knob without rebuilding the image.
|
|
26
|
+
*/
|
|
27
|
+
const WATCHDOG_ENV_PASSTHROUGH = [
|
|
28
|
+
'CLAUDE_STREAM_IDLE_TIMEOUT_MS',
|
|
29
|
+
'CLAUDE_ENABLE_STREAM_WATCHDOG',
|
|
30
|
+
'CLAUDE_ENABLE_BYTE_WATCHDOG',
|
|
31
|
+
'API_FORCE_IDLE_TIMEOUT',
|
|
32
|
+
'API_TIMEOUT_MS',
|
|
33
|
+
];
|
|
19
34
|
/**
|
|
20
35
|
* Container path used as the parent for Claude Code's skill discovery.
|
|
21
36
|
* Claude Code's `--add-dir <path>` flag scans `<path>/.claude/skills/`,
|
|
@@ -84,6 +99,10 @@ export function createClaudeCodeAdapter(userConfig) {
|
|
|
84
99
|
async getImage() {
|
|
85
100
|
return CLAUDE_CODE_IMAGE;
|
|
86
101
|
},
|
|
102
|
+
// Claude Code is installed unpinned in the image; log the resolved version
|
|
103
|
+
// at infra prep so a silent minor bump (which can change subagent semantics
|
|
104
|
+
// — issue #367) is visible.
|
|
105
|
+
versionProbe: ['claude', '--version'],
|
|
87
106
|
// Generates MCP config file passed via --mcp-config on the command line.
|
|
88
107
|
// socketPath is either a UDS path or a TCP host:port address.
|
|
89
108
|
generateMcpConfig(socketPath) {
|
|
@@ -193,21 +212,103 @@ exit $STATUS
|
|
|
193
212
|
const dockerPrompt = buildDockerEnvironmentPrompt(context);
|
|
194
213
|
return `${codeModePrompt}\n${dockerPrompt}`;
|
|
195
214
|
},
|
|
196
|
-
getProviders(authKind) {
|
|
215
|
+
getProviders(config, authKind) {
|
|
216
|
+
const profile = config.activeProviderProfile;
|
|
217
|
+
if (profile?.type === 'openrouter') {
|
|
218
|
+
// OpenRouter routing: the single bearer-auth provider replaces both
|
|
219
|
+
// the Anthropic API and telemetry providers (and the OAuth pair). No
|
|
220
|
+
// api.anthropic.com host is allowlisted (decision B); Claude Code's
|
|
221
|
+
// telemetry calls are simply blocked at CONNECT.
|
|
222
|
+
return [makeOpenRouterProviderForProfile('messages', profile, 'claude-code')];
|
|
223
|
+
}
|
|
197
224
|
if (authKind === 'oauth') {
|
|
198
225
|
return [anthropicOAuthProvider, claudePlatformOAuthProvider];
|
|
199
226
|
}
|
|
200
227
|
return [anthropicProvider, claudePlatformProvider];
|
|
201
228
|
},
|
|
229
|
+
detectCredential(config) {
|
|
230
|
+
// B2a/B2b: an OpenRouter-only user has no Anthropic OAuth/API key, so the
|
|
231
|
+
// generic detectAuthMethod() would throw. openRouterCredential reports an
|
|
232
|
+
// api-key AuthMethod for a keyed OpenRouter profile (authKind ⇒ 'apikey'),
|
|
233
|
+
// { kind: 'none' } for an empty-key profile (feeds m5), and `undefined`
|
|
234
|
+
// for a native profile — DEFERRING to detectAuthMethod() and preserving
|
|
235
|
+
// today's OAuth+API-key detection byte-for-byte.
|
|
236
|
+
return openRouterCredential(config);
|
|
237
|
+
},
|
|
202
238
|
buildEnv(config, fakeKeys) {
|
|
203
239
|
const env = {
|
|
204
240
|
CLAUDE_CODE_DISABLE_UPDATE_CHECK: '1',
|
|
205
241
|
// Node.js does not use the system CA store -- must set this explicitly
|
|
206
242
|
NODE_EXTRA_CA_CERTS: '/usr/local/share/ca-certificates/ironcurtain-ca.crt',
|
|
243
|
+
// Force subagents (Agent/Task tool) and `run_in_background` to run in the
|
|
244
|
+
// FOREGROUND (synchronously), disabling auto-backgrounding. As of Claude
|
|
245
|
+
// Code v2.1.198 subagents run in the *background* by default: the tool
|
|
246
|
+
// returns immediately and the parent is "notified automatically when it
|
|
247
|
+
// completes" via a persistent supervisor that re-fires the session. We
|
|
248
|
+
// invoke `claude -p` as a one-shot subprocess with no such supervisor, so
|
|
249
|
+
// when a workflow agent (e.g. vuln-discovery `analyze`) fans out to
|
|
250
|
+
// parallel subagents, the turn never receives their completions and stalls
|
|
251
|
+
// ("Response stalled mid-stream" / no `agent_status` block). This env var
|
|
252
|
+
// restores the pre-2.1.198 synchronous behavior, which the FSM's
|
|
253
|
+
// one-turn=one-result model requires. See docs/en/env-vars.
|
|
254
|
+
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS: '1',
|
|
255
|
+
// Disable the streaming idle watchdog (on by default since Claude
|
|
256
|
+
// Code v2.1.196). Behind the MITM proxy, long tool-use turns and
|
|
257
|
+
// SSE re-buffering trip the watchdog's idle threshold, which
|
|
258
|
+
// aborts the request with "API Error: Response stalled
|
|
259
|
+
// mid-stream" — the actual root cause of issue #367 (PR #372's
|
|
260
|
+
// background-task fix alone did not resolve it). Turning the
|
|
261
|
+
// watchdog off restores the pre-2.1.196 behavior; the workflow
|
|
262
|
+
// orchestrator already enforces its own wall-clock/step budgets.
|
|
263
|
+
CLAUDE_ENABLE_STREAM_WATCHDOG: '0',
|
|
207
264
|
};
|
|
265
|
+
// DEBUG / operability (issue #367 watchdog harness): forward a curated
|
|
266
|
+
// allowlist of Claude Code streaming-watchdog tuning vars from the host
|
|
267
|
+
// env into the container when set. Lets the streaming idle watchdog be
|
|
268
|
+
// exercised against the MITM stream-delay knob (see stream-delay.ts)
|
|
269
|
+
// without rebuilding the image. No-op unless the host sets them.
|
|
270
|
+
for (const key of WATCHDOG_ENV_PASSTHROUGH) {
|
|
271
|
+
const value = process.env[key];
|
|
272
|
+
if (value !== undefined)
|
|
273
|
+
env[key] = value;
|
|
274
|
+
}
|
|
208
275
|
if (modelId) {
|
|
209
276
|
env.IRONCURTAIN_MODEL = modelId;
|
|
210
277
|
}
|
|
278
|
+
const profile = config.activeProviderProfile;
|
|
279
|
+
if (profile?.type === 'openrouter') {
|
|
280
|
+
// B2c: OpenRouter mode auth-var exclusivity. Claude Code sends its
|
|
281
|
+
// credential as `Authorization: Bearer` ONLY when it comes from
|
|
282
|
+
// ANTHROPIC_AUTH_TOKEN (not ANTHROPIC_API_KEY, which is sent as
|
|
283
|
+
// x-api-key). We therefore inject the sentinel via ANTHROPIC_AUTH_TOKEN
|
|
284
|
+
// and set NEITHER CLAUDE_CODE_OAUTH_TOKEN NOR IRONCURTAIN_API_KEY — even
|
|
285
|
+
// when host OAuth creds exist (OpenRouter overrides OAuth detection).
|
|
286
|
+
const fakeKey = fakeKeys.get(OPENROUTER_HOST);
|
|
287
|
+
if (!fakeKey) {
|
|
288
|
+
throw new Error(`No fake key generated for ${OPENROUTER_HOST} — cannot configure Claude Code OpenRouter authentication`);
|
|
289
|
+
}
|
|
290
|
+
env.ANTHROPIC_BASE_URL = OPENROUTER_BASE_URL;
|
|
291
|
+
env.ANTHROPIC_AUTH_TOKEN = fakeKey;
|
|
292
|
+
// Suppress Anthropic-only pre-release beta fields (e.g. context_management)
|
|
293
|
+
// that non-Anthropic upstreams reject (§4.3 belt; the MITM strips too).
|
|
294
|
+
env.CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS = '1';
|
|
295
|
+
// m2: per-tier model hints for the agent's own context budgeting /
|
|
296
|
+
// [1m] handling. The MITM does the authoritative remap; these are hints
|
|
297
|
+
// only. Each resolves as perAgent['claude-code'] ?? glob-map(probe) ??
|
|
298
|
+
// omit (the DEFAULT_MODEL_MAP *sonnet*/*opus*/*haiku* globs match these
|
|
299
|
+
// probe strings).
|
|
300
|
+
const perAgent = profile.perAgent['claude-code'];
|
|
301
|
+
const sonnet = perAgent ?? resolveMappedModel('claude-sonnet', profile.modelMap);
|
|
302
|
+
const opus = perAgent ?? resolveMappedModel('claude-opus', profile.modelMap);
|
|
303
|
+
const haiku = perAgent ?? resolveMappedModel('claude-haiku', profile.modelMap);
|
|
304
|
+
if (sonnet !== undefined)
|
|
305
|
+
env.ANTHROPIC_DEFAULT_SONNET_MODEL = sonnet;
|
|
306
|
+
if (opus !== undefined)
|
|
307
|
+
env.ANTHROPIC_DEFAULT_OPUS_MODEL = opus;
|
|
308
|
+
if (haiku !== undefined)
|
|
309
|
+
env.ANTHROPIC_DEFAULT_HAIKU_MODEL = haiku;
|
|
310
|
+
return env;
|
|
311
|
+
}
|
|
211
312
|
const fakeKey = fakeKeys.get('api.anthropic.com');
|
|
212
313
|
if (!fakeKey) {
|
|
213
314
|
throw new Error('No fake key generated for api.anthropic.com — cannot configure Claude Code authentication');
|
|
@@ -264,6 +365,13 @@ exit $STATUS
|
|
|
264
365
|
const hardFailure = stdout.trim().length === 0;
|
|
265
366
|
return { text: `Agent exited with code ${exitCode}.\n\nOutput:\n${stdout}`, hardFailure };
|
|
266
367
|
}
|
|
368
|
+
if (stdout.trim().length === 0) {
|
|
369
|
+
return {
|
|
370
|
+
text: 'Claude Code exited without producing output. Check the session log for startup failures ' +
|
|
371
|
+
'(for example, exhausted Docker storage).',
|
|
372
|
+
hardFailure: true,
|
|
373
|
+
};
|
|
374
|
+
}
|
|
267
375
|
return parseClaudeCodeJson(stdout);
|
|
268
376
|
},
|
|
269
377
|
buildPtyCommand(_systemPrompt, ptySockPath, ptyPort) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/docker/adapters/claude-code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/docker/adapters/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex CLI adapter for Docker Agent Mode.
|
|
3
|
+
*
|
|
4
|
+
* Runs OpenAI Codex CLI non-interactively through the same container,
|
|
5
|
+
* MCP proxy, and MITM fake-token path as other Docker agents. The adapter
|
|
6
|
+
* uses Codex's ChatGPT OAuth/access-token flow, not OPENAI_API_KEY.
|
|
7
|
+
*/
|
|
8
|
+
import type { AgentAdapter } from '../agent-adapter.js';
|
|
9
|
+
import type { ResolvedUserConfig } from '../../config/user-config.js';
|
|
10
|
+
/**
|
|
11
|
+
* @param userConfig - Resolved user config, accepted for factory-signature
|
|
12
|
+
* symmetry with the other adapters (m3). Codex reads no non-profile field
|
|
13
|
+
* from it today; the ACTIVE PROFILE is read from the per-session stamped
|
|
14
|
+
* `config.activeProviderProfile` at method-call time, never captured here
|
|
15
|
+
* (§9 F1 — a factory-captured profile would leak across the process-global
|
|
16
|
+
* registry's cached instance).
|
|
17
|
+
*/
|
|
18
|
+
export declare function createCodexAdapter(userConfig?: ResolvedUserConfig): AgentAdapter;
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codex CLI adapter for Docker Agent Mode.
|
|
3
|
+
*
|
|
4
|
+
* Runs OpenAI Codex CLI non-interactively through the same container,
|
|
5
|
+
* MCP proxy, and MITM fake-token path as other Docker agents. The adapter
|
|
6
|
+
* uses Codex's ChatGPT OAuth/access-token flow, not OPENAI_API_KEY.
|
|
7
|
+
*/
|
|
8
|
+
import { DEFAULT_GLM_SLUG, OPENROUTER_API_V1, OPENROUTER_HOST } from '../../config/user-config.js';
|
|
9
|
+
import { buildSystemPrompt } from '../../session/prompts.js';
|
|
10
|
+
import { codexAuthProvider, codexChatGptProvider } from '../provider-config.js';
|
|
11
|
+
import { makeOpenRouterProviderForProfile, openRouterCredential, resolveMappedModel } from '../openrouter.js';
|
|
12
|
+
import { loadCodexOAuthCredentials } from '../oauth-credentials.js';
|
|
13
|
+
import { parseModelId } from '../../config/model-provider.js';
|
|
14
|
+
import { buildAttributionSection, buildCheckPtySizeScript, buildNetworkSection, buildPolicySection, buildResizePtyScript, } from './shared-scripts.js';
|
|
15
|
+
const CODEX_IMAGE = 'ironcurtain-codex:latest';
|
|
16
|
+
const CODEX_FAKE_ID_TOKEN = 'eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.' +
|
|
17
|
+
'eyJlbWFpbCI6Imlyb25jdXJ0YWluQGV4YW1wbGUuaW52YWxpZCIsImh0dHBzOi8vYXBpLm9wZW5haS5jb20vYXV0aCI6eyJjaGF0Z3B0X3BsYW5fdHlwZSI6InBybyIsImNoYXRncHRfdXNlcl9pZCI6Imlyb25jdXJ0YWluLXVzZXIiLCJjaGF0Z3B0X2FjY291bnRfaWQiOiJpcm9uY3VydGFpbi1hY2NvdW50IiwiY2hhdGdwdF9hY2NvdW50X2lzX2ZlZHJhbXAiOmZhbHNlfX0.' +
|
|
18
|
+
'c2ln';
|
|
19
|
+
function tomlString(value) {
|
|
20
|
+
return JSON.stringify(value);
|
|
21
|
+
}
|
|
22
|
+
function buildCodexDockerEnvironmentPrompt(context) {
|
|
23
|
+
return `## Docker Environment
|
|
24
|
+
|
|
25
|
+
### Workspace (\`${context.workspaceDir}\`)
|
|
26
|
+
This is your workspace inside the container. You have full access here.
|
|
27
|
+
For local file operations inside ${context.workspaceDir}, use your built-in shell tools.
|
|
28
|
+
|
|
29
|
+
### External Operations (MCP tools)
|
|
30
|
+
Use the IronCurtain MCP server for operations that require external access:
|
|
31
|
+
- Network requests (HTTP fetches, web searches, API calls)
|
|
32
|
+
- Git remote operations (clone, push, pull, fetch)
|
|
33
|
+
- Reading files outside ${context.workspaceDir}
|
|
34
|
+
|
|
35
|
+
After cloning a repo or writing files via MCP tools, use your built-in
|
|
36
|
+
tools for subsequent file operations.
|
|
37
|
+
|
|
38
|
+
${buildNetworkSection('the IronCurtain MCP tools')}
|
|
39
|
+
${buildPolicySection('MCP tool call')}
|
|
40
|
+
${buildAttributionSection()}`;
|
|
41
|
+
}
|
|
42
|
+
function buildStartScript() {
|
|
43
|
+
return `#!/bin/bash
|
|
44
|
+
if [ -n "$IRONCURTAIN_INITIAL_COLS" ] && [ -n "$IRONCURTAIN_INITIAL_ROWS" ]; then
|
|
45
|
+
stty cols "$IRONCURTAIN_INITIAL_COLS" rows "$IRONCURTAIN_INITIAL_ROWS" 2>/dev/null
|
|
46
|
+
fi
|
|
47
|
+
cd /workspace
|
|
48
|
+
|
|
49
|
+
MODEL_ARGS=()
|
|
50
|
+
if [ -n "$IRONCURTAIN_MODEL" ]; then
|
|
51
|
+
MODEL_ARGS=(--model "$IRONCURTAIN_MODEL")
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
exec codex --ask-for-approval never --sandbox danger-full-access "\${MODEL_ARGS[@]}" --cd /workspace
|
|
55
|
+
`;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Codex slug under an openrouter-type profile (D2). Codex has NO native model
|
|
59
|
+
* field in IronCurtain config, so the slug is `perAgent.codex`, else the
|
|
60
|
+
* `DEFAULT_GLM_SLUG` run through the profile's `modelMap` — never an unmapped
|
|
61
|
+
* passthrough (a non-matching map falls back to `DEFAULT_GLM_SLUG`).
|
|
62
|
+
*
|
|
63
|
+
* Applying the map here is what keeps `config.toml`'s `model` consistent with
|
|
64
|
+
* the model the MITM rewriter actually serves: the rewriter (D1) re-globs
|
|
65
|
+
* whatever Codex sends, so without the same map the container would budget its
|
|
66
|
+
* context window for one model while being routed to another.
|
|
67
|
+
*/
|
|
68
|
+
function codexSlugFor(profile) {
|
|
69
|
+
return profile.perAgent.codex ?? resolveMappedModel(DEFAULT_GLM_SLUG, profile.modelMap) ?? DEFAULT_GLM_SLUG;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Builds the Codex `config.toml` string. Under an openrouter-type profile the
|
|
73
|
+
* two root keys (`model`, `model_provider`) are PREPENDED before the first
|
|
74
|
+
* `[table]` (TOML is order-sensitive — root keys must precede any table header,
|
|
75
|
+
* §4.6/B1), and the `[model_providers.openrouter]` table is APPENDED.
|
|
76
|
+
*/
|
|
77
|
+
function buildCodexToml(connectTarget, profile) {
|
|
78
|
+
const rootKeys = ['cli_auth_credentials_store = "file"', 'project_doc_fallback_filenames = ["CLAUDE.md"]'];
|
|
79
|
+
const openrouterRootKeys = profile
|
|
80
|
+
? [`model = ${tomlString(codexSlugFor(profile))}`, 'model_provider = "openrouter"']
|
|
81
|
+
: [];
|
|
82
|
+
const openrouterProviderTable = profile
|
|
83
|
+
? [
|
|
84
|
+
'',
|
|
85
|
+
'[model_providers.openrouter]',
|
|
86
|
+
`base_url = ${tomlString(OPENROUTER_API_V1)}`,
|
|
87
|
+
'env_key = "OPENROUTER_API_KEY"',
|
|
88
|
+
'wire_api = "responses"',
|
|
89
|
+
]
|
|
90
|
+
: [];
|
|
91
|
+
return [
|
|
92
|
+
...openrouterRootKeys,
|
|
93
|
+
...rootKeys,
|
|
94
|
+
'',
|
|
95
|
+
'[projects."/workspace"]',
|
|
96
|
+
'trust_level = "trusted"',
|
|
97
|
+
...openrouterProviderTable,
|
|
98
|
+
'',
|
|
99
|
+
'[mcp_servers.ironcurtain]',
|
|
100
|
+
'command = "socat"',
|
|
101
|
+
`args = ["STDIO", ${tomlString(connectTarget)}]`,
|
|
102
|
+
'startup_timeout_sec = 20',
|
|
103
|
+
'tool_timeout_sec = 600',
|
|
104
|
+
'default_tools_approval_mode = "auto"',
|
|
105
|
+
'',
|
|
106
|
+
].join('\n');
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @param userConfig - Resolved user config, accepted for factory-signature
|
|
110
|
+
* symmetry with the other adapters (m3). Codex reads no non-profile field
|
|
111
|
+
* from it today; the ACTIVE PROFILE is read from the per-session stamped
|
|
112
|
+
* `config.activeProviderProfile` at method-call time, never captured here
|
|
113
|
+
* (§9 F1 — a factory-captured profile would leak across the process-global
|
|
114
|
+
* registry's cached instance).
|
|
115
|
+
*/
|
|
116
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- userConfig kept for factory-signature symmetry (m3)
|
|
117
|
+
export function createCodexAdapter(userConfig) {
|
|
118
|
+
return {
|
|
119
|
+
id: 'codex',
|
|
120
|
+
displayName: 'Codex CLI',
|
|
121
|
+
credentialHelpText: 'No Codex OAuth credentials found. Run `codex login` on the host; OPENAI_API_KEY is not required.',
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/require-await -- interface requires Promise return
|
|
123
|
+
async getImage() {
|
|
124
|
+
return CODEX_IMAGE;
|
|
125
|
+
},
|
|
126
|
+
generateMcpConfig(socketPath, config) {
|
|
127
|
+
const isTcp = socketPath.includes(':');
|
|
128
|
+
const connectTarget = isTcp ? `TCP:${socketPath}` : `UNIX-CONNECT:${socketPath}`;
|
|
129
|
+
const profile = config.activeProviderProfile;
|
|
130
|
+
const openrouterProfile = profile?.type === 'openrouter' ? profile : undefined;
|
|
131
|
+
const toml = buildCodexToml(connectTarget, openrouterProfile);
|
|
132
|
+
return [{ path: 'codex-config.toml', content: toml }];
|
|
133
|
+
},
|
|
134
|
+
generateOrientationFiles() {
|
|
135
|
+
return [
|
|
136
|
+
{ path: 'start-codex.sh', content: buildStartScript(), mode: 0o755 },
|
|
137
|
+
{ path: 'resize-pty.sh', content: buildResizePtyScript('codex'), mode: 0o755 },
|
|
138
|
+
{ path: 'check-pty-size.sh', content: buildCheckPtySizeScript('codex'), mode: 0o755 },
|
|
139
|
+
];
|
|
140
|
+
},
|
|
141
|
+
buildCommand(message, systemPrompt, options) {
|
|
142
|
+
const prompt = `${systemPrompt}\n\n---\n\nUser request:\n${message}`;
|
|
143
|
+
const cmd = ['codex', '--ask-for-approval', 'never', '--sandbox', 'danger-full-access'];
|
|
144
|
+
if (options.modelOverride) {
|
|
145
|
+
cmd.push('--model', parseModelId(options.modelOverride).modelId);
|
|
146
|
+
}
|
|
147
|
+
cmd.push('exec', '--json', '--skip-git-repo-check', '--cd', '/workspace', prompt);
|
|
148
|
+
return cmd;
|
|
149
|
+
},
|
|
150
|
+
buildSystemPrompt(context) {
|
|
151
|
+
const codeModePrompt = buildSystemPrompt(context.serverListings, context.hostSandboxDir);
|
|
152
|
+
const dockerPrompt = buildCodexDockerEnvironmentPrompt(context);
|
|
153
|
+
return `${codeModePrompt}\n${dockerPrompt}`;
|
|
154
|
+
},
|
|
155
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- authKind kept for adapter interface symmetry
|
|
156
|
+
getProviders(config, _authKind) {
|
|
157
|
+
const profile = config.activeProviderProfile;
|
|
158
|
+
if (profile?.type === 'openrouter') {
|
|
159
|
+
// Codex speaks the Responses wire format; the bearer OpenRouter provider
|
|
160
|
+
// replaces the ChatGPT OAuth providers entirely.
|
|
161
|
+
return [makeOpenRouterProviderForProfile('responses', profile, 'codex')];
|
|
162
|
+
}
|
|
163
|
+
return [codexChatGptProvider, codexAuthProvider];
|
|
164
|
+
},
|
|
165
|
+
buildEnv(config, fakeKeys) {
|
|
166
|
+
const profile = config.activeProviderProfile;
|
|
167
|
+
if (profile?.type === 'openrouter') {
|
|
168
|
+
// OpenRouter mode: Codex reads OPENROUTER_API_KEY (referenced by the
|
|
169
|
+
// generated config.toml's env_key). Drop the Codex OAuth token env
|
|
170
|
+
// entirely — the ChatGPT auth flow is not used here.
|
|
171
|
+
const fakeKey = fakeKeys.get(OPENROUTER_HOST);
|
|
172
|
+
if (!fakeKey) {
|
|
173
|
+
throw new Error(`No fake key generated for ${OPENROUTER_HOST} — cannot configure Codex OpenRouter authentication`);
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
CODEX_HOME: '/home/codespace/.codex',
|
|
177
|
+
OPENROUTER_API_KEY: fakeKey,
|
|
178
|
+
CODEX_CA_CERTIFICATE: '/usr/local/share/ca-certificates/ironcurtain-ca.crt',
|
|
179
|
+
SSL_CERT_FILE: '/etc/ssl/certs/ca-certificates.crt',
|
|
180
|
+
RUST_LOG: 'error',
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
const fakeToken = fakeKeys.get('chatgpt.com');
|
|
184
|
+
if (!fakeToken) {
|
|
185
|
+
throw new Error('No fake token generated for chatgpt.com — cannot configure Codex authentication');
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
CODEX_HOME: '/home/codespace/.codex',
|
|
189
|
+
IRONCURTAIN_CODEX_ACCESS_TOKEN: fakeToken,
|
|
190
|
+
IRONCURTAIN_CODEX_ID_TOKEN: CODEX_FAKE_ID_TOKEN,
|
|
191
|
+
IRONCURTAIN_CODEX_ACCOUNT_ID: 'ironcurtain-account',
|
|
192
|
+
CODEX_CA_CERTIFICATE: '/usr/local/share/ca-certificates/ironcurtain-ca.crt',
|
|
193
|
+
SSL_CERT_FILE: '/etc/ssl/certs/ca-certificates.crt',
|
|
194
|
+
RUST_LOG: 'error',
|
|
195
|
+
};
|
|
196
|
+
},
|
|
197
|
+
/**
|
|
198
|
+
* NOTE on quota / transient-failure handling and the assumed Codex
|
|
199
|
+
* envelope schema.
|
|
200
|
+
*
|
|
201
|
+
* Codex `exec --json` emits a JSONL event stream, one JSON object per
|
|
202
|
+
* line. The happy path carries `item.completed` events whose `item.type`
|
|
203
|
+
* is `agent_message` (the model's text). We CANNOT confirm Codex's exact
|
|
204
|
+
* failure-event schema from the repo, so detection is intentionally
|
|
205
|
+
* conservative and generic (see `scanCodexEvents`):
|
|
206
|
+
*
|
|
207
|
+
* - A top-level event is treated as a failure when its `type` ends in
|
|
208
|
+
* `.failed` (e.g. `turn.failed`) or equals `error`, OR when its
|
|
209
|
+
* `item.type` is `error`. We pull a human-readable message from the
|
|
210
|
+
* event's / item's `error.message`, `message`, or `text` field.
|
|
211
|
+
* - From that failure message (plus the non-zero-exit stderr/stdout on
|
|
212
|
+
* the error path), `withFailureSignal` does narrow, string-based
|
|
213
|
+
* matching: a rate-limit / usage-limit / quota / HTTP-429 hit sets
|
|
214
|
+
* `quotaExhausted` (the orchestrator pauses-and-resumes instead of
|
|
215
|
+
* burning the run); anything else error-shaped sets a transient
|
|
216
|
+
* `degenerate_response` failure.
|
|
217
|
+
*
|
|
218
|
+
* Detection is deliberately narrow so it cannot misfire on normal
|
|
219
|
+
* output: the happy-path return value below is byte-identical to the
|
|
220
|
+
* previous implementation (last `agent_message`, else raw stdout). See
|
|
221
|
+
* the Claude Code adapter (`adapters/claude-code.ts`) for the canonical
|
|
222
|
+
* contract and `AgentResponse.quotaExhausted` / `transientFailure` in
|
|
223
|
+
* `../agent-adapter.ts` for the interface requirement.
|
|
224
|
+
*/
|
|
225
|
+
extractResponse(exitCode, stdout, stderr) {
|
|
226
|
+
const clean = stdout.trim();
|
|
227
|
+
const scan = scanCodexEvents(clean);
|
|
228
|
+
if (exitCode !== 0) {
|
|
229
|
+
const errorOutput = [clean, stderr?.trim()].filter((part) => part && part.length > 0).join('\n\n');
|
|
230
|
+
const baseText = `Codex exited with code ${exitCode}.\n\nOutput:\n${errorOutput}`;
|
|
231
|
+
// Combine any in-band failure message with the raw error output so a
|
|
232
|
+
// 429 surfaced either in-band OR only in stderr/stdout is detected.
|
|
233
|
+
const probe = [scan.errorMessage, clean, stderr].filter((p) => p && p.length > 0).join('\n');
|
|
234
|
+
return withFailureSignal({ text: baseText }, probe);
|
|
235
|
+
}
|
|
236
|
+
// Exit 0: prefer the model's final message. If none is present but the
|
|
237
|
+
// stream carried a failure event, describe the failure (and attach the
|
|
238
|
+
// structured signal) instead of dumping a raw JSONL line.
|
|
239
|
+
if (scan.finalMessage) {
|
|
240
|
+
return { text: scan.finalMessage };
|
|
241
|
+
}
|
|
242
|
+
if (scan.errorMessage) {
|
|
243
|
+
return withFailureSignal({ text: `Codex reported an error:\n\n${scan.errorMessage}` }, scan.errorMessage);
|
|
244
|
+
}
|
|
245
|
+
return { text: clean };
|
|
246
|
+
},
|
|
247
|
+
buildPtyCommand(_systemPrompt, ptySockPath, ptyPort) {
|
|
248
|
+
const listenArg = ptySockPath ? `UNIX-LISTEN:${ptySockPath},fork` : `TCP-LISTEN:${ptyPort},reuseaddr`;
|
|
249
|
+
return ['socat', listenArg, 'EXEC:/etc/ironcurtain/start-codex.sh,pty,setsid,ctty,stderr,rawer'];
|
|
250
|
+
},
|
|
251
|
+
detectCredential(config) {
|
|
252
|
+
// OpenRouter mode: credential presence is the profile's non-empty apiKey
|
|
253
|
+
// (no `codex login` needed); empty ⇒ 'none' (feeds m5). Native ⇒ undefined,
|
|
254
|
+
// so fall through to Codex ChatGPT OAuth detection.
|
|
255
|
+
const openRouter = openRouterCredential(config);
|
|
256
|
+
if (openRouter)
|
|
257
|
+
return openRouter;
|
|
258
|
+
const credentials = loadCodexOAuthCredentials();
|
|
259
|
+
if (!credentials)
|
|
260
|
+
return { kind: 'none' };
|
|
261
|
+
return {
|
|
262
|
+
kind: 'oauth',
|
|
263
|
+
credentials: {
|
|
264
|
+
accessToken: credentials.accessToken,
|
|
265
|
+
refreshToken: credentials.refreshToken,
|
|
266
|
+
expiresAt: credentials.expiresAt,
|
|
267
|
+
},
|
|
268
|
+
source: 'file',
|
|
269
|
+
};
|
|
270
|
+
},
|
|
271
|
+
getConversationStateConfig() {
|
|
272
|
+
return {
|
|
273
|
+
hostDirName: 'codex-state',
|
|
274
|
+
containerMountPath: '/home/codespace/.codex/',
|
|
275
|
+
seed: [
|
|
276
|
+
{ path: 'sessions/', content: '' },
|
|
277
|
+
{ path: 'logs/', content: '' },
|
|
278
|
+
],
|
|
279
|
+
resumeFlags: [],
|
|
280
|
+
};
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Single-pass scan over the Codex `exec --json` JSONL stream.
|
|
286
|
+
*
|
|
287
|
+
* Collects the last `agent_message` text and the first detected
|
|
288
|
+
* failure/error message. Malformed/truncated lines are skipped (the JSONL
|
|
289
|
+
* stream can be truncated when a process is killed), so a valid
|
|
290
|
+
* `agent_message` on a later line is still recovered.
|
|
291
|
+
*/
|
|
292
|
+
function scanCodexEvents(stdout) {
|
|
293
|
+
if (stdout.length === 0)
|
|
294
|
+
return { finalMessage: null, errorMessage: null };
|
|
295
|
+
let lastAgentMessage = null;
|
|
296
|
+
let errorMessage = null;
|
|
297
|
+
for (const line of stdout.split(/\r?\n/)) {
|
|
298
|
+
if (line.trim().length === 0)
|
|
299
|
+
continue;
|
|
300
|
+
let parsed;
|
|
301
|
+
try {
|
|
302
|
+
parsed = JSON.parse(line);
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
if (!parsed || typeof parsed !== 'object')
|
|
308
|
+
continue;
|
|
309
|
+
const event = parsed;
|
|
310
|
+
const item = event.item && typeof event.item === 'object' ? event.item : undefined;
|
|
311
|
+
if (item && item.type === 'agent_message' && typeof item.text === 'string') {
|
|
312
|
+
lastAgentMessage = item.text;
|
|
313
|
+
}
|
|
314
|
+
if (errorMessage === null) {
|
|
315
|
+
errorMessage = extractCodexErrorMessage(event, item);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return { finalMessage: lastAgentMessage?.trim() || null, errorMessage };
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Recognizes a Codex failure/error envelope generically (the exact schema
|
|
322
|
+
* is not confirmable from the repo): a top-level `type` ending in `.failed`
|
|
323
|
+
* or equal to `error`, or an item whose `type` is `error`. Returns a
|
|
324
|
+
* best-effort human-readable message, or null when the event is not a
|
|
325
|
+
* failure shape.
|
|
326
|
+
*/
|
|
327
|
+
function extractCodexErrorMessage(event, item) {
|
|
328
|
+
const eventType = typeof event.type === 'string' ? event.type : undefined;
|
|
329
|
+
const isEventFailure = eventType !== undefined && (eventType.endsWith('.failed') || eventType === 'error');
|
|
330
|
+
const isItemFailure = item !== undefined && item.type === 'error';
|
|
331
|
+
if (!isEventFailure && !isItemFailure)
|
|
332
|
+
return null;
|
|
333
|
+
return pickErrorMessage(event) ?? (item ? pickErrorMessage(item) : undefined) ?? eventType ?? 'unknown Codex error';
|
|
334
|
+
}
|
|
335
|
+
/** Pulls a message string from an `error.message` / `message` / `text` field. */
|
|
336
|
+
function pickErrorMessage(obj) {
|
|
337
|
+
const nested = obj.error;
|
|
338
|
+
if (nested && typeof nested === 'object') {
|
|
339
|
+
const msg = nested.message;
|
|
340
|
+
if (typeof msg === 'string' && msg.length > 0)
|
|
341
|
+
return msg;
|
|
342
|
+
}
|
|
343
|
+
if (typeof obj.message === 'string' && obj.message.length > 0)
|
|
344
|
+
return obj.message;
|
|
345
|
+
if (typeof obj.text === 'string' && obj.text.length > 0)
|
|
346
|
+
return obj.text;
|
|
347
|
+
return undefined;
|
|
348
|
+
}
|
|
349
|
+
/** Narrow, case-insensitive substring matches for upstream quota/rate-limit. */
|
|
350
|
+
const QUOTA_PROBE_PATTERNS = [
|
|
351
|
+
/\b429\b/,
|
|
352
|
+
/rate.?limit/i,
|
|
353
|
+
/usage.?limit/i,
|
|
354
|
+
/\bquota\b/i,
|
|
355
|
+
/too many requests/i,
|
|
356
|
+
];
|
|
357
|
+
/**
|
|
358
|
+
* Best-effort classification of a Codex error string into a structured
|
|
359
|
+
* signal. Quota / rate-limit / 429 hits map to `quotaExhausted`; any other
|
|
360
|
+
* non-empty error string maps to a transient `degenerate_response`.
|
|
361
|
+
* Returns the response unchanged when `probe` is empty.
|
|
362
|
+
*
|
|
363
|
+
* Detection is intentionally string-based and narrow so it cannot misfire
|
|
364
|
+
* on normal model output (only reached when a failure event was detected or
|
|
365
|
+
* the process exited non-zero).
|
|
366
|
+
*/
|
|
367
|
+
function withFailureSignal(response, probe) {
|
|
368
|
+
const trimmed = probe.trim();
|
|
369
|
+
if (trimmed.length === 0)
|
|
370
|
+
return response;
|
|
371
|
+
if (QUOTA_PROBE_PATTERNS.some((re) => re.test(trimmed))) {
|
|
372
|
+
return { ...response, quotaExhausted: { rawMessage: trimmed } };
|
|
373
|
+
}
|
|
374
|
+
return { ...response, transientFailure: { kind: 'degenerate_response', rawMessage: trimmed } };
|
|
375
|
+
}
|
|
376
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/docker/adapters/codex.ts"],"names":[],"mappings":"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"}
|