@tacuchi/agent-workflow-cli 21.10.1 → 21.12.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 (56) hide show
  1. package/dist/application/dev-bootstrap-dsn-service.js +45 -35
  2. package/dist/application/dev-bootstrap-dsn-service.js.map +1 -1
  3. package/dist/application/docs-canon-service.js +68 -0
  4. package/dist/application/docs-canon-service.js.map +1 -0
  5. package/dist/application/dsn-reader-service.js +53 -2
  6. package/dist/application/dsn-reader-service.js.map +1 -1
  7. package/dist/application/flow/advance.js +132 -18
  8. package/dist/application/flow/advance.js.map +1 -1
  9. package/dist/application/flow/flow-service.js +100 -2
  10. package/dist/application/flow/flow-service.js.map +1 -1
  11. package/dist/application/flow/internal-drive.js +16 -13
  12. package/dist/application/flow/internal-drive.js.map +1 -1
  13. package/dist/application/flow/run-state-service.js +236 -5
  14. package/dist/application/flow/run-state-service.js.map +1 -1
  15. package/dist/application/flow/submit.js +90 -35
  16. package/dist/application/flow/submit.js.map +1 -1
  17. package/dist/application/mcp-dbhub-launcher.js +193 -34
  18. package/dist/application/mcp-dbhub-launcher.js.map +1 -1
  19. package/dist/application/mcp-doctor-service.js +13 -4
  20. package/dist/application/mcp-doctor-service.js.map +1 -1
  21. package/dist/application/mcp-test-connection-service.js +5 -11
  22. package/dist/application/mcp-test-connection-service.js.map +1 -1
  23. package/dist/application/paths-service.js +17 -0
  24. package/dist/application/paths-service.js.map +1 -1
  25. package/dist/application/session-narrative.js +7 -3
  26. package/dist/application/session-narrative.js.map +1 -1
  27. package/dist/application/session-resolver.js +12 -2
  28. package/dist/application/session-resolver.js.map +1 -1
  29. package/dist/application/session-resume-service.js +7 -0
  30. package/dist/application/session-resume-service.js.map +1 -1
  31. package/dist/application/visibility-doctor-service.js +89 -49
  32. package/dist/application/visibility-doctor-service.js.map +1 -1
  33. package/dist/application/workspace-migrate/apply.js +57 -0
  34. package/dist/application/workspace-migrate/apply.js.map +1 -0
  35. package/dist/application/workspace-migrate/markers.js +177 -0
  36. package/dist/application/workspace-migrate/markers.js.map +1 -0
  37. package/dist/application/workspace-migrate/plan.js +171 -0
  38. package/dist/application/workspace-migrate/plan.js.map +1 -0
  39. package/dist/application/workspace-migrate/preview.js +111 -0
  40. package/dist/application/workspace-migrate/preview.js.map +1 -0
  41. package/dist/cli/commands/flow.js +52 -5
  42. package/dist/cli/commands/flow.js.map +1 -1
  43. package/dist/cli/commands/unknown-flags.js +51 -0
  44. package/dist/cli/commands/unknown-flags.js.map +1 -0
  45. package/dist/cli/commands/visibility.js +105 -16
  46. package/dist/cli/commands/visibility.js.map +1 -1
  47. package/dist/cli/commands/workspace-migrate.js +70 -0
  48. package/dist/cli/commands/workspace-migrate.js.map +1 -0
  49. package/dist/domain/capability/effects.js +13 -0
  50. package/dist/domain/capability/effects.js.map +1 -1
  51. package/dist/domain/flow/answer.js +105 -0
  52. package/dist/domain/flow/answer.js.map +1 -1
  53. package/dist/domain/flow/run-state.js +215 -11
  54. package/dist/domain/flow/run-state.js.map +1 -1
  55. package/package.json +1 -1
  56. package/skills/w/loops/CHASSIS.md +5 -7
@@ -1,64 +1,74 @@
1
1
  import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { dirname } from "node:path";
