@tacuchi/agent-workflow-cli 25.1.2 → 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 (133) hide show
  1. package/README.md +3 -1
  2. package/dist/adapters/node-process.js +35 -0
  3. package/dist/adapters/node-process.js.map +1 -1
  4. package/dist/application/amend-service.js +393 -0
  5. package/dist/application/amend-service.js.map +1 -0
  6. package/dist/application/decision-note-service.js +20 -3
  7. package/dist/application/decision-note-service.js.map +1 -1
  8. package/dist/application/doctor/actions.js +158 -0
  9. package/dist/application/doctor/actions.js.map +1 -0
  10. package/dist/application/doctor/apply.js +399 -0
  11. package/dist/application/doctor/apply.js.map +1 -0
  12. package/dist/application/doctor/auth-dsn.js +143 -0
  13. package/dist/application/doctor/auth-dsn.js.map +1 -0
  14. package/dist/application/doctor/auth-flow.js +28 -0
  15. package/dist/application/doctor/auth-flow.js.map +1 -0
  16. package/dist/application/doctor/auth-registry.js +12 -0
  17. package/dist/application/doctor/auth-registry.js.map +1 -0
  18. package/dist/application/doctor/hosts.js +41 -0
  19. package/dist/application/doctor/hosts.js.map +1 -0
  20. package/dist/application/doctor/native-host-state.js +211 -0
  21. package/dist/application/doctor/native-host-state.js.map +1 -0
  22. package/dist/application/doctor/prepare.js +262 -0
  23. package/dist/application/doctor/prepare.js.map +1 -0
  24. package/dist/application/doctor/provider-installation.js +124 -0
  25. package/dist/application/doctor/provider-installation.js.map +1 -0
  26. package/dist/application/doctor/provider-mcps.js +650 -0
  27. package/dist/application/doctor/provider-mcps.js.map +1 -0
  28. package/dist/application/doctor/provider-plugins-hooks.js +112 -0
  29. package/dist/application/doctor/provider-plugins-hooks.js.map +1 -0
  30. package/dist/application/doctor/provider-skills.js +212 -0
  31. package/dist/application/doctor/provider-skills.js.map +1 -0
  32. package/dist/application/doctor/provider-tools-auth.js +201 -0
  33. package/dist/application/doctor/provider-tools-auth.js.map +1 -0
  34. package/dist/application/doctor/provider-visibility.js +149 -0
  35. package/dist/application/doctor/provider-visibility.js.map +1 -0
  36. package/dist/application/doctor/repair-runner.js +169 -0
  37. package/dist/application/doctor/repair-runner.js.map +1 -0
  38. package/dist/application/doctor/report.js +155 -0
  39. package/dist/application/doctor/report.js.map +1 -0
  40. package/dist/application/doctor/types.js +5 -0
  41. package/dist/application/doctor/types.js.map +1 -0
  42. package/dist/application/flow/advance.js +152 -13
  43. package/dist/application/flow/advance.js.map +1 -1
  44. package/dist/application/flow/flow-service.js +18 -7
  45. package/dist/application/flow/flow-service.js.map +1 -1
  46. package/dist/application/flow/internal-actions.js +167 -7
  47. package/dist/application/flow/internal-actions.js.map +1 -1
  48. package/dist/application/flow/run-projection.js +6 -1
  49. package/dist/application/flow/run-projection.js.map +1 -1
  50. package/dist/application/flow/submit.js +330 -7
  51. package/dist/application/flow/submit.js.map +1 -1
  52. package/dist/application/mcp-doctor-service.js +1 -1
  53. package/dist/application/mcp-doctor-service.js.map +1 -1
  54. package/dist/application/mcp-host-reader.js +134 -26
  55. package/dist/application/mcp-host-reader.js.map +1 -1
  56. package/dist/application/mcp-host-receipt-service.js +9 -7
  57. package/dist/application/mcp-host-receipt-service.js.map +1 -1
  58. package/dist/application/plan-current-point.js +54 -0
  59. package/dist/application/plan-current-point.js.map +1 -0
  60. package/dist/application/plan-exec-decision-service.js +143 -4
  61. package/dist/application/plan-exec-decision-service.js.map +1 -1
  62. package/dist/application/plan-locator.js +78 -0
  63. package/dist/application/plan-locator.js.map +1 -0
  64. package/dist/application/plan-open-run.js +129 -0
  65. package/dist/application/plan-open-run.js.map +1 -0
  66. package/dist/application/reseal-service.js +14 -44
  67. package/dist/application/reseal-service.js.map +1 -1
  68. package/dist/application/resume-service.js +9 -3
  69. package/dist/application/resume-service.js.map +1 -1
  70. package/dist/application/self/install-skill.js +10 -2
  71. package/dist/application/self/install-skill.js.map +1 -1
  72. package/dist/application/self/mcp-config.js +1 -1
  73. package/dist/application/self/mcp-config.js.map +1 -1
  74. package/dist/application/session-narrative.js +15 -0
  75. package/dist/application/session-narrative.js.map +1 -1
  76. package/dist/application/settle-service.js +442 -0
  77. package/dist/application/settle-service.js.map +1 -0
  78. package/dist/application/source-boundary-policy.js +87 -6
  79. package/dist/application/source-boundary-policy.js.map +1 -1
  80. package/dist/application/workline-index-service.js +165 -62
  81. package/dist/application/workline-index-service.js.map +1 -1
  82. package/dist/cli/commands/amend.js +122 -0
  83. package/dist/cli/commands/amend.js.map +1 -0
  84. package/dist/cli/commands/doctor.js +300 -0
  85. package/dist/cli/commands/doctor.js.map +1 -0
  86. package/dist/cli/commands/index.js +6 -0
  87. package/dist/cli/commands/index.js.map +1 -1
  88. package/dist/cli/commands/settle.js +197 -0
  89. package/dist/cli/commands/settle.js.map +1 -0
  90. package/dist/cli/commands/status.js +2 -0
  91. package/dist/cli/commands/status.js.map +1 -1
  92. package/dist/cli/dispatch-plan.js +47 -0
  93. package/dist/cli/dispatch-plan.js.map +1 -0
  94. package/dist/cli/help-groups.js +15 -0
  95. package/dist/cli/help-groups.js.map +1 -1
  96. package/dist/cli/main.js +54 -10
  97. package/dist/cli/main.js.map +1 -1
  98. package/dist/cli/parser.js +26 -0
  99. package/dist/cli/parser.js.map +1 -1
  100. package/dist/domain/decision-note.js +166 -3
  101. package/dist/domain/decision-note.js.map +1 -1
  102. package/dist/domain/decision-preview.js.map +1 -1
  103. package/dist/domain/doctor/auth.js +65 -0
  104. package/dist/domain/doctor/auth.js.map +1 -0
  105. package/dist/domain/doctor/model.js +82 -0
  106. package/dist/domain/doctor/model.js.map +1 -0
  107. package/dist/domain/doctor/operations.js +114 -0
  108. package/dist/domain/doctor/operations.js.map +1 -0
  109. package/dist/domain/effective-contract.js +4 -3
  110. package/dist/domain/effective-contract.js.map +1 -1
  111. package/dist/domain/flow/answer.js +10 -0
  112. package/dist/domain/flow/answer.js.map +1 -1
  113. package/dist/domain/flow/authority.js +124 -0
  114. package/dist/domain/flow/authority.js.map +1 -1
  115. package/dist/domain/flow/directive.js +8 -1
  116. package/dist/domain/flow/directive.js.map +1 -1
  117. package/dist/domain/flow/run-state.js +276 -34
  118. package/dist/domain/flow/run-state.js.map +1 -1
  119. package/dist/domain/obligation-correspondence.js +95 -0
  120. package/dist/domain/obligation-correspondence.js.map +1 -0
  121. package/dist/domain/reconciliation.js +142 -25
  122. package/dist/domain/reconciliation.js.map +1 -1
  123. package/dist/domain/redaction.js +40 -0
  124. package/dist/domain/redaction.js.map +1 -1
  125. package/dist/domain/settlement.js +129 -0
  126. package/dist/domain/settlement.js.map +1 -0
  127. package/package.json +1 -1
  128. package/skills/w/SKILL.md +2 -1
  129. package/skills/w/commands/README.md +2 -1
  130. package/skills/w/commands/doctor.md +31 -0
  131. package/skills/w/commands/resume.md +2 -2
  132. package/skills/w/context/MANIFEST.json +4 -0
  133. package/skills/w/loops/plan-exec-loop/LOOP.md +31 -0
