agent-embassy 3.0.0 → 4.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 (115) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/CONTRIBUTING.md +92 -200
  3. package/README.md +159 -138
  4. package/SECURITY.md +191 -335
  5. package/dist/src/gateway/broker-check.d.ts +26 -0
  6. package/dist/src/gateway/broker-check.js +89 -0
  7. package/dist/src/gateway/broker-check.js.map +1 -0
  8. package/dist/src/gateway/broker-control.d.ts +72 -0
  9. package/dist/src/gateway/broker-control.js +164 -0
  10. package/dist/src/gateway/broker-control.js.map +1 -0
  11. package/dist/src/gateway/broker.d.ts +117 -0
  12. package/dist/src/gateway/broker.js +186 -0
  13. package/dist/src/gateway/broker.js.map +1 -0
  14. package/dist/src/gateway/claude-peer.d.ts +1 -124
  15. package/dist/src/gateway/claude-peer.js +62 -1053
  16. package/dist/src/gateway/claude-peer.js.map +1 -1
  17. package/dist/src/gateway/codex-stateless-transport.d.ts +0 -12
  18. package/dist/src/gateway/codex-stateless-transport.js +8 -142
  19. package/dist/src/gateway/codex-stateless-transport.js.map +1 -1
  20. package/dist/src/gateway/config.d.ts +2 -6
  21. package/dist/src/gateway/config.js +17 -27
  22. package/dist/src/gateway/config.js.map +1 -1
  23. package/dist/src/gateway/coordinator.d.ts +57 -0
  24. package/dist/src/gateway/coordinator.js +217 -0
  25. package/dist/src/gateway/coordinator.js.map +1 -0
  26. package/dist/src/gateway/core-cli.d.ts +15 -0
  27. package/dist/src/gateway/core-cli.js +282 -0
  28. package/dist/src/gateway/core-cli.js.map +1 -0
  29. package/dist/src/gateway/core-service-command.d.ts +16 -0
  30. package/dist/src/gateway/core-service-command.js +71 -0
  31. package/dist/src/gateway/core-service-command.js.map +1 -0
  32. package/dist/src/gateway/endpoint-directory.d.ts +33 -0
  33. package/dist/src/gateway/endpoint-directory.js +223 -0
  34. package/dist/src/gateway/endpoint-directory.js.map +1 -0
  35. package/dist/src/gateway/federation.d.ts +89 -0
  36. package/dist/src/gateway/federation.js +632 -0
  37. package/dist/src/gateway/federation.js.map +1 -0
  38. package/dist/src/gateway/ledger-codec.d.ts +3 -0
  39. package/dist/src/gateway/ledger-codec.js +159 -0
  40. package/dist/src/gateway/ledger-codec.js.map +1 -0
  41. package/dist/src/gateway/ledger.d.ts +138 -0
  42. package/dist/src/gateway/ledger.js +319 -0
  43. package/dist/src/gateway/ledger.js.map +1 -0
  44. package/dist/src/gateway/local-control.d.ts +23 -0
  45. package/dist/src/gateway/local-control.js +489 -0
  46. package/dist/src/gateway/local-control.js.map +1 -0
  47. package/dist/src/gateway/native-destinations.d.ts +34 -0
  48. package/dist/src/gateway/native-destinations.js +272 -0
  49. package/dist/src/gateway/native-destinations.js.map +1 -0
  50. package/dist/src/gateway/owned-state.d.ts +57 -0
  51. package/dist/src/gateway/owned-state.js +398 -0
  52. package/dist/src/gateway/owned-state.js.map +1 -0
  53. package/dist/src/gateway/provenance-envelope.d.ts +3 -3
  54. package/dist/src/gateway/provenance-envelope.js +3 -23
  55. package/dist/src/gateway/provenance-envelope.js.map +1 -1
  56. package/dist/src/gateway/runtime.d.ts +41 -0
  57. package/dist/src/gateway/runtime.js +175 -0
  58. package/dist/src/gateway/runtime.js.map +1 -0
  59. package/docs/CONFIGURATION.md +178 -266
  60. package/docs/DELIVERY.md +133 -82
  61. package/docs/GATEWAY-ARCHITECTURE.md +276 -943
  62. package/package.json +5 -5
  63. package/skills/embassy-peer/SKILL.md +38 -194
  64. package/skills/embassy-peer/agents/openai.yaml +2 -2
  65. package/dist/src/gateway/claude-helper-client.d.ts +0 -2
  66. package/dist/src/gateway/claude-helper-client.js +0 -2
  67. package/dist/src/gateway/claude-helper-client.js.map +0 -1
  68. package/dist/src/gateway/claude-helper-protocol.d.ts +0 -117
  69. package/dist/src/gateway/claude-helper-protocol.js +0 -122
  70. package/dist/src/gateway/claude-helper-protocol.js.map +0 -1
  71. package/dist/src/gateway/claude-helper-supervisor.d.ts +0 -87
  72. package/dist/src/gateway/claude-helper-supervisor.js +0 -347
  73. package/dist/src/gateway/claude-helper-supervisor.js.map +0 -1
  74. package/dist/src/gateway/claude-helper.d.ts +0 -1
  75. package/dist/src/gateway/claude-helper.js +0 -252
  76. package/dist/src/gateway/claude-helper.js.map +0 -1
  77. package/dist/src/gateway/cli.d.ts +0 -57
  78. package/dist/src/gateway/cli.js +0 -1503
  79. package/dist/src/gateway/cli.js.map +0 -1
  80. package/dist/src/gateway/codex-socket-holder.d.ts +0 -26
  81. package/dist/src/gateway/codex-socket-holder.js +0 -76
  82. package/dist/src/gateway/codex-socket-holder.js.map +0 -1
  83. package/dist/src/gateway/control.d.ts +0 -261
  84. package/dist/src/gateway/control.js +0 -903
  85. package/dist/src/gateway/control.js.map +0 -1
  86. package/dist/src/gateway/peer-client.d.ts +0 -58
  87. package/dist/src/gateway/peer-client.js +0 -217
  88. package/dist/src/gateway/peer-client.js.map +0 -1
  89. package/dist/src/gateway/peer-mailbox.d.ts +0 -78
  90. package/dist/src/gateway/peer-mailbox.js +0 -168
  91. package/dist/src/gateway/peer-mailbox.js.map +0 -1
  92. package/dist/src/gateway/peer-protocol.d.ts +0 -105
  93. package/dist/src/gateway/peer-protocol.js +0 -70
  94. package/dist/src/gateway/peer-protocol.js.map +0 -1
  95. package/dist/src/gateway/peer-stdio.d.ts +0 -23
  96. package/dist/src/gateway/peer-stdio.js +0 -100
  97. package/dist/src/gateway/peer-stdio.js.map +0 -1
  98. package/dist/src/gateway/providers.d.ts +0 -163
  99. package/dist/src/gateway/providers.js +0 -972
  100. package/dist/src/gateway/providers.js.map +0 -1
  101. package/dist/src/gateway/server.d.ts +0 -47
  102. package/dist/src/gateway/server.js +0 -219
  103. package/dist/src/gateway/server.js.map +0 -1
  104. package/dist/src/gateway/service.d.ts +0 -373
  105. package/dist/src/gateway/service.js +0 -2274
  106. package/dist/src/gateway/service.js.map +0 -1
  107. package/dist/src/gateway/status-view.d.ts +0 -167
  108. package/dist/src/gateway/status-view.js +0 -488
  109. package/dist/src/gateway/status-view.js.map +0 -1
  110. package/dist/src/gateway/store.d.ts +0 -185
  111. package/dist/src/gateway/store.js +0 -2359
  112. package/dist/src/gateway/store.js.map +0 -1
  113. package/dist/src/gateway/types.d.ts +0 -528
  114. package/dist/src/gateway/types.js +0 -341
  115. package/dist/src/gateway/types.js.map +0 -1