3
3
  export function runBootstrapDsn(paths, input) {
4
- const target = paths.userDsnFile();
5
- const lines = [];
6
- const written = [];
7
- if (input.certDsn) {
8
- lines.push(`DB_CERT_DSN=${input.certDsn}`);
9
- written.push("DB_CERT_DSN");
10
- }
11
- if (input.prodDsn) {
12
- lines.push(`DB_PROD_DSN=${input.prodDsn}`);
13
- written.push("DB_PROD_DSN");
14
- }
15
- if (lines.length === 0) {
4
+ const entries = [];
5
+ if (input.certDsn)
6
+ entries.push({ key: "DB_CERT_DSN", value: input.certDsn });
7
+ if (input.prodDsn)
8
+ entries.push({ key: "DB_PROD_DSN", value: input.prodDsn });
9
+ if (entries.length === 0) {
16
10
  return {
17
11
  error: "Ni DB_CERT_DSN ni DB_PROD_DSN visibles en el entorno actual. Exportalas en ~/.zshenv (macOS/Linux) o System Environment (Windows) y reabrí Claude Code desde una terminal donde 'echo $DB_CERT_DSN' devuelva valor.",
18
12
  exitCode: 2,
19
13
  };
20
14
  }
21
- mkdirSync(dirname(target), { recursive: true });
22
- writeFileSync(target, `${lines.join("\n")}\n`, "utf-8");
23
- try {
24
- chmodSync(target, 0o600);
25
- }
26
- catch {
27
- // ignore chmod failures
28
- }
29
- return { ok: true, path: target, wrote: written };
15
+ const path = writeDsnValues(paths, entries);
16
+ return { ok: true, path, wrote: entries.map((entry) => entry.key) };
30
17
  }
31
18
  export function writeDsnValue(paths, input) {
19
+ const path = writeDsnValues(paths, [input]);
20
+ return { ok: true, path, key: input.key };
21
+ }
22
+ /**
23
+ * Upsert of every entry into dsn.env, preserving the lines this call does not
24
+ * own: the file is shared by every connection the user ever bootstrapped, so a
25
+ * whole-file rewrite would drop the DSNs of the other ones.
26
+ */
27
+ function writeDsnValues(paths, entries) {
32
28
  const target = paths.userDsnFile();
33
- const existing = readDsnLines(target);
34
- const next = upsertDsnLine(existing, input.key, input.value);
29
+ let lines = readDsnLines(target);
30
+ for (const entry of entries) {
31
+ lines = upsertDsnLine(lines, entry.key, entry.value);
32
+ }
35
33
  mkdirSync(dirname(target), { recursive: true });
36
- writeFileSync(target, `${next.join("\n")}\n`, "utf-8");
34
+ writeFileSync(target, `${lines.join("\n")}\n`, "utf-8");
37
35
  try {
38
36
  chmodSync(target, 0o600);
39
37
  }
40
38
  catch {
41
- // ignore chmod failures
39
+ // Best effort: filesystems without POSIX modes (Windows, FAT) must not fail
40
+ // a write that already landed. The DSN is still written.
42
41
  }
43
- return { ok: true, path: target, key: input.key };
42
+ return target;
44
43
  }
45
44
  function readDsnLines(path) {
46
45
  if (!existsSync(path))
47
46
  return [];
48
- return readFileSync(path, "utf-8")
49
- .split(/\r?\n/)
50
- .filter((line) => line.length > 0);
47
+ const lines = readFileSync(path, "utf-8").split(/\r?\n/);
48
+ // Only the empty tail the final newline produces is dropped. Blank lines
49
+ // inside the file are the user's own grouping of a file this tool shares with
50
+ // them, and an upsert has no business collapsing it.
51
+ if (lines[lines.length - 1] === "")
52
+ lines.pop();
53
+ return lines;
51
54
  }
52
55
  function upsertDsnLine(lines, key, value) {
53
56
  const prefix = `${key}=`;
57
+ const next = [];
54
58
  let replaced = false;
55
- const next = lines.map((line) => {
56
- if (line.startsWith(prefix)) {
57
- replaced = true;
58
- return `${key}=${value}`;
59
+ for (const line of lines) {
60
+ // Compare the line trimmed: an indented assignment still assigns, and
61
+ // leaving it behind would keep a stale credential alive in a file the user
62
+ // believes updated. Duplicates of the same key collapse into the first.
63
+ if (!line.trimStart().startsWith(prefix)) {
64
+ next.push(line);
65
+ continue;
59
66
  }
60
- return line;
61
- });
67
+ if (replaced)
68
+ continue;
69
+ replaced = true;
70
+ next.push(`${key}=${value}`);
71
+ }
62
72
  if (!replaced)
63
73
  next.push(`${key}=${value}`);
64
74
  return next;
@@ -1 +1 @@
1
- {"version":3,"file":"dev-bootstrap-dsn-service.js","sourceRoot":"","sources":["../../src/application/dev-bootstrap-dsn-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-bootstrap-dsn-service.js","sourceRoot":"","sources":["../../src/application/dev-bootstrap-dsn-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { parse as parseToml } from "smol-toml";
2
+ import { checkSafeRelativePath } from "../domain/safe-path.js";
3
+ const TABLE = "docs";
4
+ export async function resolveDocsCanon(fs, paths, categories) {
5
+ const canon = {};
6
+ // Workspace last: it overrides the user-global default, same order as skills.
7
+ for (const path of [paths.userSkillsToml(), paths.cwdSkillsToml()]) {
8
+ if (!(await fs.exists(path)))
9
+ continue;
10
+ const level = await readDocsTable(fs, path);
11
+ if (!level.ok)
12
+ return level;
13
+ for (const [category, dir] of Object.entries(level.table)) {
14
+ const checked = checkDestination(path, category, dir, categories);
15
+ if (!checked.ok)
16
+ return checked;
17
+ canon[category] = checked.dir;
18
+ }
19
+ }
20
+ return { ok: true, canon };
21
+ }
22
+ async function readDocsTable(fs, path) {
23
+ let parsed;
24
+ try {
25
+ parsed = parseToml(await fs.readText(path));
26
+ }
27
+ catch (error) {
28
+ return { ok: false, error: `${path} no se puede leer como TOML: ${String(error)}` };
29
+ }
30
+ const table = parsed[TABLE];
31
+ if (table === undefined || table === null)
32
+ return { ok: true, table: {} };
33
+ if (typeof table !== "object" || Array.isArray(table)) {
34
+ return { ok: false, error: `${path}: [${TABLE}] no es una tabla` };
35
+ }
36
+ return { ok: true, table: table };
37
+ }
38
+ function checkDestination(path, category, dir, categories) {
39
+ if (!categories.includes(category)) {
40
+ return {
41
+ ok: false,
42
+ error: `${path}: [${TABLE}] no reconoce '${category}'; las categorías son: ${categories.join(", ")}`,
43
+ };
44
+ }
45
+ if (typeof dir !== "string") {
46
+ return { ok: false, error: `${path}: [${TABLE}].${category} tiene que ser una ruta de texto` };
47
+ }
48
+ // Same guard every write boundary uses, so a canon can move a category inside
49
+ // the workspace and never outside it.
50
+ const safe = checkSafeRelativePath(dir.replace(/\/+$/, ""));
51
+ if (!safe.ok) {
52
+ return { ok: false, error: `${path}: [${TABLE}].${category} = '${dir}' ${safe.why}` };
53
+ }
54
+ // Inside the workspace is not enough: it has to be DOCUMENTAL. A canon
55
+ // pointing at a dot-directory would publish dossiers into the CLI's own
56
+ // runtime — `.workflow/sessions` is the sharp case, because a published unit
57
+ // named `NNN-export-…` is then enumerated as a session and the workspace grows
58
+ // a phantom open line that shows up in `status` and in the next export's
59
+ // corpus. The tool's own state is not a place a document may be published to.
60
+ if (safe.path.split("/")[0]?.startsWith(".") === true) {
61
+ return {
62
+ ok: false,
63
+ error: `${path}: [${TABLE}].${category} = '${dir}' apunta a un directorio oculto; el canon documental publica documentos, no estado interno de la herramienta`,
64
+ };
65
+ }
66
+ return { ok: true, dir: safe.path };
67
+ }
68
+ //# sourceMappingURL=docs-canon-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-canon-service.js","sourceRoot":"","sources":["../../src/application/docs-canon-service.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,58 @@ export function readBootstrapDsn(paths) {
22
22
  return { path, exists: true, values };
23
23
  }
24
24
  export function dsnKeyForInstance(instance) {
25
- const normalized = normalizeMcpInstance(instance);
26
- return `DB_${normalized.toUpperCase().replace(/-/g, "_")}_DSN`;
25
+ return dsnKeyFromSegments(instanceSegments(instance));
26
+ }
27
+ /**
28
+ * The variable names that may hold the DSN of `instance`, most specific first:
29
+ * the canonical key, and the one without its leading segment. An alias usually
30
+ * carries an organisation prefix (`qtc-cert`) that the variable the user really
31
+ * exported does not (`DB_CERT_DSN`).
32
+ *
33
+ * Exactly ONE segment is ever dropped. `qtc-cert-ro` may fall back to
34
+ * DB_CERT_RO_DSN but never to DB_RO_DSN, because collapsing an alias to its last
35
+ * segment makes different organisations share one generic name — `acme-prod` and
36
+ * `qtc-prod` would both reach DB_PROD_DSN, and starting a server against another
37
+ * environment's credential is a worse outcome than refusing to start.
38
+ */
39
+ export function dsnKeyCandidates(instance) {
40
+ const segments = instanceSegments(instance);
41
+ // A single-segment or degenerate alias still yields its canonical key: callers
42
+ // must always have at least one name to probe and to name in errors.
43
+ if (segments.length <= 1)
44
+ return [dsnKeyFromSegments(segments)];
45
+ return [dsnKeyFromSegments(segments), dsnKeyFromSegments(segments.slice(1))];
46
+ }
47
+ function instanceSegments(instance) {
48
+ return normalizeMcpInstance(instance)
49
+ .split("-")
50
+ .filter((segment) => segment.length > 0);
51
+ }
52
+ function dsnKeyFromSegments(segments) {
53
+ return `DB_${segments.join("_").toUpperCase()}_DSN`;
54
+ }
55
+ /**
56
+ * Single resolution path shared by the dbhub launcher and the connection
57
+ * tester. Precedence: the whole candidate list in `env` first, then the whole
58
+ * list in the dsn.env file — an exported variable beats a persisted one, and
59
+ * among exported variables the most specific name wins.
60
+ *
61
+ * Throws whatever `readBootstrapDsn` throws (unreadable dsn.env): each caller
62
+ * decides how that surfaces instead of it being swallowed here.
63
+ */
64
+ export function resolveDsnFromCandidates(candidates, env, paths) {
65
+ for (const variable of candidates) {
66
+ const fromEnv = env[variable];
67
+ if (fromEnv && fromEnv.length > 0)
68
+ return { dsn: fromEnv, variable, source: "env" };
69
+ }
70
+ // Read once, and only after every candidate missed in the environment.
71
+ const values = readBootstrapDsn(paths).values;
72
+ for (const variable of candidates) {
73
+ const fromFile = values[variable];
74
+ if (fromFile && fromFile.length > 0)
75
+ return { dsn: fromFile, variable, source: "dsn.env" };
76
+ }
77
+ return null;
27
78
  }
28
79
  //# sourceMappingURL=dsn-reader-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dsn-reader-service.js","sourceRoot":"","sources":["../../src/application/dsn-reader-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAoB,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAShF,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC;YAAE,SAAS;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAqB;IACrD,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"dsn-reader-service.js","sourceRoot":"","sources":["../../src/application/dsn-reader-service.ts"],"names":[],"mappings":"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"}
@@ -24,13 +24,14 @@
24
24
  * here a transition advances the run's position and nothing else. That is why the
25
25
  * registry — not this file — is where a new transition is added.
26
26
  */
27
+ import { touchesTheWorld } from "../../domain/capability/effects.js";
27
28
  import { DOCS_BOUNDARY, actionOf, alternativesOf, effectsOf, internalActionOf, proposalContractOf, publishApprovalOf, } from "../../domain/flow/authority.js";
28
29
  import { authorizeTransition, effectApprovalDigest, } from "../../domain/flow/authorization.js";
29
30
  import { PAUSE_LABEL, STOP_LABEL, buildFlowDirective, skippedStepOf, stepOf, } from "../../domain/flow/directive.js";
30
31
  import { bindAction, docsBoundaryBreach, skipReason, } from "../../domain/flow/rules.js";
31
- import { MAX_BOUNDARY_ATTEMPTS, applyTransition, attemptsAt, checkAgainstJourney, positionDigest, skipTransition, withBoundary, withPendingAction, } from "../../domain/flow/run-state.js";
32
+ import { MAX_BOUNDARY_ATTEMPTS, applyTransition, attemptsAt, checkAgainstJourney, degradeTransition, positionDigest, skipTransition, withBoundary, withPendingAction, } from "../../domain/flow/run-state.js";
32
33
  import { buildSemanticRequest, semanticDigest, } from "../semantic-operation/protocol.js";
33
- import { sessionNumericCode, sessionSlug } from "../session-resolver.js";
34
+ import { sessionSlug } from "../session-resolver.js";
34
35
  export function advanceFlowRun(input) {
35
36
  const incoherent = checkAgainstJourney(input.state, input.journey);
36
37
  if (incoherent !== null)
@@ -84,15 +85,10 @@ function walk(from, journey) {
84
85
  const decision = journey[index];
85
86
  if (decision === undefined)
86
87
  break;
87
- // A condition that did not fire, or a boundary this run has already tried as
88
- // often as it may. Both pass over the step and both say why — the trace has
89
- // to distinguish "never happened" from "was given up on".
90
- const skipped = skipReason(decision, journey, state.observations) ??
91
- nothingToPublish(state, decision) ??
92
- exhaustionSkip(state, decision);
93
- if (skipped !== null) {
94
- state = skipTransition(state, decision.id);
95
- applied.push(skippedStepOf(decision, skipped));
88
+ const passed = passOver(state, decision, journey);
89
+ if (passed !== null) {
90
+ state = passed.state;
91
+ applied.push(passed.step);
96
92
  continue;
97
93
  }
98
94
  if (decision.authority !== "cli")
@@ -110,6 +106,29 @@ function walk(from, journey) {
110
106
  }
111
107
  return { state, applied };
112
108
  }
109
+ /**
110
+ * How the walk passes over a step it will not apply — or `null` when it must not.
111
+ *
112
+ * A condition that did not fire, and a boundary this run has already tried as
113
+ * often as it may, both leave the step behind and both say why. They are NOT the
114
+ * same fact, and the state records them apart: "the gate never appeared" and
115
+ * "nobody answered it and the retry burned" read identically in a cursor, which
116
+ * is exactly the lie an exhausted boundary used to tell — credited among the
117
+ * applied, filed among the skipped, with no degradation declared anywhere.
118
+ */
119
+ function passOver(state, decision, journey) {
120
+ const conditional = skipReason(decision, journey, state.observations) ?? nothingToPublish(state, decision);
121
+ const degraded = conditional === null ? exhaustionSkip(state, decision) : null;
122
+ const reason = conditional ?? degraded;
123
+ if (reason === null)
124
+ return null;
125
+ return {
126
+ state: degraded === null
127
+ ? skipTransition(state, decision.id)
128
+ : degradeTransition(state, decision.id, degraded),
129
+ step: skippedStepOf(decision, reason),
130
+ };
131
+ }
113
132
  /**
114
133
  * The seal over the exact action emitted.
115
134
  *
@@ -131,7 +150,13 @@ export function actionDigest(action) {
131
150
  function runBinding(state) {
132
151
  return {
133
152
  session: state.session,
134
- code: sessionNumericCode(state.session) ?? state.session,
153
+ // The FOLDER, never the bare number. `--code 047` matches both `047-<slug>`
154
+ // and a legacy `session047-<slug>`, so in a workspace holding both, the
155
+ // invocation this engine seals cannot be satisfied: running it verbatim
156
+ // fails to resolve, and correcting it makes it a different invocation the
157
+ // submit refuses. The folder is the one identity that always resolves to
158
+ // one session, and every `--code` position accepts it.
159
+ code: state.session,
135
160
  // Read off the folder, not off a narration: the run's own session is named
136
161
  // `NNN-<slug>-<flow>`, so the slug the numbering claim needs is already a
137
162
  // fact the engine holds by the time this boundary is emitted.
@@ -208,11 +233,22 @@ function blockedCause(state, stopped, emitted) {
208
233
  message: `'${stopped.id}' agotó sus ${MAX_BOUNDARY_ATTEMPTS} intentos: contestarlo otra vez sería el bucle que la regla evita`,
209
234
  action: degradable
210
235
  ? `${DEGRADE_ACTION}; el próximo 'aw flow advance' lo pasa por alto dejando dicho por qué y sigue con el resto`
211
- : `${DEGRADE_ACTION}, y resolvé este paso fuera de la corrida antes de seguir: saltearlo daría por aprobado un efecto que nadie aprobó, o por hecho algo que nada corrió`,
236
+ : `${DEGRADE_ACTION}, y resolvé este paso fuera de la corrida antes de seguir: saltearlo daría por aprobado un efecto que nadie aprobó, o por hecho algo que nada corrió. Si lo que hay que rehacer es el intento, '${recoverInvocation(state)}' le devuelve los intentos a esta frontera conservando todo lo aplicado`,
212
237
  };
213
238
  }
214
239
  return null;
215
240
  }
241
+ /**
242
+ * The way out of a boundary that cannot be degraded, spelled as a runnable line.
243
+ *
244
+ * The session goes in as the FOLDER, the same identity every other invocation of
245
+ * a directive carries: a bare number matches a legacy folder too, so the one
246
+ * command offered to somebody whose run is stuck must not be one that fails to
247
+ * resolve when they paste it.
248
+ */
249
+ function recoverInvocation(state) {
250
+ return `aw flow recover --session ${state.session}`;
251
+ }
216
252
  /** Where a gap goes when the loop stops re-firing it — the chassis' destination. */
217
253
  const DEGRADE_ACTION = "degradá el gap en vez de reintentarlo: llevalo a '## Open questions' del documento del flow —o al BACKLOG de la sesión si el flow no tiene documento— declarando que ya se intentó";
218
254
  /** Whether this run has already spent every attempt this boundary gets. */
@@ -262,19 +298,81 @@ function nothingToPublish(state, decision) {
262
298
  * is a search, a write or a check credited to nothing. Those stay blocked, and
263
299
  * the block says so. What degrades is what only produces a verdict — a judgment
264
300
  * or a preference — which is exactly the gap the doctrine degrades.
301
+ *
302
+ * A delegated step has ONE way past that exception, and it is narrow twice over.
303
+ * The run's own trace has to say the action RAN and FAILED — "nobody has executed
304
+ * it yet" is a boundary still waiting for real work — AND the step has to be one
305
+ * whose skipping credits nothing: a read. A row that WRITES stays exhausted even
306
+ * with a failure behind it, because the run would go on to declare itself
307
+ * finished while the document it exists to produce was never written, which is
308
+ * the same credit-to-nothing this exception was carved out of. Its way out is not
309
+ * degradation but `aw flow recover`, and the block says so.
265
310
  */
266
311
  function exhaustionSkip(state, decision) {
267
312
  if (!exhausted(state, decision))
268
313
  return null;
269
314
  if (!owned(decision))
270
315
  return null;
271
- if (actionOf(decision) !== null)
316
+ const failure = executionFailure(state, decision.id);
317
+ if (actionOf(decision) !== null && failure === null)
318
+ return null;
319
+ if (failure !== null && touchesTheWorld(effectsOfTransition(state, decision)))
272
320
  return null;
273
321
  if (authorizeTransition(decision, state.authorizations, subjectOf(state, decision)).missing.length >
274
322
  0) {
275
323
  return null;
276
324
  }
277
- return `agotó sus ${MAX_BOUNDARY_ATTEMPTS} intentos: ${DEGRADE_ACTION}`;
325
+ const spent = `agotó sus ${MAX_BOUNDARY_ATTEMPTS} intentos`;
326
+ return failure === null
327
+ ? `${spent}: ${DEGRADE_ACTION}`
328
+ : `su acción se ejecutó y falló (${failure.code}: ${failure.message}) y ${spent}: ${DEGRADE_ACTION}`;
329
+ }
330
+ /**
331
+ * The failure a delegated action of this transition really produced, if any.
332
+ *
333
+ * The LAST event for the transition, not any of them: an action that failed and
334
+ * then succeeded left both events behind, and reading the older one would call a
335
+ * finished step failed. Reads the material trace rather than the attempt history
336
+ * because the two answer different questions — "how many times was this asked"
337
+ * versus "did anything actually run".
338
+ */
339
+ function executionFailure(state, transition) {
340
+ const last = state.events.filter((event) => event.transition === transition).at(-1);
341
+ return last !== undefined && last.kind === "failed" ? last : null;
342
+ }
343
+ /**
344
+ * The attempt a delegated action spends when it RUNS and comes back failed.
345
+ *
346
+ * The hole this closes was measured: five consecutive `aw flow advance` against a
347
+ * blocked internal execution returned the identical error and left the ledger
348
+ * with ZERO rows for that boundary. No attempt was ever recorded, so the cap
349
+ * never applied, so the boundary never degraded — and with no recovery either,
350
+ * the run was stuck for good.
351
+ *
352
+ * It is charged by whoever ran the operation, at the moment its verdict refuses,
353
+ * and NOT on the way into an advance. Charging on the way in cost the person who
354
+ * fixed the cause their real third try — the run degraded the boundary on the
355
+ * advance that would have re-run the now-working action — and it charged the very
356
+ * pause the CLI recommends, since coming back with `aw flow advance` is what the
357
+ * directive tells you to do. A try is a try: the action ran and did not work.
358
+ */
359
+ export function failedExecutionAttempt(state, decision, failure) {
360
+ const seal = boundarySeal(state, decision);
361
+ const prior = state.attempts.filter((past) => past.invocation_id === seal);
362
+ const attempt = prior.length + 1;
363
+ return {
364
+ invocation_id: seal,
365
+ attempt,
366
+ // The failure itself plus the ordinal: two retries of the same broken action
367
+ // are two attempts, and a digest that repeated would make the second one look
368
+ // like a resend of the first.
369
+ request_digest: semanticDigest({
370
+ execution_failure: { transition: decision.id, code: failure.code, message: failure.message },
371
+ attempt,
372
+ }),
373
+ parent_request_digest: prior.find((past) => past.attempt === attempt - 1)?.request_digest ?? null,
374
+ transition: decision.id,
375
+ };
278
376
  }
279
377
  /** The `docs/` folders a flow may write, said the way a person reads it. */
280
378
  function describeAllowance(flow) {
@@ -465,7 +563,7 @@ export function directiveFor(state, resolved, appliedNow, overrides = {}) {
465
563
  approved: state.effects.approved,
466
564
  applied: state.effects.applied,
467
565
  },
468
- nextAction: overrides.nextAction ?? nextActionFor(boundary, resolved),
566
+ nextAction: overrides.nextAction ?? nextActionFor(state, boundary, resolved),
469
567
  });
470
568
  if (!built.ok)
471
569
  return { ok: false, failure: built.failure };
@@ -588,10 +686,26 @@ function choicesFor(kind, stopped, unauthorized) {
588
686
  }
589
687
  return kind === "human" ? humanChoices(stopped) : [];
590
688
  }
591
- function nextActionFor(boundary, resolved) {
689
+ /**
690
+ * What the END of a run says — including what it gave up on along the way.
691
+ *
692
+ * "Nothing pending" was the whole sentence, and a run that degraded a boundary
693
+ * said it too: the gap the loop stopped re-firing left no trace in the one line
694
+ * a reader actually reads, so a run that quietly skipped a step and a run that
695
+ * answered every one of them closed with the identical words. The degradations
696
+ * are in the state either way; this is what makes them impossible to miss.
697
+ */
698
+ function finalAction(state) {
699
+ const degraded = state.degraded ?? [];
700
+ if (degraded.length === 0)
701
+ return "no queda trabajo pendiente en este recorrido";
702
+ const names = degraded.map((one) => `'${one.transition}'`).join(", ");
703
+ return `el recorrido terminó dejando degradadas ${names}: nadie las resolvió y el estado declara la causa de cada una — ${DEGRADE_ACTION}`;
704
+ }
705
+ function nextActionFor(state, boundary, resolved) {
592
706
  const stopped = resolved.stopped;
593
707
  if (stopped === null)
594
- return "no queda trabajo pendiente en este recorrido";
708
+ return finalAction(state);
595
709
  const submit = "respondé con 'aw flow submit' sobre la frontera vigente";
596
710
  switch (boundary.kind) {
597
711
  case "semantic":
@@ -1 +1 @@
1
- {"version":3,"file":"advance.js","sourceRoot":"","sources":["../../../src/application/flow/advance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advance.js","sourceRoot":"","sources":["../../../src/application/flow/advance.ts"],"names":[],"mappings":"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"}