agent-embassy 1.7.1 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/CONTRIBUTING.md +51 -47
  3. package/README.md +26 -9
  4. package/README.zh-CN.md +22 -9
  5. package/SECURITY.md +48 -35
  6. package/dist/src/gateway/acp-client.d.ts +12 -19
  7. package/dist/src/gateway/acp-client.js +90 -65
  8. package/dist/src/gateway/acp-client.js.map +1 -1
  9. package/dist/src/gateway/acp-provider.d.ts +11 -10
  10. package/dist/src/gateway/acp-provider.js +165 -53
  11. package/dist/src/gateway/acp-provider.js.map +1 -1
  12. package/dist/src/gateway/claude-helper-client.d.ts +2 -43
  13. package/dist/src/gateway/claude-helper-client.js +1 -211
  14. package/dist/src/gateway/claude-helper-client.js.map +1 -1
  15. package/dist/src/gateway/claude-helper-protocol.d.ts +16 -74
  16. package/dist/src/gateway/claude-helper-protocol.js +99 -378
  17. package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
  18. package/dist/src/gateway/claude-helper-supervisor.d.ts +56 -44
  19. package/dist/src/gateway/claude-helper-supervisor.js +265 -456
  20. package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
  21. package/dist/src/gateway/claude-helper.js +184 -210
  22. package/dist/src/gateway/claude-helper.js.map +1 -1
  23. package/dist/src/gateway/claude-peer.d.ts +20 -87
  24. package/dist/src/gateway/claude-peer.js +310 -1009
  25. package/dist/src/gateway/claude-peer.js.map +1 -1
  26. package/dist/src/gateway/claude-runtime.d.ts +13 -15
  27. package/dist/src/gateway/claude-runtime.js +14 -168
  28. package/dist/src/gateway/claude-runtime.js.map +1 -1
  29. package/dist/src/gateway/cli-copy.d.ts +1 -1
  30. package/dist/src/gateway/cli-copy.en.d.ts +2 -4
  31. package/dist/src/gateway/cli-copy.en.js +3 -4
  32. package/dist/src/gateway/cli-copy.en.js.map +1 -1
  33. package/dist/src/gateway/cli-copy.js +0 -2
  34. package/dist/src/gateway/cli-copy.js.map +1 -1
  35. package/dist/src/gateway/cli-copy.zh-CN.d.ts +2 -4
  36. package/dist/src/gateway/cli-copy.zh-CN.js +3 -4
  37. package/dist/src/gateway/cli-copy.zh-CN.js.map +1 -1
  38. package/dist/src/gateway/cli.d.ts +7 -2
  39. package/dist/src/gateway/cli.js +273 -617
  40. package/dist/src/gateway/cli.js.map +1 -1
  41. package/dist/src/gateway/codex-app-server.d.ts +5 -227
  42. package/dist/src/gateway/codex-app-server.js +18 -1463
  43. package/dist/src/gateway/codex-app-server.js.map +1 -1
  44. package/dist/src/gateway/codex-doctor.d.ts +6 -3
  45. package/dist/src/gateway/codex-doctor.js +77 -98
  46. package/dist/src/gateway/codex-doctor.js.map +1 -1
  47. package/dist/src/gateway/codex-local-transport.d.ts +1 -6
  48. package/dist/src/gateway/codex-local-transport.js +8 -10
  49. package/dist/src/gateway/codex-local-transport.js.map +1 -1
  50. package/dist/src/gateway/codex-stateless-transport.d.ts +114 -0
  51. package/dist/src/gateway/codex-stateless-transport.js +1108 -0
  52. package/dist/src/gateway/codex-stateless-transport.js.map +1 -0
  53. package/dist/src/gateway/config.d.ts +2 -9
  54. package/dist/src/gateway/config.js +62 -100
  55. package/dist/src/gateway/config.js.map +1 -1
  56. package/dist/src/gateway/control.d.ts +36 -90
  57. package/dist/src/gateway/control.js +464 -1159
  58. package/dist/src/gateway/control.js.map +1 -1
  59. package/dist/src/gateway/dashboard-copy.d.ts +1 -1
  60. package/dist/src/gateway/dashboard-copy.en.d.ts +3 -26
  61. package/dist/src/gateway/dashboard-copy.en.js +14 -37
  62. package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
  63. package/dist/src/gateway/dashboard-copy.js +3 -26
  64. package/dist/src/gateway/dashboard-copy.js.map +1 -1
  65. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +3 -26
  66. package/dist/src/gateway/dashboard-copy.zh-CN.js +14 -37
  67. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
  68. package/dist/src/gateway/dashboard-model.d.ts +6 -23
  69. package/dist/src/gateway/dashboard-model.js +37 -131
  70. package/dist/src/gateway/dashboard-model.js.map +1 -1
  71. package/dist/src/gateway/dashboard.d.ts +0 -6
  72. package/dist/src/gateway/dashboard.js +0 -6
  73. package/dist/src/gateway/dashboard.js.map +1 -1
  74. package/dist/src/gateway/live-dashboard-app/app.js +9 -32
  75. package/dist/src/gateway/live-dashboard-command.js +2 -2
  76. package/dist/src/gateway/live-dashboard-command.js.map +1 -1
  77. package/dist/src/gateway/live-dashboard-http.d.ts +1 -1
  78. package/dist/src/gateway/live-dashboard-http.js +2 -2
  79. package/dist/src/gateway/live-dashboard-http.js.map +1 -1
  80. package/dist/src/gateway/progress-watch-machine.d.ts +1 -37
  81. package/dist/src/gateway/progress-watch-machine.js +4 -15
  82. package/dist/src/gateway/progress-watch-machine.js.map +1 -1
  83. package/dist/src/gateway/providers.d.ts +55 -195
  84. package/dist/src/gateway/providers.js +608 -2465
  85. package/dist/src/gateway/providers.js.map +1 -1
  86. package/dist/src/gateway/server.d.ts +16 -25
  87. package/dist/src/gateway/server.js +164 -251
  88. package/dist/src/gateway/server.js.map +1 -1
  89. package/dist/src/gateway/service.d.ts +146 -448
  90. package/dist/src/gateway/service.js +1670 -6142
  91. package/dist/src/gateway/service.js.map +1 -1
  92. package/dist/src/gateway/state-v2-to-v3.d.ts +23 -0
  93. package/dist/src/gateway/state-v2-to-v3.js +994 -0
  94. package/dist/src/gateway/state-v2-to-v3.js.map +1 -0
  95. package/dist/src/gateway/store.d.ts +54 -309
  96. package/dist/src/gateway/store.js +1563 -3519
  97. package/dist/src/gateway/store.js.map +1 -1
  98. package/dist/src/gateway/types.d.ts +175 -228
  99. package/dist/src/gateway/types.js +114 -252
  100. package/dist/src/gateway/types.js.map +1 -1
  101. package/docs/CONFIGURATION.md +22 -9
  102. package/docs/CONFIGURATION.zh-CN.md +21 -9
  103. package/docs/DASHBOARD.md +10 -10
  104. package/docs/DASHBOARD.zh-CN.md +3 -3
  105. package/docs/DELIVERY.md +4 -4
  106. package/docs/DELIVERY.zh-CN.md +4 -4
  107. package/docs/GATEWAY-ARCHITECTURE.md +158 -187
  108. package/package.json +1 -1
  109. package/skills/embassy-peer/SKILL.md +28 -22
  110. package/dist/src/gateway/codex-registration-generation.d.ts +0 -5
  111. package/dist/src/gateway/codex-registration-generation.js +0 -19
  112. package/dist/src/gateway/codex-registration-generation.js.map +0 -1
  113. package/dist/src/gateway/codex-registration-succession.d.ts +0 -209
  114. package/dist/src/gateway/codex-registration-succession.js +0 -588
  115. package/dist/src/gateway/codex-registration-succession.js.map +0 -1
  116. package/dist/src/gateway/compatibility.d.ts +0 -22
  117. package/dist/src/gateway/compatibility.js +0 -23
  118. package/dist/src/gateway/compatibility.js.map +0 -1
  119. package/dist/src/gateway/delivery-machine.d.ts +0 -235
  120. package/dist/src/gateway/delivery-machine.js +0 -540
  121. package/dist/src/gateway/delivery-machine.js.map +0 -1
