@provos/ironcurtain 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +14 -12
  2. package/dist/cli.js +6 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/config-command.d.ts +33 -1
  5. package/dist/config/config-command.js +608 -11
  6. package/dist/config/config-command.js.map +1 -1
  7. package/dist/config/openrouter-catalog.d.ts +46 -0
  8. package/dist/config/openrouter-catalog.js +111 -0
  9. package/dist/config/openrouter-catalog.js.map +1 -0
  10. package/dist/config/openrouter-models-fallback.d.ts +15 -0
  11. package/dist/config/openrouter-models-fallback.js +49 -0
  12. package/dist/config/openrouter-models-fallback.js.map +1 -0
  13. package/dist/config/types.d.ts +8 -0
  14. package/dist/config/user-config.d.ts +133 -7
  15. package/dist/config/user-config.js +234 -5
  16. package/dist/config/user-config.js.map +1 -1
  17. package/dist/daemon/daemon-command.js.map +1 -1
  18. package/dist/daemon/ironcurtain-daemon.js +6 -0
  19. package/dist/daemon/ironcurtain-daemon.js.map +1 -1
  20. package/dist/docker/adapters/claude-code.js +109 -1
  21. package/dist/docker/adapters/claude-code.js.map +1 -1
  22. package/dist/docker/adapters/codex.d.ts +10 -1
  23. package/dist/docker/adapters/codex.js +99 -20
  24. package/dist/docker/adapters/codex.js.map +1 -1
  25. package/dist/docker/adapters/goose.js +38 -2
  26. package/dist/docker/adapters/goose.js.map +1 -1
  27. package/dist/docker/agent-adapter.d.ts +29 -5
  28. package/dist/docker/agent-registry.js +1 -1
  29. package/dist/docker/agent-registry.js.map +1 -1
  30. package/dist/docker/apple-container-manager.d.ts +4 -4
  31. package/dist/docker/apple-container-manager.js +44 -22
  32. package/dist/docker/apple-container-manager.js.map +1 -1
  33. package/dist/docker/ca.js +9 -2
  34. package/dist/docker/ca.js.map +1 -1
  35. package/dist/docker/container-lifecycle.js +9 -0
  36. package/dist/docker/container-lifecycle.js.map +1 -1
  37. package/dist/docker/docker-agent-session.d.ts +31 -0
  38. package/dist/docker/docker-agent-session.js +67 -6
  39. package/dist/docker/docker-agent-session.js.map +1 -1
  40. package/dist/docker/docker-infrastructure.d.ts +55 -15
  41. package/dist/docker/docker-infrastructure.js +261 -61
  42. package/dist/docker/docker-infrastructure.js.map +1 -1
  43. package/dist/docker/docker-manager.js +127 -0
  44. package/dist/docker/docker-manager.js.map +1 -1
  45. package/dist/docker/docker-resource-lifecycle.d.ts +71 -0
  46. package/dist/docker/docker-resource-lifecycle.js +454 -0
  47. package/dist/docker/docker-resource-lifecycle.js.map +1 -0
  48. package/dist/docker/gc-command.d.ts +2 -0
  49. package/dist/docker/gc-command.js +37 -0
  50. package/dist/docker/gc-command.js.map +1 -0
  51. package/dist/docker/mitm-proxy.d.ts +6 -4
  52. package/dist/docker/mitm-proxy.js +105 -17
  53. package/dist/docker/mitm-proxy.js.map +1 -1
  54. package/dist/docker/network-topology.d.ts +16 -9
  55. package/dist/docker/network-topology.js +17 -10
  56. package/dist/docker/network-topology.js.map +1 -1
  57. package/dist/docker/openrouter.d.ts +107 -0
  58. package/dist/docker/openrouter.js +236 -0
  59. package/dist/docker/openrouter.js.map +1 -0
  60. package/dist/docker/orientation.js +1 -1
  61. package/dist/docker/orientation.js.map +1 -1
  62. package/dist/docker/platform.d.ts +3 -1
  63. package/dist/docker/platform.js +3 -1
  64. package/dist/docker/platform.js.map +1 -1
  65. package/dist/docker/provider-config.d.ts +6 -0
  66. package/dist/docker/provider-config.js.map +1 -1
  67. package/dist/docker/pty-session.d.ts +7 -0
  68. package/dist/docker/pty-session.js +111 -29
  69. package/dist/docker/pty-session.js.map +1 -1
  70. package/dist/docker/pty-types.d.ts +15 -0
  71. package/dist/docker/pty-types.js +8 -0
  72. package/dist/docker/pty-types.js.map +1 -1
  73. package/dist/docker/sse-extractor.js +55 -5
  74. package/dist/docker/sse-extractor.js.map +1 -1
  75. package/dist/docker/stream-delay.d.ts +86 -0
  76. package/dist/docker/stream-delay.js +218 -0
  77. package/dist/docker/stream-delay.js.map +1 -0
  78. package/dist/docker/token-stream-types.d.ts +15 -0
  79. package/dist/docker/trajectory-reassembler.d.ts +2 -2
  80. package/dist/docker/trajectory-reassembler.js +22 -2
  81. package/dist/docker/trajectory-reassembler.js.map +1 -1
  82. package/dist/docker/trajectory-tap.js +2 -2
  83. package/dist/docker/trajectory-tap.js.map +1 -1
  84. package/dist/docker/types.d.ts +63 -5
  85. package/dist/doctor/checks.d.ts +3 -3
  86. package/dist/doctor/checks.js +28 -11
  87. package/dist/doctor/checks.js.map +1 -1
  88. package/dist/doctor/doctor-command.js +1 -1
  89. package/dist/doctor/doctor-command.js.map +1 -1
  90. package/dist/escalation/escalation-watcher.js +6 -0
  91. package/dist/escalation/escalation-watcher.js.map +1 -1
  92. package/dist/{mux → escalation}/trusted-input.d.ts +7 -4
  93. package/dist/{mux → escalation}/trusted-input.js +8 -5
  94. package/dist/escalation/trusted-input.js.map +1 -0
  95. package/dist/hash.js.map +1 -1
  96. package/dist/index.js +37 -6
  97. package/dist/index.js.map +1 -1
  98. package/dist/mux/mux-app.d.ts +7 -0
  99. package/dist/mux/mux-app.js +17 -16
  100. package/dist/mux/mux-app.js.map +1 -1
  101. package/dist/mux/mux-command.js +8 -3
  102. package/dist/mux/mux-command.js.map +1 -1
  103. package/dist/mux/mux-input-handler.d.ts +26 -2
  104. package/dist/mux/mux-input-handler.js +93 -11
  105. package/dist/mux/mux-input-handler.js.map +1 -1
  106. package/dist/mux/mux-renderer.d.ts +2 -1
  107. package/dist/mux/mux-renderer.js +67 -0
  108. package/dist/mux/mux-renderer.js.map +1 -1
  109. package/dist/mux/provider-profile-snapshot.d.ts +44 -0
  110. package/dist/mux/provider-profile-snapshot.js +56 -0
  111. package/dist/mux/provider-profile-snapshot.js.map +1 -0
  112. package/dist/mux/types.d.ts +3 -2
  113. package/dist/mux/types.js +6 -2
  114. package/dist/mux/types.js.map +1 -1
  115. package/dist/observe/observe-command.js.map +1 -1
  116. package/dist/pipeline/constitution-compiler.js.map +1 -1
  117. package/dist/pipeline/generate-with-repair.js.map +1 -1
  118. package/dist/pipeline/refresh-lists.js.map +1 -1
  119. package/dist/pipeline/scenario-schema-validator.js.map +1 -1
  120. package/dist/{mux → pty}/pty-bridge.d.ts +39 -3
  121. package/dist/{mux → pty}/pty-bridge.js +68 -18
  122. package/dist/pty/pty-bridge.js.map +1 -0
  123. package/dist/pty/resolve-ironcurtain-bin.d.ts +17 -0
  124. package/dist/pty/resolve-ironcurtain-bin.js +22 -0
  125. package/dist/pty/resolve-ironcurtain-bin.js.map +1 -0
  126. package/dist/servers/fetch-server.js +2 -0
  127. package/dist/servers/fetch-server.js.map +1 -1
  128. package/dist/session/index.d.ts +1 -1
  129. package/dist/session/index.js +11 -2
  130. package/dist/session/index.js.map +1 -1
  131. package/dist/session/preflight.d.ts +19 -5
  132. package/dist/session/preflight.js +41 -25
  133. package/dist/session/preflight.js.map +1 -1
  134. package/dist/session/resource-budget-tracker.js +8 -0
  135. package/dist/session/resource-budget-tracker.js.map +1 -1
  136. package/dist/session/session-manager.d.ts +7 -0
  137. package/dist/session/session-manager.js.map +1 -1
  138. package/dist/session/types.d.ts +14 -0
  139. package/dist/signal/signal-bot-daemon.d.ts +1 -0
  140. package/dist/signal/signal-bot-daemon.js +9 -2
  141. package/dist/signal/signal-bot-daemon.js.map +1 -1
  142. package/dist/trusted-process/mcp-error-utils.js +4 -1
  143. package/dist/trusted-process/mcp-error-utils.js.map +1 -1
  144. package/dist/trusted-process/mcp-proxy-server.js +2 -0
  145. package/dist/trusted-process/mcp-proxy-server.js.map +1 -1
  146. package/dist/trusted-process/policy-engine.js.map +1 -1
  147. package/dist/trusted-process/tcp-server-transport.d.ts +7 -0
  148. package/dist/trusted-process/tcp-server-transport.js +48 -10
  149. package/dist/trusted-process/tcp-server-transport.js.map +1 -1
  150. package/dist/utils/preflight-checks.js +1 -3
  151. package/dist/utils/preflight-checks.js.map +1 -1
  152. package/dist/utils/stdio-guard.d.ts +1 -0
  153. package/dist/utils/stdio-guard.js +27 -0
  154. package/dist/utils/stdio-guard.js.map +1 -0
  155. package/dist/web-ui/__tests__/config-dispatch.test.d.ts +13 -0
  156. package/dist/web-ui/__tests__/config-dispatch.test.js +383 -0
  157. package/dist/web-ui/__tests__/config-dispatch.test.js.map +1 -0
  158. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js +6 -0
  159. package/dist/web-ui/__tests__/json-rpc-dispatch.test.js.map +1 -1
  160. package/dist/web-ui/dispatch/config-dispatch.d.ts +15 -0
  161. package/dist/web-ui/dispatch/config-dispatch.js +277 -0
  162. package/dist/web-ui/dispatch/config-dispatch.js.map +1 -0
  163. package/dist/web-ui/dispatch/escalation-dispatch.js +11 -2
  164. package/dist/web-ui/dispatch/escalation-dispatch.js.map +1 -1
  165. package/dist/web-ui/dispatch/pty-dispatch.d.ts +15 -0
  166. package/dist/web-ui/dispatch/pty-dispatch.js +66 -0
  167. package/dist/web-ui/dispatch/pty-dispatch.js.map +1 -0
  168. package/dist/web-ui/dispatch/session-dispatch.js +69 -4
  169. package/dist/web-ui/dispatch/session-dispatch.js.map +1 -1
  170. package/dist/web-ui/dispatch/types.d.ts +12 -0
  171. package/dist/web-ui/dispatch/types.js +38 -1
  172. package/dist/web-ui/dispatch/types.js.map +1 -1
  173. package/dist/web-ui/dispatch/workflow-dispatch.js.map +1 -1
  174. package/dist/web-ui/json-rpc-dispatch.js +3 -0
  175. package/dist/web-ui/json-rpc-dispatch.js.map +1 -1
  176. package/dist/web-ui/pty-session-manager.d.ts +234 -0
  177. package/dist/web-ui/pty-session-manager.js +599 -0
  178. package/dist/web-ui/pty-session-manager.js.map +1 -0
  179. package/dist/web-ui/web-event-bus.d.ts +9 -0
  180. package/dist/web-ui/web-event-bus.js.map +1 -1
  181. package/dist/web-ui/web-session-transport.js.map +1 -1
  182. package/dist/web-ui/web-ui-server.d.ts +8 -0
  183. package/dist/web-ui/web-ui-server.js +25 -0
  184. package/dist/web-ui/web-ui-server.js.map +1 -1
  185. package/dist/web-ui/web-ui-types.d.ts +80 -1
  186. package/dist/web-ui/web-ui-types.js.map +1 -1
  187. package/dist/web-ui-static/assets/index-CCVI4nEK.css +1 -0
  188. package/dist/web-ui-static/assets/index-Dm012gvY.js +114 -0
  189. package/dist/web-ui-static/index.html +2 -2
  190. package/dist/workflow/daemon-gate-commands.js +38 -42
  191. package/dist/workflow/daemon-gate-commands.js.map +1 -1
  192. package/dist/workflow/machine-builder.js.map +1 -1
  193. package/dist/workflow/orchestrator.js +10 -7
  194. package/dist/workflow/orchestrator.js.map +1 -1
  195. package/dist/workflow/shutdown-signals.d.ts +7 -0
  196. package/dist/workflow/shutdown-signals.js +40 -0
  197. package/dist/workflow/shutdown-signals.js.map +1 -0
  198. package/dist/workflow/validate.js.map +1 -1
  199. package/dist/workflow/workflow-command.js +10 -8
  200. package/dist/workflow/workflow-command.js.map +1 -1
  201. package/dist/workflow/workflows/evolve/README.md +66 -0
  202. package/dist/workflow/workflows/vuln-discovery/README.md +54 -0
  203. package/docker/entrypoint-claude-code.sh +22 -0
  204. package/package.json +31 -27
  205. package/src/workflow/workflows/evolve/README.md +66 -0
  206. package/src/workflow/workflows/vuln-discovery/README.md +54 -0
  207. package/dist/mux/pty-bridge.js.map +0 -1
  208. package/dist/mux/trusted-input.js.map +0 -1
  209. package/dist/web-ui-static/assets/index-BD5U6ILh.css +0 -1
  210. package/dist/web-ui-static/assets/index-FMsHWEfK.js +0 -79
  211. package/packages/web-ui/README.md +0 -113
