@origintrail-official/dkg-core 10.0.11 → 10.0.13

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 (63) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +29 -29
  3. package/dist/assertion-seal.js +46 -1
  4. package/dist/assertion-seal.js.map +1 -1
  5. package/dist/author-catalog-codec.d.ts +8 -20
  6. package/dist/author-catalog-codec.d.ts.map +1 -1
  7. package/dist/author-catalog-codec.js +33 -41
  8. package/dist/author-catalog-codec.js.map +1 -1
  9. package/dist/author-lane-scope-v1.d.ts +40 -0
  10. package/dist/author-lane-scope-v1.d.ts.map +1 -0
  11. package/dist/author-lane-scope-v1.js +168 -0
  12. package/dist/author-lane-scope-v1.js.map +1 -0
  13. package/dist/backpressure-observability.d.ts +273 -0
  14. package/dist/backpressure-observability.d.ts.map +1 -0
  15. package/dist/backpressure-observability.js +572 -0
  16. package/dist/backpressure-observability.js.map +1 -0
  17. package/dist/canonical-graph-scoped-author-seal.d.ts +2 -5
  18. package/dist/canonical-graph-scoped-author-seal.d.ts.map +1 -1
  19. package/dist/canonical-graph-scoped-author-seal.js +40 -32
  20. package/dist/canonical-graph-scoped-author-seal.js.map +1 -1
  21. package/dist/cg-shared-projection.d.ts.map +1 -1
  22. package/dist/cg-shared-projection.js +2 -10
  23. package/dist/cg-shared-projection.js.map +1 -1
  24. package/dist/genesis.js +15 -15
  25. package/dist/graph-knowledge-asset-metadata.js +106 -106
  26. package/dist/imported-artifact-metadata.js +31 -31
  27. package/dist/index.d.ts +5 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/ka-bundle-v1.d.ts +2 -0
  32. package/dist/ka-bundle-v1.d.ts.map +1 -1
  33. package/dist/ka-bundle-v1.js +7 -2
  34. package/dist/ka-bundle-v1.js.map +1 -1
  35. package/dist/ka-content-scope.d.ts +27 -0
  36. package/dist/ka-content-scope.d.ts.map +1 -1
  37. package/dist/ka-content-scope.js +43 -1
  38. package/dist/ka-content-scope.js.map +1 -1
  39. package/dist/ka-ual-identity.d.ts +33 -0
  40. package/dist/ka-ual-identity.d.ts.map +1 -0
  41. package/dist/ka-ual-identity.js +89 -0
  42. package/dist/ka-ual-identity.js.map +1 -0
  43. package/dist/message-stream-pool.d.ts +15 -0
  44. package/dist/message-stream-pool.d.ts.map +1 -1
  45. package/dist/message-stream-pool.js +23 -0
  46. package/dist/message-stream-pool.js.map +1 -1
  47. package/dist/protocol-router.d.ts +18 -0
  48. package/dist/protocol-router.d.ts.map +1 -1
  49. package/dist/protocol-router.js +96 -1
  50. package/dist/protocol-router.js.map +1 -1
  51. package/dist/swm-author-inventory-v1.d.ts +83 -0
  52. package/dist/swm-author-inventory-v1.d.ts.map +1 -0
  53. package/dist/swm-author-inventory-v1.js +379 -0
  54. package/dist/swm-author-inventory-v1.js.map +1 -0
  55. package/dist/telemetry-api.d.ts +76 -0
  56. package/dist/telemetry-api.d.ts.map +1 -1
  57. package/dist/telemetry-api.js +101 -0
  58. package/dist/telemetry-api.js.map +1 -1
  59. package/dist/vm-update-convergence.d.ts +277 -0
  60. package/dist/vm-update-convergence.d.ts.map +1 -0
  61. package/dist/vm-update-convergence.js +715 -0
  62. package/dist/vm-update-convergence.js.map +1 -0
  63. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  import { canonicalKnowledgeAssetAgentAddress, contextGraphLayerUri, } from './constants.js';
