@tacuchi/agent-workflow-cli 25.3.1 → 25.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +1 -1
  2. package/dist/application/cut-intent-ledger.js +164 -0
  3. package/dist/application/cut-intent-ledger.js.map +1 -0
  4. package/dist/application/doctor/repair-runner.js +35 -2
  5. package/dist/application/doctor/repair-runner.js.map +1 -1
  6. package/dist/application/export-service.js +8 -1
  7. package/dist/application/export-service.js.map +1 -1
  8. package/dist/application/history-publications.js +76 -0
  9. package/dist/application/history-publications.js.map +1 -0
  10. package/dist/application/lineage-service.js +119 -0
  11. package/dist/application/lineage-service.js.map +1 -0
  12. package/dist/application/paths-service.js +8 -0
  13. package/dist/application/paths-service.js.map +1 -1
  14. package/dist/application/persist-service.js +9 -3
  15. package/dist/application/persist-service.js.map +1 -1
  16. package/dist/application/release-pass-ledger.js +285 -0
  17. package/dist/application/release-pass-ledger.js.map +1 -0
  18. package/dist/application/resume-service.js +9 -5
  19. package/dist/application/resume-service.js.map +1 -1
  20. package/dist/application/retirement/prepare.js +2 -2
  21. package/dist/application/retirement/prepare.js.map +1 -1
  22. package/dist/application/retirement/resolve.js.map +1 -1
  23. package/dist/application/self/install-plugin-skills-git.js +28 -1
  24. package/dist/application/self/install-plugin-skills-git.js.map +1 -1
  25. package/dist/application/self/skills-apply.js +623 -0
  26. package/dist/application/self/skills-apply.js.map +1 -0
  27. package/dist/application/self/skills-catalog.js +35 -0
  28. package/dist/application/self/skills-catalog.js.map +1 -0
  29. package/dist/application/self/skills-change.js +479 -0
  30. package/dist/application/self/skills-change.js.map +1 -0
  31. package/dist/application/self/skills-discovery.js +275 -0
  32. package/dist/application/self/skills-discovery.js.map +1 -0
  33. package/dist/application/self/skills-manager.js +69 -499
  34. package/dist/application/self/skills-manager.js.map +1 -1
  35. package/dist/application/self/skills-payload.js +566 -0
  36. package/dist/application/self/skills-payload.js.map +1 -0
  37. package/dist/application/self/skills-registry.js +31 -11
  38. package/dist/application/self/skills-registry.js.map +1 -1
  39. package/dist/application/session-resolver.js +8 -2
  40. package/dist/application/session-resolver.js.map +1 -1
  41. package/dist/application/{retirement/graph.js → workline-graph.js} +18 -12
  42. package/dist/application/workline-graph.js.map +1 -0
  43. package/dist/application/workline-index-service.js +200 -16
  44. package/dist/application/workline-index-service.js.map +1 -1
  45. package/dist/application/workspace-materialization-service.js +40 -4
  46. package/dist/application/workspace-materialization-service.js.map +1 -1
  47. package/dist/application/worktree-service.js +276 -6
  48. package/dist/application/worktree-service.js.map +1 -1
  49. package/dist/cli/commands/cut-intent.js +176 -0
  50. package/dist/cli/commands/cut-intent.js.map +1 -0
  51. package/dist/cli/commands/index.js +10 -0
  52. package/dist/cli/commands/index.js.map +1 -1
  53. package/dist/cli/commands/release-pass.js +192 -0
  54. package/dist/cli/commands/release-pass.js.map +1 -0
  55. package/dist/cli/commands/resume.js +3 -0
  56. package/dist/cli/commands/resume.js.map +1 -1
  57. package/dist/cli/commands/status.js +7 -0
  58. package/dist/cli/commands/status.js.map +1 -1
  59. package/dist/cli/commands/worktree.js +19 -5
  60. package/dist/cli/commands/worktree.js.map +1 -1
  61. package/dist/cli/help-groups.js +11 -0
  62. package/dist/cli/help-groups.js.map +1 -1
  63. package/dist/cli/main.js +27 -3
  64. package/dist/cli/main.js.map +1 -1
  65. package/dist/cli/tui/data/recommended-skills.js +363 -9
  66. package/dist/cli/tui/data/recommended-skills.js.map +1 -1
  67. package/dist/cli/tui/tabs/skills-tab.js +448 -204
  68. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  69. package/dist/domain/cut-intent.js +79 -0
  70. package/dist/domain/cut-intent.js.map +1 -0
  71. package/dist/domain/doctor/operations.js +3 -1
  72. package/dist/domain/doctor/operations.js.map +1 -1
  73. package/dist/domain/flow/authority.js +8 -0
  74. package/dist/domain/flow/authority.js.map +1 -1
  75. package/dist/domain/release-pass.js +95 -0
  76. package/dist/domain/release-pass.js.map +1 -0
  77. package/dist/runtime/namespace-resolver.js +3 -10
  78. package/dist/runtime/namespace-resolver.js.map +1 -1
  79. package/dist/runtime/workline-marker.js +70 -0
  80. package/dist/runtime/workline-marker.js.map +1 -0
  81. package/package.json +1 -1
  82. package/skills/w/roles/README.md +2 -0
  83. package/dist/application/retirement/graph.js.map +0 -1
