xonecode 0.19.0 → 0.20.3

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 (79) hide show
  1. package/apps/web/dist/assets/{index-BvPUqjUm.js → index-40sIfNsT.js} +65 -65
  2. package/apps/web/dist/assets/{index-CGEXMJBx.css → index-BYTna8Os.css} +1 -1
  3. package/apps/web/dist/assets/{php-Dk28VW45.js → php-CDg2Quc0.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-CPzEcmdp.js → ruby-DlFaAWQT.js} +1 -1
  5. package/apps/web/dist/index.html +2 -2
  6. package/dist/agent/config/modelos.js +13 -8
  7. package/dist/agent/config/modelos.js.map +1 -1
  8. package/dist/agent/grafo/atributosXone.js +58 -0
  9. package/dist/agent/grafo/atributosXone.js.map +1 -0
  10. package/dist/agent/grafo/describirImagen.js +134 -0
  11. package/dist/agent/grafo/describirImagen.js.map +1 -0
  12. package/dist/agent/grafo/marcarCriteriosDelPlan.js +3 -2
  13. package/dist/agent/grafo/marcarCriteriosDelPlan.js.map +1 -1
  14. package/dist/agent/grafo/xoneAgent.js +7 -6
  15. package/dist/agent/grafo/xoneAgent.js.map +1 -1
  16. package/dist/agent/motores/trueforge/capacidades.js +49 -1
  17. package/dist/agent/motores/trueforge/capacidades.js.map +1 -1
  18. package/dist/agent/motores/trueforge/esperas.js +61 -0
  19. package/dist/agent/motores/trueforge/esperas.js.map +1 -0
  20. package/dist/agent/motores/trueforge/informesDeHijos.js +63 -0
  21. package/dist/agent/motores/trueforge/informesDeHijos.js.map +1 -0
  22. package/dist/agent/motores/trueforge/medidaAutomatica.js +118 -0
  23. package/dist/agent/motores/trueforge/medidaAutomatica.js.map +1 -0
  24. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.js +186 -0
  25. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.js.map +1 -0
  26. package/dist/agent/motores/trueforge/resumenSeguro.js +52 -0
  27. package/dist/agent/motores/trueforge/resumenSeguro.js.map +1 -0
  28. package/dist/agent/motores/trueforge/sesionTrueforge.js +512 -30
  29. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
  30. package/dist/agent/motores/trueforge/toolsDeFichero.js +77 -4
  31. package/dist/agent/motores/trueforge/toolsDeFichero.js.map +1 -1
  32. package/dist/agent/subagentes/agentesEnDisco.js +81 -24
  33. package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
  34. package/dist/agent/turno/diagnosticoDeTools.js +12 -0
  35. package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
  36. package/dist/agent/turno/informeDeTraza.js +13 -1
  37. package/dist/agent/turno/informeDeTraza.js.map +1 -1
  38. package/dist/agent/turno/resumenDeTool.js +5 -0
  39. package/dist/agent/turno/resumenDeTool.js.map +1 -1
  40. package/dist/core/actos.js.map +1 -1
  41. package/dist/core/adjuntos.js +2 -3
  42. package/dist/core/adjuntos.js.map +1 -1
  43. package/dist/core/agentes.js +20 -1
  44. package/dist/core/agentes.js.map +1 -1
  45. package/dist/core/atributosXone.js +187 -0
  46. package/dist/core/atributosXone.js.map +1 -0
  47. package/dist/core/compararCapturas.js +81 -15
  48. package/dist/core/compararCapturas.js.map +1 -1
  49. package/dist/core/esfuerzo.js +33 -0
  50. package/dist/core/esfuerzo.js.map +1 -1
  51. package/dist/core/iconos.js +6 -1
  52. package/dist/core/iconos.js.map +1 -1
  53. package/dist/core/modoDeEscritura.js +18 -0
  54. package/dist/core/modoDeEscritura.js.map +1 -1
  55. package/dist/core/motor.js +5 -0
  56. package/dist/core/motor.js.map +1 -1
  57. package/dist/core/nucleoXone.js +3 -1
  58. package/dist/core/nucleoXone.js.map +1 -1
  59. package/dist/core/selectorDeCarpeta.js +15 -1
  60. package/dist/core/selectorDeCarpeta.js.map +1 -1
  61. package/dist/core/settings.js +19 -4
  62. package/dist/core/settings.js.map +1 -1
  63. package/dist/core/shellDeAgente.js +39 -0
  64. package/dist/core/shellDeAgente.js.map +1 -1
  65. package/dist/core/tareasDelPlan.js +70 -8
  66. package/dist/core/tareasDelPlan.js.map +1 -1
  67. package/dist/web/servidor/consolaWeb.js +10 -2
  68. package/dist/web/servidor/consolaWeb.js.map +1 -1
  69. package/dist/web/servidor/pielWeb.js +13 -4
  70. package/dist/web/servidor/pielWeb.js.map +1 -1
  71. package/package.json +1 -1
  72. package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +2 -2
  73. package/skills/xone-development/references/datos/appdata.md +5 -3
  74. package/skills/xone-development/references/fundamentos/errores-comunes.md +34 -0
  75. package/skills/xone-hotswap/SKILL.md +2 -0
  76. package/skills/xone-hotswap/scripts/xone-log-android +18 -1
  77. package/skills/xone-plan-builder/SKILL.md +10 -10
  78. package/skills/xone-plan-builder/references/TASKS-FORMAT.md +5 -5
  79. package/skills/xone-spec-builder/SKILL.md +3 -3
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Un ÍNDICE DE CONSULTA RÁPIDA de los atributos XML de XOne por nodo, sacado de las tablas de la referencia de la skill.
3
+ * No la sustituye: dice si un atributo está en las tablas y DÓNDE leer el detalle.
4
+ *
5
+ * Existe por una medida: en cuatro pasadas de la misma calculadora los agentes leyeron las referencias de la skill 45-61
6
+ * veces, 15-25 ficheros distintos, los mismos releídos una y otra vez (`atributos-prop.md` son 34 KB), casi siempre para
7
+ * contestar «¿existe este atributo en este nodo?». Esa pregunta es la cara del bug mudo de XOne: un atributo inventado o
8
+ * puesto en el nodo equivocado no da error, se ignora.
9
+ *
10
+ * Tres reglas, para que el índice no contradiga a la skill:
11
+ * - **Se lee de las tablas, no se escribe a mano**: una copia se desfasa y entonces miente.
12
+ * - **Si dos ficheros de la skill no coinciden, se enseñan LOS DOS** con el aviso, en vez de quedarse con uno. La skill
13
+ * se contradice a sí misma (medido: `imgbk` en `<group>` está en `nodos-group-y-frame.md` y no en
14
+ * `atributos-coll-group-frame.md`; `border` en `<frame>` es una máscara en uno y un booleano en el otro).
15
+ * - **Nunca afirma «no existe»**: que no esté en estas tablas no lo prueba —la skill documenta atributos también en texto,
16
+ * en el CSS y por tipo de control—, así que dice «no está en las tablas» y da la búsqueda en la skill.
17
+ *
18
+ * La forma que se reconoce: una sección `## N. Nodo \`<x>\`` (o `## N. Nodo x - …`), o el nodo del fichero entero cuando
19
+ * su título no lo parte en secciones; filas `| \`atributo\` | …` en tablas cuya primera columna es «Atributo»; la
20
+ * descripción es la columna «Descripción» (o la última); «Tipo» y «Default» si la cabecera las trae. Una fila puede nombrar
21
+ * varios (`\`a\` / \`b\``). Puro: `core/` no lee disco.
22
+ */
23
+ const NODO = /^##\s+\d+\.\s+Nodo\s+`?<?([a-z][a-z-]*)>?`?/i;
24
+ const SECCION = /^###\s+(\d+(?:\.\d+)*[a-z]?)\s+(.+?)\s*$/;
25
+ const TOPE_DE_DESCRIPCION = 160;
26
+ const celdas = (fila) => fila
27
+ .trim()
28
+ .replace(/^\|/, "")
29
+ .replace(/\|$/, "")
30
+ .split(/(?<!\\)\|/)
31
+ .map((c) => c.trim());
32
+ const limpio = (t) => t
33
+ .replace(/\*\*/g, "")
34
+ .replace(/\\\|/g, "|")
35
+ .replace(/\s+/g, " ")
36
+ .trim();
37
+ /** Las filas de atributos de UN fichero de referencia. `nodoDelFichero`: el nodo cuando el fichero no lo parte por secciones. */
38
+ export function interpretarReferenciaDeAtributos(texto, fichero, nodoDelFichero) {
39
+ const salida = [];
40
+ let nodo = nodoDelFichero;
41
+ let seccion;
42
+ let cabecera;
43
+ for (const linea of texto.split("\n")) {
44
+ const n = NODO.exec(linea);
45
+ if (n !== null) {
46
+ nodo = n[1].toLowerCase();
47
+ seccion = undefined;
48
+ cabecera = undefined;
49
+ continue;
50
+ }
51
+ if (/^##\s/.test(linea) && nodoDelFichero === undefined) {
52
+ // Otra sección de nivel 2 que no es un nodo (introducción, ejemplos): sus tablas no son de un nodo.
53
+ nodo = undefined;
54
+ cabecera = undefined;
55
+ continue;
56
+ }
57
+ const s = SECCION.exec(linea);
58
+ if (s !== null) {
59
+ seccion = `§${s[1]} ${s[2]}`;
60
+ cabecera = undefined;
61
+ continue;
62
+ }
63
+ if (!linea.trim().startsWith("|")) {
64
+ cabecera = undefined;
65
+ continue;
66
+ }
67
+ const c = celdas(linea);
68
+ if (cabecera === undefined) {
69
+ cabecera = c.map((x) => limpio(x).toLowerCase());
70
+ continue;
71
+ }
72
+ if (c.every((x) => /^:?-+:?$/.test(x)))
73
+ continue;
74
+ if (nodo === undefined || !/^atributo/.test(cabecera[0] ?? ""))
75
+ continue;
76
+ const nombres = [...(c[0] ?? "").matchAll(/`([^`]+)`/g)].map((m) => m[1].trim()).filter((x) => /^[a-z][\w-]*$/i.test(x));
77
+ if (nombres.length === 0)
78
+ continue;
79
+ const col = (...nombresDeColumna) => {
80
+ const i = cabecera.findIndex((h) => nombresDeColumna.includes(h));
81
+ const v = i > 0 ? limpio(c[i] ?? "") : undefined;
82
+ return v === undefined || v === "" || v === "—" ? undefined : v.replace(/`/g, "");
83
+ };
84
+ let descripcion = col("descripción", "descripcion") ?? limpio(c[c.length - 1] ?? "").replace(/`/g, "");
85
+ if (descripcion.length > TOPE_DE_DESCRIPCION)
86
+ descripcion = `${descripcion.slice(0, TOPE_DE_DESCRIPCION - 1).trimEnd()}…`;
87
+ const tipo = col("tipo");
88
+ const defecto = col("default");
89
+ for (const atributo of nombres) {
90
+ salida.push({
91
+ atributo,
92
+ nodo,
93
+ descripcion,
94
+ fichero,
95
+ ...(tipo === undefined ? {} : { tipo }),
96
+ ...(defecto === undefined ? {} : { defecto }),
97
+ ...(seccion === undefined ? {} : { seccion }),
98
+ });
99
+ }
100
+ }
101
+ return salida;
102
+ }
103
+ export function indiceDeAtributos(entradas) {
104
+ const porAtributo = new Map();
105
+ const porNodo = new Map();
106
+ for (const e of entradas) {
107
+ const a = e.atributo.toLowerCase();
108
+ const nodos = porAtributo.get(a) ?? new Map();
109
+ const lista = nodos.get(e.nodo) ?? [];
110
+ if (!lista.some((x) => x.fichero === e.fichero))
111
+ lista.push(e);
112
+ nodos.set(e.nodo, lista);
113
+ porAtributo.set(a, nodos);
114
+ const deNodo = porNodo.get(e.nodo) ?? [];
115
+ if (!deNodo.some((x) => x.atributo === e.atributo))
116
+ deNodo.push(e);
117
+ porNodo.set(e.nodo, deNodo);
118
+ }
119
+ return { porAtributo, porNodo, ficheros: [...new Set(entradas.map((e) => e.fichero))] };
120
+ }
121
+ const tipoNormal = (t) => t?.toLowerCase().replace(/\s+/g, " ").trim();
122
+ /** ¿Los ficheros que documentan este atributo en este nodo dicen TIPOS distintos? */
123
+ export function tiposQueNoCoinciden(fuentes) {
124
+ const tipos = new Set(fuentes.map((f) => tipoNormal(f.tipo)).filter((t) => t !== undefined));
125
+ return tipos.size > 1;
126
+ }
127
+ const donde = (e) => `${e.fichero}${e.seccion === undefined ? "" : ` ${e.seccion}`}`;
128
+ function lineas(nodo, fuentes) {
129
+ const [primera, ...otras] = fuentes;
130
+ if (primera === undefined)
131
+ return [];
132
+ const detalle = (e) => `${e.tipo === undefined ? "" : `${e.tipo}${e.defecto === undefined ? "" : `, por omisión ${e.defecto}`}: `}${e.descripcion}`;
133
+ return [
134
+ `- \`${primera.atributo}\` en <${nodo}> — ${detalle(primera)} [${donde(primera)}]`,
135
+ ...otras.map((e) => ` también en ${donde(e)}: ${detalle(e)}`),
136
+ ...(tiposQueNoCoinciden(fuentes) ? [" ⚠ la skill NO coincide en el tipo entre esos ficheros: lee los dos antes de usarlo."] : []),
137
+ ];
138
+ }
139
+ /** Los parecidos a un nombre que no está: el mismo prefijo, o el nombre dentro de otro. */
140
+ function parecidos(indice, nombre) {
141
+ const n = nombre.toLowerCase();
142
+ const raiz = n.split("-")[0] ?? n;
143
+ return [...indice.porAtributo.keys()].filter((a) => a !== n && (a.includes(n) || n.includes(a) || a.startsWith(raiz))).slice(0, 8);
144
+ }
145
+ export const PIE_DEL_INDICE = "(Índice de consulta rápida de las tablas de la skill: el detalle, los ejemplos y lo que cambia por tipo de control están en el fichero citado, y si discrepan manda la skill.)";
146
+ /**
147
+ * La respuesta, en texto para el modelo. Con `atributo` (y opcionalmente `nodo`): en qué nodos está, con tipo, omisión,
148
+ * descripción corta y fichero; si otro fichero dice otra cosa, también. Con solo `nodo`: sus atributos por nombre,
149
+ * agrupados por subsección. `busqueda` compone la búsqueda en la skill para cuando no está (la da quien monta la tool).
150
+ */
151
+ export function consultarAtributos(indice, pregunta, busqueda = (a) => `busca \`${a}\` en las referencias de la skill`) {
152
+ const nodo = pregunta.nodo?.replace(/[<>]/g, "").trim().toLowerCase();
153
+ const nodos = [...indice.porNodo.keys()];
154
+ if (nodo !== undefined && nodo !== "" && !indice.porNodo.has(nodo)) {
155
+ return `Las tablas indexadas no traen el nodo <${nodo}>. Traen: ${nodos.map((x) => `<${x}>`).join(", ")}.\n${PIE_DEL_INDICE}`;
156
+ }
157
+ const atributo = pregunta.atributo?.trim();
158
+ if (atributo !== undefined && atributo !== "") {
159
+ const todos = indice.porAtributo.get(atributo.toLowerCase()) ?? new Map();
160
+ const elegidos = [...todos.entries()].filter(([n]) => nodo === undefined || nodo === "" || n === nodo);
161
+ if (elegidos.length > 0)
162
+ return [...elegidos.flatMap(([n, f]) => lineas(n, f)), PIE_DEL_INDICE].join("\n");
163
+ const otros = [...todos.keys()].map((n) => `<${n}>`);
164
+ const cerca = parecidos(indice, atributo);
165
+ return [
166
+ `\`${atributo}\` no aparece en las tablas de atributos${nodo === undefined || nodo === "" ? "" : ` de <${nodo}>`} que indexo. Eso NO prueba que no exista: ` +
167
+ "la skill documenta atributos también en su texto, en el CSS y por tipo de control.",
168
+ ...(otros.length > 0 ? [`En las tablas sí está en: ${otros.join(", ")}.`] : []),
169
+ ...(cerca.length > 0 ? [`Parecidos que sí están: ${cerca.map((x) => `\`${x}\``).join(", ")}.`] : []),
170
+ `Antes de usarlo, o de descartarlo: ${busqueda(atributo)}. Si la skill tampoco lo trae, no lo pongas: XOne ignora en silencio lo que no conoce.`,
171
+ ].join("\n");
172
+ }
173
+ if (nodo === undefined || nodo === "") {
174
+ return `Pregunta por \`atributo\` (en qué nodos está y qué hace) o por \`nodo\` (${nodos.map((x) => `<${x}>`).join(", ")}: su lista de atributos).`;
175
+ }
176
+ const porSeccion = new Map();
177
+ for (const e of indice.porNodo.get(nodo) ?? []) {
178
+ const s = `${e.fichero}${e.seccion === undefined ? "" : ` ${e.seccion}`}`;
179
+ porSeccion.set(s, [...(porSeccion.get(s) ?? []), e.atributo]);
180
+ }
181
+ return [
182
+ `Atributos de <${nodo}> en las tablas de la skill (${indice.porNodo.get(nodo)?.length ?? 0}), por fichero y sección; pregunta por uno para su tipo y descripción:`,
183
+ ...[...porSeccion.entries()].map(([s, as]) => `${s}: ${as.join(", ")}`),
184
+ PIE_DEL_INDICE,
185
+ ].join("\n");
186
+ }
187
+ //# sourceMappingURL=atributosXone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atributosXone.js","sourceRoot":"","sources":["../../src/core/atributosXone.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * ## Qué mide, y por qué solo eso
13
13
  *
14
14
  * Es DETERMINISTA: las mismas dos imágenes dan siempre los mismos números, y no depende de que el
15
- * modelo tenga visión (DeepSeek no la tiene). Mide **dónde hay contenido**, no cómo es:
15
+ * modelo tenga visión. Mide **dónde hay contenido**, no cómo es:
16
16
  *
17
17
  * 1. El FONDO es el color más frecuente (una pantalla de app es un fondo liso con cosas encima).
18
18
  * 2. «Contenido» es todo píxel que se aparta del fondo más que `UMBRAL_DE_CONTENIDO`.
@@ -38,6 +38,15 @@ export const FRANJAS_DE_COLUMNAS = 8;
38
38
  export const UMBRAL_DE_CONTENIDO = 24;
39
39
  /** Una franja «tiene contenido» si al menos esta fracción de sus píxeles no es fondo. */
40
40
  const DENSIDAD_MINIMA_DE_FILA = 0.02;
41
+ /** En una franja, una columna tiene contenido si al menos esta fracción de su alto no es fondo. */
42
+ const DENSIDAD_MINIMA_DE_COLUMNA_EN_FRANJA = 0.05;
43
+ /**
44
+ * El ENCAJE: cuánto puede separarse cada borde del contenido (arriba, abajo, izquierda, derecha) del de la maqueta, en
45
+ * fracción de la pantalla. Existe porque las distancias por franjas PROMEDIAN: calc12 cumplía el 10 % en horizontal
46
+ * (8 %) con el teclado acabando al 85 % del ancho donde la maqueta llega al 96 %, y 12 puntos vacíos abajo. Calibrado
47
+ * contra las capturas de las pasadas: la mejor (calc9) queda en 0-1,6 puntos por lado.
48
+ */
49
+ export const TOLERANCIA_DE_ENCAJE = 0.03;
41
50
  /** Diferencia de ocupación (en puntos de 0 a 1) a partir de la cual una franja se señala. */
42
51
  export const DIFERENCIA_QUE_SE_SEÑALA = 0.3;
43
52
  /** Diferencia media de perfil bajo la que dos pantallas se dan por parecidas en estructura. */
@@ -144,10 +153,47 @@ export function medirPantalla(img, recorte = RECORTE_DE_BARRAS) {
144
153
  const filas = Array.from({ length: FRANJAS_DE_FILAS }, (_, k) => media(densidadDeFila, Math.floor((k * alto) / FRANJAS_DE_FILAS), Math.floor(((k + 1) * alto) / FRANJAS_DE_FILAS)));
145
154
  const columnas = Array.from({ length: FRANJAS_DE_COLUMNAS }, (_, k) => media(cuentaDeColumna, Math.floor((k * ancho) / FRANJAS_DE_COLUMNAS), Math.floor(((k + 1) * ancho) / FRANJAS_DE_COLUMNAS)) /
146
155
  alto);
156
+ // Dónde empieza y acaba el contenido por los LADOS: la MEDIANA de cada franja del alto, no el recuadro de la pantalla
157
+ // entera, que lo fija el elemento más ancho (la barra de arriba ocupa todo) y no dice si el teclado llega al borde.
158
+ const bordesDeFranja = [];
159
+ for (let k = 0; k < FRANJAS_DE_FILAS; k++) {
160
+ const y0 = Math.floor((k * alto) / FRANJAS_DE_FILAS);
161
+ const y1 = Math.floor(((k + 1) * alto) / FRANJAS_DE_FILAS);
162
+ const cuenta = new Float64Array(ancho);
163
+ for (let y = y0; y < y1; y++) {
164
+ const base = (desde + y) * ancho * 4;
165
+ for (let x = 0; x < ancho; x++) {
166
+ const i = base + x * 4;
167
+ const d = Math.abs(datos[i] - fondo[0]) + Math.abs(datos[i + 1] - fondo[1]) + Math.abs(datos[i + 2] - fondo[2]);
168
+ if (d > UMBRAL_DE_CONTENIDO)
169
+ cuenta[x] += 1;
170
+ }
171
+ }
172
+ let a = -1;
173
+ let b = -1;
174
+ for (let x = 0; x < ancho; x++) {
175
+ if (cuenta[x] / Math.max(y1 - y0, 1) > DENSIDAD_MINIMA_DE_COLUMNA_EN_FRANJA) {
176
+ if (a < 0)
177
+ a = x;
178
+ b = x;
179
+ }
180
+ }
181
+ if (a >= 0)
182
+ bordesDeFranja.push([a / ancho, (b + 1) / ancho]);
183
+ }
184
+ const mediana = (v) => {
185
+ if (v.length === 0)
186
+ return 0;
187
+ const o = [...v].sort((x, y) => x - y);
188
+ const m = Math.floor(o.length / 2);
189
+ return o.length % 2 === 1 ? o[m] : (o[m - 1] + o[m]) / 2;
190
+ };
147
191
  return {
148
192
  fondo,
149
193
  inicioDelContenido: primera < 0 ? 0 : primera / alto,
150
194
  finDelContenido: ultima < 0 ? 0 : (ultima + 1) / alto,
195
+ izquierdaDelContenido: mediana(bordesDeFranja.map(([a]) => a)),
196
+ derechaDelContenido: mediana(bordesDeFranja.map(([, b]) => b)),
151
197
  filas,
152
198
  columnas,
153
199
  };
@@ -187,25 +233,42 @@ function describirRangos(nombre, ref, cap) {
187
233
  return `${donde} la captura tiene mucho más contenido (${pct(c0)}) que la referencia (${pct(r0)})`;
188
234
  });
189
235
  }
236
+ /** El peor borde, en valor absoluto: lo que decide si encaja. */
237
+ export function desajusteDeEncaje(e) {
238
+ return Math.max(Math.abs(e.arriba), Math.abs(e.abajo), Math.abs(e.izquierda), Math.abs(e.derecha));
239
+ }
240
+ /** Un hallazgo por borde que se sale de la tolerancia, dicho como lo que hay que hacer para que ocupe la pantalla como la maqueta. */
241
+ function hallazgosDeEncaje(e, ref, cap) {
242
+ const salida = [];
243
+ const fuera = (d) => Math.abs(d) > TOLERANCIA_DE_ENCAJE;
244
+ if (fuera(e.derecha)) {
245
+ salida.push(`ENCAJE a la derecha: el contenido acaba al ${pct(cap.derechaDelContenido)} del ancho y en la maqueta al ${pct(ref.derechaDelContenido)} ` +
246
+ (e.derecha < 0 ? `(le faltan ${pct(-e.derecha)}: ensánchalo hasta el borde de la maqueta)` : `(se pasa ${pct(e.derecha)})`));
247
+ }
248
+ if (fuera(e.izquierda)) {
249
+ salida.push(`ENCAJE a la izquierda: el contenido empieza al ${pct(cap.izquierdaDelContenido)} del ancho y en la maqueta al ${pct(ref.izquierdaDelContenido)}`);
250
+ }
251
+ if (fuera(e.abajo)) {
252
+ salida.push(`ENCAJE abajo: el contenido acaba al ${pct(cap.finDelContenido)} del alto útil y en la maqueta al ${pct(ref.finDelContenido)} ` +
253
+ (e.abajo < 0 ? `(queda una banda vacía de ${pct(-e.abajo)}: el contenido tiene que llegar abajo como en la maqueta)` : `(se pasa ${pct(e.abajo)})`));
254
+ }
255
+ if (fuera(e.arriba)) {
256
+ salida.push(`ENCAJE arriba: el contenido empieza al ${pct(cap.inicioDelContenido)} del alto útil y en la maqueta al ${pct(ref.inicioDelContenido)}`);
257
+ }
258
+ return salida;
259
+ }
190
260
  /** Compara dos pantallas ya medidas. Puro: los números salen de `medirPantalla`. */
191
261
  export function compararMedidas(referencia, captura) {
192
262
  const dv = distancia(referencia.filas, captura.filas);
193
263
  const dh = distancia(referencia.columnas, captura.columnas);
194
264
  const hallazgos = [];
195
- const finRef = referencia.finDelContenido;
196
- const finCap = captura.finDelContenido;
197
- if (finRef - finCap > 0.15) {
198
- hallazgos.push(`El contenido de la captura acaba al ${pct(finCap)} del alto útil y el de la referencia al ${pct(finRef)}: ` +
199
- `queda una banda vacía de un ${pct(finRef - finCap)} debajo`);
200
- }
201
- else if (finCap - finRef > 0.15) {
202
- hallazgos.push(`El contenido de la captura llega al ${pct(finCap)} del alto útil y el de la referencia solo al ${pct(finRef)}`);
203
- }
204
- const inicioRef = referencia.inicioDelContenido;
205
- const inicioCap = captura.inicioDelContenido;
206
- if (Math.abs(inicioRef - inicioCap) > 0.1) {
207
- hallazgos.push(`El contenido de la captura empieza al ${pct(inicioCap)} del alto útil y el de la referencia al ${pct(inicioRef)}`);
208
- }
265
+ const encaje = {
266
+ arriba: captura.inicioDelContenido - referencia.inicioDelContenido,
267
+ abajo: captura.finDelContenido - referencia.finDelContenido,
268
+ izquierda: captura.izquierdaDelContenido - referencia.izquierdaDelContenido,
269
+ derecha: captura.derechaDelContenido - referencia.derechaDelContenido,
270
+ };
271
+ hallazgos.push(...hallazgosDeEncaje(encaje, referencia, captura));
209
272
  hallazgos.push(...describirRangos("alto", referencia.filas, captura.filas));
210
273
  hallazgos.push(...describirRangos("ancho", referencia.columnas, captura.columnas));
211
274
  const parecida = dv <= DISTANCIA_PARECIDA && dh <= DISTANCIA_PARECIDA && hallazgos.length === 0;
@@ -214,6 +277,7 @@ export function compararMedidas(referencia, captura) {
214
277
  captura,
215
278
  distanciaVertical: dv,
216
279
  distanciaHorizontal: dh,
280
+ encaje,
217
281
  hallazgos,
218
282
  veredicto: parecida ? "parecida" : "distinta",
219
283
  };
@@ -226,10 +290,12 @@ export function compararPantallas(referencia, captura) {
226
290
  * El informe en texto, que es lo que lee el modelo. **Termina diciendo lo que esto NO mide**: un
227
291
  * «parecida» de aquí es «la estructura coincide», y se leería como «se ve bien» si no se dijera.
228
292
  */
293
+ const pp = (x) => `${x >= 0 ? "+" : "−"}${Math.round(Math.abs(x) * 100)}`;
229
294
  export function informeDeComparacion(c) {
230
295
  const filas = (m) => m.filas.map((f) => String(Math.round(f * 100)).padStart(3)).join("");
231
296
  const lineas = [
232
297
  `Estructura ${c.veredicto === "parecida" ? "PARECIDA" : "DISTINTA"} (distancia vertical ${pct(c.distanciaVertical)}, horizontal ${pct(c.distanciaHorizontal)}; se da por parecida bajo ${pct(DISTANCIA_PARECIDA)}).`,
298
+ `Encaje de los bordes del contenido frente a la maqueta (tolerancia ${pct(TOLERANCIA_DE_ENCAJE)} por lado): arriba ${pp(c.encaje.arriba)}, abajo ${pp(c.encaje.abajo)}, izquierda ${pp(c.encaje.izquierda)}, derecha ${pp(c.encaje.derecha)} → ${desajusteDeEncaje(c.encaje) <= TOLERANCIA_DE_ENCAJE ? "ENCAJA" : "NO ENCAJA"}.`,
233
299
  `Ocupación por franjas del alto, de arriba abajo (%):`,
234
300
  ` referencia:${filas(c.referencia)}`,
235
301
  ` captura: ${filas(c.captura)}`,
@@ -1 +1 @@
1
- {"version":3,"file":"compararCapturas.js","sourceRoot":"","sources":["../../src/core/compararCapturas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compararCapturas.js","sourceRoot":"","sources":["../../src/core/compararCapturas.ts"],"names":[],"mappings":"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"}
@@ -150,4 +150,37 @@ export function esfuerzoAplicable(elegido, proveedor, modelo, vivas) {
150
150
  return undefined;
151
151
  return nivelesDeEsfuerzo(proveedor, modelo, vivas)?.includes(elegido) === true ? elegido : undefined;
152
152
  }
153
+ export function claseDeTrabajo(a) {
154
+ return a.ejecucion === true ? "mecanica" : undefined;
155
+ }
156
+ export function esPensamiento(valor) {
157
+ return valor === "apagado" || valor === "activo";
158
+ }
159
+ /**
160
+ * Qué modelos admiten apagar el pensamiento con `thinking: {type: "disabled"}`. Solo DeepSeek, y MEDIDO contra la
161
+ * API: sin nada piensa, con `low` o `high` piensa casi igual (25, 23 y 23 tokens con una pregunta fácil), y con
162
+ * `thinking` desactivado la salida bajó de 27 tokens a 1. Lo demás no se sabe, y un parámetro que un modelo no
163
+ * conoce se paga en un 400: sin fila no hay interruptor.
164
+ */
165
+ export function admiteApagarElPensamiento(proveedor, modelo) {
166
+ return proveedor === "deepseek" && modelo.startsWith("deepseek");
167
+ }
168
+ /**
169
+ * El pensamiento POR OMISIÓN de un subagente, por FAMILIA de proveedor y clase de trabajo: el que vale cuando
170
+ * su `.md` no dice nada. Antes esto fue un nivel `low` para lo mecánico, y no hacía nada: en una pasada real
171
+ * el conductor con `low` seguía dedicando el 80 % de su salida a razonar. Lo mecánico —leer una salida, lanzar
172
+ * un comando— se apaga. **Lo que NO está medido** es que apagarlo no empeore el resultado del conductor al
173
+ * interpretar un log raro; la traza (razonamiento por origen) es lo que permite comprobarlo.
174
+ */
175
+ const PENSAMIENTO_POR_FAMILIA = {
176
+ deepseek: { mecanica: "apagado" },
177
+ };
178
+ export function pensamientoPorOmision(proveedor, clase) {
179
+ return clase === undefined ? undefined : PENSAMIENTO_POR_FAMILIA[proveedor]?.[clase];
180
+ }
181
+ /** El pensamiento que se va a aplicar de verdad: lo que dice el agente, o la omisión de su familia, y solo si el modelo lo admite. */
182
+ export function pensamientoAplicable(elegido, proveedor, modelo, clase) {
183
+ const quiere = elegido ?? pensamientoPorOmision(proveedor, clase);
184
+ return quiere === "apagado" && admiteApagarElPensamiento(proveedor, modelo) ? "apagado" : quiere === "activo" ? "activo" : undefined;
185
+ }
153
186
  //# sourceMappingURL=esfuerzo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"esfuerzo.js","sourceRoot":"","sources":["../../src/core/esfuerzo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAaH,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAEjG,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAQ,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,4DAA4D;AAC5D,MAAM,IAAI,GAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5D,6CAA6C;AAC7C,MAAM,KAAK,GAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,KAAK,GAAuF;IAChG,SAAS,EAAE;QACT,CAAC,cAAc,EAAE,KAAK,CAAC;QACvB,CAAC,eAAe,EAAE,KAAK,CAAC;QACxB,CAAC,eAAe,EAAE,KAAK,CAAC;QACxB,CAAC,iBAAiB,EAAE,KAAK,CAAC;QAC1B,CAAC,iBAAiB,EAAE,KAAK,CAAC;QAC1B,CAAC,iBAAiB,EAAE,KAAK,CAAC;QAC1B,yEAAyE;QACzE,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACzB,kFAAkF;KACnF;IACD,MAAM,EAAE;QACN,CAAC,UAAU,EAAE,IAAI,CAAC;QAClB,CAAC,qBAAqB,EAAE,IAAI,CAAC;QAC7B,CAAC,0BAA0B,EAAE,IAAI,CAAC;QAClC,CAAC,mBAAmB,EAAE,IAAI,CAAC;KAC5B;IACD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE;QACN,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACxB,CAAC,mBAAmB,EAAE,KAAK,CAAC;KAC7B;CACF,CAAC;AAoBF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAoB,EACpB,MAAc,EACd,KAAwB;IAExB,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QAC3D,OAAO,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAEvF;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA6B,EAC7B,SAAoB,EACpB,MAAc,EACd,KAAwB;IAExB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"esfuerzo.js","sourceRoot":"","sources":["../../src/core/esfuerzo.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,12 @@ export const NOMBRE_BUSCAR_ICONO = "buscar_icono";
33
33
  * recibe tools propias (la ficha lo comprueba aparte).
34
34
  */
35
35
  export function recibeBuscarIcono(a) {
36
- return !a.soloLectura && a.ejecucion !== true && (a.escribeEn ?? []).length === 0;
36
+ if (a.soloLectura || a.ejecucion === true)
37
+ return false;
38
+ // Sin `escribeEn` escribe el proyecto entero; con él, solo si una de sus carpetas cubre `icons/` —el diseñador, que
39
+ // es quien hace los recursos—. El documentador (`/doc/`) sigue sin ellas.
40
+ const carpetas = a.escribeEn ?? [];
41
+ return carpetas.length === 0 || carpetas.some((c) => `/${CARPETA_DE_ICONOS}/`.startsWith(c.endsWith("/") ? c : `${c}/`));
37
42
  }
38
43
  /** La carpeta de una app XOne donde viven los iconos (`fundamentos/plataforma-y-anatomia…`). */
39
44
  export const CARPETA_DE_ICONOS = "icons";
@@ -1 +1 @@
1
- {"version":3,"file":"iconos.js","sourceRoot":"","sources":["../../src/core/iconos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iconos.js","sourceRoot":"","sources":["../../src/core/iconos.ts"],"names":[],"mappings":"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"}
@@ -134,4 +134,22 @@ export function seEscribeSinPreguntar(opciones) {
134
134
  return false;
135
135
  return opciones.interactivo;
136
136
  }
137
+ /**
138
+ * Cuántas preguntas de UN turno se contestan solas en modo autónomo. Un modelo que encadena
139
+ * preguntas no puede dejar el turno dando vueltas: pasado el tope, la siguiente le llega a la persona.
140
+ */
141
+ export const TOPE_DE_PREGUNTAS_CONTESTADAS_SOLAS = 8;
142
+ const MARCA_DE_RECOMENDADA = /\((?:recommended|recomendad[ao])\)/i;
143
+ /**
144
+ * La opción que el agente MARCÓ como recomendada, o `undefined`. Solo cuenta lo que el modelo
145
+ * escribió: sin marca no se elige por él, y la pregunta llega a la persona.
146
+ *
147
+ * **El modo autónomo quitaba la pregunta de las ESCRITURAS y no la del agente**, y una sesión
148
+ * autónoma se paraba igual a pedir «alcance» y «tipografías», cada una con su recomendada.
149
+ * Contestarla sola es decidir por la persona, así que se DICE en el chat, con la opción elegida.
150
+ */
151
+ export function opcionRecomendada(opciones) {
152
+ const marcadas = opciones.filter((o) => MARCA_DE_RECOMENDADA.test(o));
153
+ return marcadas.length === 1 ? marcadas[0] : undefined;
154
+ }
137
155
  //# sourceMappingURL=modoDeEscritura.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modoDeEscritura.js","sourceRoot":"","sources":["../../src/core/modoDeEscritura.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoB,aAAa,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AACrE,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,OAAO,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,UAAU,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,MAAM,GAAG,KAAK;SACjB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC;IAC1E,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,UAAU,CAAC;IACxE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAGrC;IACC,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,QAAQ,CAAC,WAAW,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"modoDeEscritura.js","sourceRoot":"","sources":["../../src/core/modoDeEscritura.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoB,aAAa,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AACrE,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,OAAO,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,UAAU,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,MAAM,GAAG,KAAK;SACjB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,aAAa,CAAC;IAC1E,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,UAAU,CAAC;IACxE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAGrC;IACC,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,QAAQ,CAAC,WAAW,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAErD,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC"}
@@ -2,6 +2,11 @@
2
2
  * Qué motor de agente corre una sesión: `deepagents` (el de siempre) o `trueforge` (el segundo,
3
3
  * `docs/VARIANTE-TRUEFORGE-HARNESS.md`).
4
4
  *
5
+ * **deepagents es LEGACY** (decisión suya, 30-09-2026): sigue corriendo las sesiones que nacieron con
6
+ * él y a un `"motor": "deepagents"` de distancia, pero lo nuevo va solo a TrueForge y ahí no se toca
7
+ * nada. Primer caso: `describe_image` (IXCODE-23) no existe en deepagents, aunque el aviso de adjuntos,
8
+ * que es común, la nombra.
9
+ *
5
10
  * **Se elige por CONFIGURACIÓN y no se enseña**: decisión suya —«la conexión que sea por
6
11
  * configuración no visible para el usuario»—. La interfaz es la misma con los dos: el motor solo
7
12
  * cambia quién produce los eventos de dominio que las pieles pintan.
@@ -1 +1 @@
1
- {"version":3,"file":"motor.js","sourceRoot":"","sources":["../../src/core/motor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,WAAW,CAAU,CAAC;AAG5D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAkB,WAAW,CAAC;AAE5D,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAK7B;IACC,KAAK,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5F,IAAI,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC3C,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"motor.js","sourceRoot":"","sources":["../../src/core/motor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,WAAW,CAAU,CAAC;AAG5D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAkB,WAAW,CAAC;AAE5D,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,OAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAK7B;IACC,KAAK,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5F,IAAI,OAAO,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC3C,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -38,7 +38,6 @@ export const NUCLEO_XONE = [
38
38
  "- Con un diseño delante, «fiel» se comprueba con `comparar_capturas` y `xone_critica_visual`, pasando la",
39
39
  " maqueta como `referencia` (vale /diseno/, /adjuntos/ o /artefactos/). Sin ella el crítico solo dice «nada",
40
40
  " roto», y eso no es «se parece».",
41
- "- Si el crítico y tus medidas discrepan, mide lo que él señala antes de descartarlo.",
42
41
  "",
43
42
  "2. LO QUE XONE NO AVISA CUANDO FALLA (un bug mudo, con `validate` en verde)",
44
43
  "- Un comentario XML no puede llevar `--` dentro: `<!-- ==== X ==== -->` vale, `<!-- ---- X ---- -->` NO.",
@@ -52,6 +51,9 @@ export const NUCLEO_XONE = [
52
51
  "- `border-corner-radius` NO recorta un `img` ni un `imgbk`: la esquina se dibuja en el SVG.",
53
52
  "- Un color de XOne es `#RRGGBB` o `#AARRGGBB`, con el alfa PRIMERO. HTML y SVG lo ponen al final.",
54
53
  "- Un icono o un fondo que se referencia y no está en `icons/` no da error: simplemente no sale.",
54
+ "- `getControl(\"X\")` LANZA si el control no existe, y un `try/catch` NO lo detiene: aborta el evento y saca un diálogo.",
55
+ " No existen en `<create>` (la vista aún no está montada) ni los hijos de un frame OCULTO: en `<create>` solo estado",
56
+ " (`self.MAP_*`). Sonda que no lanza: `ui.getView(self)[\"X\"]` da `undefined` (medido en un aparato).",
55
57
  "",
56
58
  "3. SVG: LO QUE XONE PINTA Y LO QUE IGNORA (medido en un emulador Android)",
57
59
  "- Se pintan `linearGradient`, `radialGradient` y `stop-opacity`. Los FILTROS (`feGaussianBlur`,",
@@ -1 +1 @@
1
- {"version":3,"file":"nucleoXone.js","sourceRoot":"","sources":["../../src/core/nucleoXone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,mFAAmF;IACnF,EAAE;IACF,+CAA+C;IAC/C,yGAAyG;IACzG,8FAA8F;IAC9F,0GAA0G;IAC1G,iGAAiG;IACjG,6GAA6G;IAC7G,uGAAuG;IACvG,8GAA8G;IAC9G,wGAAwG;IACxG,0GAA0G;IAC1G,6GAA6G;IAC7G,mCAAmC;IACnC,sFAAsF;IACtF,EAAE;IACF,6EAA6E;IAC7E,0GAA0G;IAC1G,+CAA+C;IAC/C,2GAA2G;IAC3G,+GAA+G;IAC/G,uCAAuC;IACvC,0GAA0G;IAC1G,+GAA+G;IAC/G,2EAA2E;IAC3E,6FAA6F;IAC7F,mGAAmG;IACnG,iGAAiG;IACjG,EAAE;IACF,2EAA2E;IAC3E,iGAAiG;IACjG,gHAAgH;IAChH,sGAAsG;IACtG,6GAA6G;IAC7G,gHAAgH;IAChH,uEAAuE;IACvE,iHAAiH;IACjH,iFAAiF;IACjF,8FAA8F;IAC9F,EAAE;IACF,qCAAqC;IACrC,6GAA6G;IAC7G,8GAA8G;IAC9G,4GAA4G;IAC5G,kGAAkG;IAClG,gFAAgF;IAChF,0FAA0F;IAC1F,EAAE;IACF,yEAAyE;IACzE,iHAAiH;IACjH,gEAAgE;IAChE,0GAA0G;IAC1G,8EAA8E;IAC9E,8GAA8G;IAC9G,qGAAqG;IACrG,4GAA4G;IAC5G,EAAE;IACF,yBAAyB;IACzB,gHAAgH;IAChH,8GAA8G;IAC9G,2GAA2G;IAC3G,4DAA4D;IAC5D,wGAAwG;IACxG,6GAA6G;IAC7G,gGAAgG;IAChG,EAAE;IACF,mBAAmB;IACnB,4GAA4G;IAC5G,mHAAmH;IACnH,EAAE;IACF,iBAAiB;IACjB,0GAA0G;IAC1G,4GAA4G;IAC5G,8GAA8G;IAC9G,yGAAyG;IACzG,yDAAyD;IACzD,2GAA2G;IAC3G,EAAE;IACF,eAAe;IACf,2FAA2F;IAC3F,kFAAkF;IAClF,4GAA4G;IAC5G,qDAAqD;CACtD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"nucleoXone.js","sourceRoot":"","sources":["../../src/core/nucleoXone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,mFAAmF;IACnF,EAAE;IACF,+CAA+C;IAC/C,yGAAyG;IACzG,8FAA8F;IAC9F,0GAA0G;IAC1G,iGAAiG;IACjG,6GAA6G;IAC7G,uGAAuG;IACvG,8GAA8G;IAC9G,wGAAwG;IACxG,0GAA0G;IAC1G,6GAA6G;IAC7G,mCAAmC;IACnC,EAAE;IACF,6EAA6E;IAC7E,0GAA0G;IAC1G,+CAA+C;IAC/C,2GAA2G;IAC3G,+GAA+G;IAC/G,uCAAuC;IACvC,0GAA0G;IAC1G,+GAA+G;IAC/G,2EAA2E;IAC3E,6FAA6F;IAC7F,mGAAmG;IACnG,iGAAiG;IACjG,0HAA0H;IAC1H,sHAAsH;IACtH,wGAAwG;IACxG,EAAE;IACF,2EAA2E;IAC3E,iGAAiG;IACjG,gHAAgH;IAChH,sGAAsG;IACtG,6GAA6G;IAC7G,gHAAgH;IAChH,uEAAuE;IACvE,iHAAiH;IACjH,iFAAiF;IACjF,8FAA8F;IAC9F,EAAE;IACF,qCAAqC;IACrC,6GAA6G;IAC7G,8GAA8G;IAC9G,4GAA4G;IAC5G,kGAAkG;IAClG,gFAAgF;IAChF,0FAA0F;IAC1F,EAAE;IACF,yEAAyE;IACzE,iHAAiH;IACjH,gEAAgE;IAChE,0GAA0G;IAC1G,8EAA8E;IAC9E,8GAA8G;IAC9G,qGAAqG;IACrG,4GAA4G;IAC5G,EAAE;IACF,yBAAyB;IACzB,gHAAgH;IAChH,8GAA8G;IAC9G,2GAA2G;IAC3G,4DAA4D;IAC5D,wGAAwG;IACxG,6GAA6G;IAC7G,gGAAgG;IAChG,EAAE;IACF,mBAAmB;IACnB,4GAA4G;IAC5G,mHAAmH;IACnH,EAAE;IACF,iBAAiB;IACjB,0GAA0G;IAC1G,4GAA4G;IAC5G,8GAA8G;IAC9G,yGAAyG;IACzG,yDAAyD;IACzD,2GAA2G;IAC3G,EAAE;IACF,eAAe;IACf,2FAA2F;IAC3F,kFAAkF;IAClF,4GAA4G;IAC5G,qDAAqD;CACtD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}