@@ -0,0 +1,107 @@
1
+ /**
2
+ * OpenRouter transform logic for Docker Agent Mode.
3
+ *
4
+ * Encapsulates all OpenRouter-specific request transformation (per CLAUDE.md
5
+ * "encapsulate risky operations"): glob model mapping, the MITM request-body
6
+ * rewriter (model remap + `session_id` injection + provider pin + beta-field
7
+ * strip), and the per-agent `ProviderConfig` factory. Adapters and the infra
8
+ * bundle depend on this module, never on inline logic.
9
+ *
10
+ * See docs/designs/openrouter-integration.md §7.
11
+ */
12
+ import type { DockerAgent, ResolvedOpenRouterProfile } from '../config/user-config.js';
13
+ import type { ProviderConfig, RequestBodyRewriter } from './provider-config.js';
14
+ import type { AuthMethod } from './oauth-credentials.js';
15
+ import type { IronCurtainConfig } from '../config/types.js';
16
+ /**
17
+ * Compiles a `modelMap` glob to a RegExp anchored full-string,
18
+ * case-insensitive. `*` becomes `.*`; every other regex metacharacter is
19
+ * escaped so a literal `.` in e.g. `gpt-4.1` is not treated as a wildcard.
20
+ * Results are memoized since this runs on every rewritten request.
21
+ */
22
+ export declare function globToRegExp(glob: string): RegExp;
23
+ /**
24
+ * Resolves the OpenRouter slug for a requested model id under an ordered map.
25
+ * First matching rule wins. Returns `undefined` when nothing matches.
26
+ *
27
+ * Per D1, the CALLER resolves the final slug as
28
+ * `perAgentDefault ?? resolveMappedModel(...) ?? <passthrough>` — an
29
+ * agent-specific perAgent default takes precedence over a glob match; this
30
+ * function performs only the glob lookup.
31
+ */
32
+ export declare function resolveMappedModel(requestedModelId: string, modelMap: readonly {
33
+ match: string;
34
+ model: string;
35
+ }[]): string | undefined;
36
+ /** Top-level fields Anthropic clients may send that non-Anthropic upstreams reject. */
37
+ export declare const ANTHROPIC_ONLY_BETA_FIELDS: readonly string[];
38
+ export interface OpenRouterRewriterConfig {
39
+ readonly modelMap: readonly {
40
+ match: string;
41
+ model: string;
42
+ }[];
43
+ readonly perAgentDefault: string | undefined;
44
+ readonly providerPreference: {
45
+ order?: readonly string[];
46
+ only?: readonly string[];
47
+ allowFallbacks?: boolean;
48
+ } | undefined;
49
+ readonly sessionAffinity: boolean;
50
+ }
51
+ /**
52
+ * Builds a RequestBodyRewriter for an OpenRouter completion request. Steps
53
+ * (§7.3):
54
+ * 0. Non-string `body.model` -> return null (no-op, m7).
55
+ * 1. Capture `requestedModelId = body.model`, remap `model` to
56
+ * `perAgentDefault ?? resolveMappedModel(...) ?? requestedModelId`
57
+ * (perAgent WINS over the glob map, D1/D2).
58
+ * 2. Inject `session_id = `${cacheKey}:${requestedModelId}`` truncated to 256
59
+ * when sessionAffinity, the mapped slug is `z-ai/*`, cacheKey is present,
60
+ * and `session_id` is absent. Deterministic (D4).
61
+ * 3. Inject `provider` when the body has none: the configured preference
62
+ * (replaces the default) if set, else the D3 default soft pin
63
+ * `{ order: ["z-ai"] }` for a `z-ai/*` mapped slug.
64
+ * 4. Strip ANTHROPIC_ONLY_BETA_FIELDS.
65
+ * 5. Never touch `cache_control` blocks inside messages.
66
+ * Returns null when nothing changed (caller skips re-serialization).
67
+ */
68
+ export declare function makeOpenRouterRewriter(cfg: OpenRouterRewriterConfig): RequestBodyRewriter;
69
+ /**
70
+ * Builds the per-agent OpenRouter provider from a resolved openrouter
71
+ * profile: constructs the rewriter (via {@link rewriterConfigFromProfile})
72
+ * and wires it into {@link makeOpenRouterProvider} for the agent's endpoint
73
+ * kind. The single call site each adapter's `getProviders` needs.
74
+ */
75
+ export declare function makeOpenRouterProviderForProfile(kind: OpenRouterEndpointKind, profile: ResolvedOpenRouterProfile, agentId: DockerAgent): ProviderConfig;
76
+ /** Endpoint subset an agent uses on OpenRouter. */
77
+ export type OpenRouterEndpointKind = 'messages' | 'chat' | 'responses';
78
+ /** OpenRouter wire format served at a given request path. */
79
+ export type OpenRouterWireFormat = 'anthropic' | 'responses' | 'chat';
80
+ /**
81
+ * Classifies an OpenRouter request path into its wire format (§11.2/§11.3):
82
+ * one host serves three formats — the Anthropic skin (`.../messages`), the
83
+ * OpenAI Responses API (`.../responses`), and OpenAI Chat Completions (anything
84
+ * else). Query strings are ignored. Shared by the token-stream classifier
85
+ * (`resolveSseProvider`) and the capture classifiers (`providerForHost` /
86
+ * `createReassembler`) so the path-suffix rules live in exactly one place.
87
+ */
88
+ export declare function openRouterWireForPath(path?: string): OpenRouterWireFormat;
89
+ /**
90
+ * Builds the openrouterProvider for a given agent's endpoint kind and
91
+ * rewriter. Host `openrouter.ai`; bearer key injection; fake-key prefix
92
+ * `sk-or-v1-ironcurtain-`. The rewriter is attached to the COMPLETION POST
93
+ * path only; count_tokens is allowlisted but neither rewritten nor captured
94
+ * (the proxy passes through whatever OpenRouter returns, 2xx or 4xx, D5).
95
+ */
96
+ export declare function makeOpenRouterProvider(kind: OpenRouterEndpointKind, rewriter: RequestBodyRewriter): ProviderConfig;
97
+ /**
98
+ * The OpenRouter credential for a session whose active profile routes through
99
+ * OpenRouter: an api-key {@link AuthMethod} when the profile carries a non-empty
100
+ * key, or `{ kind: 'none' }` when the key is empty (which feeds infra prep's
101
+ * clear no-credentials error, m5). Returns `undefined` for a native or unset
102
+ * profile so each adapter's `detectCredential` DEFERS to its own agent-native
103
+ * detection, preserving today's behavior byte-for-byte. Centralizes the
104
+ * empty-key contract that would otherwise be re-branched identically in every
105
+ * adapter (§9.6).
106
+ */
107
+ export declare function openRouterCredential(config: IronCurtainConfig): AuthMethod | undefined;
@@ -0,0 +1,236 @@
1
+ /**
2
+ * OpenRouter transform logic for Docker Agent Mode.
3
+ *
4
+ * Encapsulates all OpenRouter-specific request transformation (per CLAUDE.md
5
+ * "encapsulate risky operations"): glob model mapping, the MITM request-body
6
+ * rewriter (model remap + `session_id` injection + provider pin + beta-field
7
+ * strip), and the per-agent `ProviderConfig` factory. Adapters and the infra
8
+ * bundle depend on this module, never on inline logic.
9
+ *
10
+ * See docs/designs/openrouter-integration.md §7.
11
+ */
12
+ import { OPENROUTER_HOST } from '../config/user-config.js';
13
+ // --- 7.1 Glob resolution ---
14
+ /** Regex metacharacters that must be escaped in a glob literal (all but `*`). */
15
+ const REGEX_METACHARS = /[.+?^${}()|[\]\\]/g;
16
+ /**
17
+ * Memoized compiled globs. `resolveMappedModel` runs on every rewritten request
18
+ * (and in env-hint paths), so compiling the same handful of `modelMap` patterns
19
+ * on each lookup is wasted work. Patterns originate from config (finite, small),
20
+ * so the cache is effectively bounded.
21
+ */
22
+ const GLOB_REGEX_CACHE = new Map();
23
+ /**
24
+ * Compiles a `modelMap` glob to a RegExp anchored full-string,
25
+ * case-insensitive. `*` becomes `.*`; every other regex metacharacter is
26
+ * escaped so a literal `.` in e.g. `gpt-4.1` is not treated as a wildcard.
27
+ * Results are memoized since this runs on every rewritten request.
28
+ */
29
+ export function globToRegExp(glob) {
30
+ const cached = GLOB_REGEX_CACHE.get(glob);
31
+ if (cached)
32
+ return cached;
33
+ const escaped = glob.replace(REGEX_METACHARS, '\\$&').replace(/\*/g, '.*');
34
+ const compiled = new RegExp(`^${escaped}$`, 'i');
35
+ GLOB_REGEX_CACHE.set(glob, compiled);
36
+ return compiled;
37
+ }
38
+ /**
39
+ * Resolves the OpenRouter slug for a requested model id under an ordered map.
40
+ * First matching rule wins. Returns `undefined` when nothing matches.
41
+ *
42
+ * Per D1, the CALLER resolves the final slug as
43
+ * `perAgentDefault ?? resolveMappedModel(...) ?? <passthrough>` — an
44
+ * agent-specific perAgent default takes precedence over a glob match; this
45
+ * function performs only the glob lookup.
46
+ */
47
+ export function resolveMappedModel(requestedModelId, modelMap) {
48
+ for (const rule of modelMap) {
49
+ if (globToRegExp(rule.match).test(requestedModelId))
50
+ return rule.model;
51
+ }
52
+ return undefined;
53
+ }
54
+ // --- 7.3 The OpenRouter rewriter ---
55
+ /** Top-level fields Anthropic clients may send that non-Anthropic upstreams reject. */
56
+ export const ANTHROPIC_ONLY_BETA_FIELDS = ['context_management'];
57
+ /** Maximum length of an injected OpenRouter `session_id` (D4). */
58
+ const SESSION_ID_MAX_LENGTH = 256;
59
+ /** A GLM-family slug requires z.ai first-party endpoint affinity (D3/D4). */
60
+ function isGlmSlug(slug) {
61
+ return slug.startsWith('z-ai/');
62
+ }
63
+ /** Serializes a provider preference to the wire shape (snake_case `allow_fallbacks`). */
64
+ function providerPreferenceToWire(pref) {
65
+ const wire = {};
66
+ if (pref.order !== undefined)
67
+ wire.order = [...pref.order];
68
+ if (pref.only !== undefined)
69
+ wire.only = [...pref.only];
70
+ if (pref.allowFallbacks !== undefined)
71
+ wire.allow_fallbacks = pref.allowFallbacks;
72
+ return wire;
73
+ }
74
+ /**
75
+ * Builds a RequestBodyRewriter for an OpenRouter completion request. Steps
76
+ * (§7.3):
77
+ * 0. Non-string `body.model` -> return null (no-op, m7).
78
+ * 1. Capture `requestedModelId = body.model`, remap `model` to
79
+ * `perAgentDefault ?? resolveMappedModel(...) ?? requestedModelId`
80
+ * (perAgent WINS over the glob map, D1/D2).
81
+ * 2. Inject `session_id = `${cacheKey}:${requestedModelId}`` truncated to 256
82
+ * when sessionAffinity, the mapped slug is `z-ai/*`, cacheKey is present,
83
+ * and `session_id` is absent. Deterministic (D4).
84
+ * 3. Inject `provider` when the body has none: the configured preference
85
+ * (replaces the default) if set, else the D3 default soft pin
86
+ * `{ order: ["z-ai"] }` for a `z-ai/*` mapped slug.
87
+ * 4. Strip ANTHROPIC_ONLY_BETA_FIELDS.
88
+ * 5. Never touch `cache_control` blocks inside messages.
89
+ * Returns null when nothing changed (caller skips re-serialization).
90
+ */
91
+ export function makeOpenRouterRewriter(cfg) {
92
+ return (body, context) => {
93
+ // Step 0: m7 no-op on a non-string model.
94
+ if (typeof body.model !== 'string')
95
+ return null;
96
+ const requestedModelId = body.model;
97
+ const stripped = [];
98
+ const modified = { ...body };
99
+ // Step 1: model remap (D1/D2 precedence).
100
+ const slug = cfg.perAgentDefault ?? resolveMappedModel(requestedModelId, cfg.modelMap) ?? requestedModelId;
101
+ if (slug !== requestedModelId) {
102
+ modified.model = slug;
103
+ stripped.push(`model:${slug}`);
104
+ }
105
+ // Step 2: session_id injection (D4).
106
+ if (cfg.sessionAffinity && isGlmSlug(slug) && context.cacheKey && modified.session_id === undefined) {
107
+ const sessionId = `${context.cacheKey}:${requestedModelId}`.slice(0, SESSION_ID_MAX_LENGTH);
108
+ modified.session_id = sessionId;
109
+ stripped.push(`session_id:${sessionId.slice(0, 8)}`);
110
+ }
111
+ // Step 3: provider injection (D3). Never overwrite an existing `provider`.
112
+ if (modified.provider === undefined) {
113
+ if (cfg.providerPreference !== undefined) {
114
+ modified.provider = providerPreferenceToWire(cfg.providerPreference);
115
+ stripped.push('provider:pin');
116
+ }
117
+ else if (isGlmSlug(slug)) {
118
+ modified.provider = { order: ['z-ai'] };
119
+ stripped.push('provider:default-z-ai');
120
+ }
121
+ }
122
+ // Step 4: strip Anthropic-only beta fields (cache_control is left intact — step 5).
123
+ // Rebuild without the denylisted top-level keys (avoids a dynamic `delete`).
124
+ const betaToStrip = ANTHROPIC_ONLY_BETA_FIELDS.filter((field) => field in modified);
125
+ for (const field of betaToStrip)
126
+ stripped.push(`beta:${field}`);
127
+ const finalBody = betaToStrip.length > 0
128
+ ? Object.fromEntries(Object.entries(modified).filter(([key]) => !betaToStrip.includes(key)))
129
+ : modified;
130
+ if (stripped.length === 0)
131
+ return null;
132
+ return { modified: finalBody, stripped };
133
+ };
134
+ }
135
+ /**
136
+ * Builds an {@link OpenRouterRewriterConfig} from a resolved openrouter
137
+ * profile for a specific agent. `perAgentDefault` is the agent's own
138
+ * `perAgent` override (D1: it WINS over the glob `modelMap`); `modelMap`,
139
+ * `providerPreference`, and `sessionAffinity` are shared across agents.
140
+ *
141
+ * Keeping this in `openrouter.ts` (rather than duplicating the field pick in
142
+ * each adapter) is the single place that maps the profile shape to the
143
+ * rewriter's contract, per §9.6. Internal to the module — the only caller is
144
+ * {@link makeOpenRouterProviderForProfile} below.
145
+ */
146
+ function rewriterConfigFromProfile(profile, agentId) {
147
+ return {
148
+ modelMap: profile.modelMap,
149
+ perAgentDefault: profile.perAgent[agentId],
150
+ providerPreference: profile.providerPreference,
151
+ sessionAffinity: profile.sessionAffinity,
152
+ };
153
+ }
154
+ /**
155
+ * Builds the per-agent OpenRouter provider from a resolved openrouter
156
+ * profile: constructs the rewriter (via {@link rewriterConfigFromProfile})
157
+ * and wires it into {@link makeOpenRouterProvider} for the agent's endpoint
158
+ * kind. The single call site each adapter's `getProviders` needs.
159
+ */
160
+ export function makeOpenRouterProviderForProfile(kind, profile, agentId) {
161
+ const rewriter = makeOpenRouterRewriter(rewriterConfigFromProfile(profile, agentId));
162
+ return makeOpenRouterProvider(kind, rewriter);
163
+ }
164
+ /** Structurally valid OpenRouter key shape; swapped host-side. */
165
+ const OPENROUTER_FAKE_KEY_PREFIX = 'sk-or-v1-ironcurtain-';
166
+ /** The single completion POST path per endpoint kind. */
167
+ const COMPLETION_PATH = {
168
+ messages: '/api/v1/messages',
169
+ chat: '/api/v1/chat/completions',
170
+ responses: '/api/v1/responses',
171
+ };
172
+ /**
173
+ * Classifies an OpenRouter request path into its wire format (§11.2/§11.3):
174
+ * one host serves three formats — the Anthropic skin (`.../messages`), the
175
+ * OpenAI Responses API (`.../responses`), and OpenAI Chat Completions (anything
176
+ * else). Query strings are ignored. Shared by the token-stream classifier
177
+ * (`resolveSseProvider`) and the capture classifiers (`providerForHost` /
178
+ * `createReassembler`) so the path-suffix rules live in exactly one place.
179
+ */
180
+ export function openRouterWireForPath(path) {
181
+ const p = (path ?? '').split('?')[0];
182
+ if (p.endsWith('/messages'))
183
+ return 'anthropic';
184
+ if (p.endsWith('/responses'))
185
+ return 'responses';
186
+ return 'chat';
187
+ }
188
+ /** Allowlisted endpoints per kind (completion path + metadata + count_tokens for messages, D5). */
189
+ function allowedEndpointsFor(kind) {
190
+ const endpoints = [{ method: 'POST', path: COMPLETION_PATH[kind] }];
191
+ // D5: count_tokens is allowlisted (but not rewritten/captured) for the messages kind.
192
+ if (kind === 'messages') {
193
+ endpoints.push({ method: 'POST', path: '/api/v1/messages/count_tokens' });
194
+ }
195
+ // GET /api/v1/models is available on every kind (§9).
196
+ endpoints.push({ method: 'GET', path: '/api/v1/models' });
197
+ return endpoints;
198
+ }
199
+ /**
200
+ * Builds the openrouterProvider for a given agent's endpoint kind and
201
+ * rewriter. Host `openrouter.ai`; bearer key injection; fake-key prefix
202
+ * `sk-or-v1-ironcurtain-`. The rewriter is attached to the COMPLETION POST
203
+ * path only; count_tokens is allowlisted but neither rewritten nor captured
204
+ * (the proxy passes through whatever OpenRouter returns, 2xx or 4xx, D5).
205
+ */
206
+ export function makeOpenRouterProvider(kind, rewriter) {
207
+ const completionPath = COMPLETION_PATH[kind];
208
+ return {
209
+ host: OPENROUTER_HOST,
210
+ displayName: `OpenRouter (${kind})`,
211
+ allowedEndpoints: allowedEndpointsFor(kind),
212
+ captureEndpoints: [{ method: 'POST', path: completionPath }],
213
+ keyInjection: { type: 'bearer' },
214
+ fakeKeyPrefix: OPENROUTER_FAKE_KEY_PREFIX,
215
+ requestRewriter: rewriter,
216
+ rewriteEndpoints: [completionPath],
217
+ };
218
+ }
219
+ // --- 7.5 Credential resolution ---
220
+ /**
221
+ * The OpenRouter credential for a session whose active profile routes through
222
+ * OpenRouter: an api-key {@link AuthMethod} when the profile carries a non-empty
223
+ * key, or `{ kind: 'none' }` when the key is empty (which feeds infra prep's
224
+ * clear no-credentials error, m5). Returns `undefined` for a native or unset
225
+ * profile so each adapter's `detectCredential` DEFERS to its own agent-native
226
+ * detection, preserving today's behavior byte-for-byte. Centralizes the
227
+ * empty-key contract that would otherwise be re-branched identically in every
228
+ * adapter (§9.6).
229
+ */
230
+ export function openRouterCredential(config) {
231
+ const profile = config.activeProviderProfile;
232
+ if (profile?.type !== 'openrouter')
233
+ return undefined;
234
+ return profile.apiKey !== '' ? { kind: 'apikey', key: profile.apiKey } : { kind: 'none' };
235
+ }
236
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/docker/openrouter.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export function prepareSession(adapter, serverListings, sessionDir, config, host
56
56
  };
