@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
@@ -0,0 +1,459 @@
1
+ /**
2
+ * URAZUKE -- the evidence method, as DATA Forge can enforce.
3
+ *
4
+ * The method (github.com/pkuschnirof/urazuke, CC BY-SA) is a ladder of 24
5
+ * steps in four stretches, each with an exact prompt, the inputs the owner
6
+ * must have ready before sending it, the artifacts the agent must leave in
7
+ * the repository, and a completion check the owner performs WITHOUT reading
8
+ * code. This file is the catalogue: what each step is, what it needs, what
9
+ * it leaves behind, and how the machine verifies it.
10
+ *
11
+ * Why a catalogue and not a doctrine: the previous project flow (6 phases /
12
+ * 18 steps) lived in prose -- `docs/doctrine/workflow.md` + `gates.md` say
13
+ * "you REFUSE to advance", and the brain advanced anyway. The only gate that
14
+ * ever held was G9 (sizing), the only one written in code. So every step
15
+ * here names its artifacts by path and the evaluator in `gate.ts` checks the
16
+ * disk and the registries, never the brain's word. Prose is advisory;
17
+ * `evaluateStep()` is not.
18
+ *
19
+ * The prompts themselves are NOT written here: they are vendored verbatim
20
+ * from the method's generated files by scripts/sync_urazuke_prompts.mjs
21
+ * into prompts.generated.ts, so the text the brain receives is the text the
22
+ * method publishes in its eight languages.
23
+ *
24
+ * Two ladders: `URAZUKE_STEPS` (a new project climbs 0..23) and
25
+ * `URAZUKE_LEGACY_STATIONS` (an existing system built without the method
26
+ * is normalised through N0..N7 first, then enters the loop at step 5).
27
+ *
28
+ * ASCII-only.
29
+ */
30
+ const A = (path, extra = {}) => ({ path, ...extra });
31
+ export const URAZUKE_TRAMOS = {
32
+ arranque: { title: 'I. Arranque', steps: [0, 4] },
33
+ bucle: { title: 'II. Bucle de construccion', steps: [5, 12] },
34
+ salida: { title: 'III. Salida a produccion', steps: [13, 20] },
35
+ operacion: { title: 'IV. Operacion', steps: [21, 23] },
36
+ };
37
+ export const URAZUKE_STEPS = [
38
+ {
39
+ num: 0, id: 'u00-elegibilidad', tramo: 'arranque',
40
+ title: 'Este proyecto se puede encarar asi? (elegibilidad)',
41
+ summary: 'Decidir, con criterios excluyentes y ponderados, si el proyecto se puede construir con el metodo.',
42
+ form: 'conversation', mandatory: 'always', prompt_key: 'peldano-00',
43
+ inputs: [A('docs/INITIAL_SURVEY.md', { label: 'relevamiento inicial escrito por el dueno' })],
44
+ artifacts: [A('docs/ELIGIBILITY.md', { must_contain: ['eligib|elegib'], label: 'veredicto de elegibilidad' })],
45
+ verify: [
46
+ 'Hay un veredicto escrito (elegible / no elegible / elegible con proyectos previos)?',
47
+ 'Cada criterio excluyente tiene su verificacion, no una opinion?',
48
+ 'Lo que falta quedo como pendiente, no como suposicion?',
49
+ ],
50
+ evaluator: 'artifacts',
51
+ },
52
+ {
53
+ num: 1, id: 'u01-contrato-de-convivencia', tramo: 'arranque',
54
+ title: 'El contrato de convivencia',
55
+ summary: 'Las reglas que el agente cumple en cada sesion, escritas antes del codigo.',
56
+ form: 'one_shot', mandatory: 'always', prompt_key: 'peldano-01',
57
+ inputs: [A('docs/ELIGIBILITY.md'), A('docs/MY_PREFERENCES.md', { min_bytes: 50, label: 'tus preferencias, en una pagina' })],
58
+ artifacts: [A('docs/WORKING_AGREEMENT.md', { must_contain: ['evidence|evidencia'], label: 'contrato de convivencia' })],
59
+ verify: [
60
+ 'El contrato dice que ninguna afirmacion de "hecho" vale sin evidencia?',
61
+ 'Dice que el agente pide lo que falta en vez de estimar?',
62
+ 'Esta cargado donde la herramienta lo lee en cada sesion?',
63
+ ],
64
+ evaluator: 'artifacts',
65
+ },
66
+ {
67
+ num: 2, id: 'u02-definicion-y-lectura', tramo: 'arranque',
68
+ title: 'La definicion del proyecto, el arbol semantico y la lectura obligatoria',
69
+ summary: 'Que es el sistema, para quien, con que casos de uso, y que se lee en cada sesion.',
70
+ form: 'conversation', mandatory: 'always', prompt_key: 'peldano-02',
71
+ inputs: [A('docs/INITIAL_SURVEY.md'), A('docs/WORKING_AGREEMENT.md')],
72
+ artifacts: [
73
+ A('PROJECT.md', { label: 'definicion del proyecto' }),
74
+ A('docs/SEMANTIC_TREE.md', { label: 'arbol semantico' }),
75
+ A('docs/STATUS.md', { min_bytes: 80, label: 'estado del proyecto' }),
76
+ ],
77
+ verify: [
78
+ 'PROJECT.md explica el sistema a alguien que no lo conoce?',
79
+ 'El arbol semantico tiene cada caso de uso que vos nombraste?',
80
+ 'Lo inferido esta marcado como inferido?',
81
+ ],
82
+ evaluator: 'artifacts',
83
+ },
84
+ {
85
+ num: 3, id: 'u03-dimensionar', tramo: 'arranque',
86
+ title: 'Dimensionar antes de disenar la arquitectura',
87
+ summary: 'Volumetria, retencion, concurrencia y envoltura de hardware antes de elegir la persistencia.',
88
+ form: 'conversation', mandatory: 'always', prompt_key: 'peldano-03',
89
+ inputs: [A('docs/VOLUME_SURVEY.md', { min_bytes: 80, label: 'relevamiento de volumen' }), A('PROJECT.md'), A('docs/SEMANTIC_TREE.md')],
90
+ artifacts: [A('docs/SIZING.md', { label: 'dimensionamiento escrito' })],
91
+ verify: [
92
+ 'Cada numero tiene su fuente (vos, el negocio, medido), no una estimacion del agente?',
93
+ 'La persistencia elegida tiene su envoltura de validez escrita?',
94
+ 'El registro de dimensionamiento de Forge esta admisible (G9)?',
95
+ ],
96
+ evaluator: 'sizing',
97
+ },
98
+ {
99
+ num: 4, id: 'u04-esqueleto', tramo: 'arranque',
100
+ title: 'El esqueleto con sus compuertas',
101
+ summary: 'Repositorio, integracion continua, entornos y las compuertas que nadie puede saltar.',
102
+ form: 'one_shot', mandatory: 'always', prompt_key: 'peldano-04',
103
+ inputs: [A('docs/ENVIRONMENTS_SURVEY.md', { min_bytes: 80, label: 'relevamiento de entornos' }), A('docs/SIZING.md')],
104
+ artifacts: [
105
+ A('docs/GATES.md', { label: 'las compuertas escritas' }),
106
+ A('docs/STATUS.md', { must_contain: ['test'], label: 'STATUS con el comando de la bateria' }),
107
+ ],
108
+ verify: [
109
+ 'La cadena corre sola en cada push y se pone en rojo cuando corresponde?',
110
+ 'Hay un comando conocido para correr la bateria, anotado en STATUS?',
111
+ 'Las compuertas estan escritas en GATES.md?',
112
+ ],
113
+ evaluator: 'ci',
114
+ },
115
+ {
116
+ num: 5, id: 'u05-pendientes', tramo: 'bucle',
117
+ title: 'El plan son los pendientes',
118
+ summary: 'Cada pendiente lleva su especificacion completa: criterios de aceptacion y como se verifica.',
119
+ form: 'routine', mandatory: 'always', prompt_key: 'peldano-05',
120
+ inputs: [A('docs/blocks/*.md', { label: 'el pedido del bloque, escrito por vos' }), A('docs/SEMANTIC_TREE.md')],
121
+ artifacts: [],
122
+ verify: [
123
+ 'Cada pendiente abierto tiene criterios de aceptacion "dado, cuando, entonces"?',
124
+ 'Cada pendiente dice como se verifica sin leer codigo?',
125
+ 'Los pendientes cerrados conservan su especificacion (documentacion del hecho)?',
126
+ ],
127
+ evaluator: 'pendings_spec',
128
+ },
129
+ {
130
+ num: 6, id: 'u06-decisiones', tramo: 'bucle',
131
+ title: 'Las decisiones se escriben junto al codigo',
132
+ summary: 'Cada decision con dueno, fecha, la frase textual de origen y donde se aplica.',
133
+ form: 'conversation', mandatory: 'always', prompt_key: 'peldano-06',
134
+ inputs: [A('docs/WORKING_AGREEMENT.md')],
135
+ artifacts: [A('docs/DECISIONS.md', { label: 'registro de decisiones' })],
136
+ verify: [
137
+ 'Cada decision tiene quien, cuando y la frase textual?',
138
+ 'El agente pregunta antes de decidir lo que es tuyo?',
139
+ ],
140
+ evaluator: 'artifacts',
141
+ },
142
+ {
143
+ num: 7, id: 'u07-medir', tramo: 'bucle',
144
+ title: 'Medir antes de construir, con un instrumento que tambien se verifica',
145
+ summary: 'Un numero que alimenta una decision se mide con un programa que tiene su propio test.',
146
+ form: 'one_shot', mandatory: 'proportional', prompt_key: 'peldano-07',
147
+ inputs: [],
148
+ artifacts: [],
149
+ verify: [
150
+ 'El medidor esta en el repositorio y tiene su test?',
151
+ 'El numero viene con el comando que lo produce y la fecha?',
152
+ 'Lo aproximado esta marcado como aproximado, con su margen?',
153
+ ],
154
+ evaluator: 'meters',
155
+ },
156
+ {
157
+ num: 8, id: 'u08-tests-en-rojo', tramo: 'bucle',
158
+ title: 'Tests como candados, probados en rojo',
159
+ summary: 'El rojo contra el codigo anterior como recibo, el verde, la regresion y la prueba de punta a punta.',
160
+ form: 'routine', mandatory: 'always', prompt_key: 'peldano-08',
161
+ inputs: [A('docs/WORKING_AGREEMENT.md'), A('docs/STATUS.md', { must_contain: ['test'] })],
162
+ artifacts: [A('docs/WORKING_AGREEMENT.md', { must_contain: ['red|rojo'], label: 'la rutina del rojo en el contrato' })],
163
+ verify: [
164
+ 'El rojo es un recibo (comando, version, numeros, codigo de salida) y no un relato?',
165
+ 'La regresion corrio en la misma sesion, con numeros?',
166
+ 'La prueba de pantalla verifica tambien el efecto en el backend?',
167
+ ],
168
+ evaluator: 'receipts',
169
+ },
170
+ {
171
+ num: 9, id: 'u09-calidad-de-codigo', tramo: 'bucle',
172
+ title: 'Calidad del codigo verificada por maquina, con compuerta',
173
+ summary: 'Linter, formateador, limites de tamano y complejidad, duplicacion, codigo muerto, cobertura con trinquete.',
174
+ form: 'routine', mandatory: 'minimum', prompt_key: 'peldano-09',
175
+ inputs: [A('docs/GATES.md')],
176
+ artifacts: [
177
+ A('docs/CODE_QUALITY.md', { label: 'herramientas, limites y valores medidos' }),
178
+ A('docs/GATES.md', { must_contain: ['quality|calidad|lint'], label: 'la calidad como compuerta' }),
179
+ ],
180
+ verify: [
181
+ 'La ultima corrida de la cadena tiene la calidad en verde?',
182
+ 'Una funcion de cien lineas en una rama pone la cadena en rojo?',
183
+ 'La cobertura de hoy es mayor o igual que la del bloque anterior?',
184
+ ],
185
+ evaluator: 'ci',
186
+ },
187
+ {
188
+ num: 10, id: 'u10-casos-de-prueba-manual', tramo: 'bucle',
189
+ title: 'Los casos de prueba manual se escriben con la funcionalidad y los ejecutan personas',
190
+ summary: 'Cada pendiente deja su caso de prueba manual; cada fallo humano vuelve como pendiente.',
191
+ form: 'routine', mandatory: 'always', prompt_key: 'peldano-10',
192
+ inputs: [A('PROJECT.md'), A('docs/WORKING_AGREEMENT.md')],
193
+ artifacts: [A('docs/MANUAL_TESTS.md', { label: 'casos de prueba manual' })],
194
+ verify: [
195
+ 'Cada pendiente cerrado tiene su caso de prueba manual, con pasos y resultado esperado?',
196
+ 'Los casos se ejecutaron al cierre del bloque, con fecha y quien?',
197
+ 'Cada fallo abrio un pendiente?',
198
+ ],
199
+ evaluator: 'artifacts',
200
+ },
201
+ {
202
+ num: 11, id: 'u11-simetria-y-antipatrones', tramo: 'bucle',
203
+ title: 'Simetria entre productor y consumidor, y el registro de anti-patrones',
204
+ summary: 'Nadie cambia una estructura compartida sin tocar a todos sus consumidores; cada golpe queda escrito.',
205
+ form: 'routine', mandatory: 'minimum', prompt_key: 'peldano-11',
206
+ inputs: [A('docs/SEMANTIC_TREE.md')],
207
+ artifacts: [
208
+ A('docs/PRODUCER_CONSUMER_MAP.md', { label: 'mapa productor-consumidor' }),
209
+ A('docs/GOTCHAS.md', { min_bytes: 50, label: 'registro de anti-patrones' }),
210
+ ],
211
+ verify: [
212
+ 'El mapa nombra cada estructura compartida con sus lectores y escritores?',
213
+ 'Cada golpe de los ultimos bloques esta en GOTCHAS.md con su regla?',
214
+ ],
215
+ evaluator: 'artifacts',
216
+ },
217
+ {
218
+ num: 12, id: 'u12-verificacion-honesta', tramo: 'bucle',
219
+ title: 'Verificacion honesta y reporte proporcional',
220
+ summary: 'Cada reporte separa lo verificado, lo creido y el punto ciego, y ocupa lo que la evidencia da.',
221
+ form: 'routine', mandatory: 'always', prompt_key: 'peldano-12',
222
+ inputs: [A('docs/WORKING_AGREEMENT.md')],
223
+ artifacts: [A('docs/WORKING_AGREEMENT.md', { must_contain: ['verif', 'blind|ciego'], label: 'la rutina del reporte honesto' })],
224
+ verify: [
225
+ 'El ultimo reporte separa verificado / creido / punto ciego?',
226
+ 'Lo verificado tiene su recibo?',
227
+ ],
228
+ evaluator: 'reports',
229
+ },
230
+ {
231
+ num: 13, id: 'u13-auditoria', tramo: 'salida',
232
+ title: 'La auditoria periodica como insumo del plan',
233
+ summary: 'Otra sesion, idealmente otro modelo, revisa todo y sus hallazgos entran al plan como pendientes.',
234
+ form: 'one_shot', mandatory: 'minimum', prompt_key: 'peldano-13',
235
+ inputs: [A('docs/SEMANTIC_TREE.md'), A('docs/STATUS.md')],
236
+ artifacts: [A('docs/AUDIT_*.md', { fresh_days: 60, label: 'auditoria reciente', should_contain: ['^\\s*\\**\\s*auditor\\s*\\**\\s*:'] })],
237
+ verify: [
238
+ 'La auditoria la hizo una sesion distinta de la que construye?',
239
+ 'Cada hallazgo P0 y P1 tiene pendiente?',
240
+ 'Vuelve a correr una muestra de los recibos de rojo?',
241
+ ],
242
+ evaluator: 'artifacts',
243
+ },
244
+ {
245
+ num: 14, id: 'u14-fail-closed', tramo: 'salida',
246
+ title: 'Fail-closed, candados y cero dano silencioso',
247
+ summary: 'Cada accion con consecuencia real tiene su candado; ante la duda, el sistema se detiene.',
248
+ form: 'conversation', mandatory: 'minimum', prompt_key: 'peldano-14',
249
+ inputs: [A('docs/CONSEQUENTIAL_ACTIONS_SURVEY.md', { min_bytes: 50, label: 'tu lista de acciones con consecuencia' }), A('docs/SEMANTIC_TREE.md')],
250
+ artifacts: [A('docs/LOCKS.md', { label: 'registro de candados' })],
251
+ verify: [
252
+ 'Cada accion de tu lista tiene su candado en LOCKS.md, con el test que lo prueba?',
253
+ 'Ante un dato que falta, el sistema se detiene en vez de inventar?',
254
+ ],
255
+ evaluator: 'artifacts',
256
+ },
257
+ {
258
+ num: 15, id: 'u15-ci-entornos-secretos-deploy', tramo: 'salida',
259
+ title: 'Integracion continua, entornos, secretos y despliegue como parte del producto',
260
+ summary: 'Despliegue repetible, configuracion afuera del codigo, secretos en su lugar y vuelta atras probada.',
261
+ form: 'one_shot', mandatory: 'minimum', prompt_key: 'peldano-15',
262
+ inputs: [A('docs/ENVIRONMENTS_SURVEY.md')],
263
+ artifacts: [A('docs/DEPLOYMENT.md', { must_contain: ['rollback|vuelta atras'], label: 'procedimiento de despliegue y vuelta atras' })],
264
+ verify: [
265
+ 'El despliegue es un comando, no una lista de pasos a mano?',
266
+ 'La vuelta atras se probo al menos una vez?',
267
+ 'Ningun secreto vive en el repositorio?',
268
+ ],
269
+ evaluator: 'ci',
270
+ },
271
+ {
272
+ num: 16, id: 'u16-observabilidad-y-trazabilidad', tramo: 'salida',
273
+ title: 'Observabilidad y trazabilidad totales, con nivel configurable',
274
+ summary: 'Cada accion deja un registro estructurado con su identificador; el nivel se configura sin tocar codigo.',
275
+ form: 'one_shot', mandatory: 'minimum', prompt_key: 'peldano-16',
276
+ inputs: [A('docs/SEMANTIC_TREE.md'), A('docs/DEPLOYMENT.md')],
277
+ artifacts: [A('docs/OBSERVABILITY.md', { label: 'que se registra, donde y con que nivel' })],
278
+ verify: [
279
+ 'Pediste una traza real de una accion y la leiste de punta a punta?',
280
+ 'El nivel de registro se cambia por configuracion?',
281
+ ],
282
+ evaluator: 'artifacts',
283
+ },
284
+ {
285
+ num: 17, id: 'u17-persistencia', tramo: 'salida',
286
+ title: 'Optimizacion de la capa de persistencia, medida antes y despues',
287
+ summary: 'Indices, fin de los bucles N+1, presupuestos de consultas por camino; todo con numero antes y despues.',
288
+ form: 'one_shot', mandatory: 'proportional', prompt_key: 'peldano-17',
289
+ inputs: [A('docs/SIZING.md'), A('docs/VOLUME_SURVEY.md')],
290
+ artifacts: [A('docs/PERSISTENCE.md', { label: 'medicion antes y despues' })],
291
+ verify: [
292
+ 'Cada cambio tiene su numero de antes y de despues?',
293
+ 'Hay un presupuesto de consultas por camino, con test?',
294
+ ],
295
+ evaluator: 'artifacts',
296
+ },
297
+ {
298
+ num: 18, id: 'u18-vulnerabilidades', tramo: 'salida',
299
+ title: 'Escaneo y solucion de vulnerabilidades, en la cadena y con calendario',
300
+ summary: 'Dependencias, secretos, codigo e infraestructura escaneados en cada push y con fecha de repaso.',
301
+ form: 'one_shot', mandatory: 'minimum', prompt_key: 'peldano-18',
302
+ inputs: [A('docs/ENVIRONMENTS_SURVEY.md'), A('docs/GATES.md')],
303
+ artifacts: [
304
+ A('docs/SECURITY.md', { label: 'que se escanea y con que calendario' }),
305
+ A('docs/SECURITY_*.md', { fresh_days: 45, label: 'ultimo reporte de escaneo' }),
306
+ ],
307
+ verify: [
308
+ 'La cadena se pone en rojo con una dependencia vulnerable conocida?',
309
+ 'Cada hallazgo tiene pendiente o excepcion con razon y fecha?',
310
+ ],
311
+ evaluator: 'ci',
312
+ },
313
+ {
314
+ num: 19, id: 'u19-rendimiento-y-punto-de-ruptura', tramo: 'salida',
315
+ title: 'Pruebas de rendimiento en volumen y punto de ruptura',
316
+ summary: 'Cargar al volumen esperado y al por diez, y encontrar que se rompe primero.',
317
+ form: 'one_shot', mandatory: 'proportional', prompt_key: 'peldano-19',
318
+ inputs: [A('docs/SIZING.md'), A('docs/ENVIRONMENTS_SURVEY.md')],
319
+ artifacts: [
320
+ A('docs/PERFORMANCE.md', { label: 'umbrales y como se corre la prueba' }),
321
+ A('docs/PERFORMANCE_*.md', { fresh_days: 90, label: 'ultimo resultado' }),
322
+ ],
323
+ verify: [
324
+ 'Hay un punto de ruptura escrito, con la pieza que se rompe?',
325
+ 'Los umbrales estan en la cadena o en el monitoreo?',
326
+ ],
327
+ evaluator: 'artifacts',
328
+ },
329
+ {
330
+ num: 20, id: 'u20-documentacion-viva', tramo: 'salida',
331
+ title: 'Documentacion viva y manuales que una persona puede seguir sin IA',
332
+ summary: 'Manual de usuario, de mantenimiento y de infraestructura y recuperacion; el registro de cambios al dia.',
333
+ form: 'routine', mandatory: 'minimum', prompt_key: 'peldano-20',
334
+ inputs: [A('PROJECT.md'), A('docs/DEPLOYMENT.md'), A('docs/LOCKS.md')],
335
+ artifacts: [
336
+ A('docs/USER_MANUAL.md', { label: 'manual de usuario' }),
337
+ A('docs/MAINTENANCE_MANUAL.md', { label: 'manual de mantenimiento' }),
338
+ A('docs/INFRASTRUCTURE_AND_RECOVERY_MANUAL.md', { label: 'manual de infraestructura y recuperacion' }),
339
+ A('docs/CHANGELOG.md', { min_bytes: 50, label: 'registro de cambios' }),
340
+ ],
341
+ verify: [
342
+ 'Una persona sin IA puede recuperar el sistema siguiendo el manual?',
343
+ 'Alguien que no sos vos siguio el manual de usuario y llego?',
344
+ ],
345
+ evaluator: 'artifacts',
346
+ },
347
+ {
348
+ num: 21, id: 'u21-monitoreo-de-recursos', tramo: 'operacion',
349
+ title: 'Monitoreo de recursos, funciones y consultas fuera de rango, con reporte ciclico',
350
+ summary: 'Umbrales por recurso y por funcion, alertas, y un reporte que llega solo cada ciclo.',
351
+ form: 'routine', mandatory: 'minimum', prompt_key: 'peldano-21',
352
+ inputs: [A('docs/OBSERVABILITY.md'), A('docs/PERFORMANCE.md')],
353
+ artifacts: [A('docs/MONITORING.md', { label: 'umbrales, alertas y ciclo del reporte' }), A('docs/MONITORING_REPORT_*.md', { fresh_days: 35, min_bytes: 100, label: 'ultimo reporte ciclico (yf urazuke cycle)' })],
354
+ verify: [
355
+ 'Recibiste el primer reporte ciclico sin pedirlo?',
356
+ 'Cada umbral tiene una accion escrita para cuando se supera?',
357
+ ],
358
+ evaluator: 'artifacts',
359
+ },
360
+ {
361
+ num: 22, id: 'u22-monitoreo-de-errores', tramo: 'operacion',
362
+ title: 'Monitoreo de errores y reporte ciclico: ningun error sin pendiente',
363
+ summary: 'Captura centralizada de errores, alerta cuando importa, y cada error nuevo con su pendiente.',
364
+ form: 'routine', mandatory: 'always', prompt_key: 'peldano-22',
365
+ inputs: [A('docs/OBSERVABILITY.md'), A('docs/LOCKS.md')],
366
+ artifacts: [A('docs/MONITORING.md', { must_contain: ['error'], label: 'el monitoreo de errores en MONITORING.md' }), A('docs/MONITORING_REPORT_*.md', { fresh_days: 35, min_bytes: 100, label: 'ultimo reporte ciclico con los errores' })],
367
+ verify: [
368
+ 'Cada error nuevo del ultimo ciclo tiene su pendiente?',
369
+ 'El reporte ciclico de errores llega solo?',
370
+ ],
371
+ evaluator: 'artifacts',
372
+ },
373
+ {
374
+ num: 23, id: 'u23-agente-residente-y-retrospectiva', tramo: 'operacion',
375
+ title: 'El agente adentro del sistema, y la retrospectiva con numero',
376
+ summary: 'Un agente residente con alcance escrito, y una retrospectiva que termina en una propuesta al metodo.',
377
+ form: 'conversation', mandatory: 'minimum', prompt_key: 'peldano-23',
378
+ inputs: [A('docs/RETROSPECTIVE_INPUTS.md', { min_bytes: 50, label: 'tus insumos para la retrospectiva' }), A('docs/LOCKS.md')],
379
+ artifacts: [
380
+ A('docs/RESIDENT_AGENT.md', { label: 'alcance del agente residente' }),
381
+ A('docs/RETROSPECTIVE_*.md', { fresh_days: 120, label: 'retrospectiva reciente' }),
382
+ ],
383
+ verify: [
384
+ 'La retrospectiva tiene numeros, no impresiones?',
385
+ 'Termina en una propuesta concreta de cambio al metodo, con el incidente que la justifica?',
386
+ ],
387
+ evaluator: 'artifacts',
388
+ },
389
+ ];
390
+ export const URAZUKE_LEGACY_STATIONS = [
391
+ {
392
+ num: 0, id: 'n0-elegibilidad-legado',
393
+ title: 'Elegibilidad de un sistema existente: los prerrequisitos que un modelo puede verificar haciendo',
394
+ summary: 'Siete prerrequisitos verificados haciendo; cada rojo es un proyecto previo.',
395
+ prompt_key: 'evolutivo-correctivo', prompt_indexes: [0, 1],
396
+ artifacts: [
397
+ A('docs/ELIGIBILITY.md', { must_contain: ['eligib|elegib'] }),
398
+ A('docs/FUNCTIONALITY_RECOVERED.md', { label: 'la funcionalidad descrita desde el codigo' }),
399
+ ],
400
+ verify: ['Cada prerrequisito tiene su verde o su proyecto previo?', 'La funcionalidad recuperada la entenderia un usuario final?'],
401
+ evaluator: 'artifacts',
402
+ },
403
+ {
404
+ num: 1, id: 'n1-contrato-legado', title: 'El contrato de convivencia para un legado',
405
+ summary: 'Las reglas del metodo mas la regla de no reescribir.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [2],
406
+ artifacts: [A('docs/WORKING_AGREEMENT.md', { must_contain: ['evidence|evidencia'] })],
407
+ verify: ['El contrato dice que no se reescribe?'], evaluator: 'artifacts',
408
+ },
409
+ {
410
+ num: 2, id: 'n2-lectura-del-sistema', title: 'La lectura del sistema: el mapa recuperado y las discrepancias',
411
+ summary: 'Relevamiento, proyecto y arbol desde el codigo con marcas de fuente; la lista de discrepancias.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [3, 4],
412
+ artifacts: [A('PROJECT.md'), A('docs/SEMANTIC_TREE.md'), A('docs/STATUS.md', { min_bytes: 80 }), A('docs/DISCREPANCIES.md', { min_bytes: 50 })],
413
+ verify: ['Lo inferido esta marcado como inferido?', 'Decidiste cada discrepancia?'], evaluator: 'artifacts',
414
+ },
415
+ {
416
+ num: 3, id: 'n3-auditoria-inventario', title: 'La auditoria como inventario de la deuda',
417
+ summary: 'Toda la deuda, con su marca: bloquea, se paga al tocar, puede esperar.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [5],
418
+ artifacts: [A('docs/AUDIT_*.md', { fresh_days: 120, should_contain: ['^\\s*\\**\\s*auditor\\s*\\**\\s*:'] })],
419
+ verify: ['Cada hallazgo tiene su marca de velocidad?', 'La hizo otra sesion que la que leyo el sistema (N2)?'], evaluator: 'artifacts',
420
+ },
421
+ {
422
+ num: 4, id: 'n4-cinturon-de-seguridad', title: 'El cinturon de seguridad',
423
+ summary: 'Tests de caracterizacion con su rojo por mutacion, la cadena y los entornos. Compuerta dura.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [6, 7],
424
+ artifacts: [A('docs/GATES.md'), A('docs/STATUS.md', { must_contain: ['test'] }), A('docs/DEPLOYMENT.md')],
425
+ verify: ['Cada flujo tiene su caracterizacion con el rojo por mutacion visto?', 'La cadena corre sola?'], evaluator: 'ci',
426
+ },
427
+ {
428
+ num: 5, id: 'n5-candados-y-mapa', title: 'Candados y mapa productor-consumidor desde el codigo',
429
+ summary: 'Las acciones con consecuencia y las estructuras compartidas, leidas del sistema.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [8],
430
+ artifacts: [A('docs/LOCKS.md'), A('docs/PRODUCER_CONSUMER_MAP.md')],
431
+ verify: ['Cada accion con consecuencia tiene su candado?'], evaluator: 'artifacts',
432
+ },
433
+ {
434
+ num: 6, id: 'n6-dimensionar-real', title: 'Dimensionar con numeros reales',
435
+ summary: 'La volumetria medida en la base real, y la persistencia contrastada con su envoltura.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [9],
436
+ artifacts: [A('docs/SIZING.md')],
437
+ verify: ['Los numeros salen de la base, no de una estimacion?'], evaluator: 'sizing',
438
+ },
439
+ {
440
+ num: 7, id: 'n7-backlog-de-normalizacion', title: 'El backlog de normalizacion, emparejado con el pedido del cliente',
441
+ summary: 'La deuda que bloquea y el pedido del cliente, en un solo plan ordenado.', prompt_key: 'evolutivo-correctivo', prompt_indexes: [10],
442
+ artifacts: [A('docs/blocks/*.md', { min_bytes: 50, label: 'el pedido de la etapa' })],
443
+ verify: ['Cada pendiente de deuda esta emparejado con el modulo que el pedido toca?'], evaluator: 'pendings_spec',
444
+ },
445
+ ];
446
+ export function urazukeStep(num) {
447
+ return URAZUKE_STEPS.find((s) => s.num === num);
448
+ }
449
+ export function urazukeStepById(id) {
450
+ return URAZUKE_STEPS.find((s) => s.id === id);
451
+ }
452
+ export function urazukeStation(num) {
453
+ return URAZUKE_LEGACY_STATIONS.find((s) => s.num === num);
454
+ }
455
+ /** Loop-mode prompts of the legacy path (not tied to a station). */
456
+ export const URAZUKE_LEGACY_LOOP_PROMPTS = { corrective: 11, urgent: 12 };
457
+ /** The thirteen steps the method does not negotiate on any project. */
458
+ export const URAZUKE_NON_NEGOTIABLE = [0, 1, 2, 3, 5, 6, 8, 9, 10, 12, 18, 22, 23];
459
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/urazuke/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The evidence half of the close gate (Urazuke step 8 + 12).
3
+ *
4
+ * Inside a Urazuke project, a PLAN item (a pending that is not a canonical
5
+ * ladder task) closes with reason=shipped only when Forge holds its
6
+ * receipts: a red proof, a green, and a regression. Without them the close
7
+ * is a claim, and the method does not close on claims. The owner can
8
+ * override with a written reason, which stays in the item history.
9
+ *
10
+ * ASCII-only.
11
+ */
12
+ export interface EvidenceGateResult {
13
+ ok: boolean;
14
+ missing: string[];
15
+ have: {
16
+ red_proofs: number;
17
+ strong_red_proofs: number;
18
+ greens: number;
19
+ regressions: number;
20
+ e2e: number;
21
+ };
22
+ }
23
+ /** Which receipts a shipped close needs. e2e is reported but not required
24
+ * here: the step-8 routine asks for it per flow, and a change with no
25
+ * screen has none. */
26
+ export declare function evidenceForClose(slug: string, pending_id: string): Promise<EvidenceGateResult>;
27
+ /** Does the evidence gate apply to this item? Only inside an open Urazuke
28
+ * workflow, only for plan items (not the ladder's own canonical tasks,
29
+ * which have the artifact gate instead), only for reason=shipped. */
30
+ export declare function evidenceGateApplies(slug: string, item: {
31
+ workflow?: {
32
+ urazuke?: unknown;
33
+ ad_hoc?: boolean;
34
+ };
35
+ }, reason: string): Promise<boolean>;
36
+ //# sourceMappingURL=close_gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close_gate.d.ts","sourceRoot":"","sources":["../../src/urazuke/close_gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,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,CAAA;KAAE,CAAC;CAC3G;AAED;;uBAEuB;AACvB,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAUpG;AAED;;sEAEsE;AACtE,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUtJ"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The evidence half of the close gate (Urazuke step 8 + 12).
3
+ *
4
+ * Inside a Urazuke project, a PLAN item (a pending that is not a canonical
5
+ * ladder task) closes with reason=shipped only when Forge holds its
6
+ * receipts: a red proof, a green, and a regression. Without them the close
7
+ * is a claim, and the method does not close on claims. The owner can
8
+ * override with a written reason, which stays in the item history.
9
+ *
10
+ * ASCII-only.
11
+ */
12
+ /** Which receipts a shipped close needs. e2e is reported but not required
13
+ * here: the step-8 routine asks for it per flow, and a change with no
14
+ * screen has none. */
15
+ export async function evidenceForClose(slug, pending_id) {
16
+ const { readReceipts, summarizeReceipts } = await import('./receipts.js');
17
+ const f = await readReceipts(slug);
18
+ const s = summarizeReceipts(f.items, { pending_id });
19
+ const missing = [];
20
+ if (s.red_proofs === 0)
21
+ missing.push('red_proof (the new test failing against the base: yujin.evidence.run kind=red_proof)');
22
+ else if (s.strong_red_proofs === 0)
23
+ missing.push('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>)');
24
+ if (s.greens === 0)
25
+ missing.push('green (the new test passing on HEAD: yujin.evidence.run kind=green)');
26
+ if (s.regressions === 0)
27
+ missing.push('regression (the neighbouring suite still green: yujin.evidence.run kind=regression)');
28
+ return { ok: missing.length === 0, missing, have: { red_proofs: s.red_proofs, strong_red_proofs: s.strong_red_proofs, greens: s.greens, regressions: s.regressions, e2e: s.e2e } };
29
+ }
30
+ /** Does the evidence gate apply to this item? Only inside an open Urazuke
31
+ * workflow, only for plan items (not the ladder's own canonical tasks,
32
+ * which have the artifact gate instead), only for reason=shipped. */
33
+ export async function evidenceGateApplies(slug, item, reason) {
34
+ if (reason !== 'shipped')
35
+ return false;
36
+ if (item.workflow?.urazuke && !item.workflow.ad_hoc)
37
+ return false;
38
+ if (!(await (await import('./enabled.js')).urazukeEnabled()))
39
+ return false;
40
+ try {
41
+ const { findUrazukeInstance } = await import('./current.js');
42
+ return !!(await findUrazukeInstance(slug));
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ }
48
+ //# sourceMappingURL=close_gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close_gate.js","sourceRoot":"","sources":["../../src/urazuke/close_gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;uBAEuB;AACvB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,UAAkB;IACrE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAC;SACxH,IAAI,CAAC,CAAC,iBAAiB,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,oTAAoT,CAAC,CAAC;IACvW,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IACxG,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IAC7H,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;AACrL,CAAC;AAED;;sEAEsE;AACtE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAA4D,EAAE,MAAc;IAClI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7D,OAAO,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}