agent-embassy 1.6.0 → 1.7.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 (97) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +9 -9
  3. package/README.zh-CN.md +9 -9
  4. package/SECURITY.md +34 -77
  5. package/dist/src/gateway/acp-client.d.ts +117 -0
  6. package/dist/src/gateway/acp-client.js +382 -0
  7. package/dist/src/gateway/acp-client.js.map +1 -0
  8. package/dist/src/gateway/acp-provider.d.ts +65 -0
  9. package/dist/src/gateway/acp-provider.js +163 -0
  10. package/dist/src/gateway/acp-provider.js.map +1 -0
  11. package/dist/src/gateway/claude-helper-protocol.d.ts +3 -1
  12. package/dist/src/gateway/claude-helper-protocol.js +15 -5
  13. package/dist/src/gateway/claude-helper-protocol.js.map +1 -1
  14. package/dist/src/gateway/claude-helper-supervisor.d.ts +3 -1
  15. package/dist/src/gateway/claude-helper-supervisor.js +16 -2
  16. package/dist/src/gateway/claude-helper-supervisor.js.map +1 -1
  17. package/dist/src/gateway/claude-helper.js +4 -3
  18. package/dist/src/gateway/claude-helper.js.map +1 -1
  19. package/dist/src/gateway/claude-peer.d.ts +1 -1
  20. package/dist/src/gateway/claude-peer.js +11 -13
  21. package/dist/src/gateway/claude-peer.js.map +1 -1
  22. package/dist/src/gateway/claude-runtime.d.ts +0 -20
  23. package/dist/src/gateway/claude-runtime.js +6 -127
  24. package/dist/src/gateway/claude-runtime.js.map +1 -1
  25. package/dist/src/gateway/cli-copy.en.d.ts +1 -1
  26. package/dist/src/gateway/cli-copy.en.js +2 -2
  27. package/dist/src/gateway/cli-copy.zh-CN.d.ts +1 -1
  28. package/dist/src/gateway/cli-copy.zh-CN.js +2 -2
  29. package/dist/src/gateway/cli.d.ts +1 -1
  30. package/dist/src/gateway/cli.js +26 -5
  31. package/dist/src/gateway/cli.js.map +1 -1
  32. package/dist/src/gateway/codex-app-server.d.ts +5 -74
  33. package/dist/src/gateway/codex-app-server.js +9 -597
  34. package/dist/src/gateway/codex-app-server.js.map +1 -1
  35. package/dist/src/gateway/codex-local-transport.d.ts +8 -26
  36. package/dist/src/gateway/codex-local-transport.js +26 -76
  37. package/dist/src/gateway/codex-local-transport.js.map +1 -1
  38. package/dist/src/gateway/compatibility.d.ts +6 -66
  39. package/dist/src/gateway/compatibility.js +14 -296
  40. package/dist/src/gateway/compatibility.js.map +1 -1
  41. package/dist/src/gateway/config.d.ts +9 -0
  42. package/dist/src/gateway/config.js +6 -2
  43. package/dist/src/gateway/config.js.map +1 -1
  44. package/dist/src/gateway/control.d.ts +16 -1
  45. package/dist/src/gateway/control.js +89 -57
  46. package/dist/src/gateway/control.js.map +1 -1
  47. package/dist/src/gateway/dashboard-copy.d.ts +1 -1
  48. package/dist/src/gateway/dashboard-copy.en.d.ts +14 -44
  49. package/dist/src/gateway/dashboard-copy.en.js +37 -67
  50. package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
  51. package/dist/src/gateway/dashboard-copy.js +14 -44
  52. package/dist/src/gateway/dashboard-copy.js.map +1 -1
  53. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +14 -44
  54. package/dist/src/gateway/dashboard-copy.zh-CN.js +37 -67
  55. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
  56. package/dist/src/gateway/dashboard-model.d.ts +38 -76
  57. package/dist/src/gateway/dashboard-model.js +158 -256
  58. package/dist/src/gateway/dashboard-model.js.map +1 -1
  59. package/dist/src/gateway/dashboard.d.ts +0 -3
  60. package/dist/src/gateway/dashboard.js +75 -76
  61. package/dist/src/gateway/dashboard.js.map +1 -1
  62. package/dist/src/gateway/deepseek-detect.d.ts +7 -6
  63. package/dist/src/gateway/deepseek-detect.js +31 -115
  64. package/dist/src/gateway/deepseek-detect.js.map +1 -1
  65. package/dist/src/gateway/live-dashboard-app/app.js +166 -621
  66. package/dist/src/gateway/live-dashboard-command.js +2 -4
  67. package/dist/src/gateway/live-dashboard-command.js.map +1 -1
  68. package/dist/src/gateway/live-dashboard-http.d.ts +1 -2
  69. package/dist/src/gateway/live-dashboard-http.js +14 -15
  70. package/dist/src/gateway/live-dashboard-http.js.map +1 -1
  71. package/dist/src/gateway/progress-watch-machine.d.ts +1 -4
  72. package/dist/src/gateway/progress-watch-machine.js.map +1 -1
  73. package/dist/src/gateway/provenance-envelope.d.ts +3 -2
  74. package/dist/src/gateway/provenance-envelope.js +44 -11
  75. package/dist/src/gateway/provenance-envelope.js.map +1 -1
  76. package/dist/src/gateway/providers.d.ts +12 -84
  77. package/dist/src/gateway/providers.js +69 -806
  78. package/dist/src/gateway/providers.js.map +1 -1
  79. package/dist/src/gateway/server.d.ts +8 -9
  80. package/dist/src/gateway/server.js +51 -99
  81. package/dist/src/gateway/server.js.map +1 -1
  82. package/dist/src/gateway/service.d.ts +22 -49
  83. package/dist/src/gateway/service.js +196 -432
  84. package/dist/src/gateway/service.js.map +1 -1
  85. package/dist/src/gateway/store.d.ts +20 -29
  86. package/dist/src/gateway/store.js +281 -827
  87. package/dist/src/gateway/store.js.map +1 -1
  88. package/dist/src/gateway/types.d.ts +55 -55
  89. package/dist/src/gateway/types.js +49 -91
  90. package/dist/src/gateway/types.js.map +1 -1
  91. package/docs/CONFIGURATION.md +11 -10
  92. package/docs/CONFIGURATION.zh-CN.md +10 -9
  93. package/docs/DASHBOARD.md +4 -38
  94. package/docs/DASHBOARD.zh-CN.md +4 -2
  95. package/docs/GATEWAY-ARCHITECTURE.md +61 -119
  96. package/package.json +1 -1
  97. package/skills/embassy-peer/SKILL.md +6 -6
