xonecode 0.38.15 → 0.38.20

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 (61) hide show
  1. package/apps/web/dist/assets/{EditorDeFichero-C9BEoDWh.js → EditorDeFichero-DySw4j79.js} +1 -1
  2. package/apps/web/dist/assets/index-D7OcbgXE.css +1 -0
  3. package/apps/web/dist/assets/index-vvfKjRva.js +506 -0
  4. package/apps/web/dist/assets/{php-DIdt3Vgn.js → php-CSyDZ6m1.js} +1 -1
  5. package/apps/web/dist/assets/{ruby-DYEvg0Dr.js → ruby-3bX3v6o_.js} +1 -1
  6. package/apps/web/dist/index.html +2 -2
  7. package/dist/agent/conectores/gestorJira.js +118 -1
  8. package/dist/agent/conectores/gestorJira.js.map +1 -1
  9. package/dist/agent/dispositivos/decodificarImagen.js +8 -0
  10. package/dist/agent/dispositivos/decodificarImagen.js.map +1 -1
  11. package/dist/agent/motores/trueforge/convertirAP.js +86 -0
  12. package/dist/agent/motores/trueforge/convertirAP.js.map +1 -0
  13. package/dist/agent/motores/trueforge/sesionTrueforge.js +37 -2
  14. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
  15. package/dist/agent/subagentes/agentesEnDisco.js +28 -3
  16. package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
  17. package/dist/agent/subagentes/escrituraExterna.js +8 -1
  18. package/dist/agent/subagentes/escrituraExterna.js.map +1 -1
  19. package/dist/agent/subagentes/pluginDeSkills.js +21 -6
  20. package/dist/agent/subagentes/pluginDeSkills.js.map +1 -1
  21. package/dist/agent/subagentes/subagenteExterno.js +8 -3
  22. package/dist/agent/subagentes/subagenteExterno.js.map +1 -1
  23. package/dist/agent/tareas/reflejoEnElGestor.js +120 -0
  24. package/dist/agent/tareas/reflejoEnElGestor.js.map +1 -0
  25. package/dist/agent/tareas/sondeoDelGestor.js +201 -0
  26. package/dist/agent/tareas/sondeoDelGestor.js.map +1 -0
  27. package/dist/agent/turno/turnoReal.js +1 -0
  28. package/dist/agent/turno/turnoReal.js.map +1 -1
  29. package/dist/cli/consola.js.map +1 -1
  30. package/dist/cli/main.js +2 -0
  31. package/dist/cli/main.js.map +1 -1
  32. package/dist/core/agentes.js +34 -0
  33. package/dist/core/agentes.js.map +1 -1
  34. package/dist/core/config.js +29 -0
  35. package/dist/core/config.js.map +1 -1
  36. package/dist/core/convertirAP.js +87 -0
  37. package/dist/core/convertirAP.js.map +1 -0
  38. package/dist/core/entrega.js +23 -0
  39. package/dist/core/entrega.js.map +1 -1
  40. package/dist/core/geometriaDePantalla.js +33 -0
  41. package/dist/core/geometriaDePantalla.js.map +1 -1
  42. package/dist/core/gestorDeTareas.js.map +1 -1
  43. package/dist/core/notify.js +2 -0
  44. package/dist/core/notify.js.map +1 -1
  45. package/dist/core/ports.js +36 -2
  46. package/dist/core/ports.js.map +1 -1
  47. package/dist/core/tareas.js.map +1 -1
  48. package/dist/core/tareasEnElGestor.js +197 -0
  49. package/dist/core/tareasEnElGestor.js.map +1 -0
  50. package/dist/web/servidor/arranque.js +446 -42
  51. package/dist/web/servidor/arranque.js.map +1 -1
  52. package/dist/web/servidor/consolaDeTarea.js +2 -0
  53. package/dist/web/servidor/consolaDeTarea.js.map +1 -1
  54. package/dist/web/servidor/corredorDeTareas.js +14 -2
  55. package/dist/web/servidor/corredorDeTareas.js.map +1 -1
  56. package/dist/web/servidor/transporte.js +10 -0
  57. package/dist/web/servidor/transporte.js.map +1 -1
  58. package/package.json +1 -1
  59. package/skills/xone-development/references/css/selectores-unidades-colores.md +2 -0
  60. package/apps/web/dist/assets/index-BpDt_1vN.js +0 -506
  61. package/apps/web/dist/assets/index-D_Z-V9n1.css +0 -1
@@ -7,8 +7,8 @@
7
7
  <!-- El icono oficial, servido por Vite desde `iconos/`. Es el mismo fichero que la
8
8
  marca de la barra superior: dos copias del logo acaban siendo dos logos. -->
9
9
  <link rel="icon" type="image/png" href="./iconos/xonecode.png" />
10
- <script type="module" crossorigin src="./assets/index-BpDt_1vN.js"></script>
11
- <link rel="stylesheet" crossorigin href="./assets/index-D_Z-V9n1.css">
10
+ <script type="module" crossorigin src="./assets/index-vvfKjRva.js"></script>
11
+ <link rel="stylesheet" crossorigin href="./assets/index-D7OcbgXE.css">
12
12
  </head>
13
13
  <!-- Sin el atributo aquí: el oscuro es SOLO del splash (el registro de entorno y
14
14
  modelo), no de la consola entera — `App.tsx` lo pone y lo quita él mismo, en el
@@ -65,6 +65,36 @@ function tareaDesdeIssue(tool, issue, urlDelSitio) {
65
65
  ...(urlDelSitio !== undefined ? { url: `${urlDelSitio}/browse/${clave}` } : {}),
66
66
  };
67
67
  }
68
+ /**
69
+ * El tipo de incidencia con el que se CREA una tarea, elegido de lo que el proyecto declara
70
+ * (`getJiraProjectIssueTypesMetadata`). Medido sobre un Jira en español: `name` viene TRADUCIDO («Tarea») y
71
+ * `untranslatedName` es el de siempre («Task»), así que escribir «Task» a fuego no vale. Regla: un tipo de nivel 0
72
+ * (ni épica ni subtarea), con «Task» primero, y si no el primero de nivel 0; se devuelve su `name`, que es como el
73
+ * proyecto lo llama. Sin ninguno de nivel 0, `undefined` (y crear lo dice).
74
+ */
75
+ export function tipoParaCrear(respuesta) {
76
+ if (typeof respuesta !== "object" || respuesta === null)
77
+ return undefined;
78
+ const tipos = respuesta.issueTypes;
79
+ if (!Array.isArray(tipos))
80
+ return undefined;
81
+ const validos = tipos
82
+ .filter((t) => typeof t === "object" && t !== null)
83
+ .filter((t) => typeof t.name === "string" && t.subtask !== true && (t.hierarchyLevel === undefined || t.hierarchyLevel === 0));
84
+ const tarea = validos.find((t) => t.untranslatedName === "Task" || t.name === "Task");
85
+ return (tarea ?? validos[0])?.name;
86
+ }
87
+ /**
88
+ * La clave de la incidencia recién creada. La respuesta de `createJiraIssue` es la de la API de Jira (`{id, key,
89
+ * self}`) o la incidencia entera; en las dos, `key` en la raíz. Sin ella se LANZA: el ticket puede existir, pero sin
90
+ * clave no hay a qué ligar la tarea, y quien llama lo dice.
91
+ */
92
+ export function claveCreada(respuesta) {
93
+ const clave = typeof respuesta === "object" && respuesta !== null ? respuesta.key : undefined;
94
+ if (typeof clave !== "string" || clave === "")
95
+ throw new Error("Jira creó la tarea pero no dijo su clave (createJiraIssue)");
96
+ return clave;
97
+ }
68
98
  /**
69
99
  * `crearGestorJira`: cada instancia cachea la url pública de cada `sitio` (`cloudId`) que
70
100
  * `sitios()` haya devuelto, para poder componer `url = <url del sitio>/browse/<clave>` sin
@@ -159,6 +189,93 @@ export function crearGestorJira(llamar) {
159
189
  async function comentar(v, clave, cuerpo) {
160
190
  await llamar("addCommentToJiraIssue", { cloudId: v.sitio, issueIdOrKey: clave, commentBody: cuerpo, contentFormat: "markdown" });
161
191
  }
162
- return { sitios, proyectos, pendientes, ficha, transiciones, transicionar, comentar };
192
+ /** El `account_id` de quien tiene la sesión del conector, preguntado una vez por instancia. El correo que viene al
193
+ * lado en `atlassianUserInfo` no sale de esta función. */
194
+ let cuentaPropia;
195
+ const miCuenta = () => (cuentaPropia ??= llamar("atlassianUserInfo", {}).then((t) => {
196
+ const id = json("atlassianUserInfo", t)?.account_id;
197
+ return typeof id === "string" && id !== "" ? id : undefined;
198
+ }, () => {
199
+ cuentaPropia = undefined;
200
+ return undefined;
201
+ }));
202
+ async function crear(v, nueva) {
203
+ const tipo = tipoParaCrear(json("getJiraProjectIssueTypesMetadata", await llamar("getJiraProjectIssueTypesMetadata", { cloudId: v.sitio, projectIdOrKey: v.proyecto })));
204
+ if (tipo === undefined)
205
+ throw new Error(`el proyecto ${v.proyecto} de Jira no tiene un tipo de incidencia con el que crear una tarea`);
206
+ // Asignada a quien tiene la sesión: es quien la encarga. Sin cuenta (no se pudo preguntar), se crea sin asignar.
207
+ const cuenta = await miCuenta();
208
+ const clave = claveCreada(json("createJiraIssue", await llamar("createJiraIssue", {
209
+ cloudId: v.sitio,
210
+ projectKey: v.proyecto,
211
+ issueTypeName: tipo,
212
+ summary: nueva.titulo,
213
+ description: nueva.descripcion,
214
+ contentFormat: "markdown",
215
+ ...(cuenta === undefined ? {} : { assignee_account_id: cuenta }),
216
+ })));
217
+ const urlDelSitio = urlPorSitio.get(v.sitio);
218
+ return {
219
+ clave,
220
+ titulo: nueva.titulo,
221
+ // Recién creada: lo que se sabe sin volver a preguntar. Quien necesite el estado exacto pide la ficha.
222
+ estado: "",
223
+ categoria: "por-hacer",
224
+ ...(urlDelSitio !== undefined ? { url: `${urlDelSitio}/browse/${clave}` } : {}),
225
+ };
226
+ }
227
+ /**
228
+ * Los comentarios de un ticket, del más viejo al más nuevo. Medido: `getJiraIssue` con `fields: ["comment"]` los da en
229
+ * `fields.comment.comments[]`, con el `body` en MARKDOWN y `created` con zona horaria (`+0200`), que se pasa a ISO
230
+ * para poder ordenar. Del autor no sale nada (lleva `accountId`).
231
+ */
232
+ async function comentarios(v, clave) {
233
+ const cuerpo = objeto("getJiraIssue", json("getJiraIssue", await llamar("getJiraIssue", { cloudId: v.sitio, issueIdOrKey: clave, fields: ["comment"] })));
234
+ const fields = objeto("getJiraIssue", cuerpo.fields);
235
+ const comment = fields.comment === undefined || fields.comment === null ? { comments: [] } : objeto("getJiraIssue", fields.comment);
236
+ return lista("getJiraIssue", comment.comments)
237
+ .map((c) => objeto("getJiraIssue", c))
238
+ .filter((c) => typeof c.body === "string")
239
+ .map((c) => {
240
+ const fecha = typeof c.created === "string" ? new Date(c.created) : undefined;
241
+ return { texto: c.body, creado: fecha !== undefined && !Number.isNaN(fecha.getTime()) ? fecha.toISOString() : "" };
242
+ })
243
+ .sort((a, b) => a.creado.localeCompare(b.creado));
244
+ }
245
+ /**
246
+ * Los estados del flujo del proyecto, para elegir el mapeo. El conector no tiene una tool de estados (medido: 32 tools,
247
+ * ninguna), así que salen de los TICKETS: el estado de cada uno y los destinos de las transiciones de unos pocos de
248
+ * estados distintos. Un estado sin tickets y al que ninguna transición vista lleva no sale (límite declarado).
249
+ */
250
+ async function estados(v) {
251
+ const cuerpo = objeto("searchJiraIssuesUsingJql", json("searchJiraIssuesUsingJql", await llamar("searchJiraIssuesUsingJql", {
252
+ cloudId: v.sitio,
253
+ jql: `project = ${v.proyecto} ORDER BY updated DESC`,
254
+ maxResults: PENDIENTES_POR_CONSULTA,
255
+ fields: ["status"],
256
+ })));
257
+ const vistos = new Map();
258
+ const unoPorEstado = new Map();
259
+ for (const issue of lista("searchJiraIssuesUsingJql", cuerpo.issues).map((i) => objeto("searchJiraIssuesUsingJql", i))) {
260
+ const status = objeto("searchJiraIssuesUsingJql", objeto("searchJiraIssuesUsingJql", issue.fields).status);
261
+ const nombre = texto("searchJiraIssuesUsingJql", status.name);
262
+ const categoria = typeof status.statusCategory === "object" && status.statusCategory !== null ? status.statusCategory.key : undefined;
263
+ if (!vistos.has(nombre))
264
+ vistos.set(nombre, { nombre, categoria: categoriaDeEstado(typeof categoria === "string" ? categoria : undefined) });
265
+ if (!unoPorEstado.has(nombre) && typeof issue.key === "string")
266
+ unoPorEstado.set(nombre, issue.key);
267
+ }
268
+ // Las transiciones de un ticket por estado (como mucho TICKETS_PARA_ESTADOS): enseñan los estados a los que se va.
269
+ for (const clave of [...unoPorEstado.values()].slice(0, TICKETS_PARA_ESTADOS)) {
270
+ for (const t of await transiciones(v, clave))
271
+ if (!vistos.has(t.destino))
272
+ vistos.set(t.destino, { nombre: t.destino, categoria: t.categoria });
273
+ }
274
+ const orden = { "por-hacer": 0, "en-curso": 1, terminada: 2 };
275
+ return [...vistos.values()].sort((a, b) => orden[a.categoria] - orden[b.categoria]);
276
+ }
277
+ return { sitios, proyectos, pendientes, ficha, transiciones, transicionar, comentar, crear, comentarios, estados };
163
278
  }
279
+ /** Cuántos tickets se miran para conocer los estados a los que llevan sus transiciones: uno por estado, hasta este tope. */
280
+ const TICKETS_PARA_ESTADOS = 5;
164
281
  //# sourceMappingURL=gestorJira.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gestorJira.js","sourceRoot":"","sources":["../../../src/agent/conectores/gestorJira.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gestorJira.js","sourceRoot":"","sources":["../../../src/agent/conectores/gestorJira.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,14 @@ function dimensionesJpeg(b) {
35
35
  }
36
36
  throw new Error("JPEG sin tamaño declarado");
37
37
  }
38
+ /** Solo el tamaño, de la cabecera y sin decodificar nada (`convertir_a_p` necesita el ancho de la maqueta). */
39
+ export function dimensionesDeImagen(bytes) {
40
+ if (bytes.length >= 8 && bytes.subarray(0, 8).equals(FIRMA_PNG))
41
+ return dimensionesPng(bytes);
42
+ if (bytes.length >= 3 && bytes[0] === 0xff && bytes[1] === 0xd8 && bytes[2] === 0xff)
43
+ return dimensionesJpeg(bytes);
44
+ throw new Error("no es un PNG ni un JPEG");
45
+ }
38
46
  export function decodificarImagen(bytes) {
39
47
  if (bytes.length > MAX_BYTES)
40
48
  throw new Error("la imagen es demasiado grande");
@@ -1 +1 @@
1
- {"version":3,"file":"decodificarImagen.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/decodificarImagen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decodificarImagen.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/decodificarImagen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { tool } from "@langchain/core/tools";
2
+ import { readFileSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { z } from "zod";
5
+ import { anchoDeMaquetaDeImagen, ANCHO_DE_MAQUETA_MAXIMO, ANCHO_DE_MAQUETA_MINIMO, informeDeConversion, motivoDeMedidasInaceptables, NOMBRE_CONVERTIR_A_P, resolucionDeAppXml, TOPE_DE_MEDIDAS, } from "../../../core/convertirAP.js";
6
+ import { recibeBuscarIcono } from "../../../core/iconos.js";
7
+ import { dimensionesDeImagen } from "../../dispositivos/decodificarImagen.js";
8
+ import { buscarMaqueta } from "./medidaAutomatica.js";
9
+ export { NOMBRE_CONVERTIR_A_P };
10
+ /**
11
+ * `convertir_a_p`: las medidas de una maqueta (px CSS) a la `p` de XOne (`core/convertirAP.ts` tiene el porqué y la
12
+ * cuenta). **Pura, de LECTURA y sin red**, solo en TrueForge, y a quien escribe el proyecto (la regla de dato de
13
+ * `buscar_icono`: el desarrollador y el diseñador).
14
+ *
15
+ * Los dos datos de la cuenta NO entran por parámetro salvo el ancho de la maqueta cuando su imagen no lo deja claro:
16
+ * el `resolution-width` se lee del `app.xml` de la RAÍZ, fijada al construir —como `xone_navegacion`, nunca una ruta
17
+ * que elija el modelo—, y el ancho de la maqueta, de la misma maqueta que mide el harness (`buscarMaqueta`). Un
18
+ * rechazo se DEVUELVE como texto, nunca se lanza.
19
+ */
20
+ export const recibeConvertirAP = (agente) => recibeBuscarIcono(agente);
21
+ const ESQUEMA = z.object({
22
+ medidas: z
23
+ .array(z.object({
24
+ nombre: z.string().min(1).max(60).describe("Qué es: «icono de la fila», «alto de la cabecera», «margen izquierdo»"),
25
+ px: z.coerce.number().describe("La medida en la maqueta, en px CSS (24 de un w-6 de Tailwind, 48 de un h-12, el número de un width: 72px)"),
26
+ }))
27
+ .min(1)
28
+ .max(TOPE_DE_MEDIDAS)
29
+ .describe("Todas las medidas de la pantalla de una vez"),
30
+ ancho_maqueta: z.coerce
31
+ .number()
32
+ .min(ANCHO_DE_MAQUETA_MINIMO)
33
+ .max(ANCHO_DE_MAQUETA_MAXIMO)
34
+ .optional()
35
+ .describe("Solo si la tool te lo pide: el ancho del viewport de la maqueta en px CSS (el de su code.html)"),
36
+ });
37
+ export function crearConvertirAP(opciones) {
38
+ return tool(async (e) => {
39
+ const malas = motivoDeMedidasInaceptables(e.medidas);
40
+ if (malas !== undefined)
41
+ return `No convierto: ${malas}.`;
42
+ let appXml;
43
+ try {
44
+ // Latin-1 a propósito: solo se leen atributos ASCII, y así un app.xml en ISO-8859 no da error.
45
+ appXml = readFileSync(join(opciones.raiz, "app.xml"), "latin1");
46
+ }
47
+ catch {
48
+ return "No convierto: el proyecto no tiene app.xml en la raíz, y la cuenta necesita su resolution-width.";
49
+ }
50
+ const resolucion = resolucionDeAppXml(appXml);
51
+ if ("motivo" in resolucion)
52
+ return `No convierto: ${resolucion.motivo}. Pregúntaselo a la persona en vez de suponer un valor.`;
53
+ let anchoMaqueta;
54
+ let origenDelAncho;
55
+ if (e.ancho_maqueta !== undefined) {
56
+ anchoMaqueta = e.ancho_maqueta;
57
+ origenDelAncho = "lo indicaste tú";
58
+ }
59
+ else {
60
+ const maqueta = buscarMaqueta(opciones.raiz, opciones.adjuntos, opciones.artefactos);
61
+ if (maqueta === undefined) {
62
+ return "No convierto: no encuentro la imagen de la maqueta en esta sesión. Pásame ancho_maqueta: el ancho del viewport en px CSS de su code.html.";
63
+ }
64
+ let ancho;
65
+ try {
66
+ ancho = dimensionesDeImagen(readFileSync(maqueta.disco)).ancho;
67
+ }
68
+ catch {
69
+ return `No convierto: no puedo leer el tamaño de ${maqueta.virtual}. Pásame ancho_maqueta: el ancho del viewport en px CSS de su code.html.`;
70
+ }
71
+ const deImagen = anchoDeMaquetaDeImagen(ancho, maqueta.virtual);
72
+ if ("motivo" in deImagen)
73
+ return `No convierto: ${deImagen.motivo}.`;
74
+ anchoMaqueta = deImagen.ancho;
75
+ origenDelAncho = `el de la imagen ${maqueta.virtual}`;
76
+ }
77
+ return informeDeConversion({ medidas: e.medidas, resolucion, anchoMaqueta, origenDelAncho });
78
+ }, {
79
+ name: NOMBRE_CONVERTIR_A_P,
80
+ description: "Convierte las medidas de una maqueta (px CSS: anchos, altos, márgenes, paddings, tamaños de icono) a la unidad p de XOne. " +
81
+ "Los px de una maqueta NO son p: copiarlos tal cual deja la pantalla unas 2-3 veces más pequeña. Lee él mismo el " +
82
+ "resolution-width del app.xml y el ancho de la maqueta de la sesión; tú solo das las medidas, todas de una vez.",
83
+ schema: ESQUEMA,
84
+ });
85
+ }
86
+ //# sourceMappingURL=convertirAP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertirAP.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/convertirAP.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,7 @@ import { avisoDeReparto } from "../../../core/repartoDeEncargo.js";
65
65
  import { leerTareasDelPlan, RUTA_DE_TASKS } from "../../../core/tareasDelPlan.js";
66
66
  import { esDeLaMaqueta } from "../../../core/stitch.js";
67
67
  import { recibeConectores } from "../../../core/conectores.js";
68
+ import { crearConvertirAP, NOMBRE_CONVERTIR_A_P, recibeConvertirAP } from "./convertirAP.js";
68
69
  import { buscarMaqueta, medirContraMaqueta, resumenDeMedida, textoDeMedidaAutomatica, ultimaCaptura } from "./medidaAutomatica.js";
69
70
  import { anotarEscritura, capacidadDeInformesDeHijos, esEscrituraBinaria, escrituraConExito, textoDelInforme } from "./informesDeHijos.js";
70
71
  import { crearDiagnosticoDeTools } from "../../turno/diagnosticoDeTools.js";
@@ -161,6 +162,20 @@ export const SIN_HABLAR_DEL_HARNESS = "CON QUIÉN HABLAS: con un desarrollador d
161
162
  "DE ANÁLISIS…), la foto o el contexto que te llega al empezar, ni lo que vas a medir o no: cuéntale lo que encontraste, " +
162
163
  "lo que hiciste en su proyecto y lo que necesitas de él. Si pregunta cómo trabajas, entonces sí.";
163
164
  /** Lo que recibe el agente en modo autónomo cuando pregunta sin marcar ninguna opción como recomendada. */
165
+ /**
166
+ * Al raíz de una TAREA DE FONDO (`trabajoSinPersona`). Preguntar no está prohibido —la pregunta se contesta sola con su
167
+ * recomendada, y pasado el tope aparca la tarea—, pero cada una es una parada: se le pide decidir antes. Y como nadie
168
+ * ha visto el trabajo, la respuesta final es lo que la persona leerá: un resumen con lo que decidió sin preguntar.
169
+ */
170
+ export const TRABAJO_SIN_PERSONA = [
171
+ "TAREA DE FONDO: trabajas SIN nadie delante; la persona leerá el resultado cuando acabes.",
172
+ "- Resuelve tú las dudas: elige la opción más razonable con lo que dicen el encargo, el plan y el proyecto, y sigue.",
173
+ " Pregunta solo si sin la respuesta no puedes hacer nada útil; si preguntas, marca tu opción recomendada con",
174
+ " `(Recommended)`: se contestará sola con ella.",
175
+ "- Tu RESPUESTA FINAL es el resumen de la tarea, en tres apartados: lo que cambiaste (cada fichero y para qué), las",
176
+ " DECISIONES que tomaste tú sin preguntar (cada duda, lo que elegiste y por qué) y lo que no pudiste comprobar o",
177
+ " queda pendiente.",
178
+ ].join("\n");
164
179
  export const RESPUESTA_AUTONOMA_SIN_RECOMENDADA = "Modo autónomo: no hay nadie a quien preguntar. Decide tú con lo que dicen el encargo y el plan, sigue, y di en tu respuesta final qué elegiste y por qué.";
165
180
  /** Un comando que saca una captura de pantalla del aparato. */
166
181
  export const COMANDO_DE_CAPTURA = /xone-captura-android|xone-hotswap\s+shot\b|\bscreencap\b/;
@@ -380,6 +395,13 @@ const LIMITES_DE = {
380
395
  */
381
396
  export const USO_DE_XONE_ATRIBUTOS = "Para saber si un atributo XML existe en un nodo (coll, group, frame, prop) y qué hace, pregunta PRIMERO a `xone_atributos`: " +
382
397
  "contesta en una línea desde las tablas de la skill. Lee la referencia de la skill solo si no lo encuentra, o si necesitas ejemplos o matices.";
398
+ /**
399
+ * CUÁNDO convertir las medidas de una maqueta, por lo mismo que `USO_DE_XONE_ATRIBUTOS`: una tool nombrada solo en la
400
+ * lista no se usa. Medido en Maset: con la regla en la skill, el desarrollador copió los px de la maqueta como `p` y los
401
+ * iconos salieron unas 2,6 veces más pequeños.
402
+ */
403
+ export const USO_DE_CONVERTIR_A_P = "Los px de una maqueta (su code.html, su imagen) NO son p: toda medida que copies de ella —anchos, altos, márgenes, " +
404
+ "paddings, tamaño de iconos— pasa ANTES por `convertir_a_p`, todas de una vez, y escribes lo que devuelve.";
383
405
  export function notaDeTools(nombres, limite) {
384
406
  return `NOTA DEL HARNESS: aunque tu identidad diga lo contrario, NO tienes las mismas tools que quien te delega. Tienes ${nombres
385
407
  .map((n) => `\`${n}\``)
@@ -820,6 +842,16 @@ export async function abrirSesionTrueforge(opciones) {
820
842
  : []),
821
843
  // Fondos SVG: pura y sin red, sin puerto; a quien escribe el proyecto, como deepagents.
822
844
  ...(recibeGenerarFondo(agente) ? [crearGenerarFondoSvg()] : []),
845
+ // Las medidas de una maqueta a `p`: pura, a quien escribe el proyecto. La resolución la lee del app.xml de la raíz.
846
+ ...(recibeConvertirAP(agente)
847
+ ? [
848
+ crearConvertirAP({
849
+ raiz,
850
+ ...(carpeta === undefined ? {} : { artefactos: carpeta }),
851
+ ...(opciones.adjuntos === undefined ? {} : { adjuntos: opciones.adjuntos }),
852
+ }),
853
+ ]
854
+ : []),
823
855
  // ¿Cambió la zona tras el toque? Al conductor, que es quien saca las capturas: comprueba una
824
856
  // ACCIÓN suya, no juzga la pantalla (eso sigue siendo del crítico y de `comparar_capturas`).
825
857
  ...(carpeta !== undefined && agente.ejecucion === true
@@ -1025,6 +1057,7 @@ export async function abrirSesionTrueforge(opciones) {
1025
1057
  const nota = [
1026
1058
  notaDeTools(nombres, agente === undefined ? LIMITE_DEL_GENERICO : LIMITES_DE[clase]),
1027
1059
  ...(nombres.includes(NOMBRE_ATRIBUTOS_XONE) ? [USO_DE_XONE_ATRIBUTOS] : []),
1060
+ ...(nombres.includes(NOMBRE_CONVERTIR_A_P) ? [USO_DE_CONVERTIR_A_P] : []),
1028
1061
  ].join("\n");
1029
1062
  const instrucciones = agente === undefined
1030
1063
  ? `${IDIOMA_DEL_ESPECIALISTA}\n\n${nota} Contesta con lo que encuentres y dónde.`
@@ -1130,7 +1163,7 @@ export async function abrirSesionTrueforge(opciones) {
1130
1163
  hijosConMemoria.clear();
1131
1164
  const definicion = {
1132
1165
  modelClient: llm,
1133
- instruction: [IDIOMA_DE_LA_RESPUESTA, SIN_HABLAR_DEL_HARNESS, promptOrquestador(especialistas()), notaDeDelegacion(especialistas(), { conIconos: opciones.iconos !== undefined, conFuentes: opciones.fuentes !== undefined, conComparacion: carpeta !== undefined, conMemoria: conMemoriaDeEspecialistas, conBucle: conBucleDelDesarrollador, conEsperas }), opciones.puedeProponerTareas === true ? REPARTIR_EN_TAREAS : ""].filter((l) => l !== "").join("\n\n"),
1166
+ instruction: [IDIOMA_DE_LA_RESPUESTA, SIN_HABLAR_DEL_HARNESS, promptOrquestador(especialistas()), notaDeDelegacion(especialistas(), { conIconos: opciones.iconos !== undefined, conFuentes: opciones.fuentes !== undefined, conComparacion: carpeta !== undefined, conMemoria: conMemoriaDeEspecialistas, conBucle: conBucleDelDesarrollador, conEsperas }), opciones.puedeProponerTareas === true ? REPARTIR_EN_TAREAS : "", opciones.trabajoSinPersona === true ? TRABAJO_SIN_PERSONA : ""].filter((l) => l !== "").join("\n\n"),
1134
1167
  // Por TURNO, porque el raíz se rehace desde su foto al final de cada uno (ver `turno`).
1135
1168
  iterationLimit: LIMITE_DE_LLAMADAS_DEL_RAIZ,
1136
1169
  };
@@ -1531,7 +1564,7 @@ export async function abrirSesionTrueforge(opciones) {
1531
1564
  * recomendada, la otra no— y no se contestó ninguna, se enseñó solo la primera y la segunda se perdió. Con
1532
1565
  * tope, para que no dé vueltas.
1533
1566
  */
1534
- if (preguntas.length > 0 && opciones.sinAprobacion?.() === true && preguntasSolas + preguntas.length <= TOPE_DE_PREGUNTAS_CONTESTADAS_SOLAS) {
1567
+ if (preguntas.length > 0 && (opciones.trabajoSinPersona === true || opciones.sinAprobacion?.() === true) && preguntasSolas + preguntas.length <= TOPE_DE_PREGUNTAS_CONTESTADAS_SOLAS) {
1535
1568
  preguntasSolas += preguntas.length;
1536
1569
  const respuestas = [];
1537
1570
  for (const q of preguntas) {
@@ -2000,6 +2033,8 @@ export async function abrirSesionTrueforge(opciones) {
2000
2033
  verificador: veredicto,
2001
2034
  pendientes: sinResolver,
2002
2035
  ...(cortadoPorTope ? { topeAgotado: tope } : {}),
2036
+ // La pregunta que deja ESTE turno: la de un turno anterior se consume al empezar (`enEspera`).
2037
+ ...(preguntaEnEspera === undefined ? {} : { preguntaPendiente: consultaDe(preguntaEnEspera.args).pregunta }),
2003
2038
  ...(comprobacionesDelTurno.length === 0 ? {} : { comprobacionesVisuales: comprobacionesDelTurno }),
2004
2039
  ...(hallazgosDelTurno.length === 0 ? {} : { hallazgos: hallazgosDelTurno }),
2005
2040
  ...(preexistentesDelTurno === undefined ? {} : { preexistentes: preexistentesDelTurno }),