@tacuchi/agent-workflow-cli 21.17.0 → 22.0.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 (208) hide show
  1. package/README.md +4 -16
  2. package/dist/adapters/git-cli.js +66 -5
  3. package/dist/adapters/git-cli.js.map +1 -1
  4. package/dist/adapters/node-process.js +25 -5
  5. package/dist/adapters/node-process.js.map +1 -1
  6. package/dist/application/capability/design-handler.js +67 -21
  7. package/dist/application/capability/design-handler.js.map +1 -1
  8. package/dist/application/capability/dispatcher.js +1 -1
  9. package/dist/application/capability/dispatcher.js.map +1 -1
  10. package/dist/application/capability/durable-effect.js +1 -1
  11. package/dist/application/capability/durable-effect.js.map +1 -1
  12. package/dist/application/check-branch-service.js +1 -0
  13. package/dist/application/check-branch-service.js.map +1 -1
  14. package/dist/application/checkpoint-service.js +4 -3
  15. package/dist/application/checkpoint-service.js.map +1 -1
  16. package/dist/application/design/consumer-document.js +179 -0
  17. package/dist/application/design/consumer-document.js.map +1 -0
  18. package/dist/application/design/design-gate-service.js +18 -1
  19. package/dist/application/design/design-gate-service.js.map +1 -1
  20. package/dist/application/design/design-index-service.js +22 -3
  21. package/dist/application/design/design-index-service.js.map +1 -1
  22. package/dist/application/design/design-publish-service.js +27 -6
  23. package/dist/application/design/design-publish-service.js.map +1 -1
  24. package/dist/application/design/design-simple-service.js +34 -22
  25. package/dist/application/design/design-simple-service.js.map +1 -1
  26. package/dist/application/dev-only-services.js +19 -12
  27. package/dist/application/dev-only-services.js.map +1 -1
  28. package/dist/application/docs-canon-service.js +79 -5
  29. package/dist/application/docs-canon-service.js.map +1 -1
  30. package/dist/application/dsn-reader-service.js +12 -47
  31. package/dist/application/dsn-reader-service.js.map +1 -1
  32. package/dist/application/export-service.js +20 -11
  33. package/dist/application/export-service.js.map +1 -1
  34. package/dist/application/flow/flow-service.js +25 -0
  35. package/dist/application/flow/flow-service.js.map +1 -1
  36. package/dist/application/flow/internal-actions.js +5 -0
  37. package/dist/application/flow/internal-actions.js.map +1 -1
  38. package/dist/application/flow/submit.js +156 -22
  39. package/dist/application/flow/submit.js.map +1 -1
  40. package/dist/application/history-table.js +82 -44
  41. package/dist/application/history-table.js.map +1 -1
  42. package/dist/application/history-update-service.js +19 -9
  43. package/dist/application/history-update-service.js.map +1 -1
  44. package/dist/application/hook-git-commit-advisor.js +5 -4
  45. package/dist/application/hook-git-commit-advisor.js.map +1 -1
  46. package/dist/application/hook-sql-mutation-guard.js +1 -1
  47. package/dist/application/hook-sql-mutation-guard.js.map +1 -1
  48. package/dist/application/lifecycle-target.js +1 -0
  49. package/dist/application/lifecycle-target.js.map +1 -1
  50. package/dist/application/local-proposal.js +47 -23
  51. package/dist/application/local-proposal.js.map +1 -1
  52. package/dist/application/mcp-connections-service.js +37 -2
  53. package/dist/application/mcp-connections-service.js.map +1 -1
  54. package/dist/application/mcp-dbhub-launcher.js +22 -50
  55. package/dist/application/mcp-dbhub-launcher.js.map +1 -1
  56. package/dist/application/mcp-doctor-service.js +14 -23
  57. package/dist/application/mcp-doctor-service.js.map +1 -1
  58. package/dist/application/mcp-remove-service.js +3 -3
  59. package/dist/application/mcp-remove-service.js.map +1 -1
  60. package/dist/application/mcp-setup-service.js +4 -4
  61. package/dist/application/mcp-setup-service.js.map +1 -1
  62. package/dist/application/mcp-test-connection-service.js +9 -9
  63. package/dist/application/mcp-test-connection-service.js.map +1 -1
  64. package/dist/application/parsers/phases.js +17 -5
  65. package/dist/application/parsers/phases.js.map +1 -1
  66. package/dist/application/parsers/project-block.js +5 -11
  67. package/dist/application/parsers/project-block.js.map +1 -1
  68. package/dist/application/parsers/sessions-csv.js +16 -14
  69. package/dist/application/parsers/sessions-csv.js.map +1 -1
  70. package/dist/application/parsers/spec-relation.js +15 -11
  71. package/dist/application/parsers/spec-relation.js.map +1 -1
  72. package/dist/application/parsers/tasks.js +25 -1
  73. package/dist/application/parsers/tasks.js.map +1 -1
  74. package/dist/application/persist-service.js +67 -29
  75. package/dist/application/persist-service.js.map +1 -1
  76. package/dist/application/plugin-doctor/skills.js +1 -40
  77. package/dist/application/plugin-doctor/skills.js.map +1 -1
  78. package/dist/application/plugin-doctor-service.js +1 -3
  79. package/dist/application/plugin-doctor-service.js.map +1 -1
  80. package/dist/application/release-data/artifacts.js +1 -0
  81. package/dist/application/release-data/artifacts.js.map +1 -1
  82. package/dist/application/release-data/bundles.js +15 -6
  83. package/dist/application/release-data/bundles.js.map +1 -1
  84. package/dist/application/release-data/common.js +16 -7
  85. package/dist/application/release-data/common.js.map +1 -1
  86. package/dist/application/release-data/sessions.js +36 -8
  87. package/dist/application/release-data/sessions.js.map +1 -1
  88. package/dist/application/render/project-block.js +2 -2
  89. package/dist/application/render/project-block.js.map +1 -1
  90. package/dist/application/resume-service.js +9 -1
  91. package/dist/application/resume-service.js.map +1 -1
  92. package/dist/application/retirement/graph.js +14 -13
  93. package/dist/application/retirement/graph.js.map +1 -1
  94. package/dist/application/retirement/prepare.js +15 -2
  95. package/dist/application/retirement/prepare.js.map +1 -1
  96. package/dist/application/retirement/resolve.js.map +1 -1
  97. package/dist/application/self/clean-legacy.js +2 -4
  98. package/dist/application/self/clean-legacy.js.map +1 -1
  99. package/dist/application/self/install-plugin-skills-git.js +8 -4
  100. package/dist/application/self/install-plugin-skills-git.js.map +1 -1
  101. package/dist/application/self/mcp-config.js +8 -9
  102. package/dist/application/self/mcp-config.js.map +1 -1
  103. package/dist/application/session-close-service.js +8 -2
  104. package/dist/application/session-close-service.js.map +1 -1
  105. package/dist/application/session-create-service.js +26 -14
  106. package/dist/application/session-create-service.js.map +1 -1
  107. package/dist/application/session-resolver.js +80 -34
  108. package/dist/application/session-resolver.js.map +1 -1
  109. package/dist/application/session-resume-service.js +4 -3
  110. package/dist/application/session-resume-service.js.map +1 -1
  111. package/dist/application/source-boundary-policy.js +504 -0
  112. package/dist/application/source-boundary-policy.js.map +1 -0
  113. package/dist/application/status-service.js +1 -0
  114. package/dist/application/status-service.js.map +1 -1
  115. package/dist/application/workline-index-service.js +42 -20
  116. package/dist/application/workline-index-service.js.map +1 -1
  117. package/dist/application/workspace-migrate/apply.js +2 -4
  118. package/dist/application/workspace-migrate/apply.js.map +1 -1
  119. package/dist/application/workspace-migrate/plan.js +9 -6
  120. package/dist/application/workspace-migrate/plan.js.map +1 -1
  121. package/dist/application/workspace-migrate/preview.js +3 -3
  122. package/dist/application/workspace-migrate/preview.js.map +1 -1
  123. package/dist/application/worktree-service.js +3 -0
  124. package/dist/application/worktree-service.js.map +1 -1
  125. package/dist/cli/commands/capability.js +89 -5
  126. package/dist/cli/commands/capability.js.map +1 -1
  127. package/dist/cli/commands/designs.js +2 -6
  128. package/dist/cli/commands/designs.js.map +1 -1
  129. package/dist/cli/commands/dev-only.js +1 -1
  130. package/dist/cli/commands/dev-only.js.map +1 -1
  131. package/dist/cli/commands/flow.js +3 -1
  132. package/dist/cli/commands/flow.js.map +1 -1
  133. package/dist/cli/commands/index.js +0 -2
  134. package/dist/cli/commands/index.js.map +1 -1
  135. package/dist/cli/commands/mcp.js +53 -55
  136. package/dist/cli/commands/mcp.js.map +1 -1
  137. package/dist/cli/commands/persist.js +27 -21
  138. package/dist/cli/commands/persist.js.map +1 -1
  139. package/dist/cli/commands/resume.js +2 -2
  140. package/dist/cli/commands/resume.js.map +1 -1
  141. package/dist/cli/commands/session-create.js +2 -1
  142. package/dist/cli/commands/session-create.js.map +1 -1
  143. package/dist/cli/help-groups.js +0 -1
  144. package/dist/cli/help-groups.js.map +1 -1
  145. package/dist/cli/main.js +0 -0
  146. package/dist/cli/main.js.map +1 -1
  147. package/dist/cli/parser.js +1 -0
  148. package/dist/cli/parser.js.map +1 -1
  149. package/dist/cli/tui/data/recommended-skills.js +2 -2
  150. package/dist/cli/tui/data/recommended-skills.js.map +1 -1
  151. package/dist/cli/tui/tabs/mcp-tab-helpers.js +1 -1
  152. package/dist/cli/tui/tabs/mcp-tab.js +2 -2
  153. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  154. package/dist/domain/capability/protocol.js.map +1 -1
  155. package/dist/domain/correlative.js +121 -0
  156. package/dist/domain/correlative.js.map +1 -0
  157. package/dist/domain/design/capability.js +18 -0
  158. package/dist/domain/design/capability.js.map +1 -1
  159. package/dist/domain/docs-canon.js +31 -0
  160. package/dist/domain/docs-canon.js.map +1 -0
  161. package/dist/domain/flow/answer.js +57 -1
  162. package/dist/domain/flow/answer.js.map +1 -1
  163. package/dist/domain/flow/authority.js +28 -29
  164. package/dist/domain/flow/authority.js.map +1 -1
  165. package/dist/domain/flow/execution-result.js +13 -1
  166. package/dist/domain/flow/execution-result.js.map +1 -1
  167. package/dist/domain/flow/run-state.js.map +1 -1
  168. package/dist/domain/mcp-entry.js +7 -12
  169. package/dist/domain/mcp-entry.js.map +1 -1
  170. package/dist/domain/retirement/selector.js +16 -14
  171. package/dist/domain/retirement/selector.js.map +1 -1
  172. package/dist/domain/source-boundary.js +3 -0
  173. package/dist/domain/source-boundary.js.map +1 -0
  174. package/dist/domain/workline-node.js +12 -5
  175. package/dist/domain/workline-node.js.map +1 -1
  176. package/dist/runtime/namespace-resolver.js +0 -3
  177. package/dist/runtime/namespace-resolver.js.map +1 -1
  178. package/package.json +5 -5
  179. package/skills/w/SKILL.md +2 -2
  180. package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +14 -9
  181. package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +7 -0
  182. package/skills/w/commands/export-scripts.md +8 -2
  183. package/skills/w/commands/plan-new.md +1 -0
  184. package/skills/w/context/MANIFEST.json +2 -9
  185. package/skills/w/exports/export-scripts/EXPORT.md +13 -9
  186. package/skills/w/loops/CHASSIS.md +1 -1
  187. package/skills/w/loops/plan-exec-loop/LOOP.md +14 -10
  188. package/skills/w/loops/plan-new-loop/LOOP.md +16 -16
  189. package/skills/w/loops/plan-refine-loop/LOOP.md +6 -1
  190. package/skills/w/loops/quick-loop/LOOP.md +2 -2
  191. package/skills/w/loops/spec-refine-loop/LOOP.md +4 -0
  192. package/skills/w/modules/DB-RESEARCH-RULE.md +5 -5
  193. package/skills/w/modules/DB-SCRIPTS-ONLY.md +5 -6
  194. package/skills/w/modules/EXEC-DB-POLICY.md +2 -2
  195. package/skills/w/modules/PLAN-INPUT.md +11 -9
  196. package/skills/w/roles/sql/ROLE.md +9 -9
  197. package/dist/application/decisiones-service.js +0 -31
  198. package/dist/application/decisiones-service.js.map +0 -1
  199. package/dist/application/dev-bootstrap-dsn-service.js +0 -76
  200. package/dist/application/dev-bootstrap-dsn-service.js.map +0 -1
  201. package/dist/application/profile/profile-service.js +0 -199
  202. package/dist/application/profile/profile-service.js.map +0 -1
  203. package/dist/application/tasks-service.js +0 -45
  204. package/dist/application/tasks-service.js.map +0 -1
  205. package/dist/cli/commands/bootstrap-dsn.js +0 -16
  206. package/dist/cli/commands/bootstrap-dsn.js.map +0 -1
  207. package/dist/cli/tui/components/process-list.js +0 -43
  208. package/dist/cli/tui/components/process-list.js.map +0 -1
