@cotal-ai/auth 0.48.2 → 0.49.0

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 (39) hide show
  1. package/dist/auth-admin.d.ts +4 -0
  2. package/dist/auth-admin.d.ts.map +1 -1
  3. package/dist/auth-admin.js +18 -12
  4. package/dist/auth-admin.js.map +1 -1
  5. package/dist/authority-client.d.ts +2 -5
  6. package/dist/authority-client.d.ts.map +1 -1
  7. package/dist/authority-client.js +10 -17
  8. package/dist/authority-client.js.map +1 -1
  9. package/dist/index.d.ts +3 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/manager-admin-authorization.d.ts +17 -0
  14. package/dist/manager-admin-authorization.d.ts.map +1 -0
  15. package/dist/manager-admin-authorization.js +91 -0
  16. package/dist/manager-admin-authorization.js.map +1 -0
  17. package/dist/manager-authority.d.ts.map +1 -1
  18. package/dist/manager-authority.js +41 -7
  19. package/dist/manager-authority.js.map +1 -1
  20. package/dist/manager-goal-index.d.ts +17 -0
  21. package/dist/manager-goal-index.d.ts.map +1 -0
  22. package/dist/manager-goal-index.js +80 -0
  23. package/dist/manager-goal-index.js.map +1 -0
  24. package/dist/provider.d.ts.map +1 -1
  25. package/dist/provider.js +128 -2
  26. package/dist/provider.js.map +1 -1
  27. package/dist/records-scanner.d.ts +17 -9
  28. package/dist/records-scanner.d.ts.map +1 -1
  29. package/dist/records-scanner.js +131 -10
  30. package/dist/records-scanner.js.map +1 -1
  31. package/dist/retained-manager-validation.d.ts +27 -0
  32. package/dist/retained-manager-validation.d.ts.map +1 -0
  33. package/dist/retained-manager-validation.js +139 -0
  34. package/dist/retained-manager-validation.js.map +1 -0
  35. package/dist/service.d.ts +67 -1
  36. package/dist/service.d.ts.map +1 -1
  37. package/dist/service.js +128 -10
  38. package/dist/service.js.map +1 -1
  39. package/package.json +4 -4
@@ -47,12 +47,13 @@
47
47
  * same-or-narrower filter stays covered by that composition assumption, not by the check.
48
48
  */
49
49
  import { AckPolicy, DeliverPolicy, JetStreamApiCodes, JetStreamApiError, jetstream, jetstreamManager } from "@nats-io/jetstream";
50
- import { EpEnvelopeError, assertInboxConnId, recordsBucket, recordsKvStreamName } from "@cotal-ai/core";
50
+ import { EpEnvelopeError, RECORD_KINDS, assertDerivedOwnerToken, assertInboxConnId, parseGoalIndexEntry, parseRecordKey, recordsBucket, recordsKvStreamName } from "@cotal-ai/core";
51
51
  import { openAuthorityClient } from "./authority-client.js";
52
52
  /** The ONE literal consumer name every obligation scan over the records stream reuses (the grant
53
53
  * pins exactly this token; separate from the auth-ledger scanner's — fact-5, one name per stream).
54
54
  * Scans over it serialize on the MODULE-LEVEL per-space chain below, never a per-instance lock. */
55
55
  const RECORDS_SCANNER_CONSUMER_NAME = "cotal-records-scan";
56
+ const MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME = "cotal-manager-goalidx-scan";
56
57
  /** fact-5 ENFORCED (panel HIGH): the serialization critical section for a space's literal consumer
57
58
  * name lives at MODULE level, keyed by space, so two branded same-space instances share one chain
58
59
  * and can never interleave pre-clean/create/fetch/delete on that name (a per-instance lock cannot
@@ -139,7 +140,7 @@ export async function openRecordsScannerCandidate(opts) {
139
140
  if (activated)
140
141
  throw new EpEnvelopeError("failed-precondition", "this records scanner candidate is already activated (one branded scanner per candidate)");
141
142
  activated = true;
142
- return buildScanner(client.nc, opts.space, () => client.close(), undefined, guard);
143
+ return buildScanner(client.nc, opts.space, () => client.close(), opts.probe, guard);
143
144
  },
144
145
  close: async () => {
145
146
  closed = true;
@@ -272,6 +273,113 @@ function buildScanner(nc, space, onClose, probe, guard) {
272
273
  catch { /* orphan collected by inactivity */ }
273
274
  }
274
275
  };
