@origintrail-official/dkg-agent 10.0.21 → 10.0.23

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 (207) hide show
  1. package/dist/approved-private-replica-proof-runs.d.ts +40 -0
  2. package/dist/approved-private-replica-proof-runs.d.ts.map +1 -0
  3. package/dist/approved-private-replica-proof-runs.js +49 -0
  4. package/dist/approved-private-replica-proof-runs.js.map +1 -0
  5. package/dist/approved-private-replica.d.ts +18 -1
  6. package/dist/approved-private-replica.d.ts.map +1 -1
  7. package/dist/approved-private-replica.js +9 -3
  8. package/dist/approved-private-replica.js.map +1 -1
  9. package/dist/context-graph-chain-discovery-binding.d.ts +2 -0
  10. package/dist/context-graph-chain-discovery-binding.d.ts.map +1 -1
  11. package/dist/context-graph-chain-discovery-binding.js +7 -0
  12. package/dist/context-graph-chain-discovery-binding.js.map +1 -1
  13. package/dist/context-graph-dormant-identity.d.ts +8 -0
  14. package/dist/context-graph-dormant-identity.d.ts.map +1 -0
  15. package/dist/context-graph-dormant-identity.js +48 -0
  16. package/dist/context-graph-dormant-identity.js.map +1 -0
  17. package/dist/context-graph-meta-projection.d.ts +19 -55
  18. package/dist/context-graph-meta-projection.d.ts.map +1 -1
  19. package/dist/context-graph-meta-projection.js +94 -46
  20. package/dist/context-graph-meta-projection.js.map +1 -1
  21. package/dist/context-graph-name-binding-target.d.ts +21 -0
  22. package/dist/context-graph-name-binding-target.d.ts.map +1 -0
  23. package/dist/context-graph-name-binding-target.js +68 -0
  24. package/dist/context-graph-name-binding-target.js.map +1 -0
  25. package/dist/context-graph-persisted-name-aliases.d.ts +47 -0
  26. package/dist/context-graph-persisted-name-aliases.d.ts.map +1 -0
  27. package/dist/context-graph-persisted-name-aliases.js +173 -0
  28. package/dist/context-graph-persisted-name-aliases.js.map +1 -0
  29. package/dist/context-graph-read-authority.d.ts +26 -11
  30. package/dist/context-graph-read-authority.d.ts.map +1 -1
  31. package/dist/context-graph-read-authority.js +26 -2
  32. package/dist/context-graph-read-authority.js.map +1 -1
  33. package/dist/context-graph-subscription-authority-recovery.d.ts +4 -0
  34. package/dist/context-graph-subscription-authority-recovery.d.ts.map +1 -1
  35. package/dist/context-graph-subscription-authority-recovery.js +8 -2
  36. package/dist/context-graph-subscription-authority-recovery.js.map +1 -1
  37. package/dist/context-graph-subscription-policy.d.ts +34 -1
  38. package/dist/context-graph-subscription-policy.d.ts.map +1 -1
  39. package/dist/context-graph-subscription-policy.js +143 -1
  40. package/dist/context-graph-subscription-policy.js.map +1 -1
  41. package/dist/curator-meta-refresh.d.ts.map +1 -1
  42. package/dist/curator-meta-refresh.js +31 -9
  43. package/dist/curator-meta-refresh.js.map +1 -1
  44. package/dist/dkg-agent-base.d.ts.map +1 -1
  45. package/dist/dkg-agent-base.js +0 -1
  46. package/dist/dkg-agent-base.js.map +1 -1
  47. package/dist/dkg-agent-cg-name-resolution.d.ts +6 -24
  48. package/dist/dkg-agent-cg-name-resolution.d.ts.map +1 -1
  49. package/dist/dkg-agent-cg-name-resolution.js +42 -58
  50. package/dist/dkg-agent-cg-name-resolution.js.map +1 -1
  51. package/dist/dkg-agent-cg-on-chain-id.d.ts +3 -3
  52. package/dist/dkg-agent-cg-on-chain-id.d.ts.map +1 -1
  53. package/dist/dkg-agent-cg-on-chain-id.js +7 -23
  54. package/dist/dkg-agent-cg-on-chain-id.js.map +1 -1
  55. package/dist/dkg-agent-cg-registry.d.ts +7 -3
  56. package/dist/dkg-agent-cg-registry.d.ts.map +1 -1
  57. package/dist/dkg-agent-cg-registry.js +30 -16
  58. package/dist/dkg-agent-cg-registry.js.map +1 -1
  59. package/dist/dkg-agent-cg-resolve.d.ts +10 -6
  60. package/dist/dkg-agent-cg-resolve.d.ts.map +1 -1
  61. package/dist/dkg-agent-cg-resolve.js +16 -19
  62. package/dist/dkg-agent-cg-resolve.js.map +1 -1
  63. package/dist/dkg-agent-context-graph.d.ts.map +1 -1
  64. package/dist/dkg-agent-context-graph.js +0 -4
  65. package/dist/dkg-agent-context-graph.js.map +1 -1
  66. package/dist/dkg-agent-crypto.d.ts.map +1 -1
  67. package/dist/dkg-agent-crypto.js +53 -57
  68. package/dist/dkg-agent-crypto.js.map +1 -1
  69. package/dist/dkg-agent-lifecycle.d.ts +5 -0
  70. package/dist/dkg-agent-lifecycle.d.ts.map +1 -1
  71. package/dist/dkg-agent-lifecycle.js +156 -133
  72. package/dist/dkg-agent-lifecycle.js.map +1 -1
  73. package/dist/dkg-agent-publish.d.ts.map +1 -1
  74. package/dist/dkg-agent-publish.js +2 -3
  75. package/dist/dkg-agent-publish.js.map +1 -1
  76. package/dist/dkg-agent-query.d.ts.map +1 -1
  77. package/dist/dkg-agent-query.js +12 -9
  78. package/dist/dkg-agent-query.js.map +1 -1
  79. package/dist/dkg-agent-registered-private-empty-vm.d.ts +8 -0
  80. package/dist/dkg-agent-registered-private-empty-vm.d.ts.map +1 -1
  81. package/dist/dkg-agent-registered-private-empty-vm.js +15 -0
  82. package/dist/dkg-agent-registered-private-empty-vm.js.map +1 -1
  83. package/dist/dkg-agent-rfc64-catalog-auto-publish.d.ts.map +1 -1
  84. package/dist/dkg-agent-rfc64-catalog-auto-publish.js +4 -0
  85. package/dist/dkg-agent-rfc64-catalog-auto-publish.js.map +1 -1
  86. package/dist/dkg-agent-rfc64-catalog-upsert.d.ts.map +1 -1
  87. package/dist/dkg-agent-rfc64-catalog-upsert.js +7 -0
  88. package/dist/dkg-agent-rfc64-catalog-upsert.js.map +1 -1
  89. package/dist/dkg-agent-rfc64-catalog.d.ts +4 -0
  90. package/dist/dkg-agent-rfc64-catalog.d.ts.map +1 -1
  91. package/dist/dkg-agent-rfc64-catalog.js +12 -2
  92. package/dist/dkg-agent-rfc64-catalog.js.map +1 -1
  93. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts +2 -1
  94. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.d.ts.map +1 -1
  95. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js +23 -15
  96. package/dist/dkg-agent-rfc64-swm-catalog-projection-supervisor.js.map +1 -1
  97. package/dist/dkg-agent-rfc64-swm-catalog-projection.d.ts.map +1 -1
  98. package/dist/dkg-agent-rfc64-swm-catalog-projection.js +3 -0
  99. package/dist/dkg-agent-rfc64-swm-catalog-projection.js.map +1 -1
  100. package/dist/dkg-agent-swm-host.d.ts +13 -22
  101. package/dist/dkg-agent-swm-host.d.ts.map +1 -1
  102. package/dist/dkg-agent-swm-host.js +179 -81
  103. package/dist/dkg-agent-swm-host.js.map +1 -1
  104. package/dist/dkg-agent-swm-substrate.d.ts +2 -0
  105. package/dist/dkg-agent-swm-substrate.d.ts.map +1 -1
  106. package/dist/dkg-agent-swm-substrate.js +5 -9
  107. package/dist/dkg-agent-swm-substrate.js.map +1 -1
  108. package/dist/dkg-agent-types.d.ts +3 -2
  109. package/dist/dkg-agent-types.d.ts.map +1 -1
  110. package/dist/dkg-agent.d.ts +4 -10
  111. package/dist/dkg-agent.d.ts.map +1 -1
  112. package/dist/dkg-agent.js +43 -58
  113. package/dist/dkg-agent.js.map +1 -1
  114. package/dist/index.d.ts +1 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts +6 -1
  118. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.d.ts.map +1 -1
  119. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js +5 -5
  120. package/dist/internal/context-graph-authority/context-graph-agent-gate-authority.js.map +1 -1
  121. package/dist/internal/context-graph-authority/context-graph-authority.d.ts +14 -1
  122. package/dist/internal/context-graph-authority/context-graph-authority.d.ts.map +1 -1
  123. package/dist/internal/context-graph-authority/context-graph-authority.js +19 -0
  124. package/dist/internal/context-graph-authority/context-graph-authority.js.map +1 -1
  125. package/dist/internal/context-graph-cache-invalidating-store.d.ts +10 -2
  126. package/dist/internal/context-graph-cache-invalidating-store.d.ts.map +1 -1
  127. package/dist/internal/context-graph-cache-invalidating-store.js +67 -67
  128. package/dist/internal/context-graph-cache-invalidating-store.js.map +1 -1
  129. package/dist/internal/context-graph-meta-record-copy.d.ts +1 -1
  130. package/dist/internal/context-graph-meta-record-copy.d.ts.map +1 -1
  131. package/dist/internal/context-graph-meta-record.d.ts +40 -0
  132. package/dist/internal/context-graph-meta-record.d.ts.map +1 -0
  133. package/dist/internal/context-graph-meta-record.js +3 -0
  134. package/dist/internal/context-graph-meta-record.js.map +1 -0
  135. package/dist/internal/peer-gate-revision.d.ts +28 -0
  136. package/dist/internal/peer-gate-revision.d.ts.map +1 -0
  137. package/dist/internal/peer-gate-revision.js +46 -0
  138. package/dist/internal/peer-gate-revision.js.map +1 -0
  139. package/dist/internal/projection-mutation-observer.d.ts +5 -0
  140. package/dist/internal/projection-mutation-observer.d.ts.map +1 -0
  141. package/dist/internal/projection-mutation-observer.js +24 -0
  142. package/dist/internal/projection-mutation-observer.js.map +1 -0
  143. package/dist/internal/promote/assertion-promote-precommit.d.ts +8 -6
  144. package/dist/internal/promote/assertion-promote-precommit.d.ts.map +1 -1
  145. package/dist/internal/promote/assertion-promote-precommit.js +8 -6
  146. package/dist/internal/promote/assertion-promote-precommit.js.map +1 -1
  147. package/dist/internal/recipient-key-route-fence.d.ts +57 -0
  148. package/dist/internal/recipient-key-route-fence.d.ts.map +1 -0
  149. package/dist/internal/recipient-key-route-fence.js +169 -0
  150. package/dist/internal/recipient-key-route-fence.js.map +1 -0
  151. package/dist/internal/store-mutation.d.ts +28 -0
  152. package/dist/internal/store-mutation.d.ts.map +1 -0
  153. package/dist/internal/store-mutation.js +3 -0
  154. package/dist/internal/store-mutation.js.map +1 -0
  155. package/dist/main-thread-time-slice.d.ts +19 -0
  156. package/dist/main-thread-time-slice.d.ts.map +1 -0
  157. package/dist/main-thread-time-slice.js +32 -0
  158. package/dist/main-thread-time-slice.js.map +1 -0
  159. package/dist/p2p/storage-ack-registrar.d.ts.map +1 -1
  160. package/dist/p2p/storage-ack-registrar.js +3 -5
  161. package/dist/p2p/storage-ack-registrar.js.map +1 -1
  162. package/dist/registered-context-graph-authority.d.ts +17 -0
  163. package/dist/registered-context-graph-authority.d.ts.map +1 -1
  164. package/dist/registered-private-empty-vm-attempt-v1.d.ts.map +1 -1
  165. package/dist/registered-private-empty-vm-attempt-v1.js +8 -4
  166. package/dist/registered-private-empty-vm-attempt-v1.js.map +1 -1
  167. package/dist/rfc64/catalog-repair-retry-v1.d.ts +9 -3
  168. package/dist/rfc64/catalog-repair-retry-v1.d.ts.map +1 -1
  169. package/dist/rfc64/catalog-repair-retry-v1.js +22 -6
  170. package/dist/rfc64/catalog-repair-retry-v1.js.map +1 -1
  171. package/dist/rfc64/control-envelope-signer-v1.d.ts +8 -0
  172. package/dist/rfc64/control-envelope-signer-v1.d.ts.map +1 -1
  173. package/dist/rfc64/control-envelope-signer-v1.js +20 -0
  174. package/dist/rfc64/control-envelope-signer-v1.js.map +1 -1
  175. package/dist/rfc64/legacy-swm-boundary-fence-v1.d.ts +109 -0
  176. package/dist/rfc64/legacy-swm-boundary-fence-v1.d.ts.map +1 -0
  177. package/dist/rfc64/legacy-swm-boundary-fence-v1.js +236 -0
  178. package/dist/rfc64/legacy-swm-boundary-fence-v1.js.map +1 -0
  179. package/dist/rfc64/legacy-swm-boundary-v1.d.ts +28 -1
  180. package/dist/rfc64/legacy-swm-boundary-v1.d.ts.map +1 -1
  181. package/dist/rfc64/legacy-swm-boundary-v1.js +74 -145
  182. package/dist/rfc64/legacy-swm-boundary-v1.js.map +1 -1
  183. package/dist/rfc64/public-catalog-successor-producer-v1.d.ts +2 -0
  184. package/dist/rfc64/public-catalog-successor-producer-v1.d.ts.map +1 -1
  185. package/dist/rfc64/public-catalog-successor-producer-v1.js +77 -33
  186. package/dist/rfc64/public-catalog-successor-producer-v1.js.map +1 -1
  187. package/dist/rfc64/public-catalog-successor-row-binding-v1.d.ts +16 -0
  188. package/dist/rfc64/public-catalog-successor-row-binding-v1.d.ts.map +1 -0
  189. package/dist/rfc64/public-catalog-successor-row-binding-v1.js +28 -0
  190. package/dist/rfc64/public-catalog-successor-row-binding-v1.js.map +1 -0
  191. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts +6 -0
  192. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.d.ts.map +1 -1
  193. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js +9 -3
  194. package/dist/rfc64/swm-inventory-catalog-reconciler-v1.js.map +1 -1
  195. package/dist/rfc64/swm-inventory-settlement-outlook-v1.d.ts +8 -0
  196. package/dist/rfc64/swm-inventory-settlement-outlook-v1.d.ts.map +1 -0
  197. package/dist/rfc64/swm-inventory-settlement-outlook-v1.js +32 -0
  198. package/dist/rfc64/swm-inventory-settlement-outlook-v1.js.map +1 -0
  199. package/dist/sync/requester/swm-recovery-apply.d.ts +1 -1
  200. package/dist/sync/requester/swm-recovery-apply.d.ts.map +1 -1
  201. package/dist/sync/requester/swm-recovery-apply.js +0 -1
  202. package/dist/sync/requester/swm-recovery-apply.js.map +1 -1
  203. package/dist/sync/requester/swm-target-executor.d.ts +2 -2
  204. package/dist/sync/requester/swm-target-executor.d.ts.map +1 -1
  205. package/dist/sync/requester/swm-target-executor.js +1 -2
  206. package/dist/sync/requester/swm-target-executor.js.map +1 -1
  207. package/package.json +11 -8
@@ -0,0 +1,40 @@
1
+ import { type ApprovedPrivateReplicaAuthorityResolution } from './approved-private-replica.js';
2
+ import type { DKGAgent } from './dkg-agent.js';
3
+ /** Runs of the local proof one decision may use: the first and two more. */
4
+ export declare const APPROVED_PRIVATE_REPLICA_PROOF_MAX_RUNS = 3;
5
+ /** Why a run said nothing about the member, so the proof may run again. */
6
+ export type ApprovedPrivateReplicaProofRerunCause = 'metadata-moved' | 'timeout';
7
+ export type ApprovedPrivateReplicaProofOutcome = Readonly<{
8
+ kind: 'proved';
9
+ resolution: ApprovedPrivateReplicaAuthorityResolution;
10
+ }>
11
+ /** A run read unmoved metadata to the end and found no current proof. */
12
+ | Readonly<{
13
+ kind: 'absent';
14
+ }>
15
+ /** Every run was discarded because the graph's metadata moved while it read. */
16
+ | Readonly<{
17
+ kind: 'metadata-moved';
18
+ }>;
19
+ /**
20
+ * Run the approved member's local proof for one decision, and run it again
21
+ * where a run said nothing about the member: its time limit ended it, or the
22
+ * graph's metadata revision moved under reads that otherwise all held.
23
+ *
24
+ * Nothing is relaxed. Each run is the complete proof under its own time limit
25
+ * and its own revision fence, the approval is read again before each run, and
26
+ * every run is held to the request generation the first one read. A run that
27
+ * finds anything else (no approval, another generation, a pending registration,
28
+ * a failed read) ends the decision exactly as a single run does: `absent`, or
29
+ * the error it threw. So does the last permitted run, whatever its cause.
30
+ */
31
+ export declare function resolveApprovedPrivateReplicaAuthorityWithinRuns(agent: DKGAgent, contextGraphId: string, approvedAgentAddress: string, fences: {
32
+ readonly approvalStillHolds: () => boolean;
33
+ readonly readMetadataRevision: () => string;
34
+ }, options: {
35
+ readonly timeoutMs: number;
36
+ readonly signal?: AbortSignal;
37
+ /** Told before each further run, for the log. */
38
+ readonly onRerun?: (cause: ApprovedPrivateReplicaProofRerunCause, run: number) => void;
39
+ }): Promise<ApprovedPrivateReplicaProofOutcome>;
40
+ //# sourceMappingURL=approved-private-replica-proof-runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approved-private-replica-proof-runs.d.ts","sourceRoot":"","sources":["../src/approved-private-replica-proof-runs.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,yCAAyC,EAC/C,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,uCAAuC,IAAI,CAAC;AAEzD,2EAA2E;AAC3E,MAAM,MAAM,qCAAqC,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEjF,MAAM,MAAM,kCAAkC,GAC1C,QAAQ,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,yCAAyC,CAAA;CAAE,CAAC;AACrF,yEAAyE;GACvE,QAAQ,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC9B,gFAAgF;GAC9E,QAAQ,CAAC;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAsB,gDAAgD,CACpE,KAAK,EAAE,QAAQ,EACf,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE;IACN,QAAQ,CAAC,kBAAkB,EAAE,MAAM,OAAO,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,MAAM,CAAC;CAC7C,EACD,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qCAAqC,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACxF,GACA,OAAO,CAAC,kCAAkC,CAAC,CAsC7C"}
@@ -0,0 +1,49 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { resolveApprovedPrivateReplicaAuthority, } from './approved-private-replica.js';
3
+ import { isBoundedOperationTimeoutError, runBoundedOperation } from './bounded-operation.js';
4
+ /** Runs of the local proof one decision may use: the first and two more. */
5
+ export const APPROVED_PRIVATE_REPLICA_PROOF_MAX_RUNS = 3;
6
+ /**
7
+ * Run the approved member's local proof for one decision, and run it again
8
+ * where a run said nothing about the member: its time limit ended it, or the
9
+ * graph's metadata revision moved under reads that otherwise all held.
10
+ *
11
+ * Nothing is relaxed. Each run is the complete proof under its own time limit
12
+ * and its own revision fence, the approval is read again before each run, and
13
+ * every run is held to the request generation the first one read. A run that
14
+ * finds anything else (no approval, another generation, a pending registration,
15
+ * a failed read) ends the decision exactly as a single run does: `absent`, or
16
+ * the error it threw. So does the last permitted run, whatever its cause.
17
+ */
18
+ export async function resolveApprovedPrivateReplicaAuthorityWithinRuns(agent, contextGraphId, approvedAgentAddress, fences, options) {
19
+ let requestGeneration;
20
+ const acceptsRequestGeneration = (observed) => ((requestGeneration ??= observed) === observed);
21
+ for (let run = 1;; run += 1) {
22
+ const metadataRevision = fences.readMetadataRevision();
23
+ let metadataMoved = false;
24
+ let timeout;
25
+ try {
26
+ const resolution = await runBoundedOperation((signal) => resolveApprovedPrivateReplicaAuthority(agent, contextGraphId, approvedAgentAddress, fences.approvalStillHolds, () => fences.readMetadataRevision() === metadataRevision, signal, { acceptsRequestGeneration, metadataMoved: () => { metadataMoved = true; } }), {
27
+ label: `resolveApprovedPrivateReplicaAuthority(${contextGraphId})`,
28
+ timeoutMs: options.timeoutMs,
29
+ signal: options.signal,
30
+ });
31
+ if (resolution !== null)
32
+ return { kind: 'proved', resolution };
33
+ if (!metadataMoved)
34
+ return { kind: 'absent' };
35
+ }
36
+ catch (error) {
37
+ if (!isBoundedOperationTimeoutError(error))
38
+ throw error;
39
+ timeout = error;
40
+ }
41
+ if (run >= APPROVED_PRIVATE_REPLICA_PROOF_MAX_RUNS || !fences.approvalStillHolds()) {
42
+ if (timeout !== undefined)
43
+ throw timeout;
44
+ return { kind: 'metadata-moved' };
45
+ }
46
+ options.onRerun?.(timeout === undefined ? 'metadata-moved' : 'timeout', run + 1);
47
+ }
48
+ }
49
+ //# sourceMappingURL=approved-private-replica-proof-runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approved-private-replica-proof-runs.js","sourceRoot":"","sources":["../src/approved-private-replica-proof-runs.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,sCAAsC,GAEvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7F,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC;AAYzD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gDAAgD,CACpE,KAAe,EACf,cAAsB,EACtB,oBAA4B,EAC5B,MAGC,EACD,OAKC;IAED,IAAI,iBAAqC,CAAC;IAC1C,MAAM,wBAAwB,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,CAC9D,CAAC,iBAAiB,KAAK,QAAQ,CAAC,KAAK,QAAQ,CAC9C,CAAC;IACF,KAAK,IAAI,GAAG,GAAG,CAAC,GAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACvD,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,sCAAsC,CAChD,KAAK,EACL,cAAc,EACd,oBAAoB,EACpB,MAAM,CAAC,kBAAkB,EACzB,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,KAAK,gBAAgB,EACxD,MAAM,EACN,EAAE,wBAAwB,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAC7E,EACD;gBACE,KAAK,EAAE,0CAA0C,cAAc,GAAG;gBAClE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CACF,CAAC;YACF,IAAI,UAAU,KAAK,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC/D,IAAI,CAAC,aAAa;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACxD,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,IAAI,uCAAuC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACnF,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,OAAO,CAAC;YACzC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
@@ -43,6 +43,23 @@ export type ApprovedPrivateReplicaAuthorityResolution = Readonly<{
43
43
  onChainId: string;
44
44
  authority: ApprovedPrivateReplicaAuthority;
45
45
  }>;
46
+ /**
47
+ * Hooks for a caller that may run the proof again for the same decision. Both
48
+ * can only take a result away from a run; neither can add one.
49
+ */
50
+ export interface ApprovedPrivateReplicaProofRun {
51
+ /**
52
+ * Called with the generation of the approved request the run starts from.
53
+ * `false` ends the run without a proof, which is how every run of one
54
+ * decision is held to the generation the first one read.
55
+ */
56
+ acceptsRequestGeneration(requestGeneration: string): boolean;
57
+ /**
58
+ * Called when a run is discarded for a moved metadata revision and nothing
59
+ * else: every check before that one held.
60
+ */
61
+ metadataMoved(): void;
62
+ }
46
63
  /**
47
64
  * Resolve the current authority proved by a durable approved private join.
48
65
  *
@@ -50,5 +67,5 @@ export type ApprovedPrivateReplicaAuthorityResolution = Readonly<{
50
67
  * source-qualified private roster. Callers must independently establish exact
51
68
  * finalized chain-name absence before treating the graph as unregistered.
52
69
  */
53
- export declare function resolveApprovedPrivateReplicaAuthority(agent: DKGAgent, contextGraphId: string, approvedAgentAddress: string | undefined, approvalStillHolds: () => boolean, metadataStillCurrent: () => boolean, signal?: AbortSignal): Promise<ApprovedPrivateReplicaAuthorityResolution | null>;
70
+ export declare function resolveApprovedPrivateReplicaAuthority(agent: DKGAgent, contextGraphId: string, approvedAgentAddress: string | undefined, approvalStillHolds: () => boolean, metadataStillCurrent: () => boolean, signal?: AbortSignal, run?: ApprovedPrivateReplicaProofRun): Promise<ApprovedPrivateReplicaAuthorityResolution | null>;
54
71
  //# sourceMappingURL=approved-private-replica.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approved-private-replica.d.ts","sourceRoot":"","sources":["../src/approved-private-replica.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,+BAA+B,EAC1C,KAAK,SAAa,GACjB,OAAO,CAGT;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,yCAAyC,GACjD,QAAQ,CAAC;IACP,IAAI,EAAE,8BAA8B,CAAC;IACrC,SAAS,EAAE,+BAA+B,CAAC;CAC5C,CAAC,GACF,QAAQ,CAAC;IACP,IAAI,EAAE,2BAA2B,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,+BAA+B,CAAC;CAC5C,CAAC,CAAC;AA4BP;;;;;;GAMG;AACH,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,QAAQ,EACf,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,kBAAkB,EAAE,MAAM,OAAO,EACjC,oBAAoB,EAAE,MAAM,OAAO,EACnC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,yCAAyC,GAAG,IAAI,CAAC,CA4G3D"}
1
+ {"version":3,"file":"approved-private-replica.d.ts","sourceRoot":"","sources":["../src/approved-private-replica.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,+BAA+B,EAC1C,KAAK,SAAa,GACjB,OAAO,CAGT;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,yCAAyC,GACjD,QAAQ,CAAC;IACP,IAAI,EAAE,8BAA8B,CAAC;IACrC,SAAS,EAAE,+BAA+B,CAAC;CAC5C,CAAC,GACF,QAAQ,CAAC;IACP,IAAI,EAAE,2BAA2B,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,+BAA+B,CAAC;CAC5C,CAAC,CAAC;AAEP;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7D;;;OAGG;IACH,aAAa,IAAI,IAAI,CAAC;CACvB;AA4BD;;;;;;GAMG;AACH,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,QAAQ,EACf,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,kBAAkB,EAAE,MAAM,OAAO,EACjC,oBAAoB,EAAE,MAAM,OAAO,EACnC,MAAM,CAAC,EAAE,WAAW,EACpB,GAAG,CAAC,EAAE,8BAA8B,GACnC,OAAO,CAAC,yCAAyC,GAAG,IAAI,CAAC,CAiH3D"}
@@ -48,7 +48,7 @@ function parseRegisteredMetaOnChainId(bindings) {
48
48
  * source-qualified private roster. Callers must independently establish exact
49
49
  * finalized chain-name absence before treating the graph as unregistered.
50
50
  */
51
- export async function resolveApprovedPrivateReplicaAuthority(agent, contextGraphId, approvedAgentAddress, approvalStillHolds, metadataStillCurrent, signal) {
51
+ export async function resolveApprovedPrivateReplicaAuthority(agent, contextGraphId, approvedAgentAddress, approvalStillHolds, metadataStillCurrent, signal, run) {
52
52
  const approved = approvedAgentAddress?.toLowerCase();
53
53
  const hasLocalAgent = () => agent.listLocalAgents().some(({ agentAddress }) => agentAddress.toLowerCase() === approved);
54
54
  if (!approved || !hasLocalAgent())
@@ -64,6 +64,8 @@ export async function resolveApprovedPrivateReplicaAuthority(agent, contextGraph
64
64
  || !EVM_ADDRESS.test(state.curatorAgentAddress)
65
65
  || state.curatorAgentAddress === ZERO_ADDRESS)
66
66
  return null;
67
+ if (run?.acceptsRequestGeneration(state.requestGeneration) === false)
68
+ return null;
67
69
  const ownerAddress = state.curatorAgentAddress;
68
70
  const meta = await agent.getOwnCgMetaFacts(contextGraphId, { signal });
69
71
  const owners = new Set(meta.curators.map((did) => did
@@ -111,9 +113,13 @@ export async function resolveApprovedPrivateReplicaAuthority(agent, contextGraph
111
113
  || current.requestGeneration !== state.requestGeneration
112
114
  || current.curatorPeerId !== state.curatorPeerId
113
115
  || current.curatorAgentAddress !== ownerAddress
114
- || current.curatorAuthorityEra !== '0'
115
- || !metadataStillCurrent())
116
+ || current.curatorAuthorityEra !== '0')
117
+ return null;
118
+ // Checked last, so a run discarded here had every earlier check hold.
119
+ if (!metadataStillCurrent()) {
120
+ run?.metadataMoved();
116
121
  return null;
122
+ }
117
123
  // The proof query embeds its start time. Recheck the deadline it proved
118
124
  // after every await so a delegation cannot expire while the read is in
119
125
  // flight and still authorize the replica.
@@ -1 +1 @@
1
- {"version":3,"file":"approved-private-replica.js","sourceRoot":"","sources":["../src/approved-private-replica.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approved-private-replica.js","sourceRoot":"","sources":["../src/approved-private-replica.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { ChainAdapter, ContextGraphOnChain } from '@origintrail-official/dkg-chain';
2
+ /** Automatic discovery may fill a binding, but cannot replace an owned canonical slot. */
3
+ export declare function conflictsWithOwnedContextGraphBinding(currentId: string | undefined, incomingId: string | undefined): boolean;
2
4
  export type DiscoveredContextGraphBinding = {
3
5
  kind: 'unrevealed';
4
6
  registryNameHash: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-chain-discovery-binding.d.ts","sourceRoot":"","sources":["../src/context-graph-chain-discovery-binding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEzF,MAAM,MAAM,6BAA6B,GACrC;IACA,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GACC;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEJ;;;;;GAKG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,6BAA6B,CAAC,CAyExC"}
1
+ {"version":3,"file":"context-graph-chain-discovery-binding.d.ts","sourceRoot":"","sources":["../src/context-graph-chain-discovery-binding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGzF,0FAA0F;AAC1F,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAIT;AAED,MAAM,MAAM,6BAA6B,GACrC;IACA,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GACC;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,GACC;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAEJ;;;;;GAKG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,6BAA6B,CAAC,CAyExC"}
@@ -1,4 +1,11 @@
1
1
  import { ethers } from 'ethers';
2
+ import { isCanonicalAuthoritativeContextGraphId } from './context-graph-binding-state.js';
3
+ /** Automatic discovery may fill a binding, but cannot replace an owned canonical slot. */
4
+ export function conflictsWithOwnedContextGraphBinding(currentId, incomingId) {
5
+ return isCanonicalAuthoritativeContextGraphId(currentId)
6
+ && isCanonicalAuthoritativeContextGraphId(incomingId)
7
+ && currentId !== incomingId;
8
+ }
2
9
  /**
3
10
  * Normalize the legacy ContextGraphOnChain identifier boundary before any
4
11
  * agent-local RDF or subscription mutation. Production EVM enumeration
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-chain-discovery-binding.js","sourceRoot":"","sources":["../src/context-graph-chain-discovery-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAqBhC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAmB,EACnB,KAA0B;IAE1B,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QACnE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE;QACpC,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxF,IAAI,gBAAgB,KAAK,gBAAgB,EAAE,CAAC;YAC1C,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,gBAAgB;gBAChB,gBAAgB,EAAE,IAAI;gBACtB,OAAO,EACL,kCAAkC,KAAK,CAAC,IAAI,wBAAwB;oBACpE,GAAG,gBAAgB,wCAAwC,gBAAgB,EAAE;aAChF,CAAC;QACJ,CAAC;QAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,+BAA+B,CAAC;QAChE,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC5C,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,gBAAgB;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,OAAO,EACL,kCAAkC,KAAK,CAAC,IAAI,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;oBACrF,iEAAiE;aACpE,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACxE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;YAC1C,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,gBAAgB;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,OAAO,EACL,kCAAkC,KAAK,CAAC,IAAI,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;oBACrF,uEAAuE;aAC1E,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC/B,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/C,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,cAAc;YAC/B,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,KAAK;QACvB,OAAO,EACL,kCAAkC,KAAK,CAAC,IAAI,qCAAqC;YACjF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"context-graph-chain-discovery-binding.js","sourceRoot":"","sources":["../src/context-graph-chain-discovery-binding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ContextGraphSubInput, ContextGraphSubscriptionRecord } from './dkg-agent-types.js';
2
+ /**
3
+ * Restore exact saved identity independently of subscription activity. This
4
+ * projection owns no state, authority reads, network effects or persistence.
5
+ * Conflicting/invalid rows cannot select a numeric slot by snapshot order.
6
+ */
7
+ export declare function projectDormantContextGraphIdentities(rows: readonly ContextGraphSubscriptionRecord[]): ReadonlyMap<string, ContextGraphSubInput>;
8
+ //# sourceMappingURL=context-graph-dormant-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-graph-dormant-identity.d.ts","sourceRoot":"","sources":["../src/context-graph-dormant-identity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEjG;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,SAAS,8BAA8B,EAAE,GAC9C,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAuC3C"}
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { ethers } from 'ethers';
3
+ import { isCanonicalAuthoritativeContextGraphId } from './context-graph-binding-state.js';
4
+ /**
5
+ * Restore exact saved identity independently of subscription activity. This
6
+ * projection owns no state, authority reads, network effects or persistence.
7
+ * Conflicting/invalid rows cannot select a numeric slot by snapshot order.
8
+ */
9
+ export function projectDormantContextGraphIdentities(rows) {
10
+ const projected = new Map();
11
+ for (const row of rows) {
12
+ let identity = null;
13
+ if (isCanonicalAuthoritativeContextGraphId(row.onChainId)) {
14
+ try {
15
+ const commitment = ethers.keccak256(ethers.toUtf8Bytes(row.id)).toLowerCase();
16
+ const explicitHash = row.onChainHash?.toLowerCase();
17
+ const hashShaped = /^0x[0-9a-f]{64}$/i.test(row.id);
18
+ const wirePlaceholder = hashShaped && explicitHash === row.id.toLowerCase();
19
+ // A legacy hash-keyed row without its hash is ambiguous. Leave it for
20
+ // matching native chain observation to stage/repair rather than invent
21
+ // the commitment of a possible placeholder's literal spelling.
22
+ if ((explicitHash === undefined && !hashShaped) || explicitHash === commitment || wirePlaceholder) {
23
+ identity = {
24
+ name: row.name,
25
+ onChainId: row.onChainId,
26
+ onChainHash: explicitHash ?? commitment,
27
+ syncMode: 'always-on',
28
+ subscribed: false, coreHosted: false, synced: false,
29
+ sharedMemorySynced: false, metaSynced: false,
30
+ lastReconciledOrdinal: row.lastReconciledOrdinal,
31
+ };
32
+ }
33
+ }
34
+ catch {
35
+ // Invalid UTF-16 cannot establish a committed local graph identity.
36
+ }
37
+ }
38
+ const previous = projected.get(row.id);
39
+ if (projected.has(row.id) && (previous === null || identity === null
40
+ || previous?.onChainId !== identity.onChainId
41
+ || previous?.onChainHash !== identity.onChainHash))
42
+ projected.set(row.id, null);
43
+ else
44
+ projected.set(row.id, identity);
45
+ }
46
+ return new Map([...projected].filter((entry) => entry[1] !== null));
47
+ }
48
+ //# sourceMappingURL=context-graph-dormant-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-graph-dormant-identity.js","sourceRoot":"","sources":["../src/context-graph-dormant-identity.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAG1F;;;;GAIG;AACH,MAAM,UAAU,oCAAoC,CAClD,IAA+C;IAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuC,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,QAAQ,GAAgC,IAAI,CAAC;QACjD,IAAI,sCAAsC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9E,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;gBACpD,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpD,MAAM,eAAe,GAAG,UAAU,IAAI,YAAY,KAAK,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC5E,sEAAsE;gBACtE,uEAAuE;gBACvE,+DAA+D;gBAC/D,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,YAAY,KAAK,UAAU,IAAI,eAAe,EAAE,CAAC;oBAClG,QAAQ,GAAG;wBACT,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,WAAW,EAAE,YAAY,IAAI,UAAU;wBACvC,QAAQ,EAAE,WAAW;wBACrB,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;wBACnD,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK;wBAC5C,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;qBACjD,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAC3B,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI;eACnC,QAAQ,EAAE,SAAS,KAAK,QAAQ,CAAC,SAAS;eAC1C,QAAQ,EAAE,WAAW,KAAK,QAAQ,CAAC,WAAW,CAClD;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;;YAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAClC,CAAC,KAAK,EAA2C,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CACtE,CAAC,CAAC;AACL,CAAC"}
@@ -1,43 +1,9 @@
1
1
  import type { Quad, QueryOptions, TripleStore } from '@origintrail-official/dkg-storage';
2
- export interface ContextGraphSubGraphMeta {
3
- uri: string;
4
- name: string;
5
- createdBy: string;
6
- createdAt?: string;
7
- description?: string;
8
- }
9
- export interface ContextGraphDelegationMeta {
10
- uri: string;
11
- agents: string[];
12
- allowedPeers: string[];
13
- allowedKeys: string[];
14
- expiresAtValues: string[];
15
- }
16
- export interface ContextGraphMetaRecord {
17
- id: string;
18
- uri: string;
19
- declared: boolean;
20
- isSystem: boolean;
21
- name?: string;
22
- description?: string;
23
- creator?: string;
24
- creators: string[];
25
- curator?: string;
26
- curators: string[];
27
- accessPolicy?: string;
28
- createdAt?: string;
29
- allowedPeers: string[];
30
- allowedAgents: string[];
31
- participantAgents: string[];
32
- participantIdentityIds: string[];
33
- revokedAgents: string[];
34
- delegations: ContextGraphDelegationMeta[];
35
- onChainId?: string;
36
- subGraphs: ContextGraphSubGraphMeta[];
37
- hasAgentGate: boolean;
38
- hasPeerGate: boolean;
39
- hasLegacyParticipantGate: boolean;
40
- }
2
+ import type { StoreMutation } from './internal/store-mutation.js';
3
+ import { PeerGateRevision } from './internal/peer-gate-revision.js';
4
+ import { RecipientKeyRouteFence } from './internal/recipient-key-route-fence.js';
5
+ import type { ContextGraphMetaRecord } from './internal/context-graph-meta-record.js';
6
+ export type { ContextGraphMetaRecord, ContextGraphSubGraphMeta, ContextGraphDelegationMeta } from './internal/context-graph-meta-record.js';
41
7
  export interface ContextGraphReadAuthorityFactsSnapshot {
42
8
  /** True only while no projection source has changed since capture began. */
43
9
  assertCurrent(): boolean;
@@ -49,6 +15,15 @@ export declare class ContextGraphMetaProjection {
49
15
  private readonly entries;
50
16
  private authorityFactsRevision;
51
17
  private allFactsRevision;
18
+ /** What a recipient resolution depends on: key and route facts, and each graph's peer allowlist (GH#3067). */
19
+ readonly recipientKeyRouteFence: RecipientKeyRouteFence;
20
+ readonly peerGateRevision: PeerGateRevision;
21
+ /** Historical callbacks remain bound and also notify the recipient fence. */
22
+ readonly markDirtyForGraph: (graph: string, subject?: string, predicate?: string) => void;
23
+ readonly markAllDirty: () => void;
24
+ readonly markDirtyFromQuads: (quads: readonly Quad[]) => string[];
25
+ /** Projection-only dispatch: the observed store owns recipient-fence settlement. */
26
+ readonly invalidateStoreMutation: (mutation: StoreMutation) => void;
52
27
  constructor(store: TripleStore);
53
28
  /** Invalidate request-local absence proofs when projection sources change. */
54
29
  get readAuthorityFactsRevision(): number;
@@ -68,28 +43,17 @@ export declare class ContextGraphMetaProjection {
68
43
  */
69
44
  prepareReadAuthorityFactsSnapshot(contextGraphIds: readonly string[], options?: QueryOptions): Promise<ContextGraphReadAuthorityFactsSnapshot>;
70
45
  get(contextGraphId: string, options?: QueryOptions): Promise<ContextGraphMetaRecord>;
71
- markDirty(contextGraphId: string): void;
46
+ markDirty(contextGraphId: string, changesPeerGate?: boolean): void;
72
47
  /**
73
48
  * Rebuild this graph's cached record on its next read without reporting a
74
49
  * change of authority facts, for a caller that wrote nothing itself: no
75
50
  * authority-facts revision advances. Supersedes a rebuild in flight.
76
51
  */
77
52
  requireFreshRead(contextGraphId: string): void;
78
- /**
79
- * #1863 — dirty the projection for the context graph a single-graph destructive
80
- * mutation (e.g. `replaceSubject`) targets, derived from the GRAPH itself, not
81
- * from the mutation's inserted quads. A subject replace can DELETE
82
- * projection-relevant metadata or replace it with non-relevant/empty rows, so
83
- * keying off the inserted quads alone (`markDirtyFromQuads`) misses the delete.
84
- * Keying off an own meta/catalog graph covers both insert and delete. Shared
85
- * AGENTS/ONTOLOGY sources invalidate every record because the callback does
86
- * not supply the affected subject. Other graphs do not dirty projection cache
87
- * entries, but still advance the recipient-authority fence because key lookup
88
- * scans all named graphs.
89
- */
90
- markDirtyForGraph(graphUri: string): void;
91
- markAllDirty(): void;
92
- markDirtyFromQuads(quads: readonly Quad[]): string[];
53
+ /** Destructive graph mutations invalidate their target cache and request-local revisions. */
54
+ private invalidateGraph;
55
+ private dirtyAll;
56
+ private invalidateQuads;
93
57
  listDeclaredContextGraphIds(options?: QueryOptions): Promise<string[]>;
94
58
  private listRootMetaDeclaredContextGraphIds;
95
59
  private listCatalogDeclaredContextGraphIds;
@@ -1 +1 @@
1
- {"version":3,"file":"context-graph-meta-projection.d.ts","sourceRoot":"","sources":["../src/context-graph-meta-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-graph-meta-projection.d.ts","sourceRoot":"","sources":["../src/context-graph-meta-projection.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAIzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,KAAK,EAAE,sBAAsB,EAAwD,MAAM,yCAAyC,CAAC;AAC5I,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAS5I,MAAM,WAAW,sCAAsC;IACrD,4EAA4E;IAC5E,aAAa,IAAI,OAAO,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3C;AA8GD,qBAAa,0BAA0B;IAmCzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAlClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,8GAA8G;IAC9G,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,gBAAgB,mBAAsD;IAE/E,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,GAAI,OAAO,MAAM,EAAE,UAAU,MAAM,EAAE,YAAY,MAAM,KAAG,IAAI,CAGtF;IACF,QAAQ,CAAC,YAAY,QAAO,IAAI,CAG9B;IACF,QAAQ,CAAC,kBAAkB,GAAI,OAAO,SAAS,IAAI,EAAE,KAAG,MAAM,EAAE,CAG9D;IAEF,oFAAoF;IACpF,QAAQ,CAAC,uBAAuB,GAAI,UAAU,aAAa,KAAG,IAAI,CAUhE;gBAE2B,KAAK,EAAE,WAAW;IAI/C,8EAA8E;IAC9E,IAAI,0BAA0B,IAAI,MAAM,CAEvC;IAED;8EAC0E;IAC1E,sCAAsC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAItE;;;;OAIG;IACG,yCAAyC,CAC7C,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAmD/B;;;;OAIG;IACG,iCAAiC,CACrC,eAAe,EAAE,SAAS,MAAM,EAAE,EAClC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,sCAAsC,CAAC;IAY5C,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAkC9F,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,eAAe,UAAO,GAAG,IAAI;IAY/D;;;;OAIG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAK9C,6FAA6F;IAC7F,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,eAAe;IAoBjB,2BAA2B,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAsClE,mCAAmC;YA+BnC,kCAAkC;YA4BlC,kBAAkB;IAKhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,eAAe,CACnB,cAAc,EAAE,MAAM,EACtB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,sBAAsB,CAAC;YAWpB,OAAO;YAqCP,eAAe;YAwDf,qBAAqB;IA4BnC,OAAO,CAAC,SAAS;YA+DH,aAAa;IA4C3B,OAAO,CAAC,2BAA2B;CA+CpC"}