@@ -23,25 +23,41 @@
23
23
  import { join } from "node:path";
24
24
  import { authorizeEffects, touchesTheWorld, } from "../../domain/capability/effects.js";
25
25
  import { AttemptLedger } from "../../domain/capability/protocol.js";
26
+ import { DEFAULT_CORE_DOCS_CANON, coreDocumentKindForPath } from "../../domain/docs-canon.js";
26
27
  import { claimedSeal, parseFlowAnswer, spendsAttempt, } from "../../domain/flow/answer.js";
27
28
  import { actionOf, approvalGrantOf, effectsOf, internalActionOf, journeyOfFlow, proposalContractOf, publishApprovalOf, scopesSources, } from "../../domain/flow/authority.js";
28
29
  import { effectApprovalDigest } from "../../domain/flow/authorization.js";
29
30
  import { PAUSE_LABEL, STOP_LABEL, stepOf, } from "../../domain/flow/directive.js";
30
31
  import { executionVerdict } from "../../domain/flow/execution-result.js";
31
32
  import { applyTransition, checkAgainstJourney, restatesLastEvent, withApproval, withAttempt, withBoundary, withEvent, withObservation, withProposal, withScope, } from "../../domain/flow/run-state.js";
33
+ import { unitPath, workspaceKey } from "../../domain/isolation-unit.js";
32
34
  import { destinationsOf, sealProposal } from "../../domain/proposal.js";
