@enbox/agent 0.7.7 → 0.7.9

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 (77) hide show
  1. package/dist/browser.mjs +9 -9
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/dwn-api.js +3 -2
  4. package/dist/esm/dwn-api.js.map +1 -1
  5. package/dist/esm/enbox-connect-protocol.js +5 -5
  6. package/dist/esm/enbox-connect-protocol.js.map +1 -1
  7. package/dist/esm/index.js +1 -1
  8. package/dist/esm/index.js.map +1 -1
  9. package/dist/esm/permissions-api.js +7 -34
  10. package/dist/esm/permissions-api.js.map +1 -1
  11. package/dist/esm/sync-closure-resolver.js +229 -110
  12. package/dist/esm/sync-closure-resolver.js.map +1 -1
  13. package/dist/esm/sync-closure-types.js +39 -7
  14. package/dist/esm/sync-closure-types.js.map +1 -1
  15. package/dist/esm/sync-engine-level.js +2242 -797
  16. package/dist/esm/sync-engine-level.js.map +1 -1
  17. package/dist/esm/sync-link-id.js +4 -13
  18. package/dist/esm/sync-link-id.js.map +1 -1
  19. package/dist/esm/sync-link-reconciler.js +26 -8
  20. package/dist/esm/sync-link-reconciler.js.map +1 -1
  21. package/dist/esm/sync-messages.js +218 -154
  22. package/dist/esm/sync-messages.js.map +1 -1
  23. package/dist/esm/sync-permission-grants.js +208 -0
  24. package/dist/esm/sync-permission-grants.js.map +1 -0
  25. package/dist/esm/sync-replication-ledger.js +23 -40
  26. package/dist/esm/sync-replication-ledger.js.map +1 -1
  27. package/dist/esm/sync-scope-acceptance.js +126 -0
  28. package/dist/esm/sync-scope-acceptance.js.map +1 -0
  29. package/dist/esm/sync-topological-sort.js +57 -15
  30. package/dist/esm/sync-topological-sort.js.map +1 -1
  31. package/dist/esm/types/sync.js +130 -22
  32. package/dist/esm/types/sync.js.map +1 -1
  33. package/dist/types/dwn-api.d.ts.map +1 -1
  34. package/dist/types/index.d.ts +1 -1
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/permissions-api.d.ts +1 -2
  37. package/dist/types/permissions-api.d.ts.map +1 -1
  38. package/dist/types/sync-closure-resolver.d.ts.map +1 -1
  39. package/dist/types/sync-closure-types.d.ts +14 -3
  40. package/dist/types/sync-closure-types.d.ts.map +1 -1
  41. package/dist/types/sync-engine-level.d.ts +144 -31
  42. package/dist/types/sync-engine-level.d.ts.map +1 -1
  43. package/dist/types/sync-link-id.d.ts +3 -9
  44. package/dist/types/sync-link-id.d.ts.map +1 -1
  45. package/dist/types/sync-link-reconciler.d.ts +12 -2
  46. package/dist/types/sync-link-reconciler.d.ts.map +1 -1
  47. package/dist/types/sync-messages.d.ts +16 -13
  48. package/dist/types/sync-messages.d.ts.map +1 -1
  49. package/dist/types/sync-permission-grants.d.ts +52 -0
  50. package/dist/types/sync-permission-grants.d.ts.map +1 -0
  51. package/dist/types/sync-replication-ledger.d.ts +5 -13
  52. package/dist/types/sync-replication-ledger.d.ts.map +1 -1
  53. package/dist/types/sync-scope-acceptance.d.ts +28 -0
  54. package/dist/types/sync-scope-acceptance.d.ts.map +1 -0
  55. package/dist/types/sync-topological-sort.d.ts +2 -1
  56. package/dist/types/sync-topological-sort.d.ts.map +1 -1
  57. package/dist/types/types/permissions.d.ts +2 -0
  58. package/dist/types/types/permissions.d.ts.map +1 -1
  59. package/dist/types/types/sync.d.ts +137 -75
  60. package/dist/types/types/sync.d.ts.map +1 -1
  61. package/package.json +3 -3
  62. package/src/dwn-api.ts +3 -2
  63. package/src/enbox-connect-protocol.ts +5 -5
  64. package/src/index.ts +10 -1
  65. package/src/permissions-api.ts +11 -42
  66. package/src/sync-closure-resolver.ts +306 -126
  67. package/src/sync-closure-types.ts +54 -9
  68. package/src/sync-engine-level.ts +3051 -967
  69. package/src/sync-link-id.ts +9 -14
  70. package/src/sync-link-reconciler.ts +43 -10
  71. package/src/sync-messages.ts +263 -159
  72. package/src/sync-permission-grants.ts +297 -0
  73. package/src/sync-replication-ledger.ts +55 -50
  74. package/src/sync-scope-acceptance.ts +186 -0
  75. package/src/sync-topological-sort.ts +89 -21
  76. package/src/types/permissions.ts +2 -0
  77. package/src/types/sync.ts +235 -62
@@ -7,9 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { Message, PermissionsProtocol } from '@enbox/dwn-sdk-js';
10
+ import { classifySyncMessageScope } from './sync-scope-acceptance.js';
11
+ import { getInvokedPermissionGrantIds } from './sync-permission-grants.js';
11
12
  import { isMultiPartyContext } from './protocol-utils.js';
13
+ import { protocolsForSyncScope } from './types/sync.js';
12
14
  import { ClosureFailureCode, createClosureContext } from './sync-closure-types.js';
15
+ import { Message, PermissionScopeMatcher, PermissionsProtocol } from '@enbox/dwn-sdk-js';
13
16
  // ---------------------------------------------------------------------------
14
17
  // Dependency extraction helpers (one per dependency class)
15
18
  // ---------------------------------------------------------------------------
@@ -43,106 +46,130 @@ function extractProtocolDeps(message) {
43
46
  * - initialWrite (for non-initial writes)
44
47
  * - parentId chain
45
48
  */
46
- function extractAncestryDeps(message) {
49
+ function extractAncestryDeps(message, protocolDef) {
47
50
  const desc = message.descriptor;
48
- const edges = [];
49
51
  // Only Records interface messages have ancestry dependencies.
50
52
  if (desc.interface !== 'Records') {
51
53
  return [];
52
54
  }
53
- const recordId = message.recordId;
54
- // parentId dependency — the parent record must be present.
55
- const parentId = desc.parentId;
56
- if (parentId) {
57
- edges.push({
58
- dependencyClass: 2,
59
- label: 'parentRecord',
60
- identifier: parentId,
61
- identifierType: 'recordId',
62
- });
55
+ const context = createAncestryContext(message, desc, protocolDef);
56
+ return [
57
+ createParentRecordDependency(context),
58
+ createContextRootDependency(context),
59
+ createInitialWriteDependency(context),
60
+ ].filter((edge) => edge !== undefined);
61
+ }
62
+ function expectedProtocol(protocol) {
63
+ return protocol === undefined ? {} : { expectedProtocol: protocol };
64
+ }
65
+ function createAncestryContext(message, descriptor, protocolDef) {
66
+ const rootRefProtocol = getRootRefProtocol(descriptor, protocolDef);
67
+ return {
68
+ descriptor,
69
+ recordId: message.recordId,
70
+ protocol: descriptor.protocol,
71
+ parentId: descriptor.parentId,
72
+ contextId: message.contextId,
73
+ rootRefProtocol,
74
+ parentResolvedByCrossProtocolRef: rootRefProtocol !== undefined && isDirectChildOfRootRef(descriptor),
75
+ };
76
+ }
77
+ function createParentRecordDependency(context) {
78
+ if (!context.parentId || context.parentResolvedByCrossProtocolRef) {
79
+ return undefined;
63
80
  }
64
- // contextId dependency if the record has a contextId that differs from
65
- // its own recordId, the context root record must be present. The contextId
66
- // is a hierarchical path of recordIds (e.g., "rootId/childId/grandchildId").
67
- // The context root is the first segment.
68
- const contextId = message.contextId;
69
- if (contextId && recordId && contextId !== recordId) {
70
- const contextRootId = contextId.split('/')[0];
71
- edges.push({
72
- dependencyClass: 2,
73
- label: 'contextRoot',
74
- identifier: contextRootId,
75
- identifierType: 'recordId',
76
- });
81
+ return Object.assign({ dependencyClass: 2, label: 'parentRecord', identifier: context.parentId, identifierType: 'recordId' }, expectedProtocol(context.protocol));
82
+ }
83
+ function createContextRootDependency(context) {
84
+ var _a;
85
+ const contextRootId = getContextRootId(context);
86
+ if (!contextRootId || contextRootIsCrossProtocolParent(context, contextRootId)) {
87
+ return undefined;
77
88
  }
78
- // initialWrite dependency non-initial writes need their initialWrite.
79
- // An initial write has entryId === recordId, but we can't compute entryId here
80
- // without the full CID computation. Instead, check dateCreated vs messageTimestamp
81
- // as a heuristic, then the resolver will verify via the message store.
82
- if (recordId && desc.method === 'Write') {
83
- const dateCreated = desc.dateCreated;
84
- const messageTimestamp = desc.messageTimestamp;
85
- if (dateCreated && messageTimestamp && dateCreated !== messageTimestamp) {
86
- // Non-initial write — needs the initialWrite.
87
- edges.push({
88
- dependencyClass: 2,
89
- label: 'initialWrite',
90
- identifier: recordId,
91
- identifierType: 'recordId',
92
- });
93
- }
89
+ return Object.assign({ dependencyClass: 2, label: 'contextRoot', identifier: contextRootId, identifierType: 'recordId' }, expectedProtocol((_a = context.rootRefProtocol) !== null && _a !== void 0 ? _a : context.protocol));
90
+ }
91
+ function getContextRootId(context) {
92
+ if (!context.contextId || !context.recordId || context.contextId === context.recordId) {
93
+ return undefined;
94
94
  }
95
- // RecordsDelete also needs the initialWrite for authorization and index construction.
96
- if (recordId && desc.method === 'Delete') {
97
- edges.push({
95
+ return context.contextId.split('/')[0];
96
+ }
97
+ function contextRootIsCrossProtocolParent(context, contextRootId) {
98
+ return context.parentResolvedByCrossProtocolRef && contextRootId === context.parentId;
99
+ }
100
+ function createInitialWriteDependency(context) {
101
+ if (!context.recordId) {
102
+ return undefined;
103
+ }
104
+ if (isNonInitialWrite(context.descriptor)) {
105
+ return Object.assign({ dependencyClass: 2, label: 'initialWrite', identifier: context.recordId, identifierType: 'recordId' }, expectedProtocol(context.protocol));
106
+ }
107
+ if (context.descriptor.method === 'Delete') {
108
+ return {
98
109
  dependencyClass: 2,
99
110
  label: 'initialWrite',
100
- identifier: recordId,
111
+ identifier: context.recordId,
101
112
  identifierType: 'recordId',
102
- });
113
+ };
103
114
  }
104
- return edges;
115
+ return undefined;
116
+ }
117
+ function isNonInitialWrite(descriptor) {
118
+ if (descriptor.method !== 'Write') {
119
+ return false;
120
+ }
121
+ const dateCreated = descriptor.dateCreated;
122
+ const messageTimestamp = descriptor.messageTimestamp;
123
+ return dateCreated !== undefined &&
124
+ messageTimestamp !== undefined &&
125
+ dateCreated !== messageTimestamp;
126
+ }
127
+ function isDirectChildOfRootRef(descriptor) {
128
+ const protocolPath = descriptor.protocolPath;
129
+ return (protocolPath === null || protocolPath === void 0 ? void 0 : protocolPath.split('/').length) === 2;
130
+ }
131
+ function getRootRefProtocol(descriptor, protocolDef) {
132
+ var _a, _b;
133
+ const protocolPath = descriptor.protocolPath;
134
+ if (!protocolPath) {
135
+ return undefined;
136
+ }
137
+ const pathSegments = protocolPath.split('/');
138
+ const rootRuleSet = (_a = protocolDef === null || protocolDef === void 0 ? void 0 : protocolDef.structure) === null || _a === void 0 ? void 0 : _a[pathSegments[0]];
139
+ if (typeof (rootRuleSet === null || rootRuleSet === void 0 ? void 0 : rootRuleSet.$ref) !== 'string') {
140
+ return undefined;
141
+ }
142
+ const colonIdx = rootRuleSet.$ref.indexOf(':');
143
+ if (colonIdx <= 0) {
144
+ return undefined;
145
+ }
146
+ const alias = rootRuleSet.$ref.substring(0, colonIdx);
147
+ const referencedProtocol = (_b = protocolDef === null || protocolDef === void 0 ? void 0 : protocolDef.uses) === null || _b === void 0 ? void 0 : _b[alias];
148
+ return typeof referencedProtocol === 'string' ? referencedProtocol : undefined;
105
149
  }
106
150
  /**
107
151
  * Class 3: Authorization closure.
108
- * If the message uses a permissionGrantId, the grant record must be present.
152
+ * If the message invokes permission grant IDs, each grant record must be present.
109
153
  */
110
154
  function extractAuthorizationDeps(message) {
111
- var _a;
112
155
  const edges = [];
113
- const auth = message.authorization;
114
- if (!auth) {
115
- return [];
116
- }
117
- // The signature payload is at authorization.signature.payload (GeneralJws).
118
- // This is the base64url-encoded JSON containing permissionGrantId, protocolRole, etc.
119
- const payload = (_a = auth.signature) === null || _a === void 0 ? void 0 : _a.payload;
120
- if (payload) {
121
- try {
122
- // Payload is base64url-encoded JSON.
123
- const decoded = JSON.parse(Buffer.from(payload, 'base64url').toString('utf-8'));
124
- if (decoded.permissionGrantId) {
125
- edges.push({
126
- dependencyClass: 3,
127
- label: 'permissionGrant',
128
- identifier: decoded.permissionGrantId,
129
- identifierType: 'grantId',
130
- });
131
- // Also require the grant's revocation state to be resolvable.
132
- // The revocation is a child record at protocolPath 'grant/revocation'
133
- // with parentId === grantId. We add it as a separate edge so the
134
- // resolver can check for its presence (or confirmed absence).
135
- edges.push({
136
- dependencyClass: 3,
137
- label: 'grantRevocation',
138
- identifier: decoded.permissionGrantId,
139
- identifierType: 'grantId',
140
- });
141
- }
142
- }
143
- catch (_b) {
144
- // If we can't decode, skip — authorization will fail at apply time.
145
- }
156
+ for (const permissionGrantId of getInvokedPermissionGrantIds(message)) {
157
+ edges.push({
158
+ dependencyClass: 3,
159
+ label: 'permissionGrant',
160
+ identifier: permissionGrantId,
161
+ identifierType: 'grantId',
162
+ });
163
+ // Also require the grant's revocation state to be resolvable.
164
+ // The revocation is a child record at protocolPath 'grant/revocation'
165
+ // with parentId === grantId. We add it as a separate edge so the
166
+ // resolver can check for its presence (or confirmed absence).
167
+ edges.push({
168
+ dependencyClass: 3,
169
+ label: 'grantRevocation',
170
+ identifier: permissionGrantId,
171
+ identifierType: 'grantId',
172
+ });
146
173
  }
147
174
  return edges;
148
175
  }
@@ -171,11 +198,18 @@ function getRuleSetAtProtocolPath(structure, protocolPath) {
171
198
  if (!Object.hasOwn(currentLevel, segment)) {
172
199
  return undefined;
173
200
  }
174
- current = currentLevel[segment];
201
+ const next = currentLevel[segment];
202
+ if (!isProtocolRuleSet(next)) {
203
+ return undefined;
204
+ }
205
+ current = next;
175
206
  currentLevel = current;
176
207
  }
177
208
  return current;
178
209
  }
210
+ function isProtocolRuleSet(value) {
211
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
212
+ }
179
213
  /**
180
214
  * Extract protocol-definition-aware dependencies for classes 4, 5, and 6.
181
215
  * Called during BFS traversal after the ProtocolDefinition has been fetched
@@ -326,6 +360,7 @@ function extractProtocolAwareDeps(message, protocolDef, isDelegateSession) {
326
360
  label: 'crossProtocolParent',
327
361
  identifier: `${referencedProtocol}|${parentId}`,
328
362
  identifierType: 'recordId',
363
+ expectedProtocol: referencedProtocol,
329
364
  });
330
365
  }
331
366
  }
@@ -398,6 +433,7 @@ function extractProtocolAwareDeps(message, protocolDef, isDelegateSession) {
398
433
  label: 'crossProtocolRoleRecord',
399
434
  identifier: `${roleProtocol}|${roleProtocolPath}|${messageAuthor}|${contextPrefix}`,
400
435
  identifierType: 'filter',
436
+ expectedProtocol: roleProtocol,
401
437
  filter: roleFilter,
402
438
  });
403
439
  }
@@ -461,35 +497,36 @@ export function evaluateClosure(message, messageStore, scope, context) {
461
497
  const batchSize = queue.length;
462
498
  for (let i = 0; i < batchSize; i++) {
463
499
  const current = queue.shift();
464
- // Phase 1: Extract and resolve static dependency edges (classes 1-3).
465
- // This populates the protocolCache when class 1 (ProtocolsConfigure)
466
- // is resolved, which is needed by classes 4-6.
467
- const staticEdges = [
468
- ...extractProtocolDeps(current),
469
- ...extractAncestryDeps(current),
470
- ...extractAuthorizationDeps(current),
471
- ];
472
- const resolveResult = yield resolveEdges(staticEdges, allEdges, messageStore, context, visited, queue, rootCid, currentDepth);
473
- if (resolveResult) {
474
- return resolveResult;
500
+ // Resolve protocol metadata first. This populates the protocol
501
+ // cache when a ProtocolsConfigure dependency is resolved, which is
502
+ // needed to distinguish normal parent records from $ref parents.
503
+ const protocolResult = yield resolveEdges(extractProtocolDeps(current), allEdges, messageStore, scope, context, visited, queue, rootCid, currentDepth);
504
+ if (protocolResult) {
505
+ return protocolResult;
475
506
  } // Early failure.
476
- // Phase 2: Extract protocol-definition-aware edges (classes 4-6).
477
- // Runs AFTER static resolution so the ProtocolDefinition is in the cache.
478
507
  const currentDesc = current.descriptor;
479
508
  const currentProtocol = currentDesc.protocol;
480
- if (currentProtocol) {
481
- const cachedProtocolMsg = context.protocolCache.get(currentProtocol);
482
- const protocolDef = (_a = cachedProtocolMsg === null || cachedProtocolMsg === void 0 ? void 0 : cachedProtocolMsg.descriptor) === null || _a === void 0 ? void 0 : _a.definition;
483
- if (protocolDef) {
484
- const protoAwareEdges = extractProtocolAwareDeps(current, protocolDef, context.isDelegateSession);
485
- const protoResult = yield resolveEdges(protoAwareEdges, allEdges, messageStore, context, visited, queue, rootCid, currentDepth);
486
- if (protoResult) {
487
- return protoResult;
488
- }
509
+ const cachedProtocolMsg = currentProtocol ? context.protocolCache.get(currentProtocol) : undefined;
510
+ const protocolDef = (_a = cachedProtocolMsg === null || cachedProtocolMsg === void 0 ? void 0 : cachedProtocolMsg.descriptor) === null || _a === void 0 ? void 0 : _a.definition;
511
+ const structuralEdges = [
512
+ ...extractAncestryDeps(current, protocolDef),
513
+ ...extractAuthorizationDeps(current),
514
+ ];
515
+ const structuralResult = yield resolveEdges(structuralEdges, allEdges, messageStore, scope, context, visited, queue, rootCid, currentDepth);
516
+ if (structuralResult) {
517
+ return structuralResult;
518
+ } // Early failure.
519
+ // Resolve protocol-definition-aware edges after static dependencies so
520
+ // the ProtocolDefinition is in the cache.
521
+ if (protocolDef) {
522
+ const protoAwareEdges = extractProtocolAwareDeps(current, protocolDef, context.isDelegateSession);
523
+ const protoResult = yield resolveEdges(protoAwareEdges, allEdges, messageStore, scope, context, visited, queue, rootCid, currentDepth);
524
+ if (protoResult) {
525
+ return protoResult;
489
526
  }
490
527
  }
491
- // Phase 3: Validate grant temporal ordering (causal grant check).
492
- // After all edges are resolved, if this message uses a grant, verify
528
+ // Validate grant temporal ordering after all dependency edges resolve.
529
+ // If this message uses a grant, verify
493
530
  // that the grant is temporally valid at the message's commit point:
494
531
  // - grant.dateGranted <= message.messageTimestamp < grant.dateExpires
495
532
  // - no revocation exists with revocation.messageTimestamp <= message.messageTimestamp
@@ -623,14 +660,14 @@ function validateGrantTemporal(message, allEdges, context, rootCid, currentDepth
623
660
  * Resolve a list of dependency edges. Returns a ClosureResult on failure,
624
661
  * or null if all edges were resolved successfully.
625
662
  */
626
- function resolveEdges(edges, allEdges, messageStore, context, visited, queue, rootCid, currentDepth) {
663
+ function resolveEdges(edges, allEdges, messageStore, scope, context, visited, queue, rootCid, currentDepth) {
627
664
  return __awaiter(this, void 0, void 0, function* () {
628
665
  for (const edge of edges) {
629
666
  allEdges.push(edge);
630
667
  // Include label in dep key to distinguish edges with the same identifier
631
668
  // but different semantics (e.g., permissionGrant vs grantRevocation both
632
669
  // use identifierType:'grantId' with the same grantId).
633
- const depKey = `${edge.label}:${edge.identifierType}:${edge.identifier}`;
670
+ const depKey = dependencyCacheKey(edge, scope);
634
671
  if (context.satisfiedDeps.has(depKey)) {
635
672
  continue;
636
673
  }
@@ -662,6 +699,19 @@ function resolveEdges(edges, allEdges, messageStore, context, visited, queue, ro
662
699
  depth: currentDepth,
663
700
  };
664
701
  }
702
+ if (!isResolvedDependencyAllowed(edge, resolved, scope)) {
703
+ return {
704
+ complete: false,
705
+ rootMessageCid: rootCid,
706
+ edges: allEdges,
707
+ failure: {
708
+ code: ClosureFailureCode.DependencyForbidden,
709
+ edge,
710
+ detail: `dependency '${edge.label}' (${edge.identifier}) is outside the current sync scope`,
711
+ },
712
+ depth: currentDepth,
713
+ };
714
+ }
665
715
  context.satisfiedDeps.add(depKey);
666
716
  // Add resolved record to the BFS queue for transitive dependency evaluation,
667
717
  // but skip leaf dependency types that don't have their own closure requirements:
@@ -682,6 +732,75 @@ function resolveEdges(edges, allEdges, messageStore, context, visited, queue, ro
682
732
  return null; // All edges resolved successfully.
683
733
  });
684
734
  }
735
+ function dependencyCacheKey(edge, scope) {
736
+ const expectedProtocolSegment = edge.expectedProtocol === undefined
737
+ ? ''
738
+ : `expectedProtocol:${edge.expectedProtocol}:`;
739
+ return `${scopeCacheKey(scope)}:${expectedProtocolSegment}${edge.label}:${edge.identifierType}:${edge.identifier}`;
740
+ }
741
+ function scopeCacheKey(scope) {
742
+ if (scope.kind === 'full') {
743
+ return 'full';
744
+ }
745
+ if (scope.kind === 'protocolSet') {
746
+ return `protocolSet:${scope.protocols.join('\u001f')}`;
747
+ }
748
+ return `recordsProjection:${scope.scopes.map(scopeEntry => JSON.stringify(scopeEntry)).join('\u001f')}`;
749
+ }
750
+ function isResolvedDependencyAllowed(edge, resolved, scope) {
751
+ if (isSyntheticDependency(resolved)) {
752
+ return true;
753
+ }
754
+ // Protocol metadata is re-derived from an accepted primary and is safe to
755
+ // use as closure metadata even when it is not itself a primary in the scope.
756
+ if (edge.identifierType === 'protocol') {
757
+ return true;
758
+ }
759
+ if (edge.expectedProtocol !== undefined) {
760
+ return getMessageProtocol(resolved) === edge.expectedProtocol;
761
+ }
762
+ if (edge.label === 'contextKeyRecord') {
763
+ return isContextKeyDependencyAllowed(edge, resolved, scope);
764
+ }
765
+ return classifySyncMessageScope({ message: resolved, scope }) === 'in-scope';
766
+ }
767
+ function isSyntheticDependency(message) {
768
+ return message.descriptor.interface === 'Synthetic';
769
+ }
770
+ function getMessageProtocol(message) {
771
+ const descriptor = message.descriptor;
772
+ return typeof descriptor.protocol === 'string' ? descriptor.protocol : undefined;
773
+ }
774
+ function isContextKeyDependencyAllowed(edge, message, scope) {
775
+ if (scope.kind === 'full') {
776
+ return true;
777
+ }
778
+ const separatorIdx = edge.identifier.indexOf('|');
779
+ if (separatorIdx <= 0) {
780
+ return false;
781
+ }
782
+ const sourceProtocol = edge.identifier.substring(0, separatorIdx);
783
+ const rootContextId = edge.identifier.substring(separatorIdx + 1);
784
+ const descriptor = message.descriptor;
785
+ const tags = descriptor.tags;
786
+ const isContextKeyRecord = descriptor.interface === 'Records' &&
787
+ descriptor.method === 'Write' &&
788
+ descriptor.protocol === 'https://identity.foundation/protocols/key-delivery' &&
789
+ descriptor.protocolPath === 'contextKey' &&
790
+ (tags === null || tags === void 0 ? void 0 : tags.protocol) === sourceProtocol &&
791
+ (tags === null || tags === void 0 ? void 0 : tags.contextId) === rootContextId;
792
+ if (!isContextKeyRecord) {
793
+ return false;
794
+ }
795
+ if (scope.kind === 'recordsProjection') {
796
+ return scope.scopes.some(scopeEntry => PermissionScopeMatcher.matches(scopeEntry, {
797
+ protocol: sourceProtocol,
798
+ contextId: rootContextId,
799
+ }));
800
+ }
801
+ const coveredProtocols = protocolsForSyncScope(scope);
802
+ return (coveredProtocols === null || coveredProtocols === void 0 ? void 0 : coveredProtocols.includes(sourceProtocol)) === true;
803
+ }
685
804
  /**
686
805
  * Resolve a dependency edge by querying the local MessageStore.
687
806
  * Returns the resolved message or null if not found.
@@ -1 +1 @@
1
- {"version":3,"file":"sync-closure-resolver.js","sourceRoot":"","sources":["../../src/sync-closure-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-closure-resolver.js","sourceRoot":"","sources":["../../src/sync-closure-resolver.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export var ClosureFailureCode;
15
15
  ClosureFailureCode["ParentChainMissing"] = "ClosureParentChainMissing";
16
16
  /** Class 2: A context ancestor record is missing. */
17
17
  ClosureFailureCode["ContextChainMissing"] = "ClosureContextChainMissing";
18
- /** Class 3: A permission grant referenced by permissionGrantId is missing. */
18
+ /** Class 3: A permission grant referenced by a grant invocation is missing. */
19
19
  ClosureFailureCode["GrantMissing"] = "ClosureGrantMissing";
20
20
  /** Class 3: The grant exists but is not yet active at the message's timestamp. */
21
21
  ClosureFailureCode["GrantNotYetActive"] = "ClosureGrantNotYetActive";
@@ -34,6 +34,16 @@ export var ClosureFailureCode;
34
34
  /** Traversal depth exceeded the configured maximum (default 32). */
35
35
  ClosureFailureCode["DepthExceeded"] = "ClosureDepthExceeded";
36
36
  })(ClosureFailureCode || (ClosureFailureCode = {}));
37
+ const TERMINAL_CLOSURE_FAILURE_CODES = new Set([
38
+ ClosureFailureCode.DependencyForbidden,
39
+ ClosureFailureCode.GrantExpired,
40
+ ClosureFailureCode.GrantNotYetActive,
41
+ ClosureFailureCode.GrantRevocationMissing,
42
+ ]);
43
+ /** Returns true when repair cannot make the closure failure complete. */
44
+ export function isTerminalClosureFailureCode(failureCode) {
45
+ return TERMINAL_CLOSURE_FAILURE_CODES.has(failureCode);
46
+ }
37
47
  /**
38
48
  * Create a fresh evaluation context for a batch of closure evaluations.
39
49
  */
@@ -69,6 +79,8 @@ export function invalidateClosureCache(context, message) {
69
79
  : undefined;
70
80
  if (protocol) {
71
81
  context.protocolCache.delete(protocol);
82
+ deleteProtocolDependencyCacheEntries(context.satisfiedDeps, protocol);
83
+ deleteProtocolDependencyCacheEntries(context.missingDeps, protocol);
72
84
  }
73
85
  }
74
86
  // Permissions protocol messages → invalidate grant/revocation cache.
@@ -78,19 +90,19 @@ export function invalidateClosureCache(context, message) {
78
90
  if (protocolPath === 'grant' && recordId) {
79
91
  // Grant write → invalidate the grant cache and dep keys.
80
92
  context.grantCache.delete(recordId);
81
- context.satisfiedDeps.delete(`permissionGrant:grantId:${recordId}`);
82
- context.missingDeps.delete(`permissionGrant:grantId:${recordId}`);
93
+ deleteDependencyCacheEntries(context.satisfiedDeps, `permissionGrant:grantId:${recordId}`);
94
+ deleteDependencyCacheEntries(context.missingDeps, `permissionGrant:grantId:${recordId}`);
83
95
  }
84
96
  if (protocolPath === 'grant/revocation') {
85
97
  // Revocation write → invalidate revocation cache and both dep keys.
86
98
  const parentId = desc.parentId;
87
99
  if (parentId) {
88
100
  context.grantCache.delete(`revocation:${parentId}`);
89
- context.satisfiedDeps.delete(`grantRevocation:grantId:${parentId}`);
90
- context.missingDeps.delete(`grantRevocation:grantId:${parentId}`);
101
+ deleteDependencyCacheEntries(context.satisfiedDeps, `grantRevocation:grantId:${parentId}`);
102
+ deleteDependencyCacheEntries(context.missingDeps, `grantRevocation:grantId:${parentId}`);
91
103
  // Also invalidate the grant itself since its revocation state changed.
92
- context.satisfiedDeps.delete(`permissionGrant:grantId:${parentId}`);
93
- context.missingDeps.delete(`permissionGrant:grantId:${parentId}`);
104
+ deleteDependencyCacheEntries(context.satisfiedDeps, `permissionGrant:grantId:${parentId}`);
105
+ deleteDependencyCacheEntries(context.missingDeps, `permissionGrant:grantId:${parentId}`);
94
106
  }
95
107
  }
96
108
  }
@@ -187,4 +199,24 @@ export function invalidateClosureCache(context, message) {
187
199
  }
188
200
  }
189
201
  }
202
+ function deleteDependencyCacheEntries(cache, dependencyKeySuffix) {
203
+ for (const key of cache) {
204
+ if (key.endsWith(dependencyKeySuffix)) {
205
+ cache.delete(key);
206
+ }
207
+ }
208
+ }
209
+ function deleteProtocolDependencyCacheEntries(cache, protocol) {
210
+ const marker = ':protocol:';
211
+ for (const key of cache) {
212
+ const markerIndex = key.lastIndexOf(marker);
213
+ if (markerIndex === -1) {
214
+ continue;
215
+ }
216
+ const protocolIdentifier = key.substring(markerIndex + marker.length);
217
+ if (protocolIdentifier === protocol) {
218
+ cache.delete(key);
219
+ }
220
+ }
221
+ }
190
222
  //# sourceMappingURL=sync-closure-types.js.map