@cotal-ai/auth 0.91.0 → 0.92.1

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 (54) hide show
  1. package/dist/authority-client.d.ts +70 -3
  2. package/dist/authority-client.d.ts.map +1 -1
  3. package/dist/authority-client.js +109 -8
  4. package/dist/authority-client.js.map +1 -1
  5. package/dist/commands.d.ts.map +1 -1
  6. package/dist/commands.js +37 -10
  7. package/dist/commands.js.map +1 -1
  8. package/dist/manager-authority.d.ts +59 -3
  9. package/dist/manager-authority.d.ts.map +1 -1
  10. package/dist/manager-authority.js +185 -4
  11. package/dist/manager-authority.js.map +1 -1
  12. package/dist/native-service-gate.d.ts +14 -3
  13. package/dist/native-service-gate.d.ts.map +1 -1
  14. package/dist/native-service-gate.js +34 -20
  15. package/dist/native-service-gate.js.map +1 -1
  16. package/dist/native-service-name.d.ts +7 -0
  17. package/dist/native-service-name.d.ts.map +1 -1
  18. package/dist/native-service-name.js +15 -6
  19. package/dist/native-service-name.js.map +1 -1
  20. package/dist/platform-control.d.ts.map +1 -1
  21. package/dist/platform-control.js +1 -0
  22. package/dist/platform-control.js.map +1 -1
  23. package/dist/provider.d.ts.map +1 -1
  24. package/dist/provider.js +8 -0
  25. package/dist/provider.js.map +1 -1
  26. package/dist/run-cancel-observation.d.ts +50 -0
  27. package/dist/run-cancel-observation.d.ts.map +1 -0
  28. package/dist/run-cancel-observation.js +146 -0
  29. package/dist/run-cancel-observation.js.map +1 -0
  30. package/dist/service-custody.d.ts +29 -20
  31. package/dist/service-custody.d.ts.map +1 -1
  32. package/dist/service-custody.js +37 -167
  33. package/dist/service-custody.js.map +1 -1
  34. package/dist/service-endpoint-authority.d.ts +70 -0
  35. package/dist/service-endpoint-authority.d.ts.map +1 -0
  36. package/dist/service-endpoint-authority.js +257 -0
  37. package/dist/service-endpoint-authority.js.map +1 -0
  38. package/dist/service-host-contract.d.ts +158 -16
  39. package/dist/service-host-contract.d.ts.map +1 -1
  40. package/dist/service-host-contract.js +330 -1
  41. package/dist/service-host-contract.js.map +1 -1
  42. package/dist/service-host-ops.d.ts +550 -0
  43. package/dist/service-host-ops.d.ts.map +1 -0
  44. package/dist/service-host-ops.js +2180 -0
  45. package/dist/service-host-ops.js.map +1 -0
  46. package/dist/service-write.d.ts +141 -0
  47. package/dist/service-write.d.ts.map +1 -0
  48. package/dist/service-write.js +179 -0
  49. package/dist/service-write.js.map +1 -0
  50. package/dist/service.d.ts +54 -1
  51. package/dist/service.d.ts.map +1 -1
  52. package/dist/service.js +313 -14
  53. package/dist/service.js.map +1 -1
  54. package/package.json +9 -4
