@tacuchi/agent-workflow-cli 25.2.0 → 25.3.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 (61) hide show
  1. package/README.md +1 -0
  2. package/dist/application/decision-note-service.js +20 -3
  3. package/dist/application/decision-note-service.js.map +1 -1
  4. package/dist/application/elicitation-server.js +19 -3
  5. package/dist/application/elicitation-server.js.map +1 -1
  6. package/dist/application/flow/advance.js +91 -5
  7. package/dist/application/flow/advance.js.map +1 -1
  8. package/dist/application/flow/internal-actions.js +167 -7
  9. package/dist/application/flow/internal-actions.js.map +1 -1
  10. package/dist/application/flow/submit.js +187 -4
  11. package/dist/application/flow/submit.js.map +1 -1
  12. package/dist/application/plan-current-point.js +54 -0
  13. package/dist/application/plan-current-point.js.map +1 -0
  14. package/dist/application/plan-exec-decision-service.js +143 -4
  15. package/dist/application/plan-exec-decision-service.js.map +1 -1
  16. package/dist/application/plan-locator.js +78 -0
  17. package/dist/application/plan-locator.js.map +1 -0
  18. package/dist/application/plan-open-run.js +129 -0
  19. package/dist/application/plan-open-run.js.map +1 -0
  20. package/dist/application/reseal-service.js +14 -44
  21. package/dist/application/reseal-service.js.map +1 -1
  22. package/dist/application/resume-service.js +9 -3
  23. package/dist/application/resume-service.js.map +1 -1
  24. package/dist/application/settle-service.js +442 -0
  25. package/dist/application/settle-service.js.map +1 -0
  26. package/dist/application/workline-index-service.js +165 -62
  27. package/dist/application/workline-index-service.js.map +1 -1
  28. package/dist/cli/commands/index.js +2 -0
  29. package/dist/cli/commands/index.js.map +1 -1
  30. package/dist/cli/commands/settle.js +197 -0
  31. package/dist/cli/commands/settle.js.map +1 -0
  32. package/dist/cli/commands/status.js +2 -0
  33. package/dist/cli/commands/status.js.map +1 -1
  34. package/dist/cli/help-groups.js +7 -0
  35. package/dist/cli/help-groups.js.map +1 -1
  36. package/dist/cli/parser.js +6 -0
  37. package/dist/cli/parser.js.map +1 -1
  38. package/dist/domain/decision-note.js +166 -3
  39. package/dist/domain/decision-note.js.map +1 -1
  40. package/dist/domain/decision-preview.js.map +1 -1
  41. package/dist/domain/effective-contract.js +4 -3
  42. package/dist/domain/effective-contract.js.map +1 -1
  43. package/dist/domain/elicitation.js +26 -16
  44. package/dist/domain/elicitation.js.map +1 -1
  45. package/dist/domain/flow/answer.js +10 -0
  46. package/dist/domain/flow/answer.js.map +1 -1
  47. package/dist/domain/flow/authority.js +116 -0
  48. package/dist/domain/flow/authority.js.map +1 -1
  49. package/dist/domain/flow/directive.js +8 -1
  50. package/dist/domain/flow/directive.js.map +1 -1
  51. package/dist/domain/flow/run-state.js +95 -9
  52. package/dist/domain/flow/run-state.js.map +1 -1
  53. package/dist/domain/obligation-correspondence.js +95 -0
  54. package/dist/domain/obligation-correspondence.js.map +1 -0
  55. package/dist/domain/reconciliation.js +142 -25
  56. package/dist/domain/reconciliation.js.map +1 -1
  57. package/dist/domain/settlement.js +129 -0
  58. package/dist/domain/settlement.js.map +1 -0
  59. package/package.json +1 -1
  60. package/skills/w/commands/resume.md +2 -2
  61. package/skills/w/loops/plan-exec-loop/LOOP.md +31 -0
@@ -25,8 +25,9 @@
25
25
  */
26
26
  import { join } from "node:path";
27
27
  import { dispositionOf } from "../../domain/flow/route.js";
28
- import { withPlanExecBatch, withPlanExecBatchLoop, } from "../../domain/flow/run-state.js";
28
+ import { withPlanExecBatch, withPlanExecBatchLoop, withSettlement, } from "../../domain/flow/run-state.js";
29
29
  import { sealProposal } from "../../domain/proposal.js";
30
+ import { obligationExit } from "../../domain/reconciliation.js";
30
31
  import { runArtifactsCommand } from "../artifacts-service.js";
31
32
  import { appendClaimEvent, claimKey, claimShapedAmong, completedClaimsIn, ledgerPath, openClaimsOf, readClaimEvents, revokedAmong, } from "../claims-ledger.js";
32
33
  import { applyLocalProposal } from "../local-proposal.js";
@@ -35,6 +36,7 @@ import { parsePhases } from "../parsers/phases.js";
35
36
  import { parseTasks } from "../parsers/tasks.js";
36
37
  import { resolveWorkspaceRoot } from "../paths-service.js";
37
38
  import { inferPlanExecBatch, preparePlanExecDoneSeal, publishPlanExecBatch, } from "../plan-exec-batch-service.js";
39
+ import { settlePlanExecObligations } from "../plan-exec-decision-service.js";
38
40
  import { readSessionArtifacts } from "../release-data/artifacts.js";
39
41
  import { canonicalJson } from "../semantic-operation/protocol.js";
40
42
  import { runSessionClose } from "../session-close-service.js";
@@ -42,6 +44,7 @@ import { recordPublication } from "../session-custody-recorder.js";
42
44
  import { runStatusCommand } from "../status-service.js";
43
45
  import { buildWorklineIndex } from "../workline-index-service.js";
44
46
  import { runWorktree } from "../worktree-service.js";
47
+ import { projectRun } from "./run-projection.js";
45
48
  import { applyUnderLock, locateRun, readRun } from "./run-state-service.js";
46
49
  export function internalActionExecutor(deps) {
47
50
  return async (plan, run) => {
@@ -62,6 +65,8 @@ export function internalActionExecutor(deps) {
62
65
  return closeBatch(deps, run);
63
66
  case "plan-exec.plan-done":
64
67
  return sealPlanDone(deps, run);
68
+ case "plan-exec.settlement-publish":
69
+ return publishSettlement(deps, run);
65
70
  }
66
71
  };
67
72
  }