276
+ const scanManagerGoalIndexOnce = async (owner) => {
277
+ const expectedOwner = assertDerivedOwnerToken(owner);
278
+ const jsm = await jsmOf();
279
+ const js = jsOf();
280
+ const rawFilter = `goalidx.manager.${expectedOwner}.>`;
281
+ const filter = `$KV.${bucket}.${rawFilter}`;
282
+ let provedAbsent = false;
283
+ try {
284
+ provedAbsent = (await jsm.consumers.delete(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME)) === true;
285
+ }
286
+ catch (e) {
287
+ if (isConsumerNotFound(e))
288
+ provedAbsent = true;
289
+ else
290
+ throw new EpEnvelopeError("unavailable", `the manager goal-index scanner could not prove its literal consumer absent before create: ${e?.message ?? String(e)}`);
291
+ }
292
+ if (!provedAbsent)
293
+ throw new EpEnvelopeError("unavailable", "the manager goal-index scanner did not confirm its literal consumer deleted or absent");
294
+ try {
295
+ await jsm.consumers.add(stream, {
296
+ name: MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME,
297
+ filter_subject: filter,
298
+ ack_policy: AckPolicy.None,
299
+ deliver_policy: DeliverPolicy.LastPerSubject,
300
+ mem_storage: true,
301
+ inactive_threshold: INACTIVE_THRESHOLD_NS,
302
+ });
303
+ const info = await jsm.consumers.info(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME);
304
+ const cfg = info.config;
305
+ const drift = cfg.name !== MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME ? `name=${cfg.name}` :
306
+ cfg.filter_subject !== filter ? `filter=${cfg.filter_subject}` :
307
+ (Array.isArray(cfg.filter_subjects) && cfg.filter_subjects.length > 0) ? `filter_subjects=${JSON.stringify(cfg.filter_subjects)}` :
308
+ cfg.deliver_subject !== undefined ? `deliver_subject=${cfg.deliver_subject}` :
309
+ cfg.durable_name !== undefined ? `durable=${cfg.durable_name}` :
310
+ cfg.ack_policy !== AckPolicy.None ? `ack=${cfg.ack_policy}` :
311
+ cfg.deliver_policy !== DeliverPolicy.LastPerSubject ? `deliver=${cfg.deliver_policy}` :
312
+ cfg.mem_storage !== true ? `mem_storage=${cfg.mem_storage}` :
313
+ cfg.inactive_threshold !== INACTIVE_THRESHOLD_NS ? `inactive_threshold=${cfg.inactive_threshold}` :
314
+ undefined;
315
+ if (drift !== undefined)
316
+ throw new EpEnvelopeError("failed-precondition", `the manager goal-index scanner's consumer does not carry the forced pull/LastPerSubject shape (${drift})`);
317
+ if (probe?.afterManagerGoalIndexCreate)
318
+ await probe.afterManagerGoalIndexCreate();
319
+ const latest = new Map();
320
+ const consumer = await js.consumers.get(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME);
321
+ let noProgress = 0;
322
+ for (let round = 0;; round++) {
323
+ const pending = (await consumer.info()).num_pending;
324
+ if (pending === 0)
325
+ break;
326
+ if (round >= MAX_DRAIN_ROUNDS)
327
+ throw new EpEnvelopeError("unavailable", `the manager goal-index scanner never settled to zero pending after ${round} rounds`);
328
+ const iter = await consumer.fetch({ max_messages: Math.min(pending, 256), expires: 5_000 });
329
+ let got = 0;
330
+ for await (const m of iter) {
331
+ got++;
332
+ if (!matchesFilter(m.subject, filter))
333
+ throw new EpEnvelopeError("internal", `the manager goal-index scanner received subject ${m.subject} outside ${filter}`);
334
+ if (!Number.isSafeInteger(m.seq) || m.seq <= 0)
335
+ throw new EpEnvelopeError("internal", `the manager goal-index scanner received invalid sequence ${m.seq}`);
336
+ const prev = latest.get(m.subject);
337
+ if (prev === undefined || m.seq > prev.seq)
338
+ latest.set(m.subject, { data: m.data, seq: m.seq, op: m.headers?.get("KV-Operation") || undefined });
339
+ }
340
+ if (round === 0 && probe?.afterManagerGoalIndexFirstFetch)
341
+ await probe.afterManagerGoalIndexFirstFetch();
342
+ if (got === 0) {
343
+ if (++noProgress >= MAX_NO_PROGRESS_ROUNDS)
344
+ throw new EpEnvelopeError("unavailable", "the manager goal-index scanner reported pending but delivered nothing");
345
+ }
346
+ else
347
+ noProgress = 0;
348
+ }
349
+ const out = [];
350
+ for (const [subject, row] of latest) {
351
+ const key = subject.slice(keyPrefixLen);
352
+ if (row.op !== undefined)
353
+ throw new EpEnvelopeError("failed-precondition", `manager goal-index entry ${key} carries a ${row.op} marker; a deletion is never a live index row`);
354
+ let raw;
355
+ try {
356
+ raw = JSON.parse(new TextDecoder().decode(row.data));
357
+ }
358
+ catch (e) {
359
+ throw new EpEnvelopeError("internal", `manager goal-index entry ${key} does not decode as JSON: ${e.message}`);
360
+ }
361
+ const parsed = parseGoalIndexEntry(raw, key);
362
+ const parsedKey = parseRecordKey(key);
363
+ if (parsedKey?.def !== RECORD_KINDS.goalidx || parsedKey.part !== "atomic")
364
+ throw new EpEnvelopeError("internal", `manager goal-index scanner received ${key}, which is not an atomic goalidx key`);
365
+ const bodyQualifiers = [parsed.endpoint, parsed.owner, parsed.actor, parsed.uid, parsed.goalId];
366
+ if (JSON.stringify(parsedKey.qualifiers) !== JSON.stringify(bodyQualifiers))
367
+ throw new EpEnvelopeError("internal", `manager goal-index entry body qualifiers ${JSON.stringify(bodyQualifiers)} do not match key ${key}`);
368
+ if (parsed.endpoint !== "manager")
369
+ throw new EpEnvelopeError("internal", `manager goal-index scanner returned endpoint ${parsed.endpoint}`);
370
+ if (parsed.owner !== expectedOwner)
371
+ throw new EpEnvelopeError("internal", `manager goal-index scanner delivered foreign owner ${parsed.owner} outside ${expectedOwner}`);
372
+ out.push(parsed);
373
+ }
374
+ return out;
375
+ }
376
+ finally {
377
+ try {
378
+ await jsm.consumers.delete(stream, MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME);
379
+ }
380
+ catch { /* bounded inactivity is the orphan backstop */ }
381
+ }
382
+ };
275
383
  // FROZEN before branding (capability integrity): the brand keys this exact reference, and the
