@nac3/forge-cli 1.23.6 → 1.24.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 (166) hide show
  1. package/dist/bin/yf.js +0 -0
  2. package/dist/chat/claude.d.ts +8 -0
  3. package/dist/chat/claude.d.ts.map +1 -1
  4. package/dist/chat/claude.js.map +1 -1
  5. package/dist/chat/claude_cli.d.ts +23 -0
  6. package/dist/chat/claude_cli.d.ts.map +1 -1
  7. package/dist/chat/claude_cli.js +76 -2
  8. package/dist/chat/claude_cli.js.map +1 -1
  9. package/dist/chat/doctrine_digest.d.ts.map +1 -1
  10. package/dist/chat/doctrine_digest.js +2 -1
  11. package/dist/chat/doctrine_digest.js.map +1 -1
  12. package/dist/chat/server.d.ts.map +1 -1
  13. package/dist/chat/server.js +11 -0
  14. package/dist/chat/server.js.map +1 -1
  15. package/dist/chat/tools/pending.d.ts +11 -0
  16. package/dist/chat/tools/pending.d.ts.map +1 -1
  17. package/dist/chat/tools/pending.js +55 -8
  18. package/dist/chat/tools/pending.js.map +1 -1
  19. package/dist/chat/tools/shell.d.ts +39 -4
  20. package/dist/chat/tools/shell.d.ts.map +1 -1
  21. package/dist/chat/tools/shell.js +167 -7
  22. package/dist/chat/tools/shell.js.map +1 -1
  23. package/dist/chat/tools/urazuke.d.ts.map +1 -1
  24. package/dist/chat/tools/urazuke.js +8 -5
  25. package/dist/chat/tools/urazuke.js.map +1 -1
  26. package/dist/chat/urazuke_section.d.ts +26 -4
  27. package/dist/chat/urazuke_section.d.ts.map +1 -1
  28. package/dist/chat/urazuke_section.js +115 -9
  29. package/dist/chat/urazuke_section.js.map +1 -1
  30. package/dist/commands/pending.d.ts.map +1 -1
  31. package/dist/commands/pending.js +116 -12
  32. package/dist/commands/pending.js.map +1 -1
  33. package/dist/commands/urazuke.d.ts +3 -0
  34. package/dist/commands/urazuke.d.ts.map +1 -1
  35. package/dist/commands/urazuke.js +80 -3
  36. package/dist/commands/urazuke.js.map +1 -1
  37. package/dist/core/ascii_purity.d.ts +69 -0
  38. package/dist/core/ascii_purity.d.ts.map +1 -0
  39. package/dist/core/ascii_purity.js +141 -0
  40. package/dist/core/ascii_purity.js.map +1 -0
  41. package/dist/core/battery_stamp.d.ts +85 -0
  42. package/dist/core/battery_stamp.d.ts.map +1 -0
  43. package/dist/core/battery_stamp.js +237 -0
  44. package/dist/core/battery_stamp.js.map +1 -0
  45. package/dist/core/ci_gaps.d.ts +129 -0
  46. package/dist/core/ci_gaps.d.ts.map +1 -0
  47. package/dist/core/ci_gaps.js +352 -0
  48. package/dist/core/ci_gaps.js.map +1 -0
  49. package/dist/core/doc_citations.d.ts +133 -0
  50. package/dist/core/doc_citations.d.ts.map +1 -0
  51. package/dist/core/doc_citations.js +271 -0
  52. package/dist/core/doc_citations.js.map +1 -0
  53. package/dist/core/turn_classifier.d.ts +4 -3
  54. package/dist/core/turn_classifier.d.ts.map +1 -1
  55. package/dist/core/turn_classifier.js +65 -20
  56. package/dist/core/turn_classifier.js.map +1 -1
  57. package/dist/docs/doctrine/urazuke.md +173 -2
  58. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  59. package/dist/nac3/internal_manifest.js +28 -2
  60. package/dist/nac3/internal_manifest.js.map +1 -1
  61. package/dist/pending/store.d.ts +29 -0
  62. package/dist/pending/store.d.ts.map +1 -1
  63. package/dist/pending/store.js +51 -1
  64. package/dist/pending/store.js.map +1 -1
  65. package/dist/pending/types.d.ts +23 -0
  66. package/dist/pending/types.d.ts.map +1 -1
  67. package/dist/pending/types.js.map +1 -1
  68. package/dist/telemetry/usage.d.ts +18 -0
  69. package/dist/telemetry/usage.d.ts.map +1 -1
  70. package/dist/telemetry/usage.js +16 -1
  71. package/dist/telemetry/usage.js.map +1 -1
  72. package/dist/urazuke/announce.d.ts +7 -0
  73. package/dist/urazuke/announce.d.ts.map +1 -1
  74. package/dist/urazuke/announce.js +20 -0
  75. package/dist/urazuke/announce.js.map +1 -1
  76. package/dist/urazuke/catalog.d.ts +1 -1
  77. package/dist/urazuke/catalog.d.ts.map +1 -1
  78. package/dist/urazuke/catalog.js.map +1 -1
  79. package/dist/urazuke/close_gate.d.ts +31 -4
  80. package/dist/urazuke/close_gate.d.ts.map +1 -1
  81. package/dist/urazuke/close_gate.js +70 -13
  82. package/dist/urazuke/close_gate.js.map +1 -1
  83. package/dist/urazuke/current.d.ts +28 -0
  84. package/dist/urazuke/current.d.ts.map +1 -1
  85. package/dist/urazuke/current.js +18 -5
  86. package/dist/urazuke/current.js.map +1 -1
  87. package/dist/urazuke/cycle.d.ts +3 -0
  88. package/dist/urazuke/cycle.d.ts.map +1 -1
  89. package/dist/urazuke/cycle.js +5 -3
  90. package/dist/urazuke/cycle.js.map +1 -1
  91. package/dist/urazuke/evidence.d.ts +58 -1
  92. package/dist/urazuke/evidence.d.ts.map +1 -1
  93. package/dist/urazuke/evidence.js +203 -27
  94. package/dist/urazuke/evidence.js.map +1 -1
  95. package/dist/urazuke/evidence_env.d.ts +78 -0
  96. package/dist/urazuke/evidence_env.d.ts.map +1 -0
  97. package/dist/urazuke/evidence_env.js +341 -0
  98. package/dist/urazuke/evidence_env.js.map +1 -0
  99. package/dist/urazuke/freeze.d.ts.map +1 -1
  100. package/dist/urazuke/freeze.js +16 -9
  101. package/dist/urazuke/freeze.js.map +1 -1
  102. package/dist/urazuke/gate.d.ts +48 -0
  103. package/dist/urazuke/gate.d.ts.map +1 -1
  104. package/dist/urazuke/gate.js +251 -25
  105. package/dist/urazuke/gate.js.map +1 -1
  106. package/dist/urazuke/gates_data.d.ts +30 -3
  107. package/dist/urazuke/gates_data.d.ts.map +1 -1
  108. package/dist/urazuke/gates_data.js +51 -5
  109. package/dist/urazuke/gates_data.js.map +1 -1
  110. package/dist/urazuke/gates_pull.d.ts +40 -0
  111. package/dist/urazuke/gates_pull.d.ts.map +1 -1
  112. package/dist/urazuke/gates_pull.js +118 -8
  113. package/dist/urazuke/gates_pull.js.map +1 -1
  114. package/dist/urazuke/manual_cases.d.ts +11 -1
  115. package/dist/urazuke/manual_cases.d.ts.map +1 -1
  116. package/dist/urazuke/manual_cases.js +1 -0
  117. package/dist/urazuke/manual_cases.js.map +1 -1
  118. package/dist/urazuke/overrides.d.ts +107 -0
  119. package/dist/urazuke/overrides.d.ts.map +1 -0
  120. package/dist/urazuke/overrides.js +128 -0
  121. package/dist/urazuke/overrides.js.map +1 -0
  122. package/dist/urazuke/probes.d.ts.map +1 -1
  123. package/dist/urazuke/probes.js +51 -0
  124. package/dist/urazuke/probes.js.map +1 -1
  125. package/dist/urazuke/profiles.d.ts +135 -0
  126. package/dist/urazuke/profiles.d.ts.map +1 -0
  127. package/dist/urazuke/profiles.js +470 -0
  128. package/dist/urazuke/profiles.js.map +1 -0
  129. package/dist/urazuke/receipt_audit.d.ts +67 -0
  130. package/dist/urazuke/receipt_audit.d.ts.map +1 -0
  131. package/dist/urazuke/receipt_audit.js +103 -0
  132. package/dist/urazuke/receipt_audit.js.map +1 -0
  133. package/dist/urazuke/receipts.d.ts +22 -0
  134. package/dist/urazuke/receipts.d.ts.map +1 -1
  135. package/dist/urazuke/receipts.js +44 -0
  136. package/dist/urazuke/receipts.js.map +1 -1
  137. package/dist/urazuke/report.d.ts +30 -0
  138. package/dist/urazuke/report.d.ts.map +1 -1
  139. package/dist/urazuke/report.js +39 -0
  140. package/dist/urazuke/report.js.map +1 -1
  141. package/dist/urazuke/reset.d.ts +35 -0
  142. package/dist/urazuke/reset.d.ts.map +1 -0
  143. package/dist/urazuke/reset.js +150 -0
  144. package/dist/urazuke/reset.js.map +1 -0
  145. package/dist/urazuke/retro.d.ts +5 -1
  146. package/dist/urazuke/retro.d.ts.map +1 -1
  147. package/dist/urazuke/retro.js +21 -8
  148. package/dist/urazuke/retro.js.map +1 -1
  149. package/dist/urazuke/section.d.ts.map +1 -1
  150. package/dist/urazuke/section.js +17 -2
  151. package/dist/urazuke/section.js.map +1 -1
  152. package/dist/urazuke/semantics.d.ts +173 -0
  153. package/dist/urazuke/semantics.d.ts.map +1 -0
  154. package/dist/urazuke/semantics.js +232 -0
  155. package/dist/urazuke/semantics.js.map +1 -0
  156. package/dist/urazuke/start.d.ts +8 -0
  157. package/dist/urazuke/start.d.ts.map +1 -1
  158. package/dist/urazuke/start.js +10 -2
  159. package/dist/urazuke/start.js.map +1 -1
  160. package/dist/version.d.ts +1 -1
  161. package/dist/version.js +1 -1
  162. package/dist/workflow/orchestrator.d.ts.map +1 -1
  163. package/dist/workflow/orchestrator.js +6 -7
  164. package/dist/workflow/orchestrator.js.map +1 -1
  165. package/docs/doctrine/urazuke.md +173 -2
  166. package/package.json +24 -20
