agent-embassy 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/CONTRIBUTING.md +50 -16
- package/README.md +57 -25
- package/README.zh-CN.md +45 -23
- package/SECURITY.md +68 -48
- package/dist/src/gateway/claude-helper-protocol.d.ts +1 -0
- package/dist/src/gateway/claude-helper-protocol.js +4 -2
- package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
- package/dist/src/gateway/claude-helper-supervisor.d.ts +1 -0
- package/dist/src/gateway/claude-helper-supervisor.js +3 -1
- package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
- package/dist/src/gateway/claude-runtime.d.ts +0 -2
- package/dist/src/gateway/claude-runtime.js +6 -17
- package/dist/src/gateway/claude-runtime.js.map +1 -1
- package/dist/src/gateway/cli-copy.d.ts +1 -1
- package/dist/src/gateway/cli-copy.en.d.ts +4 -1
- package/dist/src/gateway/cli-copy.en.js +7 -3
- package/dist/src/gateway/cli-copy.en.js.map +1 -1
- package/dist/src/gateway/cli-copy.js +3 -0
- package/dist/src/gateway/cli-copy.js.map +1 -1
- package/dist/src/gateway/cli-copy.zh-CN.d.ts +4 -1
- package/dist/src/gateway/cli-copy.zh-CN.js +7 -3
- package/dist/src/gateway/cli-copy.zh-CN.js.map +1 -1
- package/dist/src/gateway/cli.d.ts +2 -5
- package/dist/src/gateway/cli.js +41 -67
- package/dist/src/gateway/cli.js.map +1 -1
- package/dist/src/gateway/codex-app-server.d.ts +2 -8
- package/dist/src/gateway/codex-app-server.js +36 -62
- package/dist/src/gateway/codex-app-server.js.map +1 -1
- package/dist/src/gateway/codex-local-transport.d.ts +4 -10
- package/dist/src/gateway/codex-local-transport.js +13 -16
- package/dist/src/gateway/codex-local-transport.js.map +1 -1
- package/dist/src/gateway/compatibility.d.ts +0 -27
- package/dist/src/gateway/compatibility.js +1 -101
- package/dist/src/gateway/compatibility.js.map +1 -1
- package/dist/src/gateway/config.d.ts +1 -4
- package/dist/src/gateway/config.js +0 -10
- package/dist/src/gateway/config.js.map +1 -1
- package/dist/src/gateway/control.d.ts +2 -21
- package/dist/src/gateway/control.js +7 -36
- package/dist/src/gateway/control.js.map +1 -1
- package/dist/src/gateway/dashboard-copy.d.ts +1 -1
- package/dist/src/gateway/dashboard-copy.en.d.ts +21 -8
- package/dist/src/gateway/dashboard-copy.en.js +40 -27
- package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
- package/dist/src/gateway/dashboard-copy.js +21 -8
- package/dist/src/gateway/dashboard-copy.js.map +1 -1
- package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +21 -8
- package/dist/src/gateway/dashboard-copy.zh-CN.js +40 -27
- package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
- package/dist/src/gateway/dashboard-model.d.ts +4 -9
- package/dist/src/gateway/dashboard-model.js +159 -46
- package/dist/src/gateway/dashboard-model.js.map +1 -1
- package/dist/src/gateway/dashboard.js +27 -16
- package/dist/src/gateway/dashboard.js.map +1 -1
- package/dist/src/gateway/instance-lease.d.ts +2 -3
- package/dist/src/gateway/instance-lease.js +17 -140
- package/dist/src/gateway/instance-lease.js.map +1 -1
- package/dist/src/gateway/live-dashboard-app/app.js +62 -63
- package/dist/src/gateway/live-dashboard-command.d.ts +5 -1
- package/dist/src/gateway/live-dashboard-command.js +8 -6
- package/dist/src/gateway/live-dashboard-command.js.map +1 -1
- package/dist/src/gateway/live-dashboard-http.d.ts +0 -4
- package/dist/src/gateway/live-dashboard-http.js +20 -94
- package/dist/src/gateway/live-dashboard-http.js.map +1 -1
- package/dist/src/gateway/live-dashboard-protocol.d.ts +1 -5
- package/dist/src/gateway/live-dashboard-protocol.js +0 -42
- package/dist/src/gateway/live-dashboard-protocol.js.map +1 -1
- package/dist/src/gateway/live-dashboard-server.d.ts +2 -2
- package/dist/src/gateway/live-dashboard-server.js +18 -4
- package/dist/src/gateway/live-dashboard-server.js.map +1 -1
- package/dist/src/gateway/live-dashboard.d.ts +3 -6
- package/dist/src/gateway/live-dashboard.js +6 -42
- package/dist/src/gateway/live-dashboard.js.map +1 -1
- package/dist/src/gateway/progress-watch-machine.d.ts +6 -5
- package/dist/src/gateway/progress-watch-machine.js +6 -6
- package/dist/src/gateway/progress-watch-machine.js.map +1 -1
- package/dist/src/gateway/provenance-envelope.d.ts +1 -0
- package/dist/src/gateway/provenance-envelope.js +11 -4
- package/dist/src/gateway/provenance-envelope.js.map +1 -1
- package/dist/src/gateway/providers.d.ts +2 -21
- package/dist/src/gateway/providers.js +21 -261
- package/dist/src/gateway/providers.js.map +1 -1
- package/dist/src/gateway/server.js +0 -3
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/service.d.ts +5 -15
- package/dist/src/gateway/service.js +101 -265
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/store.d.ts +9 -21
- package/dist/src/gateway/store.js +360 -140
- package/dist/src/gateway/store.js.map +1 -1
- package/dist/src/gateway/types.d.ts +1 -6
- package/dist/src/gateway/types.js.map +1 -1
- package/docs/CONFIGURATION.md +102 -0
- package/docs/CONFIGURATION.zh-CN.md +72 -0
- package/docs/DASHBOARD.md +103 -0
- package/docs/DASHBOARD.zh-CN.md +47 -0
- package/docs/DELIVERY.md +84 -0
- package/docs/DELIVERY.zh-CN.md +53 -0
- package/docs/GATEWAY-ARCHITECTURE.md +249 -153
- package/package.json +8 -4
- package/skills/embassy-peer/SKILL.md +25 -10
- package/dist/src/gateway/claude-compatibility-scratch.d.ts +0 -18
- package/dist/src/gateway/claude-compatibility-scratch.js +0 -158
- package/dist/src/gateway/claude-compatibility-scratch.js.map +0 -1
- package/dist/src/gateway/live-dashboard-bootstrap.d.ts +0 -36
- package/dist/src/gateway/live-dashboard-bootstrap.js +0 -176
- package/dist/src/gateway/live-dashboard-bootstrap.js.map +0 -1
- package/docs/DESIGN.md +0 -134
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { spawn, } from "node:child_process";
|
|
3
3
|
import { constants } from "node:fs";
|
|
4
|
-
import { chmod, lstat, mkdir, open, readdir, realpath,
|
|
4
|
+
import { chmod, lstat, mkdir, open, readdir, realpath, } from "node:fs/promises";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import { BridgeError } from "../errors.js";
|
|
@@ -9,36 +9,12 @@ const HOST_STATE_DIRECTORY = path.join(".local", "state", "agent-embassy");
|
|
|
9
9
|
const HOST_STATE_MARKER_FILE = ".agent-embassy-state";
|
|
10
10
|
const HOST_STATE_MARKER_CONTENT = "agent-embassy-state-v1\n";
|
|
11
11
|
const HOST_LOCK_FILE = ".gateway-host.lock";
|
|
12
|
-
const LEGACY_STATE_DIRECTORY = path.join(".local", "state", "claude-agent-bridge", "gateway");
|
|
13
|
-
const LEGACY_MARKER_FILE = ".claude-codex-gateway-state";
|
|
14
|
-
const LEGACY_MARKER_CONTENT = "claude-codex-local-gateway-state-v1\n";
|
|
15
|
-
const LEGACY_LOCK_FILE = ".gateway-controller.lock";
|
|
16
12
|
const MAX_MARKER_BYTES = 128;
|
|
17
13
|
const MAX_LOCK_BYTES = 4 * 1024;
|
|
18
14
|
const LOCKF_PATH = "/usr/bin/lockf";
|
|
19
15
|
const CAT_PATH = "/bin/cat";
|
|
20
16
|
const HOST_LEASE_READY_TIMEOUT_MS = 5_000;
|
|
21
17
|
const HOST_LEASE_EXIT_TIMEOUT_MS = 5_000;
|
|
22
|
-
function isObject(value) {
|
|
23
|
-
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
24
|
-
}
|
|
25
|
-
function isPositiveInteger(value) {
|
|
26
|
-
return Number.isSafeInteger(value) && value > 0;
|
|
27
|
-
}
|
|
28
|
-
function isLockRecord(value) {
|
|
29
|
-
if (!isObject(value))
|
|
30
|
-
return false;
|
|
31
|
-
const keys = Object.keys(value);
|
|
32
|
-
return (keys.length === 4 &&
|
|
33
|
-
keys.every((key) => ["schemaVersion", "pid", "hostname", "token"].includes(key)) &&
|
|
34
|
-
value.schemaVersion === 1 &&
|
|
35
|
-
isPositiveInteger(value.pid) &&
|
|
36
|
-
typeof value.hostname === "string" &&
|
|
37
|
-
value.hostname.length > 0 &&
|
|
38
|
-
value.hostname.length <= 255 &&
|
|
39
|
-
typeof value.token === "string" &&
|
|
40
|
-
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value.token));
|
|
41
|
-
}
|
|
42
18
|
function assertPrivateOwned(uid, mode, description) {
|
|
43
19
|
if (typeof process.getuid === "function" && uid !== process.getuid()) {
|
|
44
20
|
throw new BridgeError("GATEWAY_INSTANCE_IN_USE", `${description} is not owned by the current process user.`, true);
|
|
@@ -312,72 +288,6 @@ async function acquireHostAdvisoryLease(directory, spawnLeaseHelper, exitTimeout
|
|
|
312
288
|
},
|
|
313
289
|
};
|
|
314
290
|
}
|
|
315
|
-
async function acquireProcessLease(directory, lockFileName) {
|
|
316
|
-
const lockPath = path.join(directory, lockFileName);
|
|
317
|
-
const ownedToken = randomUUID();
|
|
318
|
-
let handle;
|
|
319
|
-
try {
|
|
320
|
-
handle = await open(lockPath, constants.O_CREAT |
|
|
321
|
-
constants.O_EXCL |
|
|
322
|
-
constants.O_RDWR |
|
|
323
|
-
(constants.O_NOFOLLOW ?? 0), 0o600);
|
|
324
|
-
}
|
|
325
|
-
catch (error) {
|
|
326
|
-
if (error instanceof Error &&
|
|
327
|
-
"code" in error &&
|
|
328
|
-
error.code === "EEXIST") {
|
|
329
|
-
// The legacy controller did not participate in Embassy's kernel-held
|
|
330
|
-
// host lease. Preserve any pre-existing legacy lock—live, stale, or
|
|
331
|
-
// unverifiable—rather than path-reclaiming across that protocol boundary.
|
|
332
|
-
await readPrivateFile(lockPath, MAX_LOCK_BYTES).catch(() => undefined);
|
|
333
|
-
throw new BridgeError("GATEWAY_INSTANCE_IN_USE", "A legacy or unverifiable gateway lock already exists.", true);
|
|
334
|
-
}
|
|
335
|
-
throw error;
|
|
336
|
-
}
|
|
337
|
-
try {
|
|
338
|
-
const record = {
|
|
339
|
-
schemaVersion: 1,
|
|
340
|
-
pid: process.pid,
|
|
341
|
-
hostname: os.hostname(),
|
|
342
|
-
token: ownedToken,
|
|
343
|
-
};
|
|
344
|
-
await handle.writeFile(`${JSON.stringify(record)}\n`, "utf8");
|
|
345
|
-
await handle.sync();
|
|
346
|
-
}
|
|
347
|
-
catch (error) {
|
|
348
|
-
await handle.close().catch(() => undefined);
|
|
349
|
-
await unlink(lockPath).catch(() => undefined);
|
|
350
|
-
throw error;
|
|
351
|
-
}
|
|
352
|
-
let closed = false;
|
|
353
|
-
return {
|
|
354
|
-
close: async () => {
|
|
355
|
-
if (closed)
|
|
356
|
-
return;
|
|
357
|
-
closed = true;
|
|
358
|
-
try {
|
|
359
|
-
await handle.close();
|
|
360
|
-
}
|
|
361
|
-
catch {
|
|
362
|
-
throw new BridgeError("GATEWAY_CLEANUP_FAILED", "Embassy could not confirm legacy instance-lease cleanup.");
|
|
363
|
-
}
|
|
364
|
-
try {
|
|
365
|
-
const current = JSON.parse(await readPrivateFile(lockPath, MAX_LOCK_BYTES));
|
|
366
|
-
if (isLockRecord(current) && current.token === ownedToken) {
|
|
367
|
-
await unlink(lockPath);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
catch (error) {
|
|
371
|
-
if (error instanceof Error &&
|
|
372
|
-
"code" in error &&
|
|
373
|
-
error.code === "ENOENT") {
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
throw new BridgeError("GATEWAY_CLEANUP_FAILED", "Embassy could not confirm legacy instance-lease cleanup.");
|
|
377
|
-
}
|
|
378
|
-
},
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
291
|
async function ensureHostStateMarker(directory) {
|
|
382
292
|
const markerPath = path.join(directory, HOST_STATE_MARKER_FILE);
|
|
383
293
|
try {
|
|
@@ -476,58 +386,26 @@ async function prepareHostLeaseDirectory(loginHome) {
|
|
|
476
386
|
await ensureHostStateMarker(current);
|
|
477
387
|
return current;
|
|
478
388
|
}
|
|
479
|
-
async function recognizedLegacyRoot(loginHome) {
|
|
480
|
-
const directory = path.join(loginHome, LEGACY_STATE_DIRECTORY);
|
|
481
|
-
try {
|
|
482
|
-
const info = await lstat(directory);
|
|
483
|
-
if (info.isSymbolicLink() || !info.isDirectory())
|
|
484
|
-
return undefined;
|
|
485
|
-
assertPrivateOwned(info.uid, info.mode, "The legacy gateway root");
|
|
486
|
-
if ((await realpath(directory)) !== directory)
|
|
487
|
-
return undefined;
|
|
488
|
-
const marker = await readPrivateFile(path.join(directory, LEGACY_MARKER_FILE), MAX_MARKER_BYTES);
|
|
489
|
-
return marker === LEGACY_MARKER_CONTENT ? directory : undefined;
|
|
490
|
-
}
|
|
491
|
-
catch {
|
|
492
|
-
// An absent, unsafe, or unrecognized legacy tree is never mutated.
|
|
493
|
-
return undefined;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
389
|
/**
|
|
497
390
|
* Acquire the one per-login-user Embassy controller lease. The fixed lease is
|
|
498
|
-
* deliberately independent of EMBASSY_STATE_DIR
|
|
499
|
-
*
|
|
500
|
-
* gateway cannot advertise a second Codex peer.
|
|
391
|
+
* deliberately independent of EMBASSY_STATE_DIR, so a second controller cannot
|
|
392
|
+
* evade it by pointing at another state root.
|
|
501
393
|
*/
|
|
502
394
|
export async function acquireGatewayInstanceLease(suppliedLoginHome, dependencies = {}) {
|
|
503
395
|
const loginHome = validateLoginHome(suppliedLoginHome);
|
|
504
396
|
const hostDirectory = await prepareHostLeaseDirectory(loginHome);
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
exitTimeoutMs < 10 ||
|
|
516
|
-
exitTimeoutMs > HOST_LEASE_EXIT_TIMEOUT_MS) {
|
|
517
|
-
throw new BridgeError("GATEWAY_INSTANCE_IN_USE", "The Embassy host-lease cleanup bound is invalid.", true);
|
|
518
|
-
}
|
|
519
|
-
hostLease = await acquireHostAdvisoryLease(hostDirectory, spawnLeaseHelper, exitTimeoutMs);
|
|
520
|
-
leases.push(hostLease);
|
|
521
|
-
const legacyDirectory = await recognizedLegacyRoot(loginHome);
|
|
522
|
-
if (legacyDirectory !== undefined) {
|
|
523
|
-
leases.push(await acquireProcessLease(legacyDirectory, LEGACY_LOCK_FILE));
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
catch (error) {
|
|
527
|
-
for (const lease of leases.reverse())
|
|
528
|
-
await lease.close();
|
|
529
|
-
throw error;
|
|
397
|
+
// A kernel-held macOS lease makes state-directory overrides irrelevant and
|
|
398
|
+
// disappears automatically if the gateway crashes. The PID/token record is
|
|
399
|
+
// metadata for exact cleanup; it is never used for path-only reclaim.
|
|
400
|
+
const spawnLeaseHelper = dependencies.spawnLeaseHelper ??
|
|
401
|
+
((command, args, options) => spawn(command, args, options));
|
|
402
|
+
const exitTimeoutMs = dependencies.hostLeaseExitTimeoutMs ?? HOST_LEASE_EXIT_TIMEOUT_MS;
|
|
403
|
+
if (!Number.isSafeInteger(exitTimeoutMs) ||
|
|
404
|
+
exitTimeoutMs < 10 ||
|
|
405
|
+
exitTimeoutMs > HOST_LEASE_EXIT_TIMEOUT_MS) {
|
|
406
|
+
throw new BridgeError("GATEWAY_INSTANCE_IN_USE", "The Embassy host-lease cleanup bound is invalid.", true);
|
|
530
407
|
}
|
|
408
|
+
const hostLease = await acquireHostAdvisoryLease(hostDirectory, spawnLeaseHelper, exitTimeoutMs);
|
|
531
409
|
let closed = false;
|
|
532
410
|
return {
|
|
533
411
|
lost: hostLease.lost,
|
|
@@ -536,11 +414,10 @@ export async function acquireGatewayInstanceLease(suppliedLoginHome, dependencie
|
|
|
536
414
|
if (closed)
|
|
537
415
|
return;
|
|
538
416
|
closed = true;
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
await lease.close().catch((error) => failures.push(error));
|
|
417
|
+
try {
|
|
418
|
+
await hostLease.close();
|
|
542
419
|
}
|
|
543
|
-
|
|
420
|
+
catch {
|
|
544
421
|
throw new BridgeError("GATEWAY_CLEANUP_FAILED", "Embassy could not confirm exact instance-lease cleanup.");
|
|
545
422
|
}
|
|
546
423
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-lease.js","sourceRoot":"","sources":["../../../src/gateway/instance-lease.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instance-lease.js","sourceRoot":"","sources":["../../../src/gateway/instance-lease.ts"],"names":[],"mappings":"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"}
|
|
@@ -162,6 +162,7 @@ var Embassy;
|
|
|
162
162
|
connecting: "progress",
|
|
163
163
|
paused: "inert",
|
|
164
164
|
unavailable: "warning",
|
|
165
|
+
capacity: "warning",
|
|
165
166
|
disconnected: "warning",
|
|
166
167
|
stopped: "warning",
|
|
167
168
|
};
|
|
@@ -507,11 +508,14 @@ var Embassy;
|
|
|
507
508
|
const GUIDANCE_COPY_KEYS = {
|
|
508
509
|
reobserve_claude: "reobserveClaude",
|
|
509
510
|
reobserve_codex: "reobserveCodex",
|
|
511
|
+
codex_reactivation_required: "codexReactivationRequired",
|
|
512
|
+
consent_edge_unavailable: "consentEdgeUnavailable",
|
|
510
513
|
claude_not_observed: "claudeNotObserved",
|
|
511
514
|
codex_stale: "codexStale",
|
|
512
515
|
connector_offline: "connectorOffline",
|
|
513
516
|
route_stale: "routeStale",
|
|
514
517
|
queue_stalled: "queueStalled",
|
|
518
|
+
recipient_waiting_input: "recipientWaitingInput",
|
|
515
519
|
unconfirmed: "unconfirmed",
|
|
516
520
|
degraded: "degraded",
|
|
517
521
|
codex_succession_busy: "codexSuccessionBusy",
|
|
@@ -530,7 +534,10 @@ var Embassy;
|
|
|
530
534
|
return `embassy select-claude --alias ${item.alias ?? "<alias>"}`;
|
|
531
535
|
case "reobserve_codex":
|
|
532
536
|
case "codex_stale":
|
|
537
|
+
case "codex_reactivation_required":
|
|
533
538
|
return `embassy register-codex --alias ${item.alias ?? "<alias>"}`;
|
|
539
|
+
case "consent_edge_unavailable":
|
|
540
|
+
return "embassy refresh-dashboard";
|
|
534
541
|
case "codex_succession_busy":
|
|
535
542
|
case "codex_succession_recovery":
|
|
536
543
|
return `embassy register-codex --alias <new> --succeeds ${item.alias ?? "<old>"}`;
|
|
@@ -569,6 +576,7 @@ var Embassy;
|
|
|
569
576
|
}
|
|
570
577
|
Embassy.extractSuccessions = extractSuccessions;
|
|
571
578
|
function overviewProps(model, nowMs) {
|
|
579
|
+
const nonReadyPairCount = model.graph.pairCount - model.graph.readyPairCount;
|
|
572
580
|
return {
|
|
573
581
|
generatedAt: model.generatedAt,
|
|
574
582
|
inboundMode: model.inboundMode,
|
|
@@ -589,6 +597,11 @@ var Embassy;
|
|
|
589
597
|
queueClaudeToCodex: queueSplit(model, "codex", nowMs),
|
|
590
598
|
queueCodexToClaude: queueSplit(model, "claude", nowMs),
|
|
591
599
|
graph: model.graph,
|
|
600
|
+
degradedPairCopyKey: nonReadyPairCount <= 0
|
|
601
|
+
? undefined
|
|
602
|
+
: nonReadyPairCount === 1 && !model.graph.pairCountIsLowerBound
|
|
603
|
+
? "app.overview.degradedEdge"
|
|
604
|
+
: "app.overview.degradedEdges",
|
|
592
605
|
attention: attentionViews(model),
|
|
593
606
|
attentionOmitted: model.omissions.attentionItems,
|
|
594
607
|
pulse: pulse(model),
|
|
@@ -702,11 +715,9 @@ var Embassy;
|
|
|
702
715
|
const MAX_AUTO_RECONNECT_ATTEMPTS = 3;
|
|
703
716
|
const MAX_STREAM_BUFFER_LENGTH = 1_048_576;
|
|
704
717
|
function createProtocol(options) {
|
|
705
|
-
const base = location.pathname.endsWith("/
|
|
706
|
-
? location.pathname.slice(0, -
|
|
707
|
-
: location.pathname
|
|
708
|
-
? location.pathname.slice(0, -1)
|
|
709
|
-
: location.pathname;
|
|
718
|
+
const base = location.pathname.endsWith("/")
|
|
719
|
+
? location.pathname.slice(0, -1)
|
|
720
|
+
: location.pathname;
|
|
710
721
|
const api = (name) => base + "/" + name;
|
|
711
722
|
let connectionState = "connecting";
|
|
712
723
|
let controller;
|
|
@@ -718,7 +729,7 @@ var Embassy;
|
|
|
718
729
|
function apiFetch(name, fetchOptions = {}) {
|
|
719
730
|
const init = {
|
|
720
731
|
method: "POST",
|
|
721
|
-
credentials: "
|
|
732
|
+
credentials: "omit",
|
|
722
733
|
cache: "no-store",
|
|
723
734
|
headers: { "X-Embassy-Request": "1", ...(fetchOptions.headers ?? {}) },
|
|
724
735
|
};
|
|
@@ -797,20 +808,6 @@ var Embassy;
|
|
|
797
808
|
}
|
|
798
809
|
}
|
|
799
810
|
}
|
|
800
|
-
async function exchangeCapability() {
|
|
801
|
-
const capability = location.hash.slice(1);
|
|
802
|
-
if (!capability) {
|
|
803
|
-
return;
|
|
804
|
-
}
|
|
805
|
-
history.replaceState(null, "", location.pathname);
|
|
806
|
-
const response = await apiFetch("session", {
|
|
807
|
-
headers: { "Content-Type": "text/plain;charset=UTF-8" },
|
|
808
|
-
body: capability,
|
|
809
|
-
});
|
|
810
|
-
if (!response.ok) {
|
|
811
|
-
throw new Error("session");
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
811
|
function consumeSseBlock(block) {
|
|
815
812
|
let event = "message";
|
|
816
813
|
const data = [];
|
|
@@ -843,6 +840,10 @@ var Embassy;
|
|
|
843
840
|
setConnectionState("connecting");
|
|
844
841
|
try {
|
|
845
842
|
const response = await apiFetch("stream", { signal: current.signal });
|
|
843
|
+
if (response.status === 429) {
|
|
844
|
+
setConnectionState("capacity");
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
846
847
|
if (!response.ok || !response.body) {
|
|
847
848
|
throw new Error("stream");
|
|
848
849
|
}
|
|
@@ -902,7 +903,7 @@ var Embassy;
|
|
|
902
903
|
return (Object.keys(record).length === 2 &&
|
|
903
904
|
typeof record.ok === "boolean" &&
|
|
904
905
|
typeof record.code === "string" &&
|
|
905
|
-
/^(?:ok|not_found|conflict|route_mismatch|busy|unavailable|rejected|rate_limited)$/u.test(record.code) &&
|
|
906
|
+
/^(?:ok|not_found|conflict|watch_owner_conflict|route_mismatch|busy|unavailable|rejected|rate_limited)$/u.test(record.code) &&
|
|
906
907
|
((record.ok && record.code === "ok") ||
|
|
907
908
|
(!record.ok && record.code !== "ok")));
|
|
908
909
|
}
|
|
@@ -926,13 +927,6 @@ var Embassy;
|
|
|
926
927
|
return result;
|
|
927
928
|
}
|
|
928
929
|
async function start() {
|
|
929
|
-
try {
|
|
930
|
-
await exchangeCapability();
|
|
931
|
-
}
|
|
932
|
-
catch {
|
|
933
|
-
setConnectionState("disconnected");
|
|
934
|
-
return;
|
|
935
|
-
}
|
|
936
930
|
await connect();
|
|
937
931
|
}
|
|
938
932
|
return {
|
|
@@ -1162,7 +1156,9 @@ var Embassy;
|
|
|
1162
1156
|
React.createElement("h3", { className: "attention-item__title" }, t(`guidance.${guidanceKey}.title`)),
|
|
1163
1157
|
item.timestamp === undefined ? null : (React.createElement(Embassy.TimeAgo, { iso: item.timestamp }))),
|
|
1164
1158
|
React.createElement("p", { className: "attention-item__body" }, t(`guidance.${guidanceKey}.body`)),
|
|
1165
|
-
React.createElement("p", { className: "attention-item__body" }, t(`guidance.${guidanceKey}.action
|
|
1159
|
+
React.createElement("p", { className: "attention-item__body" }, t(`guidance.${guidanceKey}.action`, {
|
|
1160
|
+
alias: item.alias ?? "<alias>",
|
|
1161
|
+
})),
|
|
1166
1162
|
scope === "" ? null : (React.createElement("div", { className: "attention-item__scope" }, `${t("attention.scope")}: ${scope}`)),
|
|
1167
1163
|
React.createElement("div", { className: "attention-item__action" },
|
|
1168
1164
|
React.createElement(Embassy.CopyCmd, { cmd: command })),
|
|
@@ -1187,14 +1183,18 @@ var Embassy;
|
|
|
1187
1183
|
const queueOut = data.queueClaudeToCodex;
|
|
1188
1184
|
const queueIn = data.queueCodexToClaude;
|
|
1189
1185
|
const openInbound = data.inboundMode === "open";
|
|
1190
|
-
const
|
|
1186
|
+
const hasPair = data.graph.pairCount > 0 || data.graph.pairCountIsLowerBound;
|
|
1187
|
+
const showEdges = hasPair || queueOut.depth > 0 || queueIn.depth > 0;
|
|
1191
1188
|
const nextActionLine = (who, action) => action === "none"
|
|
1192
1189
|
? null
|
|
1193
1190
|
: `${t("next.label")} · ${who}: ${t(NEXT_ACTION_COPY_KEYS[action])}`;
|
|
1194
1191
|
const boardNotes = [
|
|
1195
|
-
!openInbound &&
|
|
1192
|
+
!openInbound && !hasPair && showEdges
|
|
1196
1193
|
? `${t("app.overview.noPair.title")} — ${t("app.overview.noPair.body")}`
|
|
1197
1194
|
: null,
|
|
1195
|
+
data.degradedPairCopyKey === undefined
|
|
1196
|
+
? null
|
|
1197
|
+
: t(data.degradedPairCopyKey),
|
|
1198
1198
|
nextActionLine(t("provider.claude"), data.exchange.claude.nextAction),
|
|
1199
1199
|
nextActionLine(t("provider.codex"), data.exchange.codex.nextAction),
|
|
1200
1200
|
].filter((line) => line !== null);
|
|
@@ -1227,7 +1227,7 @@ var Embassy;
|
|
|
1227
1227
|
: "inbound.paired.badge")),
|
|
1228
1228
|
React.createElement("p", null, t(openInbound
|
|
1229
1229
|
? "inbound.open.body"
|
|
1230
|
-
:
|
|
1230
|
+
: hasPair
|
|
1231
1231
|
? "inbound.paired.body"
|
|
1232
1232
|
: "inbound.noPair.body"))),
|
|
1233
1233
|
React.createElement("div", { className: "exchange-board" },
|
|
@@ -1459,9 +1459,12 @@ var Embassy;
|
|
|
1459
1459
|
nudge: "watches.event.nudge",
|
|
1460
1460
|
worker_reported_complete: "watches.event.workerReportedComplete",
|
|
1461
1461
|
capability_degraded: "watches.event.capabilityDegraded",
|
|
1462
|
+
conversation_rebound: "watches.event.conversationRebound",
|
|
1463
|
+
replaced: "watches.event.replaced",
|
|
1462
1464
|
done: "watches.event.done",
|
|
1463
1465
|
unresponsive: "watches.event.unresponsive",
|
|
1464
1466
|
endpoint_retired: "watches.event.endpointRetired",
|
|
1467
|
+
pair_removed: "watches.event.pairRemoved",
|
|
1465
1468
|
disabled: "watches.event.disabled",
|
|
1466
1469
|
};
|
|
1467
1470
|
function ProgressWatchRegister(props) {
|
|
@@ -1502,8 +1505,7 @@ var Embassy;
|
|
|
1502
1505
|
React.createElement("dd", null, fmtCount(locale, watch.nudgeCount))),
|
|
1503
1506
|
React.createElement("div", null,
|
|
1504
1507
|
React.createElement("dt", null, t("watches.column.capability")),
|
|
1505
|
-
React.createElement("dd", null, t(watch.capability === "route" ? "watches.capability.route" : "watches.capability.conversation")))),
|
|
1506
|
-
watch.workerReportedComplete ? (React.createElement("p", { className: "footnote" }, t("watches.workerComplete"))) : null))))),
|
|
1508
|
+
React.createElement("dd", null, t(watch.capability === "route" ? "watches.capability.route" : "watches.capability.conversation"))))))))),
|
|
1507
1509
|
props.events.length === 0 ? null : (React.createElement("details", { className: "watch-history" },
|
|
1508
1510
|
React.createElement("summary", null, t("watches.history.title")),
|
|
1509
1511
|
React.createElement("ol", null, props.events.map((event) => (React.createElement("li", { key: event.sequence },
|
|
@@ -2027,12 +2029,13 @@ var Embassy;
|
|
|
2027
2029
|
const [openPeer, setOpenPeer] = React.useState(undefined);
|
|
2028
2030
|
const [openRoute, setOpenRoute] = React.useState(undefined);
|
|
2029
2031
|
const edges = topologyEdges(data);
|
|
2032
|
+
const hasPair = data.graph.pairCount > 0 || data.graph.pairCountIsLowerBound;
|
|
2030
2033
|
const highlightAt = (side, index) => chipHighlight(focus, edges, side, index);
|
|
2031
2034
|
const claudeItems = data.peers.map((peer, index) => ({
|
|
2032
2035
|
key: `${rowIdentity(peer.alias, peer.host)}|${index}`,
|
|
2033
2036
|
alias: peer.alias,
|
|
2034
|
-
candidate: !
|
|
2035
|
-
srLabel:
|
|
2037
|
+
candidate: !data.pairs.some((pair) => pair.claudeAlias === peer.alias),
|
|
2038
|
+
srLabel: data.pairs.some((pair) => pair.claudeAlias === peer.alias)
|
|
2036
2039
|
? t("status.selected")
|
|
2037
2040
|
: peer.selectable
|
|
2038
2041
|
? t("status.available")
|
|
@@ -2041,7 +2044,7 @@ var Embassy;
|
|
|
2041
2044
|
const codexItems = data.codexRoutes.map((view, index) => ({
|
|
2042
2045
|
key: `${rowIdentity(view.route.alias, view.route.host)}|${index}`,
|
|
2043
2046
|
alias: view.route.alias,
|
|
2044
|
-
candidate: !
|
|
2047
|
+
candidate: !data.pairs.some((pair) => pair.codexAlias === view.route.alias),
|
|
2045
2048
|
srLabel: t(`route.${Embassy.camelCaseToken(view.route.state)}`),
|
|
2046
2049
|
}));
|
|
2047
2050
|
return (React.createElement("div", { className: "tab-panel" },
|
|
@@ -2053,9 +2056,9 @@ var Embassy;
|
|
|
2053
2056
|
: "inbound.paired.badge")),
|
|
2054
2057
|
React.createElement("p", null, t(openInbound
|
|
2055
2058
|
? "inbound.open.body"
|
|
2056
|
-
:
|
|
2057
|
-
? "inbound.
|
|
2058
|
-
: "inbound.
|
|
2059
|
+
: hasPair
|
|
2060
|
+
? "inbound.paired.body"
|
|
2061
|
+
: "inbound.noPair.body"))),
|
|
2059
2062
|
React.createElement("div", { className: "topology" },
|
|
2060
2063
|
React.createElement("div", { className: "topology__heads" },
|
|
2061
2064
|
React.createElement(Embassy.MonoLabel, { className: "topology__head--claude" }, t("provider.claude")),
|
|
@@ -2064,15 +2067,22 @@ var Embassy;
|
|
|
2064
2067
|
React.createElement(TopologyColumn, { side: "claude", items: claudeItems, listLabel: t("app.routes.candidates"), emptyText: t("app.routes.noPeers"), highlightAt: highlightAt, onFocusChange: setFocus }),
|
|
2065
2068
|
React.createElement(TopologyEdgeSvg, { rows: Math.max(claudeItems.length, codexItems.length), edges: edges, focus: focus, focusSide: focus === undefined ? undefined : focus.side }),
|
|
2066
2069
|
React.createElement(TopologyColumn, { side: "codex", items: codexItems, listLabel: t("app.routes.codexRoutes"), emptyText: t("app.routes.noCodex"), highlightAt: highlightAt, onFocusChange: setFocus })),
|
|
2067
|
-
|
|
2070
|
+
!hasPair ? (React.createElement("p", { className: "topology__empty" }, t(openInbound
|
|
2068
2071
|
? "inbound.open.body"
|
|
2069
|
-
: "app.routes.noPairInline"))) : (React.createElement("ul", { className: "topology__edge-list", "aria-label": t("app.routes.pairs") },
|
|
2072
|
+
: "app.routes.noPairInline"))) : (React.createElement("ul", { className: "topology__edge-list", "aria-label": t("app.routes.pairs") }, data.pairs.map((pair) => (React.createElement("li", { key: `${pair.claudeAlias}\0${pair.codexAlias}` },
|
|
2070
2073
|
t("app.routes.pairDescription", {
|
|
2071
|
-
claude:
|
|
2072
|
-
codex:
|
|
2074
|
+
claude: pair.claudeAlias,
|
|
2075
|
+
codex: pair.codexAlias,
|
|
2073
2076
|
}),
|
|
2074
2077
|
" ",
|
|
2075
|
-
React.createElement(Embassy.StateChip, { domain: "route", state:
|
|
2078
|
+
React.createElement(Embassy.StateChip, { domain: "route", state: pair.state === "ready" ? "idle" : "stale", label: pair.state === "ready"
|
|
2079
|
+
? t("status.ready")
|
|
2080
|
+
: t(pair.state === "degraded"
|
|
2081
|
+
? "app.routes.pairState.degraded"
|
|
2082
|
+
: "app.routes.pairState.unavailable"), small: true }),
|
|
2083
|
+
pair.state === "ready" ? null : (React.createElement("span", { className: "text-body-muted" }, t(pair.state === "degraded"
|
|
2084
|
+
? "app.routes.pairDegradedReason"
|
|
2085
|
+
: "app.routes.pairUnavailableReason")))))))),
|
|
2076
2086
|
data.pairsOmitted > 0 ? (React.createElement("p", { className: "topology__empty" }, t("app.omitted.pairs", { count: data.pairsOmitted }))) : null),
|
|
2077
2087
|
React.createElement("section", { className: "section section__sub", "aria-label": t("live.action.sectionTitle") },
|
|
2078
2088
|
React.createElement("div", { className: "row-baseline section-label" },
|
|
@@ -2389,12 +2399,10 @@ var Embassy;
|
|
|
2389
2399
|
React.createElement("th", { scope: "col" }, t("diagnostics.version")),
|
|
2390
2400
|
React.createElement("th", { scope: "col" }, t("diagnostics.tier")),
|
|
2391
2401
|
React.createElement("th", { scope: "col" }, t("diagnostics.checkedAt")),
|
|
2392
|
-
React.createElement("th", { scope: "col" }, t("diagnostics.
|
|
2393
|
-
React.createElement("th", { scope: "col" }, t("diagnostics.certifiedAt")),
|
|
2394
|
-
React.createElement("th", { scope: "col" }, t("diagnostics.failedProbe")),
|
|
2402
|
+
React.createElement("th", { scope: "col" }, t("diagnostics.failure")),
|
|
2395
2403
|
React.createElement("th", { scope: "col" }, t("column.issue")))),
|
|
2396
2404
|
React.createElement("tbody", null, props.checks.length === 0 ? (React.createElement("tr", null,
|
|
2397
|
-
React.createElement("td", { colSpan:
|
|
2405
|
+
React.createElement("td", { colSpan: 6 }, t("diagnostics.compatibilityChecks.empty")))) : (props.checks.map((check) => (React.createElement("tr", { key: check.surface },
|
|
2398
2406
|
React.createElement("th", { scope: "row" }, check.surface === "claude"
|
|
2399
2407
|
? t("provider.claude")
|
|
2400
2408
|
: t("provider.codex")),
|
|
@@ -2402,16 +2410,8 @@ var Embassy;
|
|
|
2402
2410
|
React.createElement("td", null, t(`compatibilityTier.${check.tier}`)),
|
|
2403
2411
|
React.createElement("td", null,
|
|
2404
2412
|
React.createElement(Embassy.TimeAgo, { iso: check.checkedAt })),
|
|
2405
|
-
React.createElement("td", { className: "cell-mono" }, check.
|
|
2406
|
-
|
|
2407
|
-
: `${check.certificationOutcome} / ${check.certificationDepth}`),
|
|
2408
|
-
React.createElement("td", null, check.certifiedAt === undefined
|
|
2409
|
-
? DIAGNOSTICS_ABSENT_FIELD
|
|
2410
|
-
: React.createElement(Embassy.TimeAgo, { iso: check.certifiedAt })),
|
|
2411
|
-
React.createElement("td", { className: "cell-mono" }, check.failedProbe ?? DIAGNOSTICS_ABSENT_FIELD),
|
|
2412
|
-
React.createElement("td", { className: "cell-mono" }, check.certificationSafeErrorCode ??
|
|
2413
|
-
check.safeErrorCode ??
|
|
2414
|
-
DIAGNOSTICS_ABSENT_FIELD)))))))));
|
|
2413
|
+
React.createElement("td", { className: "cell-mono" }, check.failure ?? DIAGNOSTICS_ABSENT_FIELD),
|
|
2414
|
+
React.createElement("td", { className: "cell-mono" }, check.safeErrorCode ?? DIAGNOSTICS_ABSENT_FIELD)))))))));
|
|
2415
2415
|
}
|
|
2416
2416
|
function DiagnosticsCounterTable(props) {
|
|
2417
2417
|
return (React.createElement("div", { className: "table-wrap counters-list" },
|
|
@@ -2675,11 +2675,10 @@ var Embassy;
|
|
|
2675
2675
|
React.createElement(DiagnosticsConnectorTable, { connectors: data.connectors }),
|
|
2676
2676
|
React.createElement("p", { className: "footnote" }, t("app.diag.versions.rangeAbsent")))),
|
|
2677
2677
|
React.createElement("div", { className: "grid-2" },
|
|
2678
|
-
React.createElement("section", { className: "card", "aria-labelledby": "compatibility-
|
|
2678
|
+
React.createElement("section", { className: "card", "aria-labelledby": "provider-compatibility-title" },
|
|
2679
2679
|
React.createElement("div", { className: "card__head" },
|
|
2680
|
-
React.createElement("h3", { className: "card__title", id: "compatibility-
|
|
2681
|
-
React.createElement(DiagnosticsCompatibilityTable, { checks: data.compatibilityChecks }),
|
|
2682
|
-
React.createElement(Embassy.CopyCmd, { cmd: "embassy compat-check" })),
|
|
2680
|
+
React.createElement("h3", { className: "card__title", id: "provider-compatibility-title" }, t("app.diag.providerCompatibility.title"))),
|
|
2681
|
+
React.createElement(DiagnosticsCompatibilityTable, { checks: data.compatibilityChecks })),
|
|
2683
2682
|
React.createElement(Embassy.AbsentFeature, { title: t("app.diag.lease.title"), body: t("app.diag.lease.absent"), cmd: "embassy status" })),
|
|
2684
2683
|
React.createElement("section", { className: "section", "aria-labelledby": limitsHeadingId },
|
|
2685
2684
|
React.createElement("h2", { className: "mono-label section-label", id: limitsHeadingId }, t("app.diag.limits")),
|
|
@@ -7,11 +7,13 @@ import type { LiveDashboardObserver } from "./live-dashboard-stream.js";
|
|
|
7
7
|
declare const OPEN_EXECUTABLE = "/usr/bin/open";
|
|
8
8
|
declare const OPEN_TIMEOUT_MS = 10000;
|
|
9
9
|
declare const OPEN_MAX_OUTPUT_BYTES: number;
|
|
10
|
+
export declare const DEFAULT_LIVE_DASHBOARD_PORT = 41961;
|
|
10
11
|
type GatewaySignal = "SIGINT" | "SIGTERM";
|
|
11
12
|
export type LiveDashboardReadyResult = Readonly<{
|
|
12
13
|
status: "ready";
|
|
13
14
|
mode: "live";
|
|
14
15
|
locale: DashboardLocale;
|
|
16
|
+
url: string;
|
|
15
17
|
}>;
|
|
16
18
|
export type LiveDashboardCommandOutcome = Readonly<{
|
|
17
19
|
status: "cancelled";
|
|
@@ -19,6 +21,8 @@ export type LiveDashboardCommandOutcome = Readonly<{
|
|
|
19
21
|
export type LiveDashboardCommandOptions = Readonly<{
|
|
20
22
|
env?: NodeJS.ProcessEnv;
|
|
21
23
|
locale: DashboardLocale;
|
|
24
|
+
/** Explicit CLI-selected port; omitted direct callers receive the default. */
|
|
25
|
+
port?: number;
|
|
22
26
|
signal?: AbortSignal;
|
|
23
27
|
onReady: (result: LiveDashboardReadyResult) => void | Promise<void>;
|
|
24
28
|
loadConfig?: (env: NodeJS.ProcessEnv) => GatewayConfig;
|
|
@@ -47,7 +51,7 @@ export declare function createGatewayLiveDashboardActions(socketPath: string, se
|
|
|
47
51
|
* Run the opt-in live dashboard in the foreground until interrupted.
|
|
48
52
|
*
|
|
49
53
|
* The controller remains the only source of state. This command exposes one
|
|
50
|
-
* observer plus
|
|
54
|
+
* observer plus four closed actions; it has no provider API
|
|
51
55
|
* or generic control-plane escape hatch.
|
|
52
56
|
*/
|
|
53
57
|
export declare function runLiveDashboardCommand(options: LiveDashboardCommandOptions, dependencies?: LiveDashboardCommandDependencies): Promise<LiveDashboardCommandOutcome>;
|