@tacuchi/agent-workflow-cli 25.0.1 → 25.1.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 (48) hide show
  1. package/dist/application/display-path.js +12 -0
  2. package/dist/application/display-path.js.map +1 -0
  3. package/dist/application/flow/advance.js +53 -8
  4. package/dist/application/flow/advance.js.map +1 -1
  5. package/dist/application/flow/internal-actions.js +39 -3
  6. package/dist/application/flow/internal-actions.js.map +1 -1
  7. package/dist/application/flow/run-projection.js +10 -3
  8. package/dist/application/flow/run-projection.js.map +1 -1
  9. package/dist/application/flow/submit.js +220 -4
  10. package/dist/application/flow/submit.js.map +1 -1
  11. package/dist/application/mcp-entry-classification.js +11 -3
  12. package/dist/application/mcp-entry-classification.js.map +1 -1
  13. package/dist/application/parsers/plan-status.js +12 -1
  14. package/dist/application/parsers/plan-status.js.map +1 -1
  15. package/dist/application/plan-exec-batch-service.js +20 -3
  16. package/dist/application/plan-exec-batch-service.js.map +1 -1
  17. package/dist/application/resume-service.js +3 -1
  18. package/dist/application/resume-service.js.map +1 -1
  19. package/dist/application/self/mcp-config.js +94 -15
  20. package/dist/application/self/mcp-config.js.map +1 -1
  21. package/dist/application/workline-index-service.js +11 -2
  22. package/dist/application/workline-index-service.js.map +1 -1
  23. package/dist/cli/commands/flow.js +2 -2
  24. package/dist/cli/commands/flow.js.map +1 -1
  25. package/dist/cli/commands/status.js +16 -0
  26. package/dist/cli/commands/status.js.map +1 -1
  27. package/dist/cli/tui/tabs/mcp-tab.js +20 -5
  28. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  29. package/dist/domain/flow/answer.js +7 -0
  30. package/dist/domain/flow/answer.js.map +1 -1
  31. package/dist/domain/flow/authority.js +94 -0
  32. package/dist/domain/flow/authority.js.map +1 -1
  33. package/dist/domain/flow/directive.js +95 -24
  34. package/dist/domain/flow/directive.js.map +1 -1
  35. package/dist/domain/flow/route.js +38 -0
  36. package/dist/domain/flow/route.js.map +1 -0
  37. package/dist/domain/flow/run-state.js +120 -4
  38. package/dist/domain/flow/run-state.js.map +1 -1
  39. package/package.json +1 -1
  40. package/skills/w/SKILL.md +1 -1
  41. package/skills/w/commands/spec-new.md +4 -0
  42. package/skills/w/context/MANIFEST.json +22 -1
  43. package/skills/w/harness/HARNESS.md +2 -0
  44. package/skills/w/loops/plan-new-loop/LOOP.md +4 -3
  45. package/skills/w/loops/plan-refine-loop/LOOP.md +1 -1
  46. package/skills/w/loops/quick-loop/LOOP.md +1 -1
  47. package/skills/w/loops/spec-refine-loop/LOOP.md +2 -0
  48. package/skills/w/modules/ADAPTIVE-ROUTE.md +3 -0
@@ -25,7 +25,7 @@
25
25
  * `renderHuman` and a recalculated boundary would be invisible to the person.
26
26
  */
27
27
  import { trancheOfFlow, } from "./authority.js";
28
- export const FLOW_DIRECTIVE_VERSION = 1;
28
+ export const FLOW_DIRECTIVE_VERSION = 2;
29
29
  /**
30
30
  * The reasons a deterministic advance stops. They are the spec's own list, and
31
31
  * collapsing any two would erase the difference between "I need a judgment", "I
@@ -114,6 +114,7 @@ export const FLOW_DIRECTIVE_KEYS = [
114
114
  "proposal",
115
115
  "decision_preview",
116
116
  "fix_preview",
117
+ "route",
117
118
  "effects",
118
119
  "authorizations",
119
120
  "degradations",
@@ -135,6 +136,7 @@ export const FLOW_DIRECTIVE_REUSED_KEYS = {
135
136
  version: "el versionado del protocolo semántico, con el mismo nombre",
136
137
  authorizations: "las clases de efecto autorizadas del request de capacidad, con el mismo nombre y tipo",
137
138
  };
139
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: the single constructor is the closed directive contract.
138
140
  export function buildFlowDirective(input) {
139
141
  const directive = {
140
142
  version: FLOW_DIRECTIVE_VERSION,
@@ -152,6 +154,11 @@ export function buildFlowDirective(input) {
152
154
  proposal: input.proposal ?? null,
153
155
  decision_preview: input.decisionPreview ?? null,
154
156
  fix_preview: input.fixPreview ?? null,
157
+ route: {
158
+ proposal: input.route?.proposal ?? null,
159
+ decisions: [...(input.route?.decisions ?? [])],
160
+ assurance: input.route?.assurance ?? "verified",
161
+ },
155
162
  effects: {
156
163
  planned: [...(input.effects?.planned ?? [])],
157
164
  approved: [...(input.effects?.approved ?? [])],
@@ -377,48 +384,98 @@ const DIRECTIVE_CHECKS = [
377
384
  * `renderReceiptHuman` follows, so the prose cannot contradict the structured
378
385
  * form: there is no second source for it to disagree with.
379
386
  */
380
- export function renderDirectiveHuman(directive) {
387
+ export function renderDirectiveHuman(directive, detail = false) {
381
388
  return [
382
- `${directive.flow} (${directive.tranche}) — frontera ${directive.boundary.kind}: ${directive.outcome}`,
383
- ...boundaryLines(directive),
384
- ...askLines(directive),
389
+ directiveHeading(directive),
390
+ ...boundaryLines(directive, detail),
391
+ ...askLines(directive, detail),
385
392
  ...effectLines(directive),
386
393
  `continuidad: ${directive.state_digest}`,
387
394
  `siguiente: ${directive.next_action}`,
388
395
  ].join("\n");
389
396
  }
390
- function boundaryLines(directive) {
397
+ const BOUNDARY_HEADINGS = {
398
+ semantic: "preparando el siguiente paso",
399
+ human: "necesita tu decisión",
400
+ authorization: "necesita autorización",
401
+ execution: "listo para ejecutar",
402
+ blocked: "requiere resolver un bloqueo",
403
+ final: "trabajo completado",
404
+ };
405
+ function directiveHeading(directive) {
406
+ return `${directive.flow} — ${BOUNDARY_HEADINGS[directive.boundary.kind]}`;
407
+ }
408
+ function boundaryLines(directive, detail) {
391
409
  const lines = [];
392
410
  if (directive.boundary.transition !== null) {
393
- const owner = directive.boundary.ownership === null ? "" : ` · ${directive.boundary.ownership}`;
394
- const title = directive.boundary.title === null ? "" : ` — ${directive.boundary.title}`;
395
- lines.push(`detenido en ${directive.boundary.transition}${owner}${title}`);
396
- }
397
- if (directive.applied.length > 0) {
398
- const trace = directive.applied
399
- .map((step) => {
400
- const base = `${step.transition} (${step.authority} · ${step.ownership}`;
401
- // The omission carries its cause in the same breath: a step that reads
402
- // "omitida" and nothing else sends the reader to the registry to find out
403
- // why the run did not stop where the doctrine says it stops.
404
- return step.outcome === "skipped"
405
- ? `${base} · OMITIDA: ${step.reason ?? "sin motivo declarado"})`
406
- : `${base})`;
407
- })
408
- .join(", ");
409
- lines.push(`pasos de esta invocación: ${trace}`);
411
+ if (directive.boundary.title !== null)
412
+ lines.push(`paso actual: ${directive.boundary.title}`);
413
+ if (detail) {
414
+ const owner = directive.boundary.ownership === null ? "" : ` · ${directive.boundary.ownership}`;
415
+ lines.push(`detalle interno: ${directive.boundary.transition}${owner}`);
416
+ }
410
417
  }
418
+ lines.push(...appliedLines(directive, detail));
411
419
  if (directive.pending.length > 0)
412
420
  lines.push(`pendientes: ${directive.pending.length}`);
413
421
  return lines;
414
422
  }
423
+ function appliedLines(directive, detail) {
424
+ if (directive.applied.length === 0)
425
+ return [];
426
+ if (!detail) {
427
+ const omitted = directive.applied.filter((step) => step.outcome === "skipped").length;
428
+ return [
429
+ `avance de esta invocación: ${directive.applied.length} paso(s) resuelto(s)${omitted === 0 ? "" : `, ${omitted} omitido(s) con motivo registrado`}`,
430
+ ];
431
+ }
432
+ const trace = directive.applied
433
+ .map((step) => {
434
+ const base = `${step.transition} (${step.authority} · ${step.ownership}`;
435
+ // The omission carries its cause in the same breath: a step that reads
436
+ // "omitida" and nothing else sends the reader to the registry to find out
437
+ // why the run did not stop where the doctrine says it stops.
438
+ return step.outcome === "skipped"
439
+ ? `${base} · OMITIDA: ${step.reason ?? "sin motivo declarado"})`
440
+ : `${base})`;
441
+ })
442
+ .join(", ");
443
+ return [`pasos de esta invocación: ${trace}`];
444
+ }
415
445
  // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: one renderer keeps every visible boundary field in one ordered projection.
416
- function askLines(directive) {
446
+ function askLines(directive, detail) {
417
447
  const lines = [];
418
448
  if (directive.request !== null) {
419
449
  lines.push(`contrato de respuesta: ${directive.request.contract}`);
420
450
  lines.push(`read_set visible: ${directive.request.read_set.join(", ") || "ninguno"}`);
421
451
  }
452
+ if (directive.route.proposal !== null) {
453
+ const proposal = directive.route.proposal;
454
+ lines.push("propuesta de solución:");
455
+ if (proposal.summary !== undefined) {
456
+ lines.push(`hallazgo: ${proposal.summary.finding}`);
457
+ lines.push(`diagnóstico: ${proposal.summary.diagnosis}`);
458
+ lines.push(`solución: ${proposal.summary.solution}`);
459
+ }
460
+ else {
461
+ // A v11 proposal already in flight predates the explicit summary. Keep it
462
+ // readable without pretending its technical basis was a diagnosis.
463
+ lines.push(`objetivo: ${proposal.basis.intention}`);
464
+ lines.push(`contexto verificado: ${proposal.basis.checkout}`);
465
+ lines.push(`convenciones relevantes: ${proposal.basis.conventions}`);
466
+ lines.push(`decisiones previas: ${proposal.basis.adopted_decisions}`);
467
+ }
468
+ for (const control of proposal.controls) {
469
+ const substitute = control.substitution === null
470
+ ? ""
471
+ : ` Sustitución: ${control.substitution.validation}. Riesgo aceptado: ${control.substitution.risk}.`;
472
+ const id = detail ? ` [${control.transition}]` : "";
473
+ const recommendation = control.disposition === control.recommendation
474
+ ? ""
475
+ : ` Recomendación base: ${routeDispositionLabel(control.recommendation)}.`;
476
+ lines.push(`· ${routeDispositionLabel(control.disposition)}: ${control.title}${id}. Motivo: ${control.reason}. Resultado: ${control.consequence}. Riesgo: ${control.risk}.${recommendation}${substitute}`);
477
+ }
478
+ }
422
479
  if (directive.action !== null) {
423
480
  const call = directive.action.invocation;
424
481
  lines.push(`ejecutar: ${[call.program, ...call.args].join(" ")}`);
@@ -454,8 +511,17 @@ function askLines(directive) {
454
511
  }
455
512
  return lines;
456
513
  }
514
+ const ROUTE_DISPOSITION_LABELS = {
515
+ apply: "Realizar",
516
+ omit: "Omitir",
517
+ substitute: "Sustituir",
518
+ };
519
+ function routeDispositionLabel(disposition) {
520
+ return ROUTE_DISPOSITION_LABELS[disposition];
521
+ }
457
522
  function effectLines(directive) {
458
523
  const lines = [];
524
+ lines.push(`estado de evidencia: ${ASSURANCE_LABELS[directive.route.assurance]}`);
459
525
  if (directive.authorizations.length > 0) {
460
526
  lines.push(`efectos permitidos: ${directive.authorizations.join(", ")}`);
461
527
  }
@@ -470,4 +536,9 @@ function effectLines(directive) {
470
536
  }
471
537
  return lines;
472
538
  }
539
+ const ASSURANCE_LABELS = {
540
+ verified: "verificada",
541
+ partially_verified: "verificación parcial",
542
+ unverified_accepted: "no verificada, aceptada explícitamente",
543
+ };
473
544
  //# sourceMappingURL=directive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive.js","sourceRoot":"","sources":["../../../src/domain/flow/directive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directive.js","sourceRoot":"","sources":["../../../src/domain/flow/directive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAaH,OAAO,EAOL,aAAa,GACd,MAAM,gBAAgB,CAAC;AAIxB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU;IACV,OAAO;IACP,eAAe;IACf,WAAW;IACX,SAAS;IACT,OAAO;CACC,CAAC;AAIX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,UAAU,CAAC;AACvD,CAAC;AA0BD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC;AAqBlE,mEAAmE;AACnE,MAAM,UAAU,MAAM,CAAC,QAAsB;IAC3C,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa,CAAC,QAAsB,EAAE,MAAc;IAClE,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAmGD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,MAAM;IACN,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,cAAc;IACd,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,SAAS;IACT,UAAU;IACV,kBAAkB;IAClB,aAAa;IACb,OAAO;IACP,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,OAAO;IACP,oBAAoB;IACpB,aAAa;CACL,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqC;IAC1E,OAAO,EAAE,mEAAmE;IAC5E,OAAO,EAAE,kDAAkD;IAC3D,YAAY,EAAE,oDAAoD;IAClE,KAAK,EAAE,4DAA4D;IACnE,WAAW,EAAE,6DAA6D;IAC1E,OAAO,EAAE,4DAA4D;IACrE,cAAc,EACZ,uFAAuF;CAC1F,CAAC;AAmDF,wHAAwH;AACxH,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IAC3D,MAAM,SAAS,GAAkB;QAC/B,OAAO,EAAE,sBAAsB;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK,CAAC,WAAW;QAC/B,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;QAC5B,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,gBAAgB,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;QAC/C,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACrC,KAAK,EAAE;YACL,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI;YACvC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YAC9C,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,UAAU;SAChD;QACD,OAAO,EAAE;YACP,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5C,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;SAC7C;QACD,cAAc,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;QACjD,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,IAAI,IAAI;QACnD,WAAW,EAAE,KAAK,CAAC,UAAU;KAC9B,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAID,SAAS,MAAM,CAAC,IAAY,EAAE,OAAe,EAAE,MAAc;IAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,SAAwB;IAC/C,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,MAAM,CACX,+BAA+B,EAC/B,qCAAqC,EACrC,gFAAgF,CACjF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,SAAwB;IAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;IAClD,IAAI,KAAK,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,MAAM,CACX,mCAAmC,EACnC,sDAAsD,SAAS,CAAC,OAAO,CAAC,MAAM,4BAA4B,EAC1G,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,MAAM,CACX,sCAAsC,EACtC,4DAA4D,EAC5D,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,MAAM,CACX,4CAA4C,EAC5C,iBAAiB,SAAS,CAAC,QAAQ,CAAC,IAAI,uCAAuC,EAC/E,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,SAAwB;IAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC;IACxD,IAAI,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3C,OAAO,MAAM,CACX,yCAAyC,EACzC,oFAAoF,EACpF,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,MAAM,CACX,yCAAyC,EACzC,iBAAiB,SAAS,CAAC,QAAQ,CAAC,IAAI,4BAA4B,EACpE,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CAAC,SAAwB;IAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC;IAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3C,OAAO,MAAM,CACX,wCAAwC,EACxC,iBAAiB,SAAS,CAAC,QAAQ,CAAC,IAAI,4BAA4B,EACpE,mGAAmG,CACpG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CACX,yCAAyC,EACzC,wDAAwD,EACxD,gGAAgG,CACjG,CAAC;IACJ,CAAC;IACD,IACE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAC7C,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC5C,CAAC;QACD,OAAO,MAAM,CACX,kCAAkC,EAClC,sDAAsD,EACtD,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CACX,wCAAwC,EACxC,8DAA8D,EAC9D,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CACX,wCAAwC,EACxC,qEAAqE,EACrE,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,SAAwB;IAC5C,MAAM,OAAO,GACX,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC;IACrF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO,MAAM,CACX,yCAAyC,EACzC,iBAAiB,SAAS,CAAC,QAAQ,CAAC,IAAI,uBAAuB,EAC/D,uEAAuE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,MAAM,CACX,qCAAqC,EACrC,wEAAwE,EACxE,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7E,OAAO,MAAM,CACX,2CAA2C,EAC3C,0DAA0D,EAC1D,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,MAAM,CACX,uCAAuC,EACvC,mBAAmB,MAAM,CAAC,KAAK,iDAAiD,EAChF,2GAA2G,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CACX,yCAAyC,EACzC,oEAAoE,EACpE,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAgC,CAAC;IACjD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,UAAU;QAC3B,OAAO,CAAC,IAAI,KAAK,mBAAmB;QACpC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;YACzB,CAAC,OAAO,CAAC,WAAW,KAAK,aAAa;gBACpC,OAAO,CAAC,WAAW,KAAK,aAAa;gBACrC,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC;QACxC,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAC5F,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,SAAwB;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACtE,OAAO,MAAM,CACX,sCAAsC,EACtC,gDAAgD,EAChD,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,SAAwB;IAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,OAAO,MAAM,CACX,0CAA0C,EAC1C,0EAA0E,EAC1E,gFAAgF,CACjF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAwB;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAA4C;QACtD,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC;QACvC,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;KACzC,CAAC;IACF,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YAClC,OAAO,MAAM,CACX,iCAAiC,EACjC,sBAAsB,MAAM,KAAK,IAAI,yBAAyB,EAC9D,wCAAwC,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,gFAAgF;IAChF,iFAAiF;IACjF,gFAAgF;IAChF,iFAAiF;IACjF,4EAA4E;IAC5E,kFAAkF;IAClF,iFAAiF;IACjF,oCAAoC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,cAAc,CAAC,SAAwB;IAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAClF,IAAI,QAAQ,CAAC,SAAS,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,MAAM,CACX,uCAAuC,EACvC,iBAAiB,QAAQ,CAAC,IAAI,iCAAiC,QAAQ,CAAC,SAAS,GAAG,EACpF,2IAA2I,CAC5I,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,SAAwB;IAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,MAAM,CACX,iCAAiC,EACjC,mDAAmD,EACnD,qDAAqD,CACtD,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,2EAA2E;IAC3E,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;QAC3C,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAChE,OAAO,MAAM,CACX,qCAAqC,EACrC,YAAY,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,OAAO,OAAO,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,EAAE,EACjI,kEAAkE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,gBAAgB,GAA8B;IAClD,eAAe;IACf,UAAU;IACV,aAAa;IACb,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,kBAAkB;IAClB,cAAc;IACd,iBAAiB;IACjB,YAAY;CACb,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAwB,EAAE,MAAM,GAAG,KAAK;IAC3E,OAAO;QACL,gBAAgB,CAAC,SAAS,CAAC;QAC3B,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC;QACnC,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC9B,GAAG,WAAW,CAAC,SAAS,CAAC;QACzB,gBAAgB,SAAS,CAAC,YAAY,EAAE;QACxC,cAAc,SAAS,CAAC,WAAW,EAAE;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,iBAAiB,GAA+C;IACpE,QAAQ,EAAE,8BAA8B;IACxC,KAAK,EAAE,sBAAsB;IAC7B,aAAa,EAAE,uBAAuB;IACtC,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,8BAA8B;IACvC,KAAK,EAAE,oBAAoB;CAC5B,CAAC;AAEF,SAAS,gBAAgB,CAAC,SAAwB;IAChD,OAAO,GAAG,SAAS,CAAC,IAAI,MAAM,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa,CAAC,SAAwB,EAAE,MAAe;IAC9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9F,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GACT,SAAS,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpF,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,SAAwB,EAAE,MAAe;IAC7D,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QACtF,OAAO;YACL,8BAA8B,SAAS,CAAC,OAAO,CAAC,MAAM,uBAAuB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,mCAAmC,EAAE;SACpJ,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO;SAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACzE,uEAAuE;QACvE,0EAA0E;QAC1E,6DAA6D;QAC7D,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS;YAC/B,CAAC,CAAC,GAAG,IAAI,eAAe,IAAI,CAAC,MAAM,IAAI,sBAAsB,GAAG;YAChE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACjB,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,0IAA0I;AAC1I,SAAS,QAAQ,CAAC,SAAwB,EAAE,MAAe;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,0BAA0B,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,qBAAqB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,0EAA0E;YAC1E,mEAAmE;YACnE,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,4BAA4B,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,UAAU,GACd,OAAO,CAAC,YAAY,KAAK,IAAI;gBAC3B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,iBAAiB,OAAO,CAAC,YAAY,CAAC,UAAU,sBAAsB,OAAO,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;YACzG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,cAAc;gBAC5C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,wBAAwB,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC;YAC/E,KAAK,CAAC,IAAI,CACR,KAAK,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,KAAK,GAAG,EAAE,aAAa,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,WAAW,aAAa,OAAO,CAAC,IAAI,IAAI,cAAc,GAAG,UAAU,EAAE,CAC/L,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,2EAA2E;QAC3E,+EAA+E;QAC/E,uEAAuE;QACvE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACnD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,SAAS;iBACvB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;iBAC1D,IAAI,CAAC,KAAK,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,8DAA8D,QAAQ,EAAE,CAAC,CAAC;YACrF,KAAK,CAAC,IAAI,CACR,iJAAiJ,CAClJ,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,gCAAgC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAC3C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,6BAA6B,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9F,KAAK,CAAC,IAAI,CACR,sBAAsB,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAC3G,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CACR,YAAY,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,oBAAoB,OAAO,CAAC,MAAM,CAAC,SAAS,iBAAiB,CAC7H,CAAC;QACF,KAAK,CAAC,IAAI,CACR,uBAAuB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,cAAc,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAC9I,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CACR,wBAAwB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,WAAW,EAAE,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,wBAAwB,GAAG;IAC/B,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,WAAW;CACf,CAAC;AAEX,SAAS,qBAAqB,CAAC,WAAkD;IAC/E,OAAO,wBAAwB,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,SAAwB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,wBAAwB,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,uBAAuB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,gBAAgB,WAAW,CAAC,KAAK,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,gBAAgB,GAA8C;IAClE,QAAQ,EAAE,YAAY;IACtB,kBAAkB,EAAE,sBAAsB;IAC1C,mBAAmB,EAAE,wCAAwC;CAC9D,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The accepted methodological route of one flow run.
3
+ *
4
+ * A route never weakens an unconfigured transition: only rows that explicitly
5
+ * opt into `route_control` may be applied differently. That makes the default
6
+ * the legacy, hard-gate behaviour instead of an accidental opt-out.
7
+ */
8
+ export const ROUTE_DISPOSITIONS = ["apply", "omit", "substitute"];
9
+ export const ROUTE_ACCEPT_LABEL = "Aceptar propuesta";
10
+ export const ROUTE_ADJUST_LABEL = "Pedir ajustes";
11
+ export const ASSURANCE_STATUSES = [
12
+ "verified",
13
+ "partially_verified",
14
+ "unverified_accepted",
15
+ ];
16
+ /**
17
+ * A substitution is not proof by declaration. It stays partial until its own
18
+ * configured transition has completed with the normal execution verdict.
19
+ */
20
+ export function assuranceForRoute(decisions, completed = []) {
21
+ if (decisions.some((decision) => decision.disposition === "omit")) {
22
+ return "unverified_accepted";
23
+ }
24
+ if (decisions.some((decision) => decision.disposition === "substitute" && !completed.includes(decision.transition))) {
25
+ return "partially_verified";
26
+ }
27
+ return "verified";
28
+ }
29
+ export function dispositionOf(decisions, transition) {
30
+ return decisions?.find((decision) => decision.transition === transition) ?? null;
31
+ }
32
+ export function isRouteDisposition(value) {
33
+ return typeof value === "string" && ROUTE_DISPOSITIONS.includes(value);
34
+ }
35
+ export function isAssuranceStatus(value) {
36
+ return typeof value === "string" && ASSURANCE_STATUSES.includes(value);
37
+ }
38
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/domain/flow/route.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC;AAI3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,UAAU;IACV,oBAAoB;IACpB,qBAAqB;CACb,CAAC;AA2DX;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAmC,EACnC,YAA+B,EAAE;IAEjC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IACE,SAAS,CAAC,IAAI,CACZ,CAAC,QAAQ,EAAE,EAAE,CACX,QAAQ,CAAC,WAAW,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACpF,EACD,CAAC;QACD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,SAAsD,EACtD,UAAkB;IAElB,OAAO,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC"}
@@ -26,6 +26,7 @@ import { canonicalJson, semanticDigest } from "../../application/semantic-operat
26
26
  import { isEffectClass, touchesTheWorld } from "../capability/effects.js";
27
27
  import { AttemptLedger } from "../capability/protocol.js";
28
28
  import { validateDecisionNote } from "../decision-note.js";
29
+ import { assuranceForRoute, isAssuranceStatus, isRouteDisposition, } from "./route.js";
29
30
  /**
30
31
  * The version this CLI WRITES. Every state it persists carries it.
31
32
  *
@@ -37,7 +38,7 @@ import { validateDecisionNote } from "../decision-note.js";
37
38
  * turning the cap off in silence while somebody alternates CLI versions over one
38
39
  * run. Failing with a cause is the requirement; failing silently is the defect.
39
40
  */
40
- export const FLOW_RUN_STATE_VERSION = 10;
41
+ export const FLOW_RUN_STATE_VERSION = 11;
41
42
  /**
42
43
  * The versions this CLI READS, newest first.
43
44
  *
@@ -47,7 +48,7 @@ export const FLOW_RUN_STATE_VERSION = 10;
47
48
  * changing `version` would invent a batch boundary the old run never declared.
48
49
  * An active legacy run must be adopted explicitly before any mutation.
49
50
  */
50
- export const FLOW_RUN_STATE_READABLE = [FLOW_RUN_STATE_VERSION, 9, 8, 7];
51
+ export const FLOW_RUN_STATE_READABLE = [FLOW_RUN_STATE_VERSION, 10, 9, 8, 7];
51
52
  /** The CLI-owned run state inside the session folder. Machine-local, dotted. */
52
53
  export const FLOW_RUN_STATE_FILE = ".flow-run.json";
53
54
  /**
@@ -278,6 +279,9 @@ export function newRunState(flow, session) {
278
279
  handoff: null,
279
280
  selected_choice: null,
280
281
  decision_preparation: null,
282
+ route_proposal: null,
283
+ route_decisions: null,
284
+ assurance: "verified",
281
285
  });
282
286
  }
283
287
  /**
@@ -289,9 +293,11 @@ export function newRunState(flow, session) {
289
293
  * was never produced.
290
294
  */
291
295
  export function applyTransition(state, decisionId, effects = []) {
296
+ const applied = [...state.applied, decisionId];
292
297
  return sealRunState({
293
298
  ...withoutSeal(state),
294
- applied: [...state.applied, decisionId],
299
+ applied,
300
+ assurance: assuranceForRoute(state.route_decisions ?? [], applied),
295
301
  // planned before applied, always: an effect that shows up as applied without
296
302
  // ever having been planned is the lie `buildReceipt` refuses, and the
297
303
  // directive refuses it too.
@@ -398,6 +404,26 @@ export function atCurrentVersion(state) {
398
404
  handoff: null,
399
405
  selected_choice: null,
400
406
  decision_preparation: null,
407
+ route_proposal: null,
408
+ route_decisions: null,
409
+ assurance: "verified",
410
+ });
411
+ }
412
+ /** Keep the sealed preview the person is choosing over; no cursor moves here. */
413
+ export function withRouteProposal(state, proposal) {
414
+ return sealRunState({
415
+ ...withoutSeal(state),
416
+ route_proposal: proposal,
417
+ route_decisions: null,
418
+ assurance: "verified",
419
+ });
420
+ }
421
+ /** Persist the accepted route and derive its assurance without claiming missing proof passed. */
422
+ export function withRouteDecisions(state, decisions) {
423
+ return sealRunState({
424
+ ...withoutSeal(state),
425
+ route_decisions: [...decisions],
426
+ assurance: assuranceForRoute(decisions, state.applied),
401
427
  });
402
428
  }
403
429
  /** Whether a parsed state needs the explicit adoption boundary before mutation. */
@@ -922,11 +948,16 @@ function checkRecordShape(parsed, invalid) {
922
948
  const common = checkCommonRecordShape(parsed, invalid);
923
949
  if (common !== null)
924
950
  return common;
925
- if (parsed.version === FLOW_RUN_STATE_VERSION) {
951
+ if (parsed.version === FLOW_RUN_STATE_VERSION || parsed.version === 10) {
926
952
  const v10 = checkV10RecordShape(parsed, invalid);
927
953
  if (v10 !== null)
928
954
  return v10;
929
955
  }
956
+ if (parsed.version === FLOW_RUN_STATE_VERSION) {
957
+ const v11 = checkV11RecordShape(parsed, invalid);
958
+ if (v11 !== null)
959
+ return v11;
960
+ }
930
961
  if (typeof parsed.digest !== "string")
931
962
  return invalid("no trae su sello");
932
963
  return null;
@@ -991,12 +1022,97 @@ function checkV10RecordShape(parsed, invalid) {
991
1022
  }
992
1023
  return null;
993
1024
  }
1025
+ /** Fields introduced by v11; v10 remains readable until a person adopts it. */
1026
+ function checkV11RecordShape(parsed, invalid) {
1027
+ if (!isRouteProposal(parsed.route_proposal)) {
1028
+ return invalid("declara una propuesta de solución con resumen, contexto o controles inválidos");
1029
+ }
1030
+ if (!isRouteDecisionArray(parsed.route_decisions)) {
1031
+ return invalid("declara decisiones de la propuesta sin una disposición o sustitución válida");
1032
+ }
1033
+ if (!isAssuranceStatus(parsed.assurance)) {
1034
+ return invalid("declara un assurance que no representa su evidencia");
1035
+ }
1036
+ const decisions = parsed.route_decisions;
1037
+ if (decisions !== null && parsed.assurance !== assuranceForRoute(decisions)) {
1038
+ return invalid("declara un assurance que no corresponde a su ruta aceptada");
1039
+ }
1040
+ return null;
1041
+ }
994
1042
  function refuse(code, message, action) {
995
1043
  return { ok: false, failure: { code, message, action } };
996
1044
  }
997
1045
  function isRecord(value) {
998
1046
  return typeof value === "object" && value !== null && !Array.isArray(value);
999
1047
  }
1048
+ function isNonEmptyString(value) {
1049
+ return typeof value === "string" && value.trim().length > 0;
1050
+ }
1051
+ function isRouteSubstitution(value) {
1052
+ return isRecord(value) && isNonEmptyString(value.validation) && isNonEmptyString(value.risk);
1053
+ }
1054
+ function isRouteProposal(value) {
1055
+ if (value === null)
1056
+ return true;
1057
+ if (!isRecord(value) || !isRecord(value.basis) || !Array.isArray(value.controls))
1058
+ return false;
1059
+ if (value.summary !== undefined &&
1060
+ (!isRecord(value.summary) ||
1061
+ !isNonEmptyString(value.summary.finding) ||
1062
+ !isNonEmptyString(value.summary.diagnosis) ||
1063
+ !isNonEmptyString(value.summary.solution))) {
1064
+ return false;
1065
+ }
1066
+ if (!isNonEmptyString(value.basis.intention) ||
1067
+ !isNonEmptyString(value.basis.checkout) ||
1068
+ !isNonEmptyString(value.basis.conventions) ||
1069
+ !isNonEmptyString(value.basis.adopted_decisions)) {
1070
+ return false;
1071
+ }
1072
+ const transitions = new Set();
1073
+ return value.controls.every((control) => {
1074
+ if (!isRecord(control) ||
1075
+ !isNonEmptyString(control.transition) ||
1076
+ transitions.has(control.transition)) {
1077
+ return false;
1078
+ }
1079
+ transitions.add(control.transition);
1080
+ if (!isNonEmptyString(control.title) ||
1081
+ !isRouteDisposition(control.disposition) ||
1082
+ !isRouteDisposition(control.recommendation) ||
1083
+ !isRecord(control.alternatives) ||
1084
+ !isNonEmptyString(control.alternatives.apply) ||
1085
+ !isNonEmptyString(control.alternatives.omit) ||
1086
+ !isNonEmptyString(control.alternatives.substitute) ||
1087
+ !isNonEmptyString(control.consequence) ||
1088
+ !isNonEmptyString(control.risk) ||
1089
+ !isNonEmptyString(control.reason)) {
1090
+ return false;
1091
+ }
1092
+ if (control.disposition === "substitute")
1093
+ return isRouteSubstitution(control.substitution);
1094
+ return control.substitution === null;
1095
+ });
1096
+ }
1097
+ function isRouteDecisionArray(value) {
1098
+ if (value === null)
1099
+ return true;
1100
+ if (!Array.isArray(value))
1101
+ return false;
1102
+ const transitions = new Set();
1103
+ return value.every((decision) => {
1104
+ if (!isRecord(decision) ||
1105
+ !isNonEmptyString(decision.transition) ||
1106
+ transitions.has(decision.transition) ||
1107
+ !isRouteDisposition(decision.disposition)) {
1108
+ return false;
1109
+ }
1110
+ transitions.add(decision.transition);
1111
+ if (decision.disposition === "substitute")
1112
+ return isRouteSubstitution(decision.substitution);
1113
+ return decision.substitution === null;
1114
+ });
1115
+ }
1000
1116
  function isStringArray(value) {
1001
1117
  return Array.isArray(value) && value.every((entry) => typeof entry === "string");
1002
1118
  }