2
2
  import { assertSafeIri, isSafeIri } from './sparql-safe.js';
3
- import { assertNetworkIdV1, } from './sync-wire-identifiers.js';
3
+ import { assertCanonicalEvmAddress, } from './sync-wire-scalars.js';
4
+ import { MAX_NETWORK_ID_BYTES_V1, assertNetworkIdV1, } from './sync-wire-identifiers.js';
4
5
  /** Existing V10 KAs may be resolved through the quarantined read-only path. */
5
6
  export const LEGACY_ROOT_CONTENT_SCOPE_VERSION = 1;
6
7
  /** All newly-created and mutated KAs use one exact per-KA graph. */
@@ -20,6 +21,14 @@ const DETERMINISTIC_KA_UAL_RE = /^did:dkg:([^/]+)\/(0x[0-9a-fA-F]{40})\/([0-9]+)
20
21
  * through the packed identity are valid graph identities.
21
22
  */
22
23
  export const MAX_KNOWLEDGE_ASSET_NUMBER = (1n << 96n) - 1n;
24
+ export const MAX_CANONICAL_KNOWLEDGE_ASSET_NUMBER_DIGITS_V1 = MAX_KNOWLEDGE_ASSET_NUMBER.toString(10).length;
25
+ export const MAX_CANONICAL_DETERMINISTIC_UAL_BYTES_V1 = 'did:dkg:'.length
26
+ + MAX_NETWORK_ID_BYTES_V1
27
+ + '/'.length
28
+ + '0x'.length
29
+ + 40
30
+ + '/'.length
31
+ + MAX_CANONICAL_KNOWLEDGE_ASSET_NUMBER_DIGITS_V1;
23
32
  const MAX_PACKED_ROOTLESS_KNOWLEDGE_ASSET_ID = (1n << 256n) - 1n;
24
33
  const PACKED_ROOTLESS_KNOWLEDGE_ASSET_NUMBER_BITS = 96n;
25
34
  /**
@@ -29,6 +38,11 @@ const PACKED_ROOTLESS_KNOWLEDGE_ASSET_NUMBER_BITS = 96n;
29
38
  */
30
39
  export function parseDeterministicKnowledgeAssetUal(rawUal) {
31
40
  const input = String(rawUal ?? '').trim();
41
+ // Every canonical component is ASCII. Bound the full hostile scalar before
42
+ // IRI validation, regexp traversal, or BigInt parsing can allocate from it.
43
+ if (input.length > MAX_CANONICAL_DETERMINISTIC_UAL_BYTES_V1) {
44
+ throw new Error(`Graph-scoped KA UAL exceeds ${MAX_CANONICAL_DETERMINISTIC_UAL_BYTES_V1} bytes`);
45
+ }
32
46
  if (!isSafeIri(input)) {
33
47
  throw new Error(`Invalid graph-scoped KA UAL: ${input || '(empty)'}`);
34
48
  }
@@ -37,6 +51,12 @@ export function parseDeterministicKnowledgeAssetUal(rawUal) {
37
51
  throw new Error(`Graph-scoped KA UAL must match did:dkg:<chain>/<0x-author>/<number>: ${input}`);
38
52
  }
39
53
  const [, chainId, rawAgentAddress, rawKaNumber] = match;
54
+ if (chainId.length > MAX_NETWORK_ID_BYTES_V1) {
55
+ throw new Error(`Graph-scoped KA network exceeds ${MAX_NETWORK_ID_BYTES_V1} bytes`);
56
+ }
57
+ if (rawKaNumber.length > MAX_CANONICAL_KNOWLEDGE_ASSET_NUMBER_DIGITS_V1) {
58
+ throw new Error('Graph-scoped KA number exceeds the packed uint96 decimal width');
59
+ }
40
60
  const agentAddress = canonicalKnowledgeAssetAgentAddress(rawAgentAddress);
41
61
  // BigInt canonicalisation prevents leading-zero aliases for one graph.
42
62
  const kaNumberValue = BigInt(rawKaNumber);
@@ -51,6 +71,28 @@ export function parseDeterministicKnowledgeAssetUal(rawUal) {
51
71
  kaNumber,
52
72
  };
53
73
  }
