agent-embassy 3.0.0 → 3.1.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 +21 -0
- package/CONTRIBUTING.md +4 -2
- package/README.md +26 -7
- package/SECURITY.md +17 -4
- package/dist/src/gateway/claude-helper-supervisor.js +36 -9
- package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
- package/dist/src/gateway/claude-helper.js.map +1 -1
- package/dist/src/gateway/claude-peer.js +1 -1
- package/dist/src/gateway/claude-peer.js.map +1 -1
- package/dist/src/gateway/cli.d.ts +2 -3
- package/dist/src/gateway/cli.js +135 -106
- package/dist/src/gateway/cli.js.map +1 -1
- package/dist/src/gateway/config.js +1 -1
- package/dist/src/gateway/config.js.map +1 -1
- package/dist/src/gateway/control.d.ts +23 -5
- package/dist/src/gateway/control.js +41 -11
- package/dist/src/gateway/control.js.map +1 -1
- package/dist/src/gateway/peer-protocol.d.ts +5 -0
- package/dist/src/gateway/peer-protocol.js +9 -0
- package/dist/src/gateway/peer-protocol.js.map +1 -1
- package/dist/src/gateway/providers.d.ts +4 -3
- package/dist/src/gateway/providers.js +33 -30
- package/dist/src/gateway/providers.js.map +1 -1
- package/dist/src/gateway/server.d.ts +1 -2
- package/dist/src/gateway/server.js +1 -4
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/service.d.ts +6 -8
- package/dist/src/gateway/service.js +313 -252
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/status-view.d.ts +2 -50
- package/dist/src/gateway/status-view.js +66 -70
- package/dist/src/gateway/status-view.js.map +1 -1
- package/dist/src/gateway/store.d.ts +4 -1
- package/dist/src/gateway/store.js +12 -11
- package/dist/src/gateway/store.js.map +1 -1
- package/dist/src/gateway/types.d.ts +17 -4
- package/dist/src/gateway/types.js +27 -36
- package/dist/src/gateway/types.js.map +1 -1
- package/docs/CONFIGURATION.md +3 -3
- package/docs/GATEWAY-ARCHITECTURE.md +27 -21
- package/package.json +1 -1
- package/skills/embassy-peer/SKILL.md +7 -5
- package/dist/src/gateway/claude-helper-client.d.ts +0 -2
- package/dist/src/gateway/claude-helper-client.js +0 -2
- package/dist/src/gateway/claude-helper-client.js.map +0 -1
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* many rows it hid, and the shell-peer list is ordered stale-first so a stuck
|
|
16
16
|
* peer is never the row that falls off the end.
|
|
17
17
|
*/
|
|
18
|
-
import { gatewayPublicSnapshotLimits } from "./types.js";
|
|
18
|
+
import { connectorWord, gatewayHealthWord, gatewayPublicSnapshotLimits } from "./types.js";
|
|
19
19
|
/**
|
|
20
20
|
* The backstop for a route the broker has not heard about in a long time.
|
|
21
21
|
*
|
|
@@ -36,6 +36,14 @@ export const STATUS_SCAN_STALE_AFTER_MS = 60_000;
|
|
|
36
36
|
export const CODEX_ENDPOINT_GONE_CODES = ["THREAD_NOT_OBSERVED"];
|
|
37
37
|
export const STATUS_RECENT = Object.freeze({ default: 10, minimum: 1, maximum: 100 });
|
|
38
38
|
export const STATUS_CAPS = Object.freeze({ sessions: 16, shellPeers: 8, alerts: 6 });
|
|
39
|
+
// LocalClaudeGatewayProvider emits these from clean prewrite failures,
|
|
40
|
+
// refreshClaudeDiscoveryOnce, and the discovery monitor's failure callback.
|
|
41
|
+
export const CLAUDE_BUSY_OBSERVATION_CODES = new Set([
|
|
42
|
+
"CLAUDE_PEER_TARGET_UNKNOWN",
|
|
43
|
+
"CLAUDE_PEER_WORKSPACE_UNATTESTED",
|
|
44
|
+
"CLAUDE_PEER_NOT_OBSERVED",
|
|
45
|
+
"CLAUDE_DISCOVERY_UNAVAILABLE",
|
|
46
|
+
]);
|
|
39
47
|
const PREVIEW_MAX_CHARS = 60;
|
|
40
48
|
/**
|
|
41
49
|
* One remedy per safe code, each one line. A connector with an unknown code
|
|
@@ -51,13 +59,16 @@ const PREVIEW_MAX_CHARS = 60;
|
|
|
51
59
|
export const STATUS_REMEDY = {
|
|
52
60
|
MANAGED_CODEX_UNAVAILABLE: "Either a process outside Embassy holds the managed Codex control socket — quit it — or the managed App Server standalone layout is missing, which starting the daemon alone does not create: follow the Codex prerequisite in the README (the official installer, then the daemon).",
|
|
53
61
|
PEER_ALIAS_COLLISION: "the alias names more than one live session; rename one, or address the session by UUID with --to <session-uuid>.",
|
|
62
|
+
CLAUDE_PEER_WORKSPACE_UNATTESTED: "Let the queued delivery retry, then run `embassy status`; each routed preparation validates the workspace again. If this persists, report CLAUDE_PEER_WORKSPACE_UNATTESTED with the current alias.",
|
|
63
|
+
CLAUDE_PEER_TARGET_UNKNOWN: "Run `embassy refresh`, then read `embassy status` for the session's current name; discovery did not find the delivery target.",
|
|
64
|
+
CLAUDE_DISCOVERY_UNAVAILABLE: "Run `embassy refresh` and read that command's result: a failed scan returns `accepted: false` and its refusal code.",
|
|
54
65
|
PEER_PROTOCOL_MISMATCH: "That node runs a different federation peer protocol; upgrade the lagging node's Embassy and it re-catalogs on the next refresh.",
|
|
55
66
|
PEER_TUNNEL_UNAVAILABLE: "The SSH tunnel to that node is down; check the node is reachable and its broker is running.",
|
|
56
67
|
PEER_DIAL_FAILED: "Embassy could not open the SSH tunnel to that node; check its entry in nodes.json and your SSH configuration.",
|
|
57
68
|
PEER_CATALOG_INCOMPLETE: "That node answered with an incomplete catalog; its mirrored routes are shown from the last complete one.",
|
|
58
69
|
PEER_ROUTE_STALE: "That mirrored route was missing from the node's latest catalog; it retires when the node stops publishing it.",
|
|
59
|
-
CLAUDE_PEER_NOT_OBSERVED: "
|
|
60
|
-
ROUTE_UNOBSERVED: "The provider stopped reporting this route;
|
|
70
|
+
CLAUDE_PEER_NOT_OBSERVED: "Discovery did not find that session; run `embassy refresh`, then inspect `embassy status` for current peers. Sending does not retire a missing session's stored route.",
|
|
71
|
+
ROUTE_UNOBSERVED: "The provider stopped reporting this local route; if the session or task ended, run `embassy retire --alias <alias>`.",
|
|
61
72
|
THREAD_NOT_OBSERVED: "That Codex task is gone. Run `embassy register-codex --alias <new-alias> --succeeds <this alias>` from the new task, or `embassy unregister-codex --alias <this alias>` from the old one.",
|
|
62
73
|
CODEX_OBSERVER_UNAVAILABLE: "Embassy cannot observe Codex tasks; start the managed daemon with `codex app-server daemon start`.",
|
|
63
74
|
DISPATCH_RUNNER_FAILED: "A delivery attempt failed inside the broker; the message keeps its own settled state — read it with `embassy delivery-status`, and restart the broker if this repeats.",
|
|
@@ -118,19 +129,6 @@ const ageMs = (timestamp, now) => {
|
|
|
118
129
|
const observed = Date.parse(timestamp);
|
|
119
130
|
return Number.isFinite(observed) ? Math.max(0, now - observed) : undefined;
|
|
120
131
|
};
|
|
121
|
-
/**
|
|
122
|
-
* Connector words. A connector reporting `CONNECTOR_OBSERVATION_STALE` has
|
|
123
|
-
* nothing wrong with it: no route of that provider was observed inside the
|
|
124
|
-
* broker's window. That is `stale`, not `degraded`, and the difference is the
|
|
125
|
-
* point — an idle Mac with no registered Codex task must not read as broken.
|
|
126
|
-
*/
|
|
127
|
-
function connectorWord(connector) {
|
|
128
|
-
if (connector.health === "healthy" || connector.health === "connecting")
|
|
129
|
-
return "ok";
|
|
130
|
-
if (connector.health === "offline")
|
|
131
|
-
return "offline";
|
|
132
|
-
return connector.safeErrorCode === "CONNECTOR_OBSERVATION_STALE" ? "stale" : "degraded";
|
|
133
|
-
}
|
|
134
132
|
function routeView(route, discovered, now) {
|
|
135
133
|
if (!route.enabled)
|
|
136
134
|
return { word: "disabled", lastSeen: relativeAge(route.lastSeenAt, now) };
|
|
@@ -171,19 +169,6 @@ function routeView(route, discovered, now) {
|
|
|
171
169
|
}
|
|
172
170
|
return { word, lastSeen };
|
|
173
171
|
}
|
|
174
|
-
const severityRank = (word) => word === "degraded" || word === "offline" ? 0 : word === "stale" ? 1 : 2;
|
|
175
|
-
/**
|
|
176
|
-
* The overall word is informational and derived from the two connectors a
|
|
177
|
-
* message actually travels through. A shell peer never contributes: its
|
|
178
|
-
* mailbox is pull-only, so "nobody is awaiting it" is a fact about the
|
|
179
|
-
* operator's other terminal, not about the broker.
|
|
180
|
-
*/
|
|
181
|
-
function overallWord(snapshot) {
|
|
182
|
-
const routed = snapshot.connectors.filter((connector) => connector.provider === "claude" || connector.provider === "codex");
|
|
183
|
-
if (routed.length === 0)
|
|
184
|
-
return "offline";
|
|
185
|
-
return routed.map(connectorWord).reduce((worst, word) => severityRank(word) < severityRank(worst) ? word : worst, "ok");
|
|
186
|
-
}
|
|
187
172
|
/** The remedy for one connector's condition; never empty when the word is not ok. */
|
|
188
173
|
function connectorRemedy(connector, snapshot) {
|
|
189
174
|
const code = connector.safeErrorCode;
|
|
@@ -249,11 +234,55 @@ function actionableAlerts(alerts) {
|
|
|
249
234
|
};
|
|
250
235
|
}
|
|
251
236
|
const messageArrow = (event) => `${event.sourceAlias} → ${event.targetAlias}`;
|
|
237
|
+
function renderSessions(snapshot, now, paint) {
|
|
238
|
+
const lines = [];
|
|
239
|
+
lines.push("", paint("sessions", "bold"));
|
|
240
|
+
if (snapshot.availablePeers.length === 0) {
|
|
241
|
+
lines.push(" none discovered — start a Claude Code session, then run `embassy refresh`");
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
const rows = snapshot.availablePeers.slice(0, STATUS_CAPS.sessions).map((peer) => {
|
|
245
|
+
const word = peer.state === "awaiting_approval" ? "awaiting" : peer.state;
|
|
246
|
+
return [{ value: peer.alias }, { value: word, tone: wordColor(word === "offline" ? "offline" : "ok") },
|
|
247
|
+
{ value: peer.routed ? "routed" : "no route yet" },
|
|
248
|
+
{ value: relativeAge(peer.lastSeenAt, now) }];
|
|
249
|
+
});
|
|
250
|
+
for (const line of table(["session", "state", "route", "last seen"], rows, paint)) {
|
|
251
|
+
lines.push(` ${line}`);
|
|
252
|
+
}
|
|
253
|
+
if (snapshot.availablePeers.length > STATUS_CAPS.sessions) {
|
|
254
|
+
lines.push(paint(` ${String(snapshot.availablePeers.length - STATUS_CAPS.sessions)} more discovered session(s) — read \`embassy status --json\``, "dim"));
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
const collisions = collisionCount(snapshot);
|
|
258
|
+
if (collisions > 0) {
|
|
259
|
+
lines.push(paint(` ${String(collisions)} discovered Claude name(s) are shared by more than one live session and are hidden from this list; ${STATUS_REMEDY.PEER_ALIAS_COLLISION ?? ""}`, "yellow"));
|
|
260
|
+
}
|
|
261
|
+
return lines;
|
|
262
|
+
}
|
|
263
|
+
function renderAlerts(alerts, now, paint) {
|
|
264
|
+
const lines = [];
|
|
265
|
+
const { shown, hidden, unexplained } = actionableAlerts(alerts);
|
|
266
|
+
if (shown.length > 0) {
|
|
267
|
+
lines.push("", paint("alerts", "bold"));
|
|
268
|
+
for (const alert of shown) {
|
|
269
|
+
const subject = alert.alias ?? alert.host ?? alert.provider ?? "";
|
|
270
|
+
lines.push(` ${alert.code}${subject === "" ? "" : ` ${subject}`} ${relativeAge(alert.timestamp, now)}`);
|
|
271
|
+
lines.push(paint(` ${STATUS_REMEDY[alert.code] ?? ""}`, "dim"));
|
|
272
|
+
}
|
|
273
|
+
if (hidden > 0)
|
|
274
|
+
lines.push(paint(` ${String(hidden)} more alert(s) not shown`, "dim"));
|
|
275
|
+
if (unexplained > 0) {
|
|
276
|
+
lines.push(paint(` ${String(unexplained)} alert(s) with no known remedy — read \`embassy status --json\``, "dim"));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return lines;
|
|
280
|
+
}
|
|
252
281
|
export function renderStatus(snapshot, options) {
|
|
253
282
|
const now = options.now;
|
|
254
283
|
const paint = terminalPainter(options.color);
|
|
255
284
|
const lines = [];
|
|
256
|
-
const overall =
|
|
285
|
+
const overall = gatewayHealthWord(snapshot.connectors);
|
|
257
286
|
const discoveredByAlias = new Map(snapshot.availablePeers.map((peer) => [peer.alias, peer]));
|
|
258
287
|
const brokerFacts = [
|
|
259
288
|
paint(overall, wordColor(overall)),
|
|
@@ -311,28 +340,7 @@ export function renderStatus(snapshot, options) {
|
|
|
311
340
|
if (shellPeers.length > STATUS_CAPS.shellPeers) {
|
|
312
341
|
lines.push(paint(` ${String(shellPeers.length - STATUS_CAPS.shellPeers)} more shell peer(s) with empty mailboxes`, "dim"));
|
|
313
342
|
}
|
|
314
|
-
lines.push(
|
|
315
|
-
if (snapshot.availablePeers.length === 0) {
|
|
316
|
-
lines.push(" none discovered — start a Claude Code session, then run `embassy refresh`");
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
const rows = snapshot.availablePeers.slice(0, STATUS_CAPS.sessions).map((peer) => {
|
|
320
|
-
const word = peer.state === "awaiting_approval" ? "awaiting" : peer.state;
|
|
321
|
-
return [{ value: peer.alias }, { value: word, tone: wordColor(word === "offline" ? "offline" : "ok") },
|
|
322
|
-
{ value: peer.routed ? "routed" : "no route yet" },
|
|
323
|
-
{ value: relativeAge(peer.lastSeenAt, now) }];
|
|
324
|
-
});
|
|
325
|
-
for (const line of table(["session", "state", "route", "last seen"], rows, paint)) {
|
|
326
|
-
lines.push(` ${line}`);
|
|
327
|
-
}
|
|
328
|
-
if (snapshot.availablePeers.length > STATUS_CAPS.sessions) {
|
|
329
|
-
lines.push(paint(` ${String(snapshot.availablePeers.length - STATUS_CAPS.sessions)} more discovered session(s) — read \`embassy status --json\``, "dim"));
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
const collisions = collisionCount(snapshot);
|
|
333
|
-
if (collisions > 0) {
|
|
334
|
-
lines.push(paint(` ${String(collisions)} discovered Claude name(s) are shared by more than one live session and are hidden from this list; ${STATUS_REMEDY.PEER_ALIAS_COLLISION ?? ""}`, "yellow"));
|
|
335
|
-
}
|
|
343
|
+
lines.push(...renderSessions(snapshot, now, paint));
|
|
336
344
|
lines.push("", paint("routes", "bold"));
|
|
337
345
|
if (snapshot.routes.length === 0) {
|
|
338
346
|
lines.push(" none — a Claude session's route installs on its first send; a Codex task is registered explicitly");
|
|
@@ -350,6 +358,11 @@ export function renderStatus(snapshot, options) {
|
|
|
350
358
|
lines.push(` ${line}`);
|
|
351
359
|
}
|
|
352
360
|
for (const { route, view } of views) {
|
|
361
|
+
if (view.remedy === undefined && view.word === "busy" &&
|
|
362
|
+
route.safeErrorCode !== undefined && CLAUDE_BUSY_OBSERVATION_CODES.has(route.safeErrorCode)) {
|
|
363
|
+
lines.push(paint(` ${route.alias}: ${STATUS_REMEDY[route.safeErrorCode]}`, "dim"));
|
|
364
|
+
continue;
|
|
365
|
+
}
|
|
353
366
|
if (view.remedy === undefined)
|
|
354
367
|
continue;
|
|
355
368
|
lines.push(paint(` ${route.alias}: ${view.remedy}`, "dim"));
|
|
@@ -366,20 +379,7 @@ export function renderStatus(snapshot, options) {
|
|
|
366
379
|
if (event.body !== undefined)
|
|
367
380
|
lines.push(paint(` ${previewBody(event.body)}`, "dim"));
|
|
368
381
|
}
|
|
369
|
-
|
|
370
|
-
if (shown.length > 0) {
|
|
371
|
-
lines.push("", paint("alerts", "bold"));
|
|
372
|
-
for (const alert of shown) {
|
|
373
|
-
const subject = alert.alias ?? alert.host ?? alert.provider ?? "";
|
|
374
|
-
lines.push(` ${alert.code}${subject === "" ? "" : ` ${subject}`} ${relativeAge(alert.timestamp, now)}`);
|
|
375
|
-
lines.push(paint(` ${STATUS_REMEDY[alert.code] ?? ""}`, "dim"));
|
|
376
|
-
}
|
|
377
|
-
if (hidden > 0)
|
|
378
|
-
lines.push(paint(` ${String(hidden)} more alert(s) not shown`, "dim"));
|
|
379
|
-
if (unexplained > 0) {
|
|
380
|
-
lines.push(paint(` ${String(unexplained)} alert(s) with no known remedy — read \`embassy status --json\``, "dim"));
|
|
381
|
-
}
|
|
382
|
-
}
|
|
382
|
+
lines.push(...renderAlerts(snapshot.alerts, now, paint));
|
|
383
383
|
const omitted = Object.entries(snapshot.truncation)
|
|
384
384
|
.filter((entry) => typeof entry[1] === "number" && entry[1] > 0)
|
|
385
385
|
.map(([name, count]) => `${String(count)} ${name}`);
|
|
@@ -481,8 +481,4 @@ export function renderWatchEvent(event, color) {
|
|
|
481
481
|
const detail = event.event.safeErrorCode === undefined ? "" : ` ${event.event.safeErrorCode}`;
|
|
482
482
|
return paint(`${clockOf(event.event.timestamp)} ${event.event.action} ${event.event.aliases.join(", ")} ${event.event.outcome}${detail}`, "dim");
|
|
483
483
|
}
|
|
484
|
-
/** Pure helpers the renderer's own tests drive directly; not part of the CLI surface. */
|
|
485
|
-
export const __test = Object.freeze({
|
|
486
|
-
connectorWord, overallWord, previewBody, relativeAge, routeView,
|
|
487
|
-
});
|
|
488
484
|
//# sourceMappingURL=status-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-view.js","sourceRoot":"","sources":["../../../src/gateway/status-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"status-view.js","sourceRoot":"","sources":["../../../src/gateway/status-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,8 @@ export declare class GatewayStore {
|
|
|
72
72
|
* with its queued rows. Both refusals are exactly right, and neither must
|
|
73
73
|
* ever be reachable by a document we wrote. When the registration is
|
|
74
74
|
* removed, `removeRegistrationMetadata` takes the same rows out of the live
|
|
75
|
-
* state in the same mutate
|
|
75
|
+
* state in the same mutate. Attributable rows and bodies are removed;
|
|
76
|
+
* aggregate counters may remain advanced.
|
|
76
77
|
*/
|
|
77
78
|
private persistedProjection;
|
|
78
79
|
removeOwnedRouteAtomic(input: Readonly<{
|
|
@@ -80,6 +81,7 @@ export declare class GatewayStore {
|
|
|
80
81
|
binding: LogicalRouteBinding;
|
|
81
82
|
activity?: Readonly<{
|
|
82
83
|
operatorAction: boolean;
|
|
84
|
+
action?: "route_retired";
|
|
83
85
|
}>;
|
|
84
86
|
}>): Promise<RemoveRouteAtomicResult>;
|
|
85
87
|
replaceCodexRegistrationAtomic(input: ReplaceCodexRegistrationAtomicInput): Promise<ReplaceCodexRegistrationAtomicResult>;
|
|
@@ -141,6 +143,7 @@ export declare class GatewayStore {
|
|
|
141
143
|
private enqueueResolved;
|
|
142
144
|
private allocateDeliveryToken;
|
|
143
145
|
private consumeRate;
|
|
146
|
+
private rejectEnqueue;
|
|
144
147
|
private recordRejection;
|
|
145
148
|
private finishMessage;
|
|
146
149
|
private touchMessage;
|
|
@@ -818,7 +818,8 @@ export class GatewayStore {
|
|
|
818
818
|
* with its queued rows. Both refusals are exactly right, and neither must
|
|
819
819
|
* ever be reachable by a document we wrote. When the registration is
|
|
820
820
|
* removed, `removeRegistrationMetadata` takes the same rows out of the live
|
|
821
|
-
* state in the same mutate
|
|
821
|
+
* state in the same mutate. Attributable rows and bodies are removed;
|
|
822
|
+
* aggregate counters may remain advanced.
|
|
822
823
|
*/
|
|
823
824
|
persistedProjection(state) {
|
|
824
825
|
if (this.ephemeralRegistrations.size === 0)
|
|
@@ -840,14 +841,14 @@ export class GatewayStore {
|
|
|
840
841
|
if (route.registrationMode === "federated_peer") {
|
|
841
842
|
throw new BridgeError("FEDERATED_ROUTE_READ_ONLY", "A federated route is owned by its peer node; only catalog reconciliation may retire it.");
|
|
842
843
|
}
|
|
843
|
-
if (input.activity !== undefined && route.binding.provider !== "codex") {
|
|
844
|
+
if (input.activity !== undefined && input.activity.action !== "route_retired" && route.binding.provider !== "codex") {
|
|
844
845
|
throw new BridgeError("INVALID_ROUTE_BINDING", "Only exact Codex unregister has public activity.");
|
|
845
846
|
}
|
|
846
847
|
const settlements = this.terminalizeRegistration(state, route.binding.registrationId, now);
|
|
847
848
|
this.removeRegistrationMetadata(state, route);
|
|
848
849
|
if (input.activity !== undefined) {
|
|
849
850
|
this.appendRuntimeActivity(state, now, {
|
|
850
|
-
kind: "registration", action: "codex_unregistered",
|
|
851
|
+
kind: "registration", action: input.activity.action ?? "codex_unregistered",
|
|
851
852
|
outcome: "accepted", aliases: [route.alias],
|
|
852
853
|
operatorAction: input.activity.operatorAction,
|
|
853
854
|
});
|
|
@@ -1502,8 +1503,7 @@ export class GatewayStore {
|
|
|
1502
1503
|
}
|
|
1503
1504
|
const bytes = Buffer.byteLength(input.body, "utf8");
|
|
1504
1505
|
if (bytes > this.config.limits.maxMessageBytes) {
|
|
1505
|
-
this.
|
|
1506
|
-
throw new CommitAndThrow(new BridgeError("MESSAGE_TOO_LARGE", "The message exceeds the configured byte bound."));
|
|
1506
|
+
this.rejectEnqueue(state, authority, bytes, now, input, "MESSAGE_TOO_LARGE", "The message exceeds the configured byte bound.");
|
|
1507
1507
|
}
|
|
1508
1508
|
if (Buffer.byteLength(input.dedupeKey, "utf8") > 512) {
|
|
1509
1509
|
throw new BridgeError("INVALID_DEDUPE_KEY", "A bounded, non-empty deduplication key is required.");
|
|
@@ -1513,8 +1513,7 @@ export class GatewayStore {
|
|
|
1513
1513
|
if (!isIsoTimestamp(deadlineAt) ||
|
|
1514
1514
|
Date.parse(deadlineAt) <= now.getTime() ||
|
|
1515
1515
|
Date.parse(deadlineAt) > now.getTime() + this.config.limits.messageDeadlineMs) {
|
|
1516
|
-
this.
|
|
1517
|
-
throw new CommitAndThrow(new BridgeError("INVALID_DEADLINE", "The message deadline must fall inside the configured delivery window."));
|
|
1516
|
+
this.rejectEnqueue(state, authority, bytes, now, input, "INVALID_DEADLINE", "The message deadline must fall inside the configured delivery window.");
|
|
1518
1517
|
}
|
|
1519
1518
|
const fingerprint = createHash("sha256")
|
|
1520
1519
|
.update([
|
|
@@ -1534,8 +1533,7 @@ export class GatewayStore {
|
|
|
1534
1533
|
};
|
|
1535
1534
|
}
|
|
1536
1535
|
if (!this.consumeRate(state, authority.sourceAlias, now)) {
|
|
1537
|
-
this.
|
|
1538
|
-
throw new CommitAndThrow(new BridgeError("GATEWAY_RATE_LIMITED", "The source exceeded the bounded gateway rate window.", true));
|
|
1536
|
+
this.rejectEnqueue(state, authority, bytes, now, input, "GATEWAY_RATE_LIMITED", "The source exceeded the bounded gateway rate window.", true);
|
|
1539
1537
|
}
|
|
1540
1538
|
const active = state.messages.filter((message) => message.state.phase !== "terminal");
|
|
1541
1539
|
const queuedSteers = input.steer === true
|
|
@@ -1555,8 +1553,7 @@ export class GatewayStore {
|
|
|
1555
1553
|
this.config.limits.maxQueueMessagesPerRoute ||
|
|
1556
1554
|
state.accounting.queuedBytes - (superseded?.bytes ?? 0) + bytes >
|
|
1557
1555
|
this.config.limits.maxQueueBytes) {
|
|
1558
|
-
this.
|
|
1559
|
-
throw new CommitAndThrow(new BridgeError("GATEWAY_QUEUE_FULL", "The bounded gateway queue is full.", true));
|
|
1556
|
+
this.rejectEnqueue(state, authority, bytes, now, input, "GATEWAY_QUEUE_FULL", "The bounded gateway queue is full.", true);
|
|
1560
1557
|
}
|
|
1561
1558
|
const messageId = `msg_${this.randomId()}`;
|
|
1562
1559
|
if (!MESSAGE_ID_PATTERN.test(messageId)) {
|
|
@@ -1654,6 +1651,10 @@ export class GatewayStore {
|
|
|
1654
1651
|
bucket.count += 1;
|
|
1655
1652
|
return true;
|
|
1656
1653
|
}
|
|
1654
|
+
rejectEnqueue(state, authority, bytes, now, input, code, message, recoverable = false) {
|
|
1655
|
+
this.recordRejection(state, authority, bytes, now, code, input);
|
|
1656
|
+
throw new CommitAndThrow(new BridgeError(code, message, recoverable));
|
|
1657
|
+
}
|
|
1657
1658
|
recordRejection(state, authority, bytes, now, safeErrorCode, input) {
|
|
1658
1659
|
state.accounting.rejected += 1;
|
|
1659
1660
|
const source = state.routes.find((route) => route.binding.registrationId === authority.sourceRegistrationId);
|