@@ -1 +1 @@
1
- {"version":3,"file":"retro.d.ts","sourceRoot":"","sources":["../../src/urazuke/retro.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IACrL,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpM,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpG,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CA2DlJ;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAiDnE;AAED,8DAA8D;AAC9D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAS9K;AAED;mDACmD;AACnD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAczE"}
1
+ {"version":3,"file":"retro.d.ts","sourceRoot":"","sources":["../../src/urazuke/retro.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IACrL,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACjO;;oBAEgB;IAChB,SAAS,EAAE,OAAO,gBAAgB,EAAE,cAAc,CAAC;IACnD,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpG,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAqElJ;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAoDnE;AAED,8DAA8D;AAC9D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAS9K;AAED;mDACmD;AACnD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAczE"}
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import fs from 'node:fs/promises';
17
17
  import path from 'node:path';
18
+ import { renderOverrideRows } from './overrides.js';
18
19
  export async function buildRetroNumbers(slug, projectRoot, opts = {}) {
19
20
  const now = opts.now ?? Date.now();
20
21
  const sinceMs = now - (opts.since_days ?? 90) * 24 * 3600 * 1000;
@@ -37,7 +38,16 @@ export async function buildRetroNumbers(slug, projectRoot, opts = {}) {
37
38
  }
38
39
  return undefined;
39
40
  };
40
- const overrides = all.reduce((n, p) => n + (p.history ?? []).filter((h) => /OVERRIDE/.test(h.note) && inWindow(atMs(h.at))).length, 0);
41
+ /* M-02 -- POR TIPO, no un total. La condicion con la que el dueno aprobo
42
+ * el mecanismo: "que se pueda preguntar cuantos cierres se forzaron por
43
+ * documentacion_sin_rojo_posible y que haya una respuesta. Si el tipo
44
+ * existe pero nadie lo cuenta, es el mismo agujero con mejor nombre -- y
45
+ * peor, porque suena resuelto". El conteo vive en overrides.ts (una sola
46
+ * implementacion para el reporte, el ciclico y cualquier consumidor que
47
+ * venga): contarlo de nuevo aca seria la segunda inferencia que el metodo
48
+ * advierte, y es como se perdio la distincion closed/green en F-07. */
49
+ const { countOverrides } = await import('./overrides.js');
50
+ const overrides = countOverrides(all, (at) => inWindow(atMs(at)));
41
51
  const openNow = plan.filter((p) => p.closed_at === undefined);
42
52
  const rc = (await readReceipts(slug)).items.filter((r) => inWindow(r.started_at));
43
53
  /* summarizeReceipts is the ONLY place that decides a receipt's effective
@@ -47,12 +57,11 @@ export async function buildRetroNumbers(slug, projectRoot, opts = {}) {
47
57
  * verdict forever, immune to a later parseCounts fix. */
48
58
  const s = summarizeReceipts(rc);
49
59
  const ladder = await urazukeLadder(slug, projectRoot);
50
- const l = {
51
- closed: 0, green: 0, red: 0, owner: 0, unmeasured: 0,
52
- total: ladder.rows.length, ...(ladder.kind ? { kind: ladder.kind } : {}),
53
- };
54
- for (const r of ladder.rows)
55
- l[r.status] += 1;
60
+ /* summarizeLadder es el UNICO que cuenta estados de la escalera (F-07):
61
+ * contarlos aca de nuevo es la segunda inferencia que el metodo
62
+ * advierte, y es como se pierde la distincion closed/green. */
63
+ const { summarizeLadder } = await import('./current.js');
64
+ const l = { ...summarizeLadder(ladder.rows), ...(ladder.kind ? { kind: ladder.kind } : {}) };
56
65
  const docs = await fs.readdir(path.join(projectRoot, 'docs')).catch(() => []);
57
66
  return {
58
67
  since: new Date(sinceMs).toISOString().slice(0, 10),
@@ -68,6 +77,7 @@ export async function buildRetroNumbers(slug, projectRoot, opts = {}) {
68
77
  receipts: {
69
78
  red_proofs: s.red_proofs, strong_red_proofs: s.strong_red_proofs, greens: s.greens, regressions: s.regressions, e2e: s.e2e,
70
79
  quality: s.quality, mutation: s.mutation, false_reds: s.false_reds,
80
+ env_incomplete_reds: s.env_incomplete_reds,
71
81
  not_ok: rc.filter((r) => effectiveVerdict(r) !== 'ok').length, total: rc.length,
72
82
  },
73
83
  overrides,
@@ -107,7 +117,10 @@ export function renderRetro(n, prompt) {
107
117
  row('Recibos: calidad', n.receipts.quality),
108
118
  row('Recibos: mutacion', n.receipts.mutation),
109
119
  row('Recibos con veredicto NOT OK', n.receipts.not_ok),
110
- row('Overrides de compuertas (con razon escrita)', n.overrides),
120
+ row('Recibos: rojo descartado por ENTORNO INCOMPLETO (F-13)', n.receipts.env_incomplete_reds),
121
+ /* M-02: una fila por tipo. Las etiquetas viajan con el numero
122
+ * (renderOverrideRows) para que no puedan separarse. */
123
+ ...renderOverrideRows(n.overrides).map(([k, v]) => row(k, v)),
111
124
  row('Escalera: peldanos cerrados / verdes / rojos / a cargo del dueno', n.ladder.closed + ' / ' + n.ladder.green + ' / ' + n.ladder.red + ' / ' + n.ladder.owner + ' de ' + n.ladder.total),
112
125
  row('Auditorias en docs/', n.audits_on_disk),
113
126
  row('Retrospectivas previas en docs/', n.retros_on_disk),
@@ -1 +1 @@
1
- {"version":3,"file":"retro.js","sourceRoot":"","sources":["../../src/urazuke/retro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retro.js","sourceRoot":"","sources":["../../src/urazuke/retro.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/urazuke/section.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,2DAA2D;IAC3D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAgEvE;AAED,mDAAmD;AACnD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,CAYrJ"}
1
+ {"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/urazuke/section.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,2DAA2D;IAC3D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA+EvE;AAED,mDAAmD;AACnD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,CAYrJ"}
@@ -20,10 +20,17 @@ export function renderUrazukeSection(input) {
20
20
  '(' + input.code + ', tarea ' + input.task_id + ', ' + input.remaining + ' de ' + input.total + ' tareas abiertas) -- doctrine: urazuke\n' +
21
21
  '=================================================================';
22
22
  const lines = [];
23
+ /* M-04 -- `owner` tiene DOS causas y no se dicen igual: o la definicion
24
+ * deja el peldano a una firma del dueno, o falta un insumo que el dueno
25
+ * tiene que traer. Decirle "nada mecanico que chequear" a lo segundo es
26
+ * exactamente lo que dejaba pasar el paso sin autorizar. */
27
+ const missingInputs = r.inputs.filter((c) => c.status === 'fail' || c.status === 'unknown');
28
+ const owesInput = r.status === 'owner' && missingInputs.length > 0;
23
29
  const state = r.status === 'green' ? 'VERDE'
24
30
  : r.status === 'red' ? 'ROJO'
25
31
  : r.status === 'unmeasured' ? 'DECLARADO, NO MEDIDO POR ESTA INSTALACION'
26
- : 'A CARGO DEL DUENO';
32
+ : owesInput ? 'FRENADO: FALTA UN INSUMO DEL DUENO'
33
+ : 'A CARGO DEL DUENO';
27
34
  lines.push('estado mecanico: ' + state + (r.status === 'green'
28
35
  ? ' -- the artifacts exist; close ' + input.task_id + ' with yujin.pending.close (expediente + evidence) and move on.'
29
36
  : r.status === 'red'
@@ -35,7 +42,15 @@ export function renderUrazukeSection(input) {
35
42
  ? ' -- the definition in force requires an evaluator this installation cannot measure (marked [?] below).'
36
43
  + ' It does NOT close and it is NOT green: say which evaluator is missing, do not approximate it with the'
37
44
  + ' closest one, and do not claim the step done.'
38
- : ' -- nothing mechanical to check; the owner verifies with the checklist.'));
45
+ : owesInput
46
+ /* El insumo es del DUENO: pedirselo, no producirlo. Un insumo
47
+ * inventado por el agente es peor que la ausencia, porque se
48
+ * parece a una decision tomada. */
49
+ ? ' -- an OWNER INPUT is missing (insumo), so this step does NOT close and is NOT green:'
50
+ + ' ' + missingInputs.map((c) => c.label + ' (' + c.path + ')').join('; ')
51
+ + '. ASK the owner for it; do NOT invent it, do NOT produce it yourself,'
52
+ + ' and do NOT claim the step done. The artifacts being in place does not authorise the step.'
53
+ : ' -- nothing mechanical to check; the owner verifies with the checklist.'));
39
54
  if (r.inputs.length) {
40
55
  lines.push('antes de enviar (lo que el DUENO tiene que tener hecho; si falta, pedilo, no lo inventes):');
41
56
  for (const c of r.inputs)
@@ -1 +1 @@
1
- {"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/urazuke/section.ts"],"names":[],"mappings":"AAoCA,SAAS,IAAI,CAAC,CAAe;IAC3B,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK;QAC9B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK;YAC3B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED;;qCAEqC;AACrC,SAAS,QAAQ,CAAC,CAAe;IAC/B,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA0B;IAC7D,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAClC,MAAM,KAAK,GAAG,SAAS;QACrB,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,OAAQ,CAAC,GAAG,GAAG,6BAA6B;QACnE,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC;IACrE,MAAM,MAAM,GACV,qEAAqE;QACrE,aAAa,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI;QAC7C,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,0CAA0C;QAC1I,mEAAmE,CAAC;IAEtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;QAC1C,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM;YAC3B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,2CAA2C;gBACvE,CAAC,CAAC,mBAAmB,CAAC;IAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO;QAC5D,CAAC,CAAC,iCAAiC,GAAG,KAAK,CAAC,OAAO,GAAG,gEAAgE;QACtH,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK;YAClB,CAAC,CAAC,6EAA6E;YAC/E,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY;gBACzB;;gEAEgD;gBAChD,CAAC,CAAC,wGAAwG;sBACtG,wGAAwG;sBACxG,+CAA+C;gBACnD,CAAC,CAAC,yEAAyE,CAAC,CAAC,CAAC;IAEpF,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QACzG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,2JAA2J,CAAC,CAAC;IACxK,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,WAAW,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;IAC1H,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7B,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QAC/D,OAAO,KAAK,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC;IACzC;+CAC2C;IAC3C,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,OAAO,CAAC;IAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,8BAA8B,CAAC;AACtG,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,uBAAuB,CAAC,IAAmG;IACzI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpB;;;8BAGsB;QACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK;YACrC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK;gBAC5B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK;oBAC1B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAClD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/urazuke/section.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * LA SEMANTICA DEL METODO, COMO DATOS -- la regla de estado, la regla de
3
+ * cierre y lo no negociable (pedido de Pablo, 2026-11-01).
4
+ *
5
+ * EL PORQUE, con el precio medido y no supuesto. El dueno pidio que Urazuke
6
+ * sea declarativo y que se baje del portal. Eso ya valia para los prompts
7
+ * (`prompts_client.ts`) y para la definicion de compuertas (datos desde el
8
+ * 2026-10-23, D-050). Pero tres reglas quedaron compiladas en TypeScript, y
9
+ * el costo de eso se midio con un defecto real: el evaluador calculaba los
10
+ * insumos del dueno y la funcion que decide el estado NO los recibia, asi
11
+ * que un peldano daba verde con el insumo ausente (M-04). Si la regla de
12
+ * estado hubiera sido declarada, el arreglo era un cambio de DATOS: se
13
+ * publica y manana cualquier proyecto se re-lee con la regla correcta. Como
14
+ * era codigo, hizo falta una release de Forge, un publish a npm y un update
15
+ * global en cada maquina -- y mientras eso pasa, todos los proyectos siguen
16
+ * certificando peldanos sin insumo.
17
+ *
18
+ * Este modulo es la forma declarada de esas tres reglas, mas los
19
+ * interpretes PUROS que las aplican. Tres propiedades que lo hacen seguro,
20
+ * y las tres importan:
21
+ *
22
+ * 1. LA AUSENCIA CAE AL DEFAULT, NUNCA A VACIO. Un payload que no declara
23
+ * la regla deja a Forge usando la compilada de hoy. Sin eso, un payload
24
+ * viejo -- o uno recortado -- dejaria a todos los proyectos sin regla
25
+ * de estado, que es peor que tenerla compilada.
26
+ *
27
+ * 2. UNA DECLARACION QUE NO SE ENTIENDE SE RECHAZA ENTERA, EN VOZ ALTA.
28
+ * Un estado que este Forge no conoce no se aproxima al mas parecido:
29
+ * la regla se refusa, responde la compilada, y el aviso lo dice. Media
30
+ * regla aplicada es peor que la regla vieja aplicada entera.
31
+ *
32
+ * 3. LOS TEXTOS DE AYUDA VIAJAN CON EL REQUISITO. La mejor parte de la
33
+ * regla de cierre son los mensajes que dicen QUE falta y COMO
34
+ * conseguirlo, nombrando el verbo exacto. Un cierre que dice "falta
35
+ * red_proof" sin decir como obtenerlo es un retroceso, no una mudanza,
36
+ * asi que el texto es un campo del requisito y no una constante al
37
+ * costado.
38
+ *
39
+ * Este modulo NO publica nada: Forge queda LEYENDO CON RESPALDO. La
40
+ * publicacion del lado del metodo es otro trabajo, en pkuschnirof/urazuke.
41
+ * Asi no hay dia de corte: un Forge nuevo con un portal viejo funciona
42
+ * igual que hoy.
43
+ *
44
+ * ASCII-only.
45
+ */
46
+ /** Las senales que el interprete sabe medir sobre un peldano evaluado.
47
+ *
48
+ * Es el vocabulario del contrato: la declaracion puede reordenarlas y
49
+ * reasignarles estado, pero no puede inventar una senal -- medirla
50
+ * requiere codigo, y codigo es justo lo que no viaja en el payload. Una
51
+ * senal desconocida se reporta como no leida, nunca se ignora en silencio. */
52
+ export type UrazukeStatusSignal =
53
+ /** Un artefacto o un chequeo de registro FALLO (se midio y esta mal). */
54
+ 'check_failed'
55
+ /** Un insumo del dueno falta o no se pudo medir. */
56
+ | 'input_missing'
57
+ /** Un chequeo no se pudo medir (evaluador requerido no implementado). */
58
+ | 'check_unknown'
59
+ /** La definicion declara el evaluador `owner`: lo firma una persona. */
60
+ | 'evaluator_owner'
61
+ /** No quedo nada medible: ningun chequeo real. */
62
+ | 'nothing_measurable';
63
+ export declare const STATUS_SIGNALS: readonly UrazukeStatusSignal[];
64
+ /** Los estados que un peldano puede tener. Cerrado NO esta aca: `closed` es
65
+ * del registro de tareas, no del evaluador (ver la doctrina urazuke). */
66
+ export declare const STATUS_NAMES: readonly string[];
67
+ export interface UrazukeStatusPrecedence {
68
+ when: UrazukeStatusSignal | string;
69
+ status: string;
70
+ }
71
+ export interface UrazukeStatusRule {
72
+ /** De mayor a menor: la primera que se cumple decide. */
73
+ precedence: UrazukeStatusPrecedence[];
74
+ /** El estado cuando ninguna senal de arriba se cumplio. */
75
+ otherwise: string;
76
+ }
77
+ /** LA REGLA COMPILADA -- exactamente la precedencia que Forge aplicaba en
78
+ * codigo antes de esta mudanza, incluido el arreglo de M-04:
79
+ *
80
+ * 1. una falla MEDIDA gana sobre todo: hay algo que arreglar, y decir
81
+ * "no se pudo medir" encima de eso lo esconderia;
82
+ * 2. un insumo del dueno ausente, antes que lo no medible, porque es
83
+ * ACCIONABLE: hay algo concreto que pedirle al dueno. Y es `owner` y
84
+ * no `red` porque un insumo que falta no es un defecto del agente, y
85
+ * mezclarlo con los rojos del codigo es como alguien termina apagando
86
+ * la compuerta entera;
87
+ * 3. nada fallo pero la definicion en vigor pide un evaluador que esta
88
+ * instalacion no mide: ni verde ni firma, nombrado y frenado;
89
+ * 4. la definicion deja el peldano a la firma del dueno;
90
+ * 5. no quedo nada medible: tampoco es verde.
91
+ *
92
+ * Es el DEFAULT, no la verdad: un payload que declare otra precedencia
93
+ * manda. Pero un payload que no declare ninguna deja esto en pie. */
94
+ export declare const COMPILED_STATUS_RULE: UrazukeStatusRule;
95
+ export interface StatusRuleVerdict {
96
+ rule: UrazukeStatusRule;
97
+ /** `declared` = vino del payload; `compiled` = el default de Forge. */
98
+ source: 'declared' | 'compiled';
99
+ /** Lo que hay que decir en voz alta: una regla refusada, una senal que
100
+ * este Forge no sabe medir. Nunca se traga. */
101
+ notices: string[];
102
+ }
103
+ /** Validar y resolver la regla que rige.
104
+ *
105
+ * Refusa ENTERA (y cae al default) cuando:
106
+ * - no es un objeto con `precedence` array y `otherwise` string;
107
+ * - algun `status` no es uno de los cuatro que el evaluador sabe producir;
108
+ * - la precedencia queda vacia despues de descartar senales desconocidas.
109
+ *
110
+ * NO refusa, y avisa, cuando declara una senal que este Forge no mide: esa
111
+ * entrada se reporta como no leida y el resto de la regla se aplica. Es la
112
+ * misma rama de compatibilidad que ya tienen los evaluadores -- el esquema
113
+ * del metodo es append-only, asi que una senal nueva no puede invalidar
114
+ * una regla por lo demas entendible. */
115
+ export declare function resolveStatusRule(raw: unknown): StatusRuleVerdict;
116
+ /** Aplicar una precedencia declarada. El codigo MIDE las senales y
117
+ * OBEDECE el orden; ya no lo decide. */
118
+ export declare function applyStatusRule(rule: UrazukeStatusRule, signals: Record<UrazukeStatusSignal, boolean>): string;
119
+ export interface UrazukeCloseRequirement {
120
+ /** La clase de recibo exigida (`red_proof`, `green`, `regression`, ...). */
121
+ kind: string;
122
+ /** QUE falta y COMO conseguirlo, nombrando el verbo. Es parte del
123
+ * requisito y no una constante al costado, justamente para que un
124
+ * requisito declarado no pueda llegar sin su ayuda. */
125
+ help: string;
126
+ /** Solo para el rojo: exige que distinga conducta (D-037). */
127
+ require_strong?: boolean;
128
+ /** El texto para el caso del rojo debil. */
129
+ strong_help?: string;
130
+ }
131
+ export interface UrazukeCloseRule {
132
+ required_receipts: UrazukeCloseRequirement[];
133
+ }
134
+ /** LA REGLA DE CIERRE COMPILADA -- los tres recibos y los textos verbatim
135
+ * de close_gate.ts antes de la mudanza. Los textos se copian letra por
136
+ * letra a proposito: la bateria que congela la conducta los compara, asi
137
+ * que una reescritura "para mejorarlos" aparece como un cambio de conducta
138
+ * y no se cuela. */
139
+ export declare const COMPILED_CLOSE_RULE: UrazukeCloseRule;
140
+ export interface CloseRuleVerdict {
141
+ rule: UrazukeCloseRule;
142
+ source: 'declared' | 'compiled';
143
+ notices: string[];
144
+ }
145
+ /** Validar y resolver la regla de cierre. Mismo criterio que la de estado:
146
+ * la ausencia cae al default, y una declaracion sin el texto de ayuda se
147
+ * REFUSA -- un requisito sin su "como conseguirlo" es el retroceso que
148
+ * esta mudanza no puede producir. */
149
+ export declare function resolveCloseRule(raw: unknown): CloseRuleVerdict;
150
+ /** Los peldanos no negociables que una definicion declara.
151
+ *
152
+ * LA REGLA DE RESPALDO, y es la que lo hace seguro: si NINGUN peldano de
153
+ * la definicion declara el campo, no se concluye "no hay nada no
154
+ * negociable" -- se cae a la lista compilada. Un payload viejo (o uno
155
+ * recortado) no puede volver salteable todo el metodo por omision. Si al
156
+ * menos uno lo declara, manda la declaracion: ahi hubo una decision.
157
+ *
158
+ * Por que esto es aceptable aunque un payload pudiera SACAR un peldano de
159
+ * la lista: el camino del portal a un proyecto pasa SIEMPRE por el
160
+ * congelado (`resolveGates` lee copia congelada y despues el catalogo
161
+ * compilado; el portal solo lo toca `fetchPublishedGates`, que solo llama
162
+ * el tiron explicito, y ese tiron ESCRIBE el congelado). Y el congelado es
163
+ * idempotente, nunca sobrescribe, y su hash se RECALCULA en vez de leerse,
164
+ * asi que una copia editada a mano se refusa y responde la compilada.
165
+ * Verificado antes de mover. */
166
+ export declare function declaredNonNegotiable(steps: ReadonlyArray<{
167
+ num: number;
168
+ non_negotiable?: boolean;
169
+ }>, compiled: readonly number[]): {
170
+ steps: number[];
171
+ source: 'declared' | 'compiled';
172
+ };
173
+ //# sourceMappingURL=semantics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.d.ts","sourceRoot":"","sources":["../../src/urazuke/semantics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAMH;;;;;+EAK+E;AAC/E,MAAM,MAAM,mBAAmB;AAC7B,yEAAyE;AACvE,cAAc;AAChB,oDAAoD;GAClD,eAAe;AACjB,yEAAyE;GACvE,eAAe;AACjB,wEAAwE;GACtE,iBAAiB;AACnB,kDAAkD;GAChD,oBAAoB,CAAC;AAEzB,eAAO,MAAM,cAAc,EAAE,SAAS,mBAAmB,EAExD,CAAC;AAEF;0EAC0E;AAC1E,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAA4C,CAAC;AAEvF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;sEAgBsE;AACtE,eAAO,MAAM,oBAAoB,EAAE,iBASlC,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,uEAAuE;IACvE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC;oDACgD;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;yCAWyC;AACzC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAuCjE;AAED;yCACyC;AACzC,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAAG,MAAM,CAK9G;AAMD,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb;;4DAEwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C;AAED;;;;qBAIqB;AACrB,eAAO,MAAM,mBAAmB,EAAE,gBAWjC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;sCAGsC;AACtC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAiC/D;AAMD;;;;;;;;;;;;;;;iCAeiC;AACjC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EAC/D,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAAA;CAAE,CAOtD"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * LA SEMANTICA DEL METODO, COMO DATOS -- la regla de estado, la regla de
3
+ * cierre y lo no negociable (pedido de Pablo, 2026-11-01).
4
+ *
5
+ * EL PORQUE, con el precio medido y no supuesto. El dueno pidio que Urazuke
6
+ * sea declarativo y que se baje del portal. Eso ya valia para los prompts
7
+ * (`prompts_client.ts`) y para la definicion de compuertas (datos desde el
8
+ * 2026-10-23, D-050). Pero tres reglas quedaron compiladas en TypeScript, y
9
+ * el costo de eso se midio con un defecto real: el evaluador calculaba los
10
+ * insumos del dueno y la funcion que decide el estado NO los recibia, asi
11
+ * que un peldano daba verde con el insumo ausente (M-04). Si la regla de
12
+ * estado hubiera sido declarada, el arreglo era un cambio de DATOS: se
13
+ * publica y manana cualquier proyecto se re-lee con la regla correcta. Como
14
+ * era codigo, hizo falta una release de Forge, un publish a npm y un update
15
+ * global en cada maquina -- y mientras eso pasa, todos los proyectos siguen
16
+ * certificando peldanos sin insumo.
17
+ *
18
+ * Este modulo es la forma declarada de esas tres reglas, mas los
19
+ * interpretes PUROS que las aplican. Tres propiedades que lo hacen seguro,
20
+ * y las tres importan:
21
+ *
22
+ * 1. LA AUSENCIA CAE AL DEFAULT, NUNCA A VACIO. Un payload que no declara
23
+ * la regla deja a Forge usando la compilada de hoy. Sin eso, un payload
24
+ * viejo -- o uno recortado -- dejaria a todos los proyectos sin regla
25
+ * de estado, que es peor que tenerla compilada.
26
+ *
27
+ * 2. UNA DECLARACION QUE NO SE ENTIENDE SE RECHAZA ENTERA, EN VOZ ALTA.
28
+ * Un estado que este Forge no conoce no se aproxima al mas parecido:
29
+ * la regla se refusa, responde la compilada, y el aviso lo dice. Media
30
+ * regla aplicada es peor que la regla vieja aplicada entera.
31
+ *
32
+ * 3. LOS TEXTOS DE AYUDA VIAJAN CON EL REQUISITO. La mejor parte de la
33
+ * regla de cierre son los mensajes que dicen QUE falta y COMO
34
+ * conseguirlo, nombrando el verbo exacto. Un cierre que dice "falta
35
+ * red_proof" sin decir como obtenerlo es un retroceso, no una mudanza,
36
+ * asi que el texto es un campo del requisito y no una constante al
37
+ * costado.
38
+ *
39
+ * Este modulo NO publica nada: Forge queda LEYENDO CON RESPALDO. La
40
+ * publicacion del lado del metodo es otro trabajo, en pkuschnirof/urazuke.
41
+ * Asi no hay dia de corte: un Forge nuevo con un portal viejo funciona
42
+ * igual que hoy.
43
+ *
44
+ * ASCII-only.
45
+ */
46
+ export const STATUS_SIGNALS = [
47
+ 'check_failed', 'input_missing', 'check_unknown', 'evaluator_owner', 'nothing_measurable',
48
+ ];
49
+ /** Los estados que un peldano puede tener. Cerrado NO esta aca: `closed` es
50
+ * del registro de tareas, no del evaluador (ver la doctrina urazuke). */
51
+ export const STATUS_NAMES = ['green', 'red', 'owner', 'unmeasured'];
52
+ /** LA REGLA COMPILADA -- exactamente la precedencia que Forge aplicaba en
53
+ * codigo antes de esta mudanza, incluido el arreglo de M-04:
54
+ *
55
+ * 1. una falla MEDIDA gana sobre todo: hay algo que arreglar, y decir
56
+ * "no se pudo medir" encima de eso lo esconderia;
57
+ * 2. un insumo del dueno ausente, antes que lo no medible, porque es
58
+ * ACCIONABLE: hay algo concreto que pedirle al dueno. Y es `owner` y
59
+ * no `red` porque un insumo que falta no es un defecto del agente, y
60
+ * mezclarlo con los rojos del codigo es como alguien termina apagando
61
+ * la compuerta entera;
62
+ * 3. nada fallo pero la definicion en vigor pide un evaluador que esta
63
+ * instalacion no mide: ni verde ni firma, nombrado y frenado;
64
+ * 4. la definicion deja el peldano a la firma del dueno;
65
+ * 5. no quedo nada medible: tampoco es verde.
66
+ *
67
+ * Es el DEFAULT, no la verdad: un payload que declare otra precedencia
68
+ * manda. Pero un payload que no declare ninguna deja esto en pie. */
69
+ export const COMPILED_STATUS_RULE = {
70
+ precedence: [
71
+ { when: 'check_failed', status: 'red' },
72
+ { when: 'input_missing', status: 'owner' },
73
+ { when: 'check_unknown', status: 'unmeasured' },
74
+ { when: 'evaluator_owner', status: 'owner' },
75
+ { when: 'nothing_measurable', status: 'unmeasured' },
76
+ ],
77
+ otherwise: 'green',
78
+ };
79
+ /** Validar y resolver la regla que rige.
80
+ *
81
+ * Refusa ENTERA (y cae al default) cuando:
82
+ * - no es un objeto con `precedence` array y `otherwise` string;
83
+ * - algun `status` no es uno de los cuatro que el evaluador sabe producir;
84
+ * - la precedencia queda vacia despues de descartar senales desconocidas.
85
+ *
86
+ * NO refusa, y avisa, cuando declara una senal que este Forge no mide: esa
87
+ * entrada se reporta como no leida y el resto de la regla se aplica. Es la
88
+ * misma rama de compatibilidad que ya tienen los evaluadores -- el esquema
89
+ * del metodo es append-only, asi que una senal nueva no puede invalidar
90
+ * una regla por lo demas entendible. */
91
+ export function resolveStatusRule(raw) {
92
+ const fallback = (why) => ({
93
+ rule: COMPILED_STATUS_RULE,
94
+ source: 'compiled',
95
+ notices: [why + ' -- rige la regla de estado compilada en Forge, no una regla a medias.'],
96
+ });
97
+ if (raw === undefined || raw === null) {
98
+ return { rule: COMPILED_STATUS_RULE, source: 'compiled', notices: [] };
99
+ }
100
+ if (typeof raw !== 'object')
101
+ return fallback('la regla de estado declarada no es un objeto');
102
+ const o = raw;
103
+ if (!Array.isArray(o.precedence))
104
+ return fallback('la regla de estado declarada no trae `precedence` como lista');
105
+ if (typeof o.otherwise !== 'string')
106
+ return fallback('la regla de estado declarada no trae `otherwise`');
107
+ if (!STATUS_NAMES.includes(o.otherwise)) {
108
+ return fallback('la regla de estado declara el estado final "' + o.otherwise + '", que este Forge no sabe producir (conoce: ' + STATUS_NAMES.join(', ') + ')');
109
+ }
110
+ const precedence = [];
111
+ const notices = [];
112
+ for (const e of o.precedence) {
113
+ if (!e || typeof e !== 'object')
114
+ return fallback('la regla de estado trae una entrada de precedencia que no es un objeto');
115
+ const { when, status } = e;
116
+ if (typeof when !== 'string' || typeof status !== 'string') {
117
+ return fallback('la regla de estado trae una entrada de precedencia sin `when` o sin `status`');
118
+ }
119
+ if (!STATUS_NAMES.includes(status)) {
120
+ return fallback('la regla de estado asigna el estado "' + status + '" a la senal "' + when
121
+ + '", y este Forge no sabe producirlo (conoce: ' + STATUS_NAMES.join(', ') + ')');
122
+ }
123
+ if (!STATUS_SIGNALS.includes(when)) {
124
+ notices.push('la regla de estado declara la senal "' + when + '", que esta instalacion no sabe medir:'
125
+ + ' esa entrada NO se aplica (medidas: ' + STATUS_SIGNALS.join(', ') + ').');
126
+ continue;
127
+ }
128
+ precedence.push({ when, status });
129
+ }
130
+ if (!precedence.length) {
131
+ return fallback('la regla de estado declarada no dejo ninguna senal que esta instalacion sepa medir');
132
+ }
133
+ return { rule: { precedence, otherwise: o.otherwise }, source: 'declared', notices };
134
+ }
135
+ /** Aplicar una precedencia declarada. El codigo MIDE las senales y
136
+ * OBEDECE el orden; ya no lo decide. */
137
+ export function applyStatusRule(rule, signals) {
138
+ for (const e of rule.precedence) {
139
+ if (signals[e.when])
140
+ return e.status;
141
+ }
142
+ return rule.otherwise;
143
+ }
144
+ /** LA REGLA DE CIERRE COMPILADA -- los tres recibos y los textos verbatim
145
+ * de close_gate.ts antes de la mudanza. Los textos se copian letra por
146
+ * letra a proposito: la bateria que congela la conducta los compara, asi
147
+ * que una reescritura "para mejorarlos" aparece como un cambio de conducta
148
+ * y no se cuela. */
149
+ export const COMPILED_CLOSE_RULE = {
150
+ required_receipts: [
151
+ {
152
+ kind: 'red_proof',
153
+ help: 'red_proof (the new test failing against the base: yujin.evidence.run kind=red_proof)',
154
+ require_strong: true,
155
+ strong_help: 'a red that tells behaviour apart (D-037): the only red on record is a file that does not load at the base (the module did not exist). Add a behavioural red (base_ref with the module present) or a mutation red (yujin.evidence.run kind=red_proof mutation_diff=<a diff that plants one defect in the new code>)',
156
+ },
157
+ { kind: 'green', help: 'green (the new test passing on HEAD: yujin.evidence.run kind=green)' },
158
+ { kind: 'regression', help: 'regression (the neighbouring suite still green: yujin.evidence.run kind=regression)' },
159
+ ],
160
+ };
161
+ /** Validar y resolver la regla de cierre. Mismo criterio que la de estado:
162
+ * la ausencia cae al default, y una declaracion sin el texto de ayuda se
163
+ * REFUSA -- un requisito sin su "como conseguirlo" es el retroceso que
164
+ * esta mudanza no puede producir. */
165
+ export function resolveCloseRule(raw) {
166
+ const fallback = (why) => ({
167
+ rule: COMPILED_CLOSE_RULE,
168
+ source: 'compiled',
169
+ notices: [why + ' -- rige la regla de cierre compilada en Forge.'],
170
+ });
171
+ if (raw === undefined || raw === null) {
172
+ return { rule: COMPILED_CLOSE_RULE, source: 'compiled', notices: [] };
173
+ }
174
+ if (typeof raw !== 'object')
175
+ return fallback('la regla de cierre declarada no es un objeto');
176
+ const list = raw.required_receipts;
177
+ if (!Array.isArray(list))
178
+ return fallback('la regla de cierre declarada no trae `required_receipts` como lista');
179
+ if (!list.length)
180
+ return fallback('la regla de cierre declarada no exige ningun recibo');
181
+ const out = [];
182
+ for (const e of list) {
183
+ if (!e || typeof e !== 'object')
184
+ return fallback('la regla de cierre trae un requisito que no es un objeto');
185
+ const r = e;
186
+ if (typeof r.kind !== 'string' || !r.kind.trim())
187
+ return fallback('la regla de cierre trae un requisito sin `kind`');
188
+ if (typeof r.help !== 'string' || r.help.trim().length < 10) {
189
+ return fallback('el requisito "' + r.kind + '" de la regla de cierre no trae su texto de ayuda:'
190
+ + ' un cierre que dice que falta y no dice como conseguirlo es un retroceso');
191
+ }
192
+ const strong = r.require_strong === true;
193
+ if (strong && (typeof r.strong_help !== 'string' || r.strong_help.trim().length < 10)) {
194
+ return fallback('el requisito "' + r.kind + '" exige un rojo que distinga conducta y no trae el texto que explica como producirlo');
195
+ }
196
+ out.push({
197
+ kind: r.kind,
198
+ help: r.help,
199
+ ...(strong ? { require_strong: true, strong_help: String(r.strong_help) } : {}),
200
+ });
201
+ }
202
+ return { rule: { required_receipts: out }, source: 'declared', notices: [] };
203
+ }
204
+ /* ===================================================================
205
+ * 3. LO NO NEGOCIABLE
206
+ * ================================================================= */
207
+ /** Los peldanos no negociables que una definicion declara.
208
+ *
209
+ * LA REGLA DE RESPALDO, y es la que lo hace seguro: si NINGUN peldano de
210
+ * la definicion declara el campo, no se concluye "no hay nada no
211
+ * negociable" -- se cae a la lista compilada. Un payload viejo (o uno
212
+ * recortado) no puede volver salteable todo el metodo por omision. Si al
213
+ * menos uno lo declara, manda la declaracion: ahi hubo una decision.
214
+ *
215
+ * Por que esto es aceptable aunque un payload pudiera SACAR un peldano de
216
+ * la lista: el camino del portal a un proyecto pasa SIEMPRE por el
217
+ * congelado (`resolveGates` lee copia congelada y despues el catalogo
218
+ * compilado; el portal solo lo toca `fetchPublishedGates`, que solo llama
219
+ * el tiron explicito, y ese tiron ESCRIBE el congelado). Y el congelado es
220
+ * idempotente, nunca sobrescribe, y su hash se RECALCULA en vez de leerse,
221
+ * asi que una copia editada a mano se refusa y responde la compilada.
222
+ * Verificado antes de mover. */
223
+ export function declaredNonNegotiable(steps, compiled) {
224
+ const declares = steps.some((s) => typeof s.non_negotiable === 'boolean');
225
+ if (!declares)
226
+ return { steps: [...compiled], source: 'compiled' };
227
+ return {
228
+ steps: steps.filter((s) => s.non_negotiable === true).map((s) => s.num).sort((a, b) => a - b),
229
+ source: 'declared',
230
+ };
231
+ }
232
+ //# sourceMappingURL=semantics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantics.js","sourceRoot":"","sources":["../../src/urazuke/semantics.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,12 @@ export interface UrazukeStartHint {
31
31
  kind: string;
32
32
  name?: string;
33
33
  }>;
34
+ /** Lo que el slug ya tenia de antes (F-08). El estado vive fuera del
35
+ * repositorio, asi que vaciar el workspace no lo borra y la corrida
36
+ * nueva lo hereda: el arranque lo dice en vez de heredarlo callado. */
37
+ history?: import('./reset.js').ProjectStateHistory;
38
+ /** Una linea para el dueno. Presente solo cuando hay historia. */
39
+ history_notice?: string;
34
40
  }
35
41
  export interface UrazukeStartNext {
36
42
  /** `00`..`23` or `N0`..`N7`. */
@@ -46,6 +52,8 @@ export interface UrazukeStartNext {
46
52
  export interface UrazukeStartResult {
47
53
  ok: boolean;
48
54
  created: boolean;
55
+ /** F-08 -- el aviso de historia previa del slug, cuando hay. */
56
+ history_notice?: string;
49
57
  kind?: string;
50
58
  code?: string;
51
59
  reason: string;