agent-embassy 1.5.0 → 1.6.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 (52) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/CONTRIBUTING.md +11 -3
  3. package/README.md +4 -2
  4. package/README.zh-CN.md +4 -2
  5. package/SECURITY.md +30 -9
  6. package/dist/src/gateway/cli.d.ts +1 -1
  7. package/dist/src/gateway/cli.js +4 -1
  8. package/dist/src/gateway/cli.js.map +1 -1
  9. package/dist/src/gateway/codex-app-server.d.ts +42 -1
  10. package/dist/src/gateway/codex-app-server.js +536 -2
  11. package/dist/src/gateway/codex-app-server.js.map +1 -1
  12. package/dist/src/gateway/compatibility.d.ts +31 -3
  13. package/dist/src/gateway/compatibility.js +100 -29
  14. package/dist/src/gateway/compatibility.js.map +1 -1
  15. package/dist/src/gateway/dashboard-copy.d.ts +1 -1
  16. package/dist/src/gateway/dashboard-copy.en.d.ts +6 -0
  17. package/dist/src/gateway/dashboard-copy.en.js +6 -0
  18. package/dist/src/gateway/dashboard-copy.en.js.map +1 -1
  19. package/dist/src/gateway/dashboard-copy.js +6 -0
  20. package/dist/src/gateway/dashboard-copy.js.map +1 -1
  21. package/dist/src/gateway/dashboard-copy.zh-CN.d.ts +6 -0
  22. package/dist/src/gateway/dashboard-copy.zh-CN.js +6 -0
  23. package/dist/src/gateway/dashboard-copy.zh-CN.js.map +1 -1
  24. package/dist/src/gateway/dashboard-model.d.ts +27 -7
  25. package/dist/src/gateway/dashboard-model.js +78 -25
  26. package/dist/src/gateway/dashboard-model.js.map +1 -1
  27. package/dist/src/gateway/dashboard.d.ts +3 -0
  28. package/dist/src/gateway/dashboard.js +15 -3
  29. package/dist/src/gateway/dashboard.js.map +1 -1
  30. package/dist/src/gateway/deepseek-detect.d.ts +13 -0
  31. package/dist/src/gateway/deepseek-detect.js +125 -0
  32. package/dist/src/gateway/deepseek-detect.js.map +1 -0
  33. package/dist/src/gateway/live-dashboard-app/app.js +12 -11
  34. package/dist/src/gateway/providers.d.ts +12 -2
  35. package/dist/src/gateway/providers.js +326 -6
  36. package/dist/src/gateway/providers.js.map +1 -1
  37. package/dist/src/gateway/server.d.ts +2 -0
  38. package/dist/src/gateway/server.js +6 -0
  39. package/dist/src/gateway/server.js.map +1 -1
  40. package/dist/src/gateway/service.d.ts +21 -2
  41. package/dist/src/gateway/service.js +116 -37
  42. package/dist/src/gateway/service.js.map +1 -1
  43. package/dist/src/gateway/types.d.ts +4 -3
  44. package/dist/src/gateway/types.js +17 -14
  45. package/dist/src/gateway/types.js.map +1 -1
  46. package/docs/CONFIGURATION.md +2 -2
  47. package/docs/CONFIGURATION.zh-CN.md +2 -2
  48. package/docs/DASHBOARD.md +10 -4
  49. package/docs/DASHBOARD.zh-CN.md +1 -1
  50. package/docs/GATEWAY-ARCHITECTURE.md +40 -14
  51. package/package.json +1 -1
  52. package/skills/embassy-peer/SKILL.md +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/gateway/server.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { GatewayConfig } from "./config.js";
2
- import { type CompatibilityAttestation, type CompatibilityProbeResult, type CompatibilitySurfaceObservation } from "./compatibility.js";
2
+ import { type CompatibilityAttestation, type CompatibilityProbeResult, type CompatibilitySurfaceDefinition, type CompatibilitySurfaceObserver, type CompatibilitySurfaceObservation } from "./compatibility.js";
3
3
  import { type GatewayControlHandlers, type GatewaySnapshotObservation } from "./control.js";
4
4
  import { publishGatewayDashboard } from "./dashboard.js";