74
+ /**
75
+ * Assert the exact deterministic KA wire identity without coupling callers to
76
+ * an author-seal codec. Unlike the lower-level canonicalizer, this refuses
77
+ * aliases and returns every parsed identity component in one pass.
78
+ */
79
+ export function assertCanonicalDeterministicUalV1(value) {
80
+ if (typeof value !== 'string') {
81
+ throw new Error('kaUal must be a string');
82
+ }
83
+ const parsed = parseDeterministicKnowledgeAssetUal(value);
84
+ assertNetworkIdV1(parsed.chainId, 'kaUal network');
85
+ assertCanonicalEvmAddress(parsed.agentAddress, 'kaUal author');
86
+ if (parsed.ual !== value) {
87
+ throw new Error('kaUal must already be in canonical form');
88
+ }
89
+ return Object.freeze({
90
+ ual: parsed.ual,
91
+ chainId: parsed.chainId,
92
+ agentAddress: parsed.agentAddress,
93
+ kaNumber: parsed.kaNumber,
94
+ });
95
+ }
54
96
  /**
55
97
  * Unpack the canonical rootless on-chain KA id into the same deterministic
56
98
  * identity used by graph-scoped content. Legacy sequential ids have no author
@@ -1 +1 @@
1
- {"version":3,"file":"ka-content-scope.js","sourceRoot":"","sources":["../src/ka-content-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ka-content-scope.js","sourceRoot":"","sources":["../src/ka-content-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /** `(1 << 96) - 1` — the rootless KA-number field width. */
2
+ export declare const MAX_ROOTLESS_KA_NUMBER_V1: bigint;
3
+ /** Upper bound of the on-chain id domain. */
4
+ export declare const MAX_KA_ID_V1: bigint;
5
+ export declare class KaUalIdentityError extends Error {
6
+ constructor(message: string, options?: {
7
+ cause?: unknown;
8
+ });
9
+ }
10
+ /**
11
+ * A canonical UAL chain id: optional lowercase namespace, canonical decimal tail.
12
+ *
13
+ * NOT the numeric EVM chain id. `ChainAdapter.chainId` is namespaced —
14
+ * `base:84532`, `otp:20430`, `evm:31337` — and its own doc comment says it is
15
+ * "not directly parseable with `BigInt()`".
16
+ */
17
+ export declare function assertCanonicalUalChainIdV1(value: unknown, label?: string): string;
18
+ /**
19
+ * Build the canonical UAL for a resolved on-chain KA id.
20
+ *
21
+ * The address is **normalized to lowercase**, not rejected for case. That is
22
+ * deliberate and is what a builder should do: the output is canonical either
23
+ * way, and the sole production caller passes an address straight from
24
+ * `getDKGKnowledgeAssetsAddress()`, which returns the checksummed form. The
25
+ * strictness belongs on the PARSE side — accepting a mixed-case address when
26
+ * turning a UAL back into candidates would make two spellings denote one KA —
27
+ * and that is enforced separately in `vm-update-convergence.ts`.
28
+ *
29
+ * Genuinely invalid input still fails: a non-address string, a negative id, an
30
+ * id above uint256, or a noncanonical chain id.
31
+ */
32
+ export declare function buildKnowledgeAssetUalFromOnChainIdV1(chainId: string, legacyStorageAddress: string, kaId: bigint): string;
33
+ //# sourceMappingURL=ka-ual-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ka-ual-identity.d.ts","sourceRoot":"","sources":["../src/ka-ual-identity.ts"],"names":[],"mappings":"AAiBA,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB,QAAmB,CAAC;AAC1D,6CAA6C;AAC7C,eAAO,MAAM,YAAY,QAAoB,CAAC;AAK9C,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI3D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAY,GAAG,MAAM,CAmBrF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,MAAM,GACX,MAAM,CAeR"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The single owner of the legacy/rootless Knowledge Asset UAL rule.
3
+ *
4
+ * V10 rootless KA ids pack the author address into the high 160 bits and the
5
+ * per-author KA number into the low 96 bits, so their canonical identity is
6
+ * author/number. Legacy sequential ids have no author bits and keep the older
7
+ * storage-contract/id form. Which branch applies is decided by `kaId >> 96n`.
8
+ *
9
+ * This lives in `core` because it is the lowest package that every consumer can
10
+ * reach: `agent → chain → core`. An earlier revision restated the rule inside
11
+ * `vm-update-convergence.ts` and guarded the copy with a cross-package parity
12
+ * test. That test does detect drift — but only after it exists, and it left two
13
+ * production implementations of one identity rule to keep in step. The rule now
14
+ * has one home and `buildReconciledKnowledgeAssetUal` delegates to it.
15
+ */
16
+ import { parseCanonicalDecimalU256 } from './sync-wire-scalars.js';
17
+ /** `(1 << 96) - 1` — the rootless KA-number field width. */
18
+ export const MAX_ROOTLESS_KA_NUMBER_V1 = (1n << 96n) - 1n;
19
+ /** Upper bound of the on-chain id domain. */
20
+ export const MAX_KA_ID_V1 = (1n << 256n) - 1n;
21
+ const EVM_ADDRESS_ANY_CASE = /^0x[0-9a-fA-F]{40}$/;
22
+ const CANONICAL_UNSIGNED_DECIMAL = /^(?:0|[1-9][0-9]*)$/;
23
+ export class KaUalIdentityError extends Error {
24
+ constructor(message, options) {
25
+ super(message, options);
26
+ this.name = 'KaUalIdentityError';
27
+ }
28
+ }
29
+ /**
30
+ * A canonical UAL chain id: optional lowercase namespace, canonical decimal tail.
31
+ *
32
+ * NOT the numeric EVM chain id. `ChainAdapter.chainId` is namespaced —
33
+ * `base:84532`, `otp:20430`, `evm:31337` — and its own doc comment says it is
34
+ * "not directly parseable with `BigInt()`".
35
+ */
36
+ export function assertCanonicalUalChainIdV1(value, label = 'chainId') {
37
+ if (typeof value !== 'string' || value.length === 0 || value.length > 256) {
38
+ throw new KaUalIdentityError(`${label} must be a nonempty string`);
39
+ }
40
+ const separator = value.lastIndexOf(':');
41
+ const namespace = separator === -1 ? '' : value.slice(0, separator);
42
+ const decimal = separator === -1 ? value : value.slice(separator + 1);
43
+ if (separator !== -1 && !/^[a-z][a-z0-9-]*(?::[a-z0-9-]+)*$/.test(namespace)) {
44
+ throw new KaUalIdentityError(`${label} namespace must be lowercase alphanumeric`);
45
+ }
46
+ if (!CANONICAL_UNSIGNED_DECIMAL.test(decimal)) {
47
+ throw new KaUalIdentityError(`${label} must end in a canonical decimal chain number`);
48
+ }
49
+ try {
50
+ parseCanonicalDecimalU256(decimal, label);
51
+ }
52
+ catch (cause) {
53
+ throw new KaUalIdentityError(`${label} is not a canonical u256 chain number`, { cause });
54
+ }
55
+ return value;
56
+ }
57
+ /**
58
+ * Build the canonical UAL for a resolved on-chain KA id.
59
+ *
60
+ * The address is **normalized to lowercase**, not rejected for case. That is
61
+ * deliberate and is what a builder should do: the output is canonical either
62
+ * way, and the sole production caller passes an address straight from
63
+ * `getDKGKnowledgeAssetsAddress()`, which returns the checksummed form. The
64
+ * strictness belongs on the PARSE side — accepting a mixed-case address when
65
+ * turning a UAL back into candidates would make two spellings denote one KA —
66
+ * and that is enforced separately in `vm-update-convergence.ts`.
67
+ *
68
+ * Genuinely invalid input still fails: a non-address string, a negative id, an
69
+ * id above uint256, or a noncanonical chain id.
70
+ */
71
+ export function buildKnowledgeAssetUalFromOnChainIdV1(chainId, legacyStorageAddress, kaId) {
72
+ const canonicalChain = assertCanonicalUalChainIdV1(chainId, 'ual chainId');
73
+ if (typeof legacyStorageAddress !== 'string' || !EVM_ADDRESS_ANY_CASE.test(legacyStorageAddress)) {
74
+ throw new KaUalIdentityError('ual storage address must be a 20-byte 0x EVM address');
75
+ }
76
+ if (typeof kaId !== 'bigint')
77
+ throw new KaUalIdentityError('kaId must be a bigint');
78
+ if (kaId < 0n)
79
+ throw new KaUalIdentityError('kaId must not be negative');
80
+ if (kaId > MAX_KA_ID_V1)
81
+ throw new KaUalIdentityError('kaId exceeds uint256');
82
+ if (kaId >> 96n === 0n) {
83
+ return `did:dkg:${canonicalChain}/${legacyStorageAddress.toLowerCase()}/${kaId.toString()}`;
84
+ }
85
+ const authorAddress = `0x${(kaId >> 96n).toString(16).padStart(40, '0')}`;
86
+ const kaNumber = kaId & MAX_ROOTLESS_KA_NUMBER_V1;
87
+ return `did:dkg:${canonicalChain}/${authorAddress}/${kaNumber.toString()}`;
88
+ }
89
+ //# sourceMappingURL=ka-ual-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ka-ual-identity.js","sourceRoot":"","sources":["../src/ka-ual-identity.ts"],"names":[],"mappings":"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"}
@@ -286,6 +286,21 @@ export declare class MessageStreamPool {
286
286
  size(): number;
287
287
  /** Diagnostics: per-peer state snapshot. */
288
288
  stats(peerIdStr: string): PerPeerStats | undefined;
289
+ /**
290
+ * Close the stream held for `peerIdStr` once it is quiescent.
291
+ * Returns `true` when a live stream existed and was closed;
292
+ * `false` when the peer holds no stream OR the stream still has
293
+ * in-flight / queued work.
294
+ *
295
+ * The busy case is deliberately left alone rather than force-
296
+ * aborted: rejecting live requests here would reproduce the exact
297
+ * all-in-flight-requests-die failure the caller is trying to route
298
+ * around. Callers that want the stream gone stop feeding it new
299
+ * sends and invoke this again on their next pass — an active
300
+ * stream drains naturally (or hits the pool's own idle/reset
301
+ * teardown) and the retire lands then.
302
+ */
303
+ closePeerIfIdle(peerIdStr: string, reason?: string): Promise<boolean>;
289
304
  /**
290
305
  * Close every pooled stream and reject all pending requests.
291
306
  * Safe to call multiple times. After close, further `send()` calls
@@ -1 +1 @@
1
- {"version":3,"file":"message-stream-pool.d.ts","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-stream-pool.d.ts","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
@@ -372,6 +372,29 @@ export class MessageStreamPool {
372
372
  lastActivityAgoMs: now - state.lastActivityAt,
373
373
  };
374
374
  }
375
+ /**
376
+ * Close the stream held for `peerIdStr` once it is quiescent.
377
+ * Returns `true` when a live stream existed and was closed;
378
+ * `false` when the peer holds no stream OR the stream still has
379
+ * in-flight / queued work.
380
+ *
381
+ * The busy case is deliberately left alone rather than force-
382
+ * aborted: rejecting live requests here would reproduce the exact
383
+ * all-in-flight-requests-die failure the caller is trying to route
384
+ * around. Callers that want the stream gone stop feeding it new
385
+ * sends and invoke this again on their next pass — an active
386
+ * stream drains naturally (or hits the pool's own idle/reset
387
+ * teardown) and the retire lands then.
388
+ */
389
+ async closePeerIfIdle(peerIdStr, reason = 'peer stream retired') {
390
+ const state = this.peers.get(peerIdStr);
391
+ if (!state || state.closed)
392
+ return false;
393
+ if (state.inFlight !== null || state.queue.length > 0)
394
+ return false;
395
+ await this.closePeer(state, reason);
396
+ return true;
397
+ }
375
398
  /**
376
399
  * Close every pooled stream and reject all pending requests.
377
400
  * Safe to call multiple times. After close, further `send()` calls
@@ -1 +1 @@
1
- {"version":3,"file":"message-stream-pool.js","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-stream-pool.js","sourceRoot":"","sources":["../src/message-stream-pool.ts"],"names":[],"mappings":"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"}
@@ -212,6 +212,24 @@ export declare class ProtocolRouter {
212
212
  unregister(protocolId: string): void;
213
213
  send(peerIdStr: string, protocolId: string, data: Uint8Array, timeoutMsOrOpts?: number | SendOptions): Promise<Uint8Array>;
214
214
  private sendInner;
215
+ /**
216
+ * True when the peer currently has at least one OPEN connection and
217
+ * every one of them rides a circuit relay. Three shapes:
218
+ *
219
+ * * a direct connection is present → false (pooling is safe);
220
+ * * open connections exist, all relayed → true;
221
+ * * no open connections at all → false — nothing observed yet, so
222
+ * the caller keeps its existing behavior rather than penalizing
223
+ * a cold peer for connections it doesn't have.
224
+ *
225
+ * Walks the RAW connection table and filters by `remotePeer`
226
+ * ourselves — same Window D rationale as the one-shot fast path
227
+ * (libp2p's peerId-keyed lookup can return `[]` while the raw walk
228
+ * shows live matching connections). Matching is by peerId string:
229
+ * the router, the pool, and libp2p's `PeerId.toString()` all use
230
+ * the same canonical text form as the peer key.
231
+ */
232
+ private peerHasOnlyRelayedConnections;
215
233
  }