package/README.md CHANGED
@@ -20,7 +20,7 @@ Workline has three layers plus a permanent `docs/` zone:
20
20
  - **QUICK** — `/w:quick` — lightweight shortcut; escalates live to SPEC when the goal outgrows a quick.
21
21
  - **EXPORTS** — `/w:export-scripts` · `export-manuals` · `export-diagrams` · `export-reports` (the only path that promotes artifacts to `docs/`).
22
22
  - **Workspace** — every invoked directory is usable immediately. `/w:workspace-init` only materializes the runtime early, or configures sources when they are supplied.
23
- - **Transversal** — `/w:status` · `/w:resume` (read-only: composes `/w:status` and proposes how to continue, routed to the target command) · `/w:fix-git` · `/w:generate-launch` · `/w:persist` (persists in-conversation work into `docs/` — classify → `docs/research` · spec draft · plan adoption; the host→`docs/` counterpart of `export-*`).
23
+ - **Transversal** — `/w:status` · `/w:doctor` (read-only diagnosis across every detected host, with the verdict in the exit code; repairs only what Workline owns, over a batch approved by digest) · `/w:resume` (read-only: composes `/w:status` and proposes how to continue, routed to the target command) · `/w:fix-git` · `/w:generate-launch` · `/w:persist` (persists in-conversation work into `docs/` — classify → `docs/research` · spec draft · plan adoption; the host→`docs/` counterpart of `export-*`).
24
24
  - **Layer 2 · Loops** — the AI runs them whole: `spec-refine-loop` · `plan-new-loop` · `plan-refine-loop` · `plan-exec-loop` · `quick-loop` — all heirs of the shared engine `skills/w/loops/CHASSIS.md` (+ `CODE-POLICIES.md` for the code-editing loops). Each loop is a **persistent goal** that runs until its success criteria are green (verification-first); gap-driven, with **structured-choice** lifecycle control (compact/close — the host's own question surface where one is reachable, **labeled markdown** where none is; the binding per host is stamped into what gets installed) and resumable `CHECKPOINT`.
25
25
  - **Layer 3 · Sessions + artifacts** — internal, ephemeral process state under `.workflow/sessions/` (`SESSION` · `CHECKPOINT` · `BACKLOG` · `SCRIPTS.sql` · `ANALYSIS-FILE` · `CONCLUSIONS` · `DECISION` · …). Sessions are slug-named folders, created by loops, never by the user.
26
26
 
@@ -185,6 +185,8 @@ Workspace artifacts live under `.<namespace>/`. Resolution order (first match wi
185
185
  - `git-flow <sync|to-dev|to-qa|to-prod> [--source|--all] [--target] [--dry-run]` — run the per-source branch flows (sync working ← base, promote to dev/QA/prod) with conflict-pause; `--all` processes every source and reports each one. Also surfaced as Project-tab actions.
186
186
  - `release-data` — corpus reader backing the `export-*` skills.
187
187
  - `self install-skill` / `self doctor` / `self update` / `mcp` — CLI maintenance.
188
+ - `amend <apply|revert|list>` — correct the WORDING of an already closed spec or plan in one act, under the workspace lock and with the document's own digest as the compare-and-swap base; it demands an explicit declaration that no scope, criteria or rules move, records the exact pre-image in an append-only ledger, and refuses structurally whatever touches the contract (naming the refinement instead). CLI-only: there is no `/w:amend`.
189
+ - `settle <list|prepare|apply>` — settle or acknowledge the live obligations a decision note left on a plan whose execution run is already closed. `list` shows each one with its note, position, class, whether that class was declared and the plan's CURRENT resume point; `prepare` derives the same settlement note the closure derives, writes nothing and returns the digest that authorizes it; `apply` re-derives from the live workspace, demands that digest and publishes under the lock. It refuses while an execution run holds the plan, naming that run — its closure settles its own obligations. CLI-only: there is no `/w:settle`.
188
190
 
189
191
  Run `agent-workflow --help` (or `aw --help`) for the full list, or `agent-workflow <command> --help` for per-command flags.
190
192
 
@@ -395,5 +395,40 @@ export class NodeProcess {
395
395
  return err.code === "EPERM";
396
396
  }
397
397
  }
398
+ /**
399
+ * Both ends, because a child that reads a password needs stdin AND stdout.
400
+ *
401
+ * A pipe on either side is a run whose prompt nobody can see or answer, and a
402
+ * flow that hangs on an invisible prompt is worse than one that refuses.
403
+ */
404
+ hasTty() {
405
+ return process.stdin.isTTY === true && process.stdout.isTTY === true;
406
+ }
407
+ /**
408
+ * `stdio: "inherit"` and nothing else: no pipes, so nothing to capture.
409
+ *
410
+ * A spawn error resolves as a non-zero code rather than rejecting. The caller
411
+ * turns the code into an outcome a person reads, and a missing binary is the
412
+ * same kind of answer as a flow the person cancelled — not an exception that
413
+ * would have to be caught to say the same thing.
414
+ */
415
+ async runInteractive(cmd, args, opts = {}) {
416
+ return new Promise((resolve) => {
417
+ const child = spawn(cmd, args, {
418
+ cwd: opts.cwd,
419
+ env: this.env,
420
+ stdio: "inherit",
421
+ // Never a shell: the argv is already separated, and handing it to one
422
+ // would reintroduce every quoting hazard the separation exists to avoid.
423
+ shell: false,
424
+ });
425
+ child.on("error", () => {
426
+ resolve({ code: 127 });
427
+ });
428
+ child.on("close", (code) => {
429
+ resolve({ code: code ?? 1 });
430
+ });
431
+ });
432
+ }
398
433
  }