276
384
  // freeze guarantees its ops are still the module's when an install seam asserts the brand — a
277
385
  // post-brand method swap throws (strict mode) instead of surviving as a silent-empty scanner.
@@ -286,20 +394,29 @@ function buildScanner(nc, space, onClose, probe, guard) {
286
394
  await guard.assertHeld("after");
287
395
  return out;
288
396
  }),
397
+ scanManagerGoalIndex: (owner) => serializedForSpace(space, async () => {
398
+ if (guard === undefined)
399
+ return scanManagerGoalIndexOnce(owner);
400
+ await guard.assertHeld("before");
401
+ const out = await scanManagerGoalIndexOnce(owner);
402
+ await guard.assertHeld("after");
403
+ return out;
404
+ }),
289
405
  close: onClose,
290
406
  });
291
407
  RECORDS_SCANNER_BRAND.set(scanner, space);
292
408
  return scanner;
293
409
  }
294
410
  /**
295
- * The SEALED records scanner's credential grant on the RECORDS stream (SPEC 13.9): exactly the ONE
296
- * literal enumeration consumer's lifecycle (CREATE/INFO/NEXT/DELETE pinned to
297
- * {@link RECORDS_SCANNER_CONSUMER_NAME}, the CREATE filter confined to the `oblig.` subtree) + the
298
- * stream shape read + the scoped inbox. This is the ONLY profile that holds `CONSUMER.CREATE` on
299
- * `KV_cotal_records_<space>` for obligation enumeration; {@link openRecordsScannerCandidate} opens it for the
300
- * trusted process and it is NEVER registered as an external/mintable profile. The bucket is DERIVED
301
- * from the validated space and the name is the module constant, so no caller-supplied token forms a
302
- * privileged subject.
411
+ * The SEALED records scanner's credential grant on the RECORDS stream (SPEC 13.9): exactly two
412
+ * literal consumers' lifecycles. CREATE/INFO/NEXT/DELETE are pinned to
413
+ * {@link RECORDS_SCANNER_CONSUMER_NAME} for the `oblig.` subtree and to
414
+ * {@link MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME} for the manager `goalidx` subtree, plus the stream
415
+ * shape read and scoped inbox. This is the ONLY profile that holds `CONSUMER.CREATE` on
416
+ * `KV_cotal_records_<space>` for either enumeration. {@link openRecordsScannerCandidate} opens it for
417
+ * the trusted process and it is NEVER registered as an external/mintable profile. The bucket is
418
+ * DERIVED from the validated space and both names are module constants, so no caller-supplied token
419
+ * forms a privileged subject.
303
420
  */
304
421
  export function recordsScannerGrants(space, connId) {
305
422
  const bucket = recordsBucket(space);
@@ -313,6 +430,10 @@ export function recordsScannerGrants(space, connId) {
313
430
  `$JS.API.CONSUMER.INFO.${stream}.${RECORDS_SCANNER_CONSUMER_NAME}`,
314
431
  `$JS.API.CONSUMER.MSG.NEXT.${stream}.${RECORDS_SCANNER_CONSUMER_NAME}`,
315
432
  `$JS.API.CONSUMER.DELETE.${stream}.${RECORDS_SCANNER_CONSUMER_NAME}`,
433
+ `$JS.API.CONSUMER.CREATE.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}.$KV.${bucket}.goalidx.manager.>`,
434
+ `$JS.API.CONSUMER.INFO.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}`,
435
+ `$JS.API.CONSUMER.MSG.NEXT.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}`,
436
+ `$JS.API.CONSUMER.DELETE.${stream}.${MANAGER_GOAL_INDEX_SCANNER_CONSUMER_NAME}`,
316
437
  ],
317
438
  subscribe: [`_INBOX_${inbox}.>`],
318
439
  };
