agent-embassy 1.0.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 (145) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/CONTRIBUTING.md +122 -0
  3. package/LICENSE +21 -0
  4. package/README.md +185 -0
  5. package/README.zh-CN.md +185 -0
  6. package/SECURITY.md +224 -0
  7. package/assets/live-dashboard/app.css +1610 -0
  8. package/assets/mark-seal.svg +7 -0
  9. package/assets/mark.svg +7 -0
  10. package/assets/social-preview.png +0 -0
  11. package/assets/vendor/react/LICENSE +21 -0
  12. package/assets/vendor/react/react-dom.production.min.js +267 -0
  13. package/assets/vendor/react/react.production.min.js +31 -0
  14. package/dist/src/errors.d.ts +5 -0
  15. package/dist/src/errors.js +11 -0
  16. package/dist/src/errors.js.map +1 -0
  17. package/dist/src/gateway/claude-compatibility-scratch.d.ts +18 -0
  18. package/dist/src/gateway/claude-compatibility-scratch.js +158 -0
  19. package/dist/src/gateway/claude-compatibility-scratch.js.map +1 -0
  20. package/dist/src/gateway/claude-helper-client.d.ts +43 -0
  21. package/dist/src/gateway/claude-helper-client.js +212 -0
  22. package/dist/src/gateway/claude-helper-client.js.map +1 -0
  23. package/dist/src/gateway/claude-helper-protocol.d.ts +172 -0
  24. package/dist/src/gateway/claude-helper-protocol.js +373 -0
  25. package/dist/src/gateway/claude-helper-protocol.js.map +1 -0
  26. package/dist/src/gateway/claude-helper-supervisor.d.ts +74 -0
  27. package/dist/src/gateway/claude-helper-supervisor.js +497 -0
  28. package/dist/src/gateway/claude-helper-supervisor.js.map +1 -0
  29. package/dist/src/gateway/claude-helper.d.ts +1 -0
  30. package/dist/src/gateway/claude-helper.js +269 -0
  31. package/dist/src/gateway/claude-helper.js.map +1 -0
  32. package/dist/src/gateway/claude-peer.d.ts +273 -0
  33. package/dist/src/gateway/claude-peer.js +2359 -0
  34. package/dist/src/gateway/claude-peer.js.map +1 -0
  35. package/dist/src/gateway/claude-runtime.d.ts +40 -0
  36. package/dist/src/gateway/claude-runtime.js +302 -0
  37. package/dist/src/gateway/claude-runtime.js.map +1 -0
  38. package/dist/src/gateway/cli-copy.d.ts +8 -0
  39. package/dist/src/gateway/cli-copy.en.d.ts +13 -0
  40. package/dist/src/gateway/cli-copy.en.js +43 -0
  41. package/dist/src/gateway/cli-copy.en.js.map +1 -0
  42. package/dist/src/gateway/cli-copy.js +19 -0
  43. package/dist/src/gateway/cli-copy.js.map +1 -0
  44. package/dist/src/gateway/cli-copy.zh-CN.d.ts +13 -0
  45. package/dist/src/gateway/cli-copy.zh-CN.js +43 -0
  46. package/dist/src/gateway/cli-copy.zh-CN.js.map +1 -0
  47. package/dist/src/gateway/cli.d.ts +44 -0
  48. package/dist/src/gateway/cli.js +969 -0
  49. package/dist/src/gateway/cli.js.map +1 -0
  50. package/dist/src/gateway/codex-app-server.d.ts +310 -0
  51. package/dist/src/gateway/codex-app-server.js +1746 -0
  52. package/dist/src/gateway/codex-app-server.js.map +1 -0
  53. package/dist/src/gateway/codex-local-transport.d.ts +81 -0
  54. package/dist/src/gateway/codex-local-transport.js +617 -0
  55. package/dist/src/gateway/codex-local-transport.js.map +1 -0
  56. package/dist/src/gateway/codex-registration-generation.d.ts +5 -0
  57. package/dist/src/gateway/codex-registration-generation.js +19 -0
  58. package/dist/src/gateway/codex-registration-generation.js.map +1 -0
  59. package/dist/src/gateway/codex-registration-succession.d.ts +209 -0
  60. package/dist/src/gateway/codex-registration-succession.js +588 -0
  61. package/dist/src/gateway/codex-registration-succession.js.map +1 -0
  62. package/dist/src/gateway/compatibility.d.ts +70 -0
  63. package/dist/src/gateway/compatibility.js +252 -0
  64. package/dist/src/gateway/compatibility.js.map +1 -0
  65. package/dist/src/gateway/config.d.ts +24 -0
  66. package/dist/src/gateway/config.js +130 -0
  67. package/dist/src/gateway/config.js.map +1 -0
  68. package/dist/src/gateway/control.d.ts +308 -0
  69. package/dist/src/gateway/control.js +1573 -0
  70. package/dist/src/gateway/control.js.map +1 -0
  71. package/dist/src/gateway/dashboard-copy.d.ts +7 -0
  72. package/dist/src/gateway/dashboard-copy.en.d.ts +506 -0
  73. package/dist/src/gateway/dashboard-copy.en.js +507 -0
  74. package/dist/src/gateway/dashboard-copy.en.js.map +1 -0
  75. package/dist/src/gateway/dashboard-copy.js +516 -0
  76. package/dist/src/gateway/dashboard-copy.js.map +1 -0
  77. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +506 -0
  78. package/dist/src/gateway/dashboard-copy.zh-CN.js +507 -0
  79. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -0
  80. package/dist/src/gateway/dashboard-model.d.ts +207 -0
  81. package/dist/src/gateway/dashboard-model.js +720 -0
  82. package/dist/src/gateway/dashboard-model.js.map +1 -0
  83. package/dist/src/gateway/dashboard.d.ts +26 -0
  84. package/dist/src/gateway/dashboard.js +941 -0
  85. package/dist/src/gateway/dashboard.js.map +1 -0
  86. package/dist/src/gateway/delivery-machine.d.ts +235 -0
  87. package/dist/src/gateway/delivery-machine.js +540 -0
  88. package/dist/src/gateway/delivery-machine.js.map +1 -0
  89. package/dist/src/gateway/instance-lease.d.ts +21 -0
  90. package/dist/src/gateway/instance-lease.js +549 -0
  91. package/dist/src/gateway/instance-lease.js.map +1 -0
  92. package/dist/src/gateway/live-dashboard-app/app.js +2914 -0
  93. package/dist/src/gateway/live-dashboard-assets.d.ts +10 -0
  94. package/dist/src/gateway/live-dashboard-assets.js +73 -0
  95. package/dist/src/gateway/live-dashboard-assets.js.map +1 -0
  96. package/dist/src/gateway/live-dashboard-bootstrap.d.ts +36 -0
  97. package/dist/src/gateway/live-dashboard-bootstrap.js +176 -0
  98. package/dist/src/gateway/live-dashboard-bootstrap.js.map +1 -0
  99. package/dist/src/gateway/live-dashboard-command.d.ts +54 -0
  100. package/dist/src/gateway/live-dashboard-command.js +324 -0
  101. package/dist/src/gateway/live-dashboard-command.js.map +1 -0
  102. package/dist/src/gateway/live-dashboard-http.d.ts +41 -0
  103. package/dist/src/gateway/live-dashboard-http.js +445 -0
  104. package/dist/src/gateway/live-dashboard-http.js.map +1 -0
  105. package/dist/src/gateway/live-dashboard-protocol.d.ts +38 -0
  106. package/dist/src/gateway/live-dashboard-protocol.js +156 -0
  107. package/dist/src/gateway/live-dashboard-protocol.js.map +1 -0
  108. package/dist/src/gateway/live-dashboard-server.d.ts +33 -0
  109. package/dist/src/gateway/live-dashboard-server.js +130 -0
  110. package/dist/src/gateway/live-dashboard-server.js.map +1 -0
  111. package/dist/src/gateway/live-dashboard-stream.d.ts +46 -0
  112. package/dist/src/gateway/live-dashboard-stream.js +233 -0
  113. package/dist/src/gateway/live-dashboard-stream.js.map +1 -0
  114. package/dist/src/gateway/live-dashboard.d.ts +31 -0
  115. package/dist/src/gateway/live-dashboard.js +190 -0
  116. package/dist/src/gateway/live-dashboard.js.map +1 -0
  117. package/dist/src/gateway/locale.d.ts +4 -0
  118. package/dist/src/gateway/locale.js +10 -0
  119. package/dist/src/gateway/locale.js.map +1 -0
  120. package/dist/src/gateway/progress-watch-machine.d.ts +97 -0
  121. package/dist/src/gateway/progress-watch-machine.js +172 -0
  122. package/dist/src/gateway/progress-watch-machine.js.map +1 -0
  123. package/dist/src/gateway/providers.d.ts +287 -0
  124. package/dist/src/gateway/providers.js +2451 -0
  125. package/dist/src/gateway/providers.js.map +1 -0
  126. package/dist/src/gateway/server.d.ts +57 -0
  127. package/dist/src/gateway/server.js +264 -0
  128. package/dist/src/gateway/server.js.map +1 -0
  129. package/dist/src/gateway/service.d.ts +449 -0
  130. package/dist/src/gateway/service.js +4831 -0
  131. package/dist/src/gateway/service.js.map +1 -0
  132. package/dist/src/gateway/store.d.ts +340 -0
  133. package/dist/src/gateway/store.js +4047 -0
  134. package/dist/src/gateway/store.js.map +1 -0
  135. package/dist/src/gateway/types.d.ts +514 -0
  136. package/dist/src/gateway/types.js +414 -0
  137. package/dist/src/gateway/types.js.map +1 -0
  138. package/dist/src/mutex.d.ts +4 -0
  139. package/dist/src/mutex.js +23 -0
  140. package/dist/src/mutex.js.map +1 -0
  141. package/docs/DESIGN.md +134 -0
  142. package/docs/GATEWAY-ARCHITECTURE.md +858 -0
  143. package/package.json +80 -0
  144. package/skills/embassy-peer/SKILL.md +198 -0
  145. package/skills/embassy-peer/agents/openai.yaml +4 -0