@@ -420,9 +425,15 @@ async function inferBatch(deps, run) {
420
425
  if (next.failure.code !== "PLAN_EXEC_BATCH_NONE_OPEN") {
421
426
  return { ok: false, failure: next.failure };
422
427
  }
428
+ // The loop has ended, which is the one moment the closure can be told
429
+ // what the plan still owes. Snapshotting it HERE — under the same lock,
430
+ // from the board's own reconciliation — is what lets the settlement rows
431
+ // be passed over on their own: the walk stays a pure function of the
432
+ // registry and this state, so a plan that owes nothing closes exactly as
433
+ // it closed before those rows existed.
423
434
  return {
424
435
  ok: true,
425
- state: withPlanExecBatchLoop(current, { pending: false, iteration: null }),
436
+ state: withSettlement(withPlanExecBatchLoop(current, { pending: false, iteration: null }), await settlementSnapshot(deps, scope.plan)),
426
437
  value: { batch: null, created: false, no_work: true },
427
438
  };
428
439
  }
@@ -447,6 +458,100 @@ async function inferBatch(deps, run) {
447
458
  state: inferred.state,
448
459
  };
449
460
  }
461
+ /**
462
+ * Publish the successor of every note whose obligation this closure discharged.
463
+ *
464
+ * It takes nothing from the caller: the obligations are the snapshot the batch
465
+ * loop's end sealed, and what was declared about each of them is the authoring
466
+ * row's own answer, both read from the run's state. What it does is derive and
467
+ * hand them to the same sealed registration the deviation gate uses.
468
+ *
469
+ * A compensation the run declared STILL PENDING stops it here, and that is the
470
+ * point: the closure is not a place to record that work remains, it is the place
471
+ * to finish it. The refusal names the work and the command that comes back.
472
+ */
473
+ async function publishSettlement(deps, run) {
474
+ if (run.scope === null) {
475
+ return refusal("plan-exec.settlement-publish", "la corrida no fijó el plan cuyo saldo debe publicar", canonicalJson({ scope: null }));
476
+ }
477
+ const root = await resolveWorkspaceRoot(deps.fs, deps.env, deps.paths);
478
+ const read = await readRun(deps.fs, locateRun(deps.paths, run.session));
479
+ if (!read.ok) {
480
+ return refusal("plan-exec.settlement-publish", `${read.failure.message} — ${read.failure.action}`, canonicalJson({ failure: read.failure }));
481
+ }
482
+ if (run.state_digest !== undefined && read.state.digest !== run.state_digest) {
483
+ return refusal("plan-exec.settlement-publish", "la corrida cambió mientras se preparaba el saldo", canonicalJson({ expected: run.state_digest, actual: read.state.digest }));
484
+ }
485
+ // Reaching here with nothing declared means the authoring row never answered —
486
+ // it was exhausted and passed over — and publishing "nothing" would credit
487
+ // this plan as owing nothing when it owes everything it owed before.
488
+ const declared = read.state.settlement?.declared ?? [];
489
+ if (declared.length === 0 && (read.state.settlement?.compensations.length ?? 0) > 0) {
490
+ return refusal("plan-exec.settlement-publish", `el plan conserva compensación vigente y la corrida no declaró nada sobre ella: ${(read.state.settlement?.compensations ?? []).map((o) => `${o.note}: ${o.text}`).join("; ")} — devolvele sus intentos a la frontera de autoría con 'aw flow recover --session ${run.session}' y declará el saldo`, canonicalJson({ declared: [], compensations: read.state.settlement?.compensations ?? [] }));
491
+ }
492
+ const settled = await settlePlanExecObligations(deps.fs, deps.paths, {
493
+ root,
494
+ plan: run.scope.plan,
495
+ // This run, at its closure: saying so is more honest than borrowing the
496
+ // phase of a batch that is already integrated.
497
+ execution: () => ({ session: run.session, phase: "cierre" }),
498
+ date: new Date().toISOString().slice(0, 10),
499
+ declarations: declared.map((declaration) => ({
500
+ note: declaration.note,
501
+ index: declaration.index,
502
+ outcome: declaration.outcome,
503
+ ...(declaration.evidence === undefined ? {} : { evidence: declaration.evidence }),
504
+ })),
505
+ });
506
+ if (!settled.ok) {
507
+ return refusal("plan-exec.settlement-publish", `${settled.failure.message} — ${settled.failure.action}`, canonicalJson({ failure: settled.failure }));
508
+ }
509
+ if (settled.published.length === 0) {
510
+ return refusal("plan-exec.settlement-publish", "ninguna declaración cambia la cadena: no hay saldo que publicar y el plan sigue debiendo lo mismo", canonicalJson({ declared }));
511
+ }
512
+ return {
513
+ ok: true,
514
+ summary: `saldo publicado: ${settled.published.map((note) => note.id).join(", ")}`,
515
+ output: canonicalJson({
516
+ published: settled.published.map((note) => note.id),
517
+ settled: settled.settled,
518
+ reconciliation: settled.reconciliation,
519
+ }),
520
+ // A successor landed, or was already on disk from an interrupted run — and
521
+ // either way the index it joined existed, so overwriting is what happened.
522
+ effects: ["mutate_overwrite"],
523
+ };
524
+ }
525
+ /**
526
+ * What the plan owes when its last batch closed, read from the board.
527
+ *
528
+ * From the board and not from a second walk of the chain: `aw status` already
529
+ * decides which notes are in force, which obligations they carry and which of
530
+ * them are compensations, and a closure computing that again would be a second
531
+ * authority on whether a plan may close. A plan the board cannot judge at all —
532
+ * unsealed baseline, no chain — owes nothing, which is the same answer the board
533
+ * gives and the same one the closure gave before this row existed.
534
+ */
535
+ async function settlementSnapshot(deps, plan) {
536
+ const index = await buildWorklineIndex(deps.fs, deps.env, deps.paths, { git: deps.git });
537
+ const found = index.plans.find((candidate) => candidate.file === plan);
538
+ // A lineage that does not COMPOSE reports its own refusal as what is owed — an
539
+ // unreadable chain, an overlap — and those pending entries name no note.
540
+ // Offering them for settlement would ask the closure to discharge a parse
541
+ // error, and the publication would then go looking for a note called
542
+ // "composición". That refusal is `plan-done`'s, which reports it as what it is.
543
+ const reconciliation = found?.contract === null ? undefined : found?.reconciliation;
544
+ const owed = (obligations) => obligations.map((obligation) => ({
545
+ note: obligation.by,
546
+ index: obligation.index,
547
+ text: obligation.text,
548
+ legacy: obligation.legacy,
549
+ }));
550
+ return {
551
+ compensations: owed(reconciliation?.pending ?? []),
552
+ handoffs: owed(reconciliation?.handoffs ?? []),
553
+ };
554
+ }
450
555
  /**
451
556
  * Close the already inferred real batch, not a human-declared list of effects.
452
557
  *
@@ -497,6 +602,13 @@ async function closeBatch(deps, run) {
497
602
  if (!published.ok) {
498
603
  return refusal("plan-exec.batch-close", `${published.failure.message} — ${published.failure.action}`, canonicalJson({ failure: published.failure }));
499
604
  }
605
+ // THE LOOP ENDS HERE, and this is the only place that knows it: the publisher
606
+ // derives the next cursor from the exact bytes it just wrote, and when nothing
607
+ // is left open it sets `pending: false` — which means the inference row is
608
+ // never walked again, and a snapshot taken only there would never exist for a
609
+ // run that actually executed work. So the closure is told what the plan still
610
+ // owes at the moment its last batch lands.
611
+ const state = await recordSettlementOwed(deps, run, published.state);
500
612
  return {
501
613
  ok: true,
502
614
  summary: published.already_applied
@@ -508,9 +620,33 @@ async function closeBatch(deps, run) {
508
620
  already_applied: published.already_applied,
509
621
  }),
510
622
  effects: ["mutate_overwrite"],
511
- state: published.state,
623
+ state,
512
624
  };
513
625
  }
626
+ /**
627
+ * Seal what the plan owes into the run, once the batch loop has ended.
628
+ *
629
+ * Persisted and not merely returned: the driver settles against the digest this
630
+ * state carries, so a snapshot that lived only in memory would fail its own
631
+ * compare-and-swap. A loop still running gets nothing — there is no closure to
632
+ * inform yet — and a state that cannot be written keeps the one it had, which
633
+ * leaves the settlement rows passed over and `plan-done` refusing on its own
634
+ * terms: the same answer, one step later.
635
+ */
636
+ async function recordSettlementOwed(deps, run, published) {
637
+ if (published.batch_loop?.pending !== false || run.scope === null)
638
+ return published;
639
+ const owed = await settlementSnapshot(deps, run.scope.plan);
640
+ const sealed = await applyUnderLock(deps.fs, locateRun(deps.paths, run.session), (live) => live === null
641
+ ? { ok: false, failure: RUN_GONE }
642
+ : { ok: true, state: withSettlement(live, owed), value: null }, { expectDigest: published.digest });
643
+ return sealed.ok ? sealed.state : published;
644
+ }
645
+ const RUN_GONE = {
646
+ code: "FLOW_RUN_ABSENT",
647
+ message: "la corrida desapareció antes de sellar lo que el plan debe",
648
+ action: "reanudá la corrida con 'aw flow advance' antes de cerrar el batch",
649
+ };
514
650
  const PLAN_DONE_REQUIRED_TRANSITIONS = [
515
651
  "plan-exec.final-validation",
516
652
  "plan-exec.commit-execution",
@@ -585,7 +721,7 @@ async function sealPlanDone(deps, run) {
585
721
  // The index is re-read while the document publication holds the workspace
586
722
  // lock. This closes the decision-note race: a new compensatory obligation
587
723
  // cannot appear between the run's earlier reading and a `done` write.
588
- precondition: () => planDonePrecondition(deps, run.scope?.plan ?? ""),
724
+ precondition: () => planDonePrecondition(deps, run.scope?.plan ?? "", run.session),
589
725
  });
590
726
  if (!applied.ok) {
591
727
  return refusal("plan-exec.plan-done", `${applied.failure.message} — ${applied.failure.action}`, canonicalJson({ failure: applied.failure }));
@@ -633,7 +769,7 @@ function planDoneClosure(state, session) {
633
769
  return `validación final, commits e integración acreditados por la corrida ${session}`;
634
770
  }
635
771
  /** The documentary checks that must pass in the same critical section as done. */
636
- async function planDonePrecondition(deps, path) {
772
+ export async function planDonePrecondition(deps, path, session) {
637
773
  const index = await buildWorklineIndex(deps.fs, deps.env, deps.paths, { git: deps.git });
638
774
  if (index.docs_canon_error !== undefined) {
639
775
  return {
@@ -658,10 +794,34 @@ async function planDonePrecondition(deps, path) {
658
794
  };
659
795
  }
660
796
  if (plan.reconciliation !== null && !plan.reconciliation.closable) {
797
+ // The SAME derivation the board's headline and the pipeline row come from.
798
+ // The run is this one: `plan-done` executes inside it, so the exit it needs
799
+ // is its own next boundary — the board asks the same question of a plan it
800
+ // is only looking at, and gets the answer for whichever run holds it.
801
+ //
802
+ // And the command is READ from the projection, not spelled here. The two
803
+ // agreed by accident: at an internal boundary the projection happens to
804
+ // return exactly `aw flow advance --code <NNN>`. It does not have to — a
805
+ // legacy run refuses a bare `advance` and needs `--flow … --adopt`, and only
806
+ // the projection knows that. Synthesizing it was the third derivation this
807
+ // phase set out to remove.
808
+ const run = await projectRun(deps.fs, deps.paths, session);
809
+ const exit = obligationExit(plan.reconciliation, {
810
+ plan: path,
811
+ current_point: plan.current_point,
812
+ run: {
813
+ session,
814
+ // `plan-done` runs inside a live run, so the projection is there; the
815
+ // fallback is the shape TypeScript needs, not a case anybody reaches.
816
+ command: run?.command ?? `aw flow advance --code ${session}`,
817
+ why: "tiene la corrida de ejecución que llegó a este cierre",
818
+ },
819
+ });
661
820
  return {
662
821
  code: "PLAN_EXEC_DONE_RECONCILIATION_PENDING",
663
- message: `${path} conserva obligaciones de reconciliación`,
664
- action: `resolvé la compensación desde ${plan.reconciliation.resume_point ?? "su punto de reanudación"} antes de cerrar`,
822
+ message: exit === null ? `${path} conserva obligaciones de reconciliación` : exit.headline,
823
+ action: exit?.action ??
824
+ `resolvé la compensación vigente de '${path}' y volvé a sellar: 'aw settle prepare ${path}' la lista`,
665
825
  };
666
826
  }
667
827
  if (plan.baseline.status === "divergent" ||
@@ -1 +1 @@
1
- {"version":3,"file":"internal-actions.js","sourceRoot":"","sources":["../../../src/application/flow/internal-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-actions.js","sourceRoot":"","sources":["../../../src/application/flow/internal-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAML,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAsB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAA0B,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAqB,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAEL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAsB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAiE5E,MAAM,UAAU,sBAAsB,CAAC,IAAwB;IAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACzB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,KAAK,iBAAiB;gBACpB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;YACrB,KAAK,mBAAmB;gBACtB,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;YACjD,KAAK,eAAe;gBAClB,OAAO,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1B,KAAK,iBAAiB;gBACpB,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,KAAK,kBAAkB;gBACrB,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,KAAK,uBAAuB;gBAC1B,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,KAAK,uBAAuB;gBAC1B,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/B,KAAK,qBAAqB;gBACxB,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,KAAK,8BAA8B;gBACjC,OAAO,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,WAAW,CACxB,IAAwB,EACxB,GAAsB;IAEtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,OAAO,CACZ,iBAAiB,EACjB,kEAAkE,EAClE,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,wEAAwE;QACxE,2EAA2E;QAC3E,4BAA4B;QAC5B,IAAI,KAAK,KAAK,WAAW;YAAE,SAAS;QACpC,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAChE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CACnD,CAAC;QACF,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,OAAO,CACZ,iBAAiB,EACjB,GAAG,KAAK,KAAK,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,EACpF,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CACpD,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,2EAA2E;QAC3E,uDAAuD;QACvD,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CACZ,iBAAiB,EACjB,GAAG,KAAK,yCAAyC,EACjD,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACjC,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,eAAe,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7G,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5D,gFAAgF;QAChF,8EAA8E;QAC9E,kFAAkF;QAClF,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,OAAO,CACpB,IAAwB,EACxB,GAAsB;IAEtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,OAAO,CACZ,kBAAkB,EAClB,4DAA4D,EAC5D,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAClC,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;QAC5D,IAAI;QACJ,QAAQ;QACR,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,EAAE;QAC1E,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CACrC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CACzD;QACD,8EAA8E;QAC9E,wEAAwE;QACxE,2EAA2E;QAC3E,6EAA6E;QAC7E,6EAA6E;QAC7E,qEAAqE;QACrE,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC;QAC7E,cAAc,EAAE,CAAC,YAAY,EAAE,EAAE,CAC/B,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CACnF,GAAG,EAAE,CAAC,SAAS,CAChB;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CACZ,kBAAkB,EAClB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EACxD,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACpF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,MAAM,CAAC,eAAe;YAC7B,CAAC,CAAC,oCAAoC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc;YAC3E,CAAC,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QACnF,yEAAyE;QACzE,6EAA6E;QAC7E,iEAAiE;QACjE,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,YAAY,CACzB,IAAwB,EACxB,KAAa,EACb,YAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,gCAAgC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oEAAoE;YACvJ,MAAM,EACJ,oHAAoH;SACvH,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACxB,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACpE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC1B,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,+BAA+B,IAAI,CAAC,UAAU,yDAAyD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAC5K,MAAM,EAAE,mCAAmC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,kDAAkD;aACpH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,KAAK,UAAU,qBAAqB,CAClC,IAAwB,EACxB,KAAa,EACb,MAAgE,EAChE,YAA+B;IAE/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE;YACtD,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,YAAY;SACb,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC1C,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,WAAW;gBAClB,KAAK;gBACL,KAAK,EAAE,sDAAsD;aAC9D,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,OAAO;YACL,QAAQ;YACR,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,QAAQ;YACR,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACrE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAwB;IAC3C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,YAAY,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,KAAK,YAAY,MAAM,CAAC,eAAe,sBAAsB,MAAM,CAAC,OAAO,aAAa;QAC3I,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;QAC3B,OAAO,EAAE,CAAC,WAAW,CAAC;KACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,SAAS,CACtB,IAAwB,EACxB,GAAsB,EACtB,IAA8B;IAE9B,6EAA6E;IAC7E,4EAA4E;IAC5E,wDAAwD;IACxD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE;QACtE,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;QAC7B,OAAO,OAAO,CACZ,mBAAmB,EACnB,kCAAkC,GAAG,CAAC,IAAI,GAAG,EAC7C,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,OAAO,CACZ,mBAAmB,EACnB,cAAc,MAAM,CAAC,OAAO,0BAA0B,EACtD,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,UAAU,MAAM,CAAC,OAAO,0BAA0B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,eAAe,MAAM,CAAC,SAAS,CAAC,gBAAgB,aAAa;YAChK,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD,gFAAgF;IAChF,+EAA+E;IAC/E,iFAAiF;IACjF,iFAAiF;IACjF,wDAAwD;IACxD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,OAAO,CACZ,mBAAmB,EACnB,2DAA2D,EAC3D,MAAM,CACP,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,UAAU,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,YAAY;QAC5H,MAAM;QACN,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAkB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAEtE;;;;;;;GAOG;AACH,sFAAsF;AACtF,MAAM,iBAAiB,GAAG,sCAAsC,CAAC;AAEjE;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GACX,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,CAAC;QACpD,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAC9D,OAAO,OAAO,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;IACzD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,UAAU,CACvB,IAAwB,EACxB,GAAsB;IAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CACZ,uBAAuB,EACvB,oDAAoD,EACpD,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAKnC,IAAI,CAAC,EAAE,EACP,QAAQ,EACR,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,iDAAiD;oBAC1D,MAAM,EAAE,oEAAoE;iBAC7E;aACF,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,KAAK,SAAS,CACrD,CAAC;QACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;gBACxD,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QACD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,iCAAiC;oBACvC,OAAO,EAAE,qBAAqB,KAAK,CAAC,IAAI,yBAAyB;oBACjE,MAAM,EAAE,mEAAmE;iBAC5E;aACF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,2BAA2B,EAAE,CAAC;gBACtD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9C,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,yEAAyE;YACzE,qEAAqE;YACrE,yEAAyE;YACzE,uCAAuC;YACvC,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,cAAc,CACnB,qBAAqB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EACnE,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAC3C;gBACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;aACtD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YAC7C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;SAC5D,CAAC;IACJ,CAAC,EACD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CACzE,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,OAAO,CACZ,uBAAuB,EACvB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAC1D,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAC7C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO;YAC7B,CAAC,CAAC,8FAA8F;YAChG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO;gBACtB,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,OAAO,0CAA0C;gBACxF,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,QAAQ,sDAAsD;QACzG,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvF,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAwB,EACxB,GAAsB;IAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CACZ,8BAA8B,EAC9B,qDAAqD,EACrD,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,OAAO,CACZ,8BAA8B,EAC9B,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAClD,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7E,OAAO,OAAO,CACZ,8BAA8B,EAC9B,kDAAkD,EAClD,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IACD,+EAA+E;IAC/E,2EAA2E;IAC3E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC;IACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpF,OAAO,OAAO,CACZ,8BAA8B,EAC9B,kFAAkF,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,qFAAqF,GAAG,CAAC,OAAO,sBAAsB,EAClS,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,IAAI,EAAE,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;QACnE,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;QACpB,wEAAwE;QACxE,+CAA+C;QAC/C,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5D,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3C,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,GAAG,CAAC,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;SAClF,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CACZ,8BAA8B,EAC9B,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EACxD,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAC5C,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,OAAO,CACZ,8BAA8B,EAC9B,mGAAmG,EACnG,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,oBAAoB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClF,MAAM,EAAE,aAAa,CAAC;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAAwB,EAAE,IAAY;IACtE,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvE,+EAA+E;IAC/E,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,gFAAgF;IAChF,MAAM,cAAc,GAAG,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC;IACpF,MAAM,IAAI,GAAG,CAAC,WAAyC,EAA8B,EAAE,CACrF,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,UAAU,CAAC,EAAE;QACnB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC,CAAC,CAAC;IACN,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC;QAClD,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,UAAU,CACvB,IAAwB,EACxB,GAAsB;IAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CACZ,uBAAuB,EACvB,mDAAmD,EACnD,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,OAAO,CACZ,uBAAuB,EACvB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAClD,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7E,OAAO,OAAO,CACZ,uBAAuB,EACvB,6DAA6D,EAC7D,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CACZ,uBAAuB,EACvB,qBAAqB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EACtC,aAAa,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CACxC,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAC3C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS,CACzD,CAAC;IACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,OAAO,CACZ,uBAAuB,EACvB,iHAAiH,EACjH,aAAa,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAC9E,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO,OAAO,CACZ,uBAAuB,EACvB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAClE,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CACjD,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;QAChE,IAAI;QACJ,QAAQ;QACR,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QAC/B,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;QACpB,KAAK;QACL,eAAe,EAAE,KAAK,CAAC,KAAK;QAC5B,aAAa,EAAE,YAAY,CAAC,OAAO;QACnC,UAAU,EAAE,uBAAuB;KACpC,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,OAAO,OAAO,CACZ,uBAAuB,EACvB,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAC5D,aAAa,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAC9C,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,2CAA2C;IAC3C,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACrE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,SAAS,CAAC,eAAe;YAChC,CAAC,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,EAAE,2BAA2B,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACxE,CAAC,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,EAAE,eAAe,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5E,MAAM,EAAE,aAAa,CAAC;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,eAAe,EAAE,SAAS,CAAC,eAAe;SAC3C,CAAC;QACF,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,oBAAoB,CACjC,IAAwB,EACxB,GAAsB,EACtB,SAAuB;IAEvB,IAAI,SAAS,CAAC,UAAU,EAAE,OAAO,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpF,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,IAAI,CAAC,EAAE,EACP,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,EAClC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,IAAI;QACX,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE;QAClC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAClE,EAAE,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,CACnC,CAAC;IACF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,QAAQ,GAAsB;IAClC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,4DAA4D;IACrE,MAAM,EAAE,mEAAmE;CAC5E,CAAC;AAEF,MAAM,8BAA8B,GAAG;IACrC,4BAA4B;IAC5B,4BAA4B;IAC5B,4BAA4B;CACpB,CAAC;AAEX;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY,CACzB,IAAwB,EACxB,GAAsB;IAEtB,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,OAAO,CACZ,qBAAqB,EACrB,8CAA8C,EAC9C,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,OAAO,CACZ,qBAAqB,EACrB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAClD,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7E,OAAO,OAAO,CACZ,qBAAqB,EACrB,wDAAwD,EACxD,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CACzE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC;QACvF,OAAO,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,YAAY,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CACZ,qBAAqB,EACrB,8BAA8B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAClD,aAAa,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,CAAC,CAChE,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CACjD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,qBAAqB,KAAK,SAAS,CACrD,CAAC;IACF,IAAI,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QAC1E,OAAO,OAAO,CACZ,qBAAqB,EACrB,sEAAsE,EACtE,aAAa,CAAC;YACZ,IAAI,EAAE,8BAA8B;YACpC,YAAY,EAAE,WAAW,EAAE,EAAE,IAAI,IAAI;YACrC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI;SAC1C,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CACZ,qBAAqB,EACrB,qBAAqB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,EACtC,aAAa,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAChF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,EAAE;QAC7C,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;QACpB,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,OAAO,CACZ,qBAAqB,EACrB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAC1D,aAAa,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC;QAC5B,SAAS,EAAE,qBAAqB;QAChC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC1F,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC1E,OAAO,EAAE,CAAC,kBAAkB,CAAC;QAC7B,gBAAgB,EAAE,EAAE;KACrB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;QAC5D,IAAI;QACJ,QAAQ;QACR,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAClD,cAAc,EAAE,CAAC,kBAAkB,CAAC;QACpC,0EAA0E;QAC1E,2EAA2E;QAC3E,sEAAsE;QACtE,YAAY,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC;KACnF,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CACZ,qBAAqB,EACrB,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EACxD,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAC5C,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe;YACrC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,yCAAyC;YAC5D,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,sCAAsC;QAC3D,MAAM,EAAE,aAAa,CAAC;YACpB,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;YACpB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;YAC/B,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe;SAChD,CAAC;QACF,yEAAyE;QACzE,uDAAuD;QACvD,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,SAAS,eAAe,CAAC,KAAmB,EAAE,OAAe;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,CAAC,KAAK,CAAC,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CACvF,CAAC;IACF,MAAM,OAAO,GAAG,SAAS;SACtB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC;SACrD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,GAAG,QAAQ,CAAC,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;IACjH,CAAC,CAAC,CAAC;IACL,MAAM,aAAa,GAAG,SAAS;SAC5B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,YAAY,CAAC;SAC3D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;SACxC,MAAM,CACL,CAAC,YAAY,EAAoD,EAAE,CAAC,YAAY,KAAK,IAAI,CAC1F,CAAC;IACJ,IAAI,KAAK,CAAC,SAAS,KAAK,qBAAqB,EAAE,CAAC;QAC9C,OAAO,+CAA+C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,uDAAuD,OAAO,uCAAuC,CAAC;IACjM,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,oBAAoB,EAAE,CAAC;QAC7C,OAAO,mCAAmC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,uBAAuB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,sDAAsD,OAAO,EAAE,CAAC;IACnT,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,mCAAmC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD,OAAO,EAAE,CAAC;IACpL,CAAC;IACD,OAAO,sEAAsE,OAAO,EAAE,CAAC;AACzF,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAwB,EACxB,IAAY,EACZ,OAAe;IAEf,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,oCAAoC,KAAK,CAAC,gBAAgB,EAAE;YACrE,MAAM,EAAE,8DAA8D;SACvE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,YAAY,IAAI,mCAAmC;YAC5D,MAAM,EAAE,sEAAsE;SAC/E,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QACxF,OAAO;YACL,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,GAAG,IAAI,qCAAqC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,WAAW,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,GAAG;YAChJ,MAAM,EAAE,0EAA0E;SACnF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAClE,2EAA2E;QAC3E,4EAA4E;QAC5E,2EAA2E;QAC3E,sEAAsE;QACtE,EAAE;QACF,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,6EAA6E;QAC7E,2EAA2E;QAC3E,2BAA2B;QAC3B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE;YAC/C,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,GAAG,EAAE;gBACH,OAAO;gBACP,sEAAsE;gBACtE,sEAAsE;gBACtE,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,0BAA0B,OAAO,EAAE;gBAC5D,GAAG,EAAE,uDAAuD;aAC7D;SACF,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,uCAAuC;YAC7C,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;YAC1F,MAAM,EACJ,IAAI,EAAE,MAAM;gBACZ,uCAAuC,IAAI,0CAA0C,IAAI,YAAY;SACxG,CAAC;IACJ,CAAC;IACD,IACE,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,YAAY,EACrC,CAAC;QACD,OAAO;YACL,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,GAAG,IAAI,qCAAqC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG;YAC5E,MAAM,EACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,WAAW;gBAClC,CAAC,CAAC,0BAA0B,IAAI,yIAAyI,IAAI,GAAG;gBAChL,CAAC,CAAC,wDAAwD;SAC/D,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,IAAY,EACZ,KAAoB;IAEpB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,+BAA+B;oBACrC,OAAO,EAAE,oBAAoB,MAAM,mCAAmC;oBACtE,MAAM,EACJ,4FAA4F;iBAC/F;aACF,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1D,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,+BAA+B;oBACrC,OAAO,EAAE,IAAI,KAAK,CAAC,CAAC,2DAA2D;oBAC/E,MAAM,EAAE,6EAA6E;iBACtF;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,yEAAyE;QACzE,2EAA2E;QAC3E,0DAA0D;QAC1D,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAmB;IACvD,0EAA0E;IAC1E,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAC7D,EAAE,KAAK,CAAC;IACT,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;QACvF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,kCAAkC;oBACxC,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,WAAW,UAAU,CAAC,KAAK,8CAA8C;oBAClG,MAAM,EACJ,iGAAiG;iBACpG;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE;gBACP,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,8EAA8E;gBACvF,MAAM,EAAE,mFAAmF;aAC5F;SACF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5F,OAAO,kBAAkB,CAAC,IAAI,EAAE;QAC9B,EAAE,EAAE,SAAS,SAAS,EAAE;QACxB,SAAS;QACT,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,CAAC,SAAS,CAAC;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,KAAK,CAClB,IAAwB,EACxB,GAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,EACV,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAC3C,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAChE,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;QACF,4EAA4E;QAC5E,gEAAgE;QAChE,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC,CACF,CAAC;IACF,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,OAAO,OAAO,CACZ,eAAe,EACf,GAAG,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,SAAS,GAAG,EACrD,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACzF,OAAO,OAAO,CAAC,eAAe,EAAE,uBAAuB,GAAG,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM;QACjB,OAAO,EAAE,UAAU,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;QAC5I,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;QAC7B,+EAA+E;QAC/E,wDAAwD;QACxD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAc;IACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,KAAK,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACjF,CAAC"}
@@ -25,12 +25,12 @@ import { authorizeEffects, touchesTheWorld, } from "../../domain/capability/effe
25
25
  import { AttemptLedger } from "../../domain/capability/protocol.js";
26
26
  import { DEFAULT_CORE_DOCS_CANON, coreDocumentKindForPath } from "../../domain/docs-canon.js";
27
27
  import { claimedSeal, parseFlowAnswer, spendsAttempt, } from "../../domain/flow/answer.js";
28
- import { FIX_PREVIEW_TRANSITION, actionOf, alternativesOf, approvalGrantOf, effectsOf, internalActionOf, isRouteEvaluation, proposalContractOf, publishApprovalOf, routeControlOf, scopesSources, } from "../../domain/flow/authority.js";
28
+ import { FIX_PREVIEW_TRANSITION, SETTLEMENT_READINGS, actionOf, alternativesOf, approvalGrantOf, effectsOf, internalActionOf, isRouteEvaluation, proposalContractOf, publishApprovalOf, routeControlOf, scopesSources, } from "../../domain/flow/authority.js";
29
29
  import { effectApprovalDigest } from "../../domain/flow/authorization.js";
30
30
  import { PAUSE_LABEL, STOP_LABEL, stepOf, } from "../../domain/flow/directive.js";
31
31
  import { executionVerdict } from "../../domain/flow/execution-result.js";
32
32
  import { ROUTE_ACCEPT_LABEL, ROUTE_ADJUST_LABEL, isRouteDisposition, } from "../../domain/flow/route.js";
33
- import { applyTransition, checkAgainstJourney, currentBatchIteration, restatesLastEvent, withApproval, withAttempt, withBoundary, withContinuation, withDecisionPreparation, withEvent, withFixPreview, withHandoff, withObservation, withPlanExecBatchStageForTransition, withProposal, withRouteDecisions, withRouteProposal, withScope, withSelectedChoice, } from "../../domain/flow/run-state.js";
33
+ import { applyTransition, checkAgainstJourney, currentBatchIteration, restatesLastEvent, settlementAmbiguous, withApproval, withAttempt, withBoundary, withContinuation, withDecisionPreparation, withEvent, withFixPreview, withHandoff, withObservation, withPlanExecBatchStageForTransition, withProposal, withRouteDecisions, withRouteProposal, withScope, withSelectedChoice, withSettlementDeclarations, } from "../../domain/flow/run-state.js";
34
34
  import { withSpecBaseline } from "../../domain/lineage.js";
35
35
  import { destinationsOf, observedEffects, sealProposal } from "../../domain/proposal.js";
36
36
  import { baseDigest } from "../../domain/proposal.js";
@@ -513,8 +513,11 @@ async function decide(fs, paths, state, input, snapshot) {
513
513
  const preparedForGate = await prepareDecisionForGate(fs, sealed.state, snapshot, parsed.answer, resolved, cost);
514
514
  if (!preparedForGate.ok)
515
515
  return preparedForGate.decision;
516
+ const settlement = recordSettlement(preparedForGate.state, parsed.answer, resolved, cost);
517
+ if (!settlement.ok)
518
+ return settlement.decision;
516
519
  const granted = resolved.kind === "authorization" ? (resolved.authorization?.planned ?? []) : [];
517
- const approved = grantOf(preparedForGate.state, resolved, parsed.answer, granted, journey);
520
+ const approved = grantOf(settlement.state, resolved, parsed.answer, granted, journey);
518
521
  // All pure scope/proposal checks have now passed. A durable decision is a
519
522
  // material write, so it must never land when a later validation of the same
520
523
  // answer would refuse the boundary and leave its cursor standing.
@@ -916,6 +919,186 @@ function scopeFrom(state, stopped, answer, snapshot) {
916
919
  }
917
920
  return { state: withScope(state, { plan, sources }) };
918
921
  }
922
+ const SETTLEMENT_OUTCOMES = SETTLEMENT_READINGS.map((reading) => reading.outcome);
923
+ /** The reading each label of the question stands for — from the row's own table. */
924
+ const SETTLEMENT_BY_LABEL = new Map(SETTLEMENT_READINGS.map((reading) => [reading.label, reading.outcome]));
925
+ function recordSettlement(state, answer, resolved, cost) {
926
+ const id = resolved.stopped?.id;
927
+ if (id === "plan-exec.settlement-authoring") {
928
+ return recordSettlementAuthoring(state, answer, resolved, cost);
929
+ }
930
+ if (id === "plan-exec.settlement-question") {
931
+ return recordSettlementAnswer(state, answer, resolved, cost);
932
+ }
933
+ return { ok: true, state };
934
+ }
935
+ /**
936
+ * The agent's declaration, checked against what the plan actually owes.
937
+ *
938
+ * Every live compensation, exactly once: a declaration that skips one would let
939
+ * the closure publish a settlement silently missing an obligation, and one that
940
+ * names an obligation nobody owes would decide about work that is not there.
941
+ *
942
+ * `pending` is read two ways, and the difference is the whole design. On an
943
+ * obligation with a single reading it means the work is NOT DONE, and the
944
+ * closure stops here until it is — the boundary stays open and the refusal costs
945
+ * no attempt, because telling the truth must not spend the run's retries. On an
946
+ * ambiguous one it is a PROPOSAL, and the next row is where a person settles it.
947
+ */
948
+ function recordSettlementAuthoring(state, answer, resolved, cost) {
949
+ const declared = readDeclarations(answer.decisions.settlement);
950
+ const refusal = checkDeclarations(state, declared);
951
+ if (refusal !== null) {
952
+ return { ok: false, decision: reject(state, resolved, refusal.message, refusal, cost) };
953
+ }
954
+ return { ok: true, state: withSettlementDeclarations(state, declared ?? []) };
955
+ }
956
+ /** Every way a declaration can fail to answer for what the plan owes. */
957
+ function checkDeclarations(state, declared) {
958
+ const owed = state.settlement?.compensations ?? [];
959
+ if (declared === null) {
960
+ return {
961
+ code: "FLOW_SETTLEMENT_INVALID",
962
+ message: "la declaración de saldo no es una lista de { note, index, outcome, evidence? }",
963
+ action: `declará una entrada por cada compensación vigente: ${owed.map((o) => `${o.note}[${o.index}]`).join(", ") || "ninguna"}`,
964
+ };
965
+ }
966
+ const missing = owed.filter((obligation) => matching(declared, obligation).length !== 1);
967
+ if (missing.length > 0) {
968
+ return {
969
+ code: "FLOW_SETTLEMENT_INCOMPLETE",
970
+ message: `falta declarar exactamente una vez: ${missing.map((o) => `${o.note}[${o.index}] ${o.text}`).join("; ")}`,
971
+ action: "cada compensación vigente lleva una declaración y sólo una: saltear una publicaría un saldo al que le falta trabajo",
972
+ };
973
+ }
974
+ const foreign = declared.filter((declaration) => !owed.some((obligation) => obligation.note === declaration.note && obligation.index === declaration.index));
975
+ if (foreign.length > 0) {
976
+ return {
977
+ code: "FLOW_SETTLEMENT_INVALID",
978
+ message: `se declara sobre obligaciones que el plan no debe: ${foreign.map((d) => `${d.note}[${d.index}]`).join(", ")}`,
979
+ action: "el saldo alcanza a las compensaciones vigentes que el tablero enumera, y a ninguna otra",
980
+ };
981
+ }
982
+ const undone = owed.filter((obligation) => !obligation.legacy && matching(declared, obligation)[0]?.outcome === "pending");
983
+ if (undone.length === 0)
984
+ return null;
985
+ return {
986
+ code: "PLAN_EXEC_SETTLEMENT_PENDING",
987
+ message: `queda compensación sin saldar: ${undone.map((o) => `${o.note}: ${o.text}`).join("; ")}`,
988
+ action: `hacé ese trabajo y volvé con 'aw flow advance --code ${state.session}' para declararla cumplida con su evidencia; el cierre espera acá`,
989
+ };
990
+ }
991
+ /** The obligations of `declared` that name this exact one. */
992
+ function matching(declared, obligation) {
993
+ return declared.filter((declaration) => declaration.note === obligation.note && declaration.index === obligation.index);
994
+ }
995
+ /**
996
+ * The person's reading, applied to every ambiguous obligation at once.
997
+ *
998
+ * One answer for all of them, which is the degradation the plan declared before
999
+ * this was built: repeating a row is the batch loop's mechanism and it is keyed
1000
+ * to the loop's own transitions. What the answer may NOT do is discharge work
1001
+ * with no evidence behind it — "cumplida" over an obligation nobody proved is
1002
+ * the one reading this boundary must refuse, and it refuses for free.
1003
+ */
1004
+ function recordSettlementAnswer(state, answer, resolved, cost) {
1005
+ const outcome = SETTLEMENT_BY_LABEL.get(answer.choice ?? "");
1006
+ if (outcome === undefined)
1007
+ return { ok: true, state };
1008
+ const ambiguous = settlementAmbiguous(state);
1009
+ const declared = state.settlement?.declared ?? [];
1010
+ // The row's own consequence says the run stays here, and this is what makes
1011
+ // that true: choosing "still pending" is choosing NOT to close, so advancing
1012
+ // would contradict the sentence the person read before answering.
1013
+ if (outcome === "pending") {
1014
+ return {
1015
+ ok: false,
1016
+ decision: reject(state, resolved, `queda como compensación vigente: ${ambiguous.map((o) => `${o.note}: ${o.text}`).join("; ")}`, {
1017
+ code: "PLAN_EXEC_SETTLEMENT_PENDING",
1018
+ action: `hacé ese trabajo y volvé con 'aw flow advance --code ${state.session}': el cierre espera en la frontera de saldo`,
1019
+ }, cost),
1020
+ };
1021
+ }
1022
+ if (outcome === "settled") {
1023
+ const unproven = ambiguous.filter((obligation) => matching(declared, obligation)[0]?.evidence === undefined);
1024
+ if (unproven.length > 0) {
1025
+ return {
1026
+ ok: false,
1027
+ decision: reject(state, resolved, `no hay evidencia declarada para: ${unproven.map((o) => `${o.note}: ${o.text}`).join("; ")}`, {
1028
+ code: "PLAN_EXEC_SETTLEMENT_PENDING",
1029
+ action: "una obligación se salda con lo que lo prueba: volvé a la frontera anterior y declará la evidencia, o elegí otra lectura",
1030
+ }, cost),
1031
+ };
1032
+ }
1033
+ }
1034
+ return {
1035
+ ok: true,
1036
+ state: withSettlementDeclarations(state, declared.map((declaration) => ambiguous.some((obligation) => obligation.note === declaration.note && obligation.index === declaration.index)
1037
+ ? ratified(declaration, outcome)
1038
+ : declaration)),
1039
+ };
1040
+ }
1041
+ /**
1042
+ * The person's reading, applied — and the agent's evidence dropped with it.
1043
+ *
1044
+ * The class the person ratifies REPLACES the one the run proposed, and evidence
1045
+ * belongs to the proposal it came with: evidence accredits a settlement, so on a
1046
+ * handoff it is evidence of work this lineage did not do. Carrying it across the
1047
+ * ratification was a dead end with no exit — `checkSettlements` refuses an
1048
+ * obligation that brings evidence without being declared settled, so a run whose
1049
+ * agent proposed "done, here is the proof" and whose person answered "that was
1050
+ * somebody else's" could never publish its settlement and never close: the plan
1051
+ * stayed neither executable nor closable, which is the incident this whole plan
1052
+ * exists to end. The proposal is not lost — it is in the run's own trace.
1053
+ */
1054
+ function ratified(declaration, outcome) {
1055
+ return outcome === "settled"
1056
+ ? { ...declaration, outcome }
1057
+ : { note: declaration.note, index: declaration.index, outcome };
1058
+ }
1059
+ function readDeclarations(value) {
1060
+ if (!Array.isArray(value))
1061
+ return null;
1062
+ const out = [];
1063
+ for (const entry of value) {
1064
+ const read = readDeclaration(entry);
1065
+ if (read === null)
1066
+ return null;
1067
+ out.push(read);
1068
+ }
1069
+ return out;
1070
+ }
1071
+ /**
1072
+ * One declaration, or `null` when it is not one.
1073
+ *
1074
+ * Evidence and outcome are checked together on purpose: "cumplida" without what
1075
+ * proves it is not a slightly worse declaration, it is a discharge nobody can
1076
+ * audit — and evidence attached to work that was NOT declared done is evidence
1077
+ * of nothing, filed where somebody would later read it as a settlement.
1078
+ */
1079
+ function readDeclaration(entry) {
1080
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry))
1081
+ return null;
1082
+ const raw = entry;
1083
+ if (typeof raw.note !== "string" || raw.note.length === 0)
1084
+ return null;
1085
+ if (!Number.isInteger(raw.index))
1086
+ return null;
1087
+ if (!SETTLEMENT_OUTCOMES.includes(raw.outcome))
1088
+ return null;
1089
+ const outcome = raw.outcome;
1090
+ const evidence = typeof raw.evidence === "string" ? raw.evidence.trim() : "";
1091
+ if (outcome === "settled" && evidence.length === 0)
1092
+ return null;
1093
+ if (outcome !== "settled" && evidence.length > 0)
1094
+ return null;
1095
+ return {
1096
+ note: raw.note,
1097
+ index: raw.index,
1098
+ outcome,
1099
+ ...(outcome === "settled" ? { evidence } : {}),
1100
+ };
1101
+ }
919
1102
  /**
920
1103
  * Prepare the complete decision view one boundary BEFORE the human choice.
921
1104
  *
@@ -1058,7 +1241,7 @@ async function registerSelectedDecision(fs, paths, state, snapshot, resolved, co
1058
1241
  }, cost),
1059
1242
  };
1060
1243
  }
1061
- const committed = await commitStoredPlanExecDecision(fs, paths, snapshot.root, preparation);
1244
+ const committed = await commitStoredPlanExecDecision(fs, paths, snapshot.root, preparation, state.scope?.plan);
1062
1245
  if (!committed.ok) {
1063
1246
  return {
1064
1247
  ok: false,