216
234
  /**
217
235
  * "Window D" workaround — attempts to open `protocolId` on an EXISTING
@@ -1 +1 @@
1
- {"version":3,"file":"protocol-router.d.ts","sourceRoot":"","sources":["../src/protocol-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol-router.d.ts","sourceRoot":"","sources":["../src/protocol-router.ts"],"names":[],"mappings":"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"}
@@ -468,7 +468,37 @@ export class ProtocolRouter {
468
468
  // is exhausted.
469
469
  const overlay = this.pooledByLogical.get(protocolId);
470
470
  const memoizedVariant = this.peerWireVariantFor(peerIdStr, protocolId);
471
- if (overlay && memoizedVariant !== 'one-shot') {
471
+ // Relay-only gate for the pooled wire. The pooled variant
472
+ // multiplexes every request for a peer onto ONE long-lived
473
+ // substream; over a circuit-relay connection that substream's
474
+ // life is bounded by the relay's reservation churn (~300 s), and
475
+ // one request timeout aborts the shared stream — rejecting every
476
+ // in-flight and queued request at once. Observed on a 10.0.12
477
+ // Base-mainnet edge node (2026-08-06): sync to a NAT-only peer
478
+ // reachable exclusively via circuit relays died 4/4 with "pooled
479
+ // stream reset: request aborted/timeout" while one-shot streams
480
+ // to the same peer succeeded immediately. So: use the pool only
481
+ // when the peer has at least one DIRECT connection. Re-evaluated
482
+ // per send — a later direct connection (e.g. DCUtR upgrade)
483
+ // re-enables the pool with no memo to clear, and a pool stream
484
+ // already held for a now-relay-only peer is retired once
485
+ // quiescent instead of being reused. Cold peers (no connections
486
+ // at all) keep the pooled path: there is no relayed connection
487
+ // to observe yet and the pool's own dial may come up direct.
488
+ // Requester-side selection only — responders that don't
489
+ // advertise the pooled wire already fall back via
490
+ // multistream-select.
491
+ let usePooledWire = overlay !== undefined && memoizedVariant !== 'one-shot';
492
+ if (usePooledWire && overlay && this.peerHasOnlyRelayedConnections(peerIdStr)) {
493
+ usePooledWire = false;
494
+ // Fire-and-forget: retiring the held stream must not delay or
495
+ // fail this send; if the stream is still busy the retire is a
496
+ // no-op and a later send's pass lands it once drained.
497
+ overlay.pool
498
+ .closePeerIfIdle(peerIdStr, 'relay-only peer: pooled wire bypassed')
499
+ .catch(() => undefined);
500
+ }
501
+ if (overlay && usePooledWire) {
472
502
  try {
473
503
  const remainingForPool = Math.max(0, timeoutMs - (Date.now() - overallStartedAt));
474
504
  const response = await overlay.pool.send(peerIdStr, data, {
@@ -839,6 +869,71 @@ export class ProtocolRouter {
839
869
  }
840
870
  throw lastErr;
841
871
  }
872
+ /**
873
+ * True when the peer currently has at least one OPEN connection and
874
+ * every one of them rides a circuit relay. Three shapes:
875
+ *
876
+ * * a direct connection is present → false (pooling is safe);
877
+ * * open connections exist, all relayed → true;
878
+ * * no open connections at all → false — nothing observed yet, so
879
+ * the caller keeps its existing behavior rather than penalizing
880
+ * a cold peer for connections it doesn't have.
881
+ *
882
+ * Walks the RAW connection table and filters by `remotePeer`
883
+ * ourselves — same Window D rationale as the one-shot fast path
884
+ * (libp2p's peerId-keyed lookup can return `[]` while the raw walk
885
+ * shows live matching connections). Matching is by peerId string:
886
+ * the router, the pool, and libp2p's `PeerId.toString()` all use
887
+ * the same canonical text form as the peer key.
888
+ */
889
+ peerHasOnlyRelayedConnections(peerIdStr) {
890
+ let all;
891
+ try {
892
+ all = this.node.libp2p.getConnections();
893
+ }
894
+ catch {
895
+ return false;
896
+ }
897
+ let sawOpenRelayed = false;
898
+ for (const conn of all) {
899
+ let matches = false;
900
+ try {
901
+ matches = conn.remotePeer?.toString() === peerIdStr;
902
+ }
903
+ catch {
904
+ matches = false;
905
+ }
906
+ if (!matches)
907
+ continue;
908
+ if (conn.status && conn.status !== 'open')
909
+ continue;
910
+ if (!isRelayedConnection(conn))
911
+ return false;
912
+ sawOpenRelayed = true;
913
+ }
914
+ return sawOpenRelayed;
915
+ }
916
+ }
917
+ /**
918
+ * True when the connection reaches the peer via a circuit relay.
919
+ * `remoteAddr` containing the `/p2p-circuit` component is the
920
+ * authoritative signal — a direct connection's remote address never
921
+ * carries it. Fall back to libp2p's limited-connection marker when
922
+ * the address is unavailable (limited ⇒ circuit-relay-v2 in our
923
+ * transport set); absent both signals, classify as direct so the
924
+ * caller defaults to the status quo.
925
+ */
926
+ function isRelayedConnection(conn) {
927
+ try {
928
+ const addr = conn.remoteAddr?.toString();
929
+ if (typeof addr === 'string' && addr.length > 0) {
930
+ return addr.includes('/p2p-circuit');
931
+ }
932
+ }
933
+ catch {
934
+ // fall through to the limits marker
935
+ }
936
+ return Boolean(conn.limits);
842
937
  }
843
938
  // Minimal shape we depend on from libp2p — the real `Libp2p` type
844
939
  // is much richer but using a structural subset lets the unit test