@@ -1,33 +1,52 @@
1
1
  import type { ProgressWatch, ProgressWatchJournalEvent } from "./progress-watch-machine.js";
2
- import { type CompatibilityAttestation } from "./compatibility.js";
3
- export declare const gatewayProviders: readonly ["codex", "claude"];
2
+ export declare const gatewayProviders: readonly ["claude", "codex", "deepseek", "grok"];
4
3
  export type GatewayProvider = (typeof gatewayProviders)[number];
4
+ export declare const gatewayProviderDisplayNames: Readonly<{
5
+ claude: string;
6
+ codex: string;
7
+ deepseek: string;
8
+ grok: string;
9
+ }>;
10
+ /** Registration syntax only; route bindings, never prefixes, prove providers. */
11
+ export declare const gatewayRegistrationIngressPrefixes: Readonly<{
12
+ claude: undefined;
13
+ codex: string;
14
+ deepseek: string;
15
+ grok: string;
16
+ }>;
5
17
  export declare const gatewayInboundModes: readonly ["paired", "open"];
6
18
  export type GatewayInboundMode = (typeof gatewayInboundModes)[number];
7
- export declare const connectorHealthStates: readonly ["offline", "connecting", "healthy", "degraded", "incompatible"];
19
+ export declare const connectorHealthStates: readonly ["offline", "connecting", "healthy", "degraded"];
8
20
  export type ConnectorHealth = (typeof connectorHealthStates)[number];
9
- export declare const compatibilityStates: readonly ["unknown", "compatible", "incompatible", "expired"];
10
- export type CompatibilityState = (typeof compatibilityStates)[number];
11
- export declare const routeStates: readonly ["stale", "idle", "busy", "awaiting_approval", "offline", "incompatible", "disabled"];
21
+ export declare const routeStates: readonly ["stale", "idle", "busy", "awaiting_approval", "offline", "disabled"];
12
22
  export type RouteState = (typeof routeStates)[number];
