xonecode 0.38.12 → 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.
- package/apps/web/dist/assets/{EditorDeFichero-C_95A4sB.js → EditorDeFichero-DySw4j79.js} +1 -1
- package/apps/web/dist/assets/index-D7OcbgXE.css +1 -0
- package/apps/web/dist/assets/index-vvfKjRva.js +506 -0
- package/apps/web/dist/assets/{php-CkVQ0jw6.js → php-CSyDZ6m1.js} +1 -1
- package/apps/web/dist/assets/{ruby-m3xVWkBq.js → ruby-3bX3v6o_.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/dist/agent/conectores/gestorJira.js +118 -1
- package/dist/agent/conectores/gestorJira.js.map +1 -1
- package/dist/agent/dispositivos/decodificarImagen.js +8 -0
- package/dist/agent/dispositivos/decodificarImagen.js.map +1 -1
- package/dist/agent/motores/trueforge/convertirAP.js +86 -0
- package/dist/agent/motores/trueforge/convertirAP.js.map +1 -0
- package/dist/agent/motores/trueforge/sesionTrueforge.js +60 -12
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/subagentes/agentesEnDisco.js +28 -3
- package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
- package/dist/agent/subagentes/escrituraExterna.js +8 -1
- package/dist/agent/subagentes/escrituraExterna.js.map +1 -1
- package/dist/agent/subagentes/pluginDeSkills.js +21 -6
- package/dist/agent/subagentes/pluginDeSkills.js.map +1 -1
- package/dist/agent/subagentes/subagenteExterno.js +8 -3
- package/dist/agent/subagentes/subagenteExterno.js.map +1 -1
- package/dist/agent/tareas/juezDeTarea.js +8 -0
- package/dist/agent/tareas/juezDeTarea.js.map +1 -1
- package/dist/agent/tareas/reflejoEnElGestor.js +120 -0
- package/dist/agent/tareas/reflejoEnElGestor.js.map +1 -0
- package/dist/agent/tareas/sondeoDelGestor.js +201 -0
- package/dist/agent/tareas/sondeoDelGestor.js.map +1 -0
- package/dist/agent/turno/turnoReal.js +1 -0
- package/dist/agent/turno/turnoReal.js.map +1 -1
- package/dist/agent/turno/verificador.js +6 -1
- package/dist/agent/turno/verificador.js.map +1 -1
- package/dist/cli/consola.js.map +1 -1
- package/dist/cli/main.js +2 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/tui/transcript.js +4 -0
- package/dist/cli/tui/transcript.js.map +1 -1
- package/dist/core/actos.js.map +1 -1
- package/dist/core/agentes.js +34 -0
- package/dist/core/agentes.js.map +1 -1
- package/dist/core/config.js +29 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/convertirAP.js +87 -0
- package/dist/core/convertirAP.js.map +1 -0
- package/dist/core/entrega.js +48 -2
- package/dist/core/entrega.js.map +1 -1
- package/dist/core/geometriaDePantalla.js +33 -0
- package/dist/core/geometriaDePantalla.js.map +1 -1
- package/dist/core/gestorDeTareas.js.map +1 -1
- package/dist/core/notify.js +2 -0
- package/dist/core/notify.js.map +1 -1
- package/dist/core/ports.js +36 -2
- package/dist/core/ports.js.map +1 -1
- package/dist/core/tareas.js.map +1 -1
- package/dist/core/tareasEnElGestor.js +197 -0
- package/dist/core/tareasEnElGestor.js.map +1 -0
- package/dist/core/turno.js +33 -0
- package/dist/core/turno.js.map +1 -1
- package/dist/web/servidor/arranque.js +446 -42
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/consolaDeTarea.js +2 -0
- package/dist/web/servidor/consolaDeTarea.js.map +1 -1
- package/dist/web/servidor/corredorDeTareas.js +14 -2
- package/dist/web/servidor/corredorDeTareas.js.map +1 -1
- package/dist/web/servidor/pielWeb.js +11 -0
- package/dist/web/servidor/pielWeb.js.map +1 -1
- package/dist/web/servidor/transporte.js +10 -0
- package/dist/web/servidor/transporte.js.map +1 -1
- package/package.json +1 -1
- package/skills/xone-development/references/css/selectores-unidades-colores.md +2 -0
- package/apps/web/dist/assets/index-CAqQp65A.js +0 -506
- package/apps/web/dist/assets/index-tzWrUZYU.css +0 -1
package/apps/web/dist/index.html
CHANGED
|
@@ -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-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
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
|
-
|
|
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";
|
|
@@ -72,7 +73,7 @@ import { encenderTrazaDeErrores } from "../../trazaDeErroresEnDisco.js";
|
|
|
72
73
|
import { anotarPaso } from "../../../core/trazaDeErrores.js";
|
|
73
74
|
import { entornoConDepuracion } from "../../turno/depuracion.js";
|
|
74
75
|
import { detalleDe, parametrosDe } from "../../turno/resumenDeTool.js";
|
|
75
|
-
import { lineaDeComprobacion, TOPE_DE_COMPROBACIONES_AL_JUEZ } from "../../../core/entrega.js";
|
|
76
|
+
import { lineaDeComprobacion, soloDocumentacion, TOPE_DE_COMPROBACIONES_AL_JUEZ } from "../../../core/entrega.js";
|
|
76
77
|
import { apartarMemoria, cargarMemoria, fotoSaneada, guardarMemoria, saldarColgadas, textoDeInterrupcion, textoDeMemoriaDescartada } from "./memoriaTrueforge.js";
|
|
77
78
|
import { crearNota, sobrantes } from "./notas.js";
|
|
78
79
|
import { crearMemoriaDeEspecialistas } from "./memoriaDeEspecialistas.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
|
};
|
|
@@ -1502,6 +1535,10 @@ export async function abrirSesionTrueforge(opciones) {
|
|
|
1502
1535
|
let preexistentesDelTurno;
|
|
1503
1536
|
let motivoSinVerificar;
|
|
1504
1537
|
let escribioProyecto = false;
|
|
1538
|
+
/** El turno solo dejó documentación (`core/entrega.ts#soloDocumentacion`): el simulador no tiene nada que mirar. */
|
|
1539
|
+
let soloDocs = false;
|
|
1540
|
+
/** El fallo del simulador ya se dijo al cerrar: el aviso del final no lo repite. */
|
|
1541
|
+
let sinVerificarDicho = false;
|
|
1505
1542
|
/**
|
|
1506
1543
|
* Las RONDAS de una petición: una pausa termina la ronda y se reanuda con las decisiones.
|
|
1507
1544
|
* Devuelve si acabó LIMPIA —sin escrituras en la mesa—, que es lo único que se verifica:
|
|
@@ -1527,19 +1564,14 @@ export async function abrirSesionTrueforge(opciones) {
|
|
|
1527
1564
|
* recomendada, la otra no— y no se contestó ninguna, se enseñó solo la primera y la segunda se perdió. Con
|
|
1528
1565
|
* tope, para que no dé vueltas.
|
|
1529
1566
|
*/
|
|
1530
|
-
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) {
|
|
1531
1568
|
preguntasSolas += preguntas.length;
|
|
1532
1569
|
const respuestas = [];
|
|
1533
1570
|
for (const q of preguntas) {
|
|
1534
1571
|
const { pregunta, opciones: posibles } = consultaDe(q.args);
|
|
1535
1572
|
const elegida = opcionRecomendada(posibles);
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
texto: elegida !== undefined
|
|
1539
|
-
? `modo autónomo: a «${pregunta}» contesto la recomendada: ${elegida}`
|
|
1540
|
-
: `modo autónomo: «${pregunta}» no se pregunta; lo decide el agente y lo dirá`,
|
|
1541
|
-
severidad: "aviso",
|
|
1542
|
-
};
|
|
1573
|
+
// Un evento propio y no un `aviso` (IXCODE-47): como aviso caía plegado en «Verificaciones».
|
|
1574
|
+
yield { tipo: "consulta-autonoma", pregunta, opciones: posibles, ...(elegida === undefined ? {} : { elegida }) };
|
|
1543
1575
|
respuestas.push({
|
|
1544
1576
|
type: "user.tool_response",
|
|
1545
1577
|
thread_id: q.hilo,
|
|
@@ -1760,6 +1792,13 @@ export async function abrirSesionTrueforge(opciones) {
|
|
|
1760
1792
|
motivoSinVerificar = "el turno no escribió ningún fichero del proyecto";
|
|
1761
1793
|
return;
|
|
1762
1794
|
}
|
|
1795
|
+
// Un turno que solo escribió documentación no se verifica (IXCODE-27): el simulador mira la app, no un `.md`,
|
|
1796
|
+
// y sin el binario en la máquina un turno que había escrito bien cerraba con «no se pudo verificar».
|
|
1797
|
+
if (soloDocumentacion(cambios.map((c) => c.ruta))) {
|
|
1798
|
+
soloDocs = true;
|
|
1799
|
+
motivoSinVerificar = "el turno solo escribió documentación, que el verificador de XOne no comprueba";
|
|
1800
|
+
return;
|
|
1801
|
+
}
|
|
1763
1802
|
if (opciones.verifier === undefined) {
|
|
1764
1803
|
motivoSinVerificar = "esta ejecución no tiene verificador";
|
|
1765
1804
|
return;
|
|
@@ -1772,7 +1811,14 @@ export async function abrirSesionTrueforge(opciones) {
|
|
|
1772
1811
|
catch (e) {
|
|
1773
1812
|
// Que no esté el binario NO es un fallo del proyecto, y se dice como tal.
|
|
1774
1813
|
motivoSinVerificar = e instanceof Error ? e.message : String(e);
|
|
1775
|
-
|
|
1814
|
+
sinVerificarDicho = true;
|
|
1815
|
+
// Lo escrito SÍ está en el disco, y se dice: sin eso «no se pudo verificar» se leía como que la escritura
|
|
1816
|
+
// había fallado (IXCODE-27), y la persona pedía repetirla.
|
|
1817
|
+
yield {
|
|
1818
|
+
tipo: "aviso",
|
|
1819
|
+
texto: `⚠ no se pudo verificar el proyecto: ${motivoSinVerificar}. Lo escrito sí está en el disco; lo que falta es comprobarlo`,
|
|
1820
|
+
severidad: "aviso",
|
|
1821
|
+
};
|
|
1776
1822
|
return;
|
|
1777
1823
|
}
|
|
1778
1824
|
motivoSinVerificar = undefined;
|
|
@@ -1894,7 +1940,7 @@ export async function abrirSesionTrueforge(opciones) {
|
|
|
1894
1940
|
// hacía—, pero tampoco se pierde en silencio: se dice, con su texto, para copiarlo.
|
|
1895
1941
|
[`⏹ turno parado: no se manda lo que escribiste mientras trabajaba — «${sinLeerDelTurno()}»`]
|
|
1896
1942
|
: [`⚠ una nota no se pudo entregar a tiempo: se manda como el turno siguiente`]),
|
|
1897
|
-
...(b.corrio("verify") || !escribioProyecto
|
|
1943
|
+
...(b.corrio("verify") || !escribioProyecto || soloDocs || sinVerificarDicho
|
|
1898
1944
|
? []
|
|
1899
1945
|
: [`⚠ el verificador no ha corrido en este turno${motivoSinVerificar === undefined ? "" : ` (${motivoSinVerificar})`}`]),
|
|
1900
1946
|
...(aplicadasSinPreguntar.length === 0
|
|
@@ -1987,6 +2033,8 @@ export async function abrirSesionTrueforge(opciones) {
|
|
|
1987
2033
|
verificador: veredicto,
|
|
1988
2034
|
pendientes: sinResolver,
|
|
1989
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 }),
|
|
1990
2038
|
...(comprobacionesDelTurno.length === 0 ? {} : { comprobacionesVisuales: comprobacionesDelTurno }),
|
|
1991
2039
|
...(hallazgosDelTurno.length === 0 ? {} : { hallazgos: hallazgosDelTurno }),
|
|
1992
2040
|
...(preexistentesDelTurno === undefined ? {} : { preexistentes: preexistentesDelTurno }),
|