xonecode 0.8.25 → 0.8.27
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/dist/agent/dispositivos/juezVisual.js +88 -4
- package/dist/agent/dispositivos/juezVisual.js.map +1 -1
- package/dist/agent/grafo/criticaVisual.js +134 -24
- package/dist/agent/grafo/criticaVisual.js.map +1 -1
- package/dist/agent/grafo/proyecto.js +16 -1
- package/dist/agent/grafo/proyecto.js.map +1 -1
- package/dist/agent/grafo/validacionXone.js +125 -0
- package/dist/agent/grafo/validacionXone.js.map +1 -0
- package/dist/agent/grafo/xoneAgent.js +1 -1
- package/dist/agent/grafo/xoneAgent.js.map +1 -1
- package/dist/agent/sesiones/checkpointer.js +183 -1
- package/dist/agent/sesiones/checkpointer.js.map +1 -1
- package/dist/cli/main.js +9 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/podar.js +112 -0
- package/dist/cli/podar.js.map +1 -0
- package/dist/core/artefactos.js +18 -0
- package/dist/core/artefactos.js.map +1 -1
- package/dist/core/podaDeCheckpoint.js +74 -0
- package/dist/core/podaDeCheckpoint.js.map +1 -0
- package/dist/core/validacionDeEscritura.js +105 -0
- package/dist/core/validacionDeEscritura.js.map +1 -0
- package/dist/web/servidor/arranque.js +26 -1
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/vestibulo.js +22 -0
- package/dist/web/servidor/vestibulo.js.map +1 -1
- package/package.json +2 -2
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +15 -7
|
@@ -57,17 +57,82 @@ export const PROMPT_VISUAL = [
|
|
|
57
57
|
"",
|
|
58
58
|
'Contesta SOLO este JSON: {"veredicto":"verde"|"rojo","hallazgos":["lo que se ve", …],"necesito":["Coleccion", …]}',
|
|
59
59
|
].join("\n");
|
|
60
|
+
/**
|
|
61
|
+
* Lo que se le pide CUANDO hay maqueta delante, y existe por una medida.
|
|
62
|
+
*
|
|
63
|
+
* **El modelo ve las imágenes de sobra; lo que decide qué ve es qué se le pide describir.**
|
|
64
|
+
* Sobre la calculadora de MyAllXOne el crítico acertó que una captura era el login y no la
|
|
65
|
+
* pantalla pedida, y leyó los rótulos `AP_EXPRESION`/`AP_RESULTADO` cortados contra el borde.
|
|
66
|
+
* Luego dio VERDE sobre una pantalla cuyas teclas eran rectángulos donde la maqueta tenía
|
|
67
|
+
* píldoras y cuyo resultado era 1,4 veces la expresión donde la maqueta pedía 2,7. No falló:
|
|
68
|
+
* `PROMPT_VISUAL` le dice literalmente que NO opine de la paleta ni de los gustos, y la
|
|
69
|
+
* fidelidad cae entera en ese conjunto excluido. La prueba de que era la pregunta y no la
|
|
70
|
+
* vista: el orquestador llegó a escribirle «las teclas llevan esquinas redondeadas (radio
|
|
71
|
+
* alto)» y el crítico no protestó, porque no se le pidió comparar.
|
|
72
|
+
*
|
|
73
|
+
* Tres cosas que no son de forma:
|
|
74
|
+
*
|
|
75
|
+
* - **Se nombra QUÉ comparar** —proporciones, jerarquía de tamaños, forma y alineación— en
|
|
76
|
+
* vez de pedir «¿se parecen?». Una pregunta abierta devuelve impresiones; ésta devuelve
|
|
77
|
+
* sitios.
|
|
78
|
+
* - **El COLOR se compara, el GUSTO no.** «El botón es coral donde la maqueta lo pone gris»
|
|
79
|
+
* es un hecho comprobable contra una imagen que está delante; «la paleta es fría» sigue
|
|
80
|
+
* siendo una opinión y sigue fuera. Sin referencia no se puede distinguir, y por eso allí
|
|
81
|
+
* se excluyen los dos.
|
|
82
|
+
* - **Se conserva «no diagnostiques la causa»**, que está medido seis veces: describe un
|
|
83
|
+
* texto CORTADO como «girado 180°». Acierta DÓNDE y falla en el PORQUÉ, y eso no cambia
|
|
84
|
+
* porque haya una maqueta al lado.
|
|
85
|
+
*
|
|
86
|
+
* Y se conserva que una diferencia deliberada no es un defecto: una plataforma no da todo lo
|
|
87
|
+
* que da un navegador, así que lo que se pide es lo que SE VE distinto, no un veredicto de
|
|
88
|
+
* si estuvo bien decidido.
|
|
89
|
+
*/
|
|
90
|
+
export const PROMPT_VISUAL_CON_REFERENCIA = [
|
|
91
|
+
"Eres un revisor VISUAL de la pantalla de una app móvil. Te doy DOS imágenes:",
|
|
92
|
+
"1) la MAQUETA: cómo tendría que verse.",
|
|
93
|
+
"2) la CAPTURA del aparato: cómo se ve de verdad.",
|
|
94
|
+
"",
|
|
95
|
+
"Di en qué se DIFERENCIAN, sin diagnosticar: describe lo que se ve, no la causa ni cómo",
|
|
96
|
+
"arreglarlo. Quien lo lea tiene el código delante y tú no.",
|
|
97
|
+
"",
|
|
98
|
+
"Compara, y nombra el control concreto en cada diferencia:",
|
|
99
|
+
"- FORMA: esquinas (redondeadas, en píldora, en círculo o rectas), bordes, sombras.",
|
|
100
|
+
"- TAMAÑOS Y JERARQUÍA: qué es más grande que qué, y cuánto. Si en la maqueta un texto es",
|
|
101
|
+
" el doble que otro y en la captura son casi iguales, eso es una diferencia.",
|
|
102
|
+
"- COLOR: solo comparado con la maqueta —«es gris donde la maqueta lo pone coral»—. NO",
|
|
103
|
+
" opines de si la paleta te gusta.",
|
|
104
|
+
"- COLOCACIÓN: alineación, márgenes, huecos, orden de los elementos, qué falta y qué sobra.",
|
|
105
|
+
"- Y lo de siempre: texto cortado, ilegible, solapado o fuera de la pantalla.",
|
|
106
|
+
"",
|
|
107
|
+
"No toda diferencia es un error: una app nativa no puede dar todo lo que da un navegador.",
|
|
108
|
+
"Di lo que VES distinto y deja que lo valore quien lee.",
|
|
109
|
+
"",
|
|
110
|
+
"Si no ves ninguna diferencia que merezca contarse, dilo con la lista vacía.",
|
|
111
|
+
"",
|
|
112
|
+
"Si para dictaminar necesitas ver OTRA pantalla, pídela en `necesito` por el NOMBRE de su",
|
|
113
|
+
"colección y nada más (por ejemplo «Productos»), no con una frase. Alguien irá a por ella.",
|
|
114
|
+
"Si con lo que tienes te basta, déjalo vacío.",
|
|
115
|
+
"",
|
|
116
|
+
'Contesta SOLO este JSON: {"veredicto":"verde"|"rojo","hallazgos":["lo que se ve", …],"necesito":["Coleccion", …]}',
|
|
117
|
+
].join("\n");
|
|
60
118
|
/**
|
|
61
119
|
* Le enseña la captura al modelo y devuelve su veredicto.
|
|
62
120
|
*
|
|
63
121
|
* `invocar` entra por parámetro, así que `npm test` no le pregunta a ningún modelo — el mismo
|
|
64
122
|
* molde que `JuezDeTareaPort`.
|
|
65
123
|
*/
|
|
66
|
-
export async function juzgarPantalla(imagen, contexto, invocar
|
|
67
|
-
|
|
124
|
+
export async function juzgarPantalla(imagen, contexto, invocar,
|
|
125
|
+
/**
|
|
126
|
+
* La maqueta, si la hay. **Cuarto parámetro y opcional**, así los dos llamadores de
|
|
127
|
+
* `cli/` no cambian: lo que hace un `xonecode` de diagnóstico es mirar una pantalla, no
|
|
128
|
+
* compararla contra nada.
|
|
129
|
+
*/
|
|
130
|
+
referencia) {
|
|
131
|
+
const base = referencia === undefined ? PROMPT_VISUAL : PROMPT_VISUAL_CON_REFERENCIA;
|
|
132
|
+
const prompt = `${base}\n\nLa captura es de la pantalla «${contexto.pantalla}».`;
|
|
68
133
|
let texto;
|
|
69
134
|
try {
|
|
70
|
-
texto = await invocar(PAPEL_DEL_JUEZ_VISUAL, prompt, imagen);
|
|
135
|
+
texto = await invocar(PAPEL_DEL_JUEZ_VISUAL, prompt, imagen, referencia);
|
|
71
136
|
}
|
|
72
137
|
catch (error) {
|
|
73
138
|
throw new ErrorDelJuezVisual(error instanceof Error ? error.message : String(error));
|
|
@@ -116,7 +181,7 @@ export async function juzgarPantalla(imagen, contexto, invocar) {
|
|
|
116
181
|
* el cuerpo remoto y con él cabeceras y claves redactadas.
|
|
117
182
|
*/
|
|
118
183
|
export function invocarVisualConModelos(modelos) {
|
|
119
|
-
return async (papel, prompt, imagen) => {
|
|
184
|
+
return async (papel, prompt, imagen, referencia) => {
|
|
120
185
|
let modelo;
|
|
121
186
|
try {
|
|
122
187
|
modelo = modelos.paraPapel(papel);
|
|
@@ -146,10 +211,29 @@ export function invocarVisualConModelos(modelos) {
|
|
|
146
211
|
* clase de fuga que un argumento de tool en un evento. Lo que la persona tiene que
|
|
147
212
|
* leer es lo que el harness decide contar con ese veredicto, no el JSON.
|
|
148
213
|
*/
|
|
214
|
+
/**
|
|
215
|
+
* **Cada imagen va DETRÁS de la línea que dice cuál es.** Con dos adjuntas y el prompt
|
|
216
|
+
* describiéndolas arriba, cuál es la maqueta y cuál el aparato dependería del orden en
|
|
217
|
+
* que el proveedor las numere — y eso no es un contrato, es una suposición. Una
|
|
218
|
+
* etiqueta pegada a cada una lo vuelve un dato. Si se invirtieran, el crítico contaría
|
|
219
|
+
* las diferencias al revés y se leerían igual de bien: es el fallo mudo de siempre.
|
|
220
|
+
*
|
|
221
|
+
* El orden es el del prompt: primero la MAQUETA, después la CAPTURA.
|
|
222
|
+
*/
|
|
149
223
|
const respuesta = await modelo.invoke([
|
|
150
224
|
new HumanMessage({
|
|
151
225
|
content: [
|
|
152
226
|
{ type: "text", text: prompt },
|
|
227
|
+
...(referencia === undefined
|
|
228
|
+
? []
|
|
229
|
+
: [
|
|
230
|
+
{ type: "text", text: "MAQUETA (cómo tendría que verse):" },
|
|
231
|
+
{
|
|
232
|
+
type: "image_url",
|
|
233
|
+
image_url: { url: `data:${referencia.mime};base64,${referencia.base64}` },
|
|
234
|
+
},
|
|
235
|
+
{ type: "text", text: "CAPTURA del aparato (cómo se ve de verdad):" },
|
|
236
|
+
]),
|
|
153
237
|
{ type: "image_url", image_url: { url: `data:${imagen.mime};base64,${imagen.base64}` } },
|
|
154
238
|
],
|
|
155
239
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"juezVisual.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/juezVisual.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAU,SAAS,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAEtD,qEAAqE;AACrE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,MAAc;QACxB,KAAK,CAAC,kDAAkD,qBAAqB,OAAO,MAAM,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"juezVisual.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/juezVisual.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tool } from "@langchain/core/tools";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { esRutaDeArtefacto, mimeDeArtefacto, nombreDeArtefacto } from "../../core/artefactos.js";
|
|
3
|
+
import { esRutaDeArtefacto, mimeDeArtefacto, nombreDeArtefacto, rutaRelativaDeArtefacto, } from "../../core/artefactos.js";
|
|
4
4
|
import { juzgarPantalla, TOPE_DE_PETICIONES, } from "../dispositivos/juezVisual.js";
|
|
5
5
|
/**
|
|
6
6
|
* `xone_critica_visual`: enseñarle una captura al crítico y traer su veredicto.
|
|
@@ -35,39 +35,135 @@ const Entrada = z.object({
|
|
|
35
35
|
pantalla: z
|
|
36
36
|
.string()
|
|
37
37
|
.describe("De qué pantalla o colección es la captura, para que el crítico sepa qué mira"),
|
|
38
|
+
/**
|
|
39
|
+
* La MAQUETA, y su ausencia significa algo — por eso lo dice el `describe`.
|
|
40
|
+
*
|
|
41
|
+
* Sin ella el crítico solo busca ROTURAS y no dice nada de si la pantalla se parece a lo
|
|
42
|
+
* que se pidió. Medido: dio verde sobre una calculadora cuyas teclas eran rectángulos donde
|
|
43
|
+
* la maqueta tenía píldoras, y el verde se leyó como «está bien». Un parámetro que no dice
|
|
44
|
+
* qué pasa cuando falta deja ese malentendido intacto.
|
|
45
|
+
*/
|
|
46
|
+
referencia: z
|
|
47
|
+
.string()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe("OPCIONAL. La ruta virtual bajo /artefactos/ de la MAQUETA o diseño de referencia. " +
|
|
50
|
+
"Pásala SIEMPRE que el encargo traiga un diseño: con ella comparo la captura contra " +
|
|
51
|
+
"la maqueta (forma, tamaños, colocación). SIN ella solo busco roturas y NO digo nada " +
|
|
52
|
+
"sobre si se parece al diseño."),
|
|
38
53
|
});
|
|
54
|
+
/**
|
|
55
|
+
* Qué es esta ruta, o el motivo en palabras. **Comprueba y NO lee.**
|
|
56
|
+
*
|
|
57
|
+
* Separada de la lectura a propósito: con dos imágenes en juego, el orden importa. Si se
|
|
58
|
+
* comprobara y abriera cada una por turno, una referencia con la ruta mal escrita se
|
|
59
|
+
* descubriría DESPUÉS de haber leído la captura — y lo que la guarda promete es que no se
|
|
60
|
+
* abre nada hasta que todo lo que se va a abrir está comprobado. Es lo mismo que exige el
|
|
61
|
+
* test de siempre («no se lee NADA antes de comprobarlo»), solo que ahora hay dos.
|
|
62
|
+
*
|
|
63
|
+
* `que` cambia únicamente cómo se nombra en el mensaje: la comprobación es la MISMA para las
|
|
64
|
+
* dos, porque las dos acaban dentro de un modelo.
|
|
65
|
+
*/
|
|
66
|
+
function veredictoDeImagen(ruta, que) {
|
|
67
|
+
// Lista BLANCA de forma, sobre el TEXTO que escribe el modelo. `esRutaDeArtefacto` no es
|
|
68
|
+
// un `startsWith`: comprueba la forma entera, segmento a segmento.
|
|
69
|
+
if (!esRutaDeArtefacto(ruta)) {
|
|
70
|
+
return `«${ruta}» no es ${que} de esta sesión. Solo puedo mirar lo que hay bajo /artefactos/.`;
|
|
71
|
+
}
|
|
72
|
+
const nombre = nombreDeArtefacto(ruta);
|
|
73
|
+
const mime = mimeDeArtefacto(nombre);
|
|
74
|
+
if (mime === undefined || !mime.startsWith("image/")) {
|
|
75
|
+
return `«${nombre}» no es una imagen, así que no hay nada que mirar.`;
|
|
76
|
+
}
|
|
77
|
+
return { mime };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Los bytes, ya con la ruta comprobada. Nunca lanza: que falte una imagen no puede llevarse
|
|
81
|
+
* el turno por delante.
|
|
82
|
+
*
|
|
83
|
+
* **Se abre por la ruta RELATIVA y se NOMBRA por el último segmento**, que son dos preguntas
|
|
84
|
+
* distintas y confundirlas era un botón muerto: un `unzip` deja un ÁRBOL, y una maqueta
|
|
85
|
+
* descomprimida vive en `/artefactos/diseno/screen.png`. Con el basename, el `join` de quien
|
|
86
|
+
* lee apuntaba a `<carpeta>/screen.png` y contestaba «no pude abrir» sobre un fichero que
|
|
87
|
+
* estaba ahí y que la propia foto había anunciado.
|
|
88
|
+
*/
|
|
89
|
+
async function leer(ruta, mime, deps) {
|
|
90
|
+
try {
|
|
91
|
+
const bytes = await deps.leerArtefacto(rutaRelativaDeArtefacto(ruta));
|
|
92
|
+
return { base64: bytes.toString("base64"), mime };
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
// El mensaje de un error de Node lleva la ruta absoluta y esto va al modelo: solo el
|
|
96
|
+
// NOMBRE del error.
|
|
97
|
+
return `No pude abrir «${nombreDeArtefacto(ruta)}» (${error instanceof Error ? error.name : "error"}).`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* **Fail-closed: una referencia que se pidió y no se pudo usar es un NO.**
|
|
102
|
+
*
|
|
103
|
+
* Lo tentador es juzgar sin ella y avisar. Es justo el fallo que este parámetro existe para
|
|
104
|
+
* cerrar: un veredicto sin maqueta vuelve como «verde» y se lee como «se parece al diseño».
|
|
105
|
+
* Así que no se juzga nada, y el paso siguiente que se escribe es ARREGLAR LA RUTA — nunca
|
|
106
|
+
* «o llámame sin ella», que sería dejar el modo ciego escrito dentro de la propia tool como
|
|
107
|
+
* alternativa legítima.
|
|
108
|
+
*/
|
|
109
|
+
function sinJuzgar(motivo) {
|
|
110
|
+
return [
|
|
111
|
+
motivo,
|
|
112
|
+
"NO he juzgado la captura: comparar contra media maqueta no es comparar, y mi veredicto",
|
|
113
|
+
"se leería como que la pantalla se parece al diseño. Comprueba la ruta de la maqueta",
|
|
114
|
+
"—tiene que ser la que anunció su evento `artefacto`, con sus subcarpetas— y vuelve a",
|
|
115
|
+
"llamarme.",
|
|
116
|
+
].join("\n");
|
|
117
|
+
}
|
|
39
118
|
export function crearCriticaVisual(deps) {
|
|
40
119
|
return tool(async (entrada) => {
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
if (
|
|
44
|
-
return
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (
|
|
49
|
-
return
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
120
|
+
// Se comprueban las DOS antes de abrir ninguna: ver `veredictoDeImagen`.
|
|
121
|
+
const deLaCaptura = veredictoDeImagen(entrada.captura, "una captura");
|
|
122
|
+
if (typeof deLaCaptura === "string")
|
|
123
|
+
return deLaCaptura;
|
|
124
|
+
const deLaReferencia = entrada.referencia === undefined
|
|
125
|
+
? undefined
|
|
126
|
+
: veredictoDeImagen(entrada.referencia, "la referencia");
|
|
127
|
+
if (typeof deLaReferencia === "string")
|
|
128
|
+
return sinJuzgar(deLaReferencia);
|
|
129
|
+
const abierta = await leer(entrada.captura, deLaCaptura.mime, deps);
|
|
130
|
+
if (typeof abierta === "string")
|
|
131
|
+
return abierta;
|
|
132
|
+
let referencia;
|
|
133
|
+
if (entrada.referencia !== undefined && deLaReferencia !== undefined) {
|
|
134
|
+
const abiertaRef = await leer(entrada.referencia, deLaReferencia.mime, deps);
|
|
135
|
+
/**
|
|
136
|
+
* **Fail-closed: una referencia que se pidió y no se pudo abrir es un NO.**
|
|
137
|
+
*
|
|
138
|
+
* Lo tentador es juzgar sin ella y avisar. Es justo el fallo que este parámetro
|
|
139
|
+
* existe para cerrar: un veredicto sin maqueta vuelve como «verde» y se lee como
|
|
140
|
+
* «se parece al diseño». Así que no se juzga nada, y el paso siguiente que se
|
|
141
|
+
* escribe es ARREGLAR LA RUTA — nunca «o llámame sin referencia», que sería dejar
|
|
142
|
+
* el modo ciego escrito dentro de la propia tool como alternativa legítima.
|
|
143
|
+
*/
|
|
144
|
+
if (typeof abiertaRef === "string")
|
|
145
|
+
return sinJuzgar(abiertaRef);
|
|
146
|
+
referencia = abiertaRef;
|
|
60
147
|
}
|
|
61
148
|
let veredicto;
|
|
62
149
|
try {
|
|
63
|
-
veredicto = await juzgarPantalla(
|
|
150
|
+
veredicto = await juzgarPantalla(abierta, { pantalla: entrada.pantalla }, deps.invocar, referencia);
|
|
64
151
|
}
|
|
65
152
|
catch (error) {
|
|
66
153
|
// Fallo del ENTORNO —sin modelo, sin clave, sin red—: se dice, y no se convierte en un
|
|
67
154
|
// veredicto. Un rojo inventado culparía al trabajo de un problema de la máquina.
|
|
68
155
|
return `No se pudo consultar al crítico visual: ${error instanceof Error ? error.message : "error"}`;
|
|
69
156
|
}
|
|
70
|
-
|
|
157
|
+
/**
|
|
158
|
+
* **La cabecera dice si se COMPARÓ, y no repite la ruta de la referencia.** Lo primero
|
|
159
|
+
* porque «verde» contesta dos preguntas distintas según el modo y quien lo lea tiene
|
|
160
|
+
* que saber cuál le han contestado. Lo segundo porque el argumento lo acaba de escribir
|
|
161
|
+
* quien llama: devolvérselo entero es el eco que ya paga el campo `pantalla`.
|
|
162
|
+
*/
|
|
163
|
+
const comparado = referencia === undefined ? "" : " (comparado con la referencia)";
|
|
164
|
+
const lineas = [
|
|
165
|
+
`Veredicto visual de «${entrada.pantalla}»${comparado}: ${veredicto.veredicto}.`,
|
|
166
|
+
];
|
|
71
167
|
if (veredicto.observaciones.length > 0) {
|
|
72
168
|
/**
|
|
73
169
|
* **El aviso no es cortesía: está medido.** Seis vueltas sobre la misma captura
|
|
@@ -111,7 +207,18 @@ export function crearCriticaVisual(deps) {
|
|
|
111
207
|
* puede, porque llegar a una pantalla necesita abrir cajones y mirar el árbol.
|
|
112
208
|
*/
|
|
113
209
|
if (veredicto.veredicto === "rojo") {
|
|
114
|
-
|
|
210
|
+
/**
|
|
211
|
+
* **Con referencia, el arreglo es de `designer-xone`.** No es un cambio de criterio:
|
|
212
|
+
* una diferencia contra una maqueta es visual por definición —forma, tamaño,
|
|
213
|
+
* colocación, color— y eso es literalmente lo que su `.md` reclama («del color o del
|
|
214
|
+
* tamaño equivocado… también cuando se arregle en un `.xne`»). Sin referencia el
|
|
215
|
+
* hallazgo puede ser cualquier cosa, así que esa rama se queda como estaba.
|
|
216
|
+
*/
|
|
217
|
+
const aQuien = referencia === undefined ? "developer-xone" : "designer-xone";
|
|
218
|
+
lineas.push("Esto es un defecto del proyecto SIN ARREGLAR, y qué hacer con él depende de TU", "encargo — que lo sabes tú y no yo:", `- Si el encargo incluye ARREGLAR o dejar la app bien: encárgaselo a \`${aQuien}\``, " pasándole estas observaciones tal cual, y cuando lo haya corregido manda otra vez", " al conductor a esta misma pantalla y vuelve a llamarme con la captura nueva.", referencia === undefined
|
|
219
|
+
? " No des la pantalla por buena hasta que yo la vea en verde."
|
|
220
|
+
: " Y vuelve CON LA MISMA `referencia`: sin ella mi verde solo diría que nada" +
|
|
221
|
+
"\n está roto, no que la pantalla se parezca al diseño.", "- Si el encargo es OTRO —documentar, medir, inventariar—: NO toques el proyecto por", " esto. Anótalo donde estés contando lo que ves y sigue con lo tuyo.", "Lo que NO vale en ninguno de los dos casos es callártelo.");
|
|
115
222
|
}
|
|
116
223
|
if (veredicto.necesito.length > 0) {
|
|
117
224
|
lineas.push(`Necesita ver ${veredicto.necesito.length === 1 ? "otra pantalla" : "otras pantallas"} para dictaminar: ${veredicto.necesito.join(", ")}.`, `Encarga al conductor que llegue ahí y capture, y vuelve a llamarme con esa captura (como mucho ${TOPE_DE_PETICIONES} veces).`);
|
|
@@ -121,7 +228,10 @@ export function crearCriticaVisual(deps) {
|
|
|
121
228
|
name: "xone_critica_visual",
|
|
122
229
|
description: "Enseña una captura de pantalla del aparato a un revisor visual y devuelve qué se ve " +
|
|
123
230
|
"mal: texto cortado, controles solapados o fuera de la pantalla, cosas ilegibles. " +
|
|
124
|
-
"Ve lo que ninguna comprobación estática puede ver. Puede pedir otras pantallas."
|
|
231
|
+
"Ve lo que ninguna comprobación estática puede ver. Puede pedir otras pantallas. " +
|
|
232
|
+
"Si el encargo trae un DISEÑO o una MAQUETA, pásala en `referencia` y además comparo " +
|
|
233
|
+
"la pantalla contra ella (forma, tamaños, colocación, color). SIN `referencia` mi " +
|
|
234
|
+
"verde significa «nada roto», NO «se parece al diseño».",
|
|
125
235
|
schema: Entrada,
|
|
126
236
|
});
|
|
127
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criticaVisual.js","sourceRoot":"","sources":["../../../src/agent/grafo/criticaVisual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"criticaVisual.js","sourceRoot":"","sources":["../../../src/agent/grafo/criticaVisual.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { existsSync, mkdirSync, readdirSync, statSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { CompositeBackend, FilesystemBackend, LocalShellBackend } from "deepagents";
|
|
4
4
|
import { RUTA_MEMORIA_INTERNA, RUTA_MEMORIA_VIRTUAL } from "./memoriaDeProyecto.js";
|
|
5
|
+
import { sinContenidoInvalido, validarConXoneLinter } from "./validacionXone.js";
|
|
5
6
|
import { RAIZ_SKILLS, skillsConRuta, skillsMontables } from "./skills.js";
|
|
6
7
|
import { artefactoFueraDeSitio, esBasuraDeArtefacto, esRutaDeArtefacto, mimeDeArtefacto, nombreDeArtefacto, RUTA_ARTEFACTOS, } from "../../core/artefactos.js";
|
|
7
8
|
import { RUTA_ADJUNTOS } from "../../core/adjuntos.js";
|
|
@@ -383,7 +384,21 @@ export function backendDeAgente(opciones) {
|
|
|
383
384
|
const base = opciones.ejecucion === undefined
|
|
384
385
|
? backendDelProyecto(opciones.raiz)
|
|
385
386
|
: backendDelProyectoConShell(opciones.raiz, opciones.ejecucion.entorno);
|
|
386
|
-
|
|
387
|
+
/**
|
|
388
|
+
* **La CUARTA guarda va la MÁS INTERNA, y el orden importa en los dos sentidos.**
|
|
389
|
+
*
|
|
390
|
+
* Un Proxy que envuelve a otro intercepta ANTES que él, así que el envoltorio de más afuera
|
|
391
|
+
* es el que corre primero. Las tres de rutas contestan «¿puede tocarse esto?» con una
|
|
392
|
+
* comparación de texto; ésta contesta «¿vale este contenido?» leyendo el fichero de antes y
|
|
393
|
+
* llamando a un parser. Dejándola dentro, una escritura sobre una vista aplanada o sobre
|
|
394
|
+
* `/artefactos/` se rechaza por su RUTA sin haber parseado nada.
|
|
395
|
+
*
|
|
396
|
+
* Y no es solo coste: al revés, el motivo que recibía el modelo era el equivocado. Medido —
|
|
397
|
+
* un `write` sobre `/Clientes.xml` (vista aplanada) contestaba «XML mal formado en la línea
|
|
398
|
+
* 1» en vez de «es una vista aplanada, edita el .xne», que es lo único que le deja corregir.
|
|
399
|
+
* Lo destapó un test que ya existía.
|
|
400
|
+
*/
|
|
401
|
+
const delProyecto = sinDescargasEnElProyecto(sinArtefactosEnElProyecto(sinVistasAplanadas(sinContenidoInvalido(exponerMemoriaDeProyecto(base), opciones.validar ?? validarConXoneLinter()), opciones.ficheros)));
|
|
387
402
|
/**
|
|
388
403
|
* Las del usuario se leen AQUÍ y no entran por parámetro, a propósito: compuesto dentro de
|
|
389
404
|
* `construirAgente` —que todos sus tests doblan— el montaje quedaba escrito y no probado,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proyecto.js","sourceRoot":"","sources":["../../../src/agent/grafo/proyecto.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proyecto.js","sourceRoot":"","sources":["../../../src/agent/grafo/proyecto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { motivoDelRechazo, veredictoDeEscritura, } from "../../core/validacionDeEscritura.js";
|
|
2
|
+
/**
|
|
3
|
+
* El validador de PRODUCCIÓN, sobre `xone-linter`.
|
|
4
|
+
*
|
|
5
|
+
* **Devuelve `undefined` cuando no se pudo mirar**, que no es lo mismo que «no hay hallazgos» y
|
|
6
|
+
* por eso no es una lista vacía. Quien lo lea tiene que poder distinguir «esto está limpio» de
|
|
7
|
+
* «no sé»: lo primero deja escribir porque se comprobó, lo segundo deja escribir porque un fallo
|
|
8
|
+
* del ENTORNO no puede convertirse en un veredicto sobre el trabajo del agente. Es la misma
|
|
9
|
+
* frontera que `ErrorDelSimulador` frente a un informe en rojo.
|
|
10
|
+
*/
|
|
11
|
+
export function validarConXoneLinter() {
|
|
12
|
+
return async (ruta, contenido) => {
|
|
13
|
+
try {
|
|
14
|
+
const { validateContent, canValidate } = await import(
|
|
15
|
+
// Import PROFUNDO: el barril trae un top-level await que revienta bajo `tsx`.
|
|
16
|
+
"xone-linter/dist/validator/validateContent.js");
|
|
17
|
+
if (!canValidate(ruta))
|
|
18
|
+
return [];
|
|
19
|
+
const { result, checked } = await validateContent(ruta, contenido);
|
|
20
|
+
if (!checked)
|
|
21
|
+
return [];
|
|
22
|
+
return result.errors.map((e) => ({
|
|
23
|
+
codigo: e.code,
|
|
24
|
+
mensaje: e.message,
|
|
25
|
+
...(typeof e.location?.line === "number" ? { linea: e.location.line } : {}),
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// No está la librería, o su parser reventó. Se DEJA ESCRIBIR: ver la cabecera.
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Lee lo que hay hoy en esa ruta, o `undefined` si no hay nada que leer.
|
|
36
|
+
*
|
|
37
|
+
* Un fichero que no existe NO es un fallo: es el caso «fichero nuevo», donde no hay nada
|
|
38
|
+
* preexistente y todo hallazgo es de esta escritura.
|
|
39
|
+
*/
|
|
40
|
+
async function contenidoActual(backend, ruta) {
|
|
41
|
+
if (typeof backend.read !== "function")
|
|
42
|
+
return undefined;
|
|
43
|
+
try {
|
|
44
|
+
const leido = await backend.read(ruta);
|
|
45
|
+
if (typeof leido === "string")
|
|
46
|
+
return leido;
|
|
47
|
+
// Los backends de deepagents devuelven `{content}` o `{error}`.
|
|
48
|
+
const obj = leido;
|
|
49
|
+
if (obj && typeof obj === "object" && typeof obj.content === "string")
|
|
50
|
+
return obj.content;
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Lo que un `edit` va a dejar en el fichero, o `undefined` si no se puede saber.
|
|
59
|
+
*
|
|
60
|
+
* **Se calcula aquí en vez de dejar escribir y mirar después**, porque mirar después obliga a
|
|
61
|
+
* deshacer, y deshacer es escribir dos veces en el proyecto del usuario — con la ventana en la
|
|
62
|
+
* que el fichero malo existe si el proceso se muere en medio.
|
|
63
|
+
*
|
|
64
|
+
* Y **cuando el reemplazo no es exacto se devuelve `undefined` y NO se juzga**: si `oldString`
|
|
65
|
+
* no aparece, o aparece varias veces sin `replaceAll`, deepagents va a rechazar el edit él
|
|
66
|
+
* mismo. Adivinar ahí sería validar un contenido que nunca va a existir.
|
|
67
|
+
*/
|
|
68
|
+
export function contenidoTrasEditar(actual, oldString, newString, replaceAll) {
|
|
69
|
+
if (replaceAll) {
|
|
70
|
+
return actual.includes(oldString) ? actual.split(oldString).join(newString) : undefined;
|
|
71
|
+
}
|
|
72
|
+
const primera = actual.indexOf(oldString);
|
|
73
|
+
if (primera === -1)
|
|
74
|
+
return undefined;
|
|
75
|
+
if (actual.indexOf(oldString, primera + oldString.length) !== -1)
|
|
76
|
+
return undefined;
|
|
77
|
+
return actual.slice(0, primera) + newString + actual.slice(primera + oldString.length);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Envuelve el backend para que un `write` o un `edit` que INTRODUZCA un problema no llegue a
|
|
81
|
+
* disco.
|
|
82
|
+
*
|
|
83
|
+
* Cuarta guarda del mismo Proxy que `sinVistasAplanadas`, `sinArtefactosEnElProyecto` y
|
|
84
|
+
* `sinDescargasEnElProyecto`, con su misma forma: **se DEVUELVE `{error}`, nunca se lanza**.
|
|
85
|
+
* deepagents devuelve ese error al modelo como resultado de la tool y puede reintentar; una
|
|
86
|
+
* excepción se lleva el turno por delante y el agente no reintenta.
|
|
87
|
+
*/
|
|
88
|
+
export function sinContenidoInvalido(backend, validar) {
|
|
89
|
+
return new Proxy(backend, {
|
|
90
|
+
get(destino, prop) {
|
|
91
|
+
const valor = Reflect.get(destino, prop, destino);
|
|
92
|
+
if (typeof valor !== "function")
|
|
93
|
+
return valor;
|
|
94
|
+
if (prop !== "write" && prop !== "edit") {
|
|
95
|
+
return valor.bind(destino);
|
|
96
|
+
}
|
|
97
|
+
return async (...args) => {
|
|
98
|
+
const seguir = () => valor.apply(destino, args);
|
|
99
|
+
const ruta = args[0];
|
|
100
|
+
if (typeof ruta !== "string")
|
|
101
|
+
return seguir();
|
|
102
|
+
const antesTexto = await contenidoActual(destino, ruta);
|
|
103
|
+
let nuevo;
|
|
104
|
+
if (prop === "write") {
|
|
105
|
+
nuevo = typeof args[1] === "string" ? args[1] : undefined;
|
|
106
|
+
}
|
|
107
|
+
else if (typeof antesTexto === "string" && typeof args[1] === "string" && typeof args[2] === "string") {
|
|
108
|
+
nuevo = contenidoTrasEditar(antesTexto, args[1], args[2], args[3] === true);
|
|
109
|
+
}
|
|
110
|
+
if (nuevo === undefined)
|
|
111
|
+
return seguir();
|
|
112
|
+
const despues = await validar(ruta, nuevo);
|
|
113
|
+
// No se pudo mirar: se deja escribir. Un fallo del entorno no es un veredicto.
|
|
114
|
+
if (despues === undefined)
|
|
115
|
+
return seguir();
|
|
116
|
+
const antes = antesTexto === undefined ? undefined : await validar(ruta, antesTexto);
|
|
117
|
+
const { introducidos } = veredictoDeEscritura(antes, despues);
|
|
118
|
+
if (introducidos.length === 0)
|
|
119
|
+
return seguir();
|
|
120
|
+
return { error: motivoDelRechazo(ruta, introducidos) };
|
|
121
|
+
};
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=validacionXone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validacionXone.js","sourceRoot":"","sources":["../../../src/agent/grafo/validacionXone.ts"],"names":[],"mappings":"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"}
|
|
@@ -139,7 +139,7 @@ export function promptOrquestador(agentes) {
|
|
|
139
139
|
* los fallos visuales. Por eso se decide contra el encargo y no contra el fichero.
|
|
140
140
|
*/
|
|
141
141
|
hay("developer-xone") && hay("device-controller")
|
|
142
|
-
? "Si el encargo incluye PROBARLO en un móvil o emulador, son DOS pasos y en este orden: `developer-xone` escribe, y luego `device-controller` lo despliega y lo comprueba. Dile SIEMPRE a qué pantalla o colección tiene que llegar, no solo «pruébalo». Si tienes `xone_critica_visual`, pásale la captura que deje: ve fallos de pintado que ninguna comprobación estática detecta, y si te pide otra pantalla, encárgasela al conductor y vuelve. De lo que saque, MANDA A CORREGIR solo lo que sirva al encargo que te hicieron: un defecto que ya estaba ahí y que tu cambio no ha causado NO se arregla, se CUENTA en tu respuesta para que lo decida quien te encargó el trabajo. Y no des por buena una pantalla que nadie ha mirado."
|
|
142
|
+
? "Si el encargo incluye PROBARLO en un móvil o emulador, son DOS pasos y en este orden: `developer-xone` escribe, y luego `device-controller` lo despliega y lo comprueba. Dile SIEMPRE a qué pantalla o colección tiene que llegar, no solo «pruébalo». Si tienes `xone_critica_visual`, pásale la captura que deje: ve fallos de pintado que ninguna comprobación estática detecta, y si te pide otra pantalla, encárgasela al conductor y vuelve. Y si el encargo traía un DISEÑO o una MAQUETA, pásasela SIEMPRE en `referencia`: sin ella su verde solo dice que nada está roto, no que la pantalla se parezca a lo que te pidieron. De lo que saque, MANDA A CORREGIR solo lo que sirva al encargo que te hicieron: un defecto que ya estaba ahí y que tu cambio no ha causado NO se arregla, se CUENTA en tu respuesta para que lo decida quien te encargó el trabajo. Y no des por buena una pantalla que nadie ha mirado."
|
|
143
143
|
: "",
|
|
144
144
|
"Los especialistas no comparten el transcript: al encadenarlos, incluye en la descripción",
|
|
145
145
|
"de la siguiente `task` un bloque `HANDOFF DE ANÁLISIS` compacto con los hechos verificados,",
|