@@ -7,7 +7,7 @@ import { runMultiroot } from "./multiroot-service.js";
7
7
  import { normalizePath } from "./multiroot/paths.js";
8
8
  import { readWorkspaceBlock } from "./parsers/project-block.js";
9
9
  import { recordIntegration, recordUnitTaken } from "./session-custody-recorder.js";
10
- import { listSessionFolders, resolveSessionTarget, } from "./session-resolver.js";
10
+ import { listSessionFolders, resolveSessionTarget, sessionFolderMatches, } from "./session-resolver.js";
11
11
  import { ensureWorklineMaterialized } from "./workspace-materialization-service.js";
12
12
  /**
13
13
  * How long an integration waits for the workspace lock before giving up.
@@ -19,6 +19,12 @@ const INTEGRATE_LOCK_WAIT_MS = 10_000;
19
19
  export async function runWorktree(deps, input) {
20
20
  if (input.action === "list")
21
21
  return listUnits(deps, input);
22
+ // Collecting residue resolves NO session: the units it acts on are the ones
23
+ // whose session is closed or already gone, so a resolver that refuses those is
24
+ // the reason the inventory's remedy never worked. It reads the same trees the
25
+ // inventory reads and decides per unit.
26
+ if (input.action === "reclaim")
27
+ return reclaimUnits(deps, input);
22
28
  // Integrating without naming a source is not a missing argument: it is the
23
29
  // whole session, which is what a run holds and what a close has to answer for.
24
30
  if (input.action === "integrate" && input.alias === undefined) {
@@ -53,17 +59,52 @@ async function integrateSession(deps, input) {
53
59
  if ("error" in listed)
54
60
  return listed;
55
61
  const mine = listed.units.filter((unit) => unit.session === session);
62
+ const { results, integrated, pending, nextOf } = await mergeEach(deps, input, session, mine);
63
+ // Every merge is done: what is still standing is residue, and the same
64
+ // reclaimability rule that governs an orphan governs it here. A conflicted unit
65
+ // retains itself — its commits are precisely the ones NOT on the working
66
+ // branch — so this cannot take the side of a merge nobody resolved.
67
+ const swept = await reclaimUnits(deps, { action: "reclaim", sessionCode: session });
68
+ const residue = "error" in swept
69
+ ? { reclaimed: [], retained: [], next: null }
70
+ : swept;
71
+ // An alias whose unit was collected is no longer holding one, so it leaves
72
+ // `pending`. That is not hiding its refusal — the refusal stays in `results` —
73
+ // it is that a unit with nothing the working branch lacks had no merge pending
74
+ // in the first place, and leaving it listed would send somebody to integrate a
75
+ // tree that is gone.
76
+ const taken = new Set(residue.reclaimed.map((u) => u.alias));
77
+ const holding = pending.filter((alias) => !taken.has(alias));
78
+ const first = holding[0];
79
+ return {
80
+ session,
81
+ plan: await planOf(deps, session),
82
+ results,
83
+ integrated,
84
+ pending: holding,
85
+ reclaimed: residue.reclaimed,
86
+ retained: residue.retained,
87
+ next: (first !== undefined ? (nextOf.get(first) ?? null) : null) ?? residue.next,
88
+ };
89
+ }
90
+ /**
91
+ * Every unit merged in alias order, with what is still pending and how to act on it.
92
+ *
93
+ * Nothing is aborted by a neighbour: each alias is its own merge into its own
94
+ * repository, so a conflict in one must not hide whether the others landed.
95
+ */
96
+ async function mergeEach(deps, input, session, mine) {
56
97
  const results = [];
57
98
  const integrated = [];
58
99
  const pending = [];
59
- let next = null;
100
+ const nextOf = new Map();
60
101
  for (const unit of [...mine].sort((a, b) => a.alias.localeCompare(b.alias))) {
61
102
  const target = await resolveTarget(deps, { ...input, alias: unit.alias });
62
103
  const result = "error" in target ? target : await integrateUnit(deps, target);
63
104
  if ("error" in result) {
64
105
  results.push({ ...result, alias: unit.alias });
65
106
  pending.push(unit.alias);
66
- next ??= `aw worktree integrate --source ${unit.alias} --code ${session}`;
107
+ nextOf.set(unit.alias, `aw worktree integrate --source ${unit.alias} --code ${session}`);
67
108
  continue;
68
109
  }
69
110
  results.push(result);
@@ -71,10 +112,11 @@ async function integrateSession(deps, input) {
71
112
  integrated.push(unit.alias);
72
113
  else {
73
114
  pending.push(unit.alias);
74
- next ??= result.next;
115
+ if (result.next !== null)
116
+ nextOf.set(unit.alias, result.next);
75
117
  }
76
118
  }
77
- return { session, plan: await planOf(deps, session), results, integrated, pending, next };
119
+ return { results, integrated, pending, nextOf };
78
120
  }
79
121
  /** The plan the session's run declared, or `null` when there is no readable run. */
80
122
  async function planOf(deps, session) {
@@ -420,6 +462,234 @@ async function releaseUnit(deps, target) {
420
462
  visibility: await detach(deps, path),
421
463
  };
422
464
  }
465
+ /**
466
+ * Collect the residue: one act over the whole workspace, or over one session.
467
+ *
468
+ * Every unit it looks at is one the inventory already names — and the inventory
469
+ * names units whose session is CLOSED or GONE. That is the whole reason this
470
+ * path resolves no session: `release` reaches its tree through
471
+ * `resolveSessionTarget({ intent: "write" })`, which refuses a closed session
472
+ * asking for a reopen and never resolves an absent one, so the remedy printed
473
+ * next to every orphan could not be run on the orphans that exist. Here the
474
+ * identity comes off the unit's own path, exactly as the listing derives it, and
475
+ * what a session is allowed to do to ITS OWN artifacts is left untouched.
476
+ *
477
+ * Narrowing with a session goes further than an orphan sweep on purpose: that is
478
+ * the form integration uses at its own close, where the session is still alive
479
+ * and what is left over is its own units, not orphans.
480
+ */
481
+ async function reclaimUnits(deps, input) {
482
+ const block = await readWorkspaceBlock(deps.fs, deps.paths.workspaceDir(), deps.paths.blockMarkers());
483
+ const sources = block?.fuentes ?? [];
484
+ if (sources.length === 0) {
485
+ return {
486
+ error: "no_sources_declared",
487
+ message: "el bloque WORKSPACE no declara ninguna fuente",
488
+ hint: "declará la fuente en la tabla Fuentes antes de pedir una recogida",
489
+ };
490
+ }
491
+ if (input.alias !== undefined && !sources.some((s) => s.alias === input.alias)) {
492
+ return {
493
+ error: "unknown_source",
494
+ message: `'${input.alias}' no es una fuente declarada`,
495
+ hint: `fuentes declaradas: ${sources.map((s) => s.alias).join(", ")}`,
496
+ };
497
+ }
498
+ const key = workspaceKey(deps.paths.workspaceDir());
499
+ const root = await canonicalUnitsRootForRead(deps);
500
+ const sessions = await sessionStates(deps);
501
+ const only = input.sessionCode ?? null;
502
+ const reclaimed = [];
503
+ const retained = [];
504
+ const unreadable = [];
505
+ for (const source of sources) {
506
+ if (input.alias !== undefined && source.alias !== input.alias)
507
+ continue;
508
+ const swept = await sweepSource(deps, source, { root, key, only, sessions, block });
509
+ if ("error" in swept) {
510
+ unreadable.push({ alias: source.alias, error: swept.error });
511
+ continue;
512
+ }
513
+ reclaimed.push(...swept.reclaimed);
514
+ retained.push(...swept.retained);
515
+ }
516
+ return {
517
+ workspace_key: key,
518
+ ...(only !== null ? { session: only } : {}),
519
+ reclaimed,
520
+ retained,
521
+ unreadable,
522
+ next: retained[0]?.next ?? null,
523
+ };
524
+ }
525
+ /** What one source's residue produced, or why its trees could not be read. */
526
+ async function sweepSource(deps, source, ctx) {
527
+ if (!(await deps.git.isGitRepo(source.path)))
528
+ return { reclaimed: [], retained: [] };
529
+ let trees;
530
+ try {
531
+ trees = await deps.git.worktreeList(source.path);
532
+ }
533
+ catch (err) {
534
+ return { error: err.message };
535
+ }
536
+ const work = resolveSourceBranches(source, ctx.block).work;
537
+ const reclaimed = [];
538
+ const retained = [];
539
+ const vanished = [];
540
+ for (const tree of trees) {
541
+ const candidate = candidateOf(tree, ctx);
542
+ if (candidate === null)
543
+ continue;
544
+ const swept = await sweepOne(deps, source, tree, work, candidate);
545
+ if ("retained" in swept) {
546
+ retained.push(swept.retained);
547
+ continue;
548
+ }
549
+ // A vanished tree is only collected once git has actually dropped its entry,
550
+ // and the prune is one call for all of them. Reporting them before it ran
551
+ // would turn a prune that failed into a collection that never happened.
552
+ if (swept.prune)
553
+ vanished.push(swept.reclaimed);
554
+ else
555
+ reclaimed.push(swept.reclaimed);
556
+ }
557
+ if (vanished.length > 0) {
558
+ const settled = await prune(deps, source, vanished);
559
+ reclaimed.push(...settled.reclaimed);
560
+ retained.push(...settled.retained);
561
+ }
562
+ return { reclaimed, retained };
563
+ }
564
+ /** The vanished trees git dropped, or the same ones still listed and why. */
565
+ async function prune(deps, source, vanished) {
566
+ await ensureWorklineMaterialized(deps.fs, deps.paths);
567
+ try {
568
+ await deps.git.worktreePrune(source.path);
569
+ return { reclaimed: vanished, retained: [] };
570
+ }
571
+ catch (err) {
572
+ return {
573
+ reclaimed: [],
574
+ retained: vanished.map((unit) => ({
575
+ alias: unit.alias,
576
+ session: unit.session,
577
+ path: unit.path,
578
+ branch: unit.branch,
579
+ reason: "remove_refused",
580
+ detail: err.message,
581
+ next: `corré 'git worktree prune' en ${source.path} y volvé a recoger`,
582
+ })),
583
+ };
584
+ }
585
+ }
586
+ /** The identity and residue state of a tree this sweep may act on; `null` otherwise. */
587
+ function candidateOf(tree, ctx) {
588
+ const identity = tree.main ? null : parseUnitPath(ctx.root, tree.path);
589
+ if (identity === null || identity.workspaceKey !== ctx.key)
590
+ return null;
591
+ if (ctx.only !== null && !sessionFolderMatches(identity.session, ctx.only))
592
+ return null;
593
+ const orphan = orphanReason(identity.session, ctx.sessions, tree.prunable);
594
+ // Outside a named session only residue is touched: a live session's unit is
595
+ // somebody's working tree, and a workspace-wide sweep that could take one would
596
+ // be the failure this whole feature exists to prevent.
597
+ if (orphan === null && ctx.only === null)
598
+ return null;
599
+ return { session: identity.session, alias: identity.alias, orphan };
600
+ }
601
+ /** One candidate, weighed and then collected or left standing. */
602
+ async function sweepOne(deps, source, tree, work, candidate) {
603
+ const where = {
604
+ alias: candidate.alias,
605
+ session: candidate.session,
606
+ path: tree.path,
607
+ branch: tree.branch,
608
+ };
609
+ if (candidate.orphan === "directory_missing") {
610
+ // Nothing to weigh: the tree is gone. Pruning drops git's administrative
611
+ // entry and leaves the branch — and with it every commit — exactly where it
612
+ // was, so there is no work this can lose.
613
+ return { reclaimed: { ...where, reason: candidate.orphan }, prune: true };
614
+ }
615
+ const verdict = await reclaimability(deps, source, tree, work, candidate.orphan, candidate.session);
616
+ if (!verdict.free)
617
+ return { retained: { ...where, ...verdict.retention } };
618
+ await ensureWorklineMaterialized(deps.fs, deps.paths);
619
+ try {
620
+ await deps.git.worktreeRemove(source.path, tree.path);
621
+ }
622
+ catch (err) {
623
+ // git refused, and git refusing is the last line of the same rule: never
624
+ // `--force`, so whatever it is holding stays held.
625
+ return {
626
+ retained: {
627
+ ...where,
628
+ reason: "remove_refused",
629
+ detail: err.message,
630
+ next: `revisá ${tree.path} y volvé a correr 'aw worktree reclaim'; nada se borra por la fuerza`,
631
+ },
632
+ };
633
+ }
634
+ await detach(deps, tree.path);
635
+ return {
636
+ reclaimed: { ...where, reason: candidate.orphan ?? "already_on_work_branch" },
637
+ prune: false,
638
+ };
639
+ }
640
+ /**
641
+ * Whether a unit still custodies work — and it fails CLOSED.
642
+ *
643
+ * Three states hold a unit, and each is asked separately because each has a
644
+ * different way out: a half-finished git operation, uncommitted changes, and
645
+ * commits that are not on the source's working branch. A read that cannot be
646
+ * completed is a fourth: it RETAINS. `git worktree remove` refusing is not the
647
+ * proof that nothing with work was touched — the proof is the unit that is still
648
+ * there — and a `status` that could not run must never read as "clean".
649
+ */
650
+ async function reclaimability(deps, source, tree, work, orphan, session) {
651
+ const held = (reason, detail, next) => ({
652
+ free: false,
653
+ retention: { reason, detail, next },
654
+ });
655
+ let operation;
656
+ try {
657
+ operation = await deps.git.operationState(tree.path);
658
+ }
659
+ catch (err) {
660
+ return held("unreadable", `no se pudo leer el estado de git en la unidad: ${err.message}`, `revisá ${tree.path} a mano: mientras su estado no se pueda leer, la recogida la conserva`);
661
+ }
662
+ if (operation !== "clean") {
663
+ return held("operation_in_progress", `git dejó un ${operation} a medio resolver en la unidad`, `aw fix-git --path ${tree.path}`);
664
+ }
665
+ let dirty;
666
+ try {
667
+ dirty = await deps.git.isDirty(tree.path);
668
+ }
669
+ catch (err) {
670
+ return held("unreadable", `no se pudo leer el árbol de la unidad: ${err.message}`, `revisá ${tree.path} a mano: mientras su árbol no se pueda leer, la recogida lo conserva`);
671
+ }
672
+ if (dirty) {
673
+ return held("uncommitted_changes", "la unidad tiene cambios sin commitear", `commiteá o descartá los cambios en ${tree.path} y volvé a correr 'aw worktree reclaim'`);
674
+ }
675
+ if (tree.head === null) {
676
+ return held("unreadable", "git no reportó el HEAD de la unidad", `revisá ${tree.path} a mano: sin HEAD no se puede decidir si sus commits ya están en '${work}'`);
677
+ }
678
+ if (!(await deps.git.isAncestor(source.path, tree.head, work))) {
679
+ return held("commits_outside_work_branch", `la unidad tiene commits que no están en '${work}'`, recoveryFor(source, tree, orphan, work, session));
680
+ }
681
+ return { free: true };
682
+ }
683
+ /** How the work of a unit that is not on the working branch gets back onto it. */
684
+ function recoveryFor(source, tree, orphan, work, session) {
685
+ if (orphan === "session_closed") {
686
+ return `aw session-resume --code ${session} --reopen y después 'aw worktree integrate --source ${source.alias} --code ${session}'`;
687
+ }
688
+ if (orphan === "session_absent") {
689
+ return `la sesión ${session} ya no existe: revisá la rama ${tree.branch ?? unitBranch(session)} en ${source.path} y llevá sus commits a '${work}' antes de volver a recoger`;
690
+ }
691
+ return `aw worktree integrate --source ${source.alias} --code ${session}`;
692
+ }
423
693
  /**
424
694
  * The workspace's live units — every one of them, or only one session's.
425
695
  *
@@ -546,7 +816,7 @@ function orphanOf(identity, tree, reason) {
546
816
  path: tree.path,
547
817
  branch: tree.branch,
548
818
  reason,
549
- release: `aw worktree release --source ${identity.alias} --code ${identity.session}`,
819
+ release: `aw worktree reclaim --source ${identity.alias} --code ${identity.session}`,
550
820
  };
551
821
  }
552
822
  async function sessionStates(deps) {
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-service.js","sourceRoot":"","sources":["../../src/application/worktree-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-service.js","sourceRoot":"","sources":["../../src/application/worktree-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ import { appendCutIntent, currentIntentOf, cutIntentLedgerPath, readCutIntents, readingForPlan, } from "../../application/cut-intent-ledger.js";
2
+ import { CutIntentError } from "../../domain/cut-intent.js";
3
+ import { formatNodeId } from "../../domain/workline-node.js";
4
+ import { nodeFromDocPath } from "../../domain/workline-node.js";
5
+ import { flagValue } from "../parser.js";
6
+ import { fail } from "../render.js";
7
+ const USAGE = "uso: cut-intent [show] [--plan <NNN|ruta>] [--spec <NNN|ruta>] | cut-intent declare --spec <NNN|ruta> --order <NNN,NNN> [--deferred <NNN,…>] [--cause <texto>]";
8
+ /**
9
+ * The order and grouping a person meant for a cut — declared, read back and
10
+ * corrected.
11
+ *
12
+ * Its own surface rather than a flag on `status`, for the reason the record
13
+ * exists: this is the ONE place a human intention enters the workspace, and
14
+ * everything else derives from it. Folding the declaration into a board that
15
+ * otherwise only reports would blur which of the two a given number came from.
16
+ *
17
+ * Correcting is declaring again. There is no edit verb and no delete verb,
18
+ * because the ledger underneath has neither: the new record supersedes the old
19
+ * one for reading and the old one stays readable above it, which is what makes a
20
+ * reorder something a person can review instead of merely inherit.
21
+ */
22
+ export const cutIntentCommand = {
23
+ name: "cut-intent",
24
+ describe: "The intent with which a cut of plans born from one spec was meant to be executed: which plans go together, in what order inside the group, and which are held back for a later pass. 'cut-intent' or 'cut-intent show' reads it back — with --plan it answers for one plan, and a plan nobody declared gets an explicit answer, never an empty list. 'cut-intent declare --spec <NNN> --order <NNN,NNN>' records it; declaring again is how you correct it, and the superseded record is kept, never rewritten. The book is append-only under the workspace namespace, next to HISTORY.md. It constrains nothing: executing out of the declared order is allowed and only warned about. Usage: aw cut-intent [show] [--plan <NNN|ruta>] | aw cut-intent declare --spec <NNN> --order <NNN,NNN> [--deferred <NNN,…>] [--cause <texto>].",
25
+ async execute(args, ctx) {
26
+ const verb = args.rest[0] ?? "show";
27
+ if (verb !== "show" && verb !== "declare")
28
+ return fail("INVALID_INPUT", USAGE, { error: USAGE });
29
+ if (verb === "show")
30
+ return await show(args, ctx);
31
+ return await declare(args, ctx);
32
+ },
33
+ };
34
+ async function show(args, ctx) {
35
+ const read = await readCutIntents(ctx.fs, ctx.paths);
36
+ const planRef = flagValue(args, "plan");
37
+ const specRef = flagValue(args, "spec");
38
+ if (planRef !== undefined) {
39
+ const plan = nodeOf(planRef, "plan");
40
+ if (plan === null)
41
+ return fail("INVALID_INPUT", refusal(planRef, "plan"), { error: USAGE });
42
+ return {
43
+ ok: true,
44
+ data: { plan: formatNodeId(plan), ...readingForPlan(read, plan) },
45
+ exitCode: 0,
46
+ };
47
+ }
48
+ if (specRef !== undefined) {
49
+ const spec = nodeOf(specRef, "spec");
50
+ if (spec === null)
51
+ return fail("INVALID_INPUT", refusal(specRef, "spec"), { error: USAGE });
52
+ const current = currentIntentOf(read.events, spec);
53
+ if (current === null) {
54
+ return {
55
+ ok: true,
56
+ data: {
57
+ spec: formatNodeId(spec),
58
+ declared: false,
59
+ reason: `nadie declaró una intención de corte para '${formatNodeId(spec)}'`,
60
+ unreadable: read.unreadable,
61
+ },
62
+ exitCode: 0,
63
+ };
64
+ }
65
+ return {
66
+ ok: true,
67
+ data: { spec: formatNodeId(spec), declared: true, at: current.at, intent: current.intent },
68
+ exitCode: 0,
69
+ };
70
+ }
71
+ // The whole book, current-first: one row per spec that has an intent in force,
72
+ // and the superseded records counted rather than listed — they are history, and
73
+ // a listing that mixed them with the current one would read as a contradiction.
74
+ const specs = new Map();
75
+ for (const event of read.events)
76
+ specs.set(formatNodeId(event.intent.spec), event.intent.spec);
77
+ const cuts = [...specs.values()]
78
+ .map((spec) => currentIntentOf(read.events, spec))
79
+ .filter((event) => event !== null)
80
+ .map((event) => ({
81
+ spec: formatNodeId(event.intent.spec),
82
+ at: event.at,
83
+ intent: event.intent,
84
+ }));
85
+ return {
86
+ ok: true,
87
+ data: {
88
+ path: cutIntentLedgerPath(ctx.paths),
89
+ cuts,
90
+ records: read.events.length,
91
+ superseded: read.events.length - cuts.length,
92
+ unreadable: read.unreadable,
93
+ },
94
+ exitCode: 0,
95
+ };
96
+ }
97
+ async function declare(args, ctx) {
98
+ const specRef = flagValue(args, "spec");
99
+ const orderRef = flagValue(args, "order");
100
+ if (specRef === undefined || orderRef === undefined) {
101
+ return fail("INVALID_INPUT", USAGE, { error: USAGE });
102
+ }
103
+ const spec = nodeOf(specRef, "spec");
104
+ if (spec === null)
105
+ return fail("INVALID_INPUT", refusal(specRef, "spec"), { error: USAGE });
106
+ const order = nodeList(orderRef);
107
+ const deferred = nodeList(flagValue(args, "deferred") ?? "");
108
+ if (order === null || deferred === null) {
109
+ return fail("INVALID_INPUT", refusal(orderRef, "plan"), { error: USAGE });
110
+ }
111
+ const intent = { spec, order, deferred };
112
+ const at = new Date().toISOString();
113
+ const cause = flagValue(args, "cause");
114
+ try {
115
+ await appendCutIntent(ctx.fs, ctx.paths, {
116
+ at,
117
+ intent,
118
+ ...(cause !== undefined ? { cause } : {}),
119
+ });
120
+ }
121
+ catch (error) {
122
+ if (error instanceof CutIntentError)
123
+ return fail(error.code, error.message, { error: error.message });
124
+ throw error;
125
+ }
126
+ const read = await readCutIntents(ctx.fs, ctx.paths);
127
+ const previous = read.events.filter((e) => formatNodeId(e.intent.spec) === formatNodeId(spec));
128
+ return {
129
+ ok: true,
130
+ data: {
131
+ declared: true,
132
+ at,
133
+ intent,
134
+ path: cutIntentLedgerPath(ctx.paths),
135
+ // Said explicitly on a correction, because the value of an append-only
136
+ // book is only real if the person can see that the earlier record survived.
137
+ supersedes: previous.length - 1,
138
+ },
139
+ exitCode: 0,
140
+ };
141
+ }
142
+ /**
143
+ * A node from a bare correlative or from a workspace-relative document path.
144
+ *
145
+ * Both spellings are accepted because both are what a person has at hand: the
146
+ * board prints numbers and the flows pass paths. The path form goes through
147
+ * `nodeFromDocPath`, the one place that decides what a path IS, so this never
148
+ * becomes a second spelling of that rule.
149
+ */
150
+ function nodeOf(reference, kind) {
151
+ const trimmed = reference.trim();
152
+ if (trimmed.length === 0)
153
+ return null;
154
+ if (/^\d{3,}$/.test(trimmed))
155
+ return { kind, key: trimmed };
156
+ const fromPath = nodeFromDocPath(trimmed);
157
+ return fromPath !== null && fromPath.kind === kind ? fromPath : null;
158
+ }
159
+ function nodeList(raw) {
160
+ const parts = raw
161
+ .split(",")
162
+ .map((part) => part.trim())
163
+ .filter((part) => part.length > 0);
164
+ const nodes = [];
165
+ for (const part of parts) {
166
+ const node = nodeOf(part, "plan");
167
+ if (node === null)
168
+ return null;
169
+ nodes.push(node);
170
+ }
171
+ return nodes;
172
+ }
173
+ function refusal(reference, kind) {
174
+ return `'${reference}' no nombra ${kind === "spec" ? "una spec" : "un plan"}: usá su correlativo (por ejemplo 045) o su ruta en el workspace`;
175
+ }
176
+ //# sourceMappingURL=cut-intent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cut-intent.js","sourceRoot":"","sources":["../../../src/cli/commands/cut-intent.ts"],"names":[],"mappings":"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"}