@@ -0,0 +1,257 @@
1
+ /** The public service endpoint authority door (`/service-endpoint-authority`, SPEC 13.1): the account
2
+ * info read; register through its proposal and registration phases; activate, renew and ready; and
3
+ * instance and operation status, over the service host engine. The face verifies every proof; this
4
+ * module never sees a proof secret, and it signs serving material only with the bounds the engine
5
+ * returned for the current registration. Revoke and the Describe view stay unsupported. */
6
+ import { createHash, randomBytes } from "node:crypto";
7
+ import { EpEnvelopeError, GOVERNED_TRAIT_URNS, SERVICE_ACCESS_TTL_SECONDS, SERVICE_RENEWAL_TTL_SECONDS, canonicalJson, contractDigest, serviceAuthorityRequestDigest, serviceWitnessDigest, verifyClusterManifest, verifyClusterRoot, } from "@cotal-ai/core";
8
+ import { serviceHostOperationId, serviceRegisterHostRequest } from "./service-host-ops.js";
9
+ export const SERVICE_ENDPOINT_AUTHORITY_PATH = "/service-endpoint-authority";
10
+ export function serviceAuthorityInfo(door) {
11
+ return { v: 1, kind: "service-endpoint-authority-info", space: door.space, accountPublicKey: door.accountPublicKey };
12
+ }
13
+ /** The engine request id of one public request: the full public idempotency key (account, space,
14
+ * derived owner, endpoint, instance, operation, requestId), so another owner's or selector's equal
15
+ * requestId never reaches this request's binding. */
16
+ export function serviceAuthorityEngineRequestId(door, owner, request, operation, requestId) {
17
+ const key = canonicalJson(["cotal-service-endpoint-authority", 1, door.accountPublicKey, door.space, owner, request.endpoint, request.instanceId, operation, requestId]);
18
+ return createHash("sha256").update(key, "utf8").digest("hex").slice(0, 32);
19
+ }
20
+ /** Why a submitted closure set is refused. Nothing is admitted from a refused set. */
21
+ export class ServiceRegistrationRefusal extends Error {
22
+ reason;
23
+ constructor(reason, detail) {
24
+ super(detail);
25
+ this.reason = reason;
26
+ }
27
+ }
28
+ /** Compile the submitted closures into the proposal's command surface. Each cluster digest names its
29
+ * manifest artifact and that manifest's root names the cluster document, both verified by content
30
+ * digest. Every submitted artifact must belong to a declared closure, and the commands are only what
31
+ * the verified documents declare. This cut admits ephemeral commands without governed traits only. */
32
+ export function compileServiceRegistration(registration) {
33
+ const refuse = (reason, detail) => { throw new ServiceRegistrationRefusal(reason, detail); };
34
+ const byDigest = new Map(registration.contractArtifacts.map((a) => [contractDigest(a), a]));
35
+ const used = new Set(), names = new Set(), commands = [];
36
+ for (const closure of registration.clusterDigests) {
37
+ const manifest = byDigest.get(closure);
38
+ if (manifest === undefined)
39
+ refuse("closure-invalid", `the closure ${closure} has no submitted manifest`);
40
+ let document;
41
+ try {
42
+ const { root } = verifyClusterManifest(closure, manifest);
43
+ if (!byDigest.has(root))
44
+ refuse("closure-invalid", `the closure ${closure} has no submitted root document`);
45
+ document = verifyClusterRoot(root, byDigest.get(root));
46
+ used.add(closure);
47
+ used.add(root);
48
+ }
49
+ catch (e) {
50
+ if (e instanceof ServiceRegistrationRefusal)
51
+ throw e;
52
+ return refuse("closure-invalid", e instanceof Error ? e.message : String(e));
53
+ }
54
+ for (const c of document.commands) {
55
+ if (c.class !== "ephemeral")
56
+ refuse("unsupported-runtime", `command ${c.name} is ${c.class}-class; only ephemeral commands are served`);
57
+ // Governed traits need enforcement hooks this host does not run yet.
58
+ const governed = (c.traits ?? []).filter((t) => GOVERNED_TRAIT_URNS.includes(t));
59
+ if (governed.length)
60
+ refuse("unsupported-runtime", `command ${c.name} declares the governed trait ${governed[0]}; governed commands are not served`);
61
+ if (names.has(c.name))
62
+ refuse("closure-invalid", `command ${c.name} is declared by more than one closure`);
63
+ names.add(c.name);
64
+ commands.push({ name: c.name, clusterDigest: closure, class: c.class, targeted: c.targeted, modes: [...(c.modes ?? [])], capability: c.capability,
65
+ inputDigest: c.inputDigest, outputDigest: c.outputDigest, traits: [...(c.traits ?? [])] });
66
+ }
67
+ }
68
+ if (used.size !== byDigest.size)
69
+ refuse("closure-invalid", "an artifact belongs to no declared closure");
70
+ commands.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
71
+ return { clusterDigests: [...registration.clusterDigests], commands };
72
+ }
73
+ const STATUS = {
74
+ unauthenticated: 401, "proof-mismatch": 401, "rate-limited": 429, "resource-exhausted": 429,
75
+ conflict: 409, "selector-pending": 409, "selector-bound": 409, expired: 409, "proposal-refused": 409, "proposal-expired": 409, "approval-revoked": 409,
76
+ "approval-mismatch": 409, "registration-active": 409, "registration-pending": 409, "stale-witness": 409, "root-revoked": 409,
77
+ "bad-request": 422, "closure-invalid": 422, "unsupported-runtime": 422, unsupported: 422,
78
+ };
79
+ const echoOf = (r) => ({ v: r.v, kind: r.kind, operation: r.operation, requestId: r.requestId, space: r.space, accountPublicKey: r.accountPublicKey, endpoint: r.endpoint, instanceId: r.instanceId });
80
+ /** A `denied` protocol result with its HTTP status: 401 bad proof, 409 conflict or a closed proposal,
81
+ * 422 refused input, 429 a bound, 403 every other authority refusal. */
82
+ export function serviceAuthorityDenied(request, reason) {
83
+ return { status: STATUS[reason] ?? 403, body: { ...echoOf(request), state: "denied", reason } };
84
+ }
85
+ const unknown = (detail) => ({ status: 503, body: { error: `service endpoint authority: ${detail}; the request may be bound, so retain its request identity` } });
86
+ /** Answer one parsed request for its verified caller. The face has already checked the account,
87
+ * space and the proof matrix; for a service proof it checked the signature and that the proof
88
+ * binds the request's witness. */
89
+ export async function answerServiceAuthority(door, request, caller) {
90
+ const echo = echoOf(request), startedAt = Math.floor(Date.now() / 1000);
91
+ const owner = caller.kind === "idp" ? caller.owner : caller.witness.principal.owner;
92
+ const reply = (status, arm) => ({ status, body: { ...echo, ...arm } });
93
+ const deny = (reason) => serviceAuthorityDenied(request, reason);
94
+ if (caller.kind === "service" && "witness" in request && serviceWitnessDigest(request.witness) !== serviceWitnessDigest(caller.witness))
95
+ return deny("proof-mismatch");
96
+ const host = async (operation, input) => door.engine.handle({ v: 1, kind: "service-endpoint-host", requestId: randomBytes(16).toString("hex"), operation, input, granter: { kind: "owner", owner } });
97
+ /** A read the engine refused: the owner's authority or an unavailable read, never absence. */
98
+ const readRefusal = (r) => (r.state === "denied" && r.reason === "permission-denied" ? deny("permission-denied") : unknown(`the ${r.operation} was not answered`));
99
+ const engineRequestId = (operation, requestId) => serviceAuthorityEngineRequestId(door, owner, request, operation, requestId);
100
+ const served = (r) => r.state === "denied" ? deny(r.reason) : r.state === "unavailable" ? unknown(r.detail) : undefined;
101
+ async function proposalNow(proposalId) {
102
+ const p = await host("proposal-read", { proposalId });
103
+ if (p.state !== "present")
104
+ return { kind: "reply", reply: p.state === "absent" ? unknown("the completed register's proposal is not readable") : readRefusal(p) };
105
+ const v = p.record.value;
106
+ // An undecided proposal past its expiry can no longer be approved: it reads as expired once its
107
+ // whole expiry second has passed, so this never reports expired before the engine would refuse.
108
+ // An approving proposal keeps its answer here; its decision settles it.
109
+ if (!("register" in v))
110
+ return v.state === "proposed" && Date.now() >= (v.expiresAt + 1) * 1000
111
+ ? { kind: "closed", state: "expired", reason: "expired" } : { kind: "proposed", proposalDigest: v.proposalDigest };
112
+ if (v.state !== "approved")
113
+ return { kind: "closed", state: v.state, reason: v.reason ?? v.state };
114
+ const s = await door.engine.serviceState(owner, request.endpoint, request.instanceId);
115
+ if (s.state === "approved" && s.proposalId === proposalId && s.approvalDigest === v.approvalDigest)
116
+ return s.registrationRequestId === null ? { kind: "approved", approvalDigest: s.approvalDigest } : { kind: "superseded", current: s.registrationRequestId };
117
+ if (s.state === "revoking" && s.proposalId === proposalId)
118
+ return { kind: "revoking", operationId: s.operationId, phase: s.denyNew === "landed" ? "deny-new-landed" : "deny-new-pending" };
119
+ return { kind: "reply", reply: unknown("the approved assignment's current state is not readable") };
120
+ }
121
+ if (request.operation === "register") {
122
+ let compiled;
123
+ try {
124
+ compiled = compileServiceRegistration(request.registration);
125
+ }
126
+ catch (e) {
127
+ if (e instanceof ServiceRegistrationRefusal)
128
+ return deny(e.reason);
129
+ throw e;
130
+ }
131
+ const requestId = engineRequestId("register", request.requestId), operationId = serviceHostOperationId(door.space, requestId);
132
+ const requestDigest = serviceAuthorityRequestDigest(request);
133
+ // Past approval the owner's assignment decides: its registration phase writes an intent and
134
+ // runs the native registration. Before it, the proposal phase admits or replays the proposal.
135
+ const phase = await door.engine.serviceState(owner, request.endpoint, request.instanceId);
136
+ if (phase.state === "unavailable")
137
+ return unknown("the selector's assignment is not readable");
138
+ if (phase.state === "approved" || phase.state === "revoking") {
139
+ const r = await door.engine.serve({ operation: "register", caller: "owner", owner, endpoint: request.endpoint, instanceId: request.instanceId,
140
+ requestId: request.requestId, requestDigest, engineRequestId: requestId,
141
+ witness: request.expected.state === "registered" ? request.expected.witness : null,
142
+ register: { ...compiled, artifacts: request.registration.contractArtifacts } });
143
+ if (r.state === "registered")
144
+ return reply(200, { state: "registered", witness: r.witness, snapshot: r.snapshot });
145
+ return served(r) ?? unknown(`register answered ${r.state}`);
146
+ }
147
+ if (request.expected.state !== "unregistered")
148
+ return deny("conflict");
149
+ let r;
150
+ try {
151
+ r = await door.engine.register(serviceRegisterHostRequest({ owner, endpoint: request.endpoint, instanceId: request.instanceId, engineRequestId: requestId,
152
+ requestId: request.requestId, requestDigest, ...compiled }));
153
+ }
154
+ catch (e) {
155
+ if (e instanceof EpEnvelopeError && e.code === "bad-request")
156
+ return deny("bad-request");
157
+ throw e;
158
+ }
159
+ const required = (proposalId, proposalDigest) => reply(202, { state: "approval-required", proposalId, proposalDigest });
160
+ switch (r.state) {
161
+ case "registered": {
162
+ if (r.outcome === "applied")
163
+ return required(r.proposalId, r.proposalDigest);
164
+ const now = await proposalNow(r.proposalId);
165
+ switch (now.kind) {
166
+ case "proposed": return required(r.proposalId, now.proposalDigest);
167
+ case "closed": return deny(now.state === "expired" ? "proposal-expired" : "proposal-refused");
168
+ // Approved since the phase read: a replay enters the registration phase.
169
+ case "approved": return reply(202, { state: "pending", operationId, phase: "approved-unregistered" });
170
+ case "superseded": return deny("conflict");
171
+ case "revoking": return deny("approval-revoked");
172
+ case "reply": return now.reply;
173
+ }
174
+ break;
175
+ }
176
+ case "refused": return deny(r.reason);
177
+ case "denied": return r.reason === "unavailable" ? unknown("register admission was unavailable") : deny(r.reason);
178
+ case "held": return r.reason === "permission-denied" && r.phase === "authorize" ? deny("permission-denied") : unknown(`register held (${r.reason} at ${r.phase})`);
179
+ case "pending": return unknown(`register pending at ${r.phase}`);
180
+ }
181
+ }
182
+ if (request.operation === "activate" || request.operation === "renew" || request.operation === "ready") {
183
+ if (request.operation !== "ready" && door.material === undefined)
184
+ return deny("unsupported");
185
+ const r = await door.engine.serve({ operation: request.operation, caller: caller.kind === "idp" ? "owner" : "service", owner,
186
+ endpoint: request.endpoint, instanceId: request.instanceId, requestId: request.requestId, requestDigest: serviceAuthorityRequestDigest(request),
187
+ engineRequestId: engineRequestId(request.operation, request.requestId), witness: request.witness });
188
+ if (r.state === "ready")
189
+ return reply(200, { state: "ready", witness: r.witness, reportedAt: r.reportedAt });
190
+ if (r.state !== "current")
191
+ return served(r) ?? unknown(`${request.operation} answered ${r.state}`);
192
+ // Bounds fixed at admission: never extended by a late answer.
193
+ const cap = (ttl) => Math.min(startedAt + ttl, r.rootExpiresAt, r.approvalExpiresAt ?? Number.MAX_SAFE_INTEGER);
194
+ const accessExpiresAt = cap(SERVICE_ACCESS_TTL_SECONDS), renewalExpiresAt = cap(SERVICE_RENEWAL_TTL_SECONDS);
195
+ if (accessExpiresAt <= Math.floor(Date.now() / 1000))
196
+ return deny("expired");
197
+ let accessBearer, renewalProof;
198
+ try {
199
+ accessBearer = await door.material.issueServiceAccess({ witness: r.witness, expiresAt: accessExpiresAt });
200
+ renewalProof = await door.material.issueServiceRenewal({ witness: r.witness, expiresAt: renewalExpiresAt });
201
+ }
202
+ catch {
203
+ // Only a fixed expiry that has passed is expired. Any other failure to mint leaves the current
204
+ // registration with no material, so it is unknown and a replay mints replacement material.
205
+ if (accessExpiresAt <= Math.floor(Date.now() / 1000))
206
+ return deny("expired");
207
+ return unknown(`the ${request.operation} material was not minted`);
208
+ }
209
+ return reply(200, { state: "credential", witness: r.witness, duty: "serve", accessBearer, accessExpiresAt, renewalProof, renewalExpiresAt, snapshot: r.snapshot });
210
+ }
211
+ if (request.operation === "status") {
212
+ const status = (s) => reply(200, { state: "status", status: s });
213
+ const target = request.target;
214
+ if (target.kind === "operation" && target.operation === "revoke")
215
+ return deny("unsupported");
216
+ const answer = await door.engine.serveStatus({ owner, endpoint: request.endpoint, instanceId: request.instanceId,
217
+ reader: caller.kind === "idp" ? { kind: "owner" } : { kind: "service", witness: caller.witness },
218
+ target: target.kind === "instance" ? { kind: "instance" } : { kind: "operation", operation: target.operation, engineRequestId: engineRequestId(target.operation, target.requestId) } });
219
+ if (answer.kind === "status")
220
+ return status(answer.status);
221
+ if (answer.kind === "not-found")
222
+ return deny("not-found");
223
+ if (answer.kind === "denied")
224
+ return deny(answer.reason);
225
+ if (answer.kind === "unavailable")
226
+ return unknown(answer.detail);
227
+ // A register with no intent answers from its proposal-phase operation record.
228
+ const operationId = serviceHostOperationId(door.space, engineRequestId("register", target.requestId));
229
+ const op = await host("operation-read", { operationId });
230
+ if (op.state === "absent")
231
+ return deny("not-found");
232
+ if (op.state !== "present")
233
+ return readRefusal(op);
234
+ const v = op.record.value;
235
+ const progress = "outcome" in v ? v.outcome : v.progress, proposalId = v.projection.proposalId;
236
+ if (v.operation !== "register" || proposalId === null)
237
+ return deny("not-found");
238
+ if (progress.state === "pending" || progress.state === "held")
239
+ return status({ state: "registering", operationId, phase: progress.phase });
240
+ if (progress.state === "refused")
241
+ return status({ state: "refused", proposalId, reason: progress.reason });
242
+ if (progress.state === "superseded")
243
+ return status({ state: "refused", proposalId, reason: "superseded" });
244
+ const now = await proposalNow(proposalId);
245
+ switch (now.kind) {
246
+ case "proposed": return status({ state: "proposed", proposalId, proposalDigest: now.proposalDigest });
247
+ case "closed": return status({ state: "refused", proposalId, reason: now.reason });
248
+ case "approved": return status({ state: "approved-unregistered", approvalDigest: now.approvalDigest });
249
+ case "superseded": return status({ state: "superseded", registrationRequestId: target.requestId, currentRegistrationRequestId: now.current });
250
+ case "revoking": return status({ state: "revoking", operationId: now.operationId, phase: now.phase });
251
+ case "reply": return now.reply;
252
+ }
253
+ }
254
+ // revoke and describe-view need terminal retirement and caller policy, which this cut does not run.
255
+ return deny("unsupported");
256
+ }
257
+ //# sourceMappingURL=service-endpoint-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-endpoint-authority.js","sourceRoot":"","sources":["../src/service-endpoint-authority.ts"],"names":[],"mappings":"AAAA;;;;2FAI2F;AAC3F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,eAAe,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,aAAa,EAAE,cAAc,EAC5H,6BAA6B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,iBAAiB,GAE9F,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAmF,MAAM,uBAAuB,CAAC;AAE5K,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAkB7E,MAAM,UAAU,oBAAoB,CAAC,IAA0B;IAC7D,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACvH,CAAC;AAED;;sDAEsD;AACtD,MAAM,UAAU,+BAA+B,CAAC,IAA8D,EAAE,KAAa,EAC3H,OAAiE,EAAE,SAA+C,EAAE,SAAiB;IACrI,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,kCAAkC,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACzK,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,sFAAsF;AACtF,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC9B;IAArB,YAAqB,MAAiD,EAAE,MAAc;QAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAAnF,WAAM,GAAN,MAAM,CAA2C;IAAmC,CAAC;CAC3G;AAED;;;uGAGuG;AACvG,MAAM,UAAU,0BAA0B,CAAC,YAAwE;IACjH,MAAM,MAAM,GAAG,CAAC,MAA4C,EAAE,MAAc,EAAS,EAAE,GAAG,MAAM,IAAI,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClJ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IACrG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,EAAE,KAAK,GAAG,IAAI,GAAG,EAAU,EAAE,QAAQ,GAAc,EAAE,CAAC;IACpF,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,iBAAiB,EAAE,eAAe,OAAO,4BAA4B,CAAC,CAAC;QAC1G,IAAI,QAA8C,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,iBAAiB,EAAE,eAAe,OAAO,iCAAiC,CAAC,CAAC;YAC5G,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,0BAA0B;gBAAE,MAAM,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC,iBAAiB,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW;gBAAE,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,4CAA4C,CAAC,CAAC;YACxI,qEAAqE;YACrE,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,QAAQ,CAAC,MAAM;gBAAE,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,IAAI,gCAAgC,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC;YACrJ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,IAAI,uCAAuC,CAAC,CAAC;YAC3G,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;gBAC/I,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;QAAE,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC,CAAC;IACzG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,MAAM,GAA2B;IACrC,eAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG;IAC3F,QAAQ,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG;IACtJ,mBAAmB,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG;IAC5H,aAAa,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;CACzF,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,CAA0B,EAAQ,EAAE,CAClD,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;AAEnL;yEACyE;AACzE,MAAM,UAAU,sBAAsB,CAAC,OAAgC,EAAE,MAAc;IACrF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,MAAc,EAAyB,EAAE,CACxD,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,+BAA+B,MAAM,4DAA4D,EAAE,EAAE,CAAC,CAAC;AAMxI;;mCAEmC;AACnC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAA0B,EAAE,OAAgC,EAAE,MAA8B;IACvI,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;IACpF,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,GAAW,EAAyB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9G,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC;QACrI,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,EAAE,SAA6C,EAAE,KAAa,EAA8B,EAAE,CAC9G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAwB,CAAC,CAAC;IACrL,8FAA8F;IAC9F,MAAM,WAAW,GAAG,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC;IACtL,MAAM,eAAe,GAAG,CAAC,SAA+C,EAAE,SAAiB,EAAE,EAAE,CAAC,+BAA+B,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5K,MAAM,MAAM,GAAG,CAAC,CAAqB,EAAqC,EAAE,CAC1E,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAQpG,KAAK,UAAU,WAAW,CAAC,UAAkB;QAC3C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACjK,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAA2D,CAAC;QAC/E,gGAAgG;QAChG,gGAAgG;QAChG,wEAAwE;QACxE,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI;gBAC7F,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;QACrH,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACnG,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACtF,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,cAAc;YAChG,OAAO,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;QAC9J,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAC3L,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,yDAAyD,CAAC,EAAE,CAAC;IACtG,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,IAAI,QAAuD,CAAC;QAC5D,IAAI,CAAC;YAAC,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAAC,CAAC;QACpE,OAAO,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,YAAY,0BAA0B;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAC1F,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9H,MAAM,aAAa,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAC7D,4FAA4F;QAC5F,8FAA8F;QAC9F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa;YAAE,OAAO,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC/F,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC3I,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS;gBACvE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBAClF,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,CAAC,KAAK,KAAK,YAAY;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnH,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAyD,CAAC;QAC9D,IAAI,CAAC;YACH,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;gBACvJ,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,YAAY,eAAe,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa;gBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;YAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAClH,MAAM,QAAQ,GAAG,CAAC,UAAkB,EAAE,cAAsB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QACxI,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;oBAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC7E,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC5C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;oBACjB,KAAK,UAAU,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;oBACnE,KAAK,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;oBAC9F,yEAAyE;oBACzE,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBACtG,KAAK,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC3C,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACjD,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;gBACjC,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAClH,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,mBAAmB,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YACnK,KAAK,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACvG,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7F,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK;YAC1H,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,6BAA6B,CAAC,OAAO,CAAC;YAC/I,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACtG,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7G,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACnG,8DAA8D;QAC9D,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACxH,MAAM,eAAe,GAAG,GAAG,CAAC,0BAA0B,CAAC,EAAE,gBAAgB,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC7G,IAAI,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7E,IAAI,YAAoB,EAAE,YAAoB,CAAC;QAC/C,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,IAAI,CAAC,QAAS,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;YAC3G,YAAY,GAAG,MAAM,IAAI,CAAC,QAAS,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/G,CAAC;QAAC,MAAM,CAAC;YACP,+FAA+F;YAC/F,2FAA2F;YAC3F,IAAI,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7E,OAAO,OAAO,CAAC,OAAO,OAAO,CAAC,SAAS,0BAA0B,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrK,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,CAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9G,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;YAChG,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,SAAkC,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACnN,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjE,8EAA8E;QAC9E,MAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,UAAU,EAAG,MAAgC,CAAC,SAAS,CAAC,CAAC,CAAC;QACjI,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAoH,CAAC;QACzI,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAC/F,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;QAChF,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAM,EAAE,CAAC,CAAC;QAC5I,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAO,EAAE,CAAC,CAAC;QAC5G,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY;YAAE,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3G,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;YACtG,KAAK,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACnF,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;YACvG,KAAK,YAAY,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAG,MAAgC,CAAC,SAAS,EAAE,4BAA4B,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzK,KAAK,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YACtG,KAAK,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC;QACjC,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7B,CAAC"}
@@ -91,7 +91,31 @@ export interface ServiceProposalView {
91
91
  name: string;
92
92
  }>;