13
23
  export declare const routeRegistrationModes: readonly ["explicit_opt_in", "selected_live_peer"];
14
24
  export type RouteRegistrationMode = (typeof routeRegistrationModes)[number];
15
- export declare const messageDirections: readonly ["codex_to_claude", "claude_to_codex"];
16
- export type MessageDirection = (typeof messageDirections)[number];
25
+ export type MessageDirection = {
26
+ [Source in GatewayProvider]: `${Source}_to_${Exclude<GatewayProvider, Source>}`;
27
+ }[GatewayProvider];
28
+ export type ParsedMessageDirection = Readonly<{
29
+ sourceProvider: GatewayProvider;
30
+ targetProvider: GatewayProvider;
31
+ }>;
32
+ export declare const isGatewayProvider: (value: unknown) => value is GatewayProvider;
33
+ export declare function directionId(sourceProvider: GatewayProvider, targetProvider: GatewayProvider): MessageDirection;
34
+ export declare const messageDirections: readonly MessageDirection[];
35
+ export declare function parseDirection(value: unknown): ParsedMessageDirection | undefined;
36
+ export declare const isMessageDirection: (value: unknown) => value is MessageDirection;
17
37
  export declare const deliveryStates: readonly ["queued", "duplicate", "dispatching", "transport_written", "held", "delivered", "unconfirmed", "failed", "ambiguous", "expired", "cancelled", "abandoned", "rejected"];
18
38
  export type DeliveryState = (typeof deliveryStates)[number];
19
- export declare const terminalDeliveryStates: Set<"expired" | "queued" | "duplicate" | "dispatching" | "transport_written" | "held" | "delivered" | "unconfirmed" | "failed" | "ambiguous" | "cancelled" | "abandoned" | "rejected">;
39
+ export declare const terminalDeliveryStates: Set<"delivered" | "failed" | "cancelled" | "queued" | "duplicate" | "dispatching" | "transport_written" | "held" | "unconfirmed" | "ambiguous" | "expired" | "abandoned" | "rejected">;
20
40
  export declare const alertSeverities: readonly ["info", "warning", "error"];
21
41
  export type AlertSeverity = (typeof alertSeverities)[number];
22
42
  export type BusyPolicy = "queue";
23
43
  /** Canonical closed-array bounds shared by store projections and control/UI. */