5
+ import type { CodexWriteCompatibilityProbeResult } from "./codex-app-server.js";
5
6
  import { GatewayStore } from "./store.js";
6
7
  import { type CompatibilityState, type GatewayPublicSnapshot, type PrivateEndpointIdentity, type PrivateRouteBinding, type RouteState } from "./types.js";
7
8
  export type GatewayAdapterRouteState = Extract<RouteState, "idle" | "busy" | "awaiting_approval">;
@@ -133,6 +134,11 @@ export type GatewayAdapterDispatchInput = {
133
134
  /** Older accepted rows observed when this exact STEER left the queue. */
134
135
  queuedAhead?: number;
135
136
  };
137
+ export type GatewayCompatibilityProbeContext = Readonly<{
138
+ stateRoot: string;
139
+ forbiddenCodexThreadIds: readonly string[];
140
+ }>;
141
+ export type GatewayWriteCompatibilityProbeObservation = Readonly<CodexWriteCompatibilityProbeResult>;
136
142
  /**
137
143
  * Narrow provider boundary. Production adapters wrap ClaudePeerAdapter or one
138
144
  * exact CodexAppServerConnector; tests use in-memory fakes. Implementations
@@ -144,10 +150,16 @@ export interface GatewayProviderAdapter {
144
150
  readonly protocolVersion: string;
145
151
  /** Version identity is cheap; bounded probes run fresh on every startup. */
146
152
  compatibilitySurface?(): CompatibilitySurfaceObservation;
147
- runCompatibilityProbes?(): Promise<readonly CompatibilityProbeResult[]>;
153
+ runCompatibilityProbes?(context?: GatewayCompatibilityProbeContext): Promise<readonly CompatibilityProbeResult[]>;
154
+ /** Process-local write-probe cost/failure evidence; never persisted or projected. */
155
+ latestWriteCompatibilityProbeObservation?(endpointGeneration: string): GatewayWriteCompatibilityProbeObservation | undefined;
148
156
  /** Latest already-read Claude registry evidence; this accessor performs no I/O. */
149
157
  latestRegistryObservation?(): GatewayAdapterRegistryObservation | undefined;
150
158
  acceptCompatibilityAttestation(attestation: CompatibilityAttestation): void;
159
+ /** Releases one selector claim after controller-side activation fails. */
160
+ releaseEndpointRefreshSelectorClaim?(endpointGeneration: string): void;
161
+ /** Re-publishes pending transition evidence on one observed recovery edge. */
162
+ rearmEndpointRefreshActivation?(endpointGeneration: string): void;
151
163
  initialize(callbacks: GatewayAdapterCallbacks): Promise<GatewayAdapterStart>;
152
164
  discoverClaudePeers?(): Promise<GatewayAdapterDiscoverySnapshot>;