@@ -0,0 +1,398 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { constants } from "node:fs";
3
+ import { chmod, lstat, mkdir, open, readdir, realpath, rename, unlink, } from "node:fs/promises";
4
+ import os from "node:os";
5
+ import path from "node:path";
6
+ import { BridgeError } from "../errors.js";
7
+ import { KeyedMutex } from "../mutex.js";
8
+ const STATE_MARKER = ".agent-embassy-state";
9
+ const STATE_MARKER_CONTENT = "agent-embassy-state-v1\n";
10
+ const STATE_FILE = "gateway-state.json";
11
+ const MAX_MARKER_FILE_BYTES = 128;
12
+ const MAX_DOCUMENT_BYTES = 8 * 1024 * 1024;
13
+ class PostRenamePersistenceError extends BridgeError {
14
+ constructor() {
15
+ super("GATEWAY_STATE_COMMIT_OUTCOME_UNKNOWN", "The installed state commit could not be verified. The controller was disabled and requires recovery.");
16
+ this.name = "PostRenamePersistenceError";
17
+ }
18
+ }
19
+ function isObject(value) {
20
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
21
+ }
22
+ function isErrno(error, code) {
23
+ return error instanceof Error && "code" in error && error.code === code;
24
+ }
25
+ function sameCommit(left, right) {
26
+ return left === undefined || right === undefined
27
+ ? left === right
28
+ : left.commit.sequence === right.commit.sequence && left.commit.id === right.commit.id;
29
+ }
30
+ async function assertNoSymlinkComponents(candidate) {
31
+ let cursor = path.resolve(candidate);
32
+ while (true) {
33
+ try {
34
+ const info = await lstat(cursor);
35
+ if (info.isSymbolicLink()) {
36
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_DIRECTORY", "The gateway state path cannot contain symbolic links.");
37
+ }
38
+ }
39
+ catch (error) {
40
+ if (!isErrno(error, "ENOENT"))
41
+ throw error;
42
+ }
43
+ const parent = path.dirname(cursor);
44
+ if (parent === cursor)
45
+ break;
46
+ cursor = parent;
47
+ }
48
+ }
49
+ async function canonicalFuturePath(candidate) {
50
+ const absolute = path.resolve(candidate);
51
+ const parsed = path.parse(absolute);
52
+ const parts = absolute.slice(parsed.root.length).split(path.sep).filter(Boolean);
53
+ let cursor = parsed.root;
54
+ for (let index = 0; index < parts.length; index += 1) {
55
+ const next = path.join(cursor, parts[index]);
56
+ try {
57
+ cursor = await realpath(next);
58
+ }
59
+ catch (error) {
60
+ if (isErrno(error, "ENOENT"))
61
+ return path.join(cursor, ...parts.slice(index));
62
+ throw error;
63
+ }
64
+ }
65
+ return cursor;
66
+ }
67
+ /**
68
+ * One owned, bounded JSON document. The caller's host-wide instance lease is
69
+ * the process-exclusion boundary; this class deliberately creates no second
70
+ * PID lock. Domain transitions and restart settlement belong to the ledger.
71
+ */
72
+ export class OwnedStateFile {
73
+ rootDir;
74
+ codec;
75
+ now;
76
+ randomId;
77
+ renameStateFile;
78
+ syncStateDirectory;
79
+ afterStateFileRename;
80
+ mutex = new KeyedMutex();
81
+ state;
82
+ poisoned = false;
83
+ assertWritable;
84
+ constructor(stateDir, codec, dependencies = {}) {
85
+ if (!Number.isSafeInteger(codec.schemaVersion) || codec.schemaVersion < 1 ||
86
+ !Number.isSafeInteger(codec.maximumBytes) || codec.maximumBytes < 1 ||
87
+ codec.maximumBytes > MAX_DOCUMENT_BYTES) {
88
+ throw new BridgeError("INVALID_GATEWAY_CONFIGURATION", "The owned state document limits are invalid.");
89
+ }
90
+ this.rootDir = path.resolve(stateDir);
91
+ this.assertWritable = dependencies.assertWritable ?? (() => { });
92
+ this.codec = codec;
93
+ this.now = dependencies.now ?? (() => new Date());
94
+ this.randomId = dependencies.randomId ?? randomUUID;
95
+ this.renameStateFile = dependencies.renameStateFile ?? rename;
96
+ this.syncStateDirectory = dependencies.syncStateDirectory ?? (async (directoryPath) => {
97
+ const directory = await open(directoryPath, constants.O_RDONLY);
98
+ try {
99
+ await directory.sync();
100
+ }
101
+ finally {
102
+ await directory.close();
103
+ }
104
+ });
105
+ this.afterStateFileRename = dependencies.afterStateFileRename;
106
+ }
107
+ get stateFilePath() {
108
+ return path.join(this.rootDir, STATE_FILE);
109
+ }
110
+ async initialize() {
111
+ await this.mutex.run("owned-state", async () => {
112
+ if (this.poisoned)
113
+ throw new PostRenamePersistenceError();
114
+ if (this.state !== undefined)
115
+ return;
116
+ this.rootDir = await this.prepareOwnedDirectory();
117
+ const loaded = await this.loadStateFile();
118
+ if (loaded !== undefined) {
119
+ this.state = loaded;
120
+ return;
121
+ }
122
+ const initial = this.codec.create({
123
+ now: this.now(),
124
+ commit: { sequence: 0, id: this.randomId() },
125
+ });
126
+ this.assertDocument(initial);
127
+ await this.persist(initial, undefined);
128
+ this.state = initial;
129
+ });
130
+ }
131
+ async snapshot() {
132
+ return this.mutex.run("owned-state", async () => structuredClone(this.requireState()));
133
+ }
134
+ async transact(operation) {
135
+ return this.mutex.run("owned-state", async () => {
136
+ const current = this.requireState();
137
+ this.assertWritable();
138
+ const draft = structuredClone(current);
139
+ const result = operation(draft, this.now());
140
+ if ((typeof result === "object" || typeof result === "function") &&
141
+ result !== null && "then" in result) {
142
+ throw new TypeError("Owned state transactions must be synchronous.");
143
+ }
144
+ if (JSON.stringify(draft) === JSON.stringify(current)) {
145
+ return structuredClone(result);
146
+ }
147
+ const mutable = draft;
148
+ mutable.commit = {
149
+ sequence: current.commit.sequence + 1,
150
+ id: this.randomId(),
151
+ };
152
+ this.assertDocument(draft);
153
+ const isolatedResult = structuredClone(result);
154
+ await this.persist(draft, current);
155
+ this.state = draft;
156
+ return isolatedResult;
157
+ });
158
+ }
159
+ async close() {
160
+ await this.mutex.run("owned-state", async () => {
161
+ this.state = undefined;
162
+ });
163
+ }
164
+ requireState() {
165
+ if (this.poisoned)
166
+ throw new PostRenamePersistenceError();
167
+ if (this.state === undefined) {
168
+ throw new BridgeError("GATEWAY_NOT_INITIALIZED", "The owned state document has not been initialized.");
169
+ }
170
+ return this.state;
171
+ }
172
+ assertDocument(value) {
173
+ if (value.schemaVersion !== this.codec.schemaVersion ||
174
+ this.codec.decode(structuredClone(value)) === undefined) {
175
+ throw new BridgeError("CORRUPT_GATEWAY_STATE", "The gateway controller state failed strict schema validation.");
176
+ }
177
+ this.codec.assertBounds?.(value);
178
+ }
179
+ assertOwnedPrivate(uid, mode, kind) {
180
+ if (typeof process.getuid === "function" && uid !== process.getuid()) {
181
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_DIRECTORY", `The gateway state ${kind} is not owned by the current process user.`);
182
+ }
183
+ const expected = kind === "directory" ? 0o700 : 0o600;
184
+ if ((mode & 0o777) !== expected) {
185
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_DIRECTORY", `The gateway state ${kind} must use exact mode ${expected.toString(8)}.`);
186
+ }
187
+ }
188
+ async prepareOwnedDirectory() {
189
+ const requested = path.resolve(this.rootDir);
190
+ await assertNoSymlinkComponents(requested);
191
+ const canonical = await canonicalFuturePath(requested);
192
+ const home = await realpath(os.homedir()).catch(() => path.resolve(os.homedir()));
193
+ const temporaryRoot = await realpath(os.tmpdir()).catch(() => path.resolve(os.tmpdir()));
194
+ if (canonical === path.parse(canonical).root || canonical === home ||
195
+ canonical === temporaryRoot) {
196
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_DIRECTORY", "The gateway state directory must be a dedicated private leaf.");
197
+ }
198
+ let existed = true;
199
+ try {
200
+ const info = await lstat(canonical);
201
+ if (info.isSymbolicLink() || !info.isDirectory()) {
202
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_DIRECTORY", "The gateway state path must be a real directory.");
203
+ }
204
+ this.assertOwnedPrivate(info.uid, info.mode, "directory");
205
+ }
206
+ catch (error) {
207
+ if (isErrno(error, "ENOENT"))
208
+ existed = false;
209
+ else
210
+ throw error;
211
+ }
212
+ if (!existed) {
213
+ await mkdir(canonical, { recursive: true, mode: 0o700 });
214
+ await chmod(canonical, 0o700);
215
+ }
216
+ const root = await realpath(canonical);
217
+ if (root !== canonical) {
218
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_DIRECTORY", "The gateway state path changed while it was prepared.");
219
+ }
220
+ const markerPath = path.join(root, STATE_MARKER);
221
+ let markerExists = true;
222
+ try {
223
+ await this.readPrivateFile(markerPath, MAX_MARKER_FILE_BYTES, STATE_MARKER_CONTENT);
224
+ }
225
+ catch (error) {
226
+ if (isErrno(error, "ENOENT"))
227
+ markerExists = false;
228
+ else
229
+ throw error;
230
+ }
231
+ if (!markerExists) {
232
+ const entries = await readdir(root);
233
+ if (existed && entries.some((entry) => entry !== "nodes.json")) {
234
+ throw new BridgeError("GATEWAY_STATE_DIRECTORY_NOT_OWNED", "The existing state directory is non-empty and lacks the ownership marker.");
235
+ }
236
+ const marker = await open(markerPath, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY |
237
+ (constants.O_NOFOLLOW ?? 0), 0o600);
238
+ try {
239
+ await marker.writeFile(STATE_MARKER_CONTENT, "utf8");
240
+ await marker.sync();
241
+ }
242
+ finally {
243
+ await marker.close();
244
+ }
245
+ }
246
+ return root;
247
+ }
248
+ async readPrivateFile(filePath, maximumBytes, expectedBody) {
249
+ const info = await lstat(filePath);
250
+ if (info.isSymbolicLink() || !info.isFile()) {
251
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_FILE", "A gateway controller file is not a regular file.");
252
+ }
253
+ this.assertOwnedPrivate(info.uid, info.mode, "file");
254
+ if (info.size > maximumBytes) {
255
+ throw new BridgeError("GATEWAY_STATE_FILE_TOO_LARGE", "A gateway controller file exceeds its strict byte limit.");
256
+ }
257
+ const handle = await open(filePath, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
258
+ try {
259
+ const opened = await handle.stat();
260
+ if (!opened.isFile() || opened.dev !== info.dev || opened.ino !== info.ino ||
261
+ opened.size > maximumBytes) {
262
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_FILE", "A gateway controller file changed during its bounded read.");
263
+ }
264
+ this.assertOwnedPrivate(opened.uid, opened.mode, "file");
265
+ const buffer = Buffer.alloc(maximumBytes + 1);
266
+ let offset = 0;
267
+ while (offset < buffer.length) {
268
+ const read = await handle.read(buffer, offset, buffer.length - offset, offset);
269
+ if (read.bytesRead === 0)
270
+ break;
271
+ offset += read.bytesRead;
272
+ }
273
+ if (offset > maximumBytes) {
274
+ throw new BridgeError("GATEWAY_STATE_FILE_TOO_LARGE", "A gateway controller file exceeds its strict byte limit.");
275
+ }
276
+ const body = buffer.subarray(0, offset).toString("utf8");
277
+ if (expectedBody !== undefined && body !== expectedBody) {
278
+ throw new BridgeError("GATEWAY_STATE_DIRECTORY_NOT_OWNED", "The gateway ownership marker is not recognized.");
279
+ }
280
+ return body;
281
+ }
282
+ finally {
283
+ await handle.close();
284
+ }
285
+ }
286
+ async loadStateFile() {
287
+ let body;
288
+ try {
289
+ body = await this.readPrivateFile(this.stateFilePath, this.codec.maximumBytes);
290
+ }
291
+ catch (error) {
292
+ if (isErrno(error, "ENOENT"))
293
+ return undefined;
294
+ throw error;
295
+ }
296
+ let parsed;
297
+ try {
298
+ parsed = JSON.parse(body);
299
+ }
300
+ catch {
301
+ throw new BridgeError("CORRUPT_GATEWAY_STATE", "The gateway controller state is not valid JSON.");
302
+ }
303
+ if (isObject(parsed) && Object.hasOwn(parsed, "schemaVersion") &&
304
+ parsed.schemaVersion !== this.codec.schemaVersion) {
305
+ throw new BridgeError("GATEWAY_STATE_SCHEMA_UNSUPPORTED", "The gateway state schema is unsupported. Stop Embassy, move gateway-state.json aside, then restart.");
306
+ }
307
+ const decoded = this.codec.decode(parsed);
308
+ if (decoded === undefined) {
309
+ throw new BridgeError("CORRUPT_GATEWAY_STATE", "The gateway controller state failed strict schema validation.");
310
+ }
311
+ this.codec.assertBounds?.(decoded);
312
+ return decoded;
313
+ }
314
+ async persist(next, prior) {
315
+ this.assertWritable();
316
+ const temporary = path.join(this.rootDir, `.gateway-state-${randomUUID()}.tmp`);
317
+ const body = `${JSON.stringify(next, null, 2)}\n`;
318
+ if (Buffer.byteLength(body, "utf8") > this.codec.maximumBytes) {
319
+ throw new BridgeError("GATEWAY_STATE_FILE_TOO_LARGE", "The bounded gateway state exceeds its durable byte limit.");
320
+ }
321
+ const observedPrior = await this.loadStateFile();
322
+ if (!sameCommit(observedPrior, prior)) {
323
+ this.poisoned = true;
324
+ this.state = undefined;
325
+ throw new PostRenamePersistenceError();
326
+ }
327
+ let handle;
328
+ let renameAttempted = false;
329
+ let directorySyncAttempted = false;
330
+ try {
331
+ try {
332
+ handle = await open(temporary, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY |
333
+ (constants.O_NOFOLLOW ?? 0), 0o600);
334
+ await handle.writeFile(body, "utf8");
335
+ await handle.chmod(0o600);
336
+ await handle.sync();
337
+ await handle.close();
338
+ handle = undefined;
339
+ try {
340
+ const existing = await lstat(this.stateFilePath);
341
+ if (existing.isSymbolicLink() || !existing.isFile()) {
342
+ throw new BridgeError("UNSAFE_GATEWAY_STATE_FILE", "The gateway state target is not a regular file.");
343
+ }
344
+ this.assertOwnedPrivate(existing.uid, existing.mode, "file");
345
+ }
346
+ catch (error) {
347
+ if (!isErrno(error, "ENOENT"))
348
+ throw error;
349
+ }
350
+ this.assertWritable();
351
+ renameAttempted = true;
352
+ await this.renameStateFile(temporary, this.stateFilePath);
353
+ await this.afterStateFileRename?.();
354
+ directorySyncAttempted = true;
355
+ await this.syncStateDirectory(this.rootDir);
356
+ }
357
+ catch (error) {
358
+ if (!renameAttempted)
359
+ throw error;
360
+ let installed;
361
+ let readbackFailed = false;
362
+ try {
363
+ installed = await this.loadStateFile();
364
+ }
365
+ catch {
366
+ readbackFailed = true;
367
+ }
368
+ if (sameCommit(installed, next)) {
369
+ // A readback identifies the installed value, but only a confirmed
370
+ // directory sync makes that rename durable across process failure.
371
+ if (!directorySyncAttempted) {
372
+ try {
373
+ directorySyncAttempted = true;
374
+ await this.syncStateDirectory(this.rootDir);
375
+ return;
376
+ }
377
+ catch {
378
+ // Fall through to the unknown-outcome poison below.
379
+ }
380
+ }
381
+ this.poisoned = true;
382
+ this.state = undefined;
383
+ throw new PostRenamePersistenceError();
384
+ }
385
+ if (!readbackFailed && sameCommit(installed, prior))
386
+ throw error;
387
+ this.poisoned = true;
388
+ this.state = undefined;
389
+ throw new PostRenamePersistenceError();
390
+ }
391
+ }
392
+ finally {
393
+ await handle?.close().catch(() => undefined);
394
+ await unlink(temporary).catch(() => undefined);
395
+ }
396
+ }
397
+ }
398
+ //# sourceMappingURL=owned-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owned-state.js","sourceRoot":"","sources":["../../../src/gateway/owned-state.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { GatewayProvider } from "./types.js";
1
+ import type { EndpointRef } from "./ledger.js";
2
+ type GatewayProvider = EndpointRef["provider"];
2
3
  export declare const PROVENANCE_RAW_BODY_MAX_BYTES: number;
3
4
  export declare const PROVENANCE_ENVELOPE_MAX_BYTES: number;
4
5
  export type ComposeProvenanceEnvelopeInput = Readonly<{
@@ -8,8 +9,6 @@ export type ComposeProvenanceEnvelopeInput = Readonly<{
8
9
  targetAlias: string;
9
10
  conversationId: string;
10
11
  body: string;
11
- /** Older accepted rows on this exact route when a STEER is injected. */
12
- queuedAhead?: number;
13
12
  }>;
14
13
  /**
15
14
  * Adds broker-owned, Claude-compatible textual framing at the provider write
@@ -17,3 +16,4 @@ export type ComposeProvenanceEnvelopeInput = Readonly<{
17
16
  * signature; the wrapper is a structural provenance marker for the recipient.
18
17
  */
19
18
  export declare function composeProvenanceEnvelope(input: ComposeProvenanceEnvelopeInput): string;
19
+ export {};
@@ -11,15 +11,9 @@ const PROVENANCE_RECIPIENT_PROFILE_VALUES = {
11
11
  claude: Object.freeze({
12
12
  fromNameMaxCodepoints: CLAUDE_FROM_NAME_MAX_CODEPOINTS,
13
13
  emitConversationAttribute: false,
14
- allowQueuedAhead: false,
15
14
  }),
16
15
  codex: Object.freeze({
17
16
  emitConversationAttribute: true,
18
- allowQueuedAhead: true,
19
- }),
20
- peer: Object.freeze({
21
- emitConversationAttribute: true,
22
- allowQueuedAhead: false,
23
17
  }),
24
18
  };
25
19
  const PROVENANCE_RECIPIENT_PROFILES = Object.freeze(PROVENANCE_RECIPIENT_PROFILE_VALUES);
@@ -38,20 +32,13 @@ function validateInput(input) {
38
32
  input === null ||
39
33
  !isGatewayProvider(input.sourceProvider) ||
40
34
  !isGatewayProvider(input.recipientProvider) ||
41
- (input.sourceProvider === input.recipientProvider &&
42
- input.sourceProvider !== "peer") ||
43
35
  typeof input.sourceAlias !== "string" ||
44
36
  !ALIAS_PATTERN.test(input.sourceAlias) ||
45
37
  typeof input.targetAlias !== "string" ||
46
38
  !ALIAS_PATTERN.test(input.targetAlias) ||
47
39
  typeof input.conversationId !== "string" ||
48
40
  !CONVERSATION_ID_PATTERN.test(input.conversationId) ||
49
- typeof input.body !== "string" ||
50
- (input.queuedAhead !== undefined &&
51
- (!PROVENANCE_RECIPIENT_PROFILES[input.recipientProvider]
52
- .allowQueuedAhead ||
53
- !Number.isSafeInteger(input.queuedAhead) ||
54
- input.queuedAhead < 1))) {
41
+ typeof input.body !== "string") {
55
42
  invalidEnvelope();
56
43
  }
57
44
  if (Buffer.byteLength(input.body, "utf8") > PROVENANCE_RAW_BODY_MAX_BYTES) {
@@ -96,22 +83,15 @@ export function composeProvenanceEnvelope(input) {
96
83
  const exactSourceAttribute = profile.fromNameMaxCodepoints !== undefined && display.shortened
97
84
  ? ` from-alias="${input.sourceAlias}"`
98
85
  : "";
99
- const replyCommand = `embassy send --conversation ${input.conversationId}` +
100
- ` --from ${input.targetAlias}`;
86
+ const replyCommand = `embassy send --conversation ${input.conversationId}`;
101
87
  const hint = `<embassy-reply-hint conversation="${input.conversationId}"` +
102
88
  ` reply-as="${input.targetAlias}"${exactSourceAttribute}` +
103
89
  ` from-provider="${input.sourceProvider}">` +
104
90
  `Reply by running \`${replyCommand}\` with the reply body on stdin. ` +
105
91
  "Caller, conversation, and route policy are rechecked.</embassy-reply-hint>";
106
- const queuedAheadMarker = input.queuedAhead === undefined
107
- ? ""
108
- : `\n<embassy-queued-ahead count="${input.queuedAhead}">` +
109
- `${input.queuedAhead} earlier ${input.queuedAhead === 1 ? "message is" : "messages are"} ` +
110
- "queued for this route and will arrive at your next turn " +
111
- "boundaries.</embassy-queued-ahead>";
112
92
  const body = neutralizeReservedTags(input.body);
113
93
  const envelope = `<cross-session-message from-name="${fromName}"${conversationAttribute}>\n` +
114
- `${hint}${queuedAheadMarker}\n${body}\n</cross-session-message>`;
94
+ `${hint}\n${body}\n</cross-session-message>`;
115
95
  if (Buffer.byteLength(envelope, "utf8") > PROVENANCE_ENVELOPE_MAX_BYTES) {
116
96
  envelopeTooLarge();
117
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provenance-envelope.js","sourceRoot":"","sources":["../../../src/gateway/provenance-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance-envelope.js","sourceRoot":"","sources":["../../../src/gateway/provenance-envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { ClaudePeerAdapter } from "./claude-peer.js";
2
+ import { type AttestedClaudePeerRuntime } from "./claude-runtime.js";
3
+ import { type StatelessCodexOperationTransport } from "./codex-stateless-transport.js";
4
+ import { type GatewayConfig } from "./config.js";
5
+ import { type Destination } from "./coordinator.js";
6
+ import { type ClaudeDirectoryAdapter, type RemoteEndpointResolver } from "./endpoint-directory.js";
7
+ import { type GatewayNodeInventory } from "./federation-nodes.js";
8
+ import { Federation } from "./federation.js";
9
+ import { type GatewayInstanceLease } from "./instance-lease.js";
10
+ import { serveLocalControl } from "./local-control.js";
11
+ export type CoreRuntimeReady = Readonly<{
12
+ status: "ready";
13
+ hostId: string;
14
+ codexMode: "native_messaging";
15
+ }>;
16
+ export type CoreRuntimeOptions = Readonly<{
17
+ env?: NodeJS.ProcessEnv;
18
+ signal?: AbortSignal;
19
+ onReady: (result: CoreRuntimeReady) => void | Promise<void>;
20
+ }>;
21
+ type RuntimeClaudePeer = ClaudeDirectoryAdapter & Pick<ClaudePeerAdapter, "prepareSend" | "close">;
22
+ type RuntimeFederation = Destination & RemoteEndpointResolver & Pick<Federation, "catalog" | "snapshot">;
23
+ type SignalName = "SIGINT" | "SIGTERM";
24
+ export type CoreRuntimeDependencies = Readonly<{
25
+ loginHome?: () => string;
26
+ loadInventory?: (stateDir: string) => Promise<GatewayNodeInventory>;
27
+ ensureInventory?: (stateDir: string, host: string) => Promise<GatewayNodeInventory>;
28
+ loadConfig?: (env: NodeJS.ProcessEnv, inventory: GatewayNodeInventory) => GatewayConfig;
29
+ acquireLease?: (home: string) => Promise<GatewayInstanceLease>;
30
+ attestClaudeRuntime?: () => Promise<AttestedClaudePeerRuntime>;
31
+ createClaudePeer?: (runtime: AttestedClaudePeerRuntime, config: GatewayConfig) => RuntimeClaudePeer;
32
+ createCodexOperation?: (env: NodeJS.ProcessEnv) => StatelessCodexOperationTransport;
33
+ createFederation?: (host: string, nodes: readonly string[]) => RuntimeFederation;
34
+ serveControl?: typeof serveLocalControl;
35
+ addSignalListener?: (signal: SignalName, listener: () => void) => void;
36
+ removeSignalListener?: (signal: SignalName, listener: () => void) => void;
37
+ }>;
38
+ /** Assemble the schema-6 broker. Construction is inert: provider and SSH I/O starts
39
+ * only when an addressed operation reaches its destination. */
40
+ export declare function runCoreRuntime(options: CoreRuntimeOptions, dependencies?: CoreRuntimeDependencies): Promise<void>;
41
+ export {};