@@ -0,0 +1,497 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { BridgeError } from "../errors.js";
3
+ import { createClaudeNativeHelper, } from "./claude-helper-client.js";
4
+ const TERMINAL_DELIVERY_STATES = new Set([
5
+ "released",
6
+ "unconfirmed",
7
+ "denied",
8
+ "expired",
9
+ "ambiguous",
10
+ "completed",
11
+ "failed",
12
+ "cancelled",
13
+ ]);
14
+ function fault(code, recoverable = false) {
15
+ return new BridgeError(code, "The supervised native Claude advertisement could not complete its bounded operation.", recoverable);
16
+ }
17
+ function ok(result) {
18
+ if (!("ok" in result) || result.ok !== true) {
19
+ throw fault("CLAUDE_NATIVE_HELPER_INVALID_RESPONSE");
20
+ }
21
+ }
22
+ export class ClaudeNativeHelperSupervisor {
23
+ #identity;
24
+ #runtime;
25
+ #locale;
26
+ #deliveryNotices;
27
+ #maxPendingMessages;
28
+ #maxHelpers;
29
+ #callbacks;
30
+ #factory;
31
+ #helpersByAlias = new Map();
32
+ #helpersByGeneration = new Map();
33
+ #receiptOwners = new Map();
34
+ #pendingDispatches = new Map();
35
+ #closed = false;
36
+ constructor(options) {
37
+ this.#identity = { ...options.identity };
38
+ this.#runtime = { ...options.runtime };
39
+ this.#locale = options.locale;
40
+ this.#deliveryNotices = options.deliveryNotices;
41
+ this.#maxPendingMessages = options.maxPendingMessages;
42
+ this.#maxHelpers = options.maxHelpers;
43
+ this.#callbacks = options.callbacks;
44
+ this.#factory = options.factory ?? createClaudeNativeHelper;
45
+ }
46
+ get size() {
47
+ return this.#helpersByAlias.size;
48
+ }
49
+ async advertise(input) {
50
+ this.#assertOpen();
51
+ if (this.#helpersByAlias.has(input.alias))
52
+ return;
53
+ if (this.#helpersByAlias.size >= this.#maxHelpers) {
54
+ throw fault("CLAUDE_NATIVE_HELPER_CAPACITY", true);
55
+ }
56
+ let record;
57
+ const buffered = [];
58
+ let exitedBeforeReady = false;
59
+ const client = await this.#factory({
60
+ runtime: this.#runtime,
61
+ hostId: "this-mac",
62
+ locale: this.#locale,
63
+ deliveryNotices: this.#deliveryNotices,
64
+ maxPendingMessages: this.#maxPendingMessages,
65
+ registration: input,
66
+ callbacks: {
67
+ onEvent: (event) => {
68
+ if (record === undefined)
69
+ buffered.push(event);
70
+ else
71
+ this.#onEvent(record, event);
72
+ },
73
+ onExit: () => {
74
+ if (record === undefined)
75
+ exitedBeforeReady = true;
76
+ else
77
+ this.#onExit(record);
78
+ },
79
+ },
80
+ });
81
+ if (this.#closed || exitedBeforeReady) {
82
+ await client.forceClose().catch(() => undefined);
83
+ throw fault("CLAUDE_NATIVE_HELPER_UNAVAILABLE", true);
84
+ }
85
+ record = {
86
+ client,
87
+ activeAlias: input.alias,
88
+ activeGeneration: client.generation,
89
+ authorizedRoutes: new Map(),
90
+ closing: false,
91
+ };
92
+ this.#helpersByAlias.set(input.alias, record);
93
+ this.#helpersByGeneration.set(client.generation, record);
94
+ for (const event of buffered)
95
+ this.#onEvent(record, event);
96
+ try {
97
+ ok(await client.request({
98
+ method: "resume_generation",
99
+ generation: client.generation,
100
+ }));
101
+ }
102
+ catch (error) {
103
+ // The child may have activated before the response was lost. Preserve
104
+ // exact ownership in the supervisor so ordinary rollback can close it.
105
+ throw error;
106
+ }
107
+ }
108
+ currentGeneration(alias) {
109
+ const helper = this.#helpersByAlias.get(alias);
110
+ if (helper === undefined || helper.closing) {
111
+ throw fault("CODEX_PEER_GENERATION_MISMATCH");
112
+ }
113
+ return helper.activeGeneration;
114
+ }
115
+ async updateStatus(alias, status) {
116
+ const helper = this.#helpersByAlias.get(alias);
117
+ if (helper === undefined || helper.closing)
118
+ return;
119
+ ok(await helper.client.request({ method: "update_status", alias, status }));
120
+ }
121
+ async unadvertise(alias) {
122
+ const helper = this.#helpersByAlias.get(alias);
123
+ if (helper === undefined)
124
+ return;
125
+ helper.closing = true;
126
+ let failure;
127
+ try {
128
+ ok(await helper.client.request({ method: "unadvertise", alias }));
129
+ }
130
+ catch (error) {
131
+ failure = error;
132
+ }
133
+ await helper.client.close().catch((error) => {
134
+ failure ??= error;
135
+ });
136
+ this.#removeHelper(helper);
137
+ if (failure !== undefined)
138
+ throw failure;
139
+ }
140
+ async dispatch(input) {
141
+ const helper = this.#helpersByAlias.get(input.sourceAlias);
142
+ if (helper === undefined || helper.closing) {
143
+ return { state: "failed", safeErrorCode: "CLAUDE_NATIVE_HELPER_UNAVAILABLE" };
144
+ }
145
+ if (input.authorization === "selected_route") {
146
+ if (input.selectedAlias === undefined || input.stateRoot === undefined) {
147
+ return { state: "failed", safeErrorCode: "CLAUDE_ROUTE_UNAVAILABLE" };
148
+ }
149
+ const authority = `${input.selectedAlias}\0${input.stateRoot}`;
150
+ if (helper.authorizedRoutes.get(input.binding.routeHandle) !== authority) {
151
+ ok(await helper.client.request({
152
+ method: "authorize_route",
153
+ alias: input.selectedAlias,
154
+ routeHandle: input.binding.routeHandle,
155
+ stateRoot: input.stateRoot,
156
+ }));
157
+ helper.authorizedRoutes.set(input.binding.routeHandle, authority);
158
+ }
159
+ }
160
+ this.#pendingDispatches.set(input.messageId, {
161
+ helper,
162
+ evidence: "none",
163
+ });
164
+ try {
165
+ const result = await helper.client.request({
166
+ method: "dispatch",
167
+ binding: input.binding,
168
+ authorization: input.authorization,
169
+ messageId: input.messageId,
170
+ text: input.text,
171
+ expectsReply: input.expectsReply,
172
+ deadlineAt: input.deadlineAt,
173
+ }, Math.max(1, Math.min(60_000, Date.parse(input.deadlineAt) - Date.now())));
174
+ if (!("state" in result) ||
175
+ ![
176
+ "pending",
177
+ "accepted",
178
+ "deferred",
179
+ "delivered",
180
+ "failed",
181
+ "ambiguous",
182
+ "cancelled",
183
+ ].includes(String(result.state))) {
184
+ throw fault("CLAUDE_NATIVE_HELPER_INVALID_RESPONSE");
185
+ }
186
+ if (result.state !== "pending")
187
+ this.#pendingDispatches.delete(input.messageId);
188
+ return result;
189
+ }
190
+ catch (error) {
191
+ const pending = this.#pendingDispatches.get(input.messageId);
192
+ if (pending?.evidence === "none")
193
+ this.#pendingDispatches.delete(input.messageId);
194
+ throw error;
195
+ }
196
+ }
197
+ async releaseRoute(routeHandle) {
198
+ const results = await Promise.allSettled([...new Set(this.#helpersByAlias.values())].map(async (helper) => {
199
+ helper.authorizedRoutes.delete(routeHandle);
200
+ ok(await helper.client.request({ method: "release_route", routeHandle }));
201
+ }));
202
+ const failed = results.find((result) => result.status === "rejected");
203
+ if (failed !== undefined)
204
+ throw failed.reason;
205
+ }
206
+ async updateInboundStatus(receiptHandle, status, diagnosticCode) {
207
+ const owner = this.#requireReceipt(receiptHandle);
208
+ try {
209
+ ok(await owner.helper.client.request({
210
+ method: "update_inbound_status",
211
+ receiptHandle: owner.childHandle,
212
+ status,
213
+ ...(diagnosticCode === undefined ? {} : { diagnosticCode }),
214
+ }));
215
+ if (status !== "held")
216
+ this.#receiptOwners.delete(receiptHandle);
217
+ }
218
+ catch (error) {
219
+ if (status !== "held" &&
220
+ (!(error instanceof BridgeError) || !error.recoverable)) {
221
+ this.#receiptOwners.delete(receiptHandle);
222
+ }
223
+ throw error;
224
+ }
225
+ }
226
+ async notifyInboundProgress(receiptHandle, progress) {
227
+ const owner = this.#requireReceipt(receiptHandle);
228
+ ok(await owner.helper.client.request({
229
+ method: "notify_inbound_progress",
230
+ receiptHandle: owner.childHandle,
231
+ progress,
232
+ }));
233
+ }
234
+ async releaseInboundReceipt(receiptHandle) {
235
+ const owner = this.#receiptOwners.get(receiptHandle);
236
+ if (owner === undefined)
237
+ return false;
238
+ this.#receiptOwners.delete(receiptHandle);
239
+ const result = await owner.helper.client.request({
240
+ method: "release_inbound_receipt",
241
+ receiptHandle: owner.childHandle,
242
+ });
243
+ return "released" in result && result.released === true;
244
+ }
245
+ async quiesceAll() {
246
+ const results = await Promise.allSettled([...new Set(this.#helpersByAlias.values())].map(async (helper) => {
247
+ ok(await helper.client.request({
248
+ method: "quiesce_generation",
249
+ generation: helper.activeGeneration,
250
+ }));
251
+ }));
252
+ const failed = results.find((result) => result.status === "rejected");
253
+ if (failed !== undefined)
254
+ throw failed.reason;
255
+ }
256
+ async quiesceGeneration(generation) {
257
+ const helper = this.#requireGeneration(generation);
258
+ ok(await helper.client.request({ method: "quiesce_generation", generation }));
259
+ }
260
+ async observeBarrier(generation) {
261
+ const helper = this.#requireGeneration(generation);
262
+ const result = await helper.client.request({ method: "observe_barrier", generation });
263
+ if (!("clean" in result) || !("generation" in result)) {
264
+ throw fault("CLAUDE_NATIVE_HELPER_INVALID_RESPONSE");
265
+ }
266
+ return result;
267
+ }
268
+ async prepareGeneration(input) {
269
+ const helper = this.#helpersByGeneration.get(input.currentGeneration);
270
+ if (helper === undefined ||
271
+ helper.activeGeneration !== input.currentGeneration ||
272
+ helper.prepared !== undefined) {
273
+ throw fault("CODEX_PEER_SUCCESSION_CAPACITY");
274
+ }
275
+ ok(await helper.client.request({
276
+ method: "prepare_generation",
277
+ alias: input.alias,
278
+ cwd: input.cwd,
279
+ generation: input.generation,
280
+ }));
281
+ helper.prepared = { alias: input.alias, generation: input.generation };
282
+ this.#helpersByGeneration.set(input.generation, helper);
283
+ }
284
+ async publishPrepared(input) {
285
+ const helper = this.#requireGeneration(input.currentGeneration);
286
+ if (this.#requireGeneration(input.preparedGeneration) !== helper) {
287
+ throw fault("CODEX_PEER_SUCCESSION_GENERATION_MISMATCH");
288
+ }
289
+ const result = await helper.client.request({
290
+ method: "publish_prepared",
291
+ ...input,
292
+ });
293
+ if (!("publication" in result)) {
294
+ throw fault("CLAUDE_NATIVE_HELPER_INVALID_RESPONSE");
295
+ }
296
+ return result.publication;
297
+ }
298
+ async activatePrepared(generation) {
299
+ const helper = this.#requireGeneration(generation);
300
+ const prepared = helper.prepared;
301
+ if (prepared?.generation !== generation) {
302
+ throw fault("CODEX_PEER_SUCCESSION_GENERATION_MISMATCH");
303
+ }
304
+ const oldAlias = helper.activeAlias;
305
+ const oldGeneration = helper.activeGeneration;
306
+ ok(await helper.client.request({ method: "activate_prepared", generation }));
307
+ this.#helpersByAlias.delete(oldAlias);
308
+ helper.retiredGeneration = oldGeneration;
309
+ helper.activeAlias = prepared.alias;
310
+ helper.activeGeneration = prepared.generation;
311
+ delete helper.prepared;
312
+ helper.authorizedRoutes.clear();
313
+ this.#helpersByAlias.set(helper.activeAlias, helper);
314
+ }
315
+ async cleanupPrepared(generation) {
316
+ const helper = this.#requireGeneration(generation);
317
+ ok(await helper.client.request({ method: "cleanup_prepared", generation }));
318
+ if (helper.prepared?.generation === generation)
319
+ delete helper.prepared;
320
+ this.#helpersByGeneration.delete(generation);
321
+ }
322
+ async resumeGeneration(generation) {
323
+ const helper = this.#requireGeneration(generation);
324
+ ok(await helper.client.request({ method: "resume_generation", generation }));
325
+ }
326
+ async rollbackPrepared(input) {
327
+ const helper = this.#requireGeneration(input.resumeGeneration);
328
+ if (this.#requireGeneration(input.preparedGeneration) !== helper) {
329
+ throw fault("CODEX_PEER_SUCCESSION_GENERATION_MISMATCH");
330
+ }
331
+ ok(await helper.client.request({ method: "rollback_prepared", ...input }));
332
+ if (helper.prepared?.generation === input.preparedGeneration) {
333
+ delete helper.prepared;
334
+ }
335
+ this.#helpersByGeneration.delete(input.preparedGeneration);
336
+ }
337
+ async retireGeneration(input) {
338
+ const helper = this.#requireGeneration(input.protectedActiveGeneration);
339
+ if (this.#requireGeneration(input.retiredGeneration) !== helper) {
340
+ throw fault("CODEX_PEER_SUCCESSION_GENERATION_MISMATCH");
341
+ }
342
+ ok(await helper.client.request({ method: "retire_generation", ...input }));
343
+ if (helper.retiredGeneration === input.retiredGeneration) {
344
+ delete helper.retiredGeneration;
345
+ }
346
+ this.#helpersByGeneration.delete(input.retiredGeneration);
347
+ }
348
+ async purgeGenerationReplies(generation) {
349
+ const helper = this.#requireGeneration(generation);
350
+ const result = await helper.client.request({
351
+ method: "purge_generation_replies",
352
+ generation,
353
+ });
354
+ if (!("purged" in result) || !Number.isSafeInteger(result.purged)) {
355
+ throw fault("CLAUDE_NATIVE_HELPER_INVALID_RESPONSE");
356
+ }
357
+ return result.purged;
358
+ }
359
+ async close() {
360
+ if (this.#closed)
361
+ return;
362
+ this.#closed = true;
363
+ const helpers = [...new Set(this.#helpersByAlias.values())];
364
+ for (const helper of helpers)
365
+ helper.closing = true;
366
+ const results = await Promise.allSettled(helpers.map(async (helper) => await helper.client.close()));
367
+ for (const helper of helpers)
368
+ this.#removeHelper(helper);
369
+ const failed = results.find((result) => result.status === "rejected");
370
+ if (failed !== undefined)
371
+ throw failed.reason;
372
+ }
373
+ #onEvent(helper, event) {
374
+ if (helper.closing || this.#closed)
375
+ return;
376
+ const callbacks = this.#callbacks();
377
+ if (event.event === "delivery") {
378
+ const pending = this.#pendingDispatches.get(event.value.messageId);
379
+ if (pending?.helper !== helper)
380
+ return;
381
+ if (event.value.state === "transport_uncertain") {
382
+ pending.evidence = "transport_uncertain";
383
+ }
384
+ else if (event.value.state === "transport_written" ||
385
+ event.value.state === "held") {
386
+ pending.evidence = "transport_written";
387
+ }
388
+ if (TERMINAL_DELIVERY_STATES.has(event.value.state)) {
389
+ this.#pendingDispatches.delete(event.value.messageId);
390
+ }
391
+ callbacks?.onDelivery({ ...event.value });
392
+ return;
393
+ }
394
+ if (event.event === "claude_reply") {
395
+ callbacks?.onClaudeReply({
396
+ endpoint: { ...this.#identity, routeHandle: event.value.routeHandle },
397
+ text: event.value.text,
398
+ });
399
+ return;
400
+ }
401
+ if (event.event === "protocol_notice") {
402
+ callbacks?.onProtocolNotice?.({ code: event.value.code });
403
+ return;
404
+ }
405
+ if (event.value.targetAlias !== helper.activeAlias) {
406
+ callbacks?.onProtocolNotice?.({ code: "CLAUDE_NATIVE_HELPER_TARGET_MISMATCH" });
407
+ return;
408
+ }
409
+ let receiptHandle;
410
+ if (event.value.receiptHandle !== undefined) {
411
+ if (this.#receiptOwners.size >= this.#maxPendingMessages) {
412
+ void helper.client
413
+ .request({
414
+ method: "update_inbound_status",
415
+ receiptHandle: event.value.receiptHandle,
416
+ status: "expired",
417
+ diagnosticCode: "CLAUDE_NATIVE_INGRESS_CAPACITY",
418
+ })
419
+ .catch(() => undefined);
420
+ return;
421
+ }
422
+ receiptHandle = `nrc_${randomBytes(18).toString("base64url")}`;
423
+ this.#receiptOwners.set(receiptHandle, {
424
+ helper,
425
+ childHandle: event.value.receiptHandle,
426
+ });
427
+ }
428
+ callbacks?.onClaudeMessage?.({
429
+ endpoint: { ...this.#identity, routeHandle: event.value.routeHandle },
430
+ sourceAlias: event.value.sourceAlias,
431
+ targetAlias: event.value.targetAlias,
432
+ text: event.value.text,
433
+ ...(receiptHandle === undefined ? {} : { receiptHandle }),
434
+ });
435
+ }
436
+ #onExit(helper) {
437
+ const intentional = helper.closing || this.#closed;
438
+ if (intentional) {
439
+ this.#removeHelper(helper);
440
+ return;
441
+ }
442
+ const callbacks = this.#callbacks();
443
+ for (const [messageId, pending] of this.#pendingDispatches) {
444
+ if (pending.helper !== helper)
445
+ continue;
446
+ this.#pendingDispatches.delete(messageId);
447
+ callbacks?.onDelivery({
448
+ messageId,
449
+ state: pending.evidence === "transport_written"
450
+ ? "unconfirmed"
451
+ : pending.evidence === "transport_uncertain"
452
+ ? "ambiguous"
453
+ : "failed",
454
+ safeErrorCode: "CLAUDE_NATIVE_HELPER_EXITED",
455
+ });
456
+ }
457
+ callbacks?.onProtocolNotice?.({ code: "CLAUDE_NATIVE_HELPER_EXITED" });
458
+ this.#removeHelper(helper);
459
+ }
460
+ #removeHelper(helper) {
461
+ for (const [alias, candidate] of this.#helpersByAlias) {
462
+ if (candidate === helper)
463
+ this.#helpersByAlias.delete(alias);
464
+ }
465
+ for (const [generation, candidate] of this.#helpersByGeneration) {
466
+ if (candidate === helper)
467
+ this.#helpersByGeneration.delete(generation);
468
+ }
469
+ for (const [handle, owner] of this.#receiptOwners) {
470
+ if (owner.helper === helper)
471
+ this.#receiptOwners.delete(handle);
472
+ }
473
+ for (const [messageId, pending] of this.#pendingDispatches) {
474
+ if (pending.helper === helper)
475
+ this.#pendingDispatches.delete(messageId);
476
+ }
477
+ }
478
+ #requireGeneration(generation) {
479
+ const helper = this.#helpersByGeneration.get(generation);
480
+ if (helper === undefined || helper.closing) {
481
+ throw fault("CODEX_PEER_SUCCESSION_GENERATION_MISMATCH");
482
+ }
483
+ return helper;
484
+ }
485
+ #requireReceipt(receiptHandle) {
486
+ const owner = this.#receiptOwners.get(receiptHandle);
487
+ if (owner === undefined || owner.helper.closing) {
488
+ throw fault("CLAUDE_PEER_RECEIPT_UNKNOWN");
489
+ }
490
+ return owner;
491
+ }
492
+ #assertOpen() {
493
+ if (this.#closed)
494
+ throw fault("CLAUDE_NATIVE_HELPER_SUPERVISOR_CLOSED");
495
+ }
496
+ }
497
+ //# sourceMappingURL=claude-helper-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-helper-supervisor.js","sourceRoot":"","sources":["../../../src/gateway/claude-helper-supervisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function runClaudeNativeHelperProcess(): Promise<void>;