57
57
  // proxyAddress is either a TCP host:port (macOS) or defaults to the UDS path (Linux)
58
58
  const address = proxyAddress ?? '/run/ironcurtain/proxy.sock';
59
- writeConfigFiles(orientationDir, adapter.generateMcpConfig(address));
59
+ writeConfigFiles(orientationDir, adapter.generateMcpConfig(address, config));
60
60
  writeConfigFiles(orientationDir, adapter.generateOrientationFiles(context));
61
61
  const systemPrompt = adapter.buildSystemPrompt(context);
62
62
  return { systemPrompt };
@@ -1 +1 @@
1
- {"version":3,"file":"orientation.js","sourceRoot":"","sources":["../../src/docker/orientation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,uBAAuB,GAIxB,MAAM,oBAAoB,CAAC;AAI5B;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAwB;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB,EACrB,cAA+B,EAC/B,UAAkB,EAClB,MAAyB,EACzB,cAAsB,EACtB,YAAqB;IAErB,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1D,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,uBAAuB;QACrC,cAAc;QACd,cAAc;QACd,cAAc,EAAE,qBAAqB,CAAC,MAAM,CAAC;QAC7C,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KAC9C,CAAC;IAEF,qFAAqF;IACrF,MAAM,OAAO,GAAG,YAAY,IAAI,6BAA6B,CAAC;IAC9D,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IACrE,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"orientation.js","sourceRoot":"","sources":["../../src/docker/orientation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,uBAAuB,GAIxB,MAAM,oBAAoB,CAAC;AAI5B;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,SAAS;QACtD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAAwB;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB,EACrB,cAA+B,EAC/B,UAAkB,EAClB,MAAyB,EACzB,cAAsB,EACtB,YAAqB;IAErB,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC1D,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,uBAAuB;QACrC,cAAc;QACd,cAAc;QACd,cAAc,EAAE,qBAAqB,CAAC,MAAM,CAAC;QAC7C,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KAC9C,CAAC;IAEF,qFAAqF;IACrF,MAAM,OAAO,GAAG,YAAY,IAAI,6BAA6B,CAAC;IAC9D,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
@@ -7,9 +7,11 @@
7
7
  * `host.docker.internal`.
8
8
  */
9
9
  /**
10
- * Returns true when the Docker session should use TCP transport
10
+ * Returns true when a **Docker** session should use TCP transport
11
11
  * instead of Unix domain sockets. Currently true on macOS where
12
12
  * Docker Desktop's VirtioFS does not support UDS in bind mounts.
13
+ * (Not consulted for apple-container, which uses UDS via per-file
14
+ * `-v` vsock relays regardless of platform — see network-topology.ts.)
13
15
  */
14
16
  export declare function useTcpTransport(): boolean;
15
17
  /**
@@ -8,9 +8,11 @@
8
8
  */
9
9
  import { platform } from 'node:os';
10
10
  /**
11
- * Returns true when the Docker session should use TCP transport
11
+ * Returns true when a **Docker** session should use TCP transport
12
12
  * instead of Unix domain sockets. Currently true on macOS where
13
13
  * Docker Desktop's VirtioFS does not support UDS in bind mounts.
14
+ * (Not consulted for apple-container, which uses UDS via per-file
15
+ * `-v` vsock relays regardless of platform — see network-topology.ts.)
14
16
  */
15
17
  export function useTcpTransport() {
16
18
  return platform() === 'darwin';
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/docker/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,eAAe,OAAO,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/docker/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,OAAO,eAAe,OAAO,EAAE,CAAC;AAClC,CAAC"}
@@ -36,6 +36,12 @@ export type RequestBodyRewriter = (body: Record<string, unknown>, context: {
36
36
  method: string;
37
37
  path: string;
38
38
  agentKind?: AgentKind;
39
+ /**
40
+ * Stable per-conversation id used for OpenRouter `session_id` injection
41
+ * (GLM cache affinity, D4). Set from the proxy's `tokenSessionId` snapshot.
42
+ * All existing rewriters ignore it (backward-compatible).
43
+ */
44
+ cacheKey?: string;
39
45
  }) => RewriteResult | null;
40
46
  /**
41
47
  * Upstream target for provider requests when the default API host
@@ -1 +1 @@
1
- {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/docker/provider-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/docker/provider-config.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,13 @@ export interface PtySessionOptions {
27
27
  readonly resumeSessionId?: string;
28
28
  /** Persona name. Used to build CLAUDE.md and system prompt augmentation. */
29
29
  readonly persona?: string;
30
+ /**
31
+ * Per-session provider-profile selection (OpenRouter integration §9.7).
32
+ * Resolved to the active profile in infra prep. On resume, the persisted
33
+ * snapshot name wins over this field (a conflicting flag is warn-ignored
34
+ * upstream in src/index.ts).
35
+ */
36
+ readonly providerProfileName?: string;
30
37
  /**
31
38
  * Trajectory-capture override: CLI flag wins over `userConfig.capture.enabled`.
32
39
  * `true` forces capture on for this run, `undefined` falls through to config.