@@ -1 +1 @@
1
- {"version":3,"file":"records-scanner.js","sourceRoot":"","sources":["../src/records-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-scanner.js","sourceRoot":"","sources":["../src/records-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAA+C,MAAM,oBAAoB,CAAC;AAE9K,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAA4C,MAAM,gBAAgB,CAAC;AAC9N,OAAO,EAAE,mBAAmB,EAAwB,MAAM,uBAAuB,CAAC;AAGlF;;oGAEoG;AACpG,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAC3D,MAAM,wCAAwC,GAAG,4BAA4B,CAAC;AAE9E;;;+BAG+B;AAC/B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAC9D,MAAM,kBAAkB,GAAG,CAAI,KAAa,EAAE,EAAoB,EAAc,EAAE;IAChF,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;mGAGmG;AACnG,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,OAAe,EAAW,EAAE;IAClE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC;AAC/B,CAAC,CAAC;AACF;4FAC4F;AAC5F,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAC7C;iGACiG;AACjG,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,oGAAoG;AACpG,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,mEAAmE;AACnE,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC;;;;4CAI4C;AAC5C,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;QAC7E,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,8BAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qEAAqE,CAAC,CAAC;IAC9K,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;YACvC,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,sCAAsC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC5K,OAAO,MAAM,CAAC;AAChB,CAAC;AA2BD;;qGAEqG;AACrG,MAAM,kBAAkB,GAAG,CAAC,CAAU,EAAW,EAAE,CACjD,CAAC,YAAY,iBAAiB,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,gBAAgB,CAAC;AAElF;;;;;gDAKgD;AAChD,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAA0B,CAAC;AAEpE,qEAAqE;AACrE,MAAM,UAAU,yBAAyB,CAAC,OAAuB,EAAE,KAAa;IAC9E,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,SAAS;QACtB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,mLAAmL,CAAC,CAAC;IACxO,IAAI,MAAM,KAAK,KAAK;QAClB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,mDAAmD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,sJAAsJ,CAAC,CAAC;AACpT,CAAC;AAiBD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAOjD;IACC,MAAM,MAAM,GAAoB,MAAM,mBAAmB,CAAC;QACxD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,sBAAsB,IAAI,CAAC,KAAK,EAAE;QAChH,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI;KAC1F,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QACzD,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,+FAA+F,CAAC,CAAC;IACzI,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,CAAC,KAAgB,EAAkB,EAAE;YAC7C,IAAI,MAAM;gBAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,gFAAgF,CAAC,CAAC;YAC/I,IAAI,SAAS;gBAAE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,yFAAyF,CAAC,CAAC;YAC3J,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtF,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAAkB,EAAE,KAAa,EAAE,KAA2B,EAAE,KAAiB;IAChI,OAAO,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAA6B,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1F,CAAC;AAYD,SAAS,YAAY,CAAC,EAAkB,EAAE,KAAa,EAAE,OAA4B,EAAE,KAA2B,EAAE,KAAiB;IACnI,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,OAAO,MAAM,GAAG,CAAC,MAAM,CAAC;IAC7C,IAAI,IAA2C,CAAC;IAChD,IAAI,KAAkC,CAAC;IACvC,MAAM,KAAK,GAAG,GAA8B,EAAE,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,GAAoB,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAiB,EAA8B,EAAE;QACvE,MAAM,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,OAAO,MAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAE/D,gGAAgG;QAChG,6FAA6F;QAC7F,+FAA+F;QAC/F,4DAA4D;QAC5D,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC,KAAK,IAAI,CAAC;QAC9F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBAAE,YAAY,GAAG,IAAI,CAAC;;gBAC1C,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,sEAAsE,MAAM,uDAAwD,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzN,CAAC;QACD,IAAI,CAAC,YAAY;YACf,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,6FAA6F,MAAM,yEAAyE,CAAC,CAAC;QAEzN,0FAA0F;QAC1F,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;gBAC9B,IAAI,EAAE,6BAA6B;gBACnC,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,SAAS,CAAC,IAAI;gBAC1B,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,WAAW,EAAE,IAAI;gBACjB,kBAAkB,EAAE,qBAAqB;aAC1C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,wDAAwD,MAAM,KAAK,SAAS,yCAA0C,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtM,CAAC;QAED,IAAI,CAAC;YACH,4FAA4F;YAC5F,uFAAuF;YACvF,yFAAyF;YACzF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,MAIhB,CAAC;YACF,MAAM,KAAK,GACT,GAAG,CAAC,IAAI,KAAK,6BAA6B,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjE,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;oBAChE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;wBACnI,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;4BAC9E,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;gCAChE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;oCAC7D,GAAG,CAAC,cAAc,KAAK,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;wCACvF,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;4CAC7D,GAAG,CAAC,kBAAkB,KAAK,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;gDACnG,SAAS,CAAC;YACZ,IAAI,KAAK,KAAK,SAAS;gBACrB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,qCAAqC,MAAM,yDAAyD,KAAK,kCAAkC,CAAC,CAAC;YAEhM,8EAA8E;YAC9E,IAAI,KAAK,EAAE,WAAW;gBAAE,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;YAElD,0FAA0F;YAC1F,6FAA6F;YAC7F,4FAA4F;YAC5F,sFAAsF;YACtF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqE,CAAC;YAC5F,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAC/E,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC;gBACpD,IAAI,OAAO,KAAK,CAAC;oBAAE,MAAM;gBACzB,IAAI,KAAK,IAAI,gBAAgB;oBAC3B,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,6BAA6B,SAAS,wCAAwC,KAAK,4CAA4C,CAAC,CAAC;gBAC5K,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1E,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC3B,GAAG,EAAE,CAAC;oBACN,wFAAwF;oBACxF,sFAAsF;oBACtF,yFAAyF;oBACzF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;wBACnC,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,wCAAwC,CAAC,CAAC,OAAO,iCAAiC,MAAM,iGAAiG,CAAC,CAAC;oBACnO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;wBAC5C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,+DAA+D,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,wBAAwB,CAAC,CAAC;oBACvJ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACnC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;wBACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;gBACzG,CAAC;gBACD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,EAAE,eAAe;oBAAE,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;gBACzE,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;oBACd,IAAI,EAAE,UAAU,IAAI,sBAAsB;wBACxC,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,6BAA6B,SAAS,+CAA+C,UAAU,4CAA4C,CAAC,CAAC;gBAC1L,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,MAAM,GAAG,GAAsB,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtH,OAAO,GAAG,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,qFAAqF;YACrF,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,oCAAoC,CAAC,CAAC;QAC3H,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,wBAAwB,GAAG,KAAK,EAAE,KAAa,EAA6B,EAAE;QAClF,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,mBAAmB,aAAa,IAAI,CAAC;QACvD,MAAM,MAAM,GAAG,OAAO,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC,KAAK,IAAI,CAAC;QACzG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBAAE,YAAY,GAAG,IAAI,CAAC;;gBAC1C,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,6FAA8F,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnL,CAAC;QACD,IAAI,CAAC,YAAY;YACf,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,uFAAuF,CAAC,CAAC;QACpI,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;gBAC9B,IAAI,EAAE,wCAAwC;gBAC9C,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,SAAS,CAAC,IAAI;gBAC1B,cAAc,EAAE,aAAa,CAAC,cAAc;gBAC5C,WAAW,EAAE,IAAI;gBACjB,kBAAkB,EAAE,qBAAqB;aAC1C,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;YACxF,MAAM,GAAG,GAAG,IAAI,CAAC,MAIhB,CAAC;YACF,MAAM,KAAK,GACT,GAAG,CAAC,IAAI,KAAK,wCAAwC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5E,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;oBAChE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;wBACnI,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;4BAC9E,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;gCAChE,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;oCAC7D,GAAG,CAAC,cAAc,KAAK,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;wCACvF,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;4CAC7D,GAAG,CAAC,kBAAkB,KAAK,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;gDACnG,SAAS,CAAC;YACZ,IAAI,KAAK,KAAK,SAAS;gBACrB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,kGAAkG,KAAK,GAAG,CAAC,CAAC;YAC/J,IAAI,KAAK,EAAE,2BAA2B;gBAAE,MAAM,KAAK,CAAC,2BAA2B,EAAE,CAAC;YAElF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqE,CAAC;YAC5F,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;YAC1F,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,EAAE,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC;gBACpD,IAAI,OAAO,KAAK,CAAC;oBAAE,MAAM;gBACzB,IAAI,KAAK,IAAI,gBAAgB;oBAC3B,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,sEAAsE,KAAK,SAAS,CAAC,CAAC;gBACjI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC5F,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC3B,GAAG,EAAE,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;wBACnC,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,mDAAmD,CAAC,CAAC,OAAO,YAAY,MAAM,EAAE,CAAC,CAAC;oBAC1H,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;wBAC5C,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,4DAA4D,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC7G,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACnC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG;wBACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;gBACzG,CAAC;gBACD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,EAAE,+BAA+B;oBAAE,MAAM,KAAK,CAAC,+BAA+B,EAAE,CAAC;gBACzG,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;oBACd,IAAI,EAAE,UAAU,IAAI,sBAAsB;wBACxC,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,uEAAuE,CAAC,CAAC;gBACtH,CAAC;;oBAAM,UAAU,GAAG,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,GAAG,GAAqB,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS;oBACtB,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,4BAA4B,GAAG,cAAc,GAAG,CAAC,EAAE,+CAA+C,CAAC,CAAC;gBACvJ,IAAI,GAAY,CAAC;gBACjB,IAAI,CAAC;oBAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAC7D,OAAO,CAAC,EAAE,CAAC;oBAAC,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,4BAA4B,GAAG,6BAA8B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBAAC,CAAC;gBACxI,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC7C,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ;oBACxE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,uCAAuC,GAAG,sCAAsC,CAAC,CAAC;gBAC1H,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;oBACzE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,4CAA4C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBAC9I,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAC/B,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,gDAAgD,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3G,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa;oBAChC,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,sDAAsD,MAAM,CAAC,KAAK,YAAY,aAAa,EAAE,CAAC,CAAC;gBACvI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,+CAA+C,CAAC,CAAC;QACjJ,CAAC;IACH,CAAC,CAAC;IAEF,8FAA8F;IAC9F,8FAA8F;IAC9F,8FAA8F;IAC9F,MAAM,OAAO,GAAmB,MAAM,CAAC,MAAM,CAAC;QAC5C,yFAAyF;QACzF,2FAA2F;QAC3F,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACxE,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QACF,oBAAoB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YAC5E,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QACF,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IACH,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,MAAc;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO;QACL,OAAO,EAAE;YACP,cAAc;YACd,uBAAuB,MAAM,EAAE;YAC/B,2BAA2B,MAAM,IAAI,6BAA6B,QAAQ,MAAM,UAAU;YAC1F,yBAAyB,MAAM,IAAI,6BAA6B,EAAE;YAClE,6BAA6B,MAAM,IAAI,6BAA6B,EAAE;YACtE,2BAA2B,MAAM,IAAI,6BAA6B,EAAE;YACpE,2BAA2B,MAAM,IAAI,wCAAwC,QAAQ,MAAM,oBAAoB;YAC/G,yBAAyB,MAAM,IAAI,wCAAwC,EAAE;YAC7E,6BAA6B,MAAM,IAAI,wCAAwC,EAAE;YACjF,2BAA2B,MAAM,IAAI,wCAAwC,EAAE;SAChF;QACD,SAAS,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type RemoteRetainedAgentValidationRequest, type RemoteRetainedAgentValidationResult, type RetainedAgentAuthority } from "@cotal-ai/core";
2
+ /** Host-authenticated, stateless proof for one activated manager registration. The account signing
3
+ * seed is already held by the host authority plane and never crosses this seam. */
4
+ export declare function remoteManagerCurrentRegistrationProof(secret: string | Uint8Array, owner: string, request: Pick<RemoteRetainedAgentValidationRequest, "space" | "actor" | "instanceId" | "managerLifecycleUid" | "identities">, current: {
5
+ registrationRevision: number;
6
+ processEpoch: number;
7
+ }): string;
8
+ /** Parse the secret-bearing retained-validation request without retaining unknown input fields. */
9
+ export declare function parseRemoteRetainedAgentValidationRequest(raw: unknown): RemoteRetainedAgentValidationRequest;
10
+ export interface AuthorizeRemoteRetainedAgentValidationArgs {
11
+ request: RemoteRetainedAgentValidationRequest;
12
+ space: string;
13
+ owner: string;
14
+ scope: string[];
15
+ proofSecret: string | Uint8Array;
16
+ observeManagerGate: (instanceId: string) => Promise<{
17
+ state: "open" | "frozen" | "retired";
18
+ principal: string;
19
+ processEpoch: number;
20
+ registrationRevision: number;
21
+ } | null>;
22
+ }
23
+ /** Host policy authorizing one fresh, non-minting retained-agent continuity validation. */
24
+ export declare function authorizeRemoteRetainedAgentValidation(args: AuthorizeRemoteRetainedAgentValidationArgs): Promise<RemoteRetainedAgentValidationRequest>;
25
+ /** Build the closed non-secret result after the fixed host provider validation succeeds. */
26
+ export declare function completeRemoteRetainedAgentValidation(r: RemoteRetainedAgentValidationRequest, owner: string, authority: RetainedAgentAuthority): RemoteRetainedAgentValidationResult;
27
+ //# sourceMappingURL=retained-manager-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retained-manager-validation.d.ts","sourceRoot":"","sources":["../src/retained-manager-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,sBAAsB,EAC5B,MAAM,gBAAgB,CAAC;AAKxB;mFACmF;AACnF,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,IAAI,CAAC,oCAAoC,EAAE,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,qBAAqB,GAAG,YAAY,CAAC,EAC5H,OAAO,EAAE;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC9D,MAAM,CAeR;AAMD,mGAAmG;AACnG,wBAAgB,yCAAyC,CAAC,GAAG,EAAE,OAAO,GAAG,oCAAoC,CAiE5G;AAED,MAAM,WAAW,0CAA0C;IACzD,OAAO,EAAE,oCAAoC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC;IACjC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;QAClD,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,GAAG,IAAI,CAAC,CAAC;CACX;AAED,2FAA2F;AAC3F,wBAAsB,sCAAsC,CAC1D,IAAI,EAAE,0CAA0C,GAC/C,OAAO,CAAC,oCAAoC,CAAC,CAsB/C;AAED,4FAA4F;AAC5F,wBAAgB,qCAAqC,CACnD,CAAC,EAAE,oCAAoC,EACvC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,sBAAsB,GAChC,mCAAmC,CAiBrC"}
@@ -0,0 +1,139 @@
1
+ import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, assertValidOwnerToken, remoteManagerActors, } from "@cotal-ai/core";
2
+ import { createHmac, timingSafeEqual } from "node:crypto";
3
+ const identityNames = ["supervisor", "executor", "serve", "goalWriter", "sessionLedger"];
4
+ /** Host-authenticated, stateless proof for one activated manager registration. The account signing
5
+ * seed is already held by the host authority plane and never crosses this seam. */
6
+ export function remoteManagerCurrentRegistrationProof(secret, owner, request, current) {
7
+ const payload = JSON.stringify({
8
+ v: 1,
9
+ kind: "manager-current-registration",
10
+ space: request.space,
11
+ owner,
12
+ actor: request.actor,
13
+ instanceId: request.instanceId,
14
+ lifecycleUid: request.managerLifecycleUid,
15
+ actors: remoteManagerActors(request.instanceId),
16
+ identities: request.identities,
17
+ registrationRevision: current.registrationRevision,
18
+ processEpoch: current.processEpoch,
19
+ });
20
+ return `sha256:${createHmac("sha256", secret).update("cotal/manager-current-registration/v1\0").update(payload).digest("hex")}`;
21
+ }
22
+ function requestError(what) {
23
+ throw new EpEnvelopeError("bad-request", `manager retained-agent validation request ${what}`);
24
+ }
25
+ /** Parse the secret-bearing retained-validation request without retaining unknown input fields. */
26
+ export function parseRemoteRetainedAgentValidationRequest(raw) {
27
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw))
28
+ requestError("must be an object");
29
+ const o = raw;
30
+ const allowed = new Set([
31
+ "v", "kind", "space", "actor", "instanceId", "managerLifecycleUid", "requestId",
32
+ "registrationProof", "serveEpoch", "identities", "target", "actorToken", "sentinelCreds",
33
+ ]);
34
+ for (const key of Object.keys(o))
35
+ if (!allowed.has(key))
36
+ requestError(`carries unknown field ${JSON.stringify(key)} (the protocol is closed)`);
37
+ if (o.v !== 1 || o.kind !== "manager-retained-agent-validation")
38
+ requestError('must carry { v: 1, kind: "manager-retained-agent-validation" }');
39
+ for (const key of ["space", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "actorToken", "sentinelCreds"])
40
+ if (typeof o[key] !== "string" || o[key].length === 0)
41
+ requestError(`requires non-empty ${key}`);
42
+ if (o.actorToken.length > 4096 || o.sentinelCreds.length > 16 * 1024)
43
+ requestError("secret material exceeds its bounded wire size");
44
+ assertValidOwnerToken(o.actor);
45
+ assertLifecycleToken(o.instanceId, "manager retained validation instanceId");
46
+ assertLifecycleToken(o.managerLifecycleUid, "manager retained validation lifecycleUid");
47
+ if (!/^[A-Za-z0-9_-]{22,64}$/.test(o.requestId))
48
+ requestError("requestId must be a 22-64 character idempotency token");
49
+ if (!/^sha256:[0-9a-f]{64}$/.test(o.registrationProof))
50
+ requestError("requires a sha256 registrationProof");
51
+ if (typeof o.serveEpoch !== "number" || !Number.isSafeInteger(o.serveEpoch) || o.serveEpoch < 0)
52
+ requestError("serveEpoch must be a non-negative safe integer");
53
+ const ids = o.identities;
54
+ if (ids === null || typeof ids !== "object" || Array.isArray(ids))
55
+ requestError("requires identities");
56
+ const idObj = ids;
57
+ if (Object.keys(idObj).sort().join(",") !== [...identityNames].sort().join(","))
58
+ requestError(`identities must contain exactly ${identityNames.join(", ")}`);
59
+ const identities = {};
60
+ for (const name of identityNames) {
61
+ const item = idObj[name];
62
+ if (item === null || typeof item !== "object" || Array.isArray(item) || Object.keys(item).join(",") !== "id")
63
+ requestError(`identities.${name} must be exactly { id }`);
64
+ const id = item.id;
65
+ if (typeof id !== "string" || !/^U[A-Z2-7]{55}$/.test(id))
66
+ requestError(`identities.${name}.id must be a user nkey`);
67
+ identities[name] = { id };
68
+ }
69
+ const target = o.target;
70
+ if (target === null || typeof target !== "object" || Array.isArray(target) ||
71
+ Object.keys(target).sort().join(",") !== "actor,lifecycleUid,owner")
72
+ requestError("target must be exactly { owner, actor, lifecycleUid }");
73
+ const t = target;
74
+ if (typeof t.owner !== "string" || typeof t.actor !== "string" || typeof t.lifecycleUid !== "string")
75
+ requestError("target must contain string owner, actor, and lifecycleUid");
76
+ const parsedTarget = {
77
+ owner: assertDerivedOwnerToken(t.owner),
78
+ actor: assertValidOwnerToken(t.actor),
79
+ lifecycleUid: assertLifecycleToken(t.lifecycleUid, "manager retained validation target lifecycleUid"),
80
+ };
81
+ return {
82
+ v: 1,
83
+ kind: "manager-retained-agent-validation",
84
+ space: o.space,
85
+ actor: o.actor,
86
+ instanceId: o.instanceId,
87
+ managerLifecycleUid: o.managerLifecycleUid,
88
+ requestId: o.requestId,
89
+ registrationProof: o.registrationProof,
90
+ serveEpoch: o.serveEpoch,
91
+ identities,
92
+ target: parsedTarget,
93
+ actorToken: o.actorToken,
94
+ sentinelCreds: o.sentinelCreds,
95
+ };
96
+ }
97
+ /** Host policy authorizing one fresh, non-minting retained-agent continuity validation. */
98
+ export async function authorizeRemoteRetainedAgentValidation(args) {
99
+ const r = parseRemoteRetainedAgentValidationRequest(args.request);
100
+ if (r.space !== args.space)
101
+ throw new EpEnvelopeError("permission-denied", `manager retained-agent validation request names space ${r.space}, not this host space ${args.space}`);
102
+ if (!args.scope.includes("supervise"))
103
+ throw new EpEnvelopeError("permission-denied", 'manager retained-agent validation needs scope "supervise"; spawn/admin do not imply it');
104
+ if (r.target.owner !== args.owner)
105
+ throw new EpEnvelopeError("permission-denied", `manager retained-agent validation may target only its authenticated owner ${args.owner}, not ${r.target.owner}`);
106
+ const actors = remoteManagerActors(r.instanceId);
107
+ const gate = await args.observeManagerGate(r.instanceId);
108
+ if (!gate || gate.state !== "open")
109
+ throw new EpEnvelopeError("failed-precondition", `manager retained-agent validation found no current open manager gate for instance ${r.instanceId}`);
110
+ const servePrincipal = `${args.owner}.${actors.serve}`;
111
+ if (gate.principal !== servePrincipal)
112
+ throw new EpEnvelopeError("permission-denied", `manager retained-agent validation gate belongs to ${gate.principal}, not the server-derived serve principal ${servePrincipal}`);
113
+ if (gate.processEpoch !== r.serveEpoch)
114
+ throw new EpEnvelopeError("conflict", `manager retained-agent validation serve epoch ${r.serveEpoch} is stale; current is ${gate.processEpoch}`);
115
+ const expectedProof = remoteManagerCurrentRegistrationProof(args.proofSecret, args.owner, r, gate);
116
+ if (!timingSafeEqual(Buffer.from(r.registrationProof), Buffer.from(expectedProof)))
117
+ throw new EpEnvelopeError("permission-denied", "manager retained-agent validation proof does not match the current host registration");
118
+ return r;
119
+ }
120
+ /** Build the closed non-secret result after the fixed host provider validation succeeds. */
121
+ export function completeRemoteRetainedAgentValidation(r, owner, authority) {
122
+ if (authority.owner !== r.target.owner || authority.actor !== r.target.actor || authority.lifecycleUid !== r.target.lifecycleUid)
123
+ throw new EpEnvelopeError("conflict", "manager retained-agent validation host returned a replacement principal or lifecycle");
124
+ return {
125
+ v: 1,
126
+ kind: "manager-retained-agent-validation",
127
+ space: r.space,
128
+ owner,
129
+ actor: r.actor,
130
+ instanceId: r.instanceId,
131
+ managerLifecycleUid: r.managerLifecycleUid,
132
+ requestId: r.requestId,
133
+ registrationProof: r.registrationProof,
134
+ serveEpoch: r.serveEpoch,
135
+ target: r.target,
136
+ authority,
137
+ };
138
+ }
139
+ //# sourceMappingURL=retained-manager-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retained-manager-validation.js","sourceRoot":"","sources":["../src/retained-manager-validation.ts"],"names":[],"mappings":"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"}
package/dist/service.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- import { type ParsedArgs, type RemoteManagerAuthorityRequest, type SecretStore } from "@cotal-ai/core";
1
+ import { type ParsedArgs, type RemoteManagerAdminAuthorizationRequest, type RemoteManagerAuthorityRequest, type RemoteRetainedAgentValidationRequest, type SecretStore } from "@cotal-ai/core";
2
+ import { type IdpBridge } from "./idp.js";
2
3
  import type { ValidatedUserToken } from "./token.js";
