xonecode 0.8.26 → 0.8.36
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/{index-LdUr7EoT.js → index-DFnjznH1.js} +34 -34
- package/apps/web/dist/assets/{php-Cg-eWGpQ.js → php-CX4yaeUn.js} +1 -1
- package/apps/web/dist/assets/{ruby-EcV7Hon3.js → ruby-Dklcf7v6.js} +1 -1
- package/apps/web/dist/index.html +1 -1
- package/dist/agent/grafo/escriturasEnSerie.js +57 -0
- package/dist/agent/grafo/escriturasEnSerie.js.map +1 -0
- package/dist/agent/grafo/proyecto.js +84 -3
- package/dist/agent/grafo/proyecto.js.map +1 -1
- package/dist/agent/grafo/traerDeLaMaquina.js +117 -0
- package/dist/agent/grafo/traerDeLaMaquina.js.map +1 -0
- package/dist/agent/grafo/validacionXone.js +200 -0
- package/dist/agent/grafo/validacionXone.js.map +1 -0
- package/dist/agent/grafo/xoneAgent.js +33 -1
- package/dist/agent/grafo/xoneAgent.js.map +1 -1
- package/dist/agent/subagentes/agentesEnDisco.js +34 -6
- package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
- package/dist/agent/trazaDeErroresEnDisco.js +45 -0
- package/dist/agent/trazaDeErroresEnDisco.js.map +1 -0
- package/dist/agent/turno/diagnosticoDeTools.js +10 -1
- package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
- package/dist/agent/turno/informeDeTraza.js +129 -6
- package/dist/agent/turno/informeDeTraza.js.map +1 -1
- package/dist/agent/turno/puente.js +89 -5
- package/dist/agent/turno/puente.js.map +1 -1
- package/dist/agent/turno/resumenDeTool.js +28 -0
- package/dist/agent/turno/resumenDeTool.js.map +1 -1
- package/dist/agent/turno/turnoReal.js +20 -2
- package/dist/agent/turno/turnoReal.js.map +1 -1
- package/dist/core/serieDeEscrituras.js +63 -0
- package/dist/core/serieDeEscrituras.js.map +1 -0
- package/dist/core/traerDeLaMaquina.js +80 -0
- package/dist/core/traerDeLaMaquina.js.map +1 -0
- package/dist/core/trazaDeErrores.js +108 -0
- package/dist/core/trazaDeErrores.js.map +1 -0
- package/dist/core/validacionDeEscritura.js +105 -0
- package/dist/core/validacionDeEscritura.js.map +1 -0
- package/dist/web/servidor/consolaWeb.js +6 -0
- package/dist/web/servidor/consolaWeb.js.map +1 -1
- package/package.json +3 -2
- package/skills/xone-hotswap/SKILL.md +76 -8
- package/skills/xone-hotswap/references/comandos.md +33 -0
- package/skills/xone-hotswap/references/conexion-y-despliegue.md +61 -1
- package/skills/xone-hotswap/scripts/xone-arrancar-ios +1 -1
- package/skills/xone-hotswap/scripts/xone-captura-android +91 -3
- package/skills/xone-hotswap/scripts/xone-desplegar-android +80 -5
- package/skills/xone-hotswap/scripts/xone-hotswap +151 -8
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +15 -7
package/apps/web/dist/index.html
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
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-
|
|
10
|
+
<script type="module" crossorigin src="./assets/index-DFnjznH1.js"></script>
|
|
11
11
|
<link rel="stylesheet" crossorigin href="./assets/index-DKZqgHtg.css">
|
|
12
12
|
</head>
|
|
13
13
|
<!-- Sin el atributo aquí: el oscuro es SOLO del splash (el registro de entorno y
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { crearSerieDeEscrituras } from "../../core/serieDeEscrituras.js";
|
|
2
|
+
/**
|
|
3
|
+
* Dos escrituras sobre el MISMO fichero no se solapan: la segunda espera a que acabe la
|
|
4
|
+
* primera. Sobre ficheros distintos no cambia nada.
|
|
5
|
+
*
|
|
6
|
+
* **El fallo que cierra es silencioso, que es lo que lo hace grave.** `write` y `edit` del
|
|
7
|
+
* backend son leer-modificar-escribir sobre el fichero entero, así que dos a la vez se pisan
|
|
8
|
+
* y **las dos contestan que bien**. Reproducido contra el backend real: cuatro `edit`
|
|
9
|
+
* concurrentes, cuatro resultados sin error, **una** aplicada. Y ocurre de verdad — en una
|
|
10
|
+
* sesión de MyAllXOne la traza de errores registró dos `edit` sobre `/funciones.js` entrando
|
|
11
|
+
* en el MISMO milisegundo, con el testigo `escrituraSolapada` disparado.
|
|
12
|
+
*
|
|
13
|
+
* **Por qué serializar basta**, que era la objeción razonable: la segunda edición calculó su
|
|
14
|
+
* `old_string` contra un contenido que la primera acaba de cambiar. Cierto — y por eso este
|
|
15
|
+
* envoltorio va POR FUERA de quien edita, no por dentro: cuando le llega el turno, el camino
|
|
16
|
+
* de escritura vuelve a leer el fichero y vuelve a buscar el `old_string` contra lo que hay
|
|
17
|
+
* AHORA. Si el ancla sigue, la edición es correcta; si desapareció, el backend contesta que
|
|
18
|
+
* no lo encuentra y el modelo recibe su error y reintenta. Medido: en serie, cuatro ediciones
|
|
19
|
+
* independientes se aplican las cuatro, y dos que se pisan dan una aplicada y **un error
|
|
20
|
+
* visible** — en vez de una aplicada y un cambio perdido sin que nadie se entere.
|
|
21
|
+
*
|
|
22
|
+
* **Dónde va en la pila**: por dentro de las guardas de RUTA —que contestan con una
|
|
23
|
+
* comparación de texto y deben seguir contestando primero, ver `proyecto.ts`— y por fuera de
|
|
24
|
+
* `sinContenidoInvalido`, para que leer el fichero de antes, validar y escribir sean un solo
|
|
25
|
+
* turno. Al revés, dos validaciones podrían intercalarse entre la lectura y la escritura, que
|
|
26
|
+
* es exactamente la carrera que esto viene a quitar.
|
|
27
|
+
*
|
|
28
|
+
* **No toca `read`, `ls`, `glob` ni nada que no escriba.** Serializar lecturas no arregla
|
|
29
|
+
* nada y convertiría en secuencial el trabajo que sí puede ir en paralelo, que es la mitad de
|
|
30
|
+
* lo que el agente hace.
|
|
31
|
+
*/
|
|
32
|
+
export function escriturasEnSerie(backend) {
|
|
33
|
+
const enSerie = crearSerieDeEscrituras();
|
|
34
|
+
return new Proxy(backend, {
|
|
35
|
+
get(destino, prop) {
|
|
36
|
+
// El valor se lee contra el OBJETIVO y no contra el proxy: `LocalShellBackend.id` es un
|
|
37
|
+
// getter sobre un campo privado y `Reflect.get(o, p, receptor)` lanza al leerlo — lo
|
|
38
|
+
// lee el constructor de `CompositeBackend`, así que el fallo sería al MONTAR.
|
|
39
|
+
const valor = Reflect.get(destino, prop, destino);
|
|
40
|
+
if (typeof valor !== "function")
|
|
41
|
+
return valor;
|
|
42
|
+
const fn = valor.bind(destino);
|
|
43
|
+
if (prop !== "write" && prop !== "edit")
|
|
44
|
+
return fn;
|
|
45
|
+
return async (...args) => {
|
|
46
|
+
const ruta = typeof args[0] === "string" ? args[0] : undefined;
|
|
47
|
+
// Sin ruta no hay nada por lo que serializar, y inventar una clave común pondría en
|
|
48
|
+
// fila escrituras de ficheros distintos. Pasa tal cual: la dirección conservadora
|
|
49
|
+
// aquí es NO cambiar el comportamiento de una llamada que no se entiende.
|
|
50
|
+
if (ruta === undefined)
|
|
51
|
+
return await fn(...args);
|
|
52
|
+
return await enSerie(ruta, async () => await fn(...args));
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=escriturasEnSerie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escriturasEnSerie.js","sourceRoot":"","sources":["../../../src/agent/grafo/escriturasEnSerie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,iBAAiB,CAAmB,OAAU;IAC5D,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IACzC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,wFAAwF;YACxF,qFAAqF;YACrF,8EAA8E;YAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9C,MAAM,EAAE,GAAI,KAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjE,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,EAAE,CAAC;YACnD,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClC,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,oFAAoF;gBACpF,kFAAkF;gBAClF,0EAA0E;gBAC1E,IAAI,IAAI,KAAK,SAAS;oBAAE,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjD,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC,CAAC;QACJ,CAAC;KACF,CAAM,CAAC;AACV,CAAC"}
|
|
@@ -2,9 +2,12 @@ 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";
|
|
6
|
+
import { escriturasEnSerie } from "./escriturasEnSerie.js";
|
|
5
7
|
import { RAIZ_SKILLS, skillsConRuta, skillsMontables } from "./skills.js";
|
|
6
8
|
import { artefactoFueraDeSitio, esBasuraDeArtefacto, esRutaDeArtefacto, mimeDeArtefacto, nombreDeArtefacto, RUTA_ARTEFACTOS, } from "../../core/artefactos.js";
|
|
7
9
|
import { RUTA_ADJUNTOS } from "../../core/adjuntos.js";
|
|
10
|
+
import { esRutaDeMaquina, porQueNoSuelta } from "../../core/traerDeLaMaquina.js";
|
|
8
11
|
import { carpetaDeHotswap, RUTA_HOTSWAP } from "../../core/hotswap.js";
|
|
9
12
|
import { CARPETA_DE_PLANES, RUTA_PLANES } from "../../core/planes.js";
|
|
10
13
|
import { entornoDeShell, variablesDeAndroid } from "../../core/shellDeAgente.js";
|
|
@@ -139,6 +142,47 @@ export const TOPE_DE_COMANDO_S = 600;
|
|
|
139
142
|
* resueltas, y es así como el modelo las descubre— pero un agente que liste esa carpeta a
|
|
140
143
|
* mano no las verá.
|
|
141
144
|
*/
|
|
145
|
+
/**
|
|
146
|
+
* Monta la máquina entera bajo `/disco/`, de solo lectura, y contesta bien a quien pegue una
|
|
147
|
+
* ruta absoluta a pelo.
|
|
148
|
+
*
|
|
149
|
+
* El porqué entero está en `core/discoDeLaMaquina.ts`. Aquí, las dos mitades del cableado:
|
|
150
|
+
*
|
|
151
|
+
* - **El montaje**: la misma pieza que `/skills/`, `/adjuntos/` y `/planes/` — otra raíz del
|
|
152
|
+
* `CompositeBackend`, con su barra final obligatoria. El «solo lectura» no lo pone esto: lo
|
|
153
|
+
* pone `permisosDe`, que es donde vive esa decisión para todas las raíces.
|
|
154
|
+
* - **La REESCRITURA**, que es lo que evita el viaje en balde. Una ruta de máquina escrita a
|
|
155
|
+
* pelo (`/Users/…/x.zip`) se resuelve DENTRO del proyecto y vuelve un ENOENT que dice «no
|
|
156
|
+
* existe» sobre un fichero que sí existe —y de paso filtra la raíz absoluta del proyecto—.
|
|
157
|
+
* Se intercepta antes y se devuelve la ruta buena ya escrita.
|
|
158
|
+
*/
|
|
159
|
+
/**
|
|
160
|
+
* Contesta bien a una ruta de la MÁQUINA escrita como si fuera del proyecto.
|
|
161
|
+
*
|
|
162
|
+
* Sin esto se resuelve DENTRO del proyecto y vuelve un ENOENT que dice «no such file or
|
|
163
|
+
* directory» sobre un fichero que sí existe —y de paso filtra la raíz absoluta del proyecto—.
|
|
164
|
+
* Medido: el orquestador concluía que estaba enjaulado y se iba a delegar en el agente con
|
|
165
|
+
* shell. Aquí se le devuelve el paso siguiente ESCRITO, que es el patrón de `porQueNo`.
|
|
166
|
+
*
|
|
167
|
+
* No monta nada y no abre nada: solo sustituye un mensaje que engaña por uno que sirve.
|
|
168
|
+
*/
|
|
169
|
+
export function conAvisoDeRutaDeMaquina(backend) {
|
|
170
|
+
return new Proxy(backend, {
|
|
171
|
+
get(destino, prop) {
|
|
172
|
+
const valor = Reflect.get(destino, prop, destino);
|
|
173
|
+
if (typeof valor !== "function")
|
|
174
|
+
return valor;
|
|
175
|
+
return (...args) => {
|
|
176
|
+
const ruta = args[0];
|
|
177
|
+
// Se DEVUELVE `{error}`, como las otras guardas: una excepción se lleva el turno.
|
|
178
|
+
if (typeof ruta === "string" && esRutaDeMaquina(ruta)) {
|
|
179
|
+
return { error: porQueNoSuelta(ruta) };
|
|
180
|
+
}
|
|
181
|
+
return valor.apply(destino, args);
|
|
182
|
+
};
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
}
|
|
142
186
|
export function backendConSkills(backend, propias = []) {
|
|
143
187
|
return new CompositeBackend(backend, {
|
|
144
188
|
// La barra final importa: CompositeBackend la retira antes de delegar. Sin ella
|
|
@@ -383,7 +427,33 @@ export function backendDeAgente(opciones) {
|
|
|
383
427
|
const base = opciones.ejecucion === undefined
|
|
384
428
|
? backendDelProyecto(opciones.raiz)
|
|
385
429
|
: backendDelProyectoConShell(opciones.raiz, opciones.ejecucion.entorno);
|
|
386
|
-
|
|
430
|
+
/**
|
|
431
|
+
* **La CUARTA guarda va la MÁS INTERNA, y el orden importa en los dos sentidos.**
|
|
432
|
+
*
|
|
433
|
+
* Un Proxy que envuelve a otro intercepta ANTES que él, así que el envoltorio de más afuera
|
|
434
|
+
* es el que corre primero. Las tres de rutas contestan «¿puede tocarse esto?» con una
|
|
435
|
+
* comparación de texto; ésta contesta «¿vale este contenido?» leyendo el fichero de antes y
|
|
436
|
+
* llamando a un parser. Dejándola dentro, una escritura sobre una vista aplanada o sobre
|
|
437
|
+
* `/artefactos/` se rechaza por su RUTA sin haber parseado nada.
|
|
438
|
+
*
|
|
439
|
+
* Y no es solo coste: al revés, el motivo que recibía el modelo era el equivocado. Medido —
|
|
440
|
+
* un `write` sobre `/Clientes.xml` (vista aplanada) contestaba «XML mal formado en la línea
|
|
441
|
+
* 1» en vez de «es una vista aplanada, edita el .xne», que es lo único que le deja corregir.
|
|
442
|
+
* Lo destapó un test que ya existía.
|
|
443
|
+
*/
|
|
444
|
+
/**
|
|
445
|
+
* **Y la QUINTA va entre medias, porque no contesta una pregunta: espera un turno.**
|
|
446
|
+
*
|
|
447
|
+
* `escriturasEnSerie` va por DENTRO de las guardas de ruta —que siguen contestando primero,
|
|
448
|
+
* con su comparación de texto y sin parsear nada— y por FUERA de `sinContenidoInvalido`,
|
|
449
|
+
* para que leer el fichero de antes, validarlo y escribirlo sean un solo turno. Al revés,
|
|
450
|
+
* dos validaciones podrían intercalarse entre su lectura y su escritura, que es justo la
|
|
451
|
+
* carrera que esto quita.
|
|
452
|
+
*
|
|
453
|
+
* Y por eso tampoco tiene sentido más afuera: una escritura que las guardas de ruta van a
|
|
454
|
+
* rechazar no necesita hacer cola detrás de nadie.
|
|
455
|
+
*/
|
|
456
|
+
const delProyecto = sinDescargasEnElProyecto(sinArtefactosEnElProyecto(sinVistasAplanadas(escriturasEnSerie(sinContenidoInvalido(exponerMemoriaDeProyecto(base), opciones.validar ?? validarConXoneLinter())), opciones.ficheros)));
|
|
387
457
|
/**
|
|
388
458
|
* Las del usuario se leen AQUÍ y no entran por parámetro, a propósito: compuesto dentro de
|
|
389
459
|
* `construirAgente` —que todos sus tests doblan— el montaje quedaba escrito y no probado,
|
|
@@ -414,12 +484,23 @@ export function backendDeAgente(opciones) {
|
|
|
414
484
|
* se implementa otro. Es la diferencia con los artefactos, que mueren con su sesión.
|
|
415
485
|
*/
|
|
416
486
|
const conPlanes = backendConPlanes(conAdjuntos, opciones.raiz);
|
|
487
|
+
/**
|
|
488
|
+
* Y el aviso de las rutas de MÁQUINA, que no monta nada.
|
|
489
|
+
*
|
|
490
|
+
* Hubo aquí un montaje de `/` bajo `/disco/` y **rompió un turno de producción**: con la
|
|
491
|
+
* máquina entera dentro del `CompositeBackend`, toda operación recursiva sin ruta la
|
|
492
|
+
* recorría — un `grep` sobre el PROYECTO tardaba 30 s y moría con
|
|
493
|
+
* `EPERM … scandir '/Volumes/com.apple.TimeMachine.localsnapshots'`. Lo que hacía falta no
|
|
494
|
+
* era navegar el disco sino TRAERSE un fichero, y eso lo hace la tool
|
|
495
|
+
* `traer_de_la_maquina`. Aquí solo queda contestar bien a quien escriba la ruta a pelo.
|
|
496
|
+
*/
|
|
497
|
+
const conDisco = conAvisoDeRutaDeMaquina(conPlanes);
|
|
417
498
|
// Lo que deje un COMANDO en la carpeta de artefactos también se anuncia. Sin esto, la
|
|
418
499
|
// captura que escribe un script existe en el disco y no existe para nadie: el evento
|
|
419
500
|
// `artefacto` lo emite el Proxy de `write`/`edit`, y una shell no pasa por ahí.
|
|
420
501
|
return opciones.ejecucion === undefined || opciones.artefactos === undefined
|
|
421
|
-
?
|
|
422
|
-
: anunciarArtefactosDeLaShell(
|
|
502
|
+
? conDisco
|
|
503
|
+
: anunciarArtefactosDeLaShell(conDisco, opciones.artefactos.carpeta, opciones.artefactos.alEscribir);
|
|
423
504
|
}
|
|
424
505
|
/**
|
|
425
506
|
* Anuncia lo que un COMANDO deja en la carpeta de artefactos.
|
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAyB,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,eAAe,GAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,OAA+B;IAE/B,OAAO,IAAI,iBAAiB,CAAC;QAC3B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;QACjB,GAAG,EAAE,OAAO;QACZ,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAY,EACZ,UAAmB;AACnB;;;;;GAKG;AACH,QAAoE,oBAAoB,CAAC;IACvF,UAAU,EAAE,OAAO,CAAC,QAAQ;IAC5B,OAAO,EAAE,OAAO,CAAC,GAAG;IACpB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;CACnC,CAAC,CAAC,KAAK;IAER,6FAA6F;IAC7F,6FAA6F;IAC7F,uFAAuF;IACvF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAClF,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG;QACpB,MAAM;QACN,2FAA2F;QAC3F,0FAA0F;QAC1F,mEAAmE;QACnE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChF,0FAA0F;QAC1F,6EAA6E;QAC7E,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAClC,yFAAyF;QACzF,0FAA0F;QAC1F,mDAAmD;QACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;KAC3F,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAmB,OAAU;IAClE,OAAO,IAAI,KAAK,CAAC,OAAiB,EAAE;QAClC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9C,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,kFAAkF;gBAClF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAQ,KAAsC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC;QACJ,CAAC;KACF,CAAM,CAAC;AACV,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAmB,OAAU,EAAE,UAA8B,EAAE;IAC7F,OAAO,IAAI,gBAAgB,CAAC,OAAgB,EAAE;QAC5C,gFAAgF;QAChF,kFAAkF;QAClF,UAAU,EAAE,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC9E,GAAG,MAAM,CAAC,WAAW,CACnB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACjB,WAAW,CAAC,CAAC,MAAM,GAAG;YACtB,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;SAC7D,CAAC,CACH;KACF,CAAM,CAAC;AACV,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAAmB,OAAU,EAAE,OAAe;IAC9E,OAAO,IAAI,gBAAgB,CAAC,OAAgB,EAAE;QAC5C,sFAAsF;QACtF,yFAAyF;QACzF,CAAC,aAAa,CAAC,EAAE,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;KAChF,CAAM,CAAC;AACV,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAmB,OAAU,EAAE,IAAY;IACzE,OAAO,IAAI,gBAAgB,CAAC,OAAgB,EAAE;QAC5C,CAAC,WAAW,CAAC,EAAE,IAAI,iBAAiB,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC;YACtC,WAAW,EAAE,IAAI;SAClB,CAAC;KACH,CAAM,CAAC;AACV,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAU,EACV,OAAe,EACf,UAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;QACjC,GAAG,CAAC,QAAQ,EAAE,IAAI;YAChB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAQ,KAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClC,MAAM,SAAS,GAAG,MAAO,KAAsC,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACtF,qFAAqF;gBACrF,oFAAoF;gBACpF,yCAAyC;gBACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,eAAe,GAAG,QAAQ,CAAC;gBACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACrC,gFAAgF;gBAChF,6EAA6E;gBAC7E,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC;oBACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjD,CAAC;gBAAC,MAAM,CAAC;oBACP,8EAA8E;gBAChF,CAAC;gBACD,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7E,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,gBAAgB,CAAC,OAAgB,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAgB,EAAE,CAAM,CAAC;AAC9F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,mBAAmB,CAAmB,OAAU,EAAE,mBAA2B;IAC3F,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,iBAAiB,CAAC;YACrC,OAAO,EAAE,kBAAkB,CAAC,mBAAmB,EAAE,IAAI,CAAC;YACtD,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,gBAAgB,CAAC,OAAgB,EAAE,QAAiB,CAAM,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAAmB,OAAU,EAAE,mBAA2B;IACzF,OAAO,IAAI,gBAAgB,CAAC,OAAgB,EAAE;QAC5C,CAAC,YAAY,CAAC,EAAE,IAAI,iBAAiB,CAAC;YACpC,OAAO,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;YAC9C,WAAW,EAAE,IAAI;SAClB,CAAC;KACM,CAAM,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,wBAAwB,CAAmB,OAAU;IACnE,MAAM,MAAM,GAAG,CAAC,IAAa,EAAsB,EAAE;QACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAQ,KAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACnD,OAAQ,KAAsC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC;QACJ,CAAC;KACF,CAAM,CAAC;AACV,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAAC,QAuB/B;IACC,MAAM,IAAI,GACR,QAAQ,CAAC,SAAS,KAAK,SAAS;QAC9B,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5E;;;;;;;;;;;;;OAaG;IACL;;;;;;;;;;;SAWK;IACH,MAAM,WAAW,GAAG,wBAAwB,CAC1C,yBAAyB,CACvB,kBAAkB,CAChB,iBAAiB,CACf,oBAAoB,CAClB,wBAAwB,CAAC,IAAI,CAAC,EAC9B,QAAQ,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAC3C,CACF,EACD,QAAQ,CAAC,QAAQ,CAClB,CACF,CACF,CAAC;IACF;;;;;;;;OAQG;IACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,aAAa,GACjB,QAAQ,CAAC,UAAU,KAAK,SAAS;QAC/B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACnG,sFAAsF;IACtF,gFAAgF;IAChF,MAAM,YAAY,GAChB,QAAQ,CAAC,UAAU,KAAK,SAAS;QAC/B,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtE,2FAA2F;IAC3F,8EAA8E;IAC9E,MAAM,UAAU,GACd,QAAQ,CAAC,UAAU,KAAK,SAAS;QAC/B,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,WAAW,GACf,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnG;;;;OAIG;IACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/D;;;;;;;;;OASG;IACH,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACpD,sFAAsF;IACtF,qFAAqF;IACrF,gFAAgF;IAChF,OAAO,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;QAC1E,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACzG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAU,EACV,OAAe,EACf,UAA0C;IAE1C,MAAM,IAAI,GAAG,GAAwB,EAAE;QACrC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;QACpC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,OAAe,EAAQ,EAAE;YACtD,IAAI,QAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO;YACT,CAAC;YACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,gFAAgF;gBAChF,6EAA6E;gBAC7E,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;gBACxC,4EAA4E;gBAC5E,gFAAgF;gBAChF,mFAAmF;gBACnF,8DAA8D;gBAC9D,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC;oBAClD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBAAE,SAAS;gBAChC,IAAI,CAAC;oBACH,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5C,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBAAC,MAAM,CAAC;oBACP,mFAAmF;gBACrF,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAQ,KAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErF,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClC,IAAI,CAAC;oBACH,iFAAiF;oBACjF,kFAAkF;oBAClF,4EAA4E;oBAC5E,YAAY;oBACZ,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,8EAA8E;gBAChF,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,OAAO,MAAO,KAAsC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5E,CAAC;wBAAS,CAAC;oBACT,kFAAkF;oBAClF,4EAA4E;oBAC5E,IAAI,CAAC;wBACH,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;4BACvC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK;gCAAE,SAAS;4BAC5C,MAAM,IAAI,GAAG,eAAe,GAAG,QAAQ,CAAC;4BACxC,8EAA8E;4BAC9E,8EAA8E;4BAC9E,8EAA8E;4BAC9E,oCAAoC;4BACpC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC;gCAAE,SAAS;4BACxE,2EAA2E;4BAC3E,wEAAwE;4BACxE,6DAA6D;4BAC7D,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;4BACvC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;4BACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC/C,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC/E,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,+DAA+D;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;KACF,CAAM,CAAC;AACV,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAmB,OAAU;IACnE,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAW,EAAE,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzG,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAE9C,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjF,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;oBAClC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5B,OAAQ,KAAsC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtE,CAAC,CAAC;YACJ,CAAC;YAED,OAAQ,KAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;KACF,CAAM,CAAC;AACV,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE,CACnE,IAAI,IAAI,qFAAqF;IAC7F,iEAAiE;IACjE,0BAA0B,OAAO,2DAA2D;IAC5F,mDAAmD,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,yBAAyB,CAAmB,OAAU;IACpE,MAAM,MAAM,GAAG,CAAC,IAAa,EAAsB,EAAE;QACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAQ,KAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBAClC,oFAAoF;gBACpF,8EAA8E;gBAC9E,mFAAmF;gBACnF,iFAAiF;gBACjF,iFAAiF;gBACjF,oFAAoF;gBACpF,oFAAoF;gBACpF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,MAAM,KAAK,SAAS;oBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACnD,OAAQ,KAAsC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC,CAAC;QACJ,CAAC;KACF,CAAM,CAAC;AACV,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAA0B;IACtE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE,CAC/C,IAAI,IAAI,+DAA+D,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;IACjG,iFAAiF;IACjF,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAAmB,OAAU,EAAE,KAA0B;IACzF,MAAM,MAAM,GAAG,CAAC,IAAa,EAAsB,EAAE,CACnD,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,OAAO,KAAK,CAAC;YAE9C,oEAAoE;YACpE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtG,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;oBAClC,+EAA+E;oBAC/E,gFAAgF;oBAChF,6EAA6E;oBAC7E,mFAAmF;oBACnF,iEAAiE;oBACjE,mFAAmF;oBACnF,sDAAsD;oBACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,MAAM,KAAK,SAAS;wBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBACnD,OAAQ,KAAsC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtE,CAAC,CAAC;YACJ,CAAC;YAED,iEAAiE;YACjE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrC,OAAO,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;oBAClC,MAAM,CAAC,GAAG,MAAO,KAA+C,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACtF,OAAO,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC;YACJ,CAAC;YAED,OAAQ,KAAsC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;KACF,CAAM,CAAC;AACV,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,CAAU,EAAE,KAA0B;IAC9D,MAAM,KAAK,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,MAAM,MAAM,GAA4B,EAAE,GAAG,CAAC,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;YACxE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC,KAAK,CAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBACnD,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAC3B,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC/B,MAAM,CAAC,GAAI,CAA6B,CAAC,IAAI,IAAK,CAA6B,CAAC,IAAI,CAAC;wBACrF,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { copyFileSync, existsSync, mkdirSync, realpathSync, statSync } from "node:fs";
|
|
2
|
+
import { basename, join } from "node:path";
|
|
3
|
+
import { tool } from "@langchain/core/tools";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { mimeDeArtefacto, RUTA_ARTEFACTOS } from "../../core/artefactos.js";
|
|
6
|
+
import { motivoDeTraidaInaceptable, nombreParaTraer, TOPE_DE_TRAIDA } from "../../core/traerDeLaMaquina.js";
|
|
7
|
+
/**
|
|
8
|
+
* Traer al área de trabajo un fichero que la PERSONA ha nombrado por su ruta.
|
|
9
|
+
*
|
|
10
|
+
* ## El caso, medido
|
|
11
|
+
*
|
|
12
|
+
* «Usa el diseño de `/Users/…/Downloads/stitch_calculadora.zip`». Esa ruta no es del proyecto,
|
|
13
|
+
* y las tools de fichero van confinadas a su raíz, así que el agente no podía abrirla: la
|
|
14
|
+
* resolvía DENTRO del proyecto, recibía un ENOENT que decía «no existe» sobre un fichero que
|
|
15
|
+
* sí existe, concluía que estaba enjaulado y se iba a delegar en el único especialista con
|
|
16
|
+
* shell para que lo copiara. Dieciocho pasos y un `unzip` para un fichero que le acababan de
|
|
17
|
+
* nombrar.
|
|
18
|
+
*
|
|
19
|
+
* ## Por qué COPIAR y no montar el disco
|
|
20
|
+
*
|
|
21
|
+
* La primera versión montaba la máquina entera bajo `/disco/`, de solo lectura. **Rompió un
|
|
22
|
+
* turno de producción**: con `/` dentro del `CompositeBackend`, toda operación recursiva sin
|
|
23
|
+
* ruta lo recorre — un `grep` sobre el PROYECTO tardaba 30 segundos y moría con
|
|
24
|
+
* `EPERM … scandir '/Volumes/com.apple.TimeMachine.localsnapshots'`.
|
|
25
|
+
*
|
|
26
|
+
* Y al mirarlo se vio que montar era más de lo que hacía falta. Lo que se necesita no es
|
|
27
|
+
* navegar el disco: es **traerse un fichero concreto**. Copiar tiene tres ventajas que el
|
|
28
|
+
* montaje no puede dar: no hay nada recursivo que se descontrole, lo traído queda en el área
|
|
29
|
+
* de trabajo —donde se ANUNCIA y se puede volver a leer—, y un BINARIO sobrevive: un `.zip` o
|
|
30
|
+
* un `.png` no aguantan un `read_file` + `write_file`, que son de TEXTO. Es el mismo reparto
|
|
31
|
+
* que `copiar_artefacto` y que el PDF: lo hace el harness porque el agente no puede.
|
|
32
|
+
*
|
|
33
|
+
* ## Las guardas
|
|
34
|
+
*
|
|
35
|
+
* 1. **Lo que se acepta es una lista BLANCA de forma** (`core/traerDeLaMaquina.ts`): una ruta
|
|
36
|
+
* absoluta de verdad, y nada del propio harness —`auth.json` guarda las claves en claro y
|
|
37
|
+
* cualquier `.xonecode/` lleva la conversación entera—.
|
|
38
|
+
* 2. **El DESTINO no se recibe**: lo deriva el código dentro de la carpeta de artefactos. Con
|
|
39
|
+
* un destino por parámetro esto sería una forma de escribir donde se quisiera.
|
|
40
|
+
* 3. **Tope de tamaño**, porque el área de trabajo no es un almacén y un fichero enorme se
|
|
41
|
+
* copia igual de callado que uno pequeño.
|
|
42
|
+
* 4. Y la ruta se comprueba **dos veces**, por TEXTO y por `realpath`, como en
|
|
43
|
+
* `arbolDeProyecto.ts`: un enlace puede apuntar a otro sitio.
|
|
44
|
+
*/
|
|
45
|
+
export const NOMBRE_TRAER = "traer_de_la_maquina";
|
|
46
|
+
const Entrada = z.object({
|
|
47
|
+
ruta: z
|
|
48
|
+
.string()
|
|
49
|
+
.describe("La ruta ABSOLUTA del fichero en la máquina, tal y como la escribió la persona " +
|
|
50
|
+
"(por ejemplo /Users/alguien/Downloads/diseno.zip). Se copia a /artefactos/ y se " +
|
|
51
|
+
"trabaja desde ahí."),
|
|
52
|
+
});
|
|
53
|
+
export function crearTraerDeLaMaquina(deps) {
|
|
54
|
+
return tool(async (entrada) => {
|
|
55
|
+
if (deps.carpeta === undefined) {
|
|
56
|
+
return "Esta sesión no tiene carpeta de artefactos, así que no hay dónde dejarlo.";
|
|
57
|
+
}
|
|
58
|
+
const motivo = motivoDeTraidaInaceptable(entrada.ruta);
|
|
59
|
+
if (motivo !== undefined)
|
|
60
|
+
return motivo;
|
|
61
|
+
// Dos veces, por TEXTO y por el camino REAL: un enlace puede apuntar a otro sitio.
|
|
62
|
+
let real;
|
|
63
|
+
try {
|
|
64
|
+
real = realpathSync(entrada.ruta);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
// De un error de Node solo el NOMBRE: su mensaje lleva la ruta absoluta.
|
|
68
|
+
return `No pude abrir «${entrada.ruta}» (${error instanceof Error ? error.name : "error"}).`;
|
|
69
|
+
}
|
|
70
|
+
const motivoReal = motivoDeTraidaInaceptable(real);
|
|
71
|
+
if (motivoReal !== undefined)
|
|
72
|
+
return motivoReal;
|
|
73
|
+
let bytes;
|
|
74
|
+
try {
|
|
75
|
+
const info = statSync(real);
|
|
76
|
+
if (!info.isFile())
|
|
77
|
+
return `«${entrada.ruta}» no es un fichero.`;
|
|
78
|
+
bytes = info.size;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return `No pude mirar «${entrada.ruta}» (${error instanceof Error ? error.name : "error"}).`;
|
|
82
|
+
}
|
|
83
|
+
if (bytes > TOPE_DE_TRAIDA) {
|
|
84
|
+
return (`«${basename(real)}» ocupa ${Math.round(bytes / 1024 / 1024)} MB y el tope son ` +
|
|
85
|
+
`${Math.round(TOPE_DE_TRAIDA / 1024 / 1024)} MB. El área de trabajo no es un almacén: ` +
|
|
86
|
+
"si de verdad hace falta ese fichero entero, dilo y que lo decida quien te lo encargó.");
|
|
87
|
+
}
|
|
88
|
+
const nombre = nombreParaTraer(real);
|
|
89
|
+
const destino = join(deps.carpeta, nombre);
|
|
90
|
+
try {
|
|
91
|
+
mkdirSync(deps.carpeta, { recursive: true });
|
|
92
|
+
if (existsSync(destino))
|
|
93
|
+
return `Ya está traído: ${RUTA_ARTEFACTOS}${nombre}`;
|
|
94
|
+
copyFileSync(real, destino);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
return `No pude copiarlo (${error instanceof Error ? error.name : "error"}).`;
|
|
98
|
+
}
|
|
99
|
+
const mime = mimeDeArtefacto(nombre);
|
|
100
|
+
deps.alEscribir?.({
|
|
101
|
+
ruta: `${RUTA_ARTEFACTOS}${nombre}`,
|
|
102
|
+
nombre,
|
|
103
|
+
...(mime === undefined ? {} : { mime }),
|
|
104
|
+
bytes,
|
|
105
|
+
});
|
|
106
|
+
return (`Copiado a ${RUTA_ARTEFACTOS}${nombre} (${bytes} bytes). Ábrelo por esa ruta. ` +
|
|
107
|
+
"Si es un `.zip`, quien tenga shell puede descomprimirlo ahí mismo.");
|
|
108
|
+
}, {
|
|
109
|
+
name: NOMBRE_TRAER,
|
|
110
|
+
description: "Copia al área de trabajo un fichero que la persona haya nombrado por su ruta " +
|
|
111
|
+
"absoluta de la máquina (/Users/..., /tmp/...). Esas rutas NO son del proyecto y no " +
|
|
112
|
+
"se pueden abrir directamente; con esto quedan en /artefactos/ y se leen desde ahí. " +
|
|
113
|
+
"Sirve también para binarios (.zip, .png), que no sobreviven a un read_file.",
|
|
114
|
+
schema: Entrada,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=traerDeLaMaquina.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traerDeLaMaquina.js","sourceRoot":"","sources":["../../../src/agent/grafo/traerDeLaMaquina.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* La guarda que mira el CONTENIDO antes de escribirlo, sobre `xone-linter`.
|
|
3
|
+
*
|
|
4
|
+
* La regla —qué se rechaza— es pura y vive en `core/validacionDeEscritura.ts`. Esto es solo el
|
|
5
|
+
* cableado: hablar con la librería y envolver el backend.
|
|
6
|
+
*
|
|
7
|
+
* **El reparto es el mismo que el de `xone_navegacion` y por el mismo motivo**: la semántica de
|
|
8
|
+
* XOne la pone `xone-linter` como LIBRERÍA —ya parsea, ya sabe qué es un tipo de prop válido, ya
|
|
9
|
+
* decodifica ISO-8859— y reescribirla aquí sería un segundo sitio donde decidir lo mismo.
|
|
10
|
+
*
|
|
11
|
+
* **Y el import es PROFUNDO**, también por lo mismo: el barril de la librería arrastra su runtime
|
|
12
|
+
* con un *top-level await* que revienta bajo `tsx`, o sea bajo el lanzador de desarrollo.
|
|
13
|
+
*/
|
|
14
|
+
import { anotarError, anotarPaso } from "../../core/trazaDeErrores.js";
|
|
15
|
+
import { motivoDelRechazo, veredictoDeEscritura, } from "../../core/validacionDeEscritura.js";
|
|
16
|
+
/**
|
|
17
|
+
* El validador de PRODUCCIÓN, sobre `xone-linter`.
|
|
18
|
+
*
|
|
19
|
+
* **Devuelve `undefined` cuando no se pudo mirar**, que no es lo mismo que «no hay hallazgos» y
|
|
20
|
+
* por eso no es una lista vacía. Quien lo lea tiene que poder distinguir «esto está limpio» de
|
|
21
|
+
* «no sé»: lo primero deja escribir porque se comprobó, lo segundo deja escribir porque un fallo
|
|
22
|
+
* del ENTORNO no puede convertirse en un veredicto sobre el trabajo del agente. Es la misma
|
|
23
|
+
* frontera que `ErrorDelSimulador` frente a un informe en rojo.
|
|
24
|
+
*/
|
|
25
|
+
export function validarConXoneLinter() {
|
|
26
|
+
return async (ruta, contenido) => {
|
|
27
|
+
// El hito envuelve la llamada ENTERA al parser: si se cuelga aquí, queda un `inicio` sin
|
|
28
|
+
// su `fin` con el nombre del fichero al lado.
|
|
29
|
+
const fin = anotarPaso("validacionXone#validar", ruta);
|
|
30
|
+
try {
|
|
31
|
+
const { validateContent, canValidate } = await import(
|
|
32
|
+
// Import PROFUNDO: el barril trae un top-level await que revienta bajo `tsx`.
|
|
33
|
+
"xone-linter/dist/validator/validateContent.js");
|
|
34
|
+
if (!canValidate(ruta))
|
|
35
|
+
return [];
|
|
36
|
+
const { result, checked } = await validateContent(ruta, contenido);
|
|
37
|
+
if (!checked)
|
|
38
|
+
return [];
|
|
39
|
+
return result.errors.map((e) => ({
|
|
40
|
+
codigo: e.code,
|
|
41
|
+
mensaje: e.message,
|
|
42
|
+
...(typeof e.location?.line === "number" ? { linea: e.location.line } : {}),
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
// No está la librería, o su parser reventó. Se DEJA ESCRIBIR: ver la cabecera. Pero
|
|
47
|
+
// ahora QUEDA ANOTADO, que es la diferencia entre un fail-open y un fallo invisible.
|
|
48
|
+
anotarError("validacionXone#validar", e);
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
fin();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Lee lo que hay hoy en esa ruta, o `undefined` si no hay nada que leer.
|
|
58
|
+
*
|
|
59
|
+
* Un fichero que no existe NO es un fallo: es el caso «fichero nuevo», donde no hay nada
|
|
60
|
+
* preexistente y todo hallazgo es de esta escritura.
|
|
61
|
+
*/
|
|
62
|
+
async function contenidoActual(backend, ruta) {
|
|
63
|
+
if (typeof backend.read !== "function")
|
|
64
|
+
return undefined;
|
|
65
|
+
try {
|
|
66
|
+
const leido = await backend.read(ruta);
|
|
67
|
+
if (typeof leido === "string")
|
|
68
|
+
return leido;
|
|
69
|
+
// Los backends de deepagents devuelven `{content}` o `{error}`.
|
|
70
|
+
const obj = leido;
|
|
71
|
+
if (obj && typeof obj === "object" && typeof obj.content === "string")
|
|
72
|
+
return obj.content;
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
anotarError("validacionXone#contenidoActual", e);
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Lo que un `edit` va a dejar en el fichero, o `undefined` si no se puede saber.
|
|
82
|
+
*
|
|
83
|
+
* **Se calcula aquí en vez de dejar escribir y mirar después**, porque mirar después obliga a
|
|
84
|
+
* deshacer, y deshacer es escribir dos veces en el proyecto del usuario — con la ventana en la
|
|
85
|
+
* que el fichero malo existe si el proceso se muere en medio.
|
|
86
|
+
*
|
|
87
|
+
* Y **cuando el reemplazo no es exacto se devuelve `undefined` y NO se juzga**: si `oldString`
|
|
88
|
+
* no aparece, o aparece varias veces sin `replaceAll`, deepagents va a rechazar el edit él
|
|
89
|
+
* mismo. Adivinar ahí sería validar un contenido que nunca va a existir.
|
|
90
|
+
*/
|
|
91
|
+
export function contenidoTrasEditar(actual, oldString, newString, replaceAll) {
|
|
92
|
+
if (replaceAll) {
|
|
93
|
+
return actual.includes(oldString) ? actual.split(oldString).join(newString) : undefined;
|
|
94
|
+
}
|
|
95
|
+
const primera = actual.indexOf(oldString);
|
|
96
|
+
if (primera === -1)
|
|
97
|
+
return undefined;
|
|
98
|
+
if (actual.indexOf(oldString, primera + oldString.length) !== -1)
|
|
99
|
+
return undefined;
|
|
100
|
+
return actual.slice(0, primera) + newString + actual.slice(primera + oldString.length);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Envuelve el backend para que un `write` o un `edit` que INTRODUZCA un problema no llegue a
|
|
104
|
+
* disco.
|
|
105
|
+
*
|
|
106
|
+
* Cuarta guarda del mismo Proxy que `sinVistasAplanadas`, `sinArtefactosEnElProyecto` y
|
|
107
|
+
* `sinDescargasEnElProyecto`, con su misma forma: **se DEVUELVE `{error}`, nunca se lanza**.
|
|
108
|
+
* deepagents devuelve ese error al modelo como resultado de la tool y puede reintentar; una
|
|
109
|
+
* excepción se lleva el turno por delante y el agente no reintenta.
|
|
110
|
+
*/
|
|
111
|
+
export function sinContenidoInvalido(backend, validar) {
|
|
112
|
+
/** Escrituras en vuelo por ruta. Ver el testigo de abajo. */
|
|
113
|
+
const enVuelo = new Map();
|
|
114
|
+
return new Proxy(backend, {
|
|
115
|
+
get(destino, prop) {
|
|
116
|
+
const valor = Reflect.get(destino, prop, destino);
|
|
117
|
+
if (typeof valor !== "function")
|
|
118
|
+
return valor;
|
|
119
|
+
if (prop !== "write" && prop !== "edit") {
|
|
120
|
+
return valor.bind(destino);
|
|
121
|
+
}
|
|
122
|
+
return async (...args) => {
|
|
123
|
+
const ruta = typeof args[0] === "string" ? args[0] : undefined;
|
|
124
|
+
/**
|
|
125
|
+
* **Dos escrituras SOLAPADAS sobre el mismo fichero pierden cambios, y no avisa nadie.**
|
|
126
|
+
*
|
|
127
|
+
* Reproducido: cuatro `edit` concurrentes sobre un fichero devuelven las cuatro
|
|
128
|
+
* «bien» y solo UNA llega al disco — cada una lee, sustituye sobre lo que leyó y
|
|
129
|
+
* escribe entero, así que la última borra a las demás. Y pasa de verdad: DeepSeek
|
|
130
|
+
* agrupa varias `edit_file` en un mismo mensaje y LangGraph las ejecuta a la vez;
|
|
131
|
+
* medido en una sesión, siete de ocho ediciones de `funciones.js` salieron en ráfaga,
|
|
132
|
+
* hasta tres en el mismo milisegundo.
|
|
133
|
+
*
|
|
134
|
+
* Esto solo lo ANOTA —no serializa nada—: es el testigo que dice si está ocurriendo y
|
|
135
|
+
* sobre qué fichero, para poder decidir el arreglo con la medida delante.
|
|
136
|
+
*/
|
|
137
|
+
if (ruta !== undefined) {
|
|
138
|
+
const yaEnVuelo = enVuelo.get(ruta) ?? 0;
|
|
139
|
+
if (yaEnVuelo > 0) {
|
|
140
|
+
anotarError("escrituraSolapada", new Error(`${String(prop)} sobre «${ruta}» con ${yaEnVuelo} escritura(s) en vuelo sobre el MISMO fichero`));
|
|
141
|
+
}
|
|
142
|
+
enVuelo.set(ruta, yaEnVuelo + 1);
|
|
143
|
+
}
|
|
144
|
+
const fin = anotarPaso(`sinContenidoInvalido#${String(prop)}`, ruta);
|
|
145
|
+
try {
|
|
146
|
+
return await guardado(...args);
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
fin();
|
|
150
|
+
if (ruta !== undefined) {
|
|
151
|
+
const quedan = (enVuelo.get(ruta) ?? 1) - 1;
|
|
152
|
+
if (quedan <= 0)
|
|
153
|
+
enVuelo.delete(ruta);
|
|
154
|
+
else
|
|
155
|
+
enVuelo.set(ruta, quedan);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
async function guardado(...args) {
|
|
160
|
+
const seguir = () => valor.apply(destino, args);
|
|
161
|
+
const ruta = args[0];
|
|
162
|
+
if (typeof ruta !== "string")
|
|
163
|
+
return seguir();
|
|
164
|
+
const antesTexto = await contenidoActual(destino, ruta);
|
|
165
|
+
let nuevo;
|
|
166
|
+
if (prop === "write") {
|
|
167
|
+
nuevo = typeof args[1] === "string" ? args[1] : undefined;
|
|
168
|
+
}
|
|
169
|
+
else if (typeof antesTexto === "string" && typeof args[1] === "string" && typeof args[2] === "string") {
|
|
170
|
+
nuevo = contenidoTrasEditar(antesTexto, args[1], args[2], args[3] === true);
|
|
171
|
+
}
|
|
172
|
+
if (nuevo === undefined)
|
|
173
|
+
return seguir();
|
|
174
|
+
const despues = await validar(ruta, nuevo);
|
|
175
|
+
// No se pudo mirar: se deja escribir. Un fallo del entorno no es un veredicto.
|
|
176
|
+
if (despues === undefined)
|
|
177
|
+
return seguir();
|
|
178
|
+
const antes = antesTexto === undefined ? undefined : await validar(ruta, antesTexto);
|
|
179
|
+
const { introducidos } = veredictoDeEscritura(antes, despues);
|
|
180
|
+
if (introducidos.length === 0)
|
|
181
|
+
return seguir();
|
|
182
|
+
/**
|
|
183
|
+
* **Un rechazo se ANOTA, y no es higiene.**
|
|
184
|
+
*
|
|
185
|
+
* Devolver `{error}` es correcto —el modelo reintenta— pero deja el rechazo INVISIBLE:
|
|
186
|
+
* el `anotarPaso` de arriba cierra igual, así que en la traza una escritura aceptada y
|
|
187
|
+
* una rechazada se leen exactamente igual. Y un rechazo cuesta un viaje entero con todo
|
|
188
|
+
* el contexto detrás, o sea que es justo lo que hay que poder contar cuando un turno se
|
|
189
|
+
* dispara de precio. Se preguntó y el instrumento no sabía contestar.
|
|
190
|
+
*
|
|
191
|
+
* Va el CÓDIGO del hallazgo y la ruta, nunca el contenido ni el mensaje —que lleva el
|
|
192
|
+
* fragmento de código dentro—, la misma regla que `resumenDeTool.ts`.
|
|
193
|
+
*/
|
|
194
|
+
anotarError("sinContenidoInvalido#rechazo", new Error(`${String(prop)} sobre «${ruta}» rechazada: ${introducidos.length} hallazgo(s) [${[...new Set(introducidos.map((h) => h.codigo))].join(", ")}]`));
|
|
195
|
+
return { error: motivoDelRechazo(ruta, introducidos) };
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
//# 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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"}
|