@tacuchi/agent-workflow-cli 25.2.0 → 25.3.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 (57) hide show
  1. package/README.md +1 -0
  2. package/dist/application/decision-note-service.js +20 -3
  3. package/dist/application/decision-note-service.js.map +1 -1
  4. package/dist/application/flow/advance.js +91 -5
  5. package/dist/application/flow/advance.js.map +1 -1
  6. package/dist/application/flow/internal-actions.js +167 -7
  7. package/dist/application/flow/internal-actions.js.map +1 -1
  8. package/dist/application/flow/submit.js +187 -4
  9. package/dist/application/flow/submit.js.map +1 -1
  10. package/dist/application/plan-current-point.js +54 -0
  11. package/dist/application/plan-current-point.js.map +1 -0
  12. package/dist/application/plan-exec-decision-service.js +143 -4
  13. package/dist/application/plan-exec-decision-service.js.map +1 -1
  14. package/dist/application/plan-locator.js +78 -0
  15. package/dist/application/plan-locator.js.map +1 -0
  16. package/dist/application/plan-open-run.js +129 -0
  17. package/dist/application/plan-open-run.js.map +1 -0
  18. package/dist/application/reseal-service.js +14 -44
  19. package/dist/application/reseal-service.js.map +1 -1
  20. package/dist/application/resume-service.js +9 -3
  21. package/dist/application/resume-service.js.map +1 -1
  22. package/dist/application/settle-service.js +442 -0
  23. package/dist/application/settle-service.js.map +1 -0
  24. package/dist/application/workline-index-service.js +165 -62
  25. package/dist/application/workline-index-service.js.map +1 -1
  26. package/dist/cli/commands/index.js +2 -0
  27. package/dist/cli/commands/index.js.map +1 -1
  28. package/dist/cli/commands/settle.js +197 -0
  29. package/dist/cli/commands/settle.js.map +1 -0
  30. package/dist/cli/commands/status.js +2 -0
  31. package/dist/cli/commands/status.js.map +1 -1
  32. package/dist/cli/help-groups.js +7 -0
  33. package/dist/cli/help-groups.js.map +1 -1
  34. package/dist/cli/parser.js +6 -0
  35. package/dist/cli/parser.js.map +1 -1
  36. package/dist/domain/decision-note.js +166 -3
  37. package/dist/domain/decision-note.js.map +1 -1
  38. package/dist/domain/decision-preview.js.map +1 -1
  39. package/dist/domain/effective-contract.js +4 -3
  40. package/dist/domain/effective-contract.js.map +1 -1
  41. package/dist/domain/flow/answer.js +10 -0
  42. package/dist/domain/flow/answer.js.map +1 -1
  43. package/dist/domain/flow/authority.js +116 -0
  44. package/dist/domain/flow/authority.js.map +1 -1
  45. package/dist/domain/flow/directive.js +8 -1
  46. package/dist/domain/flow/directive.js.map +1 -1
  47. package/dist/domain/flow/run-state.js +95 -9
  48. package/dist/domain/flow/run-state.js.map +1 -1
  49. package/dist/domain/obligation-correspondence.js +95 -0
  50. package/dist/domain/obligation-correspondence.js.map +1 -0
  51. package/dist/domain/reconciliation.js +142 -25
  52. package/dist/domain/reconciliation.js.map +1 -1
  53. package/dist/domain/settlement.js +129 -0
  54. package/dist/domain/settlement.js.map +1 -0
  55. package/package.json +1 -1
  56. package/skills/w/commands/resume.md +2 -2
  57. package/skills/w/loops/plan-exec-loop/LOOP.md +31 -0
