agent-embassy 1.7.0 → 1.8.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 (118) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/CONTRIBUTING.md +51 -47
  3. package/README.md +26 -9
  4. package/README.zh-CN.md +22 -9
  5. package/SECURITY.md +48 -35
  6. package/dist/src/gateway/acp-client.d.ts +12 -19
  7. package/dist/src/gateway/acp-client.js +90 -65
  8. package/dist/src/gateway/acp-client.js.map +1 -1
  9. package/dist/src/gateway/acp-provider.d.ts +11 -10
  10. package/dist/src/gateway/acp-provider.js +165 -53
  11. package/dist/src/gateway/acp-provider.js.map +1 -1
  12. package/dist/src/gateway/claude-helper-client.d.ts +2 -43
  13. package/dist/src/gateway/claude-helper-client.js +1 -211
  14. package/dist/src/gateway/claude-helper-client.js.map +1 -1
  15. package/dist/src/gateway/claude-helper-protocol.d.ts +16 -74
  16. package/dist/src/gateway/claude-helper-protocol.js +99 -378
  17. package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
  18. package/dist/src/gateway/claude-helper-supervisor.d.ts +56 -44
  19. package/dist/src/gateway/claude-helper-supervisor.js +265 -456
  20. package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
  21. package/dist/src/gateway/claude-helper.js +184 -210
  22. package/dist/src/gateway/claude-helper.js.map +1 -1
  23. package/dist/src/gateway/claude-peer.d.ts +20 -87
  24. package/dist/src/gateway/claude-peer.js +310 -1009
  25. package/dist/src/gateway/claude-peer.js.map +1 -1
  26. package/dist/src/gateway/claude-runtime.d.ts +13 -15
  27. package/dist/src/gateway/claude-runtime.js +14 -168
  28. package/dist/src/gateway/claude-runtime.js.map +1 -1
  29. package/dist/src/gateway/cli-copy.en.d.ts +2 -2
  30. package/dist/src/gateway/cli-copy.en.js +4 -2
  31. package/dist/src/gateway/cli-copy.en.js.map +1 -1
  32. package/dist/src/gateway/cli-copy.zh-CN.d.ts +2 -2
  33. package/dist/src/gateway/cli-copy.zh-CN.js +4 -2
  34. package/dist/src/gateway/cli-copy.zh-CN.js.map +1 -1
  35. package/dist/src/gateway/cli.d.ts +7 -2
  36. package/dist/src/gateway/cli.js +277 -575
  37. package/dist/src/gateway/cli.js.map +1 -1
  38. package/dist/src/gateway/codex-app-server.d.ts +5 -227
  39. package/dist/src/gateway/codex-app-server.js +18 -1463
  40. package/dist/src/gateway/codex-app-server.js.map +1 -1
  41. package/dist/src/gateway/codex-doctor.d.ts +36 -0
  42. package/dist/src/gateway/codex-doctor.js +127 -0
  43. package/dist/src/gateway/codex-doctor.js.map +1 -0
  44. package/dist/src/gateway/codex-local-transport.d.ts +6 -6
  45. package/dist/src/gateway/codex-local-transport.js +13 -10
  46. package/dist/src/gateway/codex-local-transport.js.map +1 -1
  47. package/dist/src/gateway/codex-stateless-transport.d.ts +114 -0
  48. package/dist/src/gateway/codex-stateless-transport.js +1108 -0
  49. package/dist/src/gateway/codex-stateless-transport.js.map +1 -0
  50. package/dist/src/gateway/config.d.ts +2 -9
  51. package/dist/src/gateway/config.js +62 -100
  52. package/dist/src/gateway/config.js.map +1 -1
  53. package/dist/src/gateway/control.d.ts +36 -90
  54. package/dist/src/gateway/control.js +465 -1123
  55. package/dist/src/gateway/control.js.map +1 -1
  56. package/dist/src/gateway/dashboard-copy.d.ts +1 -1
  57. package/dist/src/gateway/dashboard-copy.en.d.ts +8 -26
  58. package/dist/src/gateway/dashboard-copy.en.js +19 -37
  59. package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
  60. package/dist/src/gateway/dashboard-copy.js +8 -26
  61. package/dist/src/gateway/dashboard-copy.js.map +1 -1
  62. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +8 -26
  63. package/dist/src/gateway/dashboard-copy.zh-CN.js +19 -37
  64. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
  65. package/dist/src/gateway/dashboard-model.d.ts +8 -22
  66. package/dist/src/gateway/dashboard-model.js +44 -130
  67. package/dist/src/gateway/dashboard-model.js.map +1 -1
  68. package/dist/src/gateway/dashboard.d.ts +0 -6
  69. package/dist/src/gateway/dashboard.js +3 -7
  70. package/dist/src/gateway/dashboard.js.map +1 -1
  71. package/dist/src/gateway/live-dashboard-app/app.js +20 -34
  72. package/dist/src/gateway/live-dashboard-command.js +2 -2
  73. package/dist/src/gateway/live-dashboard-command.js.map +1 -1
  74. package/dist/src/gateway/live-dashboard-http.d.ts +1 -1
  75. package/dist/src/gateway/live-dashboard-http.js +2 -2
  76. package/dist/src/gateway/live-dashboard-http.js.map +1 -1
  77. package/dist/src/gateway/progress-watch-machine.d.ts +1 -37
  78. package/dist/src/gateway/progress-watch-machine.js +4 -15
  79. package/dist/src/gateway/progress-watch-machine.js.map +1 -1
  80. package/dist/src/gateway/providers.d.ts +58 -191
  81. package/dist/src/gateway/providers.js +637 -2434
  82. package/dist/src/gateway/providers.js.map +1 -1
  83. package/dist/src/gateway/server.d.ts +16 -25
  84. package/dist/src/gateway/server.js +165 -240
  85. package/dist/src/gateway/server.js.map +1 -1
  86. package/dist/src/gateway/service.d.ts +149 -427
  87. package/dist/src/gateway/service.js +1639 -5662
  88. package/dist/src/gateway/service.js.map +1 -1
  89. package/dist/src/gateway/state-v2-to-v3.d.ts +23 -0
  90. package/dist/src/gateway/state-v2-to-v3.js +994 -0
  91. package/dist/src/gateway/state-v2-to-v3.js.map +1 -0
  92. package/dist/src/gateway/store.d.ts +54 -309
  93. package/dist/src/gateway/store.js +1560 -3510
  94. package/dist/src/gateway/store.js.map +1 -1
  95. package/dist/src/gateway/types.d.ts +181 -225
  96. package/dist/src/gateway/types.js +115 -251
  97. package/dist/src/gateway/types.js.map +1 -1
  98. package/docs/CONFIGURATION.md +22 -9
  99. package/docs/CONFIGURATION.zh-CN.md +21 -9
  100. package/docs/DASHBOARD.md +10 -10
  101. package/docs/DASHBOARD.zh-CN.md +3 -3
  102. package/docs/DELIVERY.md +4 -4
  103. package/docs/DELIVERY.zh-CN.md +4 -4
  104. package/docs/GATEWAY-ARCHITECTURE.md +158 -187
  105. package/package.json +1 -1
  106. package/skills/embassy-peer/SKILL.md +28 -22
  107. package/dist/src/gateway/codex-registration-generation.d.ts +0 -5
  108. package/dist/src/gateway/codex-registration-generation.js +0 -19
  109. package/dist/src/gateway/codex-registration-generation.js.map +0 -1
  110. package/dist/src/gateway/codex-registration-succession.d.ts +0 -209
  111. package/dist/src/gateway/codex-registration-succession.js +0 -588
  112. package/dist/src/gateway/codex-registration-succession.js.map +0 -1
  113. package/dist/src/gateway/compatibility.d.ts +0 -22
  114. package/dist/src/gateway/compatibility.js +0 -23
  115. package/dist/src/gateway/compatibility.js.map +0 -1
  116. package/dist/src/gateway/delivery-machine.d.ts +0 -235
  117. package/dist/src/gateway/delivery-machine.js +0 -540
  118. package/dist/src/gateway/delivery-machine.js.map +0 -1