399
434
  //# sourceMappingURL=node-process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-process.js","sourceRoot":"","sources":["../../src/adapters/node-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-process.js","sourceRoot":"","sources":["../../src/adapters/node-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,393 @@
1
+ /**
2
+ * `aw amend`: correcting the WORDING of a closed spec or plan, in one act.
3
+ *
4
+ * The lane exists because the alternative was disproportionate. A sentence in a
5
+ * closed document that reads wrong — a typo, an ambiguous phrase, a stale
6
+ * pointer — had exactly one way out: a whole refinement, with its journey, its
7
+ * preview and its approval, to change a line nobody disagrees about. That is the
8
+ * ceremony this closes, and it closes it without touching the other half: the
9
+ * refinement stays the human's act, and nothing here starts one.
10
+ *
11
+ * ONE ACT, deliberately. `aw reseal` splits into `prepare` and `apply` because a
12
+ * PERSON stands between the two steps: re-sealing asserts that somebody read a
13
+ * plan against its spec. Here there is no such assertion to stage — the caller
14
+ * declares that the correction changes no scope, no criteria and no rules, and
15
+ * that declaration is what gets recorded. What protects the write is not a second
16
+ * step but the workspace lock plus the compare-and-swap on the document's own
17
+ * digest, which is the same protection `reseal apply` ends up with.
18
+ *
19
+ * And the declaration is not what stops a change to the contract. That is
20
+ * checked, with what the checkout already knows how to compute:
21
+ *
22
+ * - a spec's FUNCTIONAL digest — the editorial payload is exactly what it
23
+ * ignores, so a wording fix leaves it still and a moved criterion does not;
24
+ * - a plan's structure — its header blockquote, its phase/task graph, its
25
+ * closing clauses (read with the gate's own extractor) and its declared
26
+ * execution batches.
27
+ *
28
+ * Anything that moves one of those is refused and sent to the refinement that
29
+ * owns it. What the declaration adds is the part no rule can see: WHY the caller
30
+ * believes the correction is editorial.
31
+ */
32
+ import { join } from "node:path";
33
+ import { normalizeCorrelativeInput } from "../domain/correlative.js";
34
+ import { coreDocumentKindForPath } from "../domain/docs-canon.js";
35
+ import { baseDigest, sealProposal } from "../domain/proposal.js";
36
+ import { checkSafeRelativePath } from "../domain/safe-path.js";
37
+ import { resolveCoreDocsCanon } from "./docs-canon-service.js";
38
+ import { applyLocalProposal } from "./local-proposal.js";
39
+ import { scanMarkdown } from "./markdown.js";
40
+ import { parsePhases } from "./parsers/phases.js";
41
+ import { parsePlanStatus } from "./parsers/plan-status.js";
42
+ import { functionalSpecDigest } from "./parsers/spec-functional.js";
43
+ import { parseTasks } from "./parsers/tasks.js";
44
+ import { resolveWorkspaceRoot } from "./paths-service.js";
45
+ import { closingClausesOf, parsePlanSourceBoundary } from "./source-boundary-policy.js";
46
+ /** Lives next to `claims.jsonl`: workspace state, never workspace corpus. */
47
+ const LEDGER_FILE = "amendments.jsonl";
48
+ const LEDGER_VERSION = 1;
49
+ const AMEND_OPERATION = "amend.wording";
50
+ function fail(code, message, action) {
51
+ return { status: "failed", failure: { code, message, action } };
52
+ }
53
+ /** Correct the wording of a closed document, in one act. */
54
+ export async function amendDocument(fs, env, paths, input) {
55
+ if (input.declaration.trim().length === 0) {
56
+ return fail("AMEND_DECLARATION_MISSING", "una corrección directa se registra con su declaración, y no llegó ninguna", "declará con --declaracion por qué la corrección no cambia alcance, criterios ni reglas; si sí los cambia, la vía es /w:spec-refine o /w:plan-refine");
57
+ }
58
+ const resolved = await resolveTarget(fs, env, paths, input.target);
59
+ if ("failure" in resolved)
60
+ return { status: "failed", failure: resolved.failure };
61
+ const { document, absolute, text, kind } = resolved;
62
+ const closed = closureOf(kind, text);
63
+ if (closed !== null) {
64
+ return fail("AMEND_TARGET_OPEN", `'${document}' ${closed}: la corrección directa es para documentos ya cerrados`, "mientras el documento está abierto lo escribe el recorrido que lo tiene: corregí ahí, o cerralo antes de corregirlo por esta vía");
65
+ }
66
+ const located = locate(text, input.from, input.to);
67
+ if ("failure" in located)
68
+ return { status: "failed", failure: located.failure };
69
+ const guard = contractGuard(kind, text, located.after);
70
+ if (guard !== null) {
71
+ return fail("AMEND_CONTRACT_TOUCHED", `la corrección mueve ${guard} de '${document}': eso no es redacción`, kind === "spec"
72
+ ? "lo que cambia el contenido funcional de una spec se refina: /w:spec-refine"
73
+ : "lo que cambia la estructura de un plan se refina: /w:plan-refine");
74
+ }
75
+ const amendment = {
76
+ id: baseDigest(`${document}\n${input.from}\n${input.to}\n${baseDigest(text)}`).slice(0, 16),
77
+ document,
78
+ origin: "direct",
79
+ declaration: input.declaration.trim(),
80
+ from: input.from,
81
+ to: input.to,
82
+ before_digest: baseDigest(text),
83
+ after_digest: baseDigest(located.after),
84
+ };
85
+ const written = await publish(fs, env, paths, {
86
+ document,
87
+ absolute,
88
+ content: located.after,
89
+ base: amendment.before_digest,
90
+ });
91
+ if ("failure" in written)
92
+ return { status: "failed", failure: written.failure };
93
+ await appendAmendmentEvent(fs, paths, { event: "amended", amendment });
94
+ return { status: "applied", amendment, written: written.written };
95
+ }
96
+ /** Undo one recorded correction, re-applying its exact pre-image. */
97
+ export async function revertAmendment(fs, env, paths, id) {
98
+ const events = await readAmendmentEvents(fs, paths);
99
+ const applied = events.filter((event) => event.amendment.id === id);
100
+ const last = applied.at(-1);
101
+ if (last === undefined) {
102
+ return fail("AMEND_RECORD_UNKNOWN", `no hay ninguna corrección registrada con el identificador '${id}'`, "listá las correcciones del documento con 'aw amend list <documento>' y revertí una de las que aparecen");
103
+ }
104
+ if (last.event === "reverted") {
105
+ return fail("AMEND_RECORD_UNKNOWN", `la corrección '${id}' ya fue revertida`, "una reversión es su propio evento: no se revierte dos veces la misma corrección");
106
+ }
107
+ const resolved = await resolveTarget(fs, env, paths, last.amendment.document);
108
+ if ("failure" in resolved)
109
+ return { status: "failed", failure: resolved.failure };
110
+ const { document, absolute, text } = resolved;
111
+ // The inverse replacement, under the same uniqueness rule: the image has to be
112
+ // there exactly once, which is what keeps a revert from guessing which of two
113
+ // identical fragments it was about.
114
+ const located = locate(text, last.amendment.to, last.amendment.from);
115
+ if ("failure" in located)
116
+ return { status: "failed", failure: located.failure };
117
+ const written = await publish(fs, env, paths, {
118
+ document,
119
+ absolute,
120
+ content: located.after,
121
+ base: baseDigest(text),
122
+ });
123
+ if ("failure" in written)
124
+ return { status: "failed", failure: written.failure };
125
+ await appendAmendmentEvent(fs, paths, {
126
+ event: "reverted",
127
+ amendment: last.amendment,
128
+ cause: `reversión de '${id}': el documento vuelve a su preimagen`,
129
+ });
130
+ return { status: "reverted", amendment: last.amendment, written: written.written };
131
+ }
132
+ /** Every correction recorded for one document — or for all of them. */
133
+ export async function amendmentsOf(fs, paths, document) {
134
+ const events = await readAmendmentEvents(fs, paths);
135
+ if (document === undefined)
136
+ return events;
137
+ return events.filter((event) => event.amendment.document === document);
138
+ }
139
+ export function amendmentLedgerPath(paths) {
140
+ return join(paths.cwdRoot(), LEDGER_FILE);
141
+ }
142
+ async function appendAmendmentEvent(fs, paths, event) {
143
+ const record = {
144
+ version: LEDGER_VERSION,
145
+ at: event.at ?? new Date().toISOString(),
146
+ event: event.event,
147
+ amendment: event.amendment,
148
+ ...(event.cause === undefined ? {} : { cause: event.cause }),
149
+ };
150
+ await fs.appendText(amendmentLedgerPath(paths), `${JSON.stringify(record)}\n`);
151
+ }
152
+ async function readAmendmentEvents(fs, paths) {
153
+ const path = amendmentLedgerPath(paths);
154
+ if (!(await fs.exists(path)))
155
+ return [];
156
+ const raw = await fs.readText(path);
157
+ const events = [];
158
+ for (const line of raw.split("\n")) {
159
+ const trimmed = line.trim();
160
+ if (trimmed.length === 0)
161
+ continue;
162
+ try {
163
+ const parsed = JSON.parse(trimmed);
164
+ if (typeof parsed?.amendment?.id === "string")
165
+ events.push(parsed);
166
+ }
167
+ catch {
168
+ // An unreadable line is not a reason to refuse the readable ones, and it is
169
+ // not silently a missing record either: it cannot be reverted, because a
170
+ // revert needs the pre-image this line no longer yields.
171
+ }
172
+ }
173
+ return events;
174
+ }
175
+ async function resolveTarget(fs, env, paths, target) {
176
+ const root = await resolveWorkspaceRoot(fs, env, paths);
177
+ const canon = await resolveCoreDocsCanon(fs, paths);
178
+ if (!canon.ok) {
179
+ return {
180
+ failure: {
181
+ code: "AMEND_TARGET_UNKNOWN",
182
+ message: canon.error,
183
+ action: "corregí el canon documental del workspace y volvé a intentar",
184
+ },
185
+ };
186
+ }
187
+ const relative = await resolveRelative(fs, root, canon.canon, target);
188
+ if (relative === null || !checkSafeRelativePath(relative).ok) {
189
+ return {
190
+ failure: {
191
+ code: "AMEND_TARGET_UNKNOWN",
192
+ message: `no se pudo resolver '${target}' a una spec o un plan del workspace`,
193
+ action: `pasá la ruta relativa del documento (${canon.canon.spec}/… o ${canon.canon.plan}/…) o su correlativo`,
194
+ },
195
+ };
196
+ }
197
+ const kind = coreDocumentKindForPath(relative, canon.canon);
198
+ if (kind !== "spec" && kind !== "plan") {
199
+ return {
200
+ failure: {
201
+ code: "AMEND_TARGET_UNKNOWN",
202
+ message: `'${relative}' no es una spec ni un plan: esta vía corrige la redacción de esos dos`,
203
+ action: `pasá un documento bajo ${canon.canon.spec}/ o ${canon.canon.plan}/`,
204
+ },
205
+ };
206
+ }
207
+ const absolute = join(root, relative);
208
+ if (!(await fs.exists(absolute))) {
209
+ return {
210
+ failure: {
211
+ code: "AMEND_TARGET_UNKNOWN",
212
+ message: `'${relative}' no existe en el workspace`,
213
+ action: "corregí la ruta: no se corrige un documento que nadie puede mostrar",
214
+ },
215
+ };
216
+ }
217
+ return { document: relative, absolute, text: await fs.readText(absolute), kind };
218
+ }
219
+ /** A relative path as given, or the document a correlative names inside its folder. */
220
+ async function resolveRelative(fs, root, canon, target) {
221
+ const given = target.trim();
222
+ if (given.length === 0)
223
+ return null;
224
+ if (given.includes("/"))
225
+ return given;
226
+ const correlative = normalizeCorrelativeInput(given);
227
+ if (correlative === null)
228
+ return null;
229
+ for (const dir of [canon.plan, canon.spec]) {
230
+ const absolute = join(root, dir);
231
+ if (!(await fs.exists(absolute)))
232
+ continue;
233
+ const entries = await fs.list(absolute);
234
+ const found = entries.find((entry) => entry.name.startsWith(`${correlative}-`));
235
+ if (found !== undefined)
236
+ return `${dir}/${found.name}`;
237
+ }
238
+ return null;
239
+ }
240
+ /** Why this document is not closed, or `null` when it is. */
241
+ function closureOf(kind, text) {
242
+ if (kind === "plan") {
243
+ const status = parsePlanStatus(text);
244
+ return status.declared === "done" ? null : `declara '> Estado: ${status.declared}'`;
245
+ }
246
+ const status = specStatus(text);
247
+ return status === "ready-for-plan" ? null : `declara 'status: ${status ?? "ausente"}'`;
248
+ }
249
+ /** The spec's frontmatter `status`, or `null` when it declares none. */
250
+ function specStatus(text) {
251
+ const { lines } = scanMarkdown(text);
252
+ if ((lines[0] ?? "").trim() !== "---")
253
+ return null;
254
+ for (let index = 1; index < lines.length; index += 1) {
255
+ const line = (lines[index] ?? "").trim();
256
+ if (line === "---")
257
+ return null;
258
+ const match = /^status\s*:\s*(.+)$/i.exec(line);
259
+ if (match?.[1] !== undefined)
260
+ return match[1].trim();
261
+ }
262
+ return null;
263
+ }
264
+ /** The replacement, applied exactly once — or why it could not be. */
265
+ function locate(text, from, to) {
266
+ if (from.length === 0) {
267
+ return {
268
+ failure: {
269
+ code: "AMEND_TEXT_ABSENT",
270
+ message: "no se declaró qué texto se corrige",
271
+ action: "pasá en --de el texto exacto que hay que reemplazar",
272
+ },
273
+ };
274
+ }
275
+ if (from === to) {
276
+ return {
277
+ failure: {
278
+ code: "AMEND_TEXT_UNCHANGED",
279
+ message: "el texto a corregir y su reemplazo son idénticos",
280
+ action: "no se escribe una corrección que no corrige nada",
281
+ },
282
+ };
283
+ }
284
+ const occurrences = text.split(from).length - 1;
285
+ if (occurrences === 0) {
286
+ return {
287
+ failure: {
288
+ code: "AMEND_TEXT_ABSENT",
289
+ message: "el texto declarado en --de no está en el documento",
290
+ action: "copiá el fragmento exacto tal como está escrito, con sus acentos y su puntuación",
291
+ },
292
+ };
293
+ }
294
+ if (occurrences > 1) {
295
+ return {
296
+ failure: {
297
+ code: "AMEND_TEXT_AMBIGUOUS",
298
+ message: `el texto declarado aparece ${occurrences} veces: cuál de ellas se corrige no se puede adivinar`,
299
+ action: "extendé el fragmento hasta que sea único en el documento",
300
+ },
301
+ };
302
+ }
303
+ return { after: text.replace(from, to) };
304
+ }
305
+ /** What the correction moved of the contract, or `null` when it moved nothing. */
306
+ function contractGuard(kind, before, after) {
307
+ if (kind === "spec") {
308
+ return functionalSpecDigest(before) === functionalSpecDigest(after)
309
+ ? null
310
+ : "el contenido funcional";
311
+ }
312
+ const moved = [];
313
+ if (headerOf(before) !== headerOf(after))
314
+ moved.push("las líneas de su cabecera");
315
+ if (graphOf(before) !== graphOf(after))
316
+ moved.push("el grafo de fases y tareas");
317
+ if (clausesOf(before) !== clausesOf(after))
318
+ moved.push("sus cláusulas de cierre");
319
+ if (batchesOf(before) !== batchesOf(after))
320
+ moved.push("sus lotes de ejecución");
321
+ return moved.length === 0 ? null : moved.join(", ");
322
+ }
323
+ /** The blockquote under the title: the plan's own declarations live there. */
324
+ function headerOf(text) {
325
+ const { lines, headings } = scanMarkdown(text);
326
+ const [title, ...rest] = headings;
327
+ const end = (title?.level === 1 ? rest[0]?.line : title?.line) ?? lines.length;
328
+ return lines
329
+ .slice(0, end)
330
+ .filter((line) => line.trim().startsWith(">"))
331
+ .map((line) => line.trim())
332
+ .join("\n");
333
+ }
334
+ /** Phases and tasks as structure: ids, states, sources and checkbox status. */
335
+ function graphOf(text) {
336
+ return JSON.stringify({
337
+ phases: parsePhases(text).items.map((phase) => ({ n: phase.n, state: phase.state })),
338
+ tasks: parseTasks(text).items.map((task) => ({
339
+ n: task.n,
340
+ phase: task.phase,
341
+ status: task.status,
342
+ sources: task.sources,
343
+ })),
344
+ sources: parsePlanSourceBoundary(text).phases.map((phase) => ({
345
+ n: phase.n,
346
+ sources: phase.sources,
347
+ tasks: phase.tasks.map((task) => ({ n: task.n, sources: task.sources })),
348
+ })),
349
+ });
350
+ }
351
+ /** The closing clauses, read with the gate's own extractor. */
352
+ function clausesOf(text) {
353
+ return JSON.stringify(closingClausesOf(text));
354
+ }
355
+ /** The declared `## Execution batches` rows, as written. */
356
+ function batchesOf(text) {
357
+ const { lines, headings } = scanMarkdown(text);
358
+ const heading = headings.find((entry) => entry.level === 2 && /execution batches|lotes de ejecuci[oó]n/i.test(entry.title));
359
+ if (heading === undefined)
360
+ return "";
361
+ const next = headings.find((entry) => entry.level <= 2 && entry.line > heading.line);
362
+ return lines
363
+ .slice(heading.line + 1, next?.line ?? lines.length)
364
+ .map((line) => line.trim())
365
+ .filter((line) => line.length > 0)
366
+ .join("\n");
367
+ }
368
+ /** One document, one write: the lock, the compare-and-swap and the all-or-nothing. */
369
+ async function publish(fs, env, paths, input) {
370
+ const root = await resolveWorkspaceRoot(fs, env, paths);
371
+ const proposal = sealProposal({
372
+ operation: AMEND_OPERATION,
373
+ artifacts: [{ path: input.document, content: input.content, overwrite: true }],
374
+ bases: [{ path: input.document, digest: input.base }],
375
+ effects: ["mutate_overwrite"],
376
+ requiresApproval: [],
377
+ });
378
+ const applied = await applyLocalProposal(fs, paths, {
379
+ root,
380
+ proposal,
381
+ approval: { digest: proposal.digest, granted: ["mutate_overwrite"] },
382
+ selfAuthorized: [],
383
+ });
384
+ if (!applied.ok) {
385
+ // Verbatim, like the re-seal's: re-coding `PROPOSAL_BASE_STALE` as something
386
+ // of this lane's own would hide WHICH guarantee stopped the write — and a
387
+ // document that moved between the read and the write is exactly the case the
388
+ // compare-and-swap exists to report by name.
389
+ return { failure: applied.failure };
390
+ }
391
+ return { written: [...applied.result.written] };
392
+ }
393
+ //# sourceMappingURL=amend-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amend-service.js","sourceRoot":"","sources":["../../src/application/amend-service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { join } from "node:path";
2
- import { checkAppendOnly, computeNoteDigest, orderNotes, validateDecisionNote, } from "../domain/decision-note.js";
2
+ import { checkAppendOnly, checkObligationsDeclared, computeNoteDigest, noteToWire, orderNotes, validateDecisionNote, } from "../domain/decision-note.js";
3
3
  /**
4
4
  * Where a lineage's decision notes live, and how one is added.
5
5
  *
@@ -108,6 +108,15 @@ export function nextNoteId(index) {
108
108
  }
109
109
  /** Seal a note draft: its id and digest come from the chain, never from the caller. */