@@ -1,80 +1,49 @@
1
1
  import { userInfo } from "node:os";
2
- import path from "node:path";
3
2
  import { BridgeError } from "../errors.js";
4
- import { createAcpGatewayProvider, } from "./acp-provider.js";
5
- import { attestClaudePeerRuntime, } from "./claude-runtime.js";
6
- import { createLocalCodexRefreshCandidateTransportFactory, createLocalCodexTransportFactory, } from "./codex-local-transport.js";
7
- import { createSystemCodexDoctorInspector, diagnoseCodexAttachment, } from "./codex-doctor.js";
8
- import { loadGatewayConfig, } from "./config.js";
3
+ import { createAcpGatewayProvider } from "./acp-provider.js";
4
+ import { attestClaudePeerRuntime } from "./claude-runtime.js";
5
+ import { createLocalCodexTransportFactory, resolveManagedLocalCodexInstallation, LocalCodexTransportError, managedCodexControlSocketPath } from "./codex-local-transport.js";
6
+ import { createStatelessCodexOperationTransport } from "./codex-stateless-transport.js";
7
+ import { createSystemCodexDoctorInspector, diagnoseCodexAttachment, diagnoseMissingManagedCodexLayout } from "./codex-doctor.js";
8
+ import { loadGatewayConfig } from "./config.js";
9
9
  import { DASHBOARD_FILE_NAME } from "./dashboard.js";