153
165
  selectRoute(input: {
@@ -258,11 +270,17 @@ export type GatewayServiceOptions = {
258
270
  timers?: GatewayServiceTimers;
259
271
  /** Test seam for opaque listener generations; production remains random. */
260
272
  successionGeneration?: () => string;
273
+ /** Test-only surface inventory; production uses the declared registry. */
274
+ compatibilitySurfaceDefinitions?: readonly CompatibilitySurfaceDefinition[];
275
+ /** Read-only surfaces that are deliberately not routing providers. */
276
+ compatibilityObservers?: readonly CompatibilitySurfaceObserver[];
261
277
  };
262
278
  export declare class GatewayService {
263
279
  readonly config: GatewayConfig;
264
280
  readonly store: GatewayStore;
265
281
  private readonly adapters;
282
+ private readonly compatibilityObservers;
283
+ private readonly compatibilitySurfaceDefinitions;
266
284
  private readonly publishDashboard;
267
285
  private readonly now;
268
286
  private readonly timers;
@@ -468,6 +486,7 @@ export declare class GatewayService {
468
486
  private selectedClaudeRoute;
469
487
  private registerOrRebind;
470
488
  private rememberBinding;
489
+ private reanchorQueuedMessageContexts;
471
490
  private forgetBinding;
472
491
  private verifyCodex;
473
492
  private verifyClaude;
@@ -1,7 +1,7 @@
1
1
  import { createHash, randomBytes } from "node:crypto";
2
2
  import { BridgeError } from "../errors.js";
3
3
  import { KeyedMutex } from "../mutex.js";
4
- import { certifiedCompatibilityVersions, compatibilitySurfaces, evaluateCompatibilityAttestation, isCompatibilityAttestation, } from "./compatibility.js";
4
+ import { certifiedCompatibilityVersions, compatibilitySurfaceDefinitions, evaluateCompatibilityAttestation, isCompatibilityAttestation, } from "./compatibility.js";
5
5
  import { createGatewayConversationId, isGatewaySnapshot, startGatewayControlServer, } from "./control.js";
6
6
  import { publishGatewayDashboard } from "./dashboard.js";
7
7
  import { createDeliveryMachine, isTerminalDeliveryMachine, projectDelivery, projectDeliveryWakeups, transitionDelivery, } from "./delivery-machine.js";
@@ -149,6 +149,8 @@ export class GatewayService {
149
149
  config;
150
150
  store;
151
151
  adapters;
152
+ compatibilityObservers;
153
+ compatibilitySurfaceDefinitions;
152
154
  publishDashboard;
153
155
  now;
154
156
  timers;
@@ -245,6 +247,9 @@ export class GatewayService {
245
247
  constructor(options) {
246
248
  this.config = options.config;
247
249
  this.adapters = [...(options.adapters ?? [])];
250
+ this.compatibilityObservers = [...(options.compatibilityObservers ?? [])];
251
+ this.compatibilitySurfaceDefinitions =
252
+ options.compatibilitySurfaceDefinitions ?? compatibilitySurfaceDefinitions;
248
253
  this.publishDashboard = options.publishDashboard ?? publishGatewayDashboard;
249
254
  this.now = options.now ?? (() => new Date());
250
255
  this.store =
@@ -568,26 +573,58 @@ export class GatewayService {
568
573
  return (await this.observeSnapshot()).snapshot;
569
574
  }
570
575
  async runAutomaticCompatibilityProbesLocked() {
571
- const bySurface = new Map(this.adapters.map((adapter) => {
572
- if (adapter.compatibilitySurface === undefined ||
573
- adapter.runCompatibilityProbes === undefined) {
574
- throw new BridgeError("COMPAT_PROVIDER_UNAVAILABLE", "Every local provider must expose the bounded compatibility probe contract.");
575
- }
576
- const observation = adapter.compatibilitySurface();
577
- return [observation.surface, { adapter, observation }];
576
+ const entries = [
577
+ ...this.adapters.map((adapter) => {
578
+ if (adapter.compatibilitySurface === undefined ||
579
+ adapter.runCompatibilityProbes === undefined) {
580
+ throw new BridgeError("COMPAT_PROVIDER_UNAVAILABLE", "Every local provider must expose the bounded compatibility probe contract.");
581
+ }
582
+ return {
583
+ observer: adapter,
584
+ adapter,
585
+ };
586
+ }),
587
+ ...this.compatibilityObservers.map((observer) => ({ observer })),
588
+ ];
589
+ const observedEntries = entries.map((entry) => ({
590
+ ...entry,
591
+ observation: entry.observer.compatibilitySurface(),
578
592
  }));
579
- if (bySurface.size !== compatibilitySurfaces.length ||
580
- compatibilitySurfaces.some((surface) => !bySurface.has(surface))) {
581
- throw new BridgeError("COMPAT_PROVIDER_UNAVAILABLE", "The bounded compatibility probe requires one Claude and one Codex surface.");
582
- }
593
+ const bySurface = new Map(observedEntries.map((entry) => [entry.observation.surface, entry]));
594
+ if (bySurface.size !== entries.length) {
595
+ throw new BridgeError("COMPAT_PROVIDER_UNAVAILABLE", "Each compatibility observer must expose one distinct surface.");
596
+ }
597
+ const declared = new Set(this.compatibilitySurfaceDefinitions.map(({ surface }) => surface));
598
+ if ([...bySurface.keys()].some((surface) => !declared.has(surface))) {
599
+ throw new BridgeError("COMPAT_SURFACE_UNDECLARED", "Every compatibility observer must use a declared surface.");
600
+ }
601
+ const forbiddenCodexThreadIds = (await this.store.inspectPrivateCodexRoutes()).map((route) => route.binding.routeHandle);
602
+ const probeContext = {
603
+ stateRoot: this.store.rootDir,
604
+ forbiddenCodexThreadIds,
605
+ };
583
606
  const attestations = [];
584
- for (const surface of compatibilitySurfaces) {
607
+ for (const definition of this.compatibilitySurfaceDefinitions) {
608
+ const { surface } = definition;
585
609
  const entry = bySurface.get(surface);
586
610
  if (entry === undefined) {
611
+ if (!definition.required)
612
+ continue;
587
613
  throw new BridgeError("COMPAT_PROVIDER_UNAVAILABLE", "A required compatibility surface is unavailable.");
588
614
  }
589
- const probes = await entry.adapter.runCompatibilityProbes();
590
- this.captureRegistryObservation(entry.adapter, entry.adapter.latestRegistryObservation?.());
615
+ const probes = entry.adapter === undefined
616
+ ? await entry.observer.runCompatibilityProbes()
617
+ : await entry.adapter.runCompatibilityProbes(probeContext);
618
+ if (entry.adapter !== undefined) {
619
+ const writeProbe = entry.adapter.latestWriteCompatibilityProbeObservation?.(entry.adapter.identity.endpointGeneration);
620
+ if (writeProbe?.outcome === "fail") {
621
+ this.addRuntimeAlert(writeProbe.safeErrorCode, writeProbe.safeErrorCode === "CODEX_WRITE_PROBE_TOOL_ACTIVITY_OBSERVED" ||
622
+ writeProbe.safeErrorCode === "CODEX_WRITE_PROBE_CLEANUP_UNCONFIRMED"
623
+ ? "error"
624
+ : "warning", { provider: "codex", host: entry.adapter.identity.hostId });
625
+ }
626
+ this.captureRegistryObservation(entry.adapter, entry.adapter.latestRegistryObservation?.());
627
+ }
591
628
  const attestation = evaluateCompatibilityAttestation({
592
629
  surface,
593
630
  version: entry.observation.version,
@@ -596,15 +633,17 @@ export class GatewayService {
596
633
  probes,
597
634
  });
598
635
  await this.store.recordCompatibilityAttestation(attestation);
599
- entry.adapter.acceptCompatibilityAttestation(attestation);
600
- if (attestation.tier === "incompatible") {
636
+ entry.observer.acceptCompatibilityAttestation?.(attestation);
637
+ if (attestation.tier === "incompatible" && entry.adapter !== undefined) {
601
638
  const code = attestation.safeErrorCode ?? "COMPATIBILITY_CHECK_FAILED";
602
- this.incompatibleProviderSurfaces.set(this.providerSurfaceKey(surface, entry.adapter.identity.hostId), code);
639
+ this.incompatibleProviderSurfaces.set(this.providerSurfaceKey(entry.adapter.identity.provider, entry.adapter.identity.hostId), code);
603
640
  if (surface === "codex") {
604
641
  this.activeCodexIncompatibility = structuredClone(attestation);
605
642
  }
606
643
  }
607
- else if (surface === "codex" && attestation.tier === "schema_attested") {
644
+ else if (surface === "codex" &&
645
+ attestation.tier === "schema_attested" &&
646
+ entry.adapter !== undefined) {
608
647
  // A live but untested App Server schema is useful for observation only.
609
648
  // Fence retained boot reactivation before it can trigger endpoint
610
649
  // refresh churn; an explicit registration may still re-probe a later,
@@ -1019,17 +1058,31 @@ export class GatewayService {
1019
1058
  await this.publish();
1020
1059
  }
1021
1060
  this.pruneTransient();
1061
+ const deferredRouteObservations = [];
1022
1062
  while (this.hasPendingCallbackWork()) {
1023
1063
  // Preserve the complete ordinary queue order. In particular, every
1024
1064
  // delivery observation already retained before endpoint replacement is
1025
1065
  // reduced before the lifecycle transition can settle its generation.
1026
1066
  const ordinaryBatch = this.callbackQueue.splice(0, this.callbackQueue.length);
1067
+ const pendingRefresh = this.endpointRefreshCallback?.value;
1027
1068
  for (const event of ordinaryBatch) {
1028
1069
  try {
1029
1070
  if (event.type === "delivery") {
1030
1071
  await this.onDelivery(event.source, event.value, event.receivedAt);
1031
1072
  }
1032
1073
  else if (event.type === "route") {
1074
+ if (pendingRefresh?.outcome === "compatible" &&
1075
+ event.source.provider === "codex" &&
1076
+ event.source.hostId === pendingRefresh.current.hostId &&
1077
+ event.source.endpointGeneration ===
1078
+ pendingRefresh.current.endpointGeneration &&
1079
+ pendingRefresh.routes.some((route) => route.routeHandle === event.value.routeHandle)) {
1080
+ // The provider can observe G2 after staging it but before this
1081
+ // worker installs G2's durable binding. Preserve that fresher
1082
+ // state until the exact transition evidence has been reduced.
1083
+ deferredRouteObservations.push(event);
1084
+ continue;
1085
+ }
1033
1086
  await this.onRouteState(event.source, event.value);
1034
1087
  }
1035
1088
  else if (event.type === "claude_reply") {
@@ -1092,6 +1145,14 @@ export class GatewayService {
1092
1145
  this.endpointRefreshCallback = requestedRetry;
1093
1146
  }
1094
1147
  }
1148
+ for (const event of deferredRouteObservations) {
1149
+ try {
1150
+ await this.onRouteState(event.source, event.value);
1151
+ }
1152
+ catch {
1153
+ this.dashboardHealthy = false;
1154
+ }
1155
+ }
1095
1156
  }
1096
1157
  /**
1097
1158
  * A selector can synchronously admit callbacks while its promise is still
@@ -3359,6 +3420,16 @@ export class GatewayService {
3359
3420
  this.routeStates.set(alias, state);
3360
3421
  this.bindingAliases.set(bindingKey(binding), alias);
3361
3422
  }
3423
+ reanchorQueuedMessageContexts(alias, previous, current) {
3424
+ const previousKey = bindingKey(previous);
3425
+ const currentKey = bindingKey(current);
3426
+ for (const context of this.messageContexts.values()) {
3427
+ if (context.targetAlias === alias &&
3428
+ context.targetBindingKey === previousKey) {
3429
+ context.targetBindingKey = currentKey;
3430
+ }
3431
+ }
3432
+ }
3362
3433
  forgetBinding(alias) {
3363
3434
  const heldTimer = this.heldRedispatchTimers.get(alias);
3364
3435
  if (heldTimer !== undefined) {
@@ -4698,7 +4769,6 @@ export class GatewayService {
4698
4769
  authorization: "selected_route",
4699
4770
  targetAlias: item.targetAlias,
4700
4771
  deadlineAt: item.deadlineAt,
4701
- recovered: true,
4702
4772
  };
4703
4773
  this.conversations.set(conversationId, conversation);
4704
4774
  this.messageContexts.set(item.messageId, context);
@@ -4793,22 +4863,11 @@ export class GatewayService {
4793
4863
  inspection?.state === "stale" ||
4794
4864
  inspection?.safeErrorCode === "CODEX_ROUTE_STALE");
4795
4865
  if (codexRouteStale) {
4796
- if (context.recovered === true) {
4797
- const result = await this.store.requeueInFlightMessage(item.messageId, item.body);
4798
- if (result.status === "settled") {
4799
- await this.applyTerminalSettlementLocked(result.settlement);
4800
- }
4801
- await this.changed();
4802
- return;
4866
+ const result = await this.store.requeueInFlightMessage(item.messageId, item.body);
4867
+ if (result.status === "settled") {
4868
+ await this.applyTerminalSettlementLocked(result.settlement);
4803
4869
  }
4804
- await this.advanceDeliveryLocked(item.messageId, {
4805
- type: "route_terminated",
4806
- at: this.now().getTime(),
4807
- unwrittenOutcome: "failed",
4808
- safeErrorCode: "CODEX_ROUTE_STALE",
4809
- });
4810
4870
  await this.changed();
4811
- this.scheduleDispatch(targetAlias);
4812
4871
  return;
4813
4872
  }
4814
4873
  const storedDispatchable = binding.provider === "claude" ||
@@ -5459,6 +5518,9 @@ export class GatewayService {
5459
5518
  return activationDeferred;
5460
5519
  }
5461
5520
  finally {
5521
+ if (!succeeded && event.outcome === "compatible") {
5522
+ adapter.releaseEndpointRefreshSelectorClaim?.(event.current.endpointGeneration);
5523
+ }
5462
5524
  if (ownsActiveTransition &&
5463
5525
  this.activeEndpointRefreshCallbackKey === transitionKey) {
5464
5526
  this.activeEndpointRefreshCallback = undefined;
@@ -5611,6 +5673,18 @@ export class GatewayService {
5611
5673
  },
5612
5674
  ];
5613
5675
  });
5676
+ const reanchorPendingMessageContexts = () => {
5677
+ for (const route of pendingReanchors) {
5678
+ const previous = previousRoutes.find((candidate) => candidate.alias === route.alias)?.binding;
5679
+ if (previous === undefined)
5680
+ continue;
5681
+ this.reanchorQueuedMessageContexts(route.alias, previous, {
5682
+ ...event.current,
5683
+ routeHandle: route.threadId,
5684
+ ownerLease: route.ownerLease,
5685
+ });
5686
+ }
5687
+ };
5614
5688
  if (pendingReanchors.length > 0) {
5615
5689
  try {
5616
5690
  await this.store.reanchorCodexRoutes({
@@ -5618,6 +5692,7 @@ export class GatewayService {
5618
5692
  newEndpoint: event.current,
5619
5693
  routes: pendingReanchors,
5620
5694
  });
5695
+ reanchorPendingMessageContexts();
5621
5696
  this.durablyAppliedEndpointRefreshes.set(event.current.hostId, transitionKey);
5622
5697
  }
5623
5698
  catch (error) {
@@ -5639,6 +5714,7 @@ export class GatewayService {
5639
5714
  return matches.length === 1;
5640
5715
  });
5641
5716
  if (committedExactly) {
5717
+ reanchorPendingMessageContexts();
5642
5718
  this.durablyAppliedEndpointRefreshes.set(event.current.hostId, transitionKey);
5643
5719
  try {
5644
5720
  await this.store.markConnectorOffline(event.current, "CODEX_ENDPOINT_ACTIVATION_FAILED", [], { preserveQueued: true });
@@ -5904,6 +5980,9 @@ export class GatewayService {
5904
5980
  : event.state === "awaiting_approval"
5905
5981
  ? "waiting"
5906
5982
  : "busy");
5983
+ if (previousState === "stale" && event.state !== "stale") {
5984
+ adapter.rearmEndpointRefreshActivation?.(binding.endpointGeneration);
5985
+ }
5907
5986
  }
5908
5987
  if (event.state === "idle" || event.state === "stale") {
5909
5988
  const heldTimer = this.heldRedispatchTimers.get(alias);
@@ -6019,14 +6098,14 @@ export class GatewayService {
6019
6098
  async publicSnapshotLocked() {
6020
6099
  const base = await this.store.publicSnapshot();
6021
6100
  const compatibilityChecks = [];
6022
- for (const surface of compatibilitySurfaces) {
6101
+ for (const { surface } of this.compatibilitySurfaceDefinitions) {
6023
6102
  if (surface === "codex" && this.activeCodexIncompatibility !== undefined) {
6024
6103
  compatibilityChecks.push(structuredClone(this.activeCodexIncompatibility));
6025
6104
  continue;
6026
6105
  }
6027
6106
  const currentVersions = [
6028
- ...new Set(this.adapters.flatMap((adapter) => {
6029
- const observation = adapter.compatibilitySurface?.();
6107
+ ...new Set([...this.adapters, ...this.compatibilityObservers].flatMap((observer) => {
6108
+ const observation = observer.compatibilitySurface?.();
6030
6109
  return observation?.surface === surface ? [observation.version] : [];
6031
6110
  })),
6032
6111
  ].sort((left, right) => left.localeCompare(right));