@nac3/forge-cli 1.18.0 → 1.19.1

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 (181) hide show
  1. package/dist/bin/yf.d.ts.map +1 -1
  2. package/dist/bin/yf.js +4 -0
  3. package/dist/bin/yf.js.map +1 -1
  4. package/dist/chat/doctrine_digest.d.ts.map +1 -1
  5. package/dist/chat/doctrine_digest.js +11 -0
  6. package/dist/chat/doctrine_digest.js.map +1 -1
  7. package/dist/chat/panel.d.ts.map +1 -1
  8. package/dist/chat/panel.js +287 -2
  9. package/dist/chat/panel.js.map +1 -1
  10. package/dist/chat/project_slug.d.ts.map +1 -1
  11. package/dist/chat/project_slug.js +29 -0
  12. package/dist/chat/project_slug.js.map +1 -1
  13. package/dist/chat/server.d.ts.map +1 -1
  14. package/dist/chat/server.js +144 -22
  15. package/dist/chat/server.js.map +1 -1
  16. package/dist/chat/tools/evidence.d.ts +30 -0
  17. package/dist/chat/tools/evidence.d.ts.map +1 -0
  18. package/dist/chat/tools/evidence.js +74 -0
  19. package/dist/chat/tools/evidence.js.map +1 -0
  20. package/dist/chat/tools/pending.d.ts +3 -0
  21. package/dist/chat/tools/pending.d.ts.map +1 -1
  22. package/dist/chat/tools/pending.js +71 -1
  23. package/dist/chat/tools/pending.js.map +1 -1
  24. package/dist/chat/tools/urazuke.d.ts +22 -0
  25. package/dist/chat/tools/urazuke.d.ts.map +1 -0
  26. package/dist/chat/tools/urazuke.js +54 -0
  27. package/dist/chat/tools/urazuke.js.map +1 -0
  28. package/dist/chat/tools/workflow.d.ts.map +1 -1
  29. package/dist/chat/tools/workflow.js +5 -3
  30. package/dist/chat/tools/workflow.js.map +1 -1
  31. package/dist/chat/tools.d.ts.map +1 -1
  32. package/dist/chat/tools.js +22 -0
  33. package/dist/chat/tools.js.map +1 -1
  34. package/dist/chat/urazuke_section.d.ts +8 -0
  35. package/dist/chat/urazuke_section.d.ts.map +1 -0
  36. package/dist/chat/urazuke_section.js +42 -0
  37. package/dist/chat/urazuke_section.js.map +1 -0
  38. package/dist/commands/pending.d.ts +1 -0
  39. package/dist/commands/pending.d.ts.map +1 -1
  40. package/dist/commands/pending.js +82 -8
  41. package/dist/commands/pending.js.map +1 -1
  42. package/dist/commands/start.d.ts +60 -0
  43. package/dist/commands/start.d.ts.map +1 -0
  44. package/dist/commands/start.js +265 -0
  45. package/dist/commands/start.js.map +1 -0
  46. package/dist/commands/urazuke.d.ts +17 -0
  47. package/dist/commands/urazuke.d.ts.map +1 -0
  48. package/dist/commands/urazuke.js +541 -0
  49. package/dist/commands/urazuke.js.map +1 -0
  50. package/dist/commands/workflow.js +4 -4
  51. package/dist/commands/workflow.js.map +1 -1
  52. package/dist/core/brain_config.d.ts +4 -0
  53. package/dist/core/brain_config.d.ts.map +1 -1
  54. package/dist/core/brain_config.js +2 -0
  55. package/dist/core/brain_config.js.map +1 -1
  56. package/dist/core/forge_embed.d.ts.map +1 -1
  57. package/dist/core/forge_embed.js +10 -0
  58. package/dist/core/forge_embed.js.map +1 -1
  59. package/dist/core/native_dialogs.d.ts +13 -0
  60. package/dist/core/native_dialogs.d.ts.map +1 -0
  61. package/dist/core/native_dialogs.js +111 -0
  62. package/dist/core/native_dialogs.js.map +1 -0
  63. package/dist/core/projects.d.ts +6 -0
  64. package/dist/core/projects.d.ts.map +1 -1
  65. package/dist/core/projects.js +1 -1
  66. package/dist/core/projects.js.map +1 -1
  67. package/dist/docs/doctrine/urazuke.md +38 -0
  68. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  69. package/dist/nac3/internal_manifest.js +96 -2
  70. package/dist/nac3/internal_manifest.js.map +1 -1
  71. package/dist/pending/store.d.ts +8 -1
  72. package/dist/pending/store.d.ts.map +1 -1
  73. package/dist/pending/store.js +8 -1
  74. package/dist/pending/store.js.map +1 -1
  75. package/dist/pending/types.d.ts +41 -1
  76. package/dist/pending/types.d.ts.map +1 -1
  77. package/dist/pending/types.js.map +1 -1
  78. package/dist/urazuke/catalog.d.ts +109 -0
  79. package/dist/urazuke/catalog.d.ts.map +1 -0
  80. package/dist/urazuke/catalog.js +459 -0
  81. package/dist/urazuke/catalog.js.map +1 -0
  82. package/dist/urazuke/close_gate.d.ts +36 -0
  83. package/dist/urazuke/close_gate.d.ts.map +1 -0
  84. package/dist/urazuke/close_gate.js +48 -0
  85. package/dist/urazuke/close_gate.js.map +1 -0
  86. package/dist/urazuke/current.d.ts +63 -0
  87. package/dist/urazuke/current.d.ts.map +1 -0
  88. package/dist/urazuke/current.js +133 -0
  89. package/dist/urazuke/current.js.map +1 -0
  90. package/dist/urazuke/cycle.d.ts +91 -0
  91. package/dist/urazuke/cycle.d.ts.map +1 -0
  92. package/dist/urazuke/cycle.js +310 -0
  93. package/dist/urazuke/cycle.js.map +1 -0
  94. package/dist/urazuke/enabled.d.ts +31 -0
  95. package/dist/urazuke/enabled.d.ts.map +1 -0
  96. package/dist/urazuke/enabled.js +51 -0
  97. package/dist/urazuke/enabled.js.map +1 -0
  98. package/dist/urazuke/evidence.d.ts +45 -0
  99. package/dist/urazuke/evidence.d.ts.map +1 -0
  100. package/dist/urazuke/evidence.js +264 -0
  101. package/dist/urazuke/evidence.js.map +1 -0
  102. package/dist/urazuke/gate.d.ts +68 -0
  103. package/dist/urazuke/gate.d.ts.map +1 -0
  104. package/dist/urazuke/gate.js +249 -0
  105. package/dist/urazuke/gate.js.map +1 -0
  106. package/dist/urazuke/probes.d.ts +13 -0
  107. package/dist/urazuke/probes.d.ts.map +1 -0
  108. package/dist/urazuke/probes.js +87 -0
  109. package/dist/urazuke/probes.js.map +1 -0
  110. package/dist/urazuke/prompts.generated.d.ts +12 -0
  111. package/dist/urazuke/prompts.generated.d.ts.map +1 -0
  112. package/dist/urazuke/prompts.generated.js +135 -0
  113. package/dist/urazuke/prompts.generated.js.map +1 -0
  114. package/dist/urazuke/prompts_client.d.ts +44 -0
  115. package/dist/urazuke/prompts_client.d.ts.map +1 -0
  116. package/dist/urazuke/prompts_client.js +151 -0
  117. package/dist/urazuke/prompts_client.js.map +1 -0
  118. package/dist/urazuke/quality.d.ts +99 -0
  119. package/dist/urazuke/quality.d.ts.map +1 -0
  120. package/dist/urazuke/quality.js +269 -0
  121. package/dist/urazuke/quality.js.map +1 -0
  122. package/dist/urazuke/receipts.d.ts +90 -0
  123. package/dist/urazuke/receipts.d.ts.map +1 -0
  124. package/dist/urazuke/receipts.js +171 -0
  125. package/dist/urazuke/receipts.js.map +1 -0
  126. package/dist/urazuke/report.d.ts +23 -0
  127. package/dist/urazuke/report.d.ts.map +1 -0
  128. package/dist/urazuke/report.js +62 -0
  129. package/dist/urazuke/report.js.map +1 -0
  130. package/dist/urazuke/retro.d.ts +52 -0
  131. package/dist/urazuke/retro.d.ts.map +1 -0
  132. package/dist/urazuke/retro.js +145 -0
  133. package/dist/urazuke/retro.js.map +1 -0
  134. package/dist/urazuke/section.d.ts +43 -0
  135. package/dist/urazuke/section.d.ts.map +1 -0
  136. package/dist/urazuke/section.js +64 -0
  137. package/dist/urazuke/section.js.map +1 -0
  138. package/dist/urazuke/stacks.d.ts +42 -0
  139. package/dist/urazuke/stacks.d.ts.map +1 -0
  140. package/dist/urazuke/stacks.js +264 -0
  141. package/dist/urazuke/stacks.js.map +1 -0
  142. package/dist/urazuke/workflow.d.ts +23 -0
  143. package/dist/urazuke/workflow.d.ts.map +1 -0
  144. package/dist/urazuke/workflow.js +64 -0
  145. package/dist/urazuke/workflow.js.map +1 -0
  146. package/dist/version.d.ts +1 -1
  147. package/dist/version.js +1 -1
  148. package/dist/workflow/config.d.ts +9 -4
  149. package/dist/workflow/config.d.ts.map +1 -1
  150. package/dist/workflow/config.js +4 -1
  151. package/dist/workflow/config.js.map +1 -1
  152. package/dist/workflow/definitions.d.ts +20 -4
  153. package/dist/workflow/definitions.d.ts.map +1 -1
  154. package/dist/workflow/definitions.js +16 -3
  155. package/dist/workflow/definitions.js.map +1 -1
  156. package/dist/workflow/instances.d.ts.map +1 -1
  157. package/dist/workflow/instances.js +6 -0
  158. package/dist/workflow/instances.js.map +1 -1
  159. package/dist/workflow/orchestrator.d.ts +10 -1
  160. package/dist/workflow/orchestrator.d.ts.map +1 -1
  161. package/dist/workflow/orchestrator.js +54 -7
  162. package/dist/workflow/orchestrator.js.map +1 -1
  163. package/dist/workflow/select.d.ts +5 -1
  164. package/dist/workflow/select.d.ts.map +1 -1
  165. package/dist/workflow/select.js +16 -5
  166. package/dist/workflow/select.js.map +1 -1
  167. package/dist/workflow/state.d.ts +3 -2
  168. package/dist/workflow/state.d.ts.map +1 -1
  169. package/dist/workflow/state.js.map +1 -1
  170. package/docs/doctrine/urazuke.md +38 -0
  171. package/package.json +18 -20
  172. package/src/i18n/catalogs/ar.json +550 -542
  173. package/src/i18n/catalogs/de.json +550 -542
  174. package/src/i18n/catalogs/en.json +550 -542
  175. package/src/i18n/catalogs/es.json +550 -542
  176. package/src/i18n/catalogs/fr.json +550 -542
  177. package/src/i18n/catalogs/hi.json +550 -542
  178. package/src/i18n/catalogs/it.json +550 -542
  179. package/src/i18n/catalogs/ja.json +550 -542
  180. package/src/i18n/catalogs/pt.json +550 -542
  181. package/src/i18n/catalogs/zh.json +550 -542
@@ -1 +1 @@
1
- {"version":3,"file":"yf.d.ts","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AAUA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,wBAAgB,YAAY,IAAI,OAAO,CA8GtC"}
1
+ {"version":3,"file":"yf.d.ts","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AAUA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyEpC,wBAAgB,YAAY,IAAI,OAAO,CAgHtC"}
package/dist/bin/yf.js CHANGED
@@ -32,6 +32,8 @@ import { registerPublishCommand } from '../commands/publish.js';
32
32
  import { registerProjectsCommand } from '../commands/projects.js';
33
33
  import { registerPendingCommand } from '../commands/pending.js';
34
34
  import { registerWorkflowCommand } from '../commands/workflow.js';
35
+ import { registerUrazukeCommand } from '../commands/urazuke.js';
36
+ import { registerStartCommand } from '../commands/start.js';
35
37
  import { registerWiringCommand } from '../commands/wiring.js';
36
38
  import { registerTestAgentCommand } from '../commands/test_agent.js';
37
39
  import { registerLessonsCommand } from '../commands/lessons.js';
@@ -120,6 +122,8 @@ export function buildProgram() {
120
122
  registerProjectsCommand(program);
121
123
  registerPendingCommand(program);
122
124
  registerWorkflowCommand(program);
125
+ registerUrazukeCommand(program);
126
+ registerStartCommand(program);
123
127
  registerWiringCommand(program);
124
128
  registerTestAgentCommand(program);
125
129
  registerLessonsCommand(program);
@@ -1 +1 @@
1
- {"version":3,"file":"yf.js","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yf.js","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE;;;;;;;;sDAQsD;AACtD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,IAAI,CAAC;SACV,WAAW,CAAC,8DAA8D,CAAC;SAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,6BAA6B,CAAC;SAChE,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC;SACrC,kBAAkB,CAAC,0CAA0C,CAAC,CAAC;IAElE;;;8EAG0E;IAC1E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,aAAgE,CAAC,CAAC;YAC3F,IAAI,cAAc,CAAC,GAAG,CAAC;gBAAE,MAAM,kBAAkB,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC,CAAC,wCAAwC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACzC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACtC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,mEAAmE;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC;IACxF,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC/B;4DACwD;IACxD,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B;;kDAE8C;IAC9C,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC;qDACiD;IACjD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qDAAqD;IACrD,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B;kBACc;IACd,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,4DAA4D;IAC5D,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5B,qDAAqD;IACrD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAClC,yEAAyE;IACzE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC;iEAC6D;IAC7D,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B;;sCAEkC;IAClC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B;;;oDAGgD;IAChD,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7B;8DAC0D;IAC1D,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE9B;6EACyE;IACzE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB;;gFAE4E;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACnG,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,CAAC,MAAM,GAAG,wBAAwB,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,0EAA0E;AAC1E,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,2EAA2E;AAC3E,2EAA2E;AAC3E,2DAA2D;AAC3D,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvD;;;uDAGmD;IACnD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACnE;sDACkD;IAClD,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzB;;;;;0BAKc;YACd,MAAM,EAAE,GAAI,GAAiC,CAAC,WAAW,CAAC;YAC1D,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;oBAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAW,CAAC,CAAC,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP;oEACgD;oBAChD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctrine_digest.d.ts","sourceRoot":"","sources":["../../src/chat/doctrine_digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,eAAe,EAAE,mBAAmB,EA4JhD,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,MAAM,WAAW,qBAAqB;IACpC;4EACwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;uEACuE;AACvE,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,qBAA0B,GAAG,MAAM,EAAE,CAiBnF"}
1
+ {"version":3,"file":"doctrine_digest.d.ts","sourceRoot":"","sources":["../../src/chat/doctrine_digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,eAAe,EAAE,mBAAmB,EAwKhD,CAAC;AAEF,6DAA6D;AAC7D,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC;AAED,MAAM,WAAW,qBAAqB;IACpC;4EACwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;uEACuE;AACvE,wBAAgB,wBAAwB,CAAC,IAAI,GAAE,qBAA0B,GAAG,MAAM,EAAE,CAiBnF"}
@@ -118,6 +118,17 @@ export const DOCTRINE_DIGEST = [
118
118
  + 'is every call site (Kikan 1543). yf audit persistence. '
119
119
  + 'Full: discover.',
120
120
  },
121
+ {
122
+ slugs: ['urazuke'],
123
+ rule: 'URAZUKE (the method, mechanical): the project runs the 24-step ladder '
124
+ + '(or N0..N7 then 5..23 on a legacy). The CURRENT step prompt is in '
125
+ + 'your system prompt every turn: act on it, produce the artifacts at '
126
+ + 'the paths it names, ask the owner for THEIR inputs, never invent them. '
127
+ + 'A task closes only when Forge evaluates the step GREEN; a red step '
128
+ + 'refuses pending.close; force_reason belongs to the OWNER, never to you. '
129
+ + 'Evidence = receipts Forge records, not your summary. No deadlines. '
130
+ + 'yujin.urazuke.status / .step. Full: discover.',
131
+ },
121
132
  {
122
133
  slugs: ['concurrency-scale'],
123
134
  rule: 'size every app to its expected CONCURRENCY: in relevamiento ASK peak '
@@ -1 +1 @@
1
- {"version":3,"file":"doctrine_digest.js","sourceRoot":"","sources":["../../src/chat/doctrine_digest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctrine_digest.js","sourceRoot":"","sources":["../../src/chat/doctrine_digest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/chat/panel.ts"],"names":[],"mappings":"AAmBA,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;2BAKuB;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CA+6axD"}
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/chat/panel.ts"],"names":[],"mappings":"AAmBA,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;2BAKuB;IACvB,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CA4sbxD"}
@@ -92,6 +92,7 @@ export function renderPanelHtml(cfg) {
92
92
  pzOrbit: tForLang(lang, 'pizarron.graph.orbit'),
93
93
  pzOrbitSpeed: tForLang(lang, 'pizarron.graph.orbit.speed'),
94
94
  startupTabsLabel: tForLang(lang, 'settings.startupTabs'),
95
+ urazukeEnabledLabel: tForLang(lang, 'settings.urazukeEnabled'),
95
96
  /* Director sprint slice 6 -- agent overlay strings. */
96
97
  agentsButton: tForLang(lang, 'panel.button.agents'),
97
98
  agentsTitle: tForLang(lang, 'panel.agents.title'),
@@ -302,6 +303,9 @@ export function renderPanelHtml(cfg) {
302
303
  readAloudContent: tForLang(lang, 'panel.readAloud.content'),
303
304
  tabOne: tForLang(lang, 'panel.pizarron.tabOne'),
304
305
  tabMany: tForLang(lang, 'panel.pizarron.tabMany'),
306
+ uzkSave: tForLang(lang, 'settings.urazukePrompts.save'),
307
+ uzkSaved: tForLang(lang, 'settings.urazukePrompts.saved'),
308
+ uzkReset: tForLang(lang, 'settings.urazukePrompts.resetDone'),
305
309
  };
306
310
  const runtimeConfig = JSON.stringify({
307
311
  projectName: cfg.projectName,
@@ -999,6 +1003,40 @@ body {
999
1003
  * palabra larga (p.ej. MobileManagedBrainClient) corte dentro de la card
1000
1004
  * y no se desborde por la derecha. */
1001
1005
  #yf-full .pz-wfl-task-title { flex: 1 1 auto; min-width: 0; line-height: 1.2; overflow-wrap: anywhere; word-break: break-word; }
1006
+ /* URAZUKE (2026-10-19): la escalera (cuatro tramos, 24 peldanos) + el peldano en curso. */
1007
+ #yf-full .pz-body.pz-uzk-wrap { background: var(--bg-2, #e0d8c4); padding: 18px 20px; overflow-y: auto; }
1008
+ #yf-full .pz-uzk-head { background: var(--bg-1, #f5f0e6); border: 1px solid var(--border, #d4cbb8); border-radius: 8px; padding: 14px 16px; margin-bottom: 14px; }
1009
+ #yf-full .pz-uzk-title { font-family: var(--font-kanji, "Noto Serif JP", serif); font-size: 18px; color: var(--ink, #1a1a1a); }
1010
+ #yf-full .pz-uzk-sub { font-size: 12px; color: var(--ink-muted, #6f6650); margin-top: 3px; }
1011
+ #yf-full .pz-uzk-state { display: inline-block; font-size: 11px; border-radius: 10px; padding: 1px 9px; margin-left: 6px; font-weight: 700; }
1012
+ #yf-full .pz-uzk-state.uzk-green { color: #fff; background: #6f8b5e; }
1013
+ #yf-full .pz-uzk-state.uzk-red { color: #fff; background: #c8472e; }
1014
+ #yf-full .pz-uzk-state.uzk-owner { color: var(--ink, #1a1a1a); background: var(--amber, #c8a04d); }
1015
+ #yf-full .pz-uzk-state.uzk-closed { color: #fff; background: var(--indigo, #4f5b87); }
1016
+ #yf-full .pz-uzk-flow { display: flex; align-items: flex-start; gap: 22px; overflow-x: auto; padding: 6px 4px 16px; }
1017
+ #yf-full .pz-uzk-col { flex: 0 0 auto; width: 232px; }
1018
+ #yf-full .pz-uzk-tramo { font-family: var(--font-kanji, "Noto Serif JP", serif); font-size: 13px; font-weight: 700; color: var(--ink, #1a1a1a); border-bottom: 2px solid #c8b89a; padding: 4px 2px 6px; margin-bottom: 8px; }
1019
+ #yf-full .pz-uzk-step { display: flex; align-items: flex-start; gap: 7px; background: var(--bg-1, #f5f0e6); border: 1px solid var(--border, #d4cbb8); border-left-width: 4px; border-radius: 6px; padding: 6px 8px; margin-bottom: 6px; font-size: 12px; color: var(--ink-muted, #6f6650); }
1020
+ #yf-full .pz-uzk-step.uzk-closed { border-left-color: var(--indigo, #4f5b87); color: var(--ink, #1a1a1a); }
1021
+ #yf-full .pz-uzk-step.uzk-green { border-left-color: #6f8b5e; color: var(--ink, #1a1a1a); }
1022
+ #yf-full .pz-uzk-step.uzk-red { border-left-color: #c8472e; }
1023
+ #yf-full .pz-uzk-step.uzk-owner { border-left-color: var(--amber, #c8a04d); }
1024
+ #yf-full .pz-uzk-step.uzk-current { box-shadow: 0 2px 12px rgba(200,160,77,0.3); font-weight: 600; color: var(--ink, #1a1a1a); }
1025
+ #yf-full .pz-uzk-num { font-family: ui-monospace, Menlo, monospace; font-size: 11px; flex: 0 0 auto; min-width: 22px; }
1026
+ #yf-full .pz-uzk-step-title { flex: 1 1 auto; min-width: 0; line-height: 1.2; overflow-wrap: anywhere; }
1027
+ #yf-full .pz-uzk-fail { display: block; font-size: 10px; color: #c8472e; margin-top: 3px; font-weight: 400; }
1028
+ #yf-full .pz-uzk-adhoc { margin: 1rem 0 0; padding: .8rem 1rem; border-top: 0.5px solid rgba(127,127,127,0.35); font-size: .9rem; }
1029
+ #yf-full .pz-uzk-adhoc h4 { margin: 0 0 .4rem; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; opacity: .75; }
1030
+ #yf-full .pz-uzk-adhoc ul { margin: 0; padding-left: 1.1rem; }
1031
+ #yf-full .pz-uzk-stage { opacity: .6; font-size: .8rem; }
1032
+ #yf-full .pz-uzk-cur { background: var(--bg-1, #f5f0e6); border: 1px solid var(--border, #d4cbb8); border-radius: 8px; padding: 14px 16px; margin-top: 6px; }
1033
+ #yf-full .pz-uzk-cur h4 { margin: 10px 0 6px; font-size: 12px; color: var(--ink-muted, #6f6650); text-transform: uppercase; letter-spacing: .04em; }
1034
+ #yf-full .pz-uzk-check { font-size: 12px; margin: 3px 0; color: var(--ink, #1a1a1a); }
1035
+ #yf-full .pz-uzk-check.uzk-fail { color: #c8472e; }
1036
+ #yf-full .pz-uzk-check.uzk-ok { color: #6f8b5e; }
1037
+ #yf-full .pz-uzk-prompt { white-space: pre-wrap; font-family: ui-monospace, Menlo, monospace; font-size: 11.5px; line-height: 1.45; background: var(--bg-2, #e0d8c4); border: 1px solid var(--border, #d4cbb8); border-radius: 6px; padding: 10px 12px; margin: 6px 0; color: var(--ink, #1a1a1a); }
1038
+ #yf-full .pz-uzk-src { font-size: 10px; color: var(--ink-muted, #6f6650); font-family: ui-monospace, Menlo, monospace; }
1039
+ #yf-full .pz-uzk-verify { margin: 0; padding-left: 18px; font-size: 12px; color: var(--ink, #1a1a1a); }
1002
1040
  /* Pendientes / Hecho (Pablo 2026-10-11): lista clickeable; el click abre el
1003
1041
  * detalle en su propia pestana. Misma tinta que el resto del pizarron. */
1004
1042
  #yf-full .pz-body.pz-pnd-wrap { background: var(--bg-1, #f5f0e6); padding: 12px; overflow: auto; }
@@ -2626,6 +2664,7 @@ ${renderYujinSplash()}
2626
2664
  </div>
2627
2665
  <div class="set-row">
2628
2666
  <label class="vad-check"><input type="checkbox" data-startup-tabs-enabled> ${escapeHtml(tr.startupTabsLabel)}</label>
2667
+ <label class="vad-check"><input type="checkbox" data-urazuke-enabled> ${escapeHtml(tr.urazukeEnabledLabel)}</label>
2629
2668
  </div>
2630
2669
  <div class="set-row" data-brain-tier-row="eco">
2631
2670
  <span class="set-lbl">${escapeHtml(tForLang(lang, 'settings.brain.modelEco'))}</span>
@@ -2869,6 +2908,18 @@ ${renderYujinSplash()}
2869
2908
  <div id="set-limits-msg" class="ke-msg"></div>
2870
2909
  </div>
2871
2910
 
2911
+ <!-- URAZUKE (2026-10-19) -- los prompts del metodo, con override por
2912
+ proyecto (.forge/urazuke-prompts.json). El dueno tiene el control. -->
2913
+ <div class="set-section" data-nac-id="yujin.panel.urazuke-prompts" data-nac-role="region">
2914
+ <div class="set-section-title">${escapeHtml(tForLang(lang, 'settings.urazukePrompts.title'))}</div>
2915
+ <div class="set-row"><span class="set-lbl" style="opacity:0.7;">${escapeHtml(tForLang(lang, 'settings.urazukePrompts.editHint'))}</span></div>
2916
+ <div id="set-uzk-prompts"></div>
2917
+ <div class="set-row" style="justify-content:flex-end;gap:6px;">
2918
+ <button type="button" class="set-btn" id="set-uzk-prompts-reset">${escapeHtml(tForLang(lang, 'settings.urazukePrompts.reset'))}</button>
2919
+ </div>
2920
+ <div id="set-uzk-prompts-msg" class="ke-msg"></div>
2921
+ </div>
2922
+
2872
2923
  <!-- alpha.59j -- Reader bookmarks viewer. Lista bookmarks
2873
2924
  persistidos en reader_sessions.json across all docs.
2874
2925
  Click row -> envia mensaje hidden al LLM con el
@@ -4400,6 +4451,68 @@ async function resetBrainBehavCard() {
4400
4451
  * renders one numeric input per field with the default as a
4401
4452
  * pill at the right. Save on blur (or Enter) -> POSTs the new
4402
4453
  * value. */
4454
+ /* URAZUKE (2026-10-19) -- prompts card: un <details> por contrato, un
4455
+ * textarea por prompt, guardar escribe el override del proyecto. */
4456
+ async function refreshUrazukePromptsCard() {
4457
+ const host = document.getElementById('set-uzk-prompts');
4458
+ if (!host) return;
4459
+ try {
4460
+ const r = await fetch('/api/forge/urazuke-prompts');
4461
+ if (!r.ok) return;
4462
+ const j = await r.json();
4463
+ if (!j || !j.ok || !Array.isArray(j.contracts)) return;
4464
+ const msgEl = document.getElementById('set-uzk-prompts-msg');
4465
+ host.innerHTML = '';
4466
+ const ver = document.createElement('div');
4467
+ ver.className = 'set-row';
4468
+ ver.innerHTML = '<span class="set-lbl" style="font-family:ui-monospace,monospace;font-size:11px;opacity:0.7;">' + escapeHtml(String(j.version || '')) + '</span>';
4469
+ host.appendChild(ver);
4470
+ for (const ct of j.contracts) {
4471
+ const det = document.createElement('details');
4472
+ det.style.cssText = 'margin:4px 0;border:1px solid var(--border);border-radius:6px;padding:4px 8px;';
4473
+ const sum = document.createElement('summary');
4474
+ sum.style.cssText = 'cursor:pointer;font-family:ui-monospace,monospace;font-size:12px;';
4475
+ sum.textContent = ct.key + ' (' + ct.prompts.length + ')' + (ct.overridden ? ' [override]' : ' [' + ct.source + ']');
4476
+ det.appendChild(sum);
4477
+ ct.prompts.forEach(function (ptxt, idx) {
4478
+ const ta = document.createElement('textarea');
4479
+ ta.value = String(ptxt);
4480
+ ta.rows = 6;
4481
+ ta.dataset.key = ct.key; ta.dataset.index = String(idx); ta.dataset.original = String(ptxt);
4482
+ ta.style.cssText = 'width:100%;box-sizing:border-box;margin:6px 0 2px;background:var(--bg-2,#1a1d27);border:1px solid var(--border);color:var(--ink,#e5e7eb);padding:6px;border-radius:4px;font-family:ui-monospace,monospace;font-size:11px;line-height:1.4;';
4483
+ const row = document.createElement('div');
4484
+ row.style.cssText = 'display:flex;justify-content:flex-end;gap:6px;margin-bottom:6px;';
4485
+ const save = document.createElement('button');
4486
+ save.type = 'button'; save.className = 'set-btn'; save.textContent = CONFIG.i18n.uzkSave || 'Guardar';
4487
+ save.addEventListener('click', async function () {
4488
+ const text = ta.value.replace(/\s+/g, ' ').trim();
4489
+ if (text === ta.dataset.original) return;
4490
+ try {
4491
+ const rr = await fetch('/api/forge/urazuke-prompts', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ key: ta.dataset.key, index: Number(ta.dataset.index), text: text }) });
4492
+ const jj = await rr.json();
4493
+ if (msgEl) msgEl.textContent = jj && jj.ok ? (CONFIG.i18n.uzkSaved || 'Guardado') + ' ' + ta.dataset.key + ' [' + (Number(ta.dataset.index) + 1) + ']' : String(jj && jj.error || 'error');
4494
+ if (jj && jj.ok) { ta.dataset.original = text; sum.textContent = ct.key + ' (' + ct.prompts.length + ') [override]'; }
4495
+ } catch (e) { if (msgEl) msgEl.textContent = 'error'; }
4496
+ });
4497
+ row.appendChild(save);
4498
+ det.appendChild(ta);
4499
+ det.appendChild(row);
4500
+ });
4501
+ host.appendChild(det);
4502
+ }
4503
+ } catch (e) { /* settings best-effort */ }
4504
+ }
4505
+
4506
+ async function resetUrazukePromptsCard() {
4507
+ const msgEl = document.getElementById('set-uzk-prompts-msg');
4508
+ try {
4509
+ const rr = await fetch('/api/forge/urazuke-prompts', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ reset_all: true }) });
4510
+ const jj = await rr.json();
4511
+ if (msgEl) msgEl.textContent = jj && jj.ok ? (CONFIG.i18n.uzkReset || 'Overrides quitados') : 'error';
4512
+ await refreshUrazukePromptsCard();
4513
+ } catch (e) { if (msgEl) msgEl.textContent = 'error'; }
4514
+ }
4515
+
4403
4516
  async function refreshLimitsCard() {
4404
4517
  const host = document.getElementById('set-limits-fields');
4405
4518
  if (!host) return;
@@ -5523,6 +5636,19 @@ function reorderPizarronTabs(fromId, toId) {
5523
5636
  renderPizarron();
5524
5637
  }
5525
5638
 
5639
+ /* Quitar una pestana sin recordarla como cerrada (la decision es del
5640
+ * servidor, no del usuario: vuelve sola cuando corresponda). */
5641
+ function pizarronDropItem(id) {
5642
+ const idx = state.pizarron.items.findIndex((x) => x.id === id);
5643
+ if (idx < 0) return;
5644
+ state.pizarron.items.splice(idx, 1);
5645
+ if (state.pizarron.activeId === id) {
5646
+ const next = state.pizarron.items[state.pizarron.items.length - 1];
5647
+ state.pizarron.activeId = next ? next.id : null;
5648
+ }
5649
+ renderPizarron();
5650
+ }
5651
+
5526
5652
  function pizarronCloseItem(id) {
5527
5653
  const idx = state.pizarron.items.findIndex((x) => x.id === id);
5528
5654
  if (idx < 0) return;
@@ -5816,6 +5942,11 @@ function renderPizarronCardBody(it) {
5816
5942
  return '<div class="pz-body pz-pnd-wrap pz-sumi" data-nac-id="yujin.pizarron.item.' + it.id + '.body" data-nac-role="region" data-nac-action="scroll" tabindex="0">'
5817
5943
  + renderPendingsView(it.content) + '</div>';
5818
5944
  }
5945
+ /* URAZUKE (2026-10-19): la escalera y el peldano en curso. */
5946
+ if (it.kind === 'urazuke') {
5947
+ return '<div class="pz-body pz-uzk-wrap pz-sumi" data-nac-id="yujin.pizarron.item.' + it.id + '.body" data-nac-role="region" data-nac-action="scroll" tabindex="0">'
5948
+ + renderUrazukeView(it.content) + '</div>';
5949
+ }
5819
5950
  if (it.kind === 'md' || it.kind === 'markdown') {
5820
5951
  /* PND-130 -- if a md/markdown tab actually carries HTML, render it as
5821
5952
  * the sanitized Yujin page (not the markdown renderer, which would show
@@ -6213,6 +6344,7 @@ function renderPendingsView(content) {
6213
6344
  + (impl && (impl.functional || impl.use_cases)
6214
6345
  ? '<span class="pz-pnd-chip pnd-doc" title="tiene expediente de implementacion">doc</span>'
6215
6346
  : '<span class="pz-pnd-chip pnd-nodoc" title="cerrado sin descripcion funcional">sin doc</span>')
6347
+ + (impl && impl.report ? '<span class="pz-pnd-chip pnd-doc" title="reporte honesto: verificado / creido / punto ciego">reporte</span>' : '')
6216
6348
  : '<span class="pz-pnd-chip ' + pndPrioClass(it.priority) + '">' + escapeHtml(String(it.priority != null ? it.priority : '-')) + '</span>'
6217
6349
  + '<span class="pz-pnd-chip pnd-cat">' + escapeHtml(pndCatLabel(it.category)) + '</span>'
6218
6350
  + (it.blocker_who ? '<span class="pz-pnd-chip pnd-who">' + escapeHtml(String(it.blocker_who)) + '</span>' : '');
@@ -6322,6 +6454,25 @@ function pendingDetailMd(it, done) {
6322
6454
  }
6323
6455
  }
6324
6456
  }
6457
+ /* URAZUKE (2026-10-19): el reporte honesto, armado por Forge desde los
6458
+ * recibos al cerrar: verificado / creido / punto ciego. */
6459
+ if (done && impl && impl.report) {
6460
+ var rep = impl.report;
6461
+ L.push('### Reporte honesto');
6462
+ L.push('');
6463
+ L.push('_Lo arma Forge desde los recibos de evidencia; el agente no lo escribe._');
6464
+ L.push('');
6465
+ var secs = [['Verificado (hay recibo)', rep.verified], ['Creido (declarado, sin recibo)', rep.believed], ['Puntos ciegos (nadie lo corrio)', rep.blind_spots]];
6466
+ for (var rs = 0; rs < secs.length; rs++) {
6467
+ var arr = Array.isArray(secs[rs][1]) ? secs[rs][1] : [];
6468
+ L.push('**' + secs[rs][0] + ' -- ' + arr.length + '**');
6469
+ L.push('');
6470
+ if (!arr.length) L.push('- ninguno');
6471
+ for (var ri = 0; ri < arr.length; ri++) L.push('- ' + String(arr[ri]));
6472
+ L.push('');
6473
+ }
6474
+ if (Array.isArray(rep.receipts) && rep.receipts.length) { L.push('Recibos: ' + rep.receipts.join(', ') + (rep.built_at ? ' (armado ' + pndFmtDate(rep.built_at) + ')' : '')); L.push(''); }
6475
+ }
6325
6476
  /* CRONOLOGIA: un solo eje de tiempo con todos los eventos del item, para no
6326
6477
  * tener que reconstruir el orden leyendo tres secciones distintas. */
6327
6478
  var hist = Array.isArray(it && it.history) ? it.history : [];
@@ -6625,6 +6776,113 @@ function initTasksTab(it) {
6625
6776
  * ================================================================== */
6626
6777
  /* PND-094 -- render de la vista de workflow (fases + tareas). El
6627
6778
  * content es el JSON de computeWorkflowView. Estatico, sin canvas. */
6779
+ /* URAZUKE (2026-10-19) -- la escalera: cuatro tramos como columnas, un
6780
+ * peldano por fila con su estado mecanico (cerrado / verde / rojo / a cargo
6781
+ * del dueno), y debajo el peldano en curso con su prompt exacto, los insumos
6782
+ * del dueno, los chequeos que Forge hace y la verificacion sin leer codigo.
6783
+ * El content viene del endpoint startup-tabs: { ladder, current }. */
6784
+ function renderUrazukeView(content) {
6785
+ var v;
6786
+ try { v = JSON.parse(content || '{}'); } catch (e) { v = null; }
6787
+ if (!v || !v.ladder || !Array.isArray(v.ladder.rows)) return '<div class="pz-wfl-empty">Sin escalera.</div>';
6788
+ var rows = v.ladder.rows;
6789
+ var stLbl = { closed: 'cerrado', green: 'verde', red: 'rojo', owner: 'dueno' };
6790
+ var closed = 0, red = 0;
6791
+ for (var i = 0; i < rows.length; i++) { if (rows[i].status === 'closed') closed++; if (rows[i].status === 'red') red++; }
6792
+ var pct = rows.length ? Math.round((closed / rows.length) * 100) : 0;
6793
+ var cur = v.current;
6794
+ var curNum = cur ? (cur.station != null ? 'N' + cur.station : String(cur.num)) : '';
6795
+ var out = '<div class="pz-uzk-head">'
6796
+ + '<div class="pz-uzk-title">Urazuke -- ' + escapeHtml(v.ladder.code || '') + ' (' + escapeHtml(v.ladder.kind === 'urazuke-legacy' ? 'sistema existente: normalizacion y despues la escalera' : 'proyecto nuevo: 24 peldanos') + ')</div>'
6797
+ + '<div class="pz-uzk-sub">' + closed + ' de ' + rows.length + ' peldanos cerrados &middot; ' + pct + '% &middot; ' + red + ' en rojo</div>'
6798
+ + '<div class="pz-wfl-bar"><div class="pz-wfl-fill" style="width:' + pct + '%"></div></div>'
6799
+ + '</div>';
6800
+ /* columnas: estaciones N0..N7 (si las hay) y los cuatro tramos. */
6801
+ var tramos = [
6802
+ { title: '0. Normalizacion del legado', test: function (r) { return r.num.charAt(0) === 'N'; } },
6803
+ { title: 'I. Arranque', test: function (r) { var n = Number(r.num); return r.num.charAt(0) !== 'N' && n >= 0 && n <= 4; } },
6804
+ { title: 'II. Bucle de construccion', test: function (r) { var n = Number(r.num); return r.num.charAt(0) !== 'N' && n >= 5 && n <= 12; } },
6805
+ { title: 'III. Salida a produccion', test: function (r) { var n = Number(r.num); return r.num.charAt(0) !== 'N' && n >= 13 && n <= 20; } },
6806
+ { title: 'IV. Operacion', test: function (r) { var n = Number(r.num); return r.num.charAt(0) !== 'N' && n >= 21 && n <= 23; } },
6807
+ ];
6808
+ out += '<div class="pz-uzk-flow">';
6809
+ for (var t = 0; t < tramos.length; t++) {
6810
+ var col = rows.filter(tramos[t].test);
6811
+ if (!col.length) continue;
6812
+ var cdone = 0; for (var c = 0; c < col.length; c++) if (col[c].status === 'closed') cdone++;
6813
+ out += '<div class="pz-uzk-col"><div class="pz-uzk-tramo">' + escapeHtml(tramos[t].title) + ' <span class="pz-uzk-src">' + cdone + '/' + col.length + '</span></div>';
6814
+ for (var k = 0; k < col.length; k++) {
6815
+ var r = col[k];
6816
+ var isCur = cur && r.task_id && cur.task_id === r.task_id;
6817
+ out += '<div class="pz-uzk-step uzk-' + escapeHtml(r.status) + (isCur ? ' uzk-current' : '') + '" title="' + escapeHtml(stLbl[r.status] || r.status) + (r.task_id ? ' - ' + escapeHtml(r.task_id) : '') + '">'
6818
+ + '<span class="pz-uzk-num">' + escapeHtml(r.num) + '</span>'
6819
+ + '<span class="pz-uzk-step-title">' + escapeHtml(r.title)
6820
+ + (r.status === 'red' && r.failing && r.failing.length ? '<span class="pz-uzk-fail">' + escapeHtml(String(r.failing[0])) + '</span>' : '')
6821
+ + '</span></div>';
6822
+ }
6823
+ out += '</div>';
6824
+ }
6825
+ out += '</div>';
6826
+ if (cur) {
6827
+ out += '<div class="pz-uzk-cur">'
6828
+ + '<div class="pz-uzk-title">Peldano en curso: ' + escapeHtml(curNum) + ' -- ' + escapeHtml(cur.title || '')
6829
+ + '<span class="pz-uzk-state uzk-' + escapeHtml(cur.status) + '">' + escapeHtml(stLbl[cur.status] || cur.status) + '</span></div>'
6830
+ + '<div class="pz-uzk-sub">' + escapeHtml(cur.summary || '') + ' &middot; tarea ' + escapeHtml(cur.task_id || '') + ' &middot; ' + cur.remaining + ' de ' + cur.total + ' abiertas</div>';
6831
+ if (cur.inputs && cur.inputs.length) {
6832
+ out += '<h4>Antes de enviar el prompt (lo hace el dueno)</h4>';
6833
+ for (var a = 0; a < cur.inputs.length; a++) {
6834
+ var ii = cur.inputs[a];
6835
+ out += '<div class="pz-uzk-check ' + (ii.status === 'ok' ? 'uzk-ok' : 'uzk-fail') + '">' + (ii.status === 'ok' ? '&#10003; ' : '&#9633; ') + escapeHtml(ii.label) + (ii.status === 'fail' ? ' <span class="pz-uzk-src">' + escapeHtml(ii.detail) + '</span>' : '') + '</div>';
6836
+ }
6837
+ }
6838
+ if (cur.checks && cur.checks.length) {
6839
+ out += '<h4>Lo que deja el agente (lo verifica Forge)</h4>';
6840
+ for (var b = 0; b < cur.checks.length; b++) {
6841
+ var cc = cur.checks[b];
6842
+ out += '<div class="pz-uzk-check ' + (cc.status === 'ok' ? 'uzk-ok' : cc.status === 'fail' ? 'uzk-fail' : '') + '">' + (cc.status === 'ok' ? '&#10003; ' : cc.status === 'fail' ? '&#9633; ' : '~ ') + escapeHtml(cc.label) + (cc.status === 'fail' ? ' <span class="pz-uzk-src">' + escapeHtml(cc.detail) + '</span>' : '') + '</div>';
6843
+ }
6844
+ }
6845
+ if (cur.prompts && cur.prompts.length) {
6846
+ out += '<h4>Prompt del peldano <span class="pz-uzk-src">(en ingles, se pega tal cual; fuente: ' + escapeHtml(cur.prompt_source || '') + ')</span></h4>';
6847
+ for (var q = 0; q < cur.prompts.length; q++) {
6848
+ out += '<div class="pz-uzk-prompt">' + (cur.prompts.length > 1 ? '[' + (q + 1) + '/' + cur.prompts.length + '] ' : '') + escapeHtml(cur.prompts[q]) + '</div>';
6849
+ }
6850
+ }
6851
+ if (cur.verify && cur.verify.length) {
6852
+ out += '<h4>Verificacion del dueno, sin leer codigo</h4><ul class="pz-uzk-verify">';
6853
+ for (var w = 0; w < cur.verify.length; w++) out += '<li>' + escapeHtml(cur.verify[w]) + '</li>';
6854
+ out += '</ul>';
6855
+ }
6856
+ out += '</div>';
6857
+ } else {
6858
+ out += '<div class="pz-wfl-empty">Todos los peldanos canonicos estan cerrados.</div>';
6859
+ }
6860
+ /* Tareas ad hoc del workflow (antes vivian en la pestana Workflow): las
6861
+ * del tramo en curso primero, abiertas; el resto, plegadas. */
6862
+ var adHoc = Array.isArray(v.ladder.ad_hoc) ? v.ladder.ad_hoc : [];
6863
+ var openAd = adHoc.filter(function (a) { return !a.closed; });
6864
+ if (openAd.length) {
6865
+ var curStage = v.ladder.current_stage_id || '';
6866
+ var here = openAd.filter(function (a) { return !curStage || a.stage_id === curStage; });
6867
+ var elsewhere = openAd.filter(function (a) { return curStage && a.stage_id !== curStage; });
6868
+ out += '<div class="pz-uzk-adhoc"><h4>Tareas ad hoc del tramo en curso (' + here.length + ')</h4>';
6869
+ if (here.length) {
6870
+ out += '<ul>';
6871
+ for (var h = 0; h < here.length; h++) out += '<li><span class="pz-uzk-num">' + escapeHtml(here[h].id) + '</span> ' + escapeHtml(here[h].title) + '</li>';
6872
+ out += '</ul>';
6873
+ } else {
6874
+ out += '<div class="pz-wfl-empty">ninguna en este tramo</div>';
6875
+ }
6876
+ if (elsewhere.length) {
6877
+ out += '<details><summary>Otros tramos (' + elsewhere.length + ')</summary><ul>';
6878
+ for (var e2 = 0; e2 < elsewhere.length; e2++) out += '<li><span class="pz-uzk-num">' + escapeHtml(elsewhere[e2].id) + '</span> ' + escapeHtml(elsewhere[e2].title) + ' <span class="pz-uzk-stage">' + escapeHtml(elsewhere[e2].stage_id || '') + '</span></li>';
6879
+ out += '</ul></details>';
6880
+ }
6881
+ out += '</div>';
6882
+ }
6883
+ return out;
6884
+ }
6885
+
6628
6886
  function renderWorkflowView(content) {
6629
6887
  let v;
6630
6888
  try { v = JSON.parse(content || '{}'); } catch (e) { v = null; }
@@ -7283,10 +7541,10 @@ function unmarkStartupTabClosed(key) {
7283
7541
  * titulo real lo recordamos del ultimo fetch; el fallback cubre las que
7284
7542
  * nunca se vieron. */
7285
7543
  var yfStartupTitles = {};
7286
- var NATIVE_TAB_KEYS = ['startup_graph', 'startup_graph_sem', 'startup_pendings', 'startup_done', 'startup_workflow', 'startup_tasks', 'startup_files', 'coding_canvas'];
7544
+ var NATIVE_TAB_KEYS = ['startup_graph', 'startup_graph_sem', 'startup_pendings', 'startup_done', 'startup_workflow', 'startup_urazuke', 'startup_tasks', 'startup_files', 'coding_canvas'];
7287
7545
  var NATIVE_TAB_FALLBACK = {
7288
7546
  startup_graph: 'Grafo', startup_graph_sem: 'Grafo semantico',
7289
- startup_pendings: 'Pendientes', startup_done: 'Hecho', startup_workflow: 'Workflow',
7547
+ startup_pendings: 'Pendientes', startup_done: 'Hecho', startup_workflow: 'Workflow', startup_urazuke: 'Urazuke',
7290
7548
  startup_tasks: 'Tareas', startup_files: 'Archivos', coding_canvas: 'Coding',
7291
7549
  };
7292
7550
  function nativeTabLabel(key) { return yfStartupTitles[key] || NATIVE_TAB_FALLBACK[key] || key; }
@@ -7345,6 +7603,12 @@ async function loadStartupTabs(isRefresh) {
7345
7603
  const data = await r.json();
7346
7604
  if (!data || !data.ok || !data.enabled || !Array.isArray(data.tabs)) return;
7347
7605
  const closed = getClosedStartupTabs();
7606
+ /* Pestanas que el servidor pide cerrar (una sola ventana canonica:
7607
+ * Workflow mientras corre la escalera, Urazuke cuando esta apagado).
7608
+ * Se quitan sin marcarlas como cerradas por el usuario. */
7609
+ if (Array.isArray(data.hidden)) {
7610
+ for (const hk of data.hidden) pizarronDropItem(hk);
7611
+ }
7348
7612
  for (const t of data.tabs) {
7349
7613
  if (!t || !t.key) continue;
7350
7614
  /* recordar el titulo (localizado) para el menu de restaurar */
@@ -10102,6 +10366,8 @@ async function brainConfigLoad() {
10102
10366
  if (ecoToggle) ecoToggle.checked = data.config.eco_enabled !== false;
10103
10367
  const startupToggle = document.querySelector('[data-startup-tabs-enabled]');
10104
10368
  if (startupToggle) startupToggle.checked = data.config.startup_tabs_enabled !== false;
10369
+ const uzToggle = document.querySelector('[data-urazuke-enabled]');
10370
+ if (uzToggle) uzToggle.checked = typeof data.urazuke_enabled_effective === 'boolean' ? data.urazuke_enabled_effective : data.config.urazuke_enabled !== false;
10105
10371
  const gemCacheToggle = document.querySelector('[data-gemini-explicit-cache]');
10106
10372
  if (gemCacheToggle) gemCacheToggle.checked = data.config.gemini_explicit_cache === true;
10107
10373
  /* Alcance (2026-09-30): elegir cerebro aca no lo cambia en las otras
@@ -10248,6 +10514,19 @@ function brainConfigBind() {
10248
10514
  startupToggle.checked ? 'pestanas al abrir activadas' : 'pestanas al abrir desactivadas');
10249
10515
  });
10250
10516
  }
10517
+ const uzToggle = document.querySelector('[data-urazuke-enabled]');
10518
+ if (uzToggle) {
10519
+ uzToggle.addEventListener('change', () => {
10520
+ brainConfigSave({ urazuke_enabled: !!uzToggle.checked },
10521
+ uzToggle.checked ? 'Urazuke activado' : 'Urazuke desactivado').then(function () {
10522
+ /* Al apagar, la pestana Urazuke se cierra y vuelve Workflow; al
10523
+ * encender, al reves. El servidor decide (hidden), el panel obedece. */
10524
+ if (uzToggle.checked) unmarkStartupTabClosed('startup_urazuke');
10525
+ else unmarkStartupTabClosed('startup_workflow');
10526
+ loadStartupTabs(false).catch(function () {});
10527
+ });
10528
+ });
10529
+ }
10251
10530
  const gemCacheToggle = document.querySelector('[data-gemini-explicit-cache]');
10252
10531
  if (gemCacheToggle) {
10253
10532
  gemCacheToggle.addEventListener('change', () => {
@@ -12218,6 +12497,12 @@ document.addEventListener('DOMContentLoaded', () => {
12218
12497
  if (limitsResetBtn) {
12219
12498
  limitsResetBtn.addEventListener('click', function () { resetLimitsCard().catch(function () {}); });
12220
12499
  }
12500
+ /* URAZUKE prompts card. */
12501
+ refreshUrazukePromptsCard().catch(() => undefined);
12502
+ const uzkResetBtn = document.getElementById('set-uzk-prompts-reset');
12503
+ if (uzkResetBtn) {
12504
+ uzkResetBtn.addEventListener('click', function () { resetUrazukePromptsCard().catch(function () {}); });
12505
+ }
12221
12506
  /* PND-156 -- Brain behaviour card. */
12222
12507
  refreshBrainBehavCard().catch(() => undefined);
12223
12508
  const bbResetBtn = document.getElementById('set-brainbehav-reset');