xonecode 0.8.38 → 0.8.41
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-Bm4ur93-.js → index-CRMWzgzk.js} +71 -71
- package/apps/web/dist/assets/index-CwAAn-xT.css +1 -0
- package/apps/web/dist/assets/{php-D2qE525B.js → php-BoJQNWIY.js} +1 -1
- package/apps/web/dist/assets/{ruby-SvGm1EAa.js → ruby-B8zkIfgk.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/dist/agent/config/selectorEnMaquina.js +15 -2
- package/dist/agent/config/selectorEnMaquina.js.map +1 -1
- package/dist/agent/dispositivos/descargaDeHerramientas.js +202 -0
- package/dist/agent/dispositivos/descargaDeHerramientas.js.map +1 -0
- package/dist/agent/dispositivos/dispositivosEnMaquina.js +102 -19
- package/dist/agent/dispositivos/dispositivosEnMaquina.js.map +1 -1
- package/dist/agent/dispositivos/instalacionEnMaquina.js +138 -16
- package/dist/agent/dispositivos/instalacionEnMaquina.js.map +1 -1
- package/dist/agent/dispositivos/procesosEnMaquina.js +22 -1
- package/dist/agent/dispositivos/procesosEnMaquina.js.map +1 -1
- package/dist/agent/turno/puente.js +13 -0
- package/dist/agent/turno/puente.js.map +1 -1
- package/dist/agent/turno/registroDeFallos.js +7 -0
- package/dist/agent/turno/registroDeFallos.js.map +1 -1
- package/dist/agent/turno/resumenDeContexto.js +113 -2
- package/dist/agent/turno/resumenDeContexto.js.map +1 -1
- package/dist/agent/turno/turnoReal.js +2 -2
- package/dist/agent/turno/turnoReal.js.map +1 -1
- package/dist/core/dispositivos.js +126 -6
- package/dist/core/dispositivos.js.map +1 -1
- package/dist/core/selectorDeCarpeta.js +27 -0
- package/dist/core/selectorDeCarpeta.js.map +1 -1
- package/dist/core/settings.js +13 -7
- package/dist/core/settings.js.map +1 -1
- package/dist/core/turno.js +10 -0
- package/dist/core/turno.js.map +1 -1
- package/dist/core/zipDeSkill.js +9 -2
- package/dist/core/zipDeSkill.js.map +1 -1
- package/dist/web/servidor/arranque.js +47 -6
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/pielWeb.js +34 -0
- package/dist/web/servidor/pielWeb.js.map +1 -1
- package/dist/web/servidor/transporte.js.map +1 -1
- package/package.json +1 -1
- package/apps/web/dist/assets/index-F-tnEn80.css +0 -1
|
@@ -52,8 +52,9 @@
|
|
|
52
52
|
import { join } from "node:path";
|
|
53
53
|
import { existsSync } from "node:fs";
|
|
54
54
|
import { homedir } from "node:os";
|
|
55
|
-
import { jdkDeLaMaquina, localizadorDeAndroid } from "./dispositivosEnMaquina.js";
|
|
55
|
+
import { jdkDeLaMaquina, localizadorDeAndroid, pathConCarpetas, unirRuta } from "./dispositivosEnMaquina.js";
|
|
56
56
|
import { crearEjecutor, lanzarReal, TOPE_DE_TRABAJO_MS, TOPE_SIN_SALIDA_MS, } from "./procesosEnMaquina.js";
|
|
57
|
+
import { descargarYDescomprimir } from "./descargaDeHerramientas.js";
|
|
57
58
|
/**
|
|
58
59
|
* Y esto se REEXPORTA: lo que este módulo exportaba antes de que existiera el ejecutor
|
|
59
60
|
* compartido lo sigue exportando, pero ahora hay UNA sola copia —el `spawn` con `detached`, los
|
|
@@ -62,11 +63,18 @@ import { crearEjecutor, lanzarReal, TOPE_DE_TRABAJO_MS, TOPE_SIN_SALIDA_MS, } fr
|
|
|
62
63
|
* podía dejar de estar.
|
|
63
64
|
*/
|
|
64
65
|
export { lanzarReal, TOPE_DE_TRABAJO_MS, TOPE_SIN_SALIDA_MS };
|
|
65
|
-
/** El paquete de la imagen del sistema, el mismo que nombra la receta. */
|
|
66
|
-
const
|
|
66
|
+
/** El paquete de la imagen del sistema en macOS, el mismo que nombra la receta. */
|
|
67
|
+
const IMAGEN_DARWIN = "system-images;android-35;google_apis;arm64-v8a";
|
|
68
|
+
/** Y en Windows: el caso común es x86_64, no Apple Silicon. Mismo motivo que en `core/dispositivos.ts`. */
|
|
69
|
+
const IMAGEN_WIN32 = "system-images;android-35;google_apis;x86_64";
|
|
67
70
|
/**
|
|
68
|
-
* Los pasos que xonecode lanza él. Tabla CERRADA y por `receta:paso`: lo que
|
|
69
|
-
* cliente es un número, y un número que no esté aquí no lanza nada.
|
|
71
|
+
* Los pasos que xonecode lanza él. Tabla CERRADA y por `receta:plataforma:paso`: lo que
|
|
72
|
+
* llega del cliente es un número, y un número que no esté aquí no lanza nada.
|
|
73
|
+
*
|
|
74
|
+
* **La PLATAFORMA es parte de la clave**, y no un detalle: los pasos 1-3 de Windows
|
|
75
|
+
* (descargas) y los 1-3 de macOS (Homebrew) son acciones completamente distintas bajo el
|
|
76
|
+
* MISMO número — sin la plataforma en la clave, la entrada de una pisaría a la otra en este
|
|
77
|
+
* mapa, o habría que inventar números que no significan nada en la receta que se enseña.
|
|
70
78
|
*
|
|
71
79
|
* Tiene que coincidir con lo que `core/dispositivos.ts` marca `ejecutable` — un paso con
|
|
72
80
|
* botón que no esté aquí es un botón muerto, y uno lanzable sin botón es una capacidad que
|
|
@@ -74,8 +82,9 @@ const IMAGEN = "system-images;android-35;google_apis;arm64-v8a";
|
|
|
74
82
|
*/
|
|
75
83
|
export const PASOS_EJECUTABLES = new Map([
|
|
76
84
|
[
|
|
77
|
-
"android-emulador:1",
|
|
85
|
+
"android-emulador:darwin:1",
|
|
78
86
|
{
|
|
87
|
+
tipo: "proceso",
|
|
79
88
|
binario: "brew",
|
|
80
89
|
// Es el paso que INSTALA el SDK: exigirlo aquí era el círculo que lo dejaba sin botón.
|
|
81
90
|
conSdk: false,
|
|
@@ -93,8 +102,9 @@ export const PASOS_EJECUTABLES = new Map([
|
|
|
93
102
|
// El 2 desde que los `export` de la shell dejaron de ser un paso: la tabla va por NÚMERO,
|
|
94
103
|
// así que renumerar la receta es renumerar esto — y el test que compara las dos listas
|
|
95
104
|
// en las dos direcciones es lo que hace que no se pueda quedar descolgada en silencio.
|
|
96
|
-
"android-emulador:2",
|
|
105
|
+
"android-emulador:darwin:2",
|
|
97
106
|
{
|
|
107
|
+
tipo: "proceso",
|
|
98
108
|
binario: "sdkmanager",
|
|
99
109
|
conSdk: true,
|
|
100
110
|
subcarpeta: join("cmdline-tools", "latest", "bin"),
|
|
@@ -116,7 +126,7 @@ export const PASOS_EJECUTABLES = new Map([
|
|
|
116
126
|
// esta es la copia que se LANZA, y por eso hay un test que compara las dos: la lista
|
|
117
127
|
// de paquetes está escrita dos veces y sin él podrían divergir en silencio, con el
|
|
118
128
|
// botón instalando una cosa y la ventana enseñando otra.
|
|
119
|
-
args: ["--install", "platform-tools", "emulator", "platforms;android-35",
|
|
129
|
+
args: ["--install", "platform-tools", "emulator", "platforms;android-35", IMAGEN_DARWIN],
|
|
120
130
|
teclear: [],
|
|
121
131
|
},
|
|
122
132
|
],
|
|
@@ -124,14 +134,90 @@ export const PASOS_EJECUTABLES = new Map([
|
|
|
124
134
|
},
|
|
125
135
|
],
|
|
126
136
|
[
|
|
127
|
-
"android-emulador:3",
|
|
137
|
+
"android-emulador:darwin:3",
|
|
128
138
|
{
|
|
139
|
+
tipo: "proceso",
|
|
129
140
|
binario: "avdmanager",
|
|
130
141
|
conSdk: true,
|
|
131
142
|
subcarpeta: join("cmdline-tools", "latest", "bin"),
|
|
132
143
|
invocaciones: [
|
|
133
144
|
// «Do you wish to create a custom hardware profile? [no]»: sin respuesta, cuelga.
|
|
134
|
-
{ args: ["create", "avd", "-n", "pixel8", "-k",
|
|
145
|
+
{ args: ["create", "avd", "-n", "pixel8", "-k", IMAGEN_DARWIN, "-d", "pixel_8"], teclear: ["no\n"] },
|
|
146
|
+
],
|
|
147
|
+
titulo: "Creando el dispositivo virtual",
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
[
|
|
151
|
+
"android-emulador:win32:1",
|
|
152
|
+
{
|
|
153
|
+
tipo: "descarga",
|
|
154
|
+
url: "https://dl.google.com/android/repository/platform-tools-latest-windows.zip",
|
|
155
|
+
// El zip ya trae `platform-tools/` como carpeta de primer nivel: cae DIRECTO bajo el
|
|
156
|
+
// SDK, sin renombrar nada — a diferencia de los dos pasos siguientes.
|
|
157
|
+
destinoBajoLocalAppData: ["Android", "Sdk"],
|
|
158
|
+
titulo: "Descargando adb (platform-tools)",
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
[
|
|
162
|
+
"android-emulador:win32:2",
|
|
163
|
+
{
|
|
164
|
+
tipo: "descarga",
|
|
165
|
+
url: "https://api.adoptium.net/v3/binary/latest/17/ga/windows/x64/jdk/hotspot/normal/eclipse",
|
|
166
|
+
destinoBajoLocalAppData: ["Android"],
|
|
167
|
+
// El zip de Adoptium trae UNA carpeta con la versión en el nombre (`jdk-17.0.20.1+1`),
|
|
168
|
+
// que cambia en cada build: se renombra a una ruta FIJA para que la detección
|
|
169
|
+
// (`dispositivosEnMaquina.ts#jdkDeLaMaquina`) compruebe un sitio conocido.
|
|
170
|
+
renombrarCarpetaUnicaA: "jdk17",
|
|
171
|
+
titulo: "Descargando el JDK",
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
[
|
|
175
|
+
"android-emulador:win32:3",
|
|
176
|
+
{
|
|
177
|
+
tipo: "descarga",
|
|
178
|
+
url: "https://dl.google.com/android/repository/commandlinetools-win-15859902_latest.zip",
|
|
179
|
+
destinoBajoLocalAppData: ["Android", "Sdk", "cmdline-tools"],
|
|
180
|
+
// El zip trae una carpeta `cmdline-tools/` de primer nivel; Google exige que su
|
|
181
|
+
// contenido viva bajo `…/cmdline-tools/latest/`, o `sdkmanager` no se reconoce a sí
|
|
182
|
+
// mismo. Mismo mecanismo que el JDK: se renombra AL escribir, sin un paso aparte.
|
|
183
|
+
renombrarCarpetaUnicaA: "latest",
|
|
184
|
+
titulo: "Descargando las herramientas del SDK",
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
[
|
|
188
|
+
"android-emulador:win32:4",
|
|
189
|
+
{
|
|
190
|
+
tipo: "proceso",
|
|
191
|
+
binario: "sdkmanager",
|
|
192
|
+
conSdk: true,
|
|
193
|
+
subcarpeta: join("cmdline-tools", "latest", "bin"),
|
|
194
|
+
invocaciones: [
|
|
195
|
+
{
|
|
196
|
+
args: ["--licenses"],
|
|
197
|
+
teclear: ["y\n"],
|
|
198
|
+
repetir: 100,
|
|
199
|
+
opcional: true,
|
|
200
|
+
anuncio: "Aceptando las licencias del SDK de Android (lo pediste al pulsar).",
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
// Misma lista de paquetes que en macOS, con la imagen de Windows: ver el
|
|
204
|
+
// comentario del paso equivalente de macOS, arriba.
|
|
205
|
+
args: ["--install", "platform-tools", "emulator", "platforms;android-35", IMAGEN_WIN32],
|
|
206
|
+
teclear: [],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
titulo: "Descargando el emulador y la imagen del sistema",
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
[
|
|
213
|
+
"android-emulador:win32:5",
|
|
214
|
+
{
|
|
215
|
+
tipo: "proceso",
|
|
216
|
+
binario: "avdmanager",
|
|
217
|
+
conSdk: true,
|
|
218
|
+
subcarpeta: join("cmdline-tools", "latest", "bin"),
|
|
219
|
+
invocaciones: [
|
|
220
|
+
{ args: ["create", "avd", "-n", "pixel8", "-k", IMAGEN_WIN32, "-d", "pixel_8"], teclear: ["no\n"] },
|
|
135
221
|
],
|
|
136
222
|
titulo: "Creando el dispositivo virtual",
|
|
137
223
|
},
|
|
@@ -153,7 +239,7 @@ export function correrPasoDeReceta(receta, numero, deps = {}) {
|
|
|
153
239
|
const ahora = deps.ahora ?? (() => Date.now());
|
|
154
240
|
const t0 = ahora();
|
|
155
241
|
const decir = (linea) => deps.alSalirLinea?.(linea);
|
|
156
|
-
const paso = PASOS_EJECUTABLES.get(`${receta}:${numero}`);
|
|
242
|
+
const paso = PASOS_EJECUTABLES.get(`${receta}:${plataforma}:${numero}`);
|
|
157
243
|
if (paso === undefined) {
|
|
158
244
|
return {
|
|
159
245
|
titulo: "",
|
|
@@ -161,6 +247,33 @@ export function correrPasoDeReceta(receta, numero, deps = {}) {
|
|
|
161
247
|
terminado: Promise.resolve({ estado: "fallo", motivo: "ese paso no se lanza desde aquí", ms: 0 }),
|
|
162
248
|
};
|
|
163
249
|
}
|
|
250
|
+
// La DESCARGA es un camino aparte y mucho más corto: no hay binario que resolver ni SDK que
|
|
251
|
+
// exigir, solo dónde cae. `descargaDeHerramientas.ts` ya devuelve el MISMO vocabulario
|
|
252
|
+
// (`"ok"|"fallo"|"cancelada"|"colgada"`), así que de aquí para afuera esto es indistinguible
|
|
253
|
+
// de un paso de proceso — ni el cable ni `Receta.tsx` se enteran de que detrás hay un
|
|
254
|
+
// `fetch` y no un `spawn`.
|
|
255
|
+
if (paso.tipo === "descarga") {
|
|
256
|
+
if (entorno.LOCALAPPDATA === undefined) {
|
|
257
|
+
return {
|
|
258
|
+
titulo: paso.titulo,
|
|
259
|
+
cancelar: () => { },
|
|
260
|
+
terminado: Promise.resolve({
|
|
261
|
+
estado: "fallo",
|
|
262
|
+
motivo: "falta %LOCALAPPDATA%: no se sabe dónde descargar",
|
|
263
|
+
ms: ahora() - t0,
|
|
264
|
+
}),
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
const destino = join(entorno.LOCALAPPDATA, ...paso.destinoBajoLocalAppData);
|
|
268
|
+
const descarga = descargarYDescomprimir(paso.url, destino, paso.renombrarCarpetaUnicaA === undefined ? {} : { renombrarCarpetaUnicaA: paso.renombrarCarpetaUnicaA }, {
|
|
269
|
+
alSalirLinea: decir,
|
|
270
|
+
ahora,
|
|
271
|
+
...(deps.fetch === undefined ? {} : { fetch: deps.fetch }),
|
|
272
|
+
...(deps.crearCarpeta === undefined ? {} : { crearCarpeta: deps.crearCarpeta }),
|
|
273
|
+
...(deps.escribir === undefined ? {} : { escribir: deps.escribir }),
|
|
274
|
+
});
|
|
275
|
+
return { titulo: paso.titulo, cancelar: descarga.cancelar, terminado: descarga.terminado };
|
|
276
|
+
}
|
|
164
277
|
const { enPath, enSdk, raicesDeSdk } = localizadorDeAndroid({ plataforma, entorno, home, existe });
|
|
165
278
|
const fallar = (motivo) => ({
|
|
166
279
|
titulo: paso.titulo,
|
|
@@ -175,18 +288,27 @@ export function correrPasoDeReceta(receta, numero, deps = {}) {
|
|
|
175
288
|
if (paso.conSdk) {
|
|
176
289
|
binario = enSdk(paso.binario, paso.subcarpeta ?? "");
|
|
177
290
|
const sdk = raicesDeSdk.find((raiz) => existe(raiz));
|
|
178
|
-
const jdk = jdkDeLaMaquina(entorno, existe);
|
|
291
|
+
const jdk = jdkDeLaMaquina(entorno, existe, plataforma);
|
|
179
292
|
if (binario === undefined || sdk === undefined || jdk === undefined) {
|
|
180
|
-
// Se dice QUÉ falta y dónde se arregla, no «no se pudo
|
|
181
|
-
|
|
182
|
-
|
|
293
|
+
// Se dice QUÉ falta y dónde se arregla, no «no se pudo». En macOS el paso 1 instala
|
|
294
|
+
// las DOS cosas de un tirón (Homebrew); en Windows son pasos distintos —el 2 el JDK,
|
|
295
|
+
// el 3 las cmdline-tools—, así que el número que se dice depende de QUÉ falta y de la
|
|
296
|
+
// plataforma, no de una frase fija.
|
|
297
|
+
const faltaElSdk = binario === undefined || sdk === undefined;
|
|
298
|
+
const que = faltaElSdk ? "el SDK de línea de comandos" : "el JDK";
|
|
299
|
+
const paso = plataforma === "win32" ? (faltaElSdk ? "el paso 3" : "el paso 2") : "el paso 1";
|
|
300
|
+
return fallar(`falta ${que}: hazlo con ${paso} y vuelve a mirar`);
|
|
183
301
|
}
|
|
302
|
+
// Con el separador y el NOMBRE de variable de la plataforma: con `:` a mano, en Windows
|
|
303
|
+
// las dos carpetas se pegaban a la última del `Path` y `avdmanager` no encontraba a
|
|
304
|
+
// `sdkmanager` aunque el SDK estuviera entero.
|
|
305
|
+
const path = pathConCarpetas(entorno, [unirRuta(plataforma, sdk, "emulator"), unirRuta(plataforma, sdk, "platform-tools")], plataforma);
|
|
184
306
|
env = {
|
|
185
307
|
...env,
|
|
186
308
|
ANDROID_HOME: sdk,
|
|
187
309
|
ANDROID_SDK_ROOT: sdk,
|
|
188
310
|
JAVA_HOME: jdk,
|
|
189
|
-
|
|
311
|
+
[path.nombre]: path.valor,
|
|
190
312
|
};
|
|
191
313
|
}
|
|
192
314
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instalacionEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/instalacionEnMaquina.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"instalacionEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/instalacionEnMaquina.ts"],"names":[],"mappings":"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"}
|
|
@@ -185,6 +185,19 @@ export function unaLinea(error) {
|
|
|
185
185
|
export function motivoDelCodigo(codigo, ultima) {
|
|
186
186
|
return ultima === "" ? `terminó con código ${codigo}` : ultima;
|
|
187
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* `sdkmanager`/`avdmanager` son `.bat` en Windows (`localizadorDeAndroid` ya lo sabe, ver
|
|
190
|
+
* `extensionDeBinario`), y desde que Node cerró el CVE-2024-27980 —la inyección de comandos
|
|
191
|
+
* por `.bat`/`.cmd`— un `spawn` a secas sobre uno de estos revienta con `spawn EINVAL` en
|
|
192
|
+
* vez de arrancar: medido en la máquina del usuario, «No salió bien: spawn EINVAL» al pulsar
|
|
193
|
+
* el paso 4 de la receta de Windows. La forma sancionada por Node de arreglarlo es `shell:
|
|
194
|
+
* true`, y aquí es seguro dárselo —a diferencia del caso general que el CVE cerraba—: los
|
|
195
|
+
* `args` de estos dos binarios NUNCA llevan nada que no sea un literal de nuestra propia
|
|
196
|
+
* tabla (`PASOS_EJECUTABLES`), nunca una cadena que haya escrito un usuario.
|
|
197
|
+
*/
|
|
198
|
+
export function necesitaShell(binario, plataforma = process.platform) {
|
|
199
|
+
return plataforma === "win32" && /\.(bat|cmd)$/i.test(binario);
|
|
200
|
+
}
|
|
188
201
|
/**
|
|
189
202
|
* El hijo de verdad. Dos decisiones, las dos medidas:
|
|
190
203
|
*
|
|
@@ -194,11 +207,19 @@ export function motivoDelCodigo(codigo, ultima) {
|
|
|
194
207
|
* Lo que hace que un `sudo` de dentro no cuelgue no es cerrar `stdin`: es no tener
|
|
195
208
|
* terminal de CONTROL, que es de donde `sudo` lee la contraseña — y con `detached` no lo
|
|
196
209
|
* tiene ni por herencia.
|
|
210
|
+
* - **`shell: true` SOLO para `.bat`/`.cmd`** (`necesitaShell`, arriba): para `adb`/`emulator`
|
|
211
|
+
* y para `brew` —los binarios que lanza el resto de este módulo, incluido el lanzamiento en
|
|
212
|
+
* el dispositivo— nada cambia, exactamente el mismo `spawn` de siempre.
|
|
197
213
|
*
|
|
198
214
|
* Es el valor POR OMISIÓN de `crearEjecutor`, y el único `spawn` de los dos módulos: la receta
|
|
199
215
|
* de instalación y el `adb` del lanzamiento necesitan exactamente estas dos cosas por los
|
|
200
216
|
* mismos motivos, y un segundo `spawn` sería un segundo sitio donde el `detached` puede dejar
|
|
201
217
|
* de estar —y ese día el `kill(-pid)` de un sitio mataría a un grupo que no existe—.
|
|
202
218
|
*/
|
|
203
|
-
export const lanzarReal = (binario, args, opciones) => spawn(binario, args, {
|
|
219
|
+
export const lanzarReal = (binario, args, opciones) => spawn(binario, args, {
|
|
220
|
+
env: opciones.env,
|
|
221
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
222
|
+
detached: true,
|
|
223
|
+
...(necesitaShell(binario) ? { shell: true } : {}),
|
|
224
|
+
});
|
|
204
225
|
//# sourceMappingURL=procesosEnMaquina.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procesosEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/procesosEnMaquina.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"procesosEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/procesosEnMaquina.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { normalizar } from "./normalizar.js";
|
|
|
2
2
|
import { Mensajes } from "./mensajes.js";
|
|
3
3
|
import { detalleDe, parametrosDe } from "./resumenDeTool.js";
|
|
4
4
|
import { aTexto, esMensajeDeTool } from "./textoDeTool.js";
|
|
5
|
+
import { ETIQUETA_DEL_RESUMEN } from "./resumenDeContexto.js";
|
|
5
6
|
/** El texto de un mensaje, venga como venga. */
|
|
6
7
|
export function textoDe(msg) {
|
|
7
8
|
if (!msg || typeof msg !== "object")
|
|
@@ -307,6 +308,18 @@ export async function* aEventos(stream, pendientes, alLlamarTool, memoriaDelTurn
|
|
|
307
308
|
const texto = textoDe(msg);
|
|
308
309
|
const id = msg?.id;
|
|
309
310
|
const idTexto = typeof id === "string" ? id : undefined;
|
|
311
|
+
/**
|
|
312
|
+
* **El RESUMEN de contexto tampoco es la respuesta**, y llega por aquí con el mismo
|
|
313
|
+
* namespace y el mismo nodo: lo único que lo distingue es la ETIQUETA que le pone
|
|
314
|
+
* `resumenConEncargo` a esa llamada. Sin esto se pintaba en el chat y se guardaba como
|
|
315
|
+
* un mensaje del asistente. Va ANTES de `mensajes.trozo`, que cuenta solo la respuesta.
|
|
316
|
+
*/
|
|
317
|
+
const meta = chunk.dato[1];
|
|
318
|
+
if (Array.isArray(meta?.tags) && meta.tags.includes(ETIQUETA_DEL_RESUMEN)) {
|
|
319
|
+
if (texto !== "")
|
|
320
|
+
yield { tipo: "resumen", texto, ...(idTexto === undefined ? {} : { msgId: idTexto }) };
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
310
323
|
// El razonamiento sale por su propio evento y NO pasa por `Mensajes`: ese contador
|
|
311
324
|
// decide qué trozos de la RESPUESTA se pintan (dedupe de reintentos), y contar el
|
|
312
325
|
// pensamiento ahí desalinearía esa cuenta.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puente.js","sourceRoot":"","sources":["../../../src/agent/turno/puente.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"puente.js","sourceRoot":"","sources":["../../../src/agent/turno/puente.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,13 @@ import { appendFileSync, mkdirSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { falloLegible, registroDeFallo } from "../../core/fallos.js";
|
|
4
4
|
export const NOMBRE_REGISTRO_DE_FALLOS = "fallos.jsonl";
|
|
5
|
+
/**
|
|
6
|
+
* Cómo se NOMBRA el registro ante quien acaba de ver el error: relativo a la raíz del
|
|
7
|
+
* proyecto. La ruta absoluta lleva el nombre de la cuenta del sistema y viajaba por el cable
|
|
8
|
+
* dentro del aviso («Queda apuntado en /Users/…»), y ninguna ruta de la máquina viaja por
|
|
9
|
+
* ahí; además era la línea que, sin partir, sacaba la barra de scroll horizontal del chat.
|
|
10
|
+
*/
|
|
11
|
+
export const RUTA_VISIBLE_DE_FALLOS = `.xonecode/${NOMBRE_REGISTRO_DE_FALLOS}`;
|
|
5
12
|
/** Dónde queda, para poder decírselo a quien acaba de ver el error. */
|
|
6
13
|
export function rutaDeFallos(raiz) {
|
|
7
14
|
return join(raiz, ".xonecode", NOMBRE_REGISTRO_DE_FALLOS);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registroDeFallos.js","sourceRoot":"","sources":["../../../src/agent/turno/registroDeFallos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAE3F,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAExD,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,yBAAyB,CAAC,CAAC;AAC5D,CAAC;AAYD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,QAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,kFAAkF;gBAClF,6DAA6D;gBAC7D,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;gBACjF,0DAA0D;gBAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"registroDeFallos.js","sourceRoot":"","sources":["../../../src/agent/turno/registroDeFallos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAE3F,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,yBAAyB,EAAE,CAAC;AAE/E,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,yBAAyB,CAAC,CAAC;AAC5D,CAAC;AAYD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO;QACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,IAAI,QAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,kFAAkF;gBAClF,6DAA6D;gBAC7D,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,cAAc,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;gBACjF,0DAA0D;gBAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -13,9 +13,32 @@ import { mensajeDeTopeAgotado } from "../../core/topeAgotado.js";
|
|
|
13
13
|
import { RUTA_HISTORIAL_RESUMIDO } from "../grafo/memoriaDeProyecto.js";
|
|
14
14
|
export const UMBRAL_RESUMEN_TOKENS = 32_000;
|
|
15
15
|
export const CONTEXTO_RECIENTE_TOKENS = 8_000;
|
|
16
|
+
/**
|
|
17
|
+
* El prompt del resumen, en CASTELLANO y pidiendo markdown.
|
|
18
|
+
*
|
|
19
|
+
* El de deepagents está en inglés, y el resumen no es un texto interno: se le enseña a la
|
|
20
|
+
* persona en su propio plegable («Resumen del contexto», ver `ETIQUETA_DEL_RESUMEN`). Medido en
|
|
21
|
+
* MyAllXOne: salía un `## Summary` / `**Task:**` / `Key facts established:` en mitad de una
|
|
22
|
+
* conversación en castellano. `{conversation}` es el hueco que la librería rellena.
|
|
23
|
+
*
|
|
24
|
+
* Lo que NO se le pide aquí es que conserve el encargo: eso lo hace el CÓDIGO
|
|
25
|
+
* (`conservarElEncargo`), porque un resumen que a veces lo pierde ya costó millones de tokens.
|
|
26
|
+
*/
|
|
27
|
+
export const PROMPT_DEL_RESUMEN = `Eres el encargado de resumir una conversación de trabajo sobre una aplicación XOne para que el agente pueda seguir sin releerla. Escribe EN CASTELLANO y en markdown legible (títulos cortos y listas), y recoge:
|
|
28
|
+
1. Qué se está haciendo y para qué.
|
|
29
|
+
2. Los hechos ya comprobados, con fichero y línea cuando los haya.
|
|
30
|
+
3. Las decisiones tomadas y lo que queda pendiente.
|
|
31
|
+
|
|
32
|
+
Sé concreto y breve. No inventes nada que no esté en la conversación.
|
|
33
|
+
|
|
34
|
+
Conversación a resumir:
|
|
35
|
+
{conversation}
|
|
36
|
+
|
|
37
|
+
Resumen:`;
|
|
16
38
|
export function resumenDeContexto(backend) {
|
|
17
39
|
return createSummarizationMiddleware({
|
|
18
40
|
backend,
|
|
41
|
+
summaryPrompt: PROMPT_DEL_RESUMEN,
|
|
19
42
|
trigger: { type: "tokens", value: UMBRAL_RESUMEN_TOKENS },
|
|
20
43
|
keep: { type: "tokens", value: CONTEXTO_RECIENTE_TOKENS },
|
|
21
44
|
// Las tools de fichero pueden llevar contenido grande. Los argumentos antiguos ya
|
|
@@ -112,7 +135,74 @@ function textoPlano(msg) {
|
|
|
112
135
|
* en un cierre que los tests doblan, y que puede dejar de estar montada con todo en verde.
|
|
113
136
|
*/
|
|
114
137
|
export function resumenConEncargo(backend) {
|
|
115
|
-
|
|
138
|
+
const { fuera, dentro } = etiquetarElResumen();
|
|
139
|
+
return [fuera, resumenDeContexto(backend), dentro, conservarElEncargo()];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* La marca que distingue, en el stream, la llamada del RESUMEN de la respuesta del agente.
|
|
143
|
+
*
|
|
144
|
+
* deepagents resume llamando al MISMO modelo del agente (`request.model`, que gana sobre el
|
|
145
|
+
* `model` de sus opciones) dentro del MISMO nodo, así que sus chunks llegaban al puente con el
|
|
146
|
+
* mismo namespace, el mismo nodo y ninguna etiqueta: indistinguibles de la respuesta. El puente
|
|
147
|
+
* los pintaba en el chat y el `.jsonl` los guardaba como un mensaje del asistente — medido en
|
|
148
|
+
* MyAllXOne, un `## Summary` en inglés a mitad de la conversación.
|
|
149
|
+
*
|
|
150
|
+
* Con la etiqueta, el puente los saca de la respuesta y los manda a su propio acto (`resumen`),
|
|
151
|
+
* que el cliente pliega como «Verificaciones» o «Permisos». Una ETIQUETA y no una heurística
|
|
152
|
+
* sobre el texto por la regla de siempre: la clase viaja como dato.
|
|
153
|
+
*/
|
|
154
|
+
export const ETIQUETA_DEL_RESUMEN = "xonecode:resumen";
|
|
155
|
+
/**
|
|
156
|
+
* Los dos envoltorios que ponen la etiqueta SOLO en la llamada del resumen.
|
|
157
|
+
*
|
|
158
|
+
* `fuera` va delante del middleware de resumen y le cambia el modelo por uno que etiqueta cada
|
|
159
|
+
* `invoke`; `dentro` va detrás y devuelve el ORIGINAL antes de la llamada de verdad. Así solo
|
|
160
|
+
* lo que el resumen invoque entre medias lleva la marca. Contra la librería real se prueban
|
|
161
|
+
* los dos sentidos: sin `fuera`, el resumen vuelve al chat (el mutante tumba el test).
|
|
162
|
+
*
|
|
163
|
+
* **`dentro` es la SEGUNDA llave, y hay que saberlo**: hoy la llamada real pasa por
|
|
164
|
+
* `bindTools`, que el Proxy delega al ORIGINAL, así que la respuesta sale sin marca aunque
|
|
165
|
+
* `dentro` faltara — medido, su mutante no muere. Se queda porque el fallo que evita es el
|
|
166
|
+
* caro (la RESPUESTA entera al plegable y el chat mudo) y basta con que un agente invoque el
|
|
167
|
+
* modelo sin `bindTools` para que fuera la única.
|
|
168
|
+
*
|
|
169
|
+
* El Proxy lee contra el OBJETIVO (`Reflect.get(o, p, o)`), por la trampa del getter sobre
|
|
170
|
+
* campo privado. **Límite declarado**: solo se etiqueta `invoke`, que es lo que la librería
|
|
171
|
+
* usa hoy para resumir; si un día resume con `stream`, el resumen vuelve al chat — el test
|
|
172
|
+
* contra la librería real es el aviso.
|
|
173
|
+
*/
|
|
174
|
+
function etiquetarElResumen() {
|
|
175
|
+
const originales = new WeakMap();
|
|
176
|
+
const fuera = createMiddleware({
|
|
177
|
+
name: "EtiquetaDelResumenMiddleware",
|
|
178
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
179
|
+
wrapModelCall: (request, handler) => {
|
|
180
|
+
const modelo = request?.model;
|
|
181
|
+
if (modelo === null || typeof modelo !== "object")
|
|
182
|
+
return handler(request);
|
|
183
|
+
const etiquetado = new Proxy(modelo, {
|
|
184
|
+
get(objetivo, propiedad) {
|
|
185
|
+
if (propiedad === "invoke") {
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
187
|
+
return (entrada, config) => objetivo.invoke(entrada, { ...(config ?? {}), tags: [...(config?.tags ?? []), ETIQUETA_DEL_RESUMEN] });
|
|
188
|
+
}
|
|
189
|
+
const valor = Reflect.get(objetivo, propiedad, objetivo);
|
|
190
|
+
return typeof valor === "function" ? valor.bind(objetivo) : valor;
|
|
191
|
+
},
|
|
192
|
+
});
|
|
193
|
+
originales.set(etiquetado, modelo);
|
|
194
|
+
return handler({ ...request, model: etiquetado });
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
const dentro = createMiddleware({
|
|
198
|
+
name: "SinEtiquetaDelResumenMiddleware",
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
|
+
wrapModelCall: (request, handler) => {
|
|
201
|
+
const original = request?.model === null || typeof request?.model !== "object" ? undefined : originales.get(request.model);
|
|
202
|
+
return handler(original === undefined ? request : { ...request, model: original });
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
return { fuera, dentro };
|
|
116
206
|
}
|
|
117
207
|
/**
|
|
118
208
|
* Cuántas llamadas al modelo puede gastar UN especialista en un encargo.
|
|
@@ -282,8 +372,29 @@ function ultimoTextoSustancial(mensajes) {
|
|
|
282
372
|
* bucle: cada llamada reenvía todo lo anterior, así que esto sigue siendo cuadrático y sigue
|
|
283
373
|
* habiendo techo. El número nuevo cubre un reconocimiento completo más la escritura del
|
|
284
374
|
* entregable y se queda por debajo del orquestador; el 43 de aquel incidente sigue fuera.
|
|
375
|
+
*
|
|
376
|
+
* ## Por qué ya no es 35: el tope bloqueaba la ENTREGA (23-09-2026)
|
|
377
|
+
*
|
|
378
|
+
* Medido en MyAllXOne, «una calculadora a partir de una maqueta de Stitch»: el developer gastó
|
|
379
|
+
* 39, 39 y 49 tools en tres encargos y **ninguno escribió**. Con `continue`, al agotarse, el
|
|
380
|
+
* tope bloquea TODA tool que venga después, y eso incluye `write_file` y `edit_file`: el
|
|
381
|
+
* especialista explora hasta el techo y cuando va a crear el `.xne` se lo rechazan. Se pagaba
|
|
382
|
+
* el reconocimiento entero (1,17M de entrada solo el developer) y no salía nada; el
|
|
383
|
+
* orquestador lo leía como «se quedan sin turnos explorando» y re-delegaba, que es el mismo
|
|
384
|
+
* reconocimiento otra vez desde cero.
|
|
385
|
+
*
|
|
386
|
+
* **Así que deja de ser una economía y pasa a ser un GUARDA**, como el del orquestador: por
|
|
387
|
+
* encima de lo observado, para que no muerda en un encargo normal y solo pare uno desbocado.
|
|
388
|
+
* Lo que sigue acotando de verdad es el tope de LLAMADAS, que con tools en paralelo llega
|
|
389
|
+
* antes. **Y por eso ya no está por debajo del del orquestador**: esa relación tenía sentido
|
|
390
|
+
* mientras este número era un presupuesto de trabajo.
|
|
391
|
+
*
|
|
392
|
+
* La alternativa que se descartó, para no rediscutirla: excluir las escrituras del conteo
|
|
393
|
+
* (un middleware propio, porque el de langchain no sabe excluir). Arreglaba el bloqueo de la
|
|
394
|
+
* entrega sin tocar el número; se prefirió el tope alto, que es su criterio de siempre —los
|
|
395
|
+
* topes se ponen altos para que no muerdan—.
|
|
285
396
|
*/
|
|
286
|
-
export const TOPE_DE_TOOLS_DEL_ESPECIALISTA =
|
|
397
|
+
export const TOPE_DE_TOOLS_DEL_ESPECIALISTA = 150;
|
|
287
398
|
/**
|
|
288
399
|
* **`continue`, y NO `end`: son incompatibles con pedir varias tools a la vez.**
|
|
289
400
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resumenDeContexto.js","sourceRoot":"","sources":["../../../src/agent/turno/resumenDeContexto.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resumenDeContexto.js","sourceRoot":"","sources":["../../../src/agent/turno/resumenDeContexto.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,7 +114,7 @@ import { indiceEnDisco } from "../navegacion/indiceEnDisco.js";
|
|
|
114
114
|
import { hechosDelProyectoDe } from "../navegacion/hechosEnDisco.js";
|
|
115
115
|
import { conHechosDelProyecto } from "../../core/hechosDelProyecto.js";
|
|
116
116
|
import { accionDelJuez } from "../../core/juezDelTurno.js";
|
|
117
|
-
import { crearRegistroDeFallos } from "./registroDeFallos.js";
|
|
117
|
+
import { crearRegistroDeFallos, RUTA_VISIBLE_DE_FALLOS } from "./registroDeFallos.js";
|
|
118
118
|
/**
|
|
119
119
|
* Recorre la raíz y devuelve las rutas en el ESPACIO VIRTUAL del backend.
|
|
120
120
|
*
|
|
@@ -1148,7 +1148,7 @@ export async function abrirSesionReal(opciones) {
|
|
|
1148
1148
|
pasos: pasosDelTurno,
|
|
1149
1149
|
});
|
|
1150
1150
|
if (anotado !== undefined) {
|
|
1151
|
-
piel.linea(`\n⚠ el turno falló. Queda apuntado en ${
|
|
1151
|
+
piel.linea(`\n⚠ el turno falló. Queda apuntado en ${RUTA_VISIBLE_DE_FALLOS}\n${anotado.legible}\n`);
|
|
1152
1152
|
}
|
|
1153
1153
|
throw error;
|
|
1154
1154
|
}
|