4
+ import { pinnedJwksResolver, type UserTokenIssuer } from "./issuer.js";
3
5
  import { type PlaneLivenessOracle } from "./plane-claim.js";
4
6
  import { type EvictPrincipal } from "./credential-ledger.js";
5
7
  /** JWKS max-age seconds — the cache contract's knob. Exported so a rotation tool can compute the
@@ -33,6 +35,21 @@ export interface AuthAuthorityPlane {
33
35
  scope: string[];
34
36
  request: RemoteManagerAuthorityRequest;
35
37
  }) => Promise<import("@cotal-ai/core").RemoteManagerAuthorityMaterial>;
38
+ validateRetainedAgent: (args: {
39
+ owner: string;
40
+ scope: string[];
41
+ request: RemoteRetainedAgentValidationRequest;
42
+ }) => Promise<RemoteRetainedAgentValidationRequest>;
43
+ scanManagerGoalIndex: (args: {
44
+ owner: string;
45
+ scope: string[];
46
+ request: import("@cotal-ai/core").RemoteManagerGoalIndexScanRequest;
47
+ }) => Promise<import("@cotal-ai/core").RemoteManagerGoalIndexScanResult>;
48
+ authorizeManagerAdmin: (args: {
49
+ owner: string;
50
+ scope: string[];
51
+ request: RemoteManagerAdminAuthorizationRequest;
52
+ }) => Promise<import("@cotal-ai/core").RemoteManagerAdminAuthorizationResult>;
36
53
  /** Resolves with the state-3 copy when a mid-life scanner death FENCES the plane (SPEC 13.13):
37
54
  * the plane is no longer whole, `authorizeConnect`/`mintConnectCredential` refuse from that
38
55
  * moment, and the composition root must take the whole service DOWN loud (a fenced plane that
@@ -41,6 +58,21 @@ export interface AuthAuthorityPlane {
41
58
  fenced: Promise<string>;
42
59
  close(): Promise<void>;
43
60
  }
61
+ type RemoteRetirementGate = {
62
+ state: "open" | "frozen" | "retired";
63
+ principal: string;
64
+ processEpoch: number;
65
+ };
66
+ /** Package-internal policy step for the hosted retirement requester. The HTTP production door calls
67
+ * this after deriving the owner and manager actors; broker-free smokes exercise the same decision. */
68
+ export declare function authorizeRemoteManagerRetirement(args: {
69
+ owner: string;
70
+ serveActor: string;
71
+ instanceId: string;
72
+ targetOwner: string;
73
+ serveEpoch: number;
74
+ gate: RemoteRetirementGate | null;
75
+ }): void;
44
76
  /**
45
77
  * Open the authority plane — the PRODUCTION connect/exchange composition (exported so the live
46
78
  * deny-new smoke exercises exactly what the daemon runs). Boot order is the readiness contract:
@@ -92,6 +124,39 @@ export declare function openAuthAuthorityPlane(opts: {
92
124
  * NON-SEAM state (the actor ledger, the IdP pin, the discovery file) still lives in the local
93
125
  * state dir either way — hosting those is a later, separate seam. */
