@agentplat/mesh-sim 0.3.0-beta.2 → 0.3.0-beta.4

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 (185) hide show
  1. package/README.md +447 -2
  2. package/dist/collective-closed-loop-action.d.ts +80 -0
  3. package/dist/collective-closed-loop-action.d.ts.map +1 -0
  4. package/dist/collective-closed-loop-action.js +471 -0
  5. package/dist/collective-closed-loop-action.js.map +1 -0
  6. package/dist/collective-closed-loop-contracts.d.ts +75 -0
  7. package/dist/collective-closed-loop-contracts.d.ts.map +1 -0
  8. package/dist/collective-closed-loop-contracts.js +420 -0
  9. package/dist/collective-closed-loop-contracts.js.map +1 -0
  10. package/dist/collective-closed-loop-fault-matrix.d.ts +101 -0
  11. package/dist/collective-closed-loop-fault-matrix.d.ts.map +1 -0
  12. package/dist/collective-closed-loop-fault-matrix.js +253 -0
  13. package/dist/collective-closed-loop-fault-matrix.js.map +1 -0
  14. package/dist/collective-closed-loop-recovery.d.ts +70 -0
  15. package/dist/collective-closed-loop-recovery.d.ts.map +1 -0
  16. package/dist/collective-closed-loop-recovery.js +823 -0
  17. package/dist/collective-closed-loop-recovery.js.map +1 -0
  18. package/dist/collective-closed-loop-reference.d.ts +54 -0
  19. package/dist/collective-closed-loop-reference.d.ts.map +1 -0
  20. package/dist/collective-closed-loop-reference.js +1696 -0
  21. package/dist/collective-closed-loop-reference.js.map +1 -0
  22. package/dist/collective-closed-loop-replanning.d.ts +27 -0
  23. package/dist/collective-closed-loop-replanning.d.ts.map +1 -0
  24. package/dist/collective-closed-loop-replanning.js +151 -0
  25. package/dist/collective-closed-loop-replanning.js.map +1 -0
  26. package/dist/collective-closed-loop-resilience-campaign.d.ts +22 -0
  27. package/dist/collective-closed-loop-resilience-campaign.d.ts.map +1 -0
  28. package/dist/collective-closed-loop-resilience-campaign.js +196 -0
  29. package/dist/collective-closed-loop-resilience-campaign.js.map +1 -0
  30. package/dist/collective-closed-loop-resilience-contracts.d.ts +138 -0
  31. package/dist/collective-closed-loop-resilience-contracts.d.ts.map +1 -0
  32. package/dist/collective-closed-loop-resilience-contracts.js +677 -0
  33. package/dist/collective-closed-loop-resilience-contracts.js.map +1 -0
  34. package/dist/collective-closed-loop-runner.d.ts +133 -0
  35. package/dist/collective-closed-loop-runner.d.ts.map +1 -0
  36. package/dist/collective-closed-loop-runner.js +1429 -0
  37. package/dist/collective-closed-loop-runner.js.map +1 -0
  38. package/dist/collective-closed-loop-runtime.d.ts +95 -0
  39. package/dist/collective-closed-loop-runtime.d.ts.map +1 -0
  40. package/dist/collective-closed-loop-runtime.js +1192 -0
  41. package/dist/collective-closed-loop-runtime.js.map +1 -0
  42. package/dist/collective-effect-provenance.d.ts +5 -0
  43. package/dist/collective-effect-provenance.d.ts.map +1 -0
  44. package/dist/collective-effect-provenance.js +32 -0
  45. package/dist/collective-effect-provenance.js.map +1 -0
  46. package/dist/collective-environment.d.ts +49 -0
  47. package/dist/collective-environment.d.ts.map +1 -0
  48. package/dist/collective-environment.js +907 -0
  49. package/dist/collective-environment.js.map +1 -0
  50. package/dist/collective-progressive-scale-overlay.d.ts +39 -0
  51. package/dist/collective-progressive-scale-overlay.d.ts.map +1 -0
  52. package/dist/collective-progressive-scale-overlay.js +147 -0
  53. package/dist/collective-progressive-scale-overlay.js.map +1 -0
  54. package/dist/collective-progressive-scale.d.ts +202 -0
  55. package/dist/collective-progressive-scale.d.ts.map +1 -0
  56. package/dist/collective-progressive-scale.js +755 -0
  57. package/dist/collective-progressive-scale.js.map +1 -0
  58. package/dist/collective-statistical-campaign-aggregation.d.ts +97 -0
  59. package/dist/collective-statistical-campaign-aggregation.d.ts.map +1 -0
  60. package/dist/collective-statistical-campaign-aggregation.js +446 -0
  61. package/dist/collective-statistical-campaign-aggregation.js.map +1 -0
  62. package/dist/collective-statistical-campaign-artifact-stream.d.ts +66 -0
  63. package/dist/collective-statistical-campaign-artifact-stream.d.ts.map +1 -0
  64. package/dist/collective-statistical-campaign-artifact-stream.js +207 -0
  65. package/dist/collective-statistical-campaign-artifact-stream.js.map +1 -0
  66. package/dist/collective-statistical-campaign-bundle.d.ts +151 -0
  67. package/dist/collective-statistical-campaign-bundle.d.ts.map +1 -0
  68. package/dist/collective-statistical-campaign-bundle.js +885 -0
  69. package/dist/collective-statistical-campaign-bundle.js.map +1 -0
  70. package/dist/collective-statistical-campaign-executor.d.ts +131 -0
  71. package/dist/collective-statistical-campaign-executor.d.ts.map +1 -0
  72. package/dist/collective-statistical-campaign-executor.js +856 -0
  73. package/dist/collective-statistical-campaign-executor.js.map +1 -0
  74. package/dist/collective-statistical-campaign-normative-analysis.d.ts +85 -0
  75. package/dist/collective-statistical-campaign-normative-analysis.d.ts.map +1 -0
  76. package/dist/collective-statistical-campaign-normative-analysis.js +483 -0
  77. package/dist/collective-statistical-campaign-normative-analysis.js.map +1 -0
  78. package/dist/collective-statistical-campaign-normative-operation.d.ts +89 -0
  79. package/dist/collective-statistical-campaign-normative-operation.d.ts.map +1 -0
  80. package/dist/collective-statistical-campaign-normative-operation.js +266 -0
  81. package/dist/collective-statistical-campaign-normative-operation.js.map +1 -0
  82. package/dist/collective-statistical-campaign-normative-registry.d.ts +24 -0
  83. package/dist/collective-statistical-campaign-normative-registry.d.ts.map +1 -0
  84. package/dist/collective-statistical-campaign-normative-registry.js +163 -0
  85. package/dist/collective-statistical-campaign-normative-registry.js.map +1 -0
  86. package/dist/collective-statistical-campaign-registered-adapter.d.ts +16 -0
  87. package/dist/collective-statistical-campaign-registered-adapter.d.ts.map +1 -0
  88. package/dist/collective-statistical-campaign-registered-adapter.js +518 -0
  89. package/dist/collective-statistical-campaign-registered-adapter.js.map +1 -0
  90. package/dist/collective-statistical-campaign-scale.d.ts +85 -0
  91. package/dist/collective-statistical-campaign-scale.d.ts.map +1 -0
  92. package/dist/collective-statistical-campaign-scale.js +349 -0
  93. package/dist/collective-statistical-campaign-scale.js.map +1 -0
  94. package/dist/collective-trace-journal.d.ts +20 -0
  95. package/dist/collective-trace-journal.d.ts.map +1 -0
  96. package/dist/collective-trace-journal.js +105 -0
  97. package/dist/collective-trace-journal.js.map +1 -0
  98. package/dist/index.d.ts +25 -0
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +25 -0
  101. package/dist/index.js.map +1 -1
  102. package/dist/multi-domain-environment-contracts.d.ts +122 -0
  103. package/dist/multi-domain-environment-contracts.d.ts.map +1 -0
  104. package/dist/multi-domain-environment-contracts.js +14 -0
  105. package/dist/multi-domain-environment-contracts.js.map +1 -0
  106. package/dist/multi-domain-environment-runtime.d.ts +25 -0
  107. package/dist/multi-domain-environment-runtime.d.ts.map +1 -0
  108. package/dist/multi-domain-environment-runtime.js +493 -0
  109. package/dist/multi-domain-environment-runtime.js.map +1 -0
  110. package/dist/multi-domain-environment-validation.d.ts +33 -0
  111. package/dist/multi-domain-environment-validation.d.ts.map +1 -0
  112. package/dist/multi-domain-environment-validation.js +415 -0
  113. package/dist/multi-domain-environment-validation.js.map +1 -0
  114. package/dist/multi-domain-environment.d.ts +4 -0
  115. package/dist/multi-domain-environment.d.ts.map +1 -0
  116. package/dist/multi-domain-environment.js +4 -0
  117. package/dist/multi-domain-environment.js.map +1 -0
  118. package/dist/reducer-scenario.d.ts.map +1 -1
  119. package/dist/reducer-scenario.js +67 -19
  120. package/dist/reducer-scenario.js.map +1 -1
  121. package/dist/scalable-evaluation-contracts.d.ts +835 -0
  122. package/dist/scalable-evaluation-contracts.d.ts.map +1 -0
  123. package/dist/scalable-evaluation-contracts.js +22 -0
  124. package/dist/scalable-evaluation-contracts.js.map +1 -0
  125. package/dist/scalable-evaluation-durability.d.ts +16 -0
  126. package/dist/scalable-evaluation-durability.d.ts.map +1 -0
  127. package/dist/scalable-evaluation-durability.js +339 -0
  128. package/dist/scalable-evaluation-durability.js.map +1 -0
  129. package/dist/scalable-evaluation-evidence.d.ts +93 -0
  130. package/dist/scalable-evaluation-evidence.d.ts.map +1 -0
  131. package/dist/scalable-evaluation-evidence.js +470 -0
  132. package/dist/scalable-evaluation-evidence.js.map +1 -0
  133. package/dist/scalable-evaluation-reference-integrated.d.ts +87 -0
  134. package/dist/scalable-evaluation-reference-integrated.d.ts.map +1 -0
  135. package/dist/scalable-evaluation-reference-integrated.js +1318 -0
  136. package/dist/scalable-evaluation-reference-integrated.js.map +1 -0
  137. package/dist/scalable-evaluation-runner.d.ts +8 -0
  138. package/dist/scalable-evaluation-runner.d.ts.map +1 -0
  139. package/dist/scalable-evaluation-runner.js +1810 -0
  140. package/dist/scalable-evaluation-runner.js.map +1 -0
  141. package/dist/scalable-evaluation-runtime.d.ts +86 -0
  142. package/dist/scalable-evaluation-runtime.d.ts.map +1 -0
  143. package/dist/scalable-evaluation-runtime.js +1310 -0
  144. package/dist/scalable-evaluation-runtime.js.map +1 -0
  145. package/dist/scalable-evaluation-validation.d.ts +59 -0
  146. package/dist/scalable-evaluation-validation.d.ts.map +1 -0
  147. package/dist/scalable-evaluation-validation.js +377 -0
  148. package/dist/scalable-evaluation-validation.js.map +1 -0
  149. package/dist/scalable-evaluation.d.ts +8 -0
  150. package/dist/scalable-evaluation.d.ts.map +1 -0
  151. package/dist/scalable-evaluation.js +8 -0
  152. package/dist/scalable-evaluation.js.map +1 -0
  153. package/dist/sharded-simulation-contracts.d.ts +240 -0
  154. package/dist/sharded-simulation-contracts.d.ts.map +1 -0
  155. package/dist/sharded-simulation-contracts.js +199 -0
  156. package/dist/sharded-simulation-contracts.js.map +1 -0
  157. package/dist/sharded-simulation-runtime.d.ts +64 -0
  158. package/dist/sharded-simulation-runtime.d.ts.map +1 -0
  159. package/dist/sharded-simulation-runtime.js +755 -0
  160. package/dist/sharded-simulation-runtime.js.map +1 -0
  161. package/dist/sharded-simulation-validation.d.ts +10 -0
  162. package/dist/sharded-simulation-validation.d.ts.map +1 -0
  163. package/dist/sharded-simulation-validation.js +250 -0
  164. package/dist/sharded-simulation-validation.js.map +1 -0
  165. package/dist/sharded-simulation.d.ts +46 -0
  166. package/dist/sharded-simulation.d.ts.map +1 -0
  167. package/dist/sharded-simulation.js +32 -0
  168. package/dist/sharded-simulation.js.map +1 -0
  169. package/dist/verified-benchmark-contracts.d.ts +132 -0
  170. package/dist/verified-benchmark-contracts.d.ts.map +1 -0
  171. package/dist/verified-benchmark-contracts.js +2 -0
  172. package/dist/verified-benchmark-contracts.js.map +1 -0
  173. package/dist/verified-benchmark-runtime.d.ts +20 -0
  174. package/dist/verified-benchmark-runtime.d.ts.map +1 -0
  175. package/dist/verified-benchmark-runtime.js +199 -0
  176. package/dist/verified-benchmark-runtime.js.map +1 -0
  177. package/dist/verified-benchmark-validation.d.ts +64 -0
  178. package/dist/verified-benchmark-validation.d.ts.map +1 -0
  179. package/dist/verified-benchmark-validation.js +481 -0
  180. package/dist/verified-benchmark-validation.js.map +1 -0
  181. package/dist/verified-benchmark.d.ts +4 -0
  182. package/dist/verified-benchmark.d.ts.map +1 -0
  183. package/dist/verified-benchmark.js +4 -0
  184. package/dist/verified-benchmark.js.map +1 -0
  185. package/package.json +18 -8