93
93
  nameBinding: ServiceNameView | null;
94
+ /** The approving operation and its immutable assignment coordinate, or null while proposed. */
95
+ decision: {
96
+ operationId: string;
97
+ assignmentDigest: string;
98
+ } | null;
94
99
  }
100
+ /** A terminal proposal: the compact retained tombstone. It carries no commands or cluster digests. */
101
+ export interface ServiceProposalTombstoneView {
102
+ proposalId: string;
103
+ proposalDigest: string;
104
+ owner: string;
105
+ endpoint: string;
106
+ instanceId: string;
107
+ register: {
108
+ requestId: string;
109
+ requestDigest: string;
110
+ operationId: string;
111
+ };
112
+ state: "approved" | "refused" | "expired";
113
+ operationId: string | null;
114
+ approvalDigest: string | null;
115
+ reason: ServiceProposalCloseReason | null;
116
+ at: number;
117
+ }
118
+ export type ServiceProposalCloseReason = "owner" | "operator" | "revoked" | "expired" | "selector-bound" | "restore" | "custody-refused";
95
119
  export interface ServiceInstanceView {
96
120
  assignmentDigest: string;
97
121
  principal: ServicePrincipal;
@@ -106,13 +130,36 @@ export interface ServiceInstanceView {
106
130
  witness: ServiceRegistrationWitness | null;
107
131
  nameBinding: ServiceNameView | null;
108
132
  }
109
- export declare const SERVICE_HOST_REASONS: readonly ["bad-request", "unauthenticated", "permission-denied", "conflict", "not-found", "expired", "resource-exhausted", "unsupported", "unavailable", "admission-held", "name-bound", "name-claim-required", "registration-active", "stale-witness"];
133
+ export declare const SERVICE_HOST_REASONS: readonly ["bad-request", "unauthenticated", "permission-denied", "conflict", "not-found", "expired", "resource-exhausted", "unsupported", "unavailable", "admission-held", "name-bound", "name-claim-required", "registration-active", "stale-witness", "admission-closed", "selector-pending", "selector-bound", "name-owned", "approval-in-progress"];
110
134
  export type ServiceHostReason = (typeof SERVICE_HOST_REASONS)[number];
135
+ /** Why a bound operation ended without its effect. A closed proposal's reason is carried through. */
136
+ export declare const SERVICE_OPERATION_REFUSALS: readonly ["conflict", "expired", "revoked", "superseded", "custody-refused", "admission-closed", "resource-exhausted", "selector-pending", "selector-bound", "name-owned", "restore", "owner", "operator"];
137
+ export type ServiceOperationRefusal = (typeof SERVICE_OPERATION_REFUSALS)[number];
138
+ /** Whether this assignment's endpoint gate shows committed deny-new, from a leader read; unknown when that read
139
+ * failed or found another assignment's gate row at the key. An already fenced assignment reports landed. */
140
+ export type ServiceDenyNew = "landed" | "not-landed" | "unknown";
141
+ /** A bookkeeping write whose outcome was not observed. Replays retry it; only a read clears it. */
142
+ export type ServiceHostDebt = {
143
+ kind: "capacity-release" | "proposal-close";
144
+ proposalId: string;
145
+ };
146
+ /** `applied` when this invocation observed the effect land; `recorded` when it returns a stored result. */
147
+ export type ServiceHostOutcome = "applied" | "recorded";
148
+ /** The immutable subject an operation was admitted for; owner-scoped reads authorize against it. */
149
+ export interface ServiceOperationProjection {
150
+ subjectOwner: string;
151
+ endpoint: string;
152
+ instanceId: string;
153
+ proposalId: string | null;
154
+ }
155
+ export type ServiceOperationKind = "register" | "decide" | "revoke";
111
156
  export interface ServiceOperationView {
112
157
  operationId: string;
113
158
  requestDigest: string;
159
+ operation: ServiceOperationKind;
114
160
  target: ({
115
161
  kind: "service";
162
+ assignmentDigest: string | null;
116
163
  } & ServiceSelector) | {
117
164
  kind: "caller";
118
165
  grantee: ServicePrincipal;
@@ -123,16 +170,42 @@ export interface ServiceOperationView {
123
170
  kind: "name";
124
171
  endpoint: string;
125
172
  };
173
+ projection: ServiceOperationProjection;
126
174
  progress: {
127
175
  state: "pending";
128
176
  phase: string;
129
177
  notBefore?: number;
178
+ } | {
179
+ state: "held";
180
+ reason: string;
181
+ phase: string;
130
182
  } | {
131
183
  state: "complete";
132
184
  resultDigest: string;
133
185
  } | {
134
186
  state: "refused";
135
- reason: ServiceHostReason;
187
+ reason: ServiceOperationRefusal;
188
+ } | {
189
+ state: "superseded";
190
+ boundOperationId: string;
191
+ };
192
+ debt: ServiceHostDebt[];
193
+ }
194
+ /** A compacted operation: its binding, subject and outcome. The plan is gone and nothing revives it. */
195
+ export interface ServiceOperationTerminalView {
196
+ operationId: string;
197
+ requestDigest: string;
198
+ operation: ServiceOperationKind;
199
+ projection: ServiceOperationProjection;
200
+ outcome: {
201
+ state: "complete";
202
+ resultDigest: string;
203
+ } | {
204
+ state: "refused";
205
+ reason: ServiceOperationRefusal;
206
+ } | {
207
+ state: "superseded";
208
+ boundOperationId: string;
136
209
  };
137
210
  }
138
211
  export interface ServiceCallerPolicyView {
@@ -230,14 +303,40 @@ type PageResult<T> = {
230
303
  records: Versioned<T>[];
231
304
  nextCursor: string | null;
232
305
  };
306
+ /** The immutable facts an approval fixed. `approvedGateRevision` is the endpoint-gate revision
307
+ * this approval's own CAS wrote, or null when that write was not observed; a later revision
308
+ * never stands in for it. Current instance state is a separate read. */
309
+ export interface ServiceApprovalResult {
310
+ proposalId: string;
311
+ proposalDigest: string;
312
+ operationId: string;
313
+ assignment: {
314
+ endpoint: string;
315
+ instanceId: string;
316
+ assignmentDigest: string;
317
+ lifecycleUid: string;
318
+ };
319
+ approvalDigest: string;
320
+ approvalExpiresAt: number | null;
321
+ callerCeiling: EpCapability[];
322
+ nameAuthorityRevision: number;
323
+ rootCredentialId: string;
324
+ rootExpiresAt: number;
325
+ approvedGateRevision: number | null;
326
+ }
327
+ /** The decision's own completion. A bound decide that ended without its effect is the separate
328
+ * `refused` arm, which always carries `operationId` and `reason`. */
233
329
  export type DecideResult = {
234
330
  state: "approved";
235
- instance: ServiceInstanceView;
236
- revision: number;
331
+ outcome: ServiceHostOutcome;
332
+ approval: ServiceApprovalResult;
333
+ debt?: ServiceHostDebt[];
237
334
  } | {
238
335
  state: "refused";
239
- proposal: ServiceProposalView;
336
+ outcome: ServiceHostOutcome;
337
+ proposal: ServiceProposalTombstoneView;
240
338
  revision: number;
339
+ debt?: ServiceHostDebt[];
241
340
  };
242
341
  export type NameBindResult = {
243
342
  state: "bound";
@@ -258,11 +357,11 @@ export type QuarantineRestoredResult = {
258
357
  inventoryDigest: string;
259
358
  };
260
359
  interface ServiceHostOutputs {
261
- "proposal-read": ReadResult<ServiceProposalView>;
360
+ "proposal-read": ReadResult<ServiceProposalView | ServiceProposalTombstoneView>;
262
361
  "proposal-list": PageResult<ServiceProposalView>;
263
362
  "instance-read": ReadResult<ServiceInstanceView>;
264
363
  "instance-list": PageResult<ServiceInstanceView>;
265
- "operation-read": ReadResult<ServiceOperationView>;
364
+ "operation-read": ReadResult<ServiceOperationView | ServiceOperationTerminalView>;
266
365
  "name-read": ReadResult<ServiceNameView>;
267
366
  "decide": DecideResult;
268
367
  "name-bind": NameBindResult;
@@ -287,6 +386,43 @@ interface ServiceHostOutputs {
287
386
  revision: number;
288
387
  };
289
388
  }
389
+ /** Non-completion arms. `denied` means this invocation wrote nothing and no operation is bound to
390
+ * the request (or the request conflicts with one): either the request can never bind, or this
391
+ * invocation's own read found no binding. That read is point-in-time; another invocation of the
392
+ * same request already in flight can still bind it later. Every other arm names the operation the
393
+ * request is or may be bound to; `held` by itself implies neither a binding nor an authorized
394
+ * granter, and none of them means the request was not executed. */
395
+ export type ServiceHostPending = {
396
+ state: "pending";
397
+ operationId: string;
398
+ phase: string;
399
+ notBefore?: number;
400
+ assignmentDigest?: string;
401
+ denyNew?: ServiceDenyNew;
402
+ root?: "none" | "revoked" | "retained-stamped";
403
+ debt?: ServiceHostDebt[];
404
+ };
405
+ export type ServiceHostHeld = {
406
+ state: "held";
407
+ operationId: string;
408
+ reason: string;
409
+ phase: string;
410
+ assignmentDigest?: string;
411
+ denyNew?: ServiceDenyNew;
412
+ debt?: ServiceHostDebt[];
413
+ };
414
+ export type ServiceHostRefused = {
415
+ state: "refused";
416
+ operationId: string;
417
+ reason: ServiceOperationRefusal;
418
+ boundOperationId?: string;
419
+ debt?: ServiceHostDebt[];
420
+ };
421
+ export type ServiceHostDenied = {
422
+ state: "denied";
423
+ reason: ServiceHostReason;
424
+ boundOperationId?: string;
425
+ };
290
426
  export type ServiceHostResult = {
291
427
  [K in ServiceHostOperation]: {
292
428
  v: 1;
@@ -295,18 +431,24 @@ export type ServiceHostResult = {
295
431
  requestId: string;
296
432
  space: string;
297
433
  accountPublicKey: string;
298
- } & (ServiceHostOutputs[K] | {
299
- state: "pending";
300
- operationId: string;
301
- phase: string;
302
- notBefore?: number;
303
- } | {
304
- state: "denied";
305
- reason: ServiceHostReason;
306
- });
434
+ } & (ServiceHostOutputs[K] | ServiceHostPending | ServiceHostHeld | ServiceHostRefused | ServiceHostDenied);
307
435
  }[ServiceHostOperation];
308
436
  export type ServiceEndpointHost = (request: ServiceHostRequest) => Promise<ServiceHostResult>;
309
437
  /** Structural admission only. The host still authenticates its capability and resolves current authority. */
310
438
  export declare function parseServiceHostRequest(raw: unknown): ServiceHostRequest;
439
+ /** Commands of one proposal: well formed, at most 128, unique and sorted by name. */
440
+ export declare function parseServiceProposalCommands(raw: unknown): Array<EpCommandAuthority & {
441
+ name: string;
442
+ }>;
443
+ /** Cluster digests of one proposal: canonical, at most 32, unique, in submitted order. */
444
+ export declare function parseServiceProposalClusters(raw: unknown): string[];
445
+ export declare function parseServiceProposalView(raw: unknown): ServiceProposalView;
446
+ export declare function parseServiceProposalTombstoneView(raw: unknown): ServiceProposalTombstoneView;
447
+ export declare function parseServiceOperationView(raw: unknown): ServiceOperationView;
448
+ export declare function parseServiceOperationTerminalView(raw: unknown): ServiceOperationTerminalView;
449
+ export declare function parseServiceApprovalResult(raw: unknown): ServiceApprovalResult;
450
+ /** Closed parser for the results of the operations this slice serves (decide, revoke, name-bind,
451
+ * operation-read, proposal-read) and for the shared arms of every operation. */
452
+ export declare function parseServiceHostResult(raw: unknown): ServiceHostResult;
311
453
  export {};
312
454
  //# sourceMappingURL=service-host-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-host-contract.d.ts","sourceRoot":"","sources":["../src/service-host-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-host-contract.d.ts","sourceRoot":"","sources":["../src/service-host-contract.ts"],"names":[],"mappings":"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"}