94
126
  export declare function runAuthService(args: ParsedArgs, store?: SecretStore): Promise<void>;
127
+ interface HandlerCtx {
128
+ issuer: UserTokenIssuer;
129
+ bridge: IdpBridge;
130
+ bridgeIdp: {
131
+ issuer: string;
132
+ audience: string;
133
+ key: ReturnType<typeof pinnedJwksResolver>;
134
+ };
135
+ ownerSecret: string | Uint8Array;
136
+ managerServiceAuthority: AuthAuthorityPlane["issueManagerServiceAuthority"];
137
+ validateRetainedAgent: AuthAuthorityPlane["validateRetainedAgent"];
138
+ scanManagerGoalIndex: AuthAuthorityPlane["scanManagerGoalIndex"];
139
+ authorizeManagerAdmin: AuthAuthorityPlane["authorizeManagerAdmin"];
140
+ secrets: SecretStore;
141
+ retireInteractiveLifecycle: AuthAuthorityPlane["retireInteractiveLifecycle"];
142
+ cap: string;
143
+ failures: number[];
144
+ badCaps: number[];
145
+ space: string;
146
+ /** The provider state dir — the AGENT grant type reads its ledger rows fresh per exchange. */
147
+ dir: string;
148
+ /** The authority plane's root-credential ensure — the agent-exchange arm stamps from it (the
149
+ * human arm stamps inside the bridge). */
150
+ mintConnectCredential: (args: {
151
+ owner: string;
152
+ actor: string;
153
+ lifecycleUid: string;
154
+ }) => Promise<string>;
155
+ }
156
+ /** Dispatch one already-authenticated manager-authority body through the fixed host validator. */
157
+ export declare function dispatchManagerAuthorityRequest(ctx: Pick<HandlerCtx, "space" | "dir" | "secrets" | "managerServiceAuthority" | "validateRetainedAgent" | "scanManagerGoalIndex" | "authorizeManagerAdmin">, owner: string, body: {
158
+ request: unknown;
159
+ }): Promise<unknown>;
95
160
  /** The advertised broker address the public bundle carries — the URL participants will dial, so
96
161
  * the same scheme family `cotal meshes add` accepts. Exported for the producer/consumer contract
97
162
  * smoke; returns the refusal sentence, or undefined when the address is usable. */
@@ -127,4 +192,5 @@ export declare function finalizeUserBundleEndpoint(bundle: Record<string, unknow
127
192
  * Exported for the producer/consumer contract smoke; returns the refusal, or undefined when
128
193
  * usable. */
129
194
  export declare function checkAgentProvisioningUrl(raw: string): string | undefined;
195
+ export {};
130
196
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}