@@ -0,0 +1,78 @@
1
+ import { join } from "node:path";
2
+ import { normalizeCorrelativeInput } from "../domain/correlative.js";
3
+ import { checkSafeRelativePath } from "../domain/safe-path.js";
4
+ const DEFAULT_WORDING = {
5
+ outside: "",
6
+ ambiguous: "pasá la ruta exacta del plan",
7
+ };
8
+ export async function locatePlanDocument(fs, root, planDir, target, wording = DEFAULT_WORDING) {
9
+ const raw = target.trim();
10
+ if (raw.includes("/") || raw.endsWith(".md")) {
11
+ const safe = checkSafeRelativePath(raw);
12
+ if (!safe.ok) {
13
+ return {
14
+ ok: false,
15
+ reason: "invalid",
16
+ message: `'${target}' no es una ruta del workspace: ${safe.why}`,
17
+ action: `pasá la ruta del plan relativa al workspace ('${planDir}/NNN-plan-<slug>.md') o su correlativo`,
18
+ };
19
+ }
20
+ const expected = planDir.split("/");
21
+ const inside = safe.segments.length > expected.length &&
22
+ expected.every((segment, index) => safe.segments[index] === segment);
23
+ if (!inside) {
24
+ return {
25
+ ok: false,
26
+ reason: "invalid",
27
+ message: `'${safe.path}' no está bajo '${planDir}/'${wording.outside.length === 0 ? "" : `: ${wording.outside}`}`,
28
+ action: `pasá la ruta de un plan bajo '${planDir}/' o su correlativo`,
29
+ };
30
+ }
31
+ return { ok: true, path: safe.path };
32
+ }
33
+ const number = normalizeCorrelativeInput(raw);
34
+ if (number === null) {
35
+ return {
36
+ ok: false,
37
+ reason: "invalid",
38
+ message: `'${target}' no es ni una ruta ni un correlativo`,
39
+ action: `pasá la ruta del plan ('${planDir}/NNN-plan-<slug>.md') o su correlativo ('035')`,
40
+ };
41
+ }
42
+ const matches = await plansNumbered(fs, join(root, planDir), number);
43
+ const [first] = matches;
44
+ if (first === undefined) {
45
+ return {
46
+ ok: false,
47
+ reason: "absent",
48
+ message: `no hay ningún plan '${number}' en '${planDir}/'`,
49
+ action: "verificá el correlativo con 'aw status' o pasá la ruta exacta del plan",
50
+ };
51
+ }
52
+ if (matches.length > 1) {
53
+ return {
54
+ ok: false,
55
+ reason: "ambiguous",
56
+ message: `'${number}' nombra ${matches.length} documentos en '${planDir}/': ${matches.join(", ")}`,
57
+ action: wording.ambiguous,
58
+ };
59
+ }
60
+ return { ok: true, path: `${planDir}/${first}` };
61
+ }
62
+ /** File names of `planDir` that carry this correlative, in directory order. */
63
+ async function plansNumbered(fs, absoluteDir, number) {
64
+ let entries;
65
+ try {
66
+ entries = await fs.list(absoluteDir);
67
+ }
68
+ catch {
69
+ // A folder that is not there holds no plan: the caller reports the absence
70
+ // of the document, which is what a person can act on.
71
+ return [];
72
+ }
73
+ const named = new RegExp(`^${number}-.*\\.md$`);
74
+ return entries
75
+ .filter((entry) => entry.type === "file" && named.test(entry.name))
76
+ .map((entry) => entry.name);
77
+ }
78
+ //# sourceMappingURL=plan-locator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-locator.js","sourceRoot":"","sources":["../../src/application/plan-locator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * WHO IS HOLDING A PLAN RIGHT NOW, read once for everybody who asks.
3
+ *
4
+ * Two very different commands need this same fact. `aw settle` needs it to
5
+ * refuse: settling underneath a live run would interleave two publications over
6
+ * one chain. The board needs it to name an exit: the way out of a pending
7
+ * obligation is that run's own next boundary when there is one, and `aw settle`
8
+ * when there is not — and a board that guessed would send somebody to the wrong
9
+ * half of that.
10
+ *
11
+ * Read from the same projection `aw status` and `aw resume` present, so "there
12
+ * is a run on this plan" is one answer and not two — and the command that comes
13
+ * back is the one that projection computed, because a run that still needs
14
+ * `--adopt` refuses a bare `advance`.
15
+ */
16
+ import { findActiveSessions } from "./checkpoint-service.js";
17
+ import { projectRun } from "./flow/run-projection.js";
18
+ /**
19
+ * Every live `plan-exec` run, by the plan it holds.
20
+ *
21
+ * Four readings, in this order and for these reasons:
22
+ *
23
+ * - a run whose state cannot be READ holds an unknown plan, so it counts. The
24
+ * safe half is the same one an unreadable decision chain gets: fail closed and
25
+ * name it, because acting underneath a state nobody can read is the precise
26
+ * interleaving this reading exists to prevent;
27
+ * - a run of ANY OTHER FLOW holds no plan at all. A `quick` or a `spec-refine`
28
+ * never fixes one, and treating it as a holder is how this reading came to
29
+ * claim every plan in the workspace;
30
+ * - a run whose journey is EXHAUSTED (`final`) holds nothing any more, even
31
+ * though its session was never closed. Counting it would leave `aw settle`
32
+ * useless in exactly the workspace it was built for — a plan blocked today,
33
+ * whose run finished long ago;
34
+ * - a `plan-exec` run with no scope yet may still fix THIS plan, so it counts
35
+ * too — said as what it is rather than as an unreadable state.
36
+ */
37
+ export async function readHoldingRuns(fs, paths) {
38
+ const byPlan = new Map();
39
+ let unreadable = null;
40
+ for (const session of await findActiveSessions(fs, paths)) {
41
+ const run = await projectRun(fs, paths, session.folder);
42
+ if (run === null)
43
+ continue;
44
+ if (run.flow === "?") {
45
+ unreadable ??= {
46
+ session: session.folder,
47
+ command: run.command,
48
+ why: "tiene un estado de corrida que no se puede leer, así que no se puede descartar que tenga este plan",
49
+ };
50
+ continue;
51
+ }
52
+ // El flujo se mira ANTES del scope, y el orden es el defecto que esto
53
+ // arregla: `scope` nace nulo y sólo lo fija la declaración de alcance de
54
+ // `plan-exec`, así que mirarlo primero convertía toda corrida de `quick`,
55
+ // `spec-refine` o `plan-new` en «una corrida ilegible» — y con eso en la
56
+ // dueña de TODO plan que nadie más nombrara. `aw settle` quedaba inservible
57
+ // en cualquier workspace con otra sesión abierta, que es el workspace normal
58
+ // y justo el que la orden existe para destrabar.
59
+ if (run.flow !== "plan-exec")
60
+ continue;
61
+ if (run.boundary === "final")
62
+ continue;
63
+ if (run.scope === null) {
64
+ // Una corrida de ejecución que todavía no fijó su plan puede fijar este,
65
+ // y ahí sí valdría la mitad segura — dicha por lo que es, no como una
66
+ // ilegibilidad que no existe.
67
+ unreadable ??= {
68
+ session: session.folder,
69
+ command: run.command,
70
+ why: "tiene una corrida de ejecución que todavía no fijó su plan, así que no se puede descartar que tome este",
71
+ };
72
+ continue;
73
+ }
74
+ // First writer wins: two runs over one plan is a condition the claims ledger
75
+ // refuses upstream, and picking the later one here would name the newer of
76
+ // two sessions that should not both exist.
77
+ if (!byPlan.has(run.scope.plan)) {
78
+ byPlan.set(run.scope.plan, {
79
+ session: session.folder,
80
+ command: reachedBy(run, session.folder),
81
+ why: `tiene una corrida de ejecución abierta sobre '${run.scope.plan}': su cierre salda sus propias obligaciones`,
82
+ });
83
+ }
84
+ }
85
+ return { byPlan, unreadable };
86
+ }
87
+ /**
88
+ * The command that takes SOMEBODY ELSE to this run.
89
+ *
90
+ * The projection's own `command` is what continues the run from inside it, and
91
+ * at an execution boundary that is the sealed invocation itself — `npm test --
92
+ * …` — which advances nothing on its own: it has to be run and its real output
93
+ * submitted. Handed to a stranger as a plan's route it would be a command that
94
+ * does not do what the row says, so an execution boundary is named by the
95
+ * directive that re-renders it. Every other boundary keeps the projection's own
96
+ * command, because a legacy run refuses a bare `advance` and only the projection
97
+ * knows that.
98
+ */
99
+ function reachedBy(run, folder) {
100
+ return run.boundary === "execution" ? `aw flow advance --code ${folder}` : run.command;
101
+ }
102
+ /**
103
+ * The run holding one plan, or `null`.
104
+ *
105
+ * A run that NAMES this plan is preferred over an unreadable one, because its
106
+ * refusal says which plan and which session — and the unreadable reading still
107
+ * applies to every plan no run named.
108
+ *
109
+ * The exact path is tried first, and a case-insensitive match is the fallback
110
+ * rather than the rule. On a case-insensitive filesystem — macOS by default —
111
+ * `docs/Plans/042.md` and `docs/plans/042.md` are ONE document that a run and a
112
+ * board can end up naming differently, and an exact comparison then reports "no
113
+ * run holds this plan" about a plan a run is holding: the precise interleaving
114
+ * the guard exists to prevent. On a filesystem where the two really are two
115
+ * files the fallback over-blocks instead, which is a refusal that names a real
116
+ * session — the safe half, and the same one an unreadable run gets.
117
+ */
118
+ export function holdingRunOf(runs, plan) {
119
+ const exact = runs.byPlan.get(plan);
120
+ if (exact !== undefined)
121
+ return exact;
122
+ const folded = plan.toLowerCase();
123
+ for (const [held, run] of runs.byPlan) {
124
+ if (held.toLowerCase() === folded)
125
+ return run;
126
+ }
127
+ return runs.unreadable;
128
+ }
129
+ //# sourceMappingURL=plan-open-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-open-run.js","sourceRoot":"","sources":["../../src/application/plan-open-run.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,6 @@
30
30
  * the approval no longer fits.