@@ -1,26 +1,9 @@
1
1
  export const gatewayProviders = ["claude", "codex", "deepseek", "grok"];
2
- export const gatewayProviderDisplayNames = Object.freeze({ claude: "Claude", codex: "Codex", deepseek: "DeepSeek", grok: "Grok Build" });
3
- /** Registration syntax only; route bindings, never prefixes, prove providers. */
4
2
  export const gatewayRegistrationIngressPrefixes = Object.freeze({ claude: undefined, codex: "codex-", deepseek: "dsh-", grok: "grok-" });
5
3
  export const gatewayInboundModes = ["paired", "open"];
6
- export const connectorHealthStates = [
7
- "offline",
8
- "connecting",
9
- "healthy",
10
- "degraded",
11
- ];
12
- export const routeStates = [
13
- "stale",
14
- "idle",
15
- "busy",
16
- "awaiting_approval",
17
- "offline",
18
- "disabled",
19
- ];
20
- export const routeRegistrationModes = [
21
- "explicit_opt_in",
22
- "selected_live_peer",
23
- ];
4
+ export const connectorHealthStates = ["offline", "connecting", "healthy", "degraded"];
5
+ export const routeStates = ["stale", "idle", "busy", "awaiting_approval", "offline", "disabled"];
6
+ export const routeRegistrationModes = ["explicit_opt_in", "selected_live_peer"];
24
7
  export const isGatewayProvider = (value) => typeof value === "string" && gatewayProviders.includes(value);
25
8
  export function directionId(sourceProvider, targetProvider) {
26
9
  if (sourceProvider === targetProvider) {
@@ -47,49 +30,18 @@ export function parseDirection(value) {
47
30
  return { sourceProvider, targetProvider };
48
31
  }
49
32
  export const isMessageDirection = (value) => parseDirection(value) !== undefined;
50
- export const deliveryStates = [
51
- "queued",
52
- "duplicate",
53
- "dispatching",
54
- "transport_written",
55
- "held",
56
- "delivered",
57
- "unconfirmed",
58
- "failed",
59
- "ambiguous",
60
- "expired",
61
- "cancelled",
62
- "abandoned",
63
- "rejected",
64
- ];
65
- export const terminalDeliveryStates = new Set([
66
- "delivered",
67
- "unconfirmed",
68
- "failed",
69
- "ambiguous",
70
- "expired",
71
- "cancelled",
72
- "abandoned",
73
- "rejected",
74
- ]);
33
+ export const deliveryStates = ["queued", "duplicate", "dispatching", "transport_written", "held",
34
+ "delivered", "unconfirmed", "failed", "ambiguous", "expired", "cancelled", "abandoned", "rejected"];
75
35
  export const alertSeverities = ["info", "warning", "error"];
76
- /** Canonical closed-array bounds shared by store projections and control/UI. */
77
36
  export const gatewayPublicSnapshotLimits = Object.freeze({
78
- connectors: 64,
79
- registryRejectionCodes: 32,
80
- availablePeers: 256,
81
- routes: 256,
82
- consentEdges: 256,
83
- progressWatches: 64,
84
- progressWatchEvents: 256,
85
- activityEvents: 256,
86
- messages: 1_024,
87
- alerts: 256,
37
+ connectors: 64, registryRejectionCodes: 32,
38
+ availablePeers: 256, routes: 256,
39
+ consentEdges: 256, progressWatches: 64,
40
+ progressWatchEvents: 256, activityEvents: 256,
41
+ messages: 1_024, alerts: 256,
88
42
  });
89
- /** Leaves headroom for the private control protocol response envelope. */
90
43
  export const GATEWAY_PUBLIC_SNAPSHOT_BYTE_BUDGET = 240 * 1024;
91
- export const CODEX_ENDPOINT_REFRESH_JOURNAL_CAPACITY = 256;
92
- export const CODEX_ORPHAN_REMOVAL_JOURNAL_CAPACITY = 256;
44
+ export const CONNECTOR_OBSERVATION_STALE_AFTER_MS = 35_000;
93
45
  export const publicAvailablePeerStates = [
94
46
  "idle",
95
47
  "busy",
@@ -102,8 +54,6 @@ export const gatewayActivityKinds = [
102
54
  "registration",
103
55
  "pairing",
104
56
  "watch",
105
- "endpoint",
106
- "recovery",
107
57
  ];
108
58
  export const gatewayActivityActions = [
109
59
  "discovery_refreshed",
@@ -115,8 +65,6 @@ export const gatewayActivityActions = [
115
65
  "routes_paired",
116
66
  "routes_unpaired",
117
67
  "watch_ended",
118
- "endpoint_refreshed",
119
- "codex_orphan_removed",
120
68
  ];
121
69
  export const deadlinePressureBucketNames = [
122
70
  "under_1m",
@@ -128,26 +76,26 @@ export const deadlinePressureBucketNames = [
128
76
  const PUBLIC_ALIAS_PATTERN = /^[a-z][a-z0-9_-]{0,31}@[a-z0-9](?:[a-z0-9.-]{0,61}[a-z0-9])?$/;
129
77
  const PUBLIC_HOST_PATTERN = /^[a-z0-9](?:[a-z0-9.-]{0,61}[a-z0-9])?$/;
130
78
  const PUBLIC_SAFE_CODE_PATTERN = /^[A-Z][A-Z0-9_]{0,63}$/;
131
- /** Strict closed-schema guard for runtime-supplied transient inventory rows. */
79
+ function publicRecord(value) {
80
+ return value !== null && typeof value === "object" && !Array.isArray(value)
81
+ ? value : undefined;
82
+ }
83
+ function exactPublicKeys(value, required, optional = []) {
84
+ const keys = Object.keys(value);
85
+ return required.every((key) => Object.hasOwn(value, key)) &&
86
+ keys.every((key) => required.includes(key) || optional.includes(key));
87
+ }
88
+ function publicTimestamp(value) {
89
+ return typeof value === "string" && value.length >= 20 && value.length <= 35 && Number.isFinite(Date.parse(value));
90
+ }
91
+ function nonNegative(value) {
92
+ return Number.isSafeInteger(value) && Number(value) >= 0;
93
+ }
132
94
  export function isPublicAvailablePeerSnapshot(value) {
133
- if (!value || typeof value !== "object" || Array.isArray(value))
134
- return false;
135
- const candidate = value;
136
- const required = [
137
- "alias",
138
- "provider",
139
- "host",
140
- "state",
141
- "validated",
142
- "selected",
143
- ];
144
- const optional = ["lastSeenAt", "safeErrorCode"];
145
- const keys = Object.keys(candidate);
146
- if (!required.every((key) => Object.hasOwn(candidate, key)) ||
147
- !keys.every((key) => required.includes(key) || optional.includes(key))) {
148
- return false;
149
- }
150
- if (typeof candidate.alias !== "string" ||
95
+ const candidate = publicRecord(value);
96
+ if (candidate === undefined ||
97
+ !exactPublicKeys(candidate, ["alias", "provider", "host", "state", "validated", "selected"], ["lastSeenAt", "safeErrorCode"]) ||
98
+ typeof candidate.alias !== "string" ||
151
99
  !PUBLIC_ALIAS_PATTERN.test(candidate.alias) ||
152
100
  typeof candidate.host !== "string" ||
153
101
  !PUBLIC_HOST_PATTERN.test(candidate.host) ||
@@ -156,19 +104,11 @@ export function isPublicAvailablePeerSnapshot(value) {
156
104
  typeof candidate.state !== "string" ||
157
105
  !publicAvailablePeerStates.includes(candidate.state) ||
158
106
  typeof candidate.validated !== "boolean" ||
159
- typeof candidate.selected !== "boolean") {
160
- return false;
161
- }
162
- if (candidate.lastSeenAt !== undefined &&
163
- (typeof candidate.lastSeenAt !== "string" ||
164
- candidate.lastSeenAt.length < 20 ||
165
- candidate.lastSeenAt.length > 35 ||
166
- !Number.isFinite(Date.parse(candidate.lastSeenAt)))) {
107
+ typeof candidate.selected !== "boolean")
167
108
  return false;
168
- }
169
- return (candidate.safeErrorCode === undefined ||
170
- (typeof candidate.safeErrorCode === "string" &&
171
- PUBLIC_SAFE_CODE_PATTERN.test(candidate.safeErrorCode)));
109
+ return (candidate.lastSeenAt === undefined || publicTimestamp(candidate.lastSeenAt)) &&
110
+ (candidate.safeErrorCode === undefined ||
111
+ (typeof candidate.safeErrorCode === "string" && PUBLIC_SAFE_CODE_PATTERN.test(candidate.safeErrorCode)));
172
112
  }
173
113
  export function arePublicAvailablePeerSnapshots(value, maximumRows = gatewayPublicSnapshotLimits.availablePeers) {
174
114
  if (!Array.isArray(value) ||
@@ -182,47 +122,27 @@ export function arePublicAvailablePeerSnapshots(value, maximumRows = gatewayPubl
182
122
  return new Set(aliases).size === aliases.length;
183
123
  }
184
124
  export function isPublicRegistryObservationSnapshot(value) {
185
- if (!value || typeof value !== "object" || Array.isArray(value))
186
- return false;
187
- const candidate = value;
188
- const keys = Object.keys(candidate);
189
- if (keys.length !== 5 ||
190
- ![
191
- "entriesScanned",
192
- "parseableRecords",
193
- "parseableRecordSeenSinceBoot",
194
- "rejected",
195
- "rejectedCodesOmitted",
196
- ].every((key) => Object.hasOwn(candidate, key)) ||
197
- !Number.isSafeInteger(candidate.entriesScanned) ||
198
- Number(candidate.entriesScanned) < 0 ||
199
- !Number.isSafeInteger(candidate.parseableRecords) ||
200
- Number(candidate.parseableRecords) < 0 ||
125
+ const candidate = publicRecord(value);
126
+ if (candidate === undefined ||
127
+ !exactPublicKeys(candidate, ["entriesScanned", "parseableRecords", "parseableRecordSeenSinceBoot",
128
+ "rejected", "rejectedCodesOmitted"]) ||
129
+ !nonNegative(candidate.entriesScanned) || !nonNegative(candidate.parseableRecords) ||
201
130
  Number(candidate.parseableRecords) > Number(candidate.entriesScanned) ||
202
131
  typeof candidate.parseableRecordSeenSinceBoot !== "boolean" ||
203
- (Number(candidate.parseableRecords) > 0 &&
204
- candidate.parseableRecordSeenSinceBoot !== true) ||
205
- !Number.isSafeInteger(candidate.rejectedCodesOmitted) ||
206
- Number(candidate.rejectedCodesOmitted) < 0 ||
132
+ (Number(candidate.parseableRecords) > 0 && candidate.parseableRecordSeenSinceBoot !== true) ||
133
+ !nonNegative(candidate.rejectedCodesOmitted) ||
207
134
  !Array.isArray(candidate.rejected) ||
208
- candidate.rejected.length > gatewayPublicSnapshotLimits.registryRejectionCodes) {
135
+ candidate.rejected.length > gatewayPublicSnapshotLimits.registryRejectionCodes)
209
136
  return false;
210
- }
211
137
  const rejected = candidate.rejected;
212
138
  if (!rejected.every((row) => {
213
- if (!row || typeof row !== "object" || Array.isArray(row))
214
- return false;
215
- const record = row;
216
- return (Object.keys(record).length === 2 &&
217
- Object.hasOwn(record, "safeErrorCode") &&
218
- Object.hasOwn(record, "count") &&
139
+ const record = publicRecord(row);
140
+ return record !== undefined && exactPublicKeys(record, ["safeErrorCode", "count"]) &&
219
141
  typeof record.safeErrorCode === "string" &&
220
142
  PUBLIC_SAFE_CODE_PATTERN.test(record.safeErrorCode) &&
221
- Number.isSafeInteger(record.count) &&
222
- Number(record.count) > 0);
223
- })) {
143
+ Number.isSafeInteger(record.count) && Number(record.count) > 0;
144
+ }))
224
145
  return false;
225
- }
226
146
  const codes = rejected.map((row) => row.safeErrorCode);
227
147
  return codes.every((code, index) => index === 0 || codes[index - 1] < code);
228
148
  }
@@ -273,80 +193,45 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
273
193
  maximumBytes > GATEWAY_PUBLIC_SNAPSHOT_BYTE_BUDGET) {
274
194
  throw new RangeError("INVALID_GATEWAY_SNAPSHOT_BYTE_BUDGET");
275
195
  }
196
+ const omitted = (length, limit) => Math.max(0, length - limit);
197
+ const truncation = {
198
+ connectors: snapshot.truncation.connectors + omitted(snapshot.connectors.length, gatewayPublicSnapshotLimits.connectors),
199
+ availablePeers: snapshot.truncation.availablePeers + omitted(snapshot.availablePeers.length, gatewayPublicSnapshotLimits.availablePeers),
200
+ routes: snapshot.truncation.routes + omitted(snapshot.routes.length, gatewayPublicSnapshotLimits.routes),
201
+ consentEdges: snapshot.truncation.consentEdges + omitted(snapshot.consentEdges.length, gatewayPublicSnapshotLimits.consentEdges),
202
+ messages: snapshot.truncation.messages + omitted(snapshot.messages.length, gatewayPublicSnapshotLimits.messages),
203
+ alerts: snapshot.truncation.alerts + omitted(snapshot.alerts.length, gatewayPublicSnapshotLimits.alerts),
204
+ };
205
+ if (snapshot.progressWatches !== undefined) {
206
+ truncation.progressWatches = (snapshot.truncation.progressWatches ?? 0) +
207
+ omitted(snapshot.progressWatches.length, gatewayPublicSnapshotLimits.progressWatches);
208
+ }
209
+ if (snapshot.progressWatchEvents !== undefined) {
210
+ truncation.progressWatchEvents = (snapshot.truncation.progressWatchEvents ?? 0) +
211
+ omitted(snapshot.progressWatchEvents.length, gatewayPublicSnapshotLimits.progressWatchEvents);
212
+ }
213
+ if (snapshot.activityEvents !== undefined) {
214
+ truncation.activityEvents = (snapshot.truncation.activityEvents ?? 0) +
215
+ omitted(snapshot.activityEvents.length, gatewayPublicSnapshotLimits.activityEvents);
216
+ }
276
217
  const projected = {
277
218
  ...snapshot,
278
- connectors: snapshot.connectors
279
- .slice(0, gatewayPublicSnapshotLimits.connectors)
280
- .map((connector) => ({
281
- ...connector,
282
- ...(connector.registry === undefined
283
- ? {}
284
- : {
285
- registry: {
286
- ...connector.registry,
287
- rejected: connector.registry.rejected.map((row) => ({
288
- ...row,
289
- })),
290
- },
291
- }),
292
- })),
219
+ connectors: structuredClone(snapshot.connectors.slice(0, gatewayPublicSnapshotLimits.connectors)),
293
220
  availablePeers: snapshot.availablePeers.slice(0, gatewayPublicSnapshotLimits.availablePeers),
294
221
  routes: snapshot.routes.slice(0, gatewayPublicSnapshotLimits.routes),
295
222
  consentEdges: snapshot.consentEdges.slice(0, gatewayPublicSnapshotLimits.consentEdges),
296
- ...(snapshot.progressWatches === undefined
297
- ? {}
298
- : {
299
- progressWatches: snapshot.progressWatches.slice(0, gatewayPublicSnapshotLimits.progressWatches),
300
- }),
301
- ...(snapshot.progressWatchEvents === undefined
302
- ? {}
303
- : {
304
- progressWatchEvents: snapshot.progressWatchEvents.slice(-gatewayPublicSnapshotLimits.progressWatchEvents),
305
- }),
306
- ...(snapshot.activityEvents === undefined
307
- ? {}
308
- : {
309
- activityEvents: snapshot.activityEvents.slice(-gatewayPublicSnapshotLimits.activityEvents),
310
- }),
311
- messages: snapshot.messages.slice(-gatewayPublicSnapshotLimits.messages),
312
- alerts: snapshot.alerts.slice(-gatewayPublicSnapshotLimits.alerts),
223
+ ...(snapshot.progressWatches === undefined ? {} : {
224
+ progressWatches: snapshot.progressWatches.slice(0, gatewayPublicSnapshotLimits.progressWatches),
225
+ }),
226
+ ...(snapshot.progressWatchEvents === undefined ? {} : {
227
+ progressWatchEvents: snapshot.progressWatchEvents.slice(-gatewayPublicSnapshotLimits.progressWatchEvents),
228
+ }),
229
+ ...(snapshot.activityEvents === undefined ? {} : {
230
+ activityEvents: snapshot.activityEvents.slice(-gatewayPublicSnapshotLimits.activityEvents),
231
+ }),
232
+ messages: snapshot.messages.slice(-gatewayPublicSnapshotLimits.messages), alerts: snapshot.alerts.slice(-gatewayPublicSnapshotLimits.alerts),
313
233
  accounting: { ...snapshot.accounting },
314
- truncation: {
315
- connectors: snapshot.truncation.connectors +
316
- Math.max(0, snapshot.connectors.length - gatewayPublicSnapshotLimits.connectors),
317
- availablePeers: snapshot.truncation.availablePeers +
318
- Math.max(0, snapshot.availablePeers.length - gatewayPublicSnapshotLimits.availablePeers),
319
- routes: snapshot.truncation.routes +
320
- Math.max(0, snapshot.routes.length - gatewayPublicSnapshotLimits.routes),
321
- consentEdges: snapshot.truncation.consentEdges +
322
- Math.max(0, snapshot.consentEdges.length -
323
- gatewayPublicSnapshotLimits.consentEdges),
324
- ...(snapshot.progressWatches === undefined
325
- ? {}
326
- : {
327
- progressWatches: (snapshot.truncation.progressWatches ?? 0) +
328
- Math.max(0, snapshot.progressWatches.length -
329
- gatewayPublicSnapshotLimits.progressWatches),
330
- }),
331
- ...(snapshot.progressWatchEvents === undefined
332
- ? {}
333
- : {
334
- progressWatchEvents: (snapshot.truncation.progressWatchEvents ?? 0) +
335
- Math.max(0, snapshot.progressWatchEvents.length -
336
- gatewayPublicSnapshotLimits.progressWatchEvents),
337
- }),
338
- ...(snapshot.activityEvents === undefined
339
- ? {}
340
- : {
341
- activityEvents: (snapshot.truncation.activityEvents ?? 0) +
342
- Math.max(0, snapshot.activityEvents.length -
343
- gatewayPublicSnapshotLimits.activityEvents),
344
- }),
345
- messages: snapshot.truncation.messages +
346
- Math.max(0, snapshot.messages.length - gatewayPublicSnapshotLimits.messages),
347
- alerts: snapshot.truncation.alerts +
348
- Math.max(0, snapshot.alerts.length - gatewayPublicSnapshotLimits.alerts),
349
- },
234
+ truncation,
350
235
  };
351
236
  if (snapshotBytes(projected) <= maximumBytes)
352
237
  return projected;
@@ -372,37 +257,30 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
372
257
  applyRetainedCount(0);
373
258
  return false;
374
259
  };
260
+ const retainRows = (rows, priorOmissions, newest, apply) => retainUntilFit(rows.length, (count) => {
261
+ const retained = count === 0 ? [] : newest ? rows.slice(-count) : rows.slice(0, count);
262
+ apply(retained, priorOmissions + rows.length - count);
263
+ });
375
264
  const watchEvents = projected.progressWatchEvents ?? [];
376
- const watchEventOmissions = projected.truncation.progressWatchEvents ?? 0;
377
265
  if (watchEvents.length > 0 &&
378
- retainUntilFit(watchEvents.length, (retained) => {
379
- projected.progressWatchEvents =
380
- retained === 0 ? [] : watchEvents.slice(-retained);
381
- projected.truncation.progressWatchEvents =
382
- watchEventOmissions + watchEvents.length - retained;
383
- })) {
266
+ retainRows(watchEvents, projected.truncation.progressWatchEvents ?? 0, true, (rows, omissions) => {
267
+ projected.progressWatchEvents = rows;
268
+ projected.truncation.progressWatchEvents = omissions;
269
+ }))
384
270
  return projected;
385
- }
386
271
  const activityEvents = projected.activityEvents ?? [];
387
- const activityEventOmissions = projected.truncation.activityEvents ?? 0;
388
272
  if (activityEvents.length > 0 &&
389
- retainUntilFit(activityEvents.length, (retained) => {
390
- projected.activityEvents =
391
- retained === 0 ? [] : activityEvents.slice(-retained);
392
- projected.truncation.activityEvents =
393
- activityEventOmissions + activityEvents.length - retained;
394
- })) {
273
+ retainRows(activityEvents, projected.truncation.activityEvents ?? 0, true, (rows, omissions) => {
274
+ projected.activityEvents = rows;
275
+ projected.truncation.activityEvents = omissions;
276
+ }))
395
277
  return projected;
396
- }
397
278
  const messages = projected.messages;
398
- const messageOmissions = projected.truncation.messages;
399
- if (retainUntilFit(messages.length, (retained) => {
400
- projected.messages = retained === 0 ? [] : messages.slice(-retained);
401
- projected.truncation.messages =
402
- messageOmissions + messages.length - retained;
403
- })) {
279
+ if (retainRows(messages, projected.truncation.messages, true, (rows, omissions) => {
280
+ projected.messages = rows;
281
+ projected.truncation.messages = omissions;
282
+ }))
404
283
  return projected;
405
- }
406
284
  const peers = [...projected.availablePeers].sort((left, right) => {
407
285
  if (left.selected !== right.selected)
408
286
  return left.selected ? -1 : 1;
@@ -412,14 +290,11 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
412
290
  const bySeen = (right.lastSeenAt ?? "").localeCompare(left.lastSeenAt ?? "");
413
291
  return bySeen || left.alias.localeCompare(right.alias);
414
292
  });
415
- const peerOmissions = projected.truncation.availablePeers;
416
- if (retainUntilFit(peers.length, (retained) => {
417
- projected.availablePeers = peers.slice(0, retained);
418
- projected.truncation.availablePeers =
419
- peerOmissions + peers.length - retained;
420
- })) {
293
+ if (retainRows(peers, projected.truncation.availablePeers, false, (rows, omissions) => {
294
+ projected.availablePeers = rows;
295
+ projected.truncation.availablePeers = omissions;
296
+ }))
421
297
  return projected;
422
- }
423
298
  const alerts = [...projected.alerts].sort((left, right) => {
424
299
  const bySeverity = severityPriority(left.severity) - severityPriority(right.severity);
425
300
  if (bySeverity !== 0)
@@ -427,14 +302,11 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
427
302
  const byTime = right.timestamp.localeCompare(left.timestamp);
428
303
  return byTime || left.code.localeCompare(right.code);
429
304
  });
430
- const alertOmissions = projected.truncation.alerts;
431
- if (retainUntilFit(alerts.length, (retained) => {
432
- projected.alerts = alerts.slice(0, retained);
433
- projected.truncation.alerts =
434
- alertOmissions + alerts.length - retained;
435
- })) {
305
+ if (retainRows(alerts, projected.truncation.alerts, false, (rows, omissions) => {
306
+ projected.alerts = rows;
307
+ projected.truncation.alerts = omissions;
308
+ }))
436
309
  return projected;
437
- }
438
310
  const registryConnectorRows = projected.connectors;
439
311
  const registryRejectionRows = registryConnectorRows.reduce((count, connector) => count + (connector.registry?.rejected.length ?? 0), 0);
440
312
  if (registryRejectionRows > 0 &&
@@ -468,27 +340,22 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
468
340
  return byState;
469
341
  return left.alias.localeCompare(right.alias);
470
342
  });
471
- const routeOmissions = projected.truncation.routes;
472
343
  const consentEdges = [...projected.consentEdges].sort((left, right) => left.endpoints
473
344
  .map((endpoint) => `${endpoint.provider}\0${endpoint.alias}`)
474
345
  .join("\0")
475
346
  .localeCompare(right.endpoints
476
347
  .map((endpoint) => `${endpoint.provider}\0${endpoint.alias}`)
477
348
  .join("\0")));
478
- const consentEdgeOmissions = projected.truncation.consentEdges;
479
- if (retainUntilFit(consentEdges.length, (retained) => {
480
- projected.consentEdges = consentEdges.slice(0, retained);
481
- projected.truncation.consentEdges =
482
- consentEdgeOmissions + consentEdges.length - retained;
483
- })) {
349
+ if (retainRows(consentEdges, projected.truncation.consentEdges, false, (rows, omissions) => {
350
+ projected.consentEdges = rows;
351
+ projected.truncation.consentEdges = omissions;
352
+ }))
484
353
  return projected;
485
- }
486
- if (retainUntilFit(routes.length, (retained) => {
487
- projected.routes = routes.slice(0, retained);
488
- projected.truncation.routes = routeOmissions + routes.length - retained;
489
- })) {
354
+ if (retainRows(routes, projected.truncation.routes, false, (rows, omissions) => {
355
+ projected.routes = rows;
356
+ projected.truncation.routes = omissions;
357
+ }))
490
358
  return projected;
491
- }
492
359
  const connectors = [...projected.connectors].sort((left, right) => {
493
360
  const leftHasRegistryIssue = left.registry !== undefined &&
494
361
  (left.registry.rejected.length > 0 ||
@@ -506,14 +373,11 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
506
373
  return byHealth;
507
374
  return `${left.provider}\0${left.host}`.localeCompare(`${right.provider}\0${right.host}`);
508
375
  });
509
- const connectorOmissions = projected.truncation.connectors;
510
- if (retainUntilFit(connectors.length, (retained) => {
511
- projected.connectors = connectors.slice(0, retained);
512
- projected.truncation.connectors =
513
- connectorOmissions + connectors.length - retained;
514
- })) {
376
+ if (retainRows(connectors, projected.truncation.connectors, false, (rows, omissions) => {
377
+ projected.connectors = rows;
378
+ projected.truncation.connectors = omissions;
379
+ }))
515
380
  return projected;
516
- }
517
381
  throw new RangeError("GATEWAY_SNAPSHOT_BASE_EXCEEDS_BYTE_BUDGET");
518
382
  }
519
383
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gateway/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/gateway/types.ts"],"names":[],"mappings":"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"}