docviz-builder 0.1.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 (233) hide show
  1. package/AGENTS.md +371 -0
  2. package/LICENSE +21 -0
  3. package/README.md +837 -0
  4. package/bin/docviz-mcp.mjs +10 -0
  5. package/bin/docviz.mjs +11 -0
  6. package/dist/build/builder.d.ts +62 -0
  7. package/dist/build/builder.d.ts.map +1 -0
  8. package/dist/build/builder.js +337 -0
  9. package/dist/build/builder.js.map +1 -0
  10. package/dist/build/diff.d.ts +64 -0
  11. package/dist/build/diff.d.ts.map +1 -0
  12. package/dist/build/diff.js +156 -0
  13. package/dist/build/diff.js.map +1 -0
  14. package/dist/build/doctor.d.ts +39 -0
  15. package/dist/build/doctor.d.ts.map +1 -0
  16. package/dist/build/doctor.js +190 -0
  17. package/dist/build/doctor.js.map +1 -0
  18. package/dist/build/init.d.ts +28 -0
  19. package/dist/build/init.d.ts.map +1 -0
  20. package/dist/build/init.js +274 -0
  21. package/dist/build/init.js.map +1 -0
  22. package/dist/build/preview.d.ts +13 -0
  23. package/dist/build/preview.d.ts.map +1 -0
  24. package/dist/build/preview.js +277 -0
  25. package/dist/build/preview.js.map +1 -0
  26. package/dist/build/skill.d.ts +41 -0
  27. package/dist/build/skill.d.ts.map +1 -0
  28. package/dist/build/skill.js +63 -0
  29. package/dist/build/skill.js.map +1 -0
  30. package/dist/build/verify.d.ts +26 -0
  31. package/dist/build/verify.d.ts.map +1 -0
  32. package/dist/build/verify.js +99 -0
  33. package/dist/build/verify.js.map +1 -0
  34. package/dist/cli.d.ts +20 -0
  35. package/dist/cli.d.ts.map +1 -0
  36. package/dist/cli.js +427 -0
  37. package/dist/cli.js.map +1 -0
  38. package/dist/config/load.d.ts +32 -0
  39. package/dist/config/load.d.ts.map +1 -0
  40. package/dist/config/load.js +279 -0
  41. package/dist/config/load.js.map +1 -0
  42. package/dist/config/types.d.ts +89 -0
  43. package/dist/config/types.d.ts.map +1 -0
  44. package/dist/config/types.js +5 -0
  45. package/dist/config/types.js.map +1 -0
  46. package/dist/core/cache.d.ts +32 -0
  47. package/dist/core/cache.d.ts.map +1 -0
  48. package/dist/core/cache.js +69 -0
  49. package/dist/core/cache.js.map +1 -0
  50. package/dist/core/errors.d.ts +115 -0
  51. package/dist/core/errors.d.ts.map +1 -0
  52. package/dist/core/errors.js +164 -0
  53. package/dist/core/errors.js.map +1 -0
  54. package/dist/core/hash.d.ts +57 -0
  55. package/dist/core/hash.d.ts.map +1 -0
  56. package/dist/core/hash.js +0 -0
  57. package/dist/core/hash.js.map +1 -0
  58. package/dist/core/package-version.d.ts +9 -0
  59. package/dist/core/package-version.d.ts.map +1 -0
  60. package/dist/core/package-version.js +44 -0
  61. package/dist/core/package-version.js.map +1 -0
  62. package/dist/core/paths.d.ts +46 -0
  63. package/dist/core/paths.d.ts.map +1 -0
  64. package/dist/core/paths.js +105 -0
  65. package/dist/core/paths.js.map +1 -0
  66. package/dist/core/registry.d.ts +24 -0
  67. package/dist/core/registry.d.ts.map +1 -0
  68. package/dist/core/registry.js +72 -0
  69. package/dist/core/registry.js.map +1 -0
  70. package/dist/core/types.d.ts +78 -0
  71. package/dist/core/types.d.ts.map +1 -0
  72. package/dist/core/types.js +11 -0
  73. package/dist/core/types.js.map +1 -0
  74. package/dist/dsl/architecture.d.ts +15 -0
  75. package/dist/dsl/architecture.d.ts.map +1 -0
  76. package/dist/dsl/architecture.js +242 -0
  77. package/dist/dsl/architecture.js.map +1 -0
  78. package/dist/dsl/catalog.d.ts +62 -0
  79. package/dist/dsl/catalog.d.ts.map +1 -0
  80. package/dist/dsl/catalog.en.d.ts +18 -0
  81. package/dist/dsl/catalog.en.d.ts.map +1 -0
  82. package/dist/dsl/catalog.en.js +299 -0
  83. package/dist/dsl/catalog.en.js.map +1 -0
  84. package/dist/dsl/catalog.js +1082 -0
  85. package/dist/dsl/catalog.js.map +1 -0
  86. package/dist/dsl/chart.d.ts +14 -0
  87. package/dist/dsl/chart.d.ts.map +1 -0
  88. package/dist/dsl/chart.js +435 -0
  89. package/dist/dsl/chart.js.map +1 -0
  90. package/dist/dsl/compile.d.ts +31 -0
  91. package/dist/dsl/compile.d.ts.map +1 -0
  92. package/dist/dsl/compile.js +120 -0
  93. package/dist/dsl/compile.js.map +1 -0
  94. package/dist/dsl/diagram-bpmn.d.ts +13 -0
  95. package/dist/dsl/diagram-bpmn.d.ts.map +1 -0
  96. package/dist/dsl/diagram-bpmn.js +215 -0
  97. package/dist/dsl/diagram-bpmn.js.map +1 -0
  98. package/dist/dsl/diagram-product.d.ts +15 -0
  99. package/dist/dsl/diagram-product.d.ts.map +1 -0
  100. package/dist/dsl/diagram-product.js +291 -0
  101. package/dist/dsl/diagram-product.js.map +1 -0
  102. package/dist/dsl/diagram-technical.d.ts +28 -0
  103. package/dist/dsl/diagram-technical.d.ts.map +1 -0
  104. package/dist/dsl/diagram-technical.js +365 -0
  105. package/dist/dsl/diagram-technical.js.map +1 -0
  106. package/dist/dsl/diagram.d.ts +22 -0
  107. package/dist/dsl/diagram.d.ts.map +1 -0
  108. package/dist/dsl/diagram.js +542 -0
  109. package/dist/dsl/diagram.js.map +1 -0
  110. package/dist/dsl/fallbacks-d2.d.ts +27 -0
  111. package/dist/dsl/fallbacks-d2.d.ts.map +1 -0
  112. package/dist/dsl/fallbacks-d2.js +265 -0
  113. package/dist/dsl/fallbacks-d2.js.map +1 -0
  114. package/dist/dsl/fallbacks.d.ts +25 -0
  115. package/dist/dsl/fallbacks.d.ts.map +1 -0
  116. package/dist/dsl/fallbacks.js +264 -0
  117. package/dist/dsl/fallbacks.js.map +1 -0
  118. package/dist/dsl/fields.d.ts +93 -0
  119. package/dist/dsl/fields.d.ts.map +1 -0
  120. package/dist/dsl/fields.js +233 -0
  121. package/dist/dsl/fields.js.map +1 -0
  122. package/dist/dsl/index.d.ts +50 -0
  123. package/dist/dsl/index.d.ts.map +1 -0
  124. package/dist/dsl/index.js +114 -0
  125. package/dist/dsl/index.js.map +1 -0
  126. package/dist/dsl/util.d.ts +105 -0
  127. package/dist/dsl/util.d.ts.map +1 -0
  128. package/dist/dsl/util.js +261 -0
  129. package/dist/dsl/util.js.map +1 -0
  130. package/dist/index.d.ts +27 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +21 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/markdown/scan.d.ts +73 -0
  135. package/dist/markdown/scan.d.ts.map +1 -0
  136. package/dist/markdown/scan.js +150 -0
  137. package/dist/markdown/scan.js.map +1 -0
  138. package/dist/markdown/transform.d.ts +28 -0
  139. package/dist/markdown/transform.d.ts.map +1 -0
  140. package/dist/markdown/transform.js +38 -0
  141. package/dist/markdown/transform.js.map +1 -0
  142. package/dist/mcp/server.d.ts +18 -0
  143. package/dist/mcp/server.d.ts.map +1 -0
  144. package/dist/mcp/server.js +118 -0
  145. package/dist/mcp/server.js.map +1 -0
  146. package/dist/mcp/tools.d.ts +118 -0
  147. package/dist/mcp/tools.d.ts.map +1 -0
  148. package/dist/mcp/tools.js +573 -0
  149. package/dist/mcp/tools.js.map +1 -0
  150. package/dist/renderers/base.d.ts +18 -0
  151. package/dist/renderers/base.d.ts.map +1 -0
  152. package/dist/renderers/base.js +59 -0
  153. package/dist/renderers/base.js.map +1 -0
  154. package/dist/renderers/bpmn.d.ts +68 -0
  155. package/dist/renderers/bpmn.d.ts.map +1 -0
  156. package/dist/renderers/bpmn.js +158 -0
  157. package/dist/renderers/bpmn.js.map +1 -0
  158. package/dist/renderers/browser.d.ts +30 -0
  159. package/dist/renderers/browser.d.ts.map +1 -0
  160. package/dist/renderers/browser.js +143 -0
  161. package/dist/renderers/browser.js.map +1 -0
  162. package/dist/renderers/color-scheme.d.ts +40 -0
  163. package/dist/renderers/color-scheme.d.ts.map +1 -0
  164. package/dist/renderers/color-scheme.js +122 -0
  165. package/dist/renderers/color-scheme.js.map +1 -0
  166. package/dist/renderers/d2.d.ts +37 -0
  167. package/dist/renderers/d2.d.ts.map +1 -0
  168. package/dist/renderers/d2.js +108 -0
  169. package/dist/renderers/d2.js.map +1 -0
  170. package/dist/renderers/graphviz.d.ts +33 -0
  171. package/dist/renderers/graphviz.d.ts.map +1 -0
  172. package/dist/renderers/graphviz.js +88 -0
  173. package/dist/renderers/graphviz.js.map +1 -0
  174. package/dist/renderers/in-page.d.ts +33 -0
  175. package/dist/renderers/in-page.d.ts.map +1 -0
  176. package/dist/renderers/in-page.js +76 -0
  177. package/dist/renderers/in-page.js.map +1 -0
  178. package/dist/renderers/index.d.ts +20 -0
  179. package/dist/renderers/index.d.ts.map +1 -0
  180. package/dist/renderers/index.js +94 -0
  181. package/dist/renderers/index.js.map +1 -0
  182. package/dist/renderers/kroki.d.ts +38 -0
  183. package/dist/renderers/kroki.d.ts.map +1 -0
  184. package/dist/renderers/kroki.js +151 -0
  185. package/dist/renderers/kroki.js.map +1 -0
  186. package/dist/renderers/likec4-svg.d.ts +82 -0
  187. package/dist/renderers/likec4-svg.d.ts.map +1 -0
  188. package/dist/renderers/likec4-svg.js +435 -0
  189. package/dist/renderers/likec4-svg.js.map +1 -0
  190. package/dist/renderers/likec4.d.ts +22 -0
  191. package/dist/renderers/likec4.d.ts.map +1 -0
  192. package/dist/renderers/likec4.js +77 -0
  193. package/dist/renderers/likec4.js.map +1 -0
  194. package/dist/renderers/mermaid.d.ts +64 -0
  195. package/dist/renderers/mermaid.d.ts.map +1 -0
  196. package/dist/renderers/mermaid.js +196 -0
  197. package/dist/renderers/mermaid.js.map +1 -0
  198. package/dist/renderers/plantuml.d.ts +56 -0
  199. package/dist/renderers/plantuml.d.ts.map +1 -0
  200. package/dist/renderers/plantuml.js +195 -0
  201. package/dist/renderers/plantuml.js.map +1 -0
  202. package/dist/renderers/svg-utils.d.ts +46 -0
  203. package/dist/renderers/svg-utils.d.ts.map +1 -0
  204. package/dist/renderers/svg-utils.js +439 -0
  205. package/dist/renderers/svg-utils.js.map +1 -0
  206. package/dist/renderers/svgbob.d.ts +26 -0
  207. package/dist/renderers/svgbob.d.ts.map +1 -0
  208. package/dist/renderers/svgbob.js +70 -0
  209. package/dist/renderers/svgbob.js.map +1 -0
  210. package/dist/renderers/vega-lite.d.ts +18 -0
  211. package/dist/renderers/vega-lite.d.ts.map +1 -0
  212. package/dist/renderers/vega-lite.js +94 -0
  213. package/dist/renderers/vega-lite.js.map +1 -0
  214. package/dist/themes/index.d.ts +17 -0
  215. package/dist/themes/index.d.ts.map +1 -0
  216. package/dist/themes/index.js +419 -0
  217. package/dist/themes/index.js.map +1 -0
  218. package/dist/themes/types.d.ts +99 -0
  219. package/dist/themes/types.d.ts.map +1 -0
  220. package/dist/themes/types.js +9 -0
  221. package/dist/themes/types.js.map +1 -0
  222. package/eval/casos.json +513 -0
  223. package/package.json +114 -0
  224. package/scripts/capture-preview.mjs +101 -0
  225. package/scripts/check-github.mjs +128 -0
  226. package/scripts/eval.d.mts +8 -0
  227. package/scripts/eval.mjs +284 -0
  228. package/scripts/fetch-plantuml.mjs +122 -0
  229. package/scripts/generate-catalog-doc.mjs +106 -0
  230. package/scripts/rasterize.mjs +68 -0
  231. package/scripts/sync-docs.mjs +158 -0
  232. package/skills/docviz/SKILL.md +111 -0
  233. package/vendor/.gitkeep +0 -0
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Modelo de tema (seccion 14 de la especificacion).
3
+ *
4
+ * Un tema describe la misma identidad visual expresada en el dialecto de cada
5
+ * motor, para que un PlantUML, un D2 y un Vega-Lite del mismo documento se vean
6
+ * como piezas de la misma familia.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/themes/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,513 @@
1
+ [
2
+ {
3
+ "id": "login",
4
+ "necesidad": "Explicar como se autentica un usuario: el navegador llama a la API, la API consulta la base de datos y devuelve un token.",
5
+ "tipo": "sequence",
6
+ "idioma": "es",
7
+ "particion": "entrenamiento"
8
+ },
9
+ {
10
+ "id": "pago-async",
11
+ "necesidad": "Mostrar el orden de las llamadas entre el frontend, la pasarela de pago y el webhook que confirma el cobro.",
12
+ "tipo": "sequence",
13
+ "idioma": "es",
14
+ "particion": "reservado"
15
+ },
16
+ {
17
+ "id": "estados-pedido",
18
+ "necesidad": "Los estados por los que pasa un pedido y como se mueve entre ellos: creado, pagado, enviado, entregado, cancelado.",
19
+ "tipo": "state",
20
+ "idioma": "es",
21
+ "particion": "entrenamiento"
22
+ },
23
+ {
24
+ "id": "estados-ticket",
25
+ "necesidad": "El ciclo de vida de un ticket de soporte con sus transiciones y reintentos.",
26
+ "tipo": "state",
27
+ "idioma": "es",
28
+ "particion": "reservado"
29
+ },
30
+ {
31
+ "id": "aprobacion",
32
+ "necesidad": "El proceso de aprobacion de una solicitud de vacaciones, con la decision del jefe y las dos ramas posibles.",
33
+ "tipo": "activity",
34
+ "acepta": [
35
+ "activity",
36
+ "flow"
37
+ ],
38
+ "idioma": "es",
39
+ "particion": "entrenamiento"
40
+ },
41
+ {
42
+ "id": "alta-cliente",
43
+ "necesidad": "El recorrido de extremo a extremo del alta de un cliente, paso a paso y sin decisiones complicadas.",
44
+ "tipo": "flow",
45
+ "idioma": "es",
46
+ "particion": "entrenamiento"
47
+ },
48
+ {
49
+ "id": "modelo-datos",
50
+ "necesidad": "Las entidades de la base de datos, sus campos y la cardinalidad entre cliente, pedido y linea de pedido.",
51
+ "tipo": "erd",
52
+ "idioma": "es",
53
+ "particion": "entrenamiento"
54
+ },
55
+ {
56
+ "id": "clases",
57
+ "necesidad": "La estructura de clases del dominio y como heredan unas de otras.",
58
+ "tipo": "class",
59
+ "idioma": "es",
60
+ "particion": "entrenamiento"
61
+ },
62
+ {
63
+ "id": "actores",
64
+ "necesidad": "Que puede hacer cada actor con el sistema: el cliente, el operador y el administrador.",
65
+ "tipo": "use-case",
66
+ "idioma": "es",
67
+ "particion": "reservado"
68
+ },
69
+ {
70
+ "id": "componentes",
71
+ "necesidad": "Los modulos de software del backend, agrupados por responsabilidad, y como se conectan entre si.",
72
+ "tipo": "component",
73
+ "idioma": "es",
74
+ "particion": "entrenamiento"
75
+ },
76
+ {
77
+ "id": "infra",
78
+ "necesidad": "Sobre que infraestructura se ejecuta cada pieza: servidores, contenedores y base de datos.",
79
+ "tipo": "deployment",
80
+ "idioma": "es",
81
+ "particion": "entrenamiento"
82
+ },
83
+ {
84
+ "id": "pantalla",
85
+ "necesidad": "Un boceto de la pantalla de registro con sus campos y botones.",
86
+ "tipo": "wireframe",
87
+ "idioma": "es",
88
+ "particion": "entrenamiento"
89
+ },
90
+ {
91
+ "id": "estructura-json",
92
+ "necesidad": "La estructura de un JSON de respuesta dibujada como arbol.",
93
+ "tipo": "json",
94
+ "nombraTipo": true,
95
+ "idioma": "es",
96
+ "particion": "reservado"
97
+ },
98
+ {
99
+ "id": "wbs",
100
+ "necesidad": "La descomposicion jerarquica del trabajo del proyecto en paquetes y tareas.",
101
+ "tipo": "wbs",
102
+ "idioma": "es",
103
+ "particion": "entrenamiento"
104
+ },
105
+ {
106
+ "id": "cronograma",
107
+ "necesidad": "Las tareas del proyecto situadas en el calendario, con sus fechas de inicio y fin.",
108
+ "tipo": "gantt",
109
+ "idioma": "es",
110
+ "particion": "entrenamiento"
111
+ },
112
+ {
113
+ "id": "hitos",
114
+ "necesidad": "Los hitos de la empresa en orden cronologico, de 2020 a 2026.",
115
+ "tipo": "timeline",
116
+ "idioma": "es",
117
+ "particion": "entrenamiento"
118
+ },
119
+ {
120
+ "id": "fases",
121
+ "necesidad": "Las fases futuras del producto y que contiene cada una.",
122
+ "tipo": "roadmap",
123
+ "acepta": [
124
+ "roadmap",
125
+ "timeline"
126
+ ],
127
+ "idioma": "es",
128
+ "particion": "reservado"
129
+ },
130
+ {
131
+ "id": "experiencia",
132
+ "necesidad": "El recorrido de un paciente por el proceso de cita, con su nivel de satisfaccion en cada paso.",
133
+ "tipo": "journey",
134
+ "idioma": "es",
135
+ "particion": "entrenamiento"
136
+ },
137
+ {
138
+ "id": "ramas-git",
139
+ "necesidad": "La historia de ramas, commits y fusiones del repositorio.",
140
+ "tipo": "git-graph",
141
+ "idioma": "es",
142
+ "particion": "entrenamiento"
143
+ },
144
+ {
145
+ "id": "tablero",
146
+ "necesidad": "Las tarjetas del equipo repartidas por columna de estado.",
147
+ "tipo": "kanban",
148
+ "idioma": "es",
149
+ "particion": "reservado"
150
+ },
151
+ {
152
+ "id": "priorizacion",
153
+ "necesidad": "Situar las iniciativas segun esfuerzo e impacto en dos ejes continuos.",
154
+ "tipo": "quadrant",
155
+ "acepta": [
156
+ "quadrant",
157
+ "matrix-2x2"
158
+ ],
159
+ "idioma": "es",
160
+ "particion": "reservado"
161
+ },
162
+ {
163
+ "id": "reparto",
164
+ "necesidad": "Como se reparte el presupuesto al pasar de las areas a los proyectos concretos.",
165
+ "tipo": "sankey",
166
+ "idioma": "es",
167
+ "particion": "entrenamiento"
168
+ },
169
+ {
170
+ "id": "perfil",
171
+ "necesidad": "El perfil de un equipo en cinco dimensiones a la vez para compararlo con el objetivo.",
172
+ "tipo": "radar",
173
+ "idioma": "es",
174
+ "particion": "reservado"
175
+ },
176
+ {
177
+ "id": "objetivo",
178
+ "necesidad": "Descomponer el objetivo anual en lineas de accion y sus iniciativas.",
179
+ "tipo": "strategy-tree",
180
+ "idioma": "es",
181
+ "particion": "entrenamiento"
182
+ },
183
+ {
184
+ "id": "causas",
185
+ "necesidad": "Descomponer el problema de la rotacion de personal en sus causas raiz.",
186
+ "tipo": "issue-tree",
187
+ "idioma": "es",
188
+ "particion": "reservado"
189
+ },
190
+ {
191
+ "id": "capacidades",
192
+ "necesidad": "Las capacidades de negocio agrupadas por dominio.",
193
+ "tipo": "capability-map",
194
+ "idioma": "es",
195
+ "particion": "entrenamiento"
196
+ },
197
+ {
198
+ "id": "cadena",
199
+ "necesidad": "Las etapas encadenadas que generan valor, de la compra a la entrega.",
200
+ "tipo": "value-chain",
201
+ "idioma": "es",
202
+ "particion": "entrenamiento"
203
+ },
204
+ {
205
+ "id": "antes-despues",
206
+ "necesidad": "Comparar como era el proceso antes y como queda despues del cambio.",
207
+ "tipo": "before-after",
208
+ "idioma": "es",
209
+ "particion": "entrenamiento"
210
+ },
211
+ {
212
+ "id": "dependencias",
213
+ "necesidad": "Que microservicio depende de cual, para ver que se rompe si cae uno.",
214
+ "tipo": "dependency-map",
215
+ "idioma": "es",
216
+ "particion": "entrenamiento"
217
+ },
218
+ {
219
+ "id": "bpmn",
220
+ "necesidad": "El proceso de negocio de facturacion en notacion BPMN estandar, con sus carriles.",
221
+ "tipo": "bpmn",
222
+ "nombraTipo": true,
223
+ "idioma": "es",
224
+ "particion": "reservado"
225
+ },
226
+ {
227
+ "id": "ventas-region",
228
+ "necesidad": "Comparar las ventas de este trimestre entre las cinco regiones.",
229
+ "tipo": "bar",
230
+ "acepta": [
231
+ "bar",
232
+ "horizontal-bar"
233
+ ],
234
+ "idioma": "es",
235
+ "particion": "reservado"
236
+ },
237
+ {
238
+ "id": "etiquetas-largas",
239
+ "necesidad": "Comparar el gasto por departamento, y los nombres de los departamentos son largos.",
240
+ "tipo": "horizontal-bar",
241
+ "idioma": "es",
242
+ "particion": "reservado"
243
+ },
244
+ {
245
+ "id": "composicion",
246
+ "necesidad": "Como se compone la facturacion total de cada mes por linea de producto.",
247
+ "tipo": "stacked-bar",
248
+ "acepta": [
249
+ "stacked-bar",
250
+ "stacked-area"
251
+ ],
252
+ "idioma": "es",
253
+ "particion": "entrenamiento"
254
+ },
255
+ {
256
+ "id": "tendencia",
257
+ "necesidad": "La evolucion del numero de usuarios activos mes a mes durante el ultimo ano.",
258
+ "tipo": "line",
259
+ "idioma": "es",
260
+ "particion": "entrenamiento"
261
+ },
262
+ {
263
+ "id": "correlacion",
264
+ "necesidad": "Si existe relacion entre el tamano del equipo y el tiempo de entrega, punto a punto.",
265
+ "tipo": "scatter",
266
+ "idioma": "es",
267
+ "particion": "reservado"
268
+ },
269
+ {
270
+ "id": "distribucion",
271
+ "necesidad": "Como se distribuyen los tiempos de respuesta en tramos, para ver donde se concentran.",
272
+ "tipo": "histogram",
273
+ "idioma": "es",
274
+ "particion": "reservado"
275
+ },
276
+ {
277
+ "id": "dispersion",
278
+ "necesidad": "Comparar la mediana y la dispersion del tiempo de resolucion entre cuatro equipos.",
279
+ "tipo": "box-plot",
280
+ "idioma": "es",
281
+ "particion": "reservado"
282
+ },
283
+ {
284
+ "id": "objetivo-kpi",
285
+ "necesidad": "Un indicador con su valor actual frente al objetivo y los rangos de referencia.",
286
+ "tipo": "bullet",
287
+ "idioma": "es",
288
+ "particion": "reservado"
289
+ },
290
+ {
291
+ "id": "embudo",
292
+ "necesidad": "Cuanta gente sobrevive a cada paso del proceso de registro, de la visita a la compra.",
293
+ "tipo": "funnel",
294
+ "idioma": "es",
295
+ "particion": "entrenamiento"
296
+ },
297
+ {
298
+ "id": "porcentajes",
299
+ "necesidad": "El reparto porcentual del presupuesto entre cuatro partidas.",
300
+ "tipo": "pie",
301
+ "acepta": [
302
+ "pie",
303
+ "donut"
304
+ ],
305
+ "idioma": "es",
306
+ "particion": "reservado"
307
+ },
308
+ {
309
+ "id": "puente",
310
+ "necesidad": "Como se pasa del resultado del ano pasado al de este, sumando y restando cada efecto.",
311
+ "tipo": "waterfall",
312
+ "idioma": "es",
313
+ "particion": "entrenamiento"
314
+ },
315
+ {
316
+ "id": "calor",
317
+ "necesidad": "La intensidad de uso por dia de la semana y hora del dia.",
318
+ "tipo": "heatmap",
319
+ "idioma": "es",
320
+ "particion": "entrenamiento"
321
+ },
322
+ {
323
+ "id": "contexto",
324
+ "necesidad": "Quien usa el sistema y con que sistemas externos habla, a vista de pajaro.",
325
+ "tipo": "c4-context",
326
+ "idioma": "es",
327
+ "particion": "entrenamiento"
328
+ },
329
+ {
330
+ "id": "contenedores",
331
+ "necesidad": "Las piezas desplegables del sistema —web, API, base de datos— y como se comunican.",
332
+ "tipo": "c4-container",
333
+ "idioma": "es",
334
+ "particion": "entrenamiento"
335
+ },
336
+ {
337
+ "id": "componentes-c4",
338
+ "necesidad": "Las piezas internas de la API y sus responsabilidades, dentro del modelo C4.",
339
+ "tipo": "c4-component",
340
+ "idioma": "es",
341
+ "particion": "entrenamiento"
342
+ },
343
+ {
344
+ "id": "en-login",
345
+ "idioma": "en",
346
+ "necesidad": "Explain how a user signs in: the browser calls the API, the API checks the database and returns a token.",
347
+ "tipo": "sequence",
348
+ "particion": "entrenamiento"
349
+ },
350
+ {
351
+ "id": "en-order-states",
352
+ "idioma": "en",
353
+ "necesidad": "What an order goes through and how it moves from created to paid, shipped and delivered.",
354
+ "tipo": "state",
355
+ "particion": "reservado"
356
+ },
357
+ {
358
+ "id": "en-approval",
359
+ "idioma": "en",
360
+ "necesidad": "The approval process for a time-off request, with the manager decision and the two possible branches.",
361
+ "tipo": "activity",
362
+ "acepta": [
363
+ "activity",
364
+ "flow"
365
+ ],
366
+ "particion": "reservado"
367
+ },
368
+ {
369
+ "id": "en-data-model",
370
+ "idioma": "en",
371
+ "necesidad": "The database entities, their fields and the cardinality between customer, order and order line.",
372
+ "tipo": "erd",
373
+ "particion": "entrenamiento"
374
+ },
375
+ {
376
+ "id": "en-infra",
377
+ "idioma": "en",
378
+ "necesidad": "Which infrastructure each piece runs on: servers, containers and the database.",
379
+ "tipo": "deployment",
380
+ "particion": "entrenamiento"
381
+ },
382
+ {
383
+ "id": "en-deps",
384
+ "idioma": "en",
385
+ "necesidad": "Which microservice depends on which, so we can see what breaks when one goes down.",
386
+ "tipo": "dependency-map",
387
+ "particion": "entrenamiento"
388
+ },
389
+ {
390
+ "id": "en-schedule",
391
+ "idioma": "en",
392
+ "necesidad": "The project tasks placed on the calendar, with their start and end dates.",
393
+ "tipo": "gantt",
394
+ "particion": "entrenamiento"
395
+ },
396
+ {
397
+ "id": "en-milestones",
398
+ "idioma": "en",
399
+ "necesidad": "The company milestones in chronological order, from 2020 to 2026.",
400
+ "tipo": "timeline",
401
+ "particion": "reservado"
402
+ },
403
+ {
404
+ "id": "en-board",
405
+ "idioma": "en",
406
+ "necesidad": "The team cards split across status columns.",
407
+ "tipo": "kanban",
408
+ "particion": "reservado"
409
+ },
410
+ {
411
+ "id": "en-priorities",
412
+ "idioma": "en",
413
+ "necesidad": "Place the initiatives by effort and impact on two continuous axes.",
414
+ "tipo": "quadrant",
415
+ "acepta": [
416
+ "quadrant",
417
+ "matrix-2x2"
418
+ ],
419
+ "particion": "entrenamiento"
420
+ },
421
+ {
422
+ "id": "en-root-cause",
423
+ "idioma": "en",
424
+ "necesidad": "Break the staff turnover problem down into its root causes.",
425
+ "tipo": "issue-tree",
426
+ "particion": "entrenamiento"
427
+ },
428
+ {
429
+ "id": "en-objective",
430
+ "idioma": "en",
431
+ "necesidad": "Break the annual objective down into action lines and their initiatives.",
432
+ "tipo": "strategy-tree",
433
+ "particion": "entrenamiento"
434
+ },
435
+ {
436
+ "id": "en-sales",
437
+ "idioma": "en",
438
+ "necesidad": "Compare this quarter sales across the five regions.",
439
+ "tipo": "bar",
440
+ "acepta": [
441
+ "bar",
442
+ "horizontal-bar"
443
+ ],
444
+ "particion": "reservado"
445
+ },
446
+ {
447
+ "id": "en-long-labels",
448
+ "idioma": "en",
449
+ "necesidad": "Compare spend per department, and the department names are long.",
450
+ "tipo": "horizontal-bar",
451
+ "particion": "entrenamiento"
452
+ },
453
+ {
454
+ "id": "en-trend",
455
+ "idioma": "en",
456
+ "necesidad": "How the number of active users evolved month by month over the last year.",
457
+ "tipo": "line",
458
+ "particion": "entrenamiento"
459
+ },
460
+ {
461
+ "id": "en-distribution",
462
+ "idioma": "en",
463
+ "necesidad": "How response times spread across buckets, to see where they concentrate.",
464
+ "tipo": "histogram",
465
+ "particion": "reservado"
466
+ },
467
+ {
468
+ "id": "en-funnel",
469
+ "idioma": "en",
470
+ "necesidad": "How many people survive each step of the signup process, from visit to purchase.",
471
+ "tipo": "funnel",
472
+ "particion": "entrenamiento"
473
+ },
474
+ {
475
+ "id": "en-composition",
476
+ "idioma": "en",
477
+ "necesidad": "How each month total revenue breaks down by product line.",
478
+ "tipo": "stacked-bar",
479
+ "acepta": [
480
+ "stacked-bar",
481
+ "stacked-area"
482
+ ],
483
+ "particion": "reservado"
484
+ },
485
+ {
486
+ "id": "en-correlation",
487
+ "idioma": "en",
488
+ "necesidad": "Whether there is a relationship between team size and delivery time, point by point.",
489
+ "tipo": "scatter",
490
+ "particion": "entrenamiento"
491
+ },
492
+ {
493
+ "id": "en-waterfall",
494
+ "idioma": "en",
495
+ "necesidad": "How we get from last year result to this one, adding and subtracting each effect.",
496
+ "tipo": "waterfall",
497
+ "particion": "entrenamiento"
498
+ },
499
+ {
500
+ "id": "en-context",
501
+ "idioma": "en",
502
+ "necesidad": "Who uses the system and which external systems it talks to, from a bird eye view.",
503
+ "tipo": "c4-context",
504
+ "particion": "reservado"
505
+ },
506
+ {
507
+ "id": "en-containers",
508
+ "idioma": "en",
509
+ "necesidad": "The deployable pieces of the system —web, API, database— and how they communicate.",
510
+ "tipo": "c4-container",
511
+ "particion": "entrenamiento"
512
+ }
513
+ ]
package/package.json ADDED
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "docviz-builder",
3
+ "version": "0.1.0",
4
+ "description": "Compila bloques declarativos de diagramas dentro de Markdown a imagenes SVG/PNG, produciendo Markdown estandar y portable.",
5
+ "keywords": [
6
+ "diagrams",
7
+ "diagrams-as-code",
8
+ "markdown",
9
+ "documentation",
10
+ "plantuml",
11
+ "mermaid",
12
+ "d2",
13
+ "graphviz",
14
+ "vega-lite",
15
+ "likec4",
16
+ "c4",
17
+ "uml",
18
+ "svg",
19
+ "mcp",
20
+ "ai-agents",
21
+ "llm",
22
+ "architecture"
23
+ ],
24
+ "homepage": "https://github.com/TilsonF/docviz-builder#readme",
25
+ "bugs": {
26
+ "url": "https://github.com/TilsonF/docviz-builder/issues"
27
+ },
28
+ "author": "Tilson Fernandez",
29
+ "type": "module",
30
+ "license": "MIT",
31
+ "engines": {
32
+ "node": ">=20.11"
33
+ },
34
+ "bin": {
35
+ "docviz": "./bin/docviz.mjs"
36
+ },
37
+ "main": "./dist/index.js",
38
+ "types": "./dist/index.d.ts",
39
+ "exports": {
40
+ ".": {
41
+ "types": "./dist/index.d.ts",
42
+ "import": "./dist/index.js"
43
+ }
44
+ },
45
+ "files": [
46
+ "bin",
47
+ "dist",
48
+ "scripts",
49
+ "eval",
50
+ "skills",
51
+ "vendor/.gitkeep",
52
+ "README.md",
53
+ "AGENTS.md",
54
+ "LICENSE"
55
+ ],
56
+ "scripts": {
57
+ "setup": "node scripts/fetch-plantuml.mjs",
58
+ "build": "tsc -p tsconfig.build.json",
59
+ "typecheck": "tsc -p tsconfig.json --noEmit",
60
+ "docviz": "node --experimental-strip-types bin/docviz.mjs",
61
+ "docs:check": "npm run docs:sync:check && node bin/docviz.mjs check docs-src",
62
+ "docs:build": "node bin/docviz.mjs build docs-src --output docs",
63
+ "docs:verify": "node bin/docviz.mjs verify docs",
64
+ "docs:test": "npm run docs:verify && vitest run tests/integration",
65
+ "docs:preview": "node bin/docviz.mjs preview docs",
66
+ "showcase": "node bin/docviz.mjs build examples --output artifacts/showcase --clean",
67
+ "test": "vitest run",
68
+ "test:unit": "vitest run tests/unit",
69
+ "test:integration": "vitest run tests/integration",
70
+ "eval": "node scripts/eval.mjs",
71
+ "eval:modelo": "node scripts/eval.mjs --modelo",
72
+ "mcp": "node bin/docviz-mcp.mjs",
73
+ "catalog": "node scripts/generate-catalog-doc.mjs",
74
+ "docs:sync": "node scripts/sync-docs.mjs && node scripts/generate-catalog-doc.mjs",
75
+ "docs:sync:check": "node scripts/sync-docs.mjs --check",
76
+ "check:github": "node scripts/check-github.mjs docs",
77
+ "test:coverage": "vitest run --coverage",
78
+ "prepack": "npm run build"
79
+ },
80
+ "dependencies": {
81
+ "@hpcc-js/wasm-graphviz": "^1.28.0",
82
+ "@modelcontextprotocol/sdk": "^1.30.0",
83
+ "@terrastruct/d2": "^0.1.33",
84
+ "bpmn-js": "^18.24.0",
85
+ "commander": "^14.0.2",
86
+ "likec4": "^1.59.2",
87
+ "mdast-util-to-string": "^4.0.0",
88
+ "mermaid": "^11.16.1",
89
+ "puppeteer-core": "^25.5.0",
90
+ "remark-frontmatter": "^5.0.0",
91
+ "remark-gfm": "^4.0.1",
92
+ "remark-parse": "^11.0.0",
93
+ "svgbob-wasm": "^1.0.0",
94
+ "unified": "^11.0.5",
95
+ "unist-util-visit": "^5.0.0",
96
+ "vega": "^6.3.1",
97
+ "vega-lite": "^6.4.3",
98
+ "yaml": "^2.8.1",
99
+ "zod": "^4.4.3"
100
+ },
101
+ "devDependencies": {
102
+ "@anthropic-ai/sdk": "^0.125.0",
103
+ "@fission-ai/openspec": "^1.8.0",
104
+ "@types/node": "^24.0.0",
105
+ "@vitest/coverage-v8": "^5.0.0",
106
+ "tsx": "^4.20.0",
107
+ "typescript": "^5.9.0",
108
+ "vitest": "^5.0.0"
109
+ },
110
+ "repository": {
111
+ "type": "git",
112
+ "url": "git+https://github.com/TilsonF/docviz-builder.git"
113
+ }
114
+ }