31
31
  */
32
32
  import { join } from "node:path";
33
- import { normalizeCorrelativeInput } from "../domain/correlative.js";
34
33
  import { formatSpecBaseline, withSpecBaseline } from "../domain/lineage.js";
35
34
  import { baseDigest, sealProposal } from "../domain/proposal.js";
36
35
  import { checkSafeRelativePath } from "../domain/safe-path.js";
@@ -39,6 +38,7 @@ import { applyLocalProposal } from "./local-proposal.js";
39
38
  import { functionalSpecDigest, unclosedSpecFence } from "./parsers/spec-functional.js";
40
39
  import { parseDerivedFromPath, parsePlanBaselineSeal, parseSpecRelation, } from "./parsers/spec-relation.js";
41
40
  import { resolveWorkspaceRoot } from "./paths-service.js";
41
+ import { locatePlanDocument } from "./plan-locator.js";
42
42
  /** What the proposal calls itself: one operation, one vocabulary. */
43
43
  const RESEAL_OPERATION = "reseal.baseline";
44
44
  function fail(code, message, action) {
@@ -252,49 +252,19 @@ function undeclaredHeaderLineage(planPath, relation, specDir) {
252
252
  * `docs/plans-viejos` never passes as `docs/plans`: a re-seal writes a plan's
253
253
  * header, and nothing else in the tree is a plan.
254
254
  */
255
+ /** The plan this re-seal was pointed at, with the codes a re-seal owns. */
255
256
  async function locatePlan(fs, root, planDir, target) {
256
- const raw = target.trim();
257
- if (raw.includes("/") || raw.endsWith(".md")) {
258
- const safe = checkSafeRelativePath(raw);
259
- if (!safe.ok) {
260
- return fail("RESEAL_TARGET_INVALID", `'${target}' no es una ruta del workspace: ${safe.why}`, `pasá la ruta del plan relativa al workspace ('${planDir}/NNN-plan-<slug>.md') o su correlativo`);
261
- }
262
- const expected = planDir.split("/");
263
- const inside = safe.segments.length > expected.length &&
264
- expected.every((segment, index) => safe.segments[index] === segment);
265
- if (!inside) {
266
- return fail("RESEAL_TARGET_INVALID", `'${safe.path}' no está bajo '${planDir}/': el re-sello escribe la cabecera de un plan y nada más`, `pasá la ruta de un plan bajo '${planDir}/' o su correlativo`);
267
- }
268
- return { path: safe.path };
269
- }
270
- const number = normalizeCorrelativeInput(raw);
271
- if (number === null) {
272
- return fail("RESEAL_TARGET_INVALID", `'${target}' no es ni una ruta ni un correlativo`, `pasá la ruta del plan ('${planDir}/NNN-plan-<slug>.md') o su correlativo ('035')`);
273
- }
274
- const matches = await plansNumbered(fs, join(root, planDir), number);
275
- const [first] = matches;
276
- if (first === undefined) {
277
- return fail("RESEAL_PLAN_ABSENT", `no hay ningún plan '${number}' en '${planDir}/'`, `verificá el correlativo con 'aw status' o pasá la ruta exacta del plan`);
278
- }
279
- if (matches.length > 1) {
280
- return fail("RESEAL_TARGET_AMBIGUOUS", `'${number}' nombra ${matches.length} documentos en '${planDir}/': ${matches.join(", ")}`, "pasá la ruta exacta del plan que querés re-sellar");
281
- }
282
- return { path: `${planDir}/${first}` };
283
- }
284
- /** File names of `planDir` that carry this correlative, in directory order. */
285
- async function plansNumbered(fs, absoluteDir, number) {
286
- let entries;
287
- try {
288
- entries = await fs.list(absoluteDir);
289
- }
290
- catch {
291
- // A folder that is not there holds no plan: the caller reports the absence
292
- // of the document, which is what a person can act on.
293
- return [];
294
- }
295
- const named = new RegExp(`^${number}-.*\\.md$`);
296
- return entries
297
- .filter((entry) => entry.type === "file" && named.test(entry.name))
298
- .map((entry) => entry.name);
257
+ const located = await locatePlanDocument(fs, root, planDir, target, {
258
+ outside: "el re-sello escribe la cabecera de un plan y nada más",
259
+ ambiguous: "pasá la ruta exacta del plan que querés re-sellar",
260
+ });
261
+ if (located.ok)
262
+ return { path: located.path };
263
+ const code = located.reason === "absent"
264
+ ? "RESEAL_PLAN_ABSENT"
265
+ : located.reason === "ambiguous"
266
+ ? "RESEAL_TARGET_AMBIGUOUS"
267
+ : "RESEAL_TARGET_INVALID";
268
+ return fail(code, located.message, located.action);
299
269
  }
300
270
  //# sourceMappingURL=reseal-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reseal-service.js","sourceRoot":"","sources":["../../src/application/reseal-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reseal-service.js","sourceRoot":"","sources":["../../src/application/reseal-service.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { coreDocumentLocations } from "../domain/docs-canon.js";
2
2
  import { projectRun } from "./flow/run-projection.js";
3
3
  import { buildSessionNarrative } from "./session-narrative.js";
4
4
  import { resolveSessionTarget, sessionReadRequest } from "./session-resolver.js";
5
- import { buildWorklineIndex, planPresentation, specDetail, unresolvedDesignRefs, } from "./workline-index-service.js";
5
+ import { buildWorklineIndex, planIsPending, planPresentation, specDetail, unresolvedDesignRefs, } from "./workline-index-service.js";
6
6
  export async function runResume(fs, env, paths, input = {}) {
7
7
  const index = await buildWorklineIndex(fs, env, paths, {
8
8
  ...(input.now !== undefined ? { now: input.now } : {}),
@@ -32,7 +32,10 @@ export async function runResume(fs, env, paths, input = {}) {
32
32
  function resumeTarget(index, target) {
33
33
  const specs = index.specs.filter((s) => s.file === target || s.number === target);
34
34
  const allPlans = index.plans.filter((p) => p.file === target || p.number === target);
35
- const plans = allPlans.filter((plan) => plan.plan_state !== "done");
35
+ // La misma regla de pertenencia que usa el pipeline, y por eso importada: un
36
+ // plan cerrado con traspaso vigente es trabajo pendiente en las dos
37
+ // superficies o en ninguna, nunca en una sola.
38
+ const plans = allPlans.filter(planIsPending);
36
39
  const matches = [
37
40
  ...specs.map((s) => specProposal(s, index)),
38
41
  ...plans.map((plan) => planProposal(plan, index)),
@@ -154,7 +157,10 @@ function specProposal(spec, index) {
154
157
  function planProposal(plan, index) {
155
158
  const presentation = planPresentation(plan, index.designs);
156
159
  return {
157
- kind: "plan-open",
160
+ // Del mismo lugar que sale el titular: un plan cerrado con traspaso vigente
161
+ // se nombra como lo que es en las dos superficies, o `resume <plan>` diría
162
+ // «plan abierto» sobre uno cerrado y el tablero diría otra cosa.
163
+ kind: presentation.kind,
158
164
  file: plan.file,
159
165
  number: plan.number,
160
166
  ...told(presentation.detail),
@@ -1 +1 @@
1
- {"version":3,"file":"resume-service.js","sourceRoot":"","sources":["../../src/application/resume-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume-service.js","sourceRoot":"","sources":["../../src/application/resume-service.ts"],"names":[],"mappings":"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"}