10
- import { resolveDeepSeekAcpLaunch, } from "./deepseek-detect.js";
11
- import { acquireGatewayInstanceLease, } from "./instance-lease.js";
12
- import { createLocalClaudeGatewayProvider, createLocalCodexGatewayProvider, } from "./providers.js";
13
- import { GatewayService, } from "./service.js";
10
+ import { resolveDeepSeekAcpLaunch } from "./deepseek-detect.js";
11
+ import { acquireGatewayInstanceLease } from "./instance-lease.js";
12
+ import { createLocalClaudeGatewayProvider, createLocalCodexGatewayProvider } from "./providers.js";
13
+ import { GatewayService } from "./service.js";
14
14
  import { GatewayStore } from "./store.js";
15
- import { gatewayInboundModes, } from "./types.js";
15
+ import { gatewayInboundModes } from "./types.js";
16
16
  export const GATEWAY_LOCAL_HOST_ID = "this-mac";
17
17
  const GROK_ACP_LAUNCH = Object.freeze({
18
- kind: "npx",
19
- package: "@xai-official/grok@1.0.5",
20
- args: ["agent", "stdio"],
18
+ kind: "npx", package: "@xai-official/grok@1.0.5", args: ["agent", "stdio"],
21
19
  });
22
- function instanceLeaseLostError() {
23
- return new BridgeError("GATEWAY_INSTANCE_LEASE_LOST", "Embassy lost its host-wide gateway lease and shut down.", true);
20
+ const serverError = (code, message, recoverable = false) => new BridgeError(code, message, recoverable);
21
+ const leaseLost = () => serverError("GATEWAY_INSTANCE_LEASE_LOST", "Embassy lost its host-wide gateway lease and shut down.", true);
22
+ const startCancelled = () => serverError("GATEWAY_START_CANCELLED", "Gateway startup was cancelled before it became ready.", true);
23
+ function cleanupError(primary, failures) {
24
+ const error = serverError("GATEWAY_CLEANUP_FAILED", "The local gateway could not confirm exact resource cleanup.");
25
+ error.cause = new AggregateError(primary === undefined ? [...failures] : [primary, ...failures], "Gateway execution and cleanup failures are preserved independently.");
26
+ return error;
24
27
  }
25
- /**
26
- * Resolve only the explicit launcher or the official per-user launcher. The
27
- * gateway intentionally never searches PATH or an interactive shell profile.
28
- */
29
- export function resolveGatewayClaudeLauncher(env, loginHome) {
30
- const configured = env.EMBASSY_CLAUDE_BIN;
31
- const launcher = configured ?? path.join(loginHome, ".local", "bin", "claude");
32
- if (!path.isAbsolute(loginHome) ||
33
- path.resolve(loginHome) !== loginHome ||
34
- loginHome.includes("\0") ||
35
- !path.isAbsolute(launcher) ||
36
- path.resolve(launcher) !== launcher ||
37
- launcher.includes("\0") ||
38
- path.basename(launcher) !== "claude") {
39
- throw new BridgeError("INVALID_CLAUDE_EXECUTABLE", "The gateway requires the explicit or official absolute Claude launcher path.");
40
- }
41
- return launcher;
42
- }
43
- function localCodexProviderEnvironment(env) {
44
- const selected = {};
45
- for (const key of ["HOME", "USER", "LOGNAME"]) {
46
- const value = env[key];
47
- if (value !== undefined)
48
- selected[key] = value;
49
- }
50
- return selected;
51
- }
52
- function createShutdownLatch(signal, addSignalListener, removeSignalListener) {
53
- let resolveWait;
54
- let settled = false;
55
- let disposed = false;
56
- const wait = new Promise((resolve) => {
57
- resolveWait = resolve;
58
- });
59
- const stop = () => {
60
- if (settled)
61
- return;
62
- settled = true;
63
- resolveWait?.();
64
- };
65
- const onSigint = () => stop();
66
- const onSigterm = () => stop();
28
+ function shutdownLatch(signal, add, remove) {
29
+ let resolve;
30
+ let stopped = false;
31
+ const wait = new Promise((done) => { resolve = done; });
32
+ const stop = () => { if (!stopped) {
33
+ stopped = true;
34
+ resolve();
35
+ } };
67
36
  try {
68
- addSignalListener("SIGINT", onSigint);
37
+ add("SIGINT", stop);
69
38
  try {
70
- addSignalListener("SIGTERM", onSigterm);
39
+ add("SIGTERM", stop);
71
40
  }
72
41
  catch (error) {
73
- removeSignalListener("SIGINT", onSigint);
42
+ remove("SIGINT", stop);
74
43
  throw error;
75
44
  }
76
45
  signal?.addEventListener("abort", stop, { once: true });
77
- if (signal?.aborted === true)
46
+ if (signal?.aborted)
78
47
  stop();
79
48
  }
80
49
  catch (error) {
@@ -83,236 +52,180 @@ function createShutdownLatch(signal, addSignalListener, removeSignalListener) {
83
52
  }
84
53
  return {
85
54
  wait,
86
- dispose: () => {
87
- if (disposed)
88
- return;
89
- disposed = true;
90
- removeSignalListener("SIGINT", onSigint);
91
- removeSignalListener("SIGTERM", onSigterm);
92
- signal?.removeEventListener("abort", stop);
93
- },
55
+ dispose: () => { remove("SIGINT", stop); remove("SIGTERM", stop); signal?.removeEventListener("abort", stop); },
94
56
  };
95
57
  }
96
- async function closeUnownedAssembly(input) {
58
+ const codexEnvironment = (env) => Object.fromEntries(["HOME", "USER", "LOGNAME"].flatMap((key) => env[key] === undefined ? [] : [[key, env[key]]]));
59
+ async function closeUnowned(resources) {
97
60
  const failures = [];
98
- for (const provider of input.acpProviders ?? []) {
99
- await provider.close().catch((error) => failures.push(error));
100
- }
101
- if (input.codexProvider !== undefined) {
102
- await input.codexProvider.close().catch((error) => {
103
- failures.push(error);
104
- });
105
- }
106
- else if (input.codexFactory !== undefined) {
107
- await input.codexFactory.close().catch((error) => {
108
- failures.push(error);
109
- });
110
- }
111
- await input.claudeProvider?.close().catch((error) => {
112
- failures.push(error);
113
- });
114
- await input.store?.close().catch((error) => {
115
- failures.push(error);
116
- });
117
- if (failures.length > 0) {
118
- throw new BridgeError("GATEWAY_CLEANUP_FAILED", "The local gateway could not confirm exact resource cleanup.");
119
- }
61
+ for (const resource of resources)
62
+ await resource?.close().catch((error) => failures.push(error));
63
+ if (failures.length)
64
+ throw new AggregateError(failures, "Unowned gateway resources did not confirm cleanup.");
120
65
  }
121
- /**
122
- * Assemble and run the foreground local gateway. This function never starts a
123
- * daemon, remote connector, or provider request.
124
- */
66
+ /** Assemble and run the foreground-only local gateway without provider requests. */
125
67
  export async function runGatewayServer(options, dependencies = {}) {
126
68
  const env = options.env ?? process.env;
127
- const loadConfig = dependencies.loadConfig ?? loadGatewayConfig;
128
- const loginHome = dependencies.loginHome ?? (() => userInfo().homedir);
129
- const attestClaudeRuntime = dependencies.attestClaudeRuntime ?? attestClaudePeerRuntime;
130
- const createClaudeProvider = dependencies.createClaudeProvider ?? createLocalClaudeGatewayProvider;
131
- const acquireInstanceLease = dependencies.acquireInstanceLease ?? acquireGatewayInstanceLease;
132
- const createStore = dependencies.createStore ?? ((config) => new GatewayStore(config));
133
- const createCodexFactory = dependencies.createCodexFactory ?? createLocalCodexTransportFactory;
134
- const createCodexRefreshCandidateFactory = dependencies.createCodexRefreshCandidateFactory ??
135
- createLocalCodexRefreshCandidateTransportFactory;
136
- const createCodexProvider = dependencies.createCodexProvider ?? createLocalCodexGatewayProvider;
137
- const resolveDeepSeek = dependencies.resolveDeepSeekAcpLaunch ?? resolveDeepSeekAcpLaunch;
138
- const createAcpProvider = dependencies.createAcpProvider ?? createAcpGatewayProvider;
139
- const createService = dependencies.createService ??
140
- ((serviceOptions) => new GatewayService(serviceOptions));
141
- const addSignalListener = dependencies.addSignalListener ??
142
- ((signal, listener) => process.on(signal, listener));
143
- const removeSignalListener = dependencies.removeSignalListener ??
144
- ((signal, listener) => process.off(signal, listener));
145
- const shutdown = createShutdownLatch(options.signal, addSignalListener, removeSignalListener);
146
- let claudeProvider;
147
- let codexFactory;
148
- let codexProvider;
149
- const acpProviders = [];
150
- let store;
69
+ const d = {
70
+ loadConfig: dependencies.loadConfig ?? loadGatewayConfig,
71
+ loginHome: dependencies.loginHome ?? (() => userInfo().homedir),
72
+ attestClaudeRuntime: dependencies.attestClaudeRuntime ?? attestClaudePeerRuntime,
73
+ createClaudeProvider: dependencies.createClaudeProvider ?? createLocalClaudeGatewayProvider,
74
+ acquireInstanceLease: dependencies.acquireInstanceLease ?? acquireGatewayInstanceLease,
75
+ createStore: dependencies.createStore ?? ((config) => new GatewayStore(config)),
76
+ createCodexOperation: dependencies.createCodexOperation ?? createStatelessCodexOperationTransport,
77
+ createCodexObservationFactory: dependencies.createCodexObservationFactory ?? createLocalCodexTransportFactory,
78
+ resolveCodexInstallation: dependencies.resolveCodexInstallation ?? resolveManagedLocalCodexInstallation,
79
+ createCodexDoctorInspector: dependencies.createCodexDoctorInspector ?? createSystemCodexDoctorInspector,
80
+ createCodexProvider: dependencies.createCodexProvider ?? createLocalCodexGatewayProvider,
81
+ resolveDeepSeek: dependencies.resolveDeepSeekAcpLaunch ?? resolveDeepSeekAcpLaunch,
82
+ createAcpProvider: dependencies.createAcpProvider ?? createAcpGatewayProvider,
83
+ createService: dependencies.createService ?? ((input) => new GatewayService(input)),
84
+ add: dependencies.addSignalListener ?? ((signal, listener) => process.on(signal, listener)),
85
+ remove: dependencies.removeSignalListener ?? ((signal, listener) => process.off(signal, listener)),
86
+ };
87
+ const shutdown = shutdownLatch(options.signal, d.add, d.remove);
88
+ let lease;
151
89
  let service;
152
- let instanceLease;
90
+ let store;
91
+ const providers = [];
153
92
  let startupAbort;
93
+ let primary;
94
+ let stopped = false;
95
+ const stop = shutdown.wait.then(() => {
96
+ stopped = true;
97
+ startupAbort?.abort();
98
+ return { kind: "shutdown" };
99
+ });
154
100
  try {
155
- const loadedConfig = loadConfig(env);
156
- const inboundMode = options.inboundMode ?? loadedConfig.inboundMode;
101
+ const loaded = d.loadConfig(env);
102
+ const inboundMode = options.inboundMode ?? loaded.inboundMode;
157
103
  if (!gatewayInboundModes.includes(inboundMode)) {
158
- throw new BridgeError("INVALID_GATEWAY_CONFIGURATION", "The gateway inbound mode must be paired or open.");
104
+ throw serverError("INVALID_GATEWAY_CONFIGURATION", "The gateway inbound mode must be paired or open.");
159
105
  }
160
- const config = {
161
- ...loadedConfig,
162
- inboundMode,
163
- };
164
- if (config.allowedHosts.length !== 1 ||
165
- config.allowedHosts[0] !== GATEWAY_LOCAL_HOST_ID) {
166
- throw new BridgeError("GATEWAY_REMOTE_PROVIDER_DISABLED", "This launcher supports only the exact local gateway host.");
106
+ const config = { ...loaded, inboundMode };
107
+ if (config.allowedHosts.length !== 1 || config.allowedHosts[0] !== GATEWAY_LOCAL_HOST_ID) {
108
+ throw serverError("GATEWAY_REMOTE_PROVIDER_DISABLED", "This launcher supports only the exact local gateway host.");
167
109
  }
168
- const resolvedLoginHome = loginHome();
169
- const claudeExecutable = resolveGatewayClaudeLauncher(env, resolvedLoginHome);
170
- const acquiredLease = await acquireInstanceLease(resolvedLoginHome);
171
- instanceLease = acquiredLease;
110
+ const home = d.loginHome();
111
+ const acquiring = d.acquireInstanceLease(home).then((value) => ({ kind: "lease", value }), (error) => ({ kind: "error", error }));
112
+ const acquired = await Promise.race([acquiring, stop]);
113
+ if (acquired.kind === "shutdown") {
114
+ void acquiring.then((late) => late.kind === "lease" ? late.value.close().catch(() => undefined) : undefined);
115
+ throw startCancelled();
116
+ }
117
+ if (acquired.kind === "error")
118
+ throw acquired.error;
119
+ lease = acquired.value;
172
120
  startupAbort = new AbortController();
173
- const leaseLoss = acquiredLease.lost.then(() => {
121
+ const loss = lease.lost.then(() => {
174
122
  startupAbort?.abort();
175
123
  return { kind: "lease_lost" };
176
124
  });
177
- const assertLeaseHeld = () => {
178
- if (acquiredLease.isLost())
179
- throw instanceLeaseLostError();
125
+ const assertLease = () => {
126
+ if (stopped)
127
+ throw startCancelled();
128
+ if (lease.isLost())
129
+ throw leaseLost();
180
130
  };
181
- const awaitWhileLeaseHeld = async (operation, cleanLateResult) => {
182
- assertLeaseHeld();
183
- const observed = operation.then((result) => ({ kind: "result", result }), (error) => ({ kind: "error", error }));
184
- const outcome = await Promise.race([observed, leaseLoss]);
185
- if (outcome.kind === "lease_lost") {
186
- if (cleanLateResult !== undefined) {
187
- void observed.then(async (late) => {
188
- if (late.kind === "result") {
189
- try {
190
- await cleanLateResult(late.result);
191
- }
192
- catch {
193
- // The foreground server has already failed closed. The late
194
- // factory owns no route yet; this best-effort callback only
195
- // prevents a delayed constructor from retaining resources.
196
- }
197
- }
198
- });
199
- }
200
- throw instanceLeaseLostError();
201
- }
202
- assertLeaseHeld();
131
+ const guarded = async (operation) => {
132
+ assertLease();
133
+ const result = operation.then((value) => ({ kind: "result", value }), (error) => ({ kind: "error", error }));
134
+ const outcome = await Promise.race([result, loss, stop]);
135
+ assertLease();
203
136
  if (outcome.kind === "error")
204
137
  throw outcome.error;
205
- return outcome.result;
138
+ if (outcome.kind !== "result")
139
+ throw outcome.kind === "shutdown" ? startCancelled() : leaseLost();
140
+ return outcome.value;
206
141
  };
207
- assertLeaseHeld();
208
- const runtime = await awaitWhileLeaseHeld(Promise.resolve().then(() => attestClaudeRuntime({
209
- claudeExecutable,
210
- })));
211
- claudeProvider = createClaudeProvider({
142
+ store = d.createStore(config);
143
+ await guarded(store.initialize({ deferPersistence: true }));
144
+ const runtime = await guarded(Promise.resolve().then(() => d.attestClaudeRuntime()));
145
+ providers.push(d.createClaudeProvider({
212
146
  runtime,
213
147
  locale: options.locale ?? "en",
214
148
  nativeHelpers: { maxHelpers: config.limits.maxRoutes },
215
- ...(config.deliveryNotices === undefined
216
- ? {}
217
- : { deliveryNotices: config.deliveryNotices }),
218
- });
219
- store = createStore(config);
220
- const codexFactoryOptions = {
221
- environment: localCodexProviderEnvironment(env),
149
+ ...(config.deliveryNotices === undefined ? {} : { deliveryNotices: config.deliveryNotices }),
150
+ }));
151
+ const localEnvironment = codexEnvironment(env);
152
+ const factoryOptions = { environment: localEnvironment, hostId: GATEWAY_LOCAL_HOST_ID };
153
+ providers.push(d.createCodexProvider({
222
154
  hostId: GATEWAY_LOCAL_HOST_ID,
223
- };
224
- const createOwnedCodexFactory = async (creator) => await awaitWhileLeaseHeld(Promise.resolve().then(() => creator(codexFactoryOptions)), async (lateFactory) => lateFactory.close());
225
- const createdCodexFactory = await createOwnedCodexFactory(createCodexFactory);
226
- codexFactory = createdCodexFactory;
227
- if (createdCodexFactory.availabilityFailure !== undefined &&
228
- createdCodexFactory.availabilityFailure !==
229
- "CODEX_CONTROL_SOCKET_UNAVAILABLE") {
230
- throw new BridgeError("CODEX_RUNTIME_ATTESTATION_INVALID", "Codex App Server availability evidence must use a reviewed bounded code.");
231
- }
232
- codexProvider = createCodexProvider({
233
- factory: createdCodexFactory,
234
- refreshFactory: async () => await createOwnedCodexFactory(createCodexRefreshCandidateFactory),
235
- });
155
+ operation: d.createCodexOperation({ local: { environment: localEnvironment } }),
156
+ createObservationFactory: () => d.createCodexObservationFactory(factoryOptions),
157
+ }));
236
158
  for (const definition of config.acpProviders ?? []) {
237
- let resolved = {};
238
- if (definition.launch !== undefined) {
239
- resolved = { launch: definition.launch };
240
- }
241
- else if (definition.provider === "deepseek") {
242
- resolved = await awaitWhileLeaseHeld(resolveDeepSeek({ env, loginHome: resolvedLoginHome }).catch(() => ({
159
+ let resolved = definition.launch === undefined ? {} : { launch: definition.launch };
160
+ if (definition.launch === undefined && definition.provider === "deepseek") {
161
+ resolved = await guarded(d.resolveDeepSeek({ env, loginHome: home }).catch(() => ({
243
162
  safeErrorCode: "DEEPSEEK_HARNESS_HOME_UNSAFE",
244
163
  })));
245
164
  }
246
- else {
165
+ else if (definition.provider === "grok")
247
166
  resolved = { launch: GROK_ACP_LAUNCH };
248
- }
249
- acpProviders.push(createAcpProvider({
250
- provider: definition.provider,
251
- alias: definition.alias,
167
+ providers.push(d.createAcpProvider({
168
+ ...definition,
252
169
  hostId: GATEWAY_LOCAL_HOST_ID,
253
170
  ...(resolved.launch === undefined ? {} : { launch: resolved.launch }),
254
- ...(resolved.safeErrorCode === undefined
255
- ? {}
256
- : { unavailableCode: resolved.safeErrorCode }),
171
+ ...(resolved.safeErrorCode === undefined ? {} : { unavailableCode: resolved.safeErrorCode }),
257
172
  }));
258
173
  }
259
- const createdService = createService({
260
- config,
261
- adapters: [claudeProvider, codexProvider, ...acpProviders],
262
- store,
263
- ...(createdCodexFactory.diagnosticInstallation === undefined
264
- ? {}
265
- : {
266
- codexDoctor: async () => await diagnoseCodexAttachment({
267
- socketPath: createdCodexFactory.diagnosticInstallation
268
- .controlSocketPath,
269
- daemonExecutablePath: createdCodexFactory.diagnosticInstallation.binaryPath,
174
+ service = d.createService({
175
+ config, adapters: providers, store,
176
+ codexDoctor: async () => {
177
+ const inspector = d.createCodexDoctorInspector();
178
+ try {
179
+ const installation = await d.resolveCodexInstallation(home);
180
+ return await diagnoseCodexAttachment({
181
+ socketPath: installation.controlSocketPath,
182
+ daemonExecutablePath: installation.binaryPath,
270
183
  embassyPid: process.pid,
271
- inspector: createSystemCodexDoctorInspector(),
272
- }),
273
- }),
184
+ inspector,
185
+ });
186
+ }
187
+ catch (error) {
188
+ return error instanceof LocalCodexTransportError && error.code === "MANAGED_CODEX_UNAVAILABLE"
189
+ ? await diagnoseMissingManagedCodexLayout({ socketPath: managedCodexControlSocketPath(home), embassyPid: process.pid, inspector })
190
+ : { conditions: ["unknown"] };
191
+ }
192
+ },
274
193
  });
275
- service = createdService;
276
- await awaitWhileLeaseHeld(Promise.resolve().then(() => createdService.start(startupAbort?.signal)));
277
- await awaitWhileLeaseHeld(Promise.resolve().then(() => options.onReady({
278
- status: "ready",
279
- hostId: GATEWAY_LOCAL_HOST_ID,
280
- codexMode: "native_messaging",
281
- dashboardFile: DASHBOARD_FILE_NAME,
282
- })));
283
- const lifetime = await Promise.race([
284
- shutdown.wait.then(() => ({ kind: "shutdown" })),
285
- leaseLoss,
286
- ]);
287
- if (lifetime.kind === "lease_lost")
288
- throw instanceLeaseLostError();
194
+ await guarded(Promise.resolve().then(() => service.start(startupAbort?.signal)));
195
+ assertLease();
196
+ const ready = Promise.resolve().then(() => options.onReady({ status: "ready", hostId: GATEWAY_LOCAL_HOST_ID,
197
+ codexMode: "native_messaging", dashboardFile: DASHBOARD_FILE_NAME })).then(() => ({ kind: "ready" }), (error) => ({ kind: "error", error }));
198
+ const published = await Promise.race([ready, loss, stop]);
199
+ if (published.kind === "error")
200
+ throw published.error;
201
+ if (published.kind === "lease_lost")
202
+ throw leaseLost();
203
+ if (published.kind === "shutdown")
204
+ return;
205
+ assertLease();
206
+ if ((await Promise.race([stop, loss])).kind === "lease_lost")
207
+ throw leaseLost();
208
+ }
209
+ catch (error) {
210
+ primary = error;
211
+ throw error;
289
212
  }
290
213
  finally {
291
214
  startupAbort?.abort();
292
215
  shutdown.dispose();
293
- const cleanupFailures = [];
294
- if (service !== undefined) {
295
- await service.close().catch((error) => {
296
- cleanupFailures.push(error);
297
- });
298
- }
216
+ const failures = [];
217
+ if (service !== undefined)
218
+ await service.close().catch((error) => failures.push(error));
299
219
  else {
300
- await closeUnownedAssembly({
301
- ...(claudeProvider === undefined ? {} : { claudeProvider }),
302
- ...(codexFactory === undefined ? {} : { codexFactory }),
303
- ...(codexProvider === undefined ? {} : { codexProvider }),
304
- acpProviders,
305
- ...(store === undefined ? {} : { store }),
306
- }).catch((error) => {
307
- cleanupFailures.push(error);
308
- });
309
- }
310
- await instanceLease?.close().catch((error) => {
311
- cleanupFailures.push(error);
312
- });
313
- if (cleanupFailures.length > 0) {
314
- throw new BridgeError("GATEWAY_CLEANUP_FAILED", "The local gateway could not confirm exact resource cleanup.");
220
+ const unowned = providers.reverse();
221
+ if (store !== undefined)
222
+ unowned.push(store);
223
+ await closeUnowned(unowned).catch((error) => failures.push(error));
315
224
  }
225
+ if (failures.length === 0)
226
+ await lease?.close().catch((error) => failures.push(error));
227
+ if (failures.length)
228
+ throw cleanupError(primary, failures);
316
229
  }
317
230
  }
318
231
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}