@@ -0,0 +1,471 @@
1
+ import { budgetReservationDigestV1, governedActionPermitDigestV1, validateCollectiveAuthorityStateV1, } from "@agentplat/collective-control";
2
+ import { createGovernedActionGatewayFactoryV1, LocalPolicyAdapterV1, } from "@agentplat/collective-control/actions";
3
+ import { MemoryCollectiveEvidenceSinkV1, MemoryCollectiveExecutionRepositoryV1, } from "@agentplat/collective-control/memory";
4
+ import { actionInputDigest, controlDigest, issueActionGrantV1, LocalGrantLedger, scopeDigest, } from "@agentplat/inference-control/tools";
5
+ import { reduceInferenceControlStateV1, } from "@agentplat/inference-control";
6
+ import { createCollectiveProtectedEffectAttemptV1, } from "@agentplat/collective-planning/evaluation";
7
+ import { digestTrustEligibilityDecisionV1, evaluateTrustEligibilityV1, } from "@agentplat/trust";
8
+ import { collectiveTraceJournalForOwnerV2 } from "./collective-trace-journal.js";
9
+ import { recordCollectiveEffectReceiptProvenanceV1 } from "./collective-effect-provenance.js";
10
+ /**
11
+ * Runs one protected action through real Trust, inference, Collective Control
12
+ * and the fenced evaluation sink. It is intentionally a one-shot composition
13
+ * boundary: callers produce observations/results outside this module.
14
+ */
15
+ export async function runCollectiveClosedLoopActionV1(input) {
16
+ const authorityState = validateCollectiveAuthorityStateV1(input.authorityState);
17
+ assertAcceptedMandate(authorityState, input.mandate);
18
+ assertCurrentMesh(input.workContract, input.mesh);
19
+ assertTrustScope(input.trustRequest, input.workContract, input.mesh);
20
+ assertActionScope(input.actionGrant, input.workContract, input.mesh);
21
+ if (actionInputDigest(input.actionInput) !== input.actionGrant.inputDigest)
22
+ throw new Error("closed_loop_action_input_mismatch");
23
+ if (input.actionGrant.actionBindingId !== input.actionBinding.actionBindingId ||
24
+ input.actionGrant.actionBindingVersion !==
25
+ input.actionBinding.actionBindingVersion ||
26
+ input.actionGrant.namespace !== input.actionBinding.namespace ||
27
+ input.actionGrant.toolId !== input.actionBinding.toolId ||
28
+ input.actionGrant.operation !== input.actionBinding.operation ||
29
+ input.actionGrant.handlerDigest !== input.actionBinding.handlerDigest)
30
+ throw new Error("closed_loop_action_binding_mismatch");
31
+ if (input.actionBinding.fencingMode !== "downstream_atomic")
32
+ throw new Error("closed_loop_action_fencing_required");
33
+ const trustDecision = evaluateTrustEligibilityV1(input.trustState, input.trustRequest, input.logicalTimeMs);
34
+ if (trustDecision.disposition !== "eligible")
35
+ throw new Error("closed_loop_trust_ineligible");
36
+ appendActionTrace(input, "trust.assessed", asSha256Digest(digestTrustEligibilityDecisionV1(trustDecision)));
37
+ const inferenceState = reduceToIssuedGrant(input);
38
+ const retainedGrant = inferenceState.grants.find((grant) => grant.grantId === input.actionGrant.grantId);
39
+ if (!retainedGrant ||
40
+ retainedGrant.status !== "issued" ||
41
+ retainedGrant.reservation !== null)
42
+ throw new Error("closed_loop_grant_not_issued");
43
+ const actionGrant = toActionGrant(retainedGrant);
44
+ appendActionTrace(input, "inference.assessed", asDigest(controlDigest("message", input.assessment)));
45
+ const grantLedger = new LocalGrantLedger(input.gatewayId);
46
+ await issueActionGrantV1(grantLedger, actionGrant);
47
+ appendActionTrace(input, "authority.grant", asDigest(controlDigest("grant", actionGrant)));
48
+ const execution = new MemoryCollectiveExecutionRepositoryV1({
49
+ tenantId: input.workContract.tenantId,
50
+ policyDomainId: input.workContract.policyDomainId,
51
+ });
52
+ const opened = execution.registerWork({
53
+ mandate: input.mandate,
54
+ workContract: input.workContract,
55
+ authorizedAt: input.wallTime,
56
+ acceptedAtLogicalMs: input.logicalTimeMs,
57
+ });
58
+ if (!opened.accepted)
59
+ throw new Error(`closed_loop_work_${opened.code}`);
60
+ const budgetReservation = reservationFor(input, actionGrant);
61
+ const actionPermit = permitFor(input, actionGrant, budgetReservation, trustDecision);
62
+ const issued = execution.issuePermit({
63
+ mandate: input.mandate,
64
+ budgetReservation,
65
+ actionPermit,
66
+ authorizedAt: input.wallTime,
67
+ acceptedAtLogicalMs: input.logicalTimeMs,
68
+ });
69
+ if (!issued.accepted)
70
+ throw new Error(`closed_loop_permit_${issued.code}`);
71
+ appendActionTrace(input, "authority.reservation", budgetReservation.reservationDigest);
72
+ appendActionTrace(input, "authority.permit", actionPermit.permitDigest);
73
+ let effectAttempt = null;
74
+ let receipt = null;
75
+ const evidence = new MemoryCollectiveEvidenceSinkV1(input.workContract.tenantId, input.workContract.policyDomainId);
76
+ const currentness = currentnessFor(input, trustDecision, inferenceState);
77
+ const adapter = new LocalPolicyAdapterV1({ read: () => authorityState }, execution, { wallTimeForLogical: () => input.wallTime }, currentness, evidence);
78
+ const gatewayFactory = createGovernedActionGatewayFactoryV1({
79
+ grantRepository: grantLedger,
80
+ binding: input.actionBinding,
81
+ downstream: {
82
+ dispatcherId: input.actionBinding.dispatcherId,
83
+ dispatcherVersion: input.actionBinding.dispatcherVersion,
84
+ fencingMode: "downstream_atomic",
85
+ async dispatch({ permit }) {
86
+ const nextAttempt = effectAttemptFor(input, actionPermit, permit);
87
+ appendActionTrace(input, "effect.dispatch", nextAttempt.attemptDigest);
88
+ const nextReceipt = input.environment.applyEffect(nextAttempt);
89
+ recordCollectiveEffectReceiptProvenanceV1(input.environment, nextAttempt, nextReceipt);
90
+ effectAttempt = nextAttempt;
91
+ receipt = nextReceipt;
92
+ return nextReceipt.status === "committed"
93
+ ? {
94
+ ok: true,
95
+ value: {
96
+ receiptDigest: nextReceipt.receiptDigest,
97
+ effectId: nextReceipt.effectId,
98
+ status: nextReceipt.status,
99
+ },
100
+ }
101
+ : {
102
+ ok: false,
103
+ error: { code: nextReceipt.reasonCode ?? nextReceipt.status },
104
+ };
105
+ },
106
+ },
107
+ contextResolver: {
108
+ contextResolverId: input.actionBinding.contextResolverId,
109
+ contextResolverVersion: input.actionBinding.contextResolverVersion,
110
+ async resolve(scope) {
111
+ return {
112
+ tenant: { tenantId: scope.tenantId },
113
+ toolId: input.actionBinding.toolId,
114
+ runId: scope.runId,
115
+ };
116
+ },
117
+ },
118
+ baseAuthorityResolver: {
119
+ resolverId: "collective-closed-loop-mesh-currentness",
120
+ resolverVersion: 1,
121
+ async resolve(scope, actionDigestValue) {
122
+ if (!meshScopeMatches(scope, input.mesh) ||
123
+ actionDigestValue !== actionGrant.actionDigest)
124
+ return unavailableAuthority(scope, actionDigestValue);
125
+ return {
126
+ schemaVersion: 1,
127
+ status: "current",
128
+ resolverId: "collective-closed-loop-mesh-currentness",
129
+ resolverVersion: 1,
130
+ scopeDigest: scopeDigest(scope),
131
+ actionDigest: actionDigestValue,
132
+ scope,
133
+ authorityGeneration: input.mesh.authorityGeneration,
134
+ fencingToken: input.mesh.fencingToken,
135
+ };
136
+ },
137
+ },
138
+ assessmentResolver: {
139
+ assessorId: input.assessment.assessorId,
140
+ assessorVersion: input.assessment.assessorVersion,
141
+ async consumeCurrent(grant, logicalTimeMs) {
142
+ return assessmentIsCurrent(inferenceState, input, grant, logicalTimeMs);
143
+ },
144
+ },
145
+ guard: adapter.guard,
146
+ });
147
+ const dispatched = await adapter.dispatchGovernedAction({
148
+ gatewayFactory,
149
+ permitId: actionPermit.permitId,
150
+ actionInput: input.actionInput,
151
+ logicalTimeMs: input.logicalTimeMs,
152
+ decisionId: input.decisionId,
153
+ });
154
+ if (dispatched.action === null)
155
+ throw new Error(`closed_loop_action_${dispatched.code}`);
156
+ appendActionTrace(input, "evidence.appended", asDigest(dispatched.action.state.stateDigest));
157
+ return Object.freeze({
158
+ authorizedAt: input.wallTime,
159
+ trustDecision,
160
+ inferenceState,
161
+ actionGrant,
162
+ budgetReservation,
163
+ actionPermit,
164
+ executionStateDigest: dispatched.action.state.stateDigest,
165
+ action: dispatched.action,
166
+ effectAttempt,
167
+ receipt,
168
+ });
169
+ }
170
+ function reduceToIssuedGrant(input) {
171
+ let state = input.inferenceState;
172
+ for (const [inputId, type, value] of [
173
+ [
174
+ "closed-loop:assessment-request",
175
+ "assessment_requested",
176
+ input.assessmentRequest,
177
+ ],
178
+ ["closed-loop:assessment", "assessment_received", input.assessment],
179
+ ["closed-loop:grant", "grant_issued", input.actionGrant],
180
+ ]) {
181
+ const reduction = reduceInferenceControlStateV1(state, {
182
+ schemaVersion: 1,
183
+ inputId: `${inputId}:${input.actionGrant.grantId}`,
184
+ expectedStateGeneration: state.stateGeneration,
185
+ logicalTimeMs: input.logicalTimeMs,
186
+ ...(type === "assessment_requested"
187
+ ? { type, request: value }
188
+ : type === "assessment_received"
189
+ ? { type, assessment: value }
190
+ : { type, grant: value }),
191
+ });
192
+ if (!reduction.accepted)
193
+ throw new Error(`closed_loop_inference_${reduction.reasonCode}`);
194
+ state = reduction.state;
195
+ }
196
+ return state;
197
+ }
198
+ function reservationFor(input, grant) {
199
+ const body = {
200
+ schemaVersion: 1,
201
+ reservationId: input.reservationId,
202
+ generation: 1,
203
+ tenantId: input.workContract.tenantId,
204
+ policyDomainId: input.workContract.policyDomainId,
205
+ mandateId: input.mandate.statement.mandateId,
206
+ mandateRevision: input.mandate.statement.revision,
207
+ mandateDigest: input.mandate.mandateDigest,
208
+ workContractId: input.workContract.workContractId,
209
+ permitId: input.permitId,
210
+ idempotencyKey: grant.idempotencyKey,
211
+ units: input.workContract.maximumActionBudgetUnits,
212
+ reservedAtLogicalMs: input.logicalTimeMs,
213
+ expiresAtLogicalMs: grant.expiresAtLogicalMs,
214
+ status: "reserved",
215
+ outcomeId: null,
216
+ };
217
+ return Object.freeze({
218
+ ...body,
219
+ reservationDigest: budgetReservationDigestV1(body),
220
+ });
221
+ }
222
+ function permitFor(input, grant, reservation, trust) {
223
+ const scope = grant.scope;
224
+ if (scope.kind !== "coordinated")
225
+ throw new Error("closed_loop_scope_not_coordinated");
226
+ const body = {
227
+ schemaVersion: 1,
228
+ permitId: input.permitId,
229
+ generation: 1,
230
+ gatewayId: input.gatewayId,
231
+ tenantId: input.workContract.tenantId,
232
+ policyDomainId: input.workContract.policyDomainId,
233
+ mandateId: input.mandate.statement.mandateId,
234
+ mandateRevision: input.mandate.statement.revision,
235
+ mandateDigest: input.mandate.mandateDigest,
236
+ workContractId: input.workContract.workContractId,
237
+ workContractDigest: input.workContract.workContractDigest,
238
+ actionGrantId: grant.grantId,
239
+ actionGrantDigest: asDigest(controlDigest("grant", grant)),
240
+ actionScopeDigest: asDigest(grant.scopeDigest),
241
+ assignmentAuthorityId: scope.assignmentAuthorityId,
242
+ assignedPeerId: scope.peerId,
243
+ assignedInstanceId: scope.instanceId,
244
+ assignmentEpoch: scope.assignmentEpoch,
245
+ authorityGeneration: scope.authorityGeneration,
246
+ fencingToken: scope.fencingToken,
247
+ namespace: input.actionBinding.namespace,
248
+ toolId: input.actionBinding.toolId,
249
+ operation: input.actionBinding.operation,
250
+ actionBindingId: input.actionBinding.actionBindingId,
251
+ actionBindingVersion: input.actionBinding.actionBindingVersion,
252
+ handlerDigest: asDigest(input.actionBinding.handlerDigest),
253
+ inputDigest: asDigest(grant.inputDigest),
254
+ assessmentDigest: asDigest(controlDigest("message", input.assessment)),
255
+ trustDecisionDigest: asSha256Digest(digestTrustEligibilityDecisionV1(trust)),
256
+ budgetReservationId: reservation.reservationId,
257
+ budgetUnits: reservation.units,
258
+ idempotencyKey: grant.idempotencyKey,
259
+ issuedAtLogicalMs: input.logicalTimeMs,
260
+ expiresAtLogicalMs: grant.expiresAtLogicalMs,
261
+ status: "issued",
262
+ outcomeId: null,
263
+ };
264
+ return Object.freeze({
265
+ ...body,
266
+ permitDigest: governedActionPermitDigestV1(body),
267
+ });
268
+ }
269
+ function currentnessFor(input, initialTrust, inferenceState) {
270
+ return {
271
+ check({ permit, scope, logicalTimeMs, }) {
272
+ if ((scope !== null && !meshScopeMatches(scope, input.mesh)) ||
273
+ permit.assignmentAuthorityId !== input.mesh.assignmentAuthorityId ||
274
+ permit.assignedPeerId !== input.mesh.assignedPeerId ||
275
+ permit.assignedInstanceId !== input.mesh.assignedInstanceId ||
276
+ permit.assignmentEpoch !== input.mesh.assignmentEpoch ||
277
+ permit.authorityGeneration !== input.mesh.authorityGeneration ||
278
+ permit.fencingToken !== input.mesh.fencingToken)
279
+ return { allowed: false, code: "mesh_assignment_not_current" };
280
+ if (!assessmentIsCurrent(inferenceState, input, toActionGrant(input.actionGrant), logicalTimeMs))
281
+ return {
282
+ allowed: false,
283
+ code: "inference_assessment_not_current",
284
+ };
285
+ try {
286
+ const currentTrust = evaluateTrustEligibilityV1(input.trustState, input.trustRequest, logicalTimeMs);
287
+ if (currentTrust.disposition !== "eligible" ||
288
+ digestTrustEligibilityDecisionV1(currentTrust) !==
289
+ digestTrustEligibilityDecisionV1(initialTrust))
290
+ return { allowed: false, code: "trust_not_current" };
291
+ }
292
+ catch {
293
+ return { allowed: false, code: "trust_unavailable" };
294
+ }
295
+ return { allowed: true, code: "allowed" };
296
+ },
297
+ };
298
+ }
299
+ function effectAttemptFor(input, governedPermit, dispatchPermit) {
300
+ if (dispatchPermit.authorityGeneration !== input.mesh.authorityGeneration ||
301
+ dispatchPermit.fencingToken !== input.mesh.fencingToken ||
302
+ dispatchPermit.idempotencyKey !== governedPermit.idempotencyKey)
303
+ throw new Error("closed_loop_dispatch_fence_mismatch");
304
+ return createCollectiveProtectedEffectAttemptV1({
305
+ schemaVersion: 1,
306
+ attemptId: `attempt:${dispatchPermit.dispatchAttemptId}`,
307
+ idempotencyKey: dispatchPermit.idempotencyKey,
308
+ registrationDigest: input.effect.registrationDigest,
309
+ tenantId: input.workContract.tenantId,
310
+ missionIntentId: input.effect.missionIntentId,
311
+ intentRevision: input.effect.intentRevision,
312
+ intentDigest: input.effect.intentDigest,
313
+ peerId: input.mesh.assignedPeerId,
314
+ peerInstanceId: input.mesh.assignedInstanceId,
315
+ workItemId: input.mesh.workItemId,
316
+ workItemRevision: input.mesh.workItemRevision,
317
+ workContractId: input.workContract.workContractId,
318
+ workContractDigest: input.workContract.workContractDigest,
319
+ assignmentEpoch: input.mesh.assignmentEpoch,
320
+ authorityGeneration: input.mesh.authorityGeneration,
321
+ fencingToken: input.mesh.fencingToken,
322
+ actionClass: input.effect.actionClass,
323
+ inputDigest: governedPermit.inputDigest,
324
+ attemptedAtLogicalMs: input.logicalTimeMs,
325
+ });
326
+ }
327
+ function assessmentIsCurrent(state, input, grant, logicalTimeMs) {
328
+ const request = state.assessmentRequests.find((item) => item.assessmentRequestId === grant.assessmentRequestId);
329
+ const assessment = state.assessments.find((item) => item.assessmentId === grant.assessmentId);
330
+ return Boolean(request &&
331
+ assessment &&
332
+ request.status === "accepted" &&
333
+ request.checkpoint === "pre_tool" &&
334
+ request.targetDigest === grant.assessmentTargetDigest &&
335
+ assessment.disposition === "allow" &&
336
+ assessment.assessmentRequestId === request.assessmentRequestId &&
337
+ assessment.requestGeneration === request.requestGeneration &&
338
+ logicalTimeMs < request.expiresAtLogicalMs &&
339
+ logicalTimeMs < assessment.expiresAtLogicalMs &&
340
+ grant.grantId === input.actionGrant.grantId);
341
+ }
342
+ function assertAcceptedMandate(authority, mandate) {
343
+ if (!authority.mandates.some((item) => item.mandate.statement.mandateId === mandate.statement.mandateId &&
344
+ item.mandate.mandateDigest === mandate.mandateDigest))
345
+ throw new Error("closed_loop_mandate_not_accepted");
346
+ }
347
+ function assertCurrentMesh(work, mesh) {
348
+ const assignment = work.assignment;
349
+ if (work.status !== "active" ||
350
+ work.objective.meshId !== mesh.meshId ||
351
+ work.objective.objectiveId !== mesh.objectiveId ||
352
+ work.objective.objectiveRevision !== mesh.objectiveRevision ||
353
+ assignment.workItemId !== mesh.workItemId ||
354
+ assignment.workItemRevision !== mesh.workItemRevision ||
355
+ assignment.assignedPeerId !== mesh.assignedPeerId ||
356
+ assignment.assignedInstanceId !== mesh.assignedInstanceId ||
357
+ assignment.assignmentAuthorityId !== mesh.assignmentAuthorityId ||
358
+ assignment.assignmentEpoch !== mesh.assignmentEpoch ||
359
+ assignment.authorityGeneration !== mesh.authorityGeneration ||
360
+ assignment.fencingToken !== mesh.fencingToken ||
361
+ assignment.leaseExpiresAtLogicalMs !== mesh.leaseExpiresAtLogicalMs ||
362
+ mesh.objectiveTerminal ||
363
+ mesh.workTerminal)
364
+ throw new Error("closed_loop_mesh_not_current");
365
+ }
366
+ function assertActionScope(grant, work, mesh) {
367
+ if (grant.scope.kind !== "coordinated" ||
368
+ grant.scope.tenantId !== work.tenantId ||
369
+ grant.scope.policyId !== work.inferencePolicyId ||
370
+ !meshScopeMatches(grant.scope, mesh))
371
+ throw new Error("closed_loop_scope_not_current");
372
+ }
373
+ function assertTrustScope(request, work, mesh) {
374
+ const scope = request.scope;
375
+ if (request.tenantId !== work.tenantId ||
376
+ request.policyId !== work.trustPolicyId ||
377
+ request.subject.kind !== "peer" ||
378
+ request.subject.peerId !== mesh.assignedPeerId ||
379
+ scope.kind !== "work" ||
380
+ scope.tenantId !== work.tenantId ||
381
+ scope.meshId !== mesh.meshId ||
382
+ scope.objectiveId !== mesh.objectiveId ||
383
+ scope.objectiveRevision !== mesh.objectiveRevision ||
384
+ scope.workItemId !== mesh.workItemId ||
385
+ scope.workItemRevision !== mesh.workItemRevision ||
386
+ scope.assignmentEpoch !== mesh.assignmentEpoch ||
387
+ scope.assignmentAuthorityId !== mesh.assignmentAuthorityId ||
388
+ scope.fencingToken !== mesh.fencingToken)
389
+ throw new Error("closed_loop_trust_scope_not_current");
390
+ }
391
+ function meshScopeMatches(scope, mesh) {
392
+ return (scope.kind === "coordinated" &&
393
+ scope.meshId === mesh.meshId &&
394
+ scope.objectiveId === mesh.objectiveId &&
395
+ scope.objectiveRevision === mesh.objectiveRevision &&
396
+ scope.workItemId === mesh.workItemId &&
397
+ scope.workItemRevision === mesh.workItemRevision &&
398
+ scope.peerId === mesh.assignedPeerId &&
399
+ scope.instanceId === mesh.assignedInstanceId &&
400
+ scope.assignmentAuthorityId === mesh.assignmentAuthorityId &&
401
+ scope.assignmentEpoch === mesh.assignmentEpoch &&
402
+ scope.authorityGeneration === mesh.authorityGeneration &&
403
+ scope.fencingToken === mesh.fencingToken &&
404
+ scope.leaseExpiresAtLogicalMs === mesh.leaseExpiresAtLogicalMs &&
405
+ !scope.objectiveTerminal &&
406
+ !scope.workTerminal);
407
+ }
408
+ function unavailableAuthority(scope, actionDigest) {
409
+ return {
410
+ schemaVersion: 1,
411
+ status: "unavailable",
412
+ resolverId: "collective-closed-loop-mesh-currentness",
413
+ resolverVersion: 1,
414
+ scopeDigest: scopeDigest(scope),
415
+ actionDigest,
416
+ };
417
+ }
418
+ function toActionGrant(grant) {
419
+ if (grant.reservation !== null)
420
+ throw new Error("closed_loop_grant_reserved");
421
+ return Object.freeze({
422
+ schemaVersion: grant.schemaVersion,
423
+ grantId: grant.grantId,
424
+ stateGeneration: grant.stateGeneration,
425
+ scope: grant.scope,
426
+ scopeDigest: grant.scopeDigest,
427
+ namespace: grant.namespace,
428
+ toolId: grant.toolId,
429
+ operation: grant.operation,
430
+ actionBindingId: grant.actionBindingId,
431
+ actionBindingVersion: grant.actionBindingVersion,
432
+ handlerDigest: grant.handlerDigest,
433
+ inputDigest: grant.inputDigest,
434
+ actionDigest: grant.actionDigest,
435
+ assessmentRequestId: grant.assessmentRequestId,
436
+ assessmentId: grant.assessmentId,
437
+ assessmentTargetDigest: grant.assessmentTargetDigest,
438
+ idempotencyKey: grant.idempotencyKey,
439
+ issuedAtLogicalMs: grant.issuedAtLogicalMs,
440
+ expiresAtLogicalMs: grant.expiresAtLogicalMs,
441
+ singleUse: grant.singleUse,
442
+ status: grant.status,
443
+ reservation: null,
444
+ });
445
+ }
446
+ function asDigest(value) {
447
+ if (!/^sha256:[0-9a-f]{64}$/u.test(value))
448
+ throw new Error("closed_loop_digest_invalid");
449
+ return value;
450
+ }
451
+ function asSha256Digest(value) {
452
+ return asDigest(value.startsWith("sha256:") ? value : `sha256:${value}`);
453
+ }
454
+ function appendActionTrace(input, kind, recordDigest) {
455
+ const journal = collectiveTraceJournalForOwnerV2(input.environment);
456
+ if (!journal)
457
+ return;
458
+ journal.append({
459
+ logicalTimeMs: input.logicalTimeMs,
460
+ peerId: input.mesh.assignedPeerId,
461
+ component: kind === "evidence.appended" ? "evidence" : "governance",
462
+ kind,
463
+ status: "accepted",
464
+ reasonCode: null,
465
+ recordDigest,
466
+ stateDigestBefore: null,
467
+ stateDigestAfter: null,
468
+ faultBinding: null,
469
+ });
470
+ }
471
+ //# sourceMappingURL=collective-closed-loop-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collective-closed-loop-action.js","sourceRoot":"","sources":["../src/collective-closed-loop-action.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,kCAAkC,GAKnC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oCAAoC,EACpC,oBAAoB,GAErB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GAMZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,6BAA6B,GAK9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,wCAAwC,GAIzC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,gCAAgC,EAChC,0BAA0B,GAI3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,yCAAyC,EAAE,MAAM,mCAAmC,CAAC;AAyE9F;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAAwC;IAExC,MAAM,cAAc,GAAG,kCAAkC,CACvD,KAAK,CAAC,cAAc,CACrB,CAAC;IACF,qBAAqB,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACrD,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,gBAAgB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,WAAW;QACxE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,IACE,KAAK,CAAC,WAAW,CAAC,eAAe,KAAK,KAAK,CAAC,aAAa,CAAC,eAAe;QACzE,KAAK,CAAC,WAAW,CAAC,oBAAoB;YACpC,KAAK,CAAC,aAAa,CAAC,oBAAoB;QAC1C,KAAK,CAAC,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,aAAa,CAAC,SAAS;QAC7D,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;QACvD,KAAK,CAAC,WAAW,CAAC,SAAS,KAAK,KAAK,CAAC,aAAa,CAAC,SAAS;QAC7D,KAAK,CAAC,WAAW,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,CAAC,aAAa;QAErE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,KAAK,mBAAmB;QACzD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,0BAA0B,CAC9C,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,CACpB,CAAC;IACF,IAAI,aAAa,CAAC,WAAW,KAAK,UAAU;QAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,iBAAiB,CACf,KAAK,EACL,gBAAgB,EAChB,cAAc,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC,CAChE,CAAC;IAEF,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW,CAAC,OAAO,CACvD,CAAC;IACF,IACE,CAAC,aAAa;QACd,aAAa,CAAC,MAAM,KAAK,QAAQ;QACjC,aAAa,CAAC,WAAW,KAAK,IAAI;QAElC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IACjD,iBAAiB,CACf,KAAK,EACL,oBAAoB,EACpB,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,UAAmB,CAAC,CAAC,CAC9D,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACnD,iBAAiB,CACf,KAAK,EACL,iBAAiB,EACjB,QAAQ,CACN,aAAa,CACX,OAAO,EACP,WAAkF,CACnF,CACF,CACF,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,qCAAqC,CAAC;QAC1D,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;QACrC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;KAClD,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;QACpC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,YAAY,EAAE,KAAK,CAAC,QAAQ;QAC5B,mBAAmB,EAAE,KAAK,CAAC,aAAa;KACzC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAEzE,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,SAAS,CAC5B,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,CACd,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,iBAAiB;QACjB,YAAY;QACZ,YAAY,EAAE,KAAK,CAAC,QAAQ;QAC5B,mBAAmB,EAAE,KAAK,CAAC,aAAa;KACzC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,iBAAiB,CACf,KAAK,EACL,uBAAuB,EACvB,iBAAiB,CAAC,iBAAiB,CACpC,CAAC;IACF,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAExE,IAAI,aAAa,GAA8C,IAAI,CAAC;IACpE,IAAI,OAAO,GAA8C,IAAI,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,8BAA8B,CACjD,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,CAAC,YAAY,CAAC,cAAc,CAClC,CAAC;IACF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,IAAI,oBAAoB,CACtC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE,EAC9B,SAAS,EACT,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAC5C,WAAW,EACX,QAAQ,CACT,CAAC;IACF,MAAM,cAAc,GAAG,oCAAoC,CAAC;QAC1D,eAAe,EAAE,WAAW;QAC5B,OAAO,EAAE,KAAK,CAAC,aAAa;QAC5B,UAAU,EAAE;YACV,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY;YAC9C,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB;YACxD,WAAW,EAAE,mBAAmB;YAChC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE;gBACvB,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;gBAClE,iBAAiB,CACf,KAAK,EACL,iBAAiB,EACjB,WAAW,CAAC,aAAa,CAC1B,CAAC;gBACF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC/D,yCAAyC,CACvC,KAAK,CAAC,WAAW,EACjB,WAAW,EACX,WAAW,CACZ,CAAC;gBACF,aAAa,GAAG,WAAW,CAAC;gBAC5B,OAAO,GAAG,WAAW,CAAC;gBACtB,OAAO,WAAW,CAAC,MAAM,KAAK,WAAW;oBACvC,CAAC,CAAC;wBACE,EAAE,EAAE,IAAa;wBACjB,KAAK,EAAE;4BACL,aAAa,EAAE,WAAW,CAAC,aAAa;4BACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ;4BAC9B,MAAM,EAAE,WAAW,CAAC,MAAM;yBAC3B;qBACF;oBACH,CAAC,CAAC;wBACE,EAAE,EAAE,KAAc;wBAClB,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE;qBAC9D,CAAC;YACR,CAAC;SACF;QACD,eAAe,EAAE;YACf,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB;YACxD,sBAAsB,EAAE,KAAK,CAAC,aAAa,CAAC,sBAAsB;YAClE,KAAK,CAAC,OAAO,CAAC,KAAK;gBACjB,OAAO;oBACL,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;oBACpC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM;oBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAC;YACJ,CAAC;SACF;QACD,qBAAqB,EAAE;YACrB,UAAU,EAAE,yCAAyC;YACrD,eAAe,EAAE,CAAC;YAClB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB;gBACpC,IACE,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;oBACpC,iBAAiB,KAAK,WAAW,CAAC,YAAY;oBAE9C,OAAO,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;gBACxD,OAAO;oBACL,aAAa,EAAE,CAAU;oBACzB,MAAM,EAAE,SAAkB;oBAC1B,UAAU,EAAE,yCAAyC;oBACrD,eAAe,EAAE,CAAC;oBAClB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC;oBAC/B,YAAY,EAAE,iBAAiB;oBAC/B,KAAK;oBACL,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB;oBACnD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;iBACtC,CAAC;YACJ,CAAC;SACF;QACD,kBAAkB,EAAE;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;YACvC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,eAAe;YACjD,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa;gBACvC,OAAO,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAC1E,CAAC;SACF;QACD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC;QACtD,cAAc;QACd,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI;QAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,iBAAiB,CACf,KAAK,EACL,mBAAmB,EACnB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAC9C,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC,QAAQ;QAC5B,aAAa;QACb,cAAc;QACd,WAAW;QACX,iBAAiB;QACjB,YAAY;QACZ,oBAAoB,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW;QACzD,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,aAAa;QACb,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAwC;IAExC,IAAI,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC;IACjC,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;QACnC;YACE,gCAAgC;YAChC,sBAAsB;YACtB,KAAK,CAAC,iBAAiB;SACxB;QACD,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,KAAK,CAAC,UAAU,CAAC;QACnE,CAAC,mBAAmB,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC;KAChD,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,6BAA6B,CAAC,KAAK,EAAE;YACrD,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,GAAG,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE;YAClD,uBAAuB,EAAE,KAAK,CAAC,eAAe;YAC9C,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,GAAG,CAAC,IAAI,KAAK,sBAAsB;gBACjC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;gBAC1B,CAAC,CAAC,IAAI,KAAK,qBAAqB;oBAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;oBAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,QAAQ;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CACrB,KAAwC,EACxC,KAAkB;IAElB,MAAM,IAAI,GAAG;QACX,aAAa,EAAE,CAAU;QACzB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;QACrC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;QACjD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS;QAC5C,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ;QACjD,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;QAC1C,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;QACjD,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,wBAAwB;QAClD,mBAAmB,EAAE,KAAK,CAAC,aAAa;QACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,MAAM,EAAE,UAAmB;QAC3B,SAAS,EAAE,IAAI;KAChB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,IAAI;QACP,iBAAiB,EAAE,yBAAyB,CAAC,IAAI,CAAC;KACnD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAChB,KAAwC,EACxC,KAAkB,EAClB,WAAgC,EAChC,KAAiC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;QAC9B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG;QACX,aAAa,EAAE,CAAU;QACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;QACrC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;QACjD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS;QAC5C,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ;QACjD,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;QAC1C,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;QACjD,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC,kBAAkB;QACzD,aAAa,EAAE,KAAK,CAAC,OAAO;QAC5B,iBAAiB,EAAE,QAAQ,CACzB,aAAa,CACX,OAAO,EACP,KAA4E,CAC7E,CACF;QACD,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;QAC9C,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;QAClD,cAAc,EAAE,KAAK,CAAC,MAAM;QAC5B,kBAAkB,EAAE,KAAK,CAAC,UAAU;QACpC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS;QACxC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM;QAClC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS;QACxC,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe;QACpD,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB;QAC9D,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;QAC1D,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC;QACxC,gBAAgB,EAAE,QAAQ,CACxB,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,UAAmB,CAAC,CACpD;QACD,mBAAmB,EAAE,cAAc,CACjC,gCAAgC,CAAC,KAAK,CAAC,CACxC;QACD,mBAAmB,EAAE,WAAW,CAAC,aAAa;QAC9C,WAAW,EAAE,WAAW,CAAC,KAAK;QAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,iBAAiB,EAAE,KAAK,CAAC,aAAa;QACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,MAAM,EAAE,QAAiB;QACzB,SAAS,EAAE,IAAI;KAChB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,IAAI;QACP,YAAY,EAAE,4BAA4B,CAAC,IAAI,CAAC;KACjD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CACrB,KAAwC,EACxC,YAAwC,EACxC,cAAuC;IAEvC,OAAO;QACL,KAAK,CAAC,EACJ,MAAM,EACN,KAAK,EACL,aAAa,GAKd;YACC,IACE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxD,MAAM,CAAC,qBAAqB,KAAK,KAAK,CAAC,IAAI,CAAC,qBAAqB;gBACjE,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc;gBACnD,MAAM,CAAC,kBAAkB,KAAK,KAAK,CAAC,IAAI,CAAC,kBAAkB;gBAC3D,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC,IAAI,CAAC,eAAe;gBACrD,MAAM,CAAC,mBAAmB,KAAK,KAAK,CAAC,IAAI,CAAC,mBAAmB;gBAC7D,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY;gBAE/C,OAAO,EAAE,OAAO,EAAE,KAAc,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;YAC1E,IACE,CAAC,mBAAmB,CAClB,cAAc,EACd,KAAK,EACL,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAChC,aAAa,CACd;gBAED,OAAO;oBACL,OAAO,EAAE,KAAc;oBACvB,IAAI,EAAE,kCAAkC;iBACzC,CAAC;YACJ,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,0BAA0B,CAC7C,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,aAAa,CACd,CAAC;gBACF,IACE,YAAY,CAAC,WAAW,KAAK,UAAU;oBACvC,gCAAgC,CAAC,YAAY,CAAC;wBAC5C,gCAAgC,CAAC,YAAY,CAAC;oBAEhD,OAAO,EAAE,OAAO,EAAE,KAAc,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,KAAc,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAChE,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAa,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAwC,EACxC,cAAsC,EACtC,cAAoC;IAEpC,IACE,cAAc,CAAC,mBAAmB,KAAK,KAAK,CAAC,IAAI,CAAC,mBAAmB;QACrE,cAAc,CAAC,YAAY,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY;QACvD,cAAc,CAAC,cAAc,KAAK,cAAc,CAAC,cAAc;QAE/D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,OAAO,wCAAwC,CAAC;QAC9C,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,WAAW,cAAc,CAAC,iBAAiB,EAAE;QACxD,cAAc,EAAE,cAAc,CAAC,cAAc;QAC7C,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB;QACnD,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;QACrC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;QAC7C,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;QAC3C,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QACvC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;QACjC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB;QAC7C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;QACjC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB;QAC7C,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc;QACjD,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC,kBAAkB;QACzD,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe;QAC3C,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB;QACnD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;QACrC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;QACrC,WAAW,EAAE,cAAc,CAAC,WAAW;QACvC,oBAAoB,EAAE,KAAK,CAAC,aAAa;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAA8B,EAC9B,KAAwC,EACxC,KAAkB,EAClB,aAAqB;IAErB,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,KAAK,KAAK,CAAC,mBAAmB,CACjE,CAAC;IACF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,CACnD,CAAC;IACF,OAAO,OAAO,CACZ,OAAO;QACP,UAAU;QACV,OAAO,CAAC,MAAM,KAAK,UAAU;QAC7B,OAAO,CAAC,UAAU,KAAK,UAAU;QACjC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,sBAAsB;QACrD,UAAU,CAAC,WAAW,KAAK,OAAO;QAClC,UAAU,CAAC,mBAAmB,KAAK,OAAO,CAAC,mBAAmB;QAC9D,UAAU,CAAC,iBAAiB,KAAK,OAAO,CAAC,iBAAiB;QAC1D,aAAa,GAAG,OAAO,CAAC,kBAAkB;QAC1C,aAAa,GAAG,UAAU,CAAC,kBAAkB;QAC7C,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,WAAW,CAAC,OAAO,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAqC,EACrC,OAAqD;IAErD,IACE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,SAAS;QAChE,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,CACvD;QAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAoB,EACpB,IAAuC;IAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IACE,IAAI,CAAC,MAAM,KAAK,QAAQ;QACxB,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QACrC,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;QAC/C,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,IAAI,CAAC,iBAAiB;QAC3D,UAAU,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QACzC,UAAU,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;QACrD,UAAU,CAAC,cAAc,KAAK,IAAI,CAAC,cAAc;QACjD,UAAU,CAAC,kBAAkB,KAAK,IAAI,CAAC,kBAAkB;QACzD,UAAU,CAAC,qBAAqB,KAAK,IAAI,CAAC,qBAAqB;QAC/D,UAAU,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe;QACnD,UAAU,CAAC,mBAAmB,KAAK,IAAI,CAAC,mBAAmB;QAC3D,UAAU,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;QAC7C,UAAU,CAAC,uBAAuB,KAAK,IAAI,CAAC,uBAAuB;QACnE,IAAI,CAAC,iBAAiB;QACtB,IAAI,CAAC,YAAY;QAEjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAyB,EACzB,IAAoB,EACpB,IAAuC;IAEvC,IACE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;QAClC,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QACtC,KAAK,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,iBAAiB;QAC/C,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QAEpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAkC,EAClC,IAAoB,EACpB,IAAuC;IAEvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IACE,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAClC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa;QACvC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAC/B,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc;QAC9C,KAAK,CAAC,IAAI,KAAK,MAAM;QACrB,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAChC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC5B,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;QACtC,KAAK,CAAC,iBAAiB,KAAK,IAAI,CAAC,iBAAiB;QAClD,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QACpC,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;QAChD,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe;QAC9C,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC,qBAAqB;QAC1D,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;QAExC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAkB,EAClB,IAAuC;IAEvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,aAAa;QAC5B,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC5B,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;QACtC,KAAK,CAAC,iBAAiB,KAAK,IAAI,CAAC,iBAAiB;QAClD,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;QACpC,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;QAChD,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc;QACpC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,kBAAkB;QAC5C,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC,qBAAqB;QAC1D,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe;QAC9C,KAAK,CAAC,mBAAmB,KAAK,IAAI,CAAC,mBAAmB;QACtD,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;QACxC,KAAK,CAAC,uBAAuB,KAAK,IAAI,CAAC,uBAAuB;QAC9D,CAAC,KAAK,CAAC,iBAAiB;QACxB,CAAC,KAAK,CAAC,YAAY,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAkB,EAAE,YAAoB;IACpE,OAAO;QACL,aAAa,EAAE,CAAU;QACzB,MAAM,EAAE,aAAsB;QAC9B,UAAU,EAAE,yCAAyC;QACrD,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC;QAC/B,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;QACpD,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,OAAO,KAA2B,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAwC,EACxC,IAOuB,EACvB,YAA8B;IAE9B,MAAM,OAAO,GAAG,gCAAgC,CAC9C,KAAK,CAAC,WAAqB,CAC5B,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,MAAM,CAAC;QACb,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;QACjC,SAAS,EAAE,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;QACnE,IAAI;QACJ,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,IAAI;QAChB,YAAY;QACZ,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,75 @@
1
+ import type { MissionIntentV1, MissionObservationV1, PlanFragmentProposalV1, PlanSelectionPolicyV1, PlanningDigestV1, PlanningJson, PlanViewV1 } from "@agentplat/collective-planning";
2
+ import type { CollectiveEvaluationRegistrationBindingV1, CollectiveEvaluationRunnerV2 } from "@agentplat/collective-planning/evaluation";
3
+ import type { DelegationMandateV1 } from "@agentplat/collective-control";
4
+ export interface CollectiveClosedLoopPeerV1 {
5
+ readonly schemaVersion: 1;
6
+ readonly peerId: string;
7
+ readonly peerInstanceId: string;
8
+ readonly capabilityKeys: readonly string[];
9
+ readonly neighborPeerIds: readonly string[];
10
+ }
11
+ export interface CollectivePlanningDecisionContextV1 {
12
+ readonly schemaVersion: 1;
13
+ readonly peerId: string;
14
+ readonly peerInstanceId: string;
15
+ readonly missionIntent: MissionIntentV1;
16
+ readonly observations: readonly MissionObservationV1[];
17
+ readonly planView: PlanViewV1;
18
+ readonly logicalTimeMs: number;
19
+ }
20
+ export interface CollectiveCentralizedPlanningDecisionContextV1 {
21
+ readonly schemaVersion: 1;
22
+ readonly ownerPeerId: string;
23
+ readonly ownerPeerInstanceId: string;
24
+ readonly missionIntent: MissionIntentV1;
25
+ readonly observations: readonly MissionObservationV1[];
26
+ readonly logicalTimeMs: number;
27
+ }
28
+ export type CollectivePlanningDecisionV1 = {
29
+ readonly schemaVersion: 1;
30
+ readonly kind: "proposal";
31
+ readonly proposal: PlanFragmentProposalV1;
32
+ } | {
33
+ readonly schemaVersion: 1;
34
+ readonly kind: "challenge" | "abstain";
35
+ readonly reasonCode: string;
36
+ };
37
+ export interface CollectivePlanningDecisionPolicyV1 {
38
+ readonly policyId: string;
39
+ readonly policyVersion: number;
40
+ readonly policyDigest: PlanningDigestV1;
41
+ decide(context: CollectivePlanningDecisionContextV1): CollectivePlanningDecisionV1 | Promise<CollectivePlanningDecisionV1>;
42
+ decideCentralized(context: CollectiveCentralizedPlanningDecisionContextV1): CollectivePlanningDecisionV1 | Promise<CollectivePlanningDecisionV1>;
43
+ }
44
+ export interface CollectiveClosedLoopDefinitionV1 {
45
+ readonly schemaVersion: 1;
46
+ readonly registration: CollectiveEvaluationRegistrationBindingV1;
47
+ readonly missionIntent: MissionIntentV1;
48
+ readonly selectionPolicy: PlanSelectionPolicyV1;
49
+ readonly mandate: DelegationMandateV1;
50
+ readonly peers: readonly CollectiveClosedLoopPeerV1[];
51
+ readonly maximumLogicalTimeMs: number;
52
+ readonly definitionDigest: PlanningDigestV1;
53
+ }
54
+ export type CollectiveClosedLoopStopReasonV1 = "plan_completed" | "hard_bound" | "interaction_limit" | "explicit_failure";
55
+ export interface CollectiveClosedLoopRunResultV1 {
56
+ readonly schemaVersion: 1;
57
+ readonly registrationBindingDigest: PlanningDigestV1;
58
+ readonly runner: CollectiveEvaluationRunnerV2;
59
+ readonly stopReason: CollectiveClosedLoopStopReasonV1;
60
+ readonly finalLogicalTimeMs: number;
61
+ readonly planningStateRoots: readonly PlanningDigestV1[];
62
+ readonly meshStateRoots: readonly PlanningDigestV1[];
63
+ readonly governanceStateRoots: readonly PlanningDigestV1[];
64
+ readonly publicArtifacts: readonly PlanningJson[];
65
+ readonly runDigest: PlanningDigestV1;
66
+ }
67
+ export declare function collectiveClosedLoopDefinitionDigestV1(value: Omit<CollectiveClosedLoopDefinitionV1, "definitionDigest">): PlanningDigestV1;
68
+ export declare function createCollectiveClosedLoopDefinitionV1(input: Omit<CollectiveClosedLoopDefinitionV1, "definitionDigest">): CollectiveClosedLoopDefinitionV1;
69
+ export declare function validateCollectiveClosedLoopDefinitionV1(value: unknown): CollectiveClosedLoopDefinitionV1;
70
+ export declare function validateCollectivePlanningDecisionContextV1(value: unknown): CollectivePlanningDecisionContextV1;
71
+ export declare function validateCollectiveCentralizedPlanningDecisionContextV1(value: unknown): CollectiveCentralizedPlanningDecisionContextV1;
72
+ export declare function validateCollectivePlanningDecisionV1(value: unknown): CollectivePlanningDecisionV1;
73
+ export declare function createCollectiveClosedLoopRunResultV1(input: Omit<CollectiveClosedLoopRunResultV1, "runDigest">): CollectiveClosedLoopRunResultV1;
74
+ export declare function validateCollectiveClosedLoopRunResultV1(value: unknown): CollectiveClosedLoopRunResultV1;
75
+ //# sourceMappingURL=collective-closed-loop-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collective-closed-loop-contracts.d.ts","sourceRoot":"","sources":["../src/collective-closed-loop-contracts.ts"],"names":[],"mappings":"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"}