110
110
  export function sealNote(index, draft) {
111
+ // The draft comes from an author, so its obligations may still be in either
112
+ // form. Normalizing HERE — before the id and the seal — is what makes the
113
+ // digest a function of the bytes that will be written, whichever form they
114
+ // arrived in; `appendNote` is where a missing class is refused, not here.
115
+ // The draft is sealed AS IT CAME. Normalizing here would either invent an
116
+ // empty list for a draft that forgot to say anything — making "none" and "we
117
+ // did not say" the same claim — or move the seal of one that arrived in the
118
+ // legacy form. The digest is a function of the wire form either way, and
119
+ // `appendNote` is where an unreadable or unclassed draft is refused.
111
120
  const withId = { ...draft, id: nextNoteId(index) };
112
121
  return { ...withId, digest: computeNoteDigest(withId) };
113
122
  }
@@ -122,14 +131,22 @@ export function sealNote(index, draft) {
122
131
  export function appendNote(index, note) {
123
132
  const read = validateDecisionNote(note);
124
133
  const chain = checkAppendOnly(index.notes, note);
125
- const failures = [...read.failures, ...chain];
134
+ // Over the note the reader RETURNED: asking whether an obligation declared its
135
+ // class only means something once the record is known to hold obligations.
136
+ const classed = read.ok && read.value !== null ? checkObligationsDeclared(read.value) : [];
137
+ const failures = [...read.failures, ...chain, ...classed];
126
138
  if (failures.length > 0)
127
139
  return { ok: false, failures };
128
140
  return { ok: true, index: { ...index, notes: orderNotes([...index.notes, note]) } };
129
141
  }
130
142
  /** The artifact a proposal publishes for this index — stable, pretty, newline-terminated. */
131
143
  export function noteIndexArtifact(path, index) {
132
- return { path, content: `${JSON.stringify(index, null, 2)}\n` };
144
+ // Each note goes back out in the form it came in. Appending one note must not
145
+ // rewrite the bytes of the ones already published — that is the append-only
146
+ // rule at the level of the file, and a normalized re-serialization would break
147
+ // every legacy seal in the chain on the next append.
148
+ const wire = { ...index, notes: index.notes.map(noteToWire) };
149
+ return { path, content: `${JSON.stringify(wire, null, 2)}\n` };
133
150
  }
134
151
  /**
135
152
  * Refuse a publication that would rewrite the very baseline it decides on.
@@ -1 +1 @@
1
- {"version":3,"file":"decision-note-service.js","sourceRoot":"","sources":["../../src/application/decision-note-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-note-service.js","sourceRoot":"","sources":["../../src/application/decision-note-service.ts"],"names":[],"mappings":"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"}