24
44
  export declare const gatewayPublicSnapshotLimits: Readonly<{
25
45
  readonly connectors: 64;
26
- readonly compatibilityChecks: number;
27
46
  readonly registryRejectionCodes: 32;
28
47
  readonly availablePeers: 256;
29
48
  readonly routes: 256;
30
- readonly pairs: 256;
49
+ readonly consentEdges: 256;
31
50
  readonly progressWatches: 64;
32
51
  readonly progressWatchEvents: 256;
33
52
  readonly activityEvents: 256;
@@ -72,7 +91,6 @@ export type GatewayRouteRecord = {
72
91
  registrationMode: RouteRegistrationMode;
73
92
  enabled: boolean;
74
93
  state: RouteState;
75
- compatibility: CompatibilityState;
76
94
  busyPolicy: BusyPolicy;
77
95
  registeredAt: string;
78
96
  updatedAt: string;
@@ -86,11 +104,14 @@ export type GatewayRouteRecord = {
86
104
  * display coordinates; the private leases prevent an alias from silently
87
105
  * retargeting an existing permission edge.
88
106
  */
89
- export type GatewayPairRecord = {
90
- claudeAlias: string;
91
- codexAlias: string;
92
- claudeOwnerLease: string;
93
- codexOwnerLease: string;
107
+ export type GatewayConsentEndpoint = Readonly<{
108
+ alias: string;
109
+ provider: GatewayProvider;
110
+ ownerLease: string;
111
+ }>;
112
+ export type GatewayConsentEdgeRecord = {
113
+ /** Canonical order: provider order first, then alias. */
114
+ endpoints: readonly [GatewayConsentEndpoint, GatewayConsentEndpoint];
94
115
  createdAt: string;
95
116
  updatedAt: string;
96
117
  counters: RouteCounters;
@@ -105,7 +126,6 @@ export type GatewayPrivateRouteInspection = {
105
126
  registrationMode: RouteRegistrationMode;
106
127
  enabled: boolean;
107
128
  state: RouteState;
108
- compatibility: CompatibilityState;
109
129
  safeErrorCode?: string;
110
130
  };
111
131
  export type ConnectorRecord = {
@@ -113,7 +133,6 @@ export type ConnectorRecord = {
113
133
  hostId: string;
114
134
  endpointGeneration: string;
115
135
  health: ConnectorHealth;
116
- compatibility: CompatibilityState;
117
136
  protocol: string;
118
137
  protocolVersion: string;
119
138
  updatedAt: string;
@@ -223,12 +242,12 @@ export type CodexOrphanRemovalJournalEvent = {
223
242
  };
224
243
  export declare const CODEX_ORPHAN_REMOVAL_JOURNAL_CAPACITY = 256;
225
244
  export type GatewayPersistedState = {
226
- schemaVersion: 1;
245
+ schemaVersion: 2;
227
246
  createdAt: string;
228
247
  updatedAt: string;
229
248
  eventSequence: number;
230
249
  routes: GatewayRouteRecord[];
231
- pairs: GatewayPairRecord[];
250
+ consentEdges: GatewayConsentEdgeRecord[];
232
251
  connectors: ConnectorRecord[];
233
252
  queue: QueuedMessageMetadata[];
234
253
  inFlight: InFlightMessageMetadata[];
@@ -239,8 +258,6 @@ export type GatewayPersistedState = {
239
258
  watchSequence: number;
240
259
  progressWatches: ProgressWatch[];
241
260
  progressWatchEvents: ProgressWatchJournalEvent[];
242
- /** Bounded, body-free probe evidence keyed by provider surface and version. */
243
- compatibilityAttestations: CompatibilityAttestation[];
244
261
  /** Monotonic sequence for the bounded private endpoint-refresh journal. */
245
262
  codexEndpointRefreshSequence: number;
246
263
  /** Strictly private route-lifecycle evidence; never publicly projected. */
@@ -258,7 +275,6 @@ export type PublicRouteSnapshot = {
258
275
  host: string;
259
276
  enabled: boolean;
260
277
  state: RouteState;
261
- compatibility: CompatibilityState;
262
278
  busyPolicy: BusyPolicy;
263
279
  lastSeenAt?: string;
264
280
  queueDepth: number;
@@ -268,9 +284,13 @@ export type PublicRouteSnapshot = {
268
284
  safeErrorCode?: string;
269
285
  };
270
286
  /** Metadata-only public consent edge. Private route authority is omitted. */
271
- export type PublicPairSnapshot = {
272
- claudeAlias: string;
273
- codexAlias: string;
287
+ export type PublicConsentEndpointSnapshot = Readonly<{
288
+ alias: string;
289
+ provider: GatewayProvider;
290
+ }>;
291
+ export type PublicConsentEdgeSnapshot = {
292
+ /** Canonical order matching the private consent edge. */
293
+ endpoints: readonly [PublicConsentEndpointSnapshot, PublicConsentEndpointSnapshot];
274
294
  host: string;
275
295
  counters: RouteCounters;
276
296
  };
@@ -278,24 +298,12 @@ export type PublicConnectorSnapshot = {
278
298
  provider: GatewayProvider;
279
299
  host: string;
280
300
  health: ConnectorHealth;
281
- compatibility: CompatibilityState;
282
301
  protocol: string;
283
302
  protocolVersion: string;
284
303
  lastSeenAt?: string;
285
304
  safeErrorCode?: string;
286
305
  registry?: PublicRegistryObservationSnapshot;
287
306
  };
288
- /**
289
- * Public compatibility evidence adds this release's comparison point without
290
- * changing the persisted attestation schema.
291
- */
292
- export type PublicCompatibilityCheckSnapshot = CompatibilityAttestation & Readonly<{
293
- testedVersion?: string;
294
- supportedMajor?: string;
295
- writesCovered: boolean;
296
- }>;
297
- export declare function projectPublicCompatibilityCheck(attestation: CompatibilityAttestation): PublicCompatibilityCheckSnapshot;
298
- export declare function isPublicCompatibilityCheckSnapshot(value: unknown): value is PublicCompatibilityCheckSnapshot;
299
307
  /**
300
308
  * Bounded, native-ID-free evidence attached to one Claude connector. Counts
301
309
  * describe only the latest pass; the monotonic flag distinguishes an ordinary
@@ -312,7 +320,7 @@ export type PublicRegistryObservationSnapshot = {
312
320
  }[];
313
321
  rejectedCodesOmitted: number;
314
322
  };
315
- export declare const publicAvailablePeerStates: readonly ["idle", "busy", "awaiting_approval", "offline", "incompatible"];
323
+ export declare const publicAvailablePeerStates: readonly ["idle", "busy", "awaiting_approval", "offline"];
316
324
  export type PublicAvailablePeerState = (typeof publicAvailablePeerStates)[number];
317
325
  /**
318
326
  * A transient, metadata-only discovery row. Native provider IDs, process
@@ -325,7 +333,6 @@ export type PublicAvailablePeerSnapshot = {
325
333
  provider: GatewayProvider;
326
334
  host: string;
327
335
  state: PublicAvailablePeerState;
328
- compatibility: CompatibilityState;
329
336
  /** True only when this row passed the provider's strict selectable-peer checks. */
330
337
  validated: boolean;
331
338
  selected: boolean;
@@ -390,19 +397,18 @@ export type PublicProgressWatchEventSnapshot = {
390
397
  workerAlias: string;
391
398
  kind: "opened" | "replaced" | "settled";
392
399
  actor: "owner" | "worker" | "operator" | "gateway" | "unknown";
393
- reason?: "done" | "untracked" | "idle_timeout" | "pair_removed" | "endpoint_retired" | "tracking_disabled" | "legacy_upgrade" | "legacy_done";
400
+ reason?: "done" | "untracked" | "idle_timeout" | "pair_removed" | "endpoint_retired" | "tracking_disabled";
394
401
  };
395
402
  export type GatewayPublicSnapshot = {
396
- schemaVersion: 1;
403
+ schemaVersion: 2;
397
404
  generatedAt: string;
398
405
  /** Launch-time Claude-to-Codex consent policy; paired is the safe default. */
399
406
  inboundMode: GatewayInboundMode;
400
407
  health: ConnectorHealth;
401
408
  connectors: PublicConnectorSnapshot[];
402
- compatibilityChecks?: PublicCompatibilityCheckSnapshot[];
403
409
  availablePeers: PublicAvailablePeerSnapshot[];
404
410
  routes: PublicRouteSnapshot[];
405
- pairs: PublicPairSnapshot[];
411
+ consentEdges: PublicConsentEdgeSnapshot[];
406
412
  progressWatches?: PublicProgressWatchSnapshot[];
407
413
  progressWatchEvents?: PublicProgressWatchEventSnapshot[];
408
414
  activityEvents?: PublicGatewayActivityEvent[];
@@ -414,10 +420,9 @@ export type GatewayPublicSnapshot = {
414
420
  };
415
421
  export type GatewaySnapshotTruncation = {
416
422
  connectors: number;
417
- compatibilityChecks?: number;
418
423
  availablePeers: number;
419
424
  routes: number;
420
- pairs: number;
425
+ consentEdges: number;
421
426
  progressWatches?: number;
422
427
  progressWatchEvents?: number;
423
428
  activityEvents?: number;
@@ -436,12 +441,10 @@ export type RegisterRouteInput = {
436
441
  binding: PrivateRouteBinding;
437
442
  registrationMode: RouteRegistrationMode;
438
443
  state?: "idle" | "busy" | "awaiting_approval";
439
- compatibility?: "compatible";
440
444
  };
441
445
  export type ObserveConnectorInput = {
442
446
  identity: PrivateEndpointIdentity;
443
447
  health: Exclude<ConnectorHealth, "offline">;
444
- compatibility: CompatibilityState;
445
448
  protocol: string;
446
449
  protocolVersion: string;
447
450
  safeErrorCode?: string;
@@ -449,12 +452,10 @@ export type ObserveConnectorInput = {
449
452
  export type ObserveRouteInput = {
450
453
  binding: PrivateRouteBinding;
451
454
  state: "idle" | "busy" | "awaiting_approval";
452
- compatibility: "compatible";
453
455
  safeErrorCode?: string;
454
456
  } | {
455
457
  binding: PrivateRouteBinding;
456
458
  state: "stale";
457
- compatibility: "expired";
458
459
  safeErrorCode: string;
459
460
  };
460
461
  export type RebindStaleRouteInput = {
@@ -503,9 +504,8 @@ export type RemoveStaleCodexOrphanResult = {
503
504
  alias: string;
504
505
  /** Private result used only to reconcile in-process service bindings. */
505
506
  binding: PrivateRouteBinding;
506
- removedPairs: Array<{
507
- claudeAlias: string;
508
- codexAlias: string;
507
+ removedEdges: Array<{
508
+ aliases: readonly [string, string];
509
509
  }>;
510
510
  };
511
511
  export type EnqueueMessageInput = {
@@ -596,7 +596,7 @@ export type RequeueInFlightMessageResult = {
596
596
  };
597
597
  export type GatewayStoreLimits = {
598
598
  maxRoutes: number;
599
- maxPairs: number;
599
+ maxConsentEdges: number;
600
600
  /** Omitted injected-test configs use the production default of 32. */
601
601
  maxWatches?: number;
602
602
  eventCapacity: number;
@@ -1,18 +1,13 @@
1
- import { certifiedCompatibilityVersions, compatibilityCoversWrites, compatibilitySurfaces, isCompatibilityAttestation, } from "./compatibility.js";
2
- export const gatewayProviders = ["codex", "claude"];
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
+ export const gatewayRegistrationIngressPrefixes = Object.freeze({ claude: undefined, codex: "codex-", deepseek: "dsh-", grok: "grok-" });
3
5
  export const gatewayInboundModes = ["paired", "open"];
4
6
  export const connectorHealthStates = [
5
7
  "offline",
6
8
  "connecting",
7
9
  "healthy",
8
10
  "degraded",
9
- "incompatible",
10
- ];
11
- export const compatibilityStates = [
12
- "unknown",
13
- "compatible",
14
- "incompatible",
15
- "expired",
16
11
  ];
17
12
  export const routeStates = [
18
13
  "stale",
@@ -20,17 +15,38 @@ export const routeStates = [
20
15
  "busy",
21
16
  "awaiting_approval",
22
17
  "offline",
23
- "incompatible",
24
18
  "disabled",
25
19
  ];
26
20
  export const routeRegistrationModes = [
27
21
  "explicit_opt_in",
28
22
  "selected_live_peer",
29
23
  ];
30
- export const messageDirections = [
31
- "codex_to_claude",
32
- "claude_to_codex",
33
- ];
24
+ export const isGatewayProvider = (value) => typeof value === "string" && gatewayProviders.includes(value);
25
+ export function directionId(sourceProvider, targetProvider) {
26
+ if (sourceProvider === targetProvider) {
27
+ throw new RangeError("SAME_PROVIDER_DIRECTION");
28
+ }
29
+ return `${sourceProvider}_to_${targetProvider}`;
30
+ }
31
+ export const messageDirections = Object.freeze(gatewayProviders.flatMap((sourceProvider) => gatewayProviders.filter((targetProvider) => targetProvider !== sourceProvider)
32
+ .map((targetProvider) => directionId(sourceProvider, targetProvider))));
33
+ export function parseDirection(value) {
34
+ if (typeof value !== "string")
35
+ return undefined;
36
+ const separator = value.indexOf("_to_");
37
+ if (separator < 1 || separator !== value.lastIndexOf("_to_")) {
38
+ return undefined;
39
+ }
40
+ const sourceProvider = value.slice(0, separator);
41
+ const targetProvider = value.slice(separator + 4);
42
+ if (!isGatewayProvider(sourceProvider) ||
43
+ !isGatewayProvider(targetProvider) ||
44
+ sourceProvider === targetProvider) {
45
+ return undefined;
46
+ }
47
+ return { sourceProvider, targetProvider };
48
+ }
49
+ export const isMessageDirection = (value) => parseDirection(value) !== undefined;
34
50
  export const deliveryStates = [
35
51
  "queued",
36
52
  "duplicate",
@@ -60,11 +76,10 @@ export const alertSeverities = ["info", "warning", "error"];
60
76
  /** Canonical closed-array bounds shared by store projections and control/UI. */
61
77
  export const gatewayPublicSnapshotLimits = Object.freeze({
62
78
  connectors: 64,
63
- compatibilityChecks: compatibilitySurfaces.length,
64
79
  registryRejectionCodes: 32,
65
80
  availablePeers: 256,
66
81
  routes: 256,
67
- pairs: 256,
82
+ consentEdges: 256,
68
83
  progressWatches: 64,
69
84
  progressWatchEvents: 256,
70
85
  activityEvents: 256,
@@ -75,56 +90,11 @@ export const gatewayPublicSnapshotLimits = Object.freeze({
75
90
  export const GATEWAY_PUBLIC_SNAPSHOT_BYTE_BUDGET = 240 * 1024;
76
91
  export const CODEX_ENDPOINT_REFRESH_JOURNAL_CAPACITY = 256;
77
92
  export const CODEX_ORPHAN_REMOVAL_JOURNAL_CAPACITY = 256;
78
- function publicCompatibilityReference(surface) {
79
- const testedVersion = certifiedCompatibilityVersions[surface][0];
80
- if (testedVersion === undefined)
81
- return undefined;
82
- const separator = testedVersion.indexOf(".");
83
- if (separator < 1)
84
- return undefined;
85
- return {
86
- testedVersion,
87
- supportedMajor: testedVersion.slice(0, separator),
88
- };
89
- }
90
- export function projectPublicCompatibilityCheck(attestation) {
91
- const reference = publicCompatibilityReference(attestation.surface);
92
- return {
93
- ...attestation,
94
- probes: attestation.probes.map((probe) => ({ ...probe })),
95
- ...(reference === undefined ? {} : reference),
96
- writesCovered: compatibilityCoversWrites(attestation),
97
- };
98
- }
99
- export function isPublicCompatibilityCheckSnapshot(value) {
100
- if (!value || typeof value !== "object" || Array.isArray(value))
101
- return false;
102
- const candidate = value;
103
- const hasTestedVersion = Object.hasOwn(candidate, "testedVersion");
104
- const hasSupportedMajor = Object.hasOwn(candidate, "supportedMajor");
105
- if (hasTestedVersion !== hasSupportedMajor ||
106
- !Object.hasOwn(candidate, "writesCovered") ||
107
- (hasTestedVersion && typeof candidate.testedVersion !== "string") ||
108
- (hasSupportedMajor && typeof candidate.supportedMajor !== "string") ||
109
- typeof candidate.writesCovered !== "boolean") {
110
- return false;
111
- }
112
- const { testedVersion: _testedVersion, supportedMajor: _supportedMajor, writesCovered: _writesCovered, ...attestation } = candidate;
113
- if (!isCompatibilityAttestation(attestation))
114
- return false;
115
- const reference = publicCompatibilityReference(attestation.surface);
116
- return ((reference === undefined
117
- ? !hasTestedVersion
118
- : candidate.testedVersion === reference.testedVersion &&
119
- candidate.supportedMajor === reference.supportedMajor) &&
120
- candidate.writesCovered === compatibilityCoversWrites(attestation));
121
- }
122
93
  export const publicAvailablePeerStates = [
123
94
  "idle",
124
95
  "busy",
125
96
  "awaiting_approval",
126
97
  "offline",
127
- "incompatible",
128
98
  ];
129
99
  export const gatewayActivityKinds = [
130
100
  "discovery",
@@ -168,7 +138,6 @@ export function isPublicAvailablePeerSnapshot(value) {
168
138
  "provider",
169
139
  "host",
170
140
  "state",
171
- "compatibility",
172
141
  "validated",
173
142
  "selected",
174
143
  ];
@@ -186,8 +155,6 @@ export function isPublicAvailablePeerSnapshot(value) {
186
155
  candidate.provider !== "claude" ||
187
156
  typeof candidate.state !== "string" ||
188
157
  !publicAvailablePeerStates.includes(candidate.state) ||
189
- typeof candidate.compatibility !== "string" ||
190
- !compatibilityStates.includes(candidate.compatibility) ||
191
158
  typeof candidate.validated !== "boolean" ||
192
159
  typeof candidate.selected !== "boolean") {
193
160
  return false;
@@ -271,7 +238,7 @@ function routePriority(state) {
271
238
  return 0;
272
239
  if (state === "idle")
273
240
  return 1;
274
- if (state === "offline" || state === "incompatible")
241
+ if (state === "offline")
275
242
  return 2;
276
243
  if (state === "stale")
277
244
  return 3;
@@ -282,18 +249,14 @@ function connectorPriority(health) {
282
249
  return 0;
283
250
  if (health === "degraded")
284
251
  return 1;
285
- if (health === "incompatible")
286
- return 2;
287
- return 3;
252
+ return 2;
288
253
  }
289
254
  function peerPriority(state) {
290
255
  if (state === "busy" || state === "awaiting_approval")
291
256
  return 0;
292
257
  if (state === "idle")
293
258
  return 1;
294
- if (state === "incompatible")
295
- return 2;
296
- return 3;
259
+ return 2;
297
260
  }
298
261
  function snapshotBytes(snapshot) {
299
262
  return Buffer.byteLength(JSON.stringify(snapshot), "utf8");
@@ -327,14 +290,9 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
327
290
  },
328
291
  }),
329
292
  })),
330
- ...(snapshot.compatibilityChecks === undefined
331
- ? {}
332
- : {
333
- compatibilityChecks: snapshot.compatibilityChecks.slice(0, gatewayPublicSnapshotLimits.compatibilityChecks),
334
- }),
335
293
  availablePeers: snapshot.availablePeers.slice(0, gatewayPublicSnapshotLimits.availablePeers),
336
294
  routes: snapshot.routes.slice(0, gatewayPublicSnapshotLimits.routes),
337
- pairs: snapshot.pairs.slice(0, gatewayPublicSnapshotLimits.pairs),
295
+ consentEdges: snapshot.consentEdges.slice(0, gatewayPublicSnapshotLimits.consentEdges),
338
296
  ...(snapshot.progressWatches === undefined
339
297
  ? {}
340
298
  : {
@@ -356,19 +314,13 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
356
314
  truncation: {
357
315
  connectors: snapshot.truncation.connectors +
358
316
  Math.max(0, snapshot.connectors.length - gatewayPublicSnapshotLimits.connectors),
359
- ...(snapshot.compatibilityChecks === undefined
360
- ? {}
361
- : {
362
- compatibilityChecks: (snapshot.truncation.compatibilityChecks ?? 0) +
363
- Math.max(0, snapshot.compatibilityChecks.length -
364
- gatewayPublicSnapshotLimits.compatibilityChecks),
365
- }),
366
317
  availablePeers: snapshot.truncation.availablePeers +
367
318
  Math.max(0, snapshot.availablePeers.length - gatewayPublicSnapshotLimits.availablePeers),
368
319
  routes: snapshot.truncation.routes +
369
320
  Math.max(0, snapshot.routes.length - gatewayPublicSnapshotLimits.routes),
370
- pairs: snapshot.truncation.pairs +
371
- Math.max(0, snapshot.pairs.length - gatewayPublicSnapshotLimits.pairs),
321
+ consentEdges: snapshot.truncation.consentEdges +
322
+ Math.max(0, snapshot.consentEdges.length -
323
+ gatewayPublicSnapshotLimits.consentEdges),
372
324
  ...(snapshot.progressWatches === undefined
373
325
  ? {}
374
326
  : {
@@ -517,11 +469,17 @@ export function projectGatewayPublicSnapshot(snapshot, maximumBytes = GATEWAY_PU
517
469
  return left.alias.localeCompare(right.alias);
518
470
  });
519
471
  const routeOmissions = projected.truncation.routes;
520
- const pairs = [...projected.pairs].sort((left, right) => `${left.claudeAlias}\0${left.codexAlias}`.localeCompare(`${right.claudeAlias}\0${right.codexAlias}`));
521
- const pairOmissions = projected.truncation.pairs;
522
- if (retainUntilFit(pairs.length, (retained) => {
523
- projected.pairs = pairs.slice(0, retained);
524
- projected.truncation.pairs = pairOmissions + pairs.length - retained;
472
+ const consentEdges = [...projected.consentEdges].sort((left, right) => left.endpoints
473
+ .map((endpoint) => `${endpoint.provider}\0${endpoint.alias}`)
474
+ .join("\0")
475
+ .localeCompare(right.endpoints
476
+ .map((endpoint) => `${endpoint.provider}\0${endpoint.alias}`)
477
+ .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;
525
483
  })) {
526
484
  return projected;
527
485
  }
@@ -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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"}