33
35
  import { baseDigest } from "../../domain/proposal.js";
34
36
  import { reservationMarker } from "../../domain/reservation.js";
35
37
  import { checkSafeRelativePath } from "../../domain/safe-path.js";
38
+ import { resolveCoreDocsCanon } from "../docs-canon-service.js";
36
39
  import { readWorkspaceBlock } from "../parsers/project-block.js";
37
40
  import { resolveWorkspaceRootFrom } from "../paths-service.js";
38
41
  import { semanticDigest } from "../semantic-operation/protocol.js";
39
42
  import { resolveSessionTarget } from "../session-resolver.js";
43
+ import { checkoutDigest, sourceAliasesOfPlan, validatePlanSourceBoundary, } from "../source-boundary-policy.js";
40
44
  import { actionDigest, advanceFlowRun, directiveFor, effectsOfTransition, resolveBoundary, } from "./advance.js";
41
45
  import { driveInternalActions } from "./internal-drive.js";
42
46
  import { applyUnderLock, locateRun } from "./run-state-service.js";
43
47
  export async function submitFlow(fs, paths, input) {
48
+ const canon = await resolveCoreDocsCanon(fs, paths);
49
+ if (!canon.ok) {
50
+ return {
51
+ ok: false,
52
+ failure: {
53
+ code: "DOCS_CANON_INVALID",
54
+ message: canon.error,
55
+ action: "corregí [docs] para conservar el layout documental canónico antes de responder",
56
+ },
57
+ };
58
+ }
44
59
  const resolution = await resolveSessionTarget(fs, paths, {
60
+ intent: "write",
45
61
  ...(input.code !== undefined ? { code: input.code } : {}),
46
62
  ...(input.contextId !== undefined ? { contextId: input.contextId } : {}),
47
63
  allowClosed: false,
@@ -55,7 +71,7 @@ export async function submitFlow(fs, paths, input) {
55
71
  // creates or replaces, and what it would replace — plus the two facts a declared
56
72
  // scope is checked against. The race it leaves open on the destinations is
57
73
  // exactly the one the compare-and-swap closes at publish time.
58
- const snapshot = await observe(fs, paths, input.raw);
74
+ const snapshot = await observe(fs, paths, input.raw, resolution.session.folder, input.git);
59
75
  const applied = await applyUnderLock(fs, location, (current) => {
60
76
  if (current === null) {
61
77
  return {
@@ -89,10 +105,11 @@ export async function submitFlow(fs, paths, input) {
89
105
  return { ok: false, failure: driven.failure };
90
106
  return { ok: true, directive: driven.value };
91
107
  }
92
- async function observe(fs, paths, raw) {
108
+ async function observe(fs, paths, raw, session, git) {
93
109
  return {
94
110
  destinations: await observeDestinations(fs, paths, raw),
95
111
  scope: await observeScope(fs, paths, raw),
112
+ checkouts: await observeCheckouts(fs, paths, session, git),
96
113
  };
97
114
  }
98
115
  /**
@@ -103,7 +120,13 @@ async function observe(fs, paths, raw) {
103
120
  * and a document read for a field it never sends.
104
121
  */
105
122
  async function observeScope(fs, paths, raw) {
106
- const empty = { declared: null, plan: null, mentioned: null };
123
+ const empty = {
124
+ declared: null,
125
+ plan: null,
126
+ sources: null,
127
+ boundary_failures: null,
128
+ plan_error: null,
129
+ };
107
130
  let parsed;
108
131
  try {
109
132
  parsed = JSON.parse(raw);
@@ -123,16 +146,102 @@ async function observeScope(fs, paths, raw) {
123
146
  const named = decisions.plan;
124
147
  const plan = typeof named === "string" ? named.trim() : null;
125
148
  if (plan === null || plan.length === 0 || !checkSafeRelativePath(plan).ok) {
126
- return { declared, plan, mentioned: null };
149
+ return { ...empty, declared, plan };
150
+ }
151
+ const canon = await resolveCoreDocsCanon(fs, paths);
152
+ if (!canon.ok)
153
+ return { ...empty, declared, plan, plan_error: canon.error };
154
+ if (coreDocumentKindForPath(plan, canon.canon) !== "plan") {
155
+ return {
156
+ ...empty,
157
+ declared,
158
+ plan,
159
+ plan_error: `el plan debe estar bajo ${canon.canon.plan}/ y ser un Markdown de plan`,
160
+ };
127
161
  }
128
162
  let text;
129
163
  try {
130
164
  text = await fs.readText(join(root, plan));
131
165
  }
132
166
  catch {
133
- return { declared, plan, mentioned: null };
167
+ return { ...empty, declared, plan };
168
+ }
169
+ return {
170
+ declared,
171
+ plan,
172
+ sources: sourceAliasesOfPlan(text),
173
+ boundary_failures: validatePlanSourceBoundary(text, declared ?? []),
174
+ plan_error: null,
175
+ };
176
+ }
177
+ /**
178
+ * Fresh checkout states for source-bounded proof verification.
179
+ *
180
+ * `workspace` is the documentary checkout. Every other source is resolved to
181
+ * the isolation unit of THIS session, so a proof cannot borrow another run's
182
+ * worktree merely by spelling its alias.
183
+ */
184
+ async function observeCheckouts(fs, paths, session, git) {
185
+ if (git === undefined)
186
+ return null;
187
+ let root;
188
+ let block;
189
+ try {
190
+ root = await resolveWorkspaceRootFrom(fs, paths);
191
+ block = await readWorkspaceBlock(fs, root, paths.blockMarkers());
192
+ }
193
+ catch {
194
+ return [];
195
+ }
196
+ const candidates = [{ source: "workspace", path: root }];
197
+ if (block !== null) {
198
+ try {
199
+ const units = await fs.realPath(paths.userUnitsDir());
200
+ const key = workspaceKey(paths.workspaceDir());
201
+ for (const source of block.fuentes) {
202
+ candidates.push({
203
+ source: source.alias,
204
+ path: unitPath(units, { workspaceKey: key, alias: source.alias, session }),
205
+ });
206
+ }
207
+ }
208
+ catch {
209
+ // A run without isolated units can still prove its documentary checkout.
210
+ // Any proof naming another source stays invalid because it is absent below.
211
+ }
212
+ }
213
+ const states = [];
214
+ for (const candidate of candidates) {
215
+ try {
216
+ if (!(await fs.exists(candidate.path)) || !(await git.isGitRepo(candidate.path)))
217
+ continue;
218
+ // The fingerprint is taken twice, concurrently: a digest that does not
219
+ // survive its own recomputation must not be reported as a tree that moved.
220
+ const [head, dirty, changed, worktreeFingerprint, recomputed] = await Promise.all([
221
+ git.head(candidate.path),
222
+ git.isDirty(candidate.path),
223
+ git.changedFiles(candidate.path),
224
+ git.checkoutFingerprint(candidate.path),
225
+ git.checkoutFingerprint(candidate.path),
226
+ ]);
227
+ states.push({
228
+ source: candidate.source,
229
+ digest: checkoutDigest({
230
+ source: candidate.source,
231
+ head,
232
+ dirty,
233
+ changed_files: changed,
234
+ worktree_fingerprint: worktreeFingerprint,
235
+ }),
236
+ reproducible: worktreeFingerprint === recomputed,
237
+ });
238
+ }
239
+ catch {
240
+ // An unreadable checkout is deliberately absent from the eligible set; a
241
+ // proof against it fails closed instead of being treated as a clean tree.
242
+ }
134
243
  }
135
- return { declared, plan, mentioned: (declared ?? []).filter((alias) => text.includes(alias)) };
244
+ return states;
136
245
  }
137
246
  /**
138
247
  * Stat the destinations the payload names, without trusting anything else in it.
@@ -225,7 +334,7 @@ function decide(state, input, snapshot) {
225
334
  if (drifted !== null)
226
335
  return drifted;
227
336
  // 2 · The boundary in force decides what is admissible.
228
- const admissible = admit(state, resolved, resolved.stopped, input, cost);
337
+ const admissible = admit(state, resolved, resolved.stopped, input, cost, snapshot.checkouts);
229
338
  if ("decision" in admissible)
230
339
  return admissible.decision;
231
340
  const parsed = admissible;
@@ -262,9 +371,9 @@ function decide(state, input, snapshot) {
262
371
  *
263
372
  * The order of the refusals is the contract: shape, then the workspace, then the
264
373
  * plan. A malformed list must not be reported as "unknown alias", and an alias
265
- * nobody declared must not be reported as "your plan does not name it" — the two
266
- * have different fixes, and the second would send somebody to edit a document
267
- * when what is wrong is the alias they typed.
374
+ * nobody declared must not be reported as a source-contract failure — the two
375
+ * have different fixes. The document's structural contract is then checked as a
376
+ * whole, not by finding a word anywhere in its prose.
268
377
  */
269
378
  function scopeFrom(state, stopped, answer, snapshot) {
270
379
  if (!scopesSources(stopped))
@@ -286,11 +395,20 @@ function scopeFrom(state, stopped, answer, snapshot) {
286
395
  const plan = snapshot.plan;
287
396
  if (plan === null || plan.length === 0) {
288
397
  return {
289
- failure: invalidScope("el scope no dice qué plan ejecuta esta corrida", "devolvé en 'decisions.plan' la ruta del plan dentro del workspace (docs/plans/PPP-plan-<slug>.md)"),
398
+ failure: invalidScope("el scope no dice qué plan ejecuta esta corrida", `devolvé en 'decisions.plan' la ruta del plan dentro del workspace (${DEFAULT_CORE_DOCS_CANON.plan}/PPP-plan-<slug>.md)`),
399
+ };
400
+ }
401
+ if (snapshot.plan_error !== null) {
402
+ return {
403
+ failure: {
404
+ code: "FLOW_SCOPE_PLAN_OUTSIDE_CANON",
405
+ message: snapshot.plan_error,
406
+ action: `devolvé un plan Markdown bajo ${DEFAULT_CORE_DOCS_CANON.plan}/ después de corregir el canon si corresponde`,
407
+ },
290
408
  };
291
409
  }
292
410
  const declared = snapshot.declared;
293
- if (declared === null) {
411
+ if (declared === null && sources.some((alias) => alias !== "workspace")) {
294
412
  return {
295
413
  failure: {
296
414
  code: "FLOW_SCOPE_UNKNOWN_SOURCE",
@@ -299,18 +417,18 @@ function scopeFrom(state, stopped, answer, snapshot) {
299
417
  },
300
418
  };
301
419
  }
302
- const unknown = sources.filter((alias) => !declared.includes(alias));
420
+ const declaredAliases = declared ?? [];
421
+ const unknown = sources.filter((alias) => alias !== "workspace" && !declaredAliases.includes(alias));
303
422
  if (unknown.length > 0) {
304
423
  return {
305
424
  failure: {
306
425
  code: "FLOW_SCOPE_UNKNOWN_SOURCE",
307
426
  message: `el workspace no declara ${unknown.join(", ")}`,
308
- action: `las fuentes declaradas son: ${declared.join(", ")}`,
427
+ action: `las fuentes declaradas son: ${declaredAliases.join(", ")}`,
309
428
  },
310
429
  };
311
430
  }
312
- const mentioned = snapshot.mentioned;
313
- if (mentioned === null) {
431
+ if (snapshot.boundary_failures === null || snapshot.sources === null) {
314
432
  return {
315
433
  failure: {
316
434
  code: "FLOW_SCOPE_PLAN_UNREADABLE",
@@ -319,13 +437,29 @@ function scopeFrom(state, stopped, answer, snapshot) {
319
437
  },
320
438
  };
321
439
  }
322
- const absent = sources.filter((alias) => !mentioned.includes(alias));
323
- if (absent.length > 0) {
440
+ const structural = snapshot.boundary_failures[0];
441
+ if (structural !== undefined) {
442
+ return {
443
+ failure: {
444
+ code: structural.code,
445
+ message: structural.message,
446
+ action: "el plan no cumple el límite checkout: abrilo con /w:plan-refine y declará las fuentes por fase y tarea",
447
+ },
448
+ };
449
+ }
450
+ const declaredByPlan = snapshot.sources;
451
+ const missing = declaredByPlan.filter((alias) => !sources.includes(alias));
452
+ const extra = sources.filter((alias) => !declaredByPlan.includes(alias));
453
+ if (missing.length > 0 || extra.length > 0) {
454
+ const difference = [
455
+ ...(missing.length > 0 ? [`faltan ${missing.join(", ")}`] : []),
456
+ ...(extra.length > 0 ? [`sobran ${extra.join(", ")}`] : []),
457
+ ];
324
458
  return {
325
459
  failure: {
326
460
  code: "FLOW_SCOPE_NOT_IN_PLAN",
327
- message: `'${plan}' no nombra ${absent.join(", ")}`,
328
- action: "el scope es lo que el plan declara afectado: sacá esa fuente, o llevá el ensanchamiento a /w:plan-refine antes de editarla",
461
+ message: `'${plan}' no coincide con sus fuentes declaradas: ${difference.join("; ")}`,
462
+ action: "el scope es exactamente la unión de las fuentes de fase: corregí el plan con /w:plan-refine antes de editar",
329
463
  },
330
464
  };
331
465
  }
@@ -501,7 +635,7 @@ function grantOf(state, resolved, answer, granted, journey) {
501
635
  * a payload the boundary's own contract rejects, a decline (a real answer that
502
636
  * applies nothing), and an execution result that did not earn its transition.
503
637
  */
504
- function admit(state, resolved, stopped, input, cost) {
638
+ function admit(state, resolved, stopped, input, cost, checkouts) {
505
639
  const expectedApproval = resolved.kind === "authorization"
506
640
  ? effectApprovalDigest(stopped.id, resolved.authorization?.planned ?? [])
507
641
  : null;
@@ -556,7 +690,7 @@ function admit(state, resolved, stopped, input, cost) {
556
690
  // The row's `effects` are the ceiling and the sealed proposal is what really
557
691
  // happens: demanding an overwrite from a publication that only creates files
558
692
  // would leave the transition pending for an effect nobody could produce.
559
- const verdict = executionVerdict(parsed.answer.result, resolved.action, effectsOfTransition(state, stopped));
693
+ const verdict = executionVerdict(parsed.answer.result, resolved.action, effectsOfTransition(state, stopped), checkouts);
560
694
  if (verdict !== null) {
561
695
  const trace = declaredTrace(stopped, resolved, parsed.answer, verdict);
562
696
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/application/flow/submit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,gBAAgB,EAChB,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAEL,WAAW,EACX,eAAe,EACf,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,QAAQ,EACR,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAEL,WAAW,EACX,UAAU,EACV,MAAM,GACP,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAyB,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,EAIL,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,eAAe,EACf,YAAY,EACZ,SAAS,GACV,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAqB,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAEL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAwB,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAkBzF,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAkB,EAClB,KAAmB,EACnB,KAAsB;IAEtB,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE;QACvD,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAEjF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7D,+EAA+E;IAC/E,iFAAiF;IACjF,iFAAiF;IACjF,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAgB,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QAC5E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,6CAA6C;oBACtD,MAAM,EAAE,8DAA8D;iBACvE;aACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAChE,gFAAgF;IAChF,iFAAiF;IACjF,sDAAsD;IACtD,EAAE;IACF,+EAA+E;IAC/E,iFAAiF;IACjF,qDAAqD;IACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IACrF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;QACtE,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AAC/C,CAAC;AA4DD,KAAK,UAAU,OAAO,CAAC,EAAkB,EAAE,KAAmB,EAAE,GAAW;IACzE,OAAO;QACL,YAAY,EAAE,MAAM,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC;QACvD,KAAK,EAAE,MAAM,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CACzB,EAAkB,EAClB,KAAmB,EACnB,GAAW;IAEX,MAAM,KAAK,GAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7E,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAI,MAAyC,EAAE,SAAS,CAAC;IACxE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,KAAK,GAAI,SAAmC,CAAC,OAAO,CAAC;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAErF,MAAM,KAAK,GAAI,SAAgC,CAAC,IAAI,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AACjG,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,mBAAmB,CAChC,EAAkB,EAClB,KAAmB,EACnB,GAAW;IAEX,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+C,CAAC;IACxE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAI,MAAyC,EAAE,SAAS,CAAC;IACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAI,KAA4B,EAAE,IAAI,CAAC;QACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAC9D,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE;YAAE,SAAS;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;YAC5E,8DAA8D;YAC9D,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,MAAM,CACb,KAAmB,EACnB,KAAsB,EACtB,QAAqB;IAErB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAEnE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,wDAAwD,EAAE;YACvF,IAAI,EAAE,0BAA0B;YAChC,MAAM,EAAE,8CAA8C;SACvD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,uDAAuD,EAAE;YACtF,IAAI,EAAE,0BAA0B;YAChC,MAAM,EAAE,gFAAgF;SACzF,CAAC,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,6EAA6E;IAC7E,2EAA2E;IAC3E,gFAAgF;IAChF,oCAAoC;IACpC,MAAM,QAAQ,GAAG,eAAe,CAC9B,KAAK,EACL,KAAK,EACL,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,EACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,CACpB,CAAC;IACF,MAAM,IAAI,GAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAClD,oCAAoC;IACpC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAEnC,6EAA6E;IAC7E,gFAAgF;IAChF,iFAAiF;IACjF,gFAAgF;IAChF,8CAA8C;IAC9C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAErC,wDAAwD;IACxD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzE,IAAI,UAAU,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC;IACzD,MAAM,MAAM,GAAG,UAAU,CAAC;IAE1B,gFAAgF;IAChF,kDAAkD;IAClD,EAAE;IACF,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,2DAA2D;IAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjF,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,MAAM,CACX,KAAK,EACL,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAC5D,IAAI,CACL,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC9F,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,MAAM,CACX,KAAK,EACL,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAC5D,IAAI,CACL,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClF,gFAAgF;IAChF,+EAA+E;IAC/E,uEAAuE;IACvE,6EAA6E;IAC7E,uCAAuC;IACvC,MAAM,KAAK,GACT,QAAQ,CAAC,IAAI,KAAK,eAAe;QACjC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IACtF,OAAO,KAAK;QACV,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;QAChD,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAChB,KAAmB,EACnB,OAAqB,EACrB,MAAkB,EAClB,QAAuB;IAEvB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE9C,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1F,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO;YACL,OAAO,EAAE,YAAY,CACnB,gFAAgF,EAChF,yGAAyG,CAC1G;SACF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,YAAY,CACnB,4CAA4C,EAC5C,yDAAyD,CAC1D;SACF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,YAAY,CACnB,gDAAgD,EAChD,mGAAmG,CACpG;SACF,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,wEAAwE;gBACjF,MAAM,EAAE,kFAAkF;aAC3F;SACF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxD,MAAM,EAAE,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC7D;SACF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,4BAA4B,IAAI,qCAAqC;gBAC9E,MAAM,EACJ,kJAAkJ;aACrJ;SACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,IAAI,IAAI,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnD,MAAM,EACJ,4HAA4H;aAC/H;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc;IACnD,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,QAAQ,CACf,KAAmB,EACnB,OAAqB,EACrB,MAAkB,EAClB,QAA6B;IAE7B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAEzE,iFAAiF;IACjF,+EAA+E;IAC/E,qDAAqD;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,sCAAsC;gBAC5C,OAAO,EAAE,yCAAyC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxF,MAAM,EAAE,yEAAyE;aAClF;SACF,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI;YAChC;;;;;;;;eAQG;YACH,QAAQ,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;SAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACtF,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,0BAA0B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;gBACpF,MAAM,EAAE,4BAA4B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAClE;SACF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,SAAS;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,+BAA+B;gBACrC,OAAO,EAAE,2CAA2C,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9F,MAAM,EAAE,wEAAwE;aACjF;SACF,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,gBAAgB,CACpC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvB,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,YAAqB;QACpC,QAAQ,EAAE,MAAe;KAC1B,CAAC,CAAC,EACH,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAClD,CAAC;IACF,OAAO;QACL,KAAK,EAAE,YAAY,CACjB,KAAK,EACL,YAAY,CAAC;YACX,SAAS,EAAE,QAAQ,OAAO,CAAC,EAAE,EAAE;YAC/B,SAAS;YACT,KAAK;YACL,qEAAqE;YACrE,oEAAoE;YACpE,oEAAoE;YACpE,KAAK,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE;YAC1D,OAAO;YACP,gBAAgB,EAAE,aAAa,CAAC,cAAc;SAC/C,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,OAAO,CACd,KAAmB,EACnB,QAA0B,EAC1B,MAAkB,EAClB,OAA+B,EAC/B,OAAgC;IAEhC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,YAAY,CAAC,KAAK,EAAE;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,YAAY,EAAE,cAAc,CAAC,QAAQ,CAAC;gBACtC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QACD,wEAAwE;QACxE,8EAA8E;QAC9E,4EAA4E;QAC5E,2BAA2B;QAC3B,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QACjE,wEAAwE;QACxE,yEAAyE;QACzE,uCAAuC;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACvC,OAAO,YAAY,CAAC,KAAK,EAAE;gBACzB,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;gBAChD,YAAY,EAAE,EAAE;gBAChB,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1E,OAAO,YAAY,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI;QACnC,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,KAAK,CACZ,KAAmB,EACnB,QAA0B,EAC1B,OAAqB,EACrB,KAAsB,EACtB,IAAmB;IAEnB,MAAM,gBAAgB,GACpB,QAAQ,CAAC,IAAI,KAAK,eAAe;QAC/B,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAAC;QACzE,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,MAAM,GAAG,eAAe,CAAC;QAC7B,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB;QAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,8EAA8E;QAC9E,yEAAyE;QACzE,4EAA4E;QAC5E,6EAA6E;QAC7E,6DAA6D;QAC7D,OAAO;YACL,QAAQ,EAAE,MAAM,CACd,KAAK,EACL,QAAQ,EACR,MAAM,CAAC,OAAO,CAAC,OAAO,EACtB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAC5D,IAAI,CACL;SACF,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,8EAA8E;IAC9E,wEAAwE;IACxE,6EAA6E;IAC7E,gEAAgE;IAChE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACzC,OAAO;YACL,QAAQ,EAAE,MAAM,CACd,KAAK,EACL,QAAQ,EACR,IAAI,WAAW,qDAAqD,EACpE;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EACJ,gHAAgH;gBAClH,OAAO,EAAE,aAAa;aACvB,EACD,IAAI,CACL;SACF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,OAAO;YACL,QAAQ,EAAE,MAAM,CACd,KAAK,EACL,QAAQ,EACR,IAAI,UAAU,iDAAiD,EAC/D;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,oEAAoE;gBAC5E,OAAO,EAAE,WAAW;aACrB,EACD,IAAI,CACL;SACF,CAAC;IACJ,CAAC;IACD,gFAAgF;IAChF,8EAA8E;IAC9E,6DAA6D;IAC7D,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,6EAA6E;QAC7E,6EAA6E;QAC7E,yEAAyE;QACzE,MAAM,OAAO,GAAG,gBAAgB,CAC9B,MAAM,CAAC,MAAM,CAAC,MAAM,EACpB,QAAQ,CAAC,MAAM,EACf,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CACpC,CAAC;QACF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;oBACjE,GAAG,IAAI;oBACP,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;iBACrC,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,aAAa,CACpB,OAAqB,EACrB,QAA0B,EAC1B,MAAkB,EAClB,OAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,qBAAqB;QAAE,OAAO,IAAI,CAAC;IAC5F,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC/C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,OAAO,CAAC,EAAE;QACtB,2EAA2E;QAC3E,4DAA4D;QAC5D,SAAS,EACP,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5F,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QACzB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM;QAC/B,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;KACtB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAClB,KAAmB,EACnB,QAA0B,EAC1B,IAAmB;IAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;IACrC,IAAI,OAAO,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,MAAM,CACX,KAAK,EACL,QAAQ,EACR,mGAAmG,EACnG;QACE,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EACJ,kGAAkG;KACrG,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,iBAAiB,CACxB,QAAsB,EACtB,OAAgC,EAChC,QAAwB;IAExB,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9F,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;AAC/F,CAAC;AAED,+EAA+E;AAC/E,SAAS,eAAe,CACtB,QAAsB,EACtB,OAAgC,EAChC,OAAqB,EACrB,QAAwB,EACxB,MAAkB;IAElB,8EAA8E;IAC9E,gFAAgF;IAChF,kEAAkE;IAClE,IAAI,IAAI,GACN,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChF,CAAC,CAAC,QAAQ,CAAC;IACf,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,8DAA8D;IAC9D,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,SAAS,KAAK,kBAAkB,EAAE,CAAC;QAChE,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,8EAA8E;IAC9E,8EAA8E;IAC9E,0CAA0C;IAC1C,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAClE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,WAAW,CAClB,KAAmB,EACnB,QAA0B,EAC1B,IAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAChE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACxC,+EAA+E;IAC/E,gFAAgF;IAChF,wEAAwE;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAC9B,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa;QAC7C,IAAI,CAAC,cAAc,KAAK,QAAQ,CAAC,cAAc,CAClD,CAAC;IACF,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,OAAO,MAAM,CACX,KAAK,EACL,QAAQ,EACR,uEAAuE,EACvE;QACE,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,qEAAqE;QAC7E,OAAO,EAAE,WAAW;KACrB,EACD,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,MAAM,CACb,KAAmB,EACnB,QAA0B,EAC1B,OAAe,EACf,MAAqE,EACrE,IAAoB;IAEpB,6EAA6E;IAC7E,+EAA+E;IAC/E,8EAA8E;IAC9E,uEAAuE;IACvE,oDAAoD;IACpD,MAAM,MAAM,GACV,IAAI,EAAE,KAAK,KAAK,SAAS,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;QAC/D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GACT,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjG,MAAM,GAAG,GACP,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;QACzC,yEAAyE;QACzE,0EAA0E;QAC1E,6DAA6D;QAC7D,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACpE,UAAU,EAAE,GAAG,OAAO,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;KACjE,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5D,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,SAAS,GAAkB;QAC/B,GAAG,KAAK,CAAC,SAAS;QAClB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;KAC1E,CAAC;IACF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;QACrC,8EAA8E;QAC9E,6EAA6E;QAC7E,oCAAoC;QACpC,OAAO,EAAE,KAAK,KAAK,KAAK;KACzB,CAAC;AACJ,CAAC;AAgBD;;;;;;;GAOG;AACH,SAAS,eAAe,CACtB,KAAmB,EACnB,KAAsB,EACtB,IAAY,EACZ,UAAkB;IAElB,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GACV,OAAO,KAAK,CAAC;QACX,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;IACnF,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,OAAO;QACP,cAAc,EAAE,MAAM;QACtB,qBAAqB,EAAE,MAAM;QAC7B,uEAAuE;QACvE,gDAAgD;QAChD,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/application/flow/submit.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  // The history file path itself is resolved by callers via
2
2
  // `PathsService.cwdHistoryFile()` and passed in.
3
3
  import { join } from "node:path";
4
+ import { correlativeValue, leadingCorrelative, maxCorrelative, prefixedCorrelative, } from "../domain/correlative.js";
4
5
  import { localDateIso } from "./dates.js";
5
6
  // Slim 4-column table: `Sesión` (row key — the `NNN-<slug>-<flow>` folder
6
7
  // identity), `Fecha`, `Estado`, `Refs`. The legacy `#`/`Flujo`/`Resumen`
@@ -79,36 +80,44 @@ function migrateLegacyTable(text, cells) {
79
80
  const columns = legacyColumns(cells);
80
81
  if (columns === null)
81
82
  return null; // no row key → unmappable
82
- const out = [];
83
- let headerDone = false;
84
- let tableClosed = false;
85
- let lossy = false;
83
+ const state = {
84
+ out: [],
85
+ headerDone: false,
86
+ tableClosed: false,
87
+ lossy: false,
88
+ };
86
89
  for (const line of text.split("\n")) {
87
- const isPipeLine = line.trim().startsWith("|");
88
- if (headerDone && !tableClosed && !isPipeLine) {
89
- tableClosed = true; // the history table ended — everything below is verbatim
90
- }
91
- if (tableClosed || !isPipeLine) {
92
- out.push(line);
93
- continue;
94
- }
95
- if (!headerDone) {
96
- // Header + separator collapse into the slim template's pair.
97
- if (isSeparator(line)) {
98
- headerDone = true;
99
- out.push("| Sesión | Fecha | Estado | Refs |");
100
- out.push("|--------|-------|--------|------|");
101
- }
102
- continue;
103
- }
104
- const mapped = migrateLegacyRow(line, columns);
105
- if (mapped.lossy)
106
- lossy = true;
107
- out.push(mapped.row);
90
+ migrateLegacyLine(line, columns, state);
108
91
  }
109
- if (!headerDone)
92
+ if (!state.headerDone)
110
93
  return null; // separator never matched → do not touch the file
111
- return { text: out.join("\n"), lossy };
94
+ return { text: state.out.join("\n"), lossy: state.lossy };
95
+ }
96
+ function migrateLegacyLine(line, columns, state) {
97
+ const isPipeLine = line.trim().startsWith("|");
98
+ if (state.headerDone && !state.tableClosed && !isPipeLine) {
99
+ state.tableClosed = true; // the history table ended — everything below is verbatim
100
+ }
101
+ if (state.tableClosed || !isPipeLine) {
102
+ state.out.push(line);
103
+ return;
104
+ }
105
+ if (!state.headerDone) {
106
+ migrateLegacyHeader(line, state);
107
+ return;
108
+ }
109
+ const mapped = migrateLegacyRow(line, columns);
110
+ if (mapped.lossy)
111
+ state.lossy = true;
112
+ state.out.push(mapped.row);
113
+ }
114
+ function migrateLegacyHeader(line, state) {
115
+ if (!isSeparator(line))
116
+ return;
117
+ // Header + separator collapse into the slim template's pair.
118
+ state.headerDone = true;
119
+ state.out.push("| Sesión | Fecha | Estado | Refs |");
120
+ state.out.push("|--------|-------|--------|------|");
112
121
  }
113
122
  /** Where each legacy column sits, or `null` when the table carries no row key. */
114
123
  function legacyColumns(cells) {
@@ -130,6 +139,14 @@ function legacyColumns(cells) {
130
139
  function isSeparator(line) {
131
140
  return /^\|[\s|:-]+\|?$/.test(line.trim());
132
141
  }
142
+ /**
143
+ * A legacy date is evidence, not a default. An empty/missing `Fecha` header
144
+ * therefore becomes the durable unknown marker rather than the day an upsert
145
+ * happened to run.
146
+ */
147
+ function legacyDate(value) {
148
+ return value?.trim() || "—";
149
+ }
133
150
  /** One legacy row in the current shape, and whether mapping it dropped content. */
134
151
  function migrateLegacyRow(line, columns) {
135
152
  const parts = line.split("|").map((c) => c.trim());
@@ -141,7 +158,11 @@ function migrateLegacyRow(line, columns) {
141
158
  row: buildRow({
142
159
  code: code || sesion,
143
160
  sesionName: sesion || code,
144
- date: cell(columns.fecha),
161
+ // A legacy row did not acquire a date merely because its table acquired
162
+ // the slim shape. The header is the only authority for that cell; when
163
+ // it never named one, make that absence durable instead of stamping the
164
+ // day this migration happened.
165
+ date: legacyDate(cell(columns.fecha)),
145
166
  state: cell(columns.estado),
146
167
  refs: cell(columns.refs) || "—",
147
168
  }),
@@ -163,27 +184,36 @@ function migrateLegacyRow(line, columns) {
163
184
  * work in a workspace whose history was never created, and the folder scan is
164
185
  * the other half of the maximum.
165
186
  */
166
- export async function maxHistoryNumber(fs, historyFile) {
187
+ export async function maxHistoryCorrelative(fs, historyFile) {
167
188
  let text;
168
189
  try {
169
190
  if (!(await fs.exists(historyFile)))
170
- return 0;
191
+ return null;
171
192
  text = await fs.readText(historyFile);
172
193
  }
173
194
  catch {
174
- return 0;
195
+ return null;
175
196
  }
176
- let max = 0;
197
+ const correlatives = [];
177
198
  for (const line of text.split("\n")) {
178
199
  const trimmed = line.trim();
179
200
  if (!trimmed.startsWith("|"))
180
201
  continue;
181
202
  const first = trimmed.split("|")[1]?.trim() ?? "";
182
- const m = first.match(/^(?:session)?(\d{3,})(?:-|$)/);
183
- if (m?.[1])
184
- max = Math.max(max, Number.parseInt(m[1], 10));
203
+ const correlative = historyCorrelative(first);
204
+ if (correlative !== null)
205
+ correlatives.push(correlative);
185
206
  }
186
- return max;
207
+ return maxCorrelative(correlatives);
208
+ }
209
+ /**
210
+ * Compatibility projection for callers that still display `current_max` as a
211
+ * JSON number. New counters use {@link maxHistoryCorrelative} and never depend
212
+ * on this lossy projection.
213
+ */
214
+ export async function maxHistoryNumber(fs, historyFile) {
215
+ const maximum = await maxHistoryCorrelative(fs, historyFile);
216
+ return maximum === null ? 0 : Number.parseInt(maximum, 10);
187
217
  }
188
218
  /**
189
219
  * Every session the record remembers, whichever table shape holds it.
@@ -233,8 +263,11 @@ function rowFrom(line, columns) {
233
263
  }
234
264
  /** The numeric identity a row key or a `--code` carries; `null` when it has none. */
235
265
  function identityNumber(value) {
236
- const m = value.match(/^(?:session)?(\d+)(?:-|$)/);
237
- return m?.[1] === undefined ? null : Number.parseInt(m[1], 10);
266
+ const correlative = historyCorrelative(value);
267
+ return correlative === null ? null : correlativeValue(correlative);
268
+ }
269
+ function historyCorrelative(value) {
270
+ return prefixedCorrelative(value, "session") ?? leadingCorrelative(value);
238
271
  }
239
272
  /**
240
273
  * Whether a row belongs to the session a caller named.
@@ -275,16 +308,20 @@ function findRow(lines, code) {
275
308
  * put there — an update of the state silently deleting a cell nobody mentioned.
276
309
  * A cell is only ever rewritten by somebody who named it.
277
310
  *
278
- * Defaults apply to a row being BORN, never to one being updated: a session with
279
- * no declared date gets today (the day its record was written) once, and every
280
- * later upsert preserves it instead of re-dating it.
311
+ * Defaults apply to a current-model row being BORN, never to one being updated:
312
+ * a session with no declared date gets today (the day its record was written)
313
+ * once, and every later upsert preserves it instead of re-dating it. A legacy
314
+ * row is different: its header is its evidence, so a missing date stays `—`.
281
315
  */
282
- function mergeRow(row, existing) {
316
+ function mergeRow(row, existing, unmigratedLegacyColumns) {
283
317
  const previous = existing !== null && existing.cells.length === SLIM_COLUMNS ? existing.cells : [];
318
+ const legacyExistingDate = existing !== null && unmigratedLegacyColumns !== null
319
+ ? legacyDate(existing.cells[unmigratedLegacyColumns.fecha])
320
+ : undefined;
284
321
  const key = row.sesionName !== undefined
285
322
  ? rowKey(row.code, row.sesionName)
286
323
  : (previous[0] ?? rowKey(row.code, undefined));
287
- return `| ${key} | ${row.date ?? previous[1] ?? localDateIso(new Date())} | ${row.state} | ${row.refs ?? previous[3] ?? "—"} |`;
324
+ return `| ${key} | ${row.date ?? legacyExistingDate ?? previous[1] ?? localDateIso(new Date())} | ${row.state} | ${row.refs ?? previous[3] ?? "—"} |`;
288
325
  }
289
326
  /**
290
327
  * Put a new row INSIDE the table, right after its last row.
@@ -333,6 +370,7 @@ export async function upsertRow(fs, historyFile, row) {
333
370
  let migrated = false;
334
371
  let lossy = false;
335
372
  const cells = headerCells(previous);
373
+ const originalLegacyColumns = isLegacyHeader(cells) ? legacyColumns(cells) : null;
336
374
  if (isLegacyHeader(cells)) {
337
375
  const rewritten = migrateLegacyTable(previous, cells);
338
376
  // Unmappable legacy table (hand-edited, no separator): leave it verbatim and
@@ -345,7 +383,7 @@ export async function upsertRow(fs, historyFile, row) {
345
383
  }
346
384
  const lines = text.split("\n");
347
385
  const existing = findRow(lines, row.code);
348
- const merged = mergeRow(row, existing);
386
+ const merged = mergeRow(row, existing, migrated ? null : originalLegacyColumns);
349
387
  if (existing === null) {
350
388
  if (lossy)
351
389
  await snapshotLegacy(fs, historyFile, previous);