@agentplat/mesh 0.3.0-alpha.1 → 0.3.0-alpha.2

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 (102) hide show
  1. package/README.md +247 -2
  2. package/dist/coordination-allocation-contracts.d.ts +598 -0
  3. package/dist/coordination-allocation-contracts.d.ts.map +1 -0
  4. package/dist/coordination-allocation-contracts.js +2 -0
  5. package/dist/coordination-allocation-contracts.js.map +1 -0
  6. package/dist/coordination-allocation-state.d.ts +19 -0
  7. package/dist/coordination-allocation-state.d.ts.map +1 -0
  8. package/dist/coordination-allocation-state.js +5496 -0
  9. package/dist/coordination-allocation-state.js.map +1 -0
  10. package/dist/coordination-allocation.d.ts +10 -0
  11. package/dist/coordination-allocation.d.ts.map +1 -0
  12. package/dist/coordination-allocation.js +2743 -0
  13. package/dist/coordination-allocation.js.map +1 -0
  14. package/dist/coordination-contracts.d.ts +78 -0
  15. package/dist/coordination-contracts.d.ts.map +1 -0
  16. package/dist/coordination-contracts.js +2 -0
  17. package/dist/coordination-contracts.js.map +1 -0
  18. package/dist/coordination-discovery-contracts.d.ts +150 -0
  19. package/dist/coordination-discovery-contracts.d.ts.map +1 -0
  20. package/dist/coordination-discovery-contracts.js +2 -0
  21. package/dist/coordination-discovery-contracts.js.map +1 -0
  22. package/dist/coordination-discovery-state.d.ts +12 -0
  23. package/dist/coordination-discovery-state.d.ts.map +1 -0
  24. package/dist/coordination-discovery-state.js +542 -0
  25. package/dist/coordination-discovery-state.js.map +1 -0
  26. package/dist/coordination-discovery.d.ts +19 -0
  27. package/dist/coordination-discovery.d.ts.map +1 -0
  28. package/dist/coordination-discovery.js +850 -0
  29. package/dist/coordination-discovery.js.map +1 -0
  30. package/dist/coordination-execution.d.ts +6 -0
  31. package/dist/coordination-execution.d.ts.map +1 -0
  32. package/dist/coordination-execution.js +854 -0
  33. package/dist/coordination-execution.js.map +1 -0
  34. package/dist/coordination-inbound-contracts.d.ts +150 -0
  35. package/dist/coordination-inbound-contracts.d.ts.map +1 -0
  36. package/dist/coordination-inbound-contracts.js +2 -0
  37. package/dist/coordination-inbound-contracts.js.map +1 -0
  38. package/dist/coordination-inbound-state.d.ts +26 -0
  39. package/dist/coordination-inbound-state.d.ts.map +1 -0
  40. package/dist/coordination-inbound-state.js +331 -0
  41. package/dist/coordination-inbound-state.js.map +1 -0
  42. package/dist/coordination-inbound.d.ts +16 -0
  43. package/dist/coordination-inbound.d.ts.map +1 -0
  44. package/dist/coordination-inbound.js +944 -0
  45. package/dist/coordination-inbound.js.map +1 -0
  46. package/dist/coordination-lease-renewal.d.ts +8 -0
  47. package/dist/coordination-lease-renewal.d.ts.map +1 -0
  48. package/dist/coordination-lease-renewal.js +518 -0
  49. package/dist/coordination-lease-renewal.js.map +1 -0
  50. package/dist/coordination-objective-topic-contracts.d.ts +70 -0
  51. package/dist/coordination-objective-topic-contracts.d.ts.map +1 -0
  52. package/dist/coordination-objective-topic-contracts.js +2 -0
  53. package/dist/coordination-objective-topic-contracts.js.map +1 -0
  54. package/dist/coordination-objective-topic.d.ts +6 -0
  55. package/dist/coordination-objective-topic.d.ts.map +1 -0
  56. package/dist/coordination-objective-topic.js +561 -0
  57. package/dist/coordination-objective-topic.js.map +1 -0
  58. package/dist/coordination-objective-work-contracts.d.ts +212 -0
  59. package/dist/coordination-objective-work-contracts.d.ts.map +1 -0
  60. package/dist/coordination-objective-work-contracts.js +2 -0
  61. package/dist/coordination-objective-work-contracts.js.map +1 -0
  62. package/dist/coordination-objective-work-state.d.ts +10 -0
  63. package/dist/coordination-objective-work-state.d.ts.map +1 -0
  64. package/dist/coordination-objective-work-state.js +1075 -0
  65. package/dist/coordination-objective-work-state.js.map +1 -0
  66. package/dist/coordination-objective-work-time.d.ts +9 -0
  67. package/dist/coordination-objective-work-time.d.ts.map +1 -0
  68. package/dist/coordination-objective-work-time.js +48 -0
  69. package/dist/coordination-objective-work-time.js.map +1 -0
  70. package/dist/coordination-objective-work.d.ts +11 -0
  71. package/dist/coordination-objective-work.d.ts.map +1 -0
  72. package/dist/coordination-objective-work.js +1090 -0
  73. package/dist/coordination-objective-work.js.map +1 -0
  74. package/dist/coordination-recovery.d.ts +13 -0
  75. package/dist/coordination-recovery.d.ts.map +1 -0
  76. package/dist/coordination-recovery.js +951 -0
  77. package/dist/coordination-recovery.js.map +1 -0
  78. package/dist/coordination-reducer.d.ts +8 -0
  79. package/dist/coordination-reducer.d.ts.map +1 -0
  80. package/dist/coordination-reducer.js +81 -0
  81. package/dist/coordination-reducer.js.map +1 -0
  82. package/dist/coordination-state.d.ts +13 -0
  83. package/dist/coordination-state.d.ts.map +1 -0
  84. package/dist/coordination-state.js +335 -0
  85. package/dist/coordination-state.js.map +1 -0
  86. package/dist/coordination-topic-contracts.d.ts +82 -0
  87. package/dist/coordination-topic-contracts.d.ts.map +1 -0
  88. package/dist/coordination-topic-contracts.js +2 -0
  89. package/dist/coordination-topic-contracts.js.map +1 -0
  90. package/dist/coordination-topic.d.ts +6 -0
  91. package/dist/coordination-topic.d.ts.map +1 -0
  92. package/dist/coordination-topic.js +561 -0
  93. package/dist/coordination-topic.js.map +1 -0
  94. package/dist/coordination.d.ts +21 -0
  95. package/dist/coordination.d.ts.map +1 -0
  96. package/dist/coordination.js +21 -0
  97. package/dist/coordination.js.map +1 -0
  98. package/dist/sha256.d.ts +3 -0
  99. package/dist/sha256.d.ts.map +1 -0
  100. package/dist/sha256.js +117 -0
  101. package/dist/sha256.js.map +1 -0
  102. package/package.json +7 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination-inbound.js","sourceRoot":"","sources":["../src/coordination-inbound.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { MeshAllocationDecision, MeshAllocationRuntimeState, MeshAllocationTimerDecision, MeshAllocationTimerInput, MeshLocalLeaseRenewalCommand, MeshVerifiedAllocationRequest } from "./coordination-allocation-contracts.js";
2
+ /** Applies a locally signed assignee lease extension before it is dispatched. */
3
+ export declare function evaluateMeshLeaseRenewalCommand(state: MeshAllocationRuntimeState, command: MeshLocalLeaseRenewalCommand, verifiedAt: string, receivedAt: number): MeshAllocationDecision;
4
+ /** Applies one authenticated remote assignee lease extension. */
5
+ export declare function evaluateVerifiedMeshLeaseRenewalEnvelope(state: MeshAllocationRuntimeState, request: MeshVerifiedAllocationRequest): MeshAllocationDecision;
6
+ /** Consumes only a due, generation-matching lease expiry timer. */
7
+ export declare function evaluateMeshLeaseExpiryTimer(state: MeshAllocationRuntimeState, input: MeshAllocationTimerInput, receivedAt: number): MeshAllocationTimerDecision;
8
+ //# sourceMappingURL=coordination-lease-renewal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination-lease-renewal.d.ts","sourceRoot":"","sources":["../src/coordination-lease-renewal.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,sBAAsB,EAEtB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EAGxB,4BAA4B,EAC5B,6BAA6B,EAE9B,MAAM,wCAAwC,CAAC;AAyBhD,iFAAiF;AACjF,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,4BAA4B,EACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,sBAAsB,CAqBxB;AAED,iEAAiE;AACjE,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAkCxB;AA8RD,mEAAmE;AACnE,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,wBAAwB,EAC/B,UAAU,EAAE,MAAM,GACjB,2BAA2B,CAmJ7B"}
@@ -0,0 +1,518 @@
1
+ import { canonicalizeMeshPayload, compareMeshTimestamps, validateMeshEnvelopeContext, validateSignedMeshEnvelope, } from "@agentplat/mesh-protocol";
2
+ import { createMeshAllocationRuntimeState, meshAllocationRetainsMessageId, meshAssignmentFenceKey, restoreMeshAllocationState, } from "./coordination-allocation-state.js";
3
+ import { logicalDeadline } from "./coordination-objective-work-time.js";
4
+ import { sha256Base64Url } from "./sha256.js";
5
+ import { createFrozenRecord, recordEntries } from "./state.js";
6
+ /** Applies a locally signed assignee lease extension before it is dispatched. */
7
+ export function evaluateMeshLeaseRenewalCommand(state, command, verifiedAt, receivedAt) {
8
+ if (!command ||
9
+ typeof command !== "object" ||
10
+ Object.keys(command).sort().join(",") !== "envelope,kind,preparedAt" ||
11
+ command.kind !== "allocation.lease_renew" ||
12
+ !Number.isSafeInteger(command.preparedAt) ||
13
+ command.preparedAt < 0 ||
14
+ command.preparedAt > receivedAt)
15
+ throw new TypeError("Invalid Mesh lease renewal command");
16
+ const parsed = validateSignedMeshEnvelope(command.envelope);
17
+ if (!parsed.ok || parsed.value.payload.type !== "lease.renew")
18
+ return reject(state, "lease_renewal_invalid");
19
+ return applyRenewal(state, parsed.value, verifiedAt, receivedAt, "local");
20
+ }
21
+ /** Applies one authenticated remote assignee lease extension. */
22
+ export function evaluateVerifiedMeshLeaseRenewalEnvelope(state, request) {
23
+ if (!request ||
24
+ typeof request !== "object" ||
25
+ !request.envelope ||
26
+ typeof request.verifiedAt !== "string" ||
27
+ !Number.isSafeInteger(request.receivedAt) ||
28
+ request.receivedAt < 0 ||
29
+ Object.keys(request).some((key) => key !== "envelope" &&
30
+ key !== "verifiedAt" &&
31
+ key !== "receivedAt" &&
32
+ key !== "supportedCriticalExtensions") ||
33
+ (request.supportedCriticalExtensions !== undefined &&
34
+ (!Array.isArray(request.supportedCriticalExtensions) ||
35
+ request.supportedCriticalExtensions.some((value) => typeof value !== "string" || value.length === 0) ||
36
+ new Set(request.supportedCriticalExtensions).size !==
37
+ request.supportedCriticalExtensions.length)))
38
+ throw new TypeError("Invalid Mesh verified lease renewal request");
39
+ if (request.envelope.payload.type !== "lease.renew")
40
+ return reject(state, "lease_renewal_invalid");
41
+ return applyRenewal(state, request.envelope, request.verifiedAt, request.receivedAt, "received", request.supportedCriticalExtensions);
42
+ }
43
+ function applyRenewal(state, envelope, verifiedAt, acceptedAt, direction, supportedCriticalExtensions) {
44
+ const payload = envelope.payload;
45
+ const existing = state.allocation.leaseRenewals[payload.leaseRenewalId];
46
+ if (existing)
47
+ return sameData(existing.envelope, envelope) &&
48
+ existing.direction === direction
49
+ ? acceptedDuplicate(state)
50
+ : reject(state, "lease_renewal_duplicate_conflict");
51
+ const recordKey = domainKey(payload.leaseRenewalId);
52
+ if (state.coordination.domainRecords[recordKey])
53
+ return reject(state, "domain_record_conflict");
54
+ if (meshAllocationRetainsMessageId(state, envelope.messageId))
55
+ return reject(state, "lease_renewal_duplicate_conflict");
56
+ const context = validateMeshEnvelopeContext(envelope, {
57
+ tenantId: state.allocation.identity.tenantId,
58
+ meshId: state.allocation.identity.meshId,
59
+ peerId: direction === "local"
60
+ ? payload.ownerPeerId
61
+ : state.allocation.identity.peerId,
62
+ receivedAt: verifiedAt,
63
+ ...(supportedCriticalExtensions === undefined
64
+ ? {}
65
+ : { supportedCriticalExtensions }),
66
+ });
67
+ if (!context.ok || !canonicalDigest(envelope))
68
+ return reject(state, "lease_renewal_invalid");
69
+ const authority = resolveAuthority(state, payload.awardId);
70
+ if (!authority || !sameAuthority(payload, authority))
71
+ return reject(state, "lease_renewal_authority_invalid");
72
+ const scope = scopeKey(authority);
73
+ const prior = state.allocation.leaseHeads[scope];
74
+ const fence = prior === undefined
75
+ ? undefined
76
+ : state.allocation.assignmentFenceHeads[meshAssignmentFenceKey(prior)];
77
+ if (prior?.status !== "active" ||
78
+ fence === undefined ||
79
+ fence.phase !== "active" ||
80
+ fence.assignmentEpoch !== prior.assignmentEpoch ||
81
+ fence.assignmentAuthorityId !== prior.assignmentAuthorityId ||
82
+ fence.fencingToken !== prior.fencingToken ||
83
+ fence.assigneePeerId !== prior.assigneePeerId ||
84
+ fence.activeAwardId !== prior.awardId)
85
+ return reject(state, "lease_renewal_authority_invalid");
86
+ const currentExpiry = prior.currentLeaseExpiresAt;
87
+ const currentExpiryLogical = prior.currentLeaseExpiresAtLogical;
88
+ const objective = state.objectives.objectives[payload.objectiveId];
89
+ const work = state.objectives.workItems[JSON.stringify([payload.objectiveId, payload.workItemId])];
90
+ const renewedLogical = logicalDeadline(payload.renewedLeaseExpiresAt, currentExpiry, currentExpiryLogical);
91
+ if ((direction === "local" &&
92
+ (envelope.sender.peerId !== state.allocation.identity.peerId ||
93
+ envelope.sender.instanceId !== state.allocation.identity.instanceId ||
94
+ envelope.proof.keyId !== state.allocation.identity.keyId)) ||
95
+ envelope.sender.peerId !== authority.assigneePeerId ||
96
+ envelope.audience.kind !== "peer" ||
97
+ envelope.audience.peerId !== authority.ownerPeerId ||
98
+ payload.leaseExpiresAt !== currentExpiry ||
99
+ !objective ||
100
+ objective.status !== "active" ||
101
+ objective.objectiveRevision !== authority.objectiveRevision ||
102
+ objective.objectiveDocumentId !== authority.objectiveDocumentId ||
103
+ (direction === "received" &&
104
+ (!work ||
105
+ work.workItemRevision !== authority.workItemRevision ||
106
+ work.status !== "ready")))
107
+ return reject(state, "lease_renewal_authority_invalid");
108
+ if (payload.leaseRenewalSequence > objective.maximumLeaseRenewals ||
109
+ payload.leaseRenewalSequence >
110
+ state.allocation.limits.maximumLeaseRenewals ||
111
+ payload.leaseRenewalSequence !== prior.leaseRenewalSequence + 1 ||
112
+ payload.previousLeaseRenewalId !== prior.latestLeaseRenewalId ||
113
+ envelope.causationId !==
114
+ (prior.latestLeaseRenewalId === undefined
115
+ ? authority.acceptanceMessageId
116
+ : state.allocation.leaseRenewals[prior.latestLeaseRenewalId]?.envelope
117
+ .messageId))
118
+ return reject(state, "lease_renewal_predecessor_invalid");
119
+ if (acceptedAt >= currentExpiryLogical ||
120
+ acceptedAt >= authority.workDeadlineAt ||
121
+ compare(verifiedAt, currentExpiry) >= 0 ||
122
+ compare(verifiedAt, authority.workDeadline) >= 0 ||
123
+ renewedLogical === undefined ||
124
+ renewedLogical <= currentExpiryLogical ||
125
+ renewedLogical - currentExpiryLogical > objective.maximumLeaseDurationMs ||
126
+ renewedLogical > authority.workDeadlineAt ||
127
+ renewedLogical > objective.expiresAt ||
128
+ compare(payload.renewedLeaseExpiresAt, authority.workDeadline) > 0 ||
129
+ compare(payload.renewedLeaseExpiresAt, objective.validUntil) > 0)
130
+ return reject(state, "lease_renewal_deadline_elapsed");
131
+ if (Object.keys(state.allocation.leaseRenewals).length >=
132
+ state.allocation.limits.maximumLeaseRenewals ||
133
+ Object.keys(state.coordination.domainRecords).length >=
134
+ state.coordination.limits.maximumDomainRecords)
135
+ return reject(state, "lease_renewal_capacity_exceeded");
136
+ if (state.coordination.journal.length >=
137
+ state.coordination.limits.maximumJournalEntries)
138
+ return reject(state, "journal_capacity_exceeded");
139
+ if (state.coordination.localEventSequence >= Number.MAX_SAFE_INTEGER)
140
+ throw new RangeError("Mesh coordination event sequence exhausted");
141
+ const timerId = leaseTimerId(scope);
142
+ const oldTimer = prior?.expiryTimerId === undefined
143
+ ? undefined
144
+ : state.coordination.timers[prior.expiryTimerId];
145
+ if (!oldTimer && state.coordination.timers[timerId] !== undefined)
146
+ return reject(state, "timer_id_conflict");
147
+ const generation = (oldTimer?.generation ?? 0) + 1;
148
+ if (generation > Number.MAX_SAFE_INTEGER)
149
+ return reject(state, "timer_generation_exhausted");
150
+ if (!oldTimer &&
151
+ Object.keys(state.coordination.timers).length >=
152
+ state.coordination.limits.maximumTimers)
153
+ return reject(state, "timer_capacity_exceeded");
154
+ const evidence = Object.freeze({
155
+ leaseRenewalId: payload.leaseRenewalId,
156
+ executionScopeKey: scope,
157
+ leaseRenewalSequence: payload.leaseRenewalSequence,
158
+ ...(payload.previousLeaseRenewalId === undefined
159
+ ? {}
160
+ : { previousLeaseRenewalId: payload.previousLeaseRenewalId }),
161
+ acceptedAt,
162
+ validityVerifiedAt: verifiedAt,
163
+ direction,
164
+ ...(supportedCriticalExtensions === undefined
165
+ ? {}
166
+ : {
167
+ supportedCriticalExtensions: Object.freeze([
168
+ ...supportedCriticalExtensions,
169
+ ]),
170
+ }),
171
+ renewedLeaseExpiresAtLogical: renewedLogical,
172
+ envelope,
173
+ });
174
+ const { leaseExpiresAt: _acceptedLeaseExpiresAt, leaseExpiresAtLogical: _acceptedLeaseExpiresAtLogical, ...headAuthority } = authority;
175
+ const head = Object.freeze({
176
+ ...headAuthority,
177
+ executionScopeKey: scope,
178
+ originalLeaseExpiresAt: prior.originalLeaseExpiresAt,
179
+ originalLeaseExpiresAtLogical: prior.originalLeaseExpiresAtLogical,
180
+ leaseRenewalSequence: payload.leaseRenewalSequence,
181
+ latestLeaseRenewalId: payload.leaseRenewalId,
182
+ currentLeaseExpiresAt: payload.renewedLeaseExpiresAt,
183
+ currentLeaseExpiresAtLogical: renewedLogical,
184
+ status: "active",
185
+ expiryTimerId: timerId,
186
+ expiryTimerGeneration: generation,
187
+ });
188
+ const execution = state.allocation.executionHeads[scope];
189
+ const allocation = restoreMeshAllocationState({
190
+ ...state.allocation,
191
+ leaseRenewals: createFrozenRecord([
192
+ ...recordEntries(state.allocation.leaseRenewals),
193
+ [payload.leaseRenewalId, evidence],
194
+ ]),
195
+ leaseHeads: createFrozenRecord([
196
+ ...recordEntries(state.allocation.leaseHeads).filter(([key]) => key !== scope),
197
+ [scope, head],
198
+ ]),
199
+ ...(execution === undefined
200
+ ? {}
201
+ : {
202
+ executionHeads: createFrozenRecord([
203
+ ...recordEntries(state.allocation.executionHeads).filter(([key]) => key !== scope),
204
+ [
205
+ scope,
206
+ Object.freeze({
207
+ ...execution,
208
+ leaseExpiresAt: head.currentLeaseExpiresAt,
209
+ leaseExpiresAtLogical: head.currentLeaseExpiresAtLogical,
210
+ }),
211
+ ],
212
+ ]),
213
+ }),
214
+ lastLogicalTime: acceptedAt,
215
+ });
216
+ const sequence = state.coordination.localEventSequence + 1;
217
+ const coordination = Object.freeze({
218
+ ...state.coordination,
219
+ timers: createFrozenRecord([
220
+ ...recordEntries(state.coordination.timers).filter(([key]) => key !== timerId),
221
+ [
222
+ timerId,
223
+ Object.freeze({
224
+ timerId,
225
+ kind: "lease.expiry",
226
+ dueAt: renewedLogical,
227
+ generation,
228
+ domainRecordKey: recordKey,
229
+ }),
230
+ ],
231
+ ]),
232
+ domainRecords: createFrozenRecord([
233
+ ...recordEntries(state.coordination.domainRecords),
234
+ [
235
+ recordKey,
236
+ Object.freeze({
237
+ recordKey,
238
+ recordType: "lease.renew",
239
+ recordId: payload.leaseRenewalId,
240
+ contentDigest: envelope.payloadHash.slice("sha256:".length),
241
+ messageId: envelope.messageId,
242
+ acceptedAt,
243
+ objectiveId: payload.objectiveId,
244
+ }),
245
+ ],
246
+ ]),
247
+ journal: Object.freeze([
248
+ ...state.coordination.journal,
249
+ Object.freeze({
250
+ sequence,
251
+ occurredAt: acceptedAt,
252
+ kind: direction === "local"
253
+ ? "command.accepted"
254
+ : "domain.accepted",
255
+ domainRecordKey: recordKey,
256
+ }),
257
+ ]),
258
+ localEventSequence: sequence,
259
+ lastLogicalTime: acceptedAt,
260
+ });
261
+ const next = createMeshAllocationRuntimeState(coordination, Object.freeze({ ...state.discovery, lastLogicalTime: acceptedAt }), Object.freeze({ ...state.objectives, lastLogicalTime: acceptedAt }), allocation);
262
+ const effect = direction === "local"
263
+ ? Object.freeze({
264
+ kind: "allocation.lease_renewal.dispatch",
265
+ leaseRenewalId: payload.leaseRenewalId,
266
+ recipientPeerId: authority.ownerPeerId,
267
+ messageId: envelope.messageId,
268
+ envelope,
269
+ })
270
+ : undefined;
271
+ return Object.freeze({
272
+ accepted: true,
273
+ duplicate: false,
274
+ state: next,
275
+ effects: Object.freeze(effect === undefined ? [] : [effect]),
276
+ });
277
+ }
278
+ /** Consumes only a due, generation-matching lease expiry timer. */
279
+ export function evaluateMeshLeaseExpiryTimer(state, input, receivedAt) {
280
+ if (!input ||
281
+ input.kind !== "timer.fired" ||
282
+ !Number.isSafeInteger(receivedAt) ||
283
+ receivedAt < 0)
284
+ throw new TypeError("Invalid Mesh lease expiry timer input");
285
+ const timer = state.coordination.timers[input.timerId];
286
+ if (!timer || timer.kind !== "lease.expiry")
287
+ return Object.freeze({ accepted: false, code: "timer_unknown", state });
288
+ if (timer.generation !== input.generation)
289
+ return Object.freeze({
290
+ accepted: false,
291
+ code: "timer_generation_stale",
292
+ state,
293
+ });
294
+ if (receivedAt < timer.dueAt)
295
+ return Object.freeze({ accepted: false, code: "timer_not_due", state });
296
+ if (state.coordination.journal.length >=
297
+ state.coordination.limits.maximumJournalEntries)
298
+ return Object.freeze({
299
+ accepted: false,
300
+ code: "journal_capacity_exceeded",
301
+ state,
302
+ });
303
+ if (state.coordination.localEventSequence >= Number.MAX_SAFE_INTEGER)
304
+ throw new RangeError("Mesh coordination event sequence exhausted");
305
+ const leaseEntry = Object.entries(state.allocation.leaseHeads).find(([, head]) => head.expiryTimerId === timer.timerId &&
306
+ head.expiryTimerGeneration === timer.generation);
307
+ const witnessEntry = Object.entries(state.allocation.witnessAssignments).find(([, witness]) => witness.leaseHead?.expiryTimerId === timer.timerId &&
308
+ witness.leaseHead.expiryTimerGeneration === timer.generation);
309
+ if (!leaseEntry && !witnessEntry)
310
+ return Object.freeze({ accepted: false, code: "timer_unknown", state });
311
+ const head = leaseEntry?.[1] ?? witnessEntry?.[1].leaseHead;
312
+ if (head === undefined ||
313
+ head.status !== "active" ||
314
+ head.currentLeaseExpiresAtLogical !== timer.dueAt)
315
+ return Object.freeze({
316
+ accepted: false,
317
+ code: "timer_generation_stale",
318
+ state,
319
+ });
320
+ const fenceKey = meshAssignmentFenceKey(head);
321
+ const fence = state.allocation.assignmentFenceHeads[fenceKey];
322
+ if (fence === undefined ||
323
+ fence.phase !== "active" ||
324
+ !fenceMatchesLease(fence, head))
325
+ return Object.freeze({
326
+ accepted: false,
327
+ code: "timer_generation_stale",
328
+ state,
329
+ });
330
+ const { expiryTimerId: _expiryTimerId, expiryTimerGeneration: _expiryTimerGeneration, ...expiredHead } = head;
331
+ const expiredLeaseHead = Object.freeze({
332
+ ...expiredHead,
333
+ status: "expired",
334
+ });
335
+ const expiredFence = Object.freeze({
336
+ ...fence,
337
+ phase: "expired",
338
+ });
339
+ const witnessProjection = witnessEntry === undefined
340
+ ? undefined
341
+ : Object.freeze({
342
+ ...witnessEntry[1],
343
+ observedAt: receivedAt,
344
+ leaseHead: expiredLeaseHead,
345
+ });
346
+ const allocation = restoreMeshAllocationState({
347
+ ...state.allocation,
348
+ ...(leaseEntry === undefined
349
+ ? {}
350
+ : {
351
+ leaseHeads: createFrozenRecord([
352
+ ...recordEntries(state.allocation.leaseHeads).filter(([key]) => key !== leaseEntry[0]),
353
+ [leaseEntry[0], expiredLeaseHead],
354
+ ]),
355
+ }),
356
+ ...(witnessEntry === undefined || witnessProjection === undefined
357
+ ? {}
358
+ : {
359
+ witnessAssignments: createFrozenRecord([
360
+ ...recordEntries(state.allocation.witnessAssignments).filter(([key]) => key !== witnessEntry[0]),
361
+ [witnessEntry[0], witnessProjection],
362
+ ]),
363
+ }),
364
+ assignmentFenceHeads: createFrozenRecord([
365
+ ...recordEntries(state.allocation.assignmentFenceHeads).filter(([key]) => key !== fenceKey),
366
+ [fenceKey, expiredFence],
367
+ ]),
368
+ lastLogicalTime: receivedAt,
369
+ });
370
+ const sequence = state.coordination.localEventSequence + 1;
371
+ const coordination = Object.freeze({
372
+ ...state.coordination,
373
+ timers: createFrozenRecord(recordEntries(state.coordination.timers).filter(([key]) => key !== timer.timerId)),
374
+ journal: Object.freeze([
375
+ ...state.coordination.journal,
376
+ Object.freeze({
377
+ sequence,
378
+ occurredAt: receivedAt,
379
+ kind: "timer.fired",
380
+ timerId: timer.timerId,
381
+ domainRecordKey: timer.domainRecordKey,
382
+ }),
383
+ ]),
384
+ localEventSequence: sequence,
385
+ lastLogicalTime: receivedAt,
386
+ });
387
+ return Object.freeze({
388
+ accepted: true,
389
+ timer,
390
+ state: createMeshAllocationRuntimeState(coordination, Object.freeze({ ...state.discovery, lastLogicalTime: receivedAt }), Object.freeze({ ...state.objectives, lastLogicalTime: receivedAt }), allocation),
391
+ });
392
+ }
393
+ function resolveAuthority(state, awardId) {
394
+ const award = state.allocation.localAwards[awardId];
395
+ const response = state.allocation.assignmentResponses[awardId];
396
+ const reservation = award && state.allocation.reservations[award.reservationId];
397
+ if (award &&
398
+ response?.kind === "work.accept" &&
399
+ reservation?.status === "committed" &&
400
+ award.status === "accepted")
401
+ return Object.freeze({
402
+ objectiveId: award.objectiveId,
403
+ objectiveDocumentId: award.objectiveDocumentId,
404
+ objectiveRevision: award.objectiveRevision,
405
+ workItemId: award.work.workItemId,
406
+ workItemRevision: award.work.workItemRevision,
407
+ ownerPeerId: award.work.ownerPeerId,
408
+ ownerEpoch: award.work.ownerEpoch,
409
+ assigneePeerId: award.assigneePeerId,
410
+ awardId,
411
+ assignmentEpoch: award.assignmentEpoch,
412
+ assignmentAuthorityId: award.assignmentAuthorityId,
413
+ fencingToken: award.fencingToken,
414
+ acceptanceId: response.responseId,
415
+ acceptanceMessageId: response.envelope.messageId,
416
+ workDeadline: award.workDeadline,
417
+ workDeadlineAt: award.work.workDeadlineAt,
418
+ leaseExpiresAt: award.leaseExpiresAt,
419
+ leaseExpiresAtLogical: award.leaseExpiresAtLogical,
420
+ });
421
+ const local = state.allocation.assigneeAuthorities[awardId];
422
+ const localResponse = state.allocation.localAssignmentResponses[awardId];
423
+ if (local && localResponse?.kind === "work.accept")
424
+ return Object.freeze({
425
+ objectiveId: local.objectiveId,
426
+ objectiveDocumentId: local.objectiveDocumentId,
427
+ objectiveRevision: local.objectiveRevision,
428
+ workItemId: local.workItemId,
429
+ workItemRevision: local.workItemRevision,
430
+ ownerPeerId: local.ownerPeerId,
431
+ ownerEpoch: local.ownerEpoch,
432
+ assigneePeerId: local.assigneePeerId,
433
+ awardId: local.awardId,
434
+ assignmentEpoch: local.assignmentEpoch,
435
+ assignmentAuthorityId: local.assignmentAuthorityId,
436
+ fencingToken: local.fencingToken,
437
+ acceptanceId: local.acceptanceId,
438
+ acceptanceMessageId: localResponse.envelope.messageId,
439
+ workDeadline: local.workDeadline,
440
+ workDeadlineAt: local.workDeadlineAt,
441
+ leaseExpiresAt: local.leaseExpiresAt,
442
+ leaseExpiresAtLogical: local.leaseExpiresAtLogical,
443
+ });
444
+ return undefined;
445
+ }
446
+ function sameAuthority(payload, authority) {
447
+ return (payload.objectiveId === authority.objectiveId &&
448
+ payload.objectiveDocumentId === authority.objectiveDocumentId &&
449
+ payload.objectiveRevision === authority.objectiveRevision &&
450
+ payload.workItemId === authority.workItemId &&
451
+ payload.workItemRevision === authority.workItemRevision &&
452
+ payload.ownerPeerId === authority.ownerPeerId &&
453
+ payload.ownerEpoch === authority.ownerEpoch &&
454
+ payload.assigneePeerId === authority.assigneePeerId &&
455
+ payload.awardId === authority.awardId &&
456
+ payload.assignmentEpoch === authority.assignmentEpoch &&
457
+ payload.assignmentAuthorityId === authority.assignmentAuthorityId &&
458
+ payload.fencingToken === authority.fencingToken &&
459
+ payload.acceptanceId === authority.acceptanceId);
460
+ }
461
+ function scopeKey(authority) {
462
+ return JSON.stringify([
463
+ authority.objectiveId,
464
+ authority.objectiveRevision,
465
+ authority.workItemId,
466
+ authority.workItemRevision,
467
+ authority.ownerPeerId,
468
+ authority.ownerEpoch,
469
+ authority.awardId,
470
+ authority.assignmentEpoch,
471
+ ]);
472
+ }
473
+ function leaseTimerId(scope) {
474
+ return `lease.expiry:${sha256Base64Url(new TextEncoder().encode(scope))}`;
475
+ }
476
+ function fenceMatchesLease(fence, lease) {
477
+ return (fence.assignmentFenceKey === meshAssignmentFenceKey(lease) &&
478
+ fence.objectiveId === lease.objectiveId &&
479
+ fence.objectiveRevision === lease.objectiveRevision &&
480
+ fence.workItemId === lease.workItemId &&
481
+ fence.workItemRevision === lease.workItemRevision &&
482
+ fence.ownerPeerId === lease.ownerPeerId &&
483
+ fence.ownerEpoch === lease.ownerEpoch &&
484
+ fence.assignmentEpoch === lease.assignmentEpoch &&
485
+ fence.assignmentAuthorityId === lease.assignmentAuthorityId &&
486
+ fence.fencingToken === lease.fencingToken &&
487
+ fence.assigneePeerId === lease.assigneePeerId &&
488
+ fence.activeAwardId === lease.awardId);
489
+ }
490
+ function domainKey(id) {
491
+ return JSON.stringify(["lease.renew", id]);
492
+ }
493
+ function compare(left, right) {
494
+ const result = compareMeshTimestamps(left, right);
495
+ if (!result.ok)
496
+ throw new TypeError("Invalid lease timestamp");
497
+ return result.value;
498
+ }
499
+ function canonicalDigest(envelope) {
500
+ const canonical = canonicalizeMeshPayload(envelope.payload);
501
+ return (canonical.ok &&
502
+ envelope.payloadHash === `sha256:${sha256Base64Url(canonical.value)}`);
503
+ }
504
+ function sameData(left, right) {
505
+ return JSON.stringify(left) === JSON.stringify(right);
506
+ }
507
+ function reject(state, code) {
508
+ return Object.freeze({ accepted: false, code, state });
509
+ }
510
+ function acceptedDuplicate(state) {
511
+ return Object.freeze({
512
+ accepted: true,
513
+ duplicate: true,
514
+ state,
515
+ effects: Object.freeze([]),
516
+ });
517
+ }
518
+ //# sourceMappingURL=coordination-lease-renewal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination-lease-renewal.js","sourceRoot":"","sources":["../src/coordination-lease-renewal.ts"],"names":[],"mappings":"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"}