xonecode 0.8.38 → 0.8.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/apps/web/dist/assets/{index-Bm4ur93-.js → index-CRMWzgzk.js} +71 -71
  2. package/apps/web/dist/assets/index-CwAAn-xT.css +1 -0
  3. package/apps/web/dist/assets/{php-D2qE525B.js → php-BoJQNWIY.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-SvGm1EAa.js → ruby-B8zkIfgk.js} +1 -1
  5. package/apps/web/dist/index.html +2 -2
  6. package/dist/agent/config/selectorEnMaquina.js +15 -2
  7. package/dist/agent/config/selectorEnMaquina.js.map +1 -1
  8. package/dist/agent/dispositivos/descargaDeHerramientas.js +202 -0
  9. package/dist/agent/dispositivos/descargaDeHerramientas.js.map +1 -0
  10. package/dist/agent/dispositivos/dispositivosEnMaquina.js +83 -19
  11. package/dist/agent/dispositivos/dispositivosEnMaquina.js.map +1 -1
  12. package/dist/agent/dispositivos/instalacionEnMaquina.js +132 -14
  13. package/dist/agent/dispositivos/instalacionEnMaquina.js.map +1 -1
  14. package/dist/agent/dispositivos/procesosEnMaquina.js +22 -1
  15. package/dist/agent/dispositivos/procesosEnMaquina.js.map +1 -1
  16. package/dist/agent/turno/puente.js +13 -0
  17. package/dist/agent/turno/puente.js.map +1 -1
  18. package/dist/agent/turno/registroDeFallos.js +7 -0
  19. package/dist/agent/turno/registroDeFallos.js.map +1 -1
  20. package/dist/agent/turno/resumenDeContexto.js +113 -2
  21. package/dist/agent/turno/resumenDeContexto.js.map +1 -1
  22. package/dist/agent/turno/turnoReal.js +2 -2
  23. package/dist/agent/turno/turnoReal.js.map +1 -1
  24. package/dist/core/dispositivos.js +126 -6
  25. package/dist/core/dispositivos.js.map +1 -1
  26. package/dist/core/selectorDeCarpeta.js +27 -0
  27. package/dist/core/selectorDeCarpeta.js.map +1 -1
  28. package/dist/core/settings.js +13 -7
  29. package/dist/core/settings.js.map +1 -1
  30. package/dist/core/turno.js +10 -0
  31. package/dist/core/turno.js.map +1 -1
  32. package/dist/core/zipDeSkill.js +9 -2
  33. package/dist/core/zipDeSkill.js.map +1 -1
  34. package/dist/web/servidor/arranque.js +47 -6
  35. package/dist/web/servidor/arranque.js.map +1 -1
  36. package/dist/web/servidor/pielWeb.js +34 -0
  37. package/dist/web/servidor/pielWeb.js.map +1 -1
  38. package/dist/web/servidor/transporte.js.map +1 -1
  39. package/package.json +1 -1
  40. package/apps/web/dist/assets/index-F-tnEn80.css +0 -1
@@ -7,8 +7,8 @@
7
7
  <!-- El icono oficial, servido por Vite desde `iconos/`. Es el mismo fichero que la
8
8
  marca de la barra superior: dos copias del logo acaban siendo dos logos. -->
9
9
  <link rel="icon" type="image/png" href="./iconos/xonecode.png" />
10
- <script type="module" crossorigin src="./assets/index-Bm4ur93-.js"></script>
11
- <link rel="stylesheet" crossorigin href="./assets/index-F-tnEn80.css">
10
+ <script type="module" crossorigin src="./assets/index-CRMWzgzk.js"></script>
11
+ <link rel="stylesheet" crossorigin href="./assets/index-CwAAn-xT.css">
12
12
  </head>
13
13
  <!-- Sin el atributo aquí: el oscuro es SOLO del splash (el registro de entorno y
14
14
  modelo), no de la consola entera — `App.tsx` lo pone y lo quita él mismo, en el
@@ -2,8 +2,8 @@
2
2
  * Abrir el selector de carpeta NATIVO de esta máquina. La regla de QUÉ comando y cómo se lee
3
3
  * su respuesta es pura y vive en `core/selectorDeCarpeta.ts`; aquí solo está lanzarlo.
4
4
  */
5
- import { execFile } from "node:child_process";
6
- import { carpetaDeLaSalida, comandoDelSelector, TOPE_DEL_SELECTOR_MS, } from "../../core/selectorDeCarpeta.js";
5
+ import { execFile, spawn } from "node:child_process";
6
+ import { carpetaDeLaSalida, comandoDelSelector, comandoParaAbrirCarpeta, TOPE_DEL_SELECTOR_MS, } from "../../core/selectorDeCarpeta.js";
7
7
  /** ¿Hay selector en este sistema? Es lo que decide si se OFRECE el botón: un botón que no
8
8
  * hace nada es peor que no tenerlo, y el campo de texto ya resuelve el caso. */
9
9
  export function haySelectorDeCarpeta(plataforma = process.platform) {
@@ -33,6 +33,19 @@ export async function elegirCarpetaEnMaquina(opciones) {
33
33
  return undefined;
34
34
  }
35
35
  }
36
+ /**
37
+ * Abre, en el explorador de ficheros de ESTA máquina, la carpeta que contiene `ruta`.
38
+ *
39
+ * Accesorio, como `abrirEnSistema` al arrancar la web: nunca lanza, no espera respuesta ni
40
+ * mira el código de salida —`explorer.exe` sale con uno no-cero también cuando funciona—, y
41
+ * `detached`+`unref` para no dejar el proceso padre esperando a una ventana del sistema.
42
+ */
43
+ export function abrirCarpetaDelSistema(ruta, plataforma = process.platform) {
44
+ const comando = comandoParaAbrirCarpeta(plataforma, ruta);
45
+ const proceso = spawn(comando.programa, [...comando.argumentos], { detached: true, stdio: "ignore" });
46
+ proceso.on("error", () => { });
47
+ proceso.unref();
48
+ }
36
49
  function lanzarDeVerdad(comando) {
37
50
  return new Promise((resolver, rechazar) => {
38
51
  execFile(comando.programa, [...comando.argumentos],
@@ -1 +1 @@
1
- {"version":3,"file":"selectorEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/config/selectorEnMaquina.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,iCAAiC,CAAC;AAEzC;iFACiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,aAAqB,OAAO,CAAC,QAAQ;IACxE,OAAO,kBAAkB,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAI5C;IACC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9F,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,cAAc,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAA0B;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACxC,QAAQ,CACN,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;QACvB,qFAAqF;QACrF,iFAAiF;QACjF,iCAAiC;QACjC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,IAAI,EAAE,EACpD,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACzE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"selectorEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/config/selectorEnMaquina.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,GAErB,MAAM,iCAAiC,CAAC;AAEzC;iFACiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,aAAqB,OAAO,CAAC,QAAQ;IACxE,OAAO,kBAAkB,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,QAI5C;IACC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9F,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,cAAc,CAAC;IAClD,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,aAAqB,OAAO,CAAC,QAAQ;IACxF,MAAM,OAAO,GAAG,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,OAA0B;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACxC,QAAQ,CACN,OAAO,CAAC,QAAQ,EAChB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;QACvB,qFAAqF;QACrF,iFAAiF;QACjF,iCAAiC;QACjC,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,IAAI,EAAE,EACpD,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACzE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Descargar un `.zip` y descomprimirlo en el sitio que toca — el paso «descarga» de una
3
+ * receta de instalación, hermano del paso «proceso» que ya existía
4
+ * (`instalacionEnMaquina.ts#PASOS_EJECUTABLES`).
5
+ *
6
+ * Nació con la receta de Android en Windows: Homebrew instala el JDK, las herramientas del
7
+ * SDK y `adb` con un solo `install`, y en Windows no hay un gestor equivalente para esto —
8
+ * así que cada pieza se baja de una URL fijada (`core/dispositivos.ts`) y se descomprime a
9
+ * mano. Mismo contrato que un paso de PROCESO: nunca lanza, informa cada línea de progreso
10
+ * por `alSalirLinea` en cuanto la hay, y su resultado final es el MISMO
11
+ * `"ok" | "fallo" | "cancelada" | "colgada"` — así `Receta.tsx` y el mensaje `{clase:"receta"}`
12
+ * no necesitan saber que detrás hay un `fetch` y no un `spawn`.
13
+ *
14
+ * **La validación de zip-slip es la MISMA que la instalación de skills**
15
+ * (`core/zipDeSkill.ts#rutaDeZipAceptable`): un zip que se descarga de internet, aunque sea
16
+ * de un host de confianza (Google, Adoptium, por HTTPS), es exactamente la clase de entrada
17
+ * que esa regla ya cubre — reescribirla aquí sería un segundo sitio donde decidir lo mismo, y
18
+ * el que ha demostrado divergir en silencio en este repo.
19
+ *
20
+ * **Cancelar es el `AbortController` de `fetch`.** No hay proceso hijo que matar —a
21
+ * diferencia de un paso de proceso, que mata el GRUPO—, así que no pasa por
22
+ * `procesosEnMaquina.ts#matarGrupo`. Y el silencio se vigila igual que allí: el mismo
23
+ * `TOPE_SIN_SALIDA_MS` (5 min), pero medido entre TROZOS del cuerpo de la respuesta y no
24
+ * entre líneas de un proceso — una descarga de 150 MB que sigue hablando no está colgada
25
+ * aunque tarde minutos; lo que la delata es que deje de llegar ni un byte.
26
+ */
27
+ import { mkdirSync, writeFileSync } from "node:fs";
28
+ import { dirname, join } from "node:path";
29
+ import { unzipSync } from "fflate";
30
+ import { carpetaComun, rutaDeZipAceptable } from "../../core/zipDeSkill.js";
31
+ import { TOPE_SIN_SALIDA_MS } from "./procesosEnMaquina.js";
32
+ /** Lo que puede ocupar el `.zip` descargado. Las cmdline-tools de hoy pesan 156 MB, el JDK
33
+ * ronda los 190 MB: deja margen sin abrir la puerta a un zip bomba servido por un host que
34
+ * dejó de ser de confianza (una URL fijada a mano, ver `core/dispositivos.ts`). */
35
+ export const TOPE_DE_LA_DESCARGA = 300 * 1024 * 1024;
36
+ /** Lo que puede ocupar DESCOMPRIMIDO. El de arriba no lo ve: un zip pequeño puede
37
+ * descomprimirse en gigabytes. */
38
+ export const TOPE_DESCOMPRIMIDO = 700 * 1024 * 1024;
39
+ /** Cuántas entradas puede traer. Las cmdline-tools traen unos pocos miles de ficheros. */
40
+ export const TOPE_DE_ENTRADAS = 8000;
41
+ /**
42
+ * Descarga `url` y la descomprime bajo `destino`. Nunca lanza: todo lo que puede ir mal
43
+ * —una URL caducada, un zip corrupto, una ruta de zip-slip, el tope de tamaño— vuelve como
44
+ * un `ResultadoDeDescarga` con su motivo de UNA línea, igual que
45
+ * `instalacionEnMaquina.ts#correrPasoDeReceta`.
46
+ */
47
+ export function descargarYDescomprimir(url, destino, opciones = {}, deps = {}) {
48
+ const fetchDeVerdad = deps.fetch ?? fetch;
49
+ const crearCarpeta = deps.crearCarpeta ?? ((ruta) => mkdirSync(ruta, { recursive: true }));
50
+ const escribir = deps.escribir ?? ((ruta, datos) => writeFileSync(ruta, datos));
51
+ const ahora = deps.ahora ?? (() => Date.now());
52
+ const t0 = ahora();
53
+ const decir = (linea) => deps.alSalirLinea?.(linea);
54
+ const abortador = new AbortController();
55
+ let canceladaPorFuera = false;
56
+ let colgadaPorSilencio = false;
57
+ const terminado = (async () => {
58
+ // El vigilante del silencio: se REARMA en cada trozo que llega, igual que
59
+ // `procesosEnMaquina.ts#rearmar`. Si nadie lo rearma en `TOPE_SIN_SALIDA_MS`, aborta —
60
+ // una descarga que deja de hablar es un servidor que se calló, no una que va lenta.
61
+ let temporizador;
62
+ const rearmar = () => {
63
+ if (temporizador !== undefined)
64
+ clearTimeout(temporizador);
65
+ temporizador = setTimeout(() => {
66
+ colgadaPorSilencio = true;
67
+ abortador.abort();
68
+ }, TOPE_SIN_SALIDA_MS);
69
+ };
70
+ const desarmar = () => {
71
+ if (temporizador !== undefined)
72
+ clearTimeout(temporizador);
73
+ };
74
+ try {
75
+ rearmar();
76
+ let respuesta;
77
+ try {
78
+ respuesta = await fetchDeVerdad(url, { signal: abortador.signal });
79
+ }
80
+ finally {
81
+ desarmar();
82
+ }
83
+ if (!respuesta.ok) {
84
+ return { estado: "fallo", motivo: `no se pudo descargar (HTTP ${respuesta.status})`, ms: ahora() - t0 };
85
+ }
86
+ const bytes = await leerConProgreso(respuesta, decir, rearmar, desarmar);
87
+ if (bytes.length > TOPE_DE_LA_DESCARGA) {
88
+ return { estado: "fallo", motivo: "la descarga pesa más de lo esperado: se para por si acaso", ms: ahora() - t0 };
89
+ }
90
+ decir("descomprimiendo…");
91
+ let entradas;
92
+ try {
93
+ entradas = unzipSync(bytes);
94
+ }
95
+ catch {
96
+ return { estado: "fallo", motivo: "no se pudo abrir el .zip: ¿la descarga se cortó?", ms: ahora() - t0 };
97
+ }
98
+ // fflate también devuelve las carpetas, como entradas vacías acabadas en `/`: no son
99
+ // ficheros que escribir.
100
+ const ficheros = Object.entries(entradas).filter(([ruta]) => !ruta.endsWith("/"));
101
+ if (ficheros.length === 0)
102
+ return { estado: "fallo", motivo: "el .zip está vacío", ms: ahora() - t0 };
103
+ if (ficheros.length > TOPE_DE_ENTRADAS) {
104
+ return { estado: "fallo", motivo: `el .zip trae más de ${TOPE_DE_ENTRADAS} ficheros`, ms: ahora() - t0 };
105
+ }
106
+ const totalDescomprimido = ficheros.reduce((suma, [, datos]) => suma + datos.length, 0);
107
+ if (totalDescomprimido > TOPE_DESCOMPRIMIDO) {
108
+ return { estado: "fallo", motivo: "el .zip ocupa demasiado descomprimido", ms: ahora() - t0 };
109
+ }
110
+ const malo = ficheros.find(([ruta]) => !rutaDeZipAceptable(ruta));
111
+ if (malo !== undefined) {
112
+ // El nombre de la entrada no se devuelve: es de un zip ajeno, aunque venga de un
113
+ // host de confianza. Se dice QUÉ pasa, que es lo accionable.
114
+ return { estado: "fallo", motivo: "el .zip trae una ruta que se sale de su carpeta", ms: ahora() - t0 };
115
+ }
116
+ const prefijo = opciones.renombrarCarpetaUnicaA === undefined ? undefined : carpetaComun(ficheros.map(([ruta]) => ruta));
117
+ for (const [ruta, datos] of ficheros) {
118
+ const rutaFinal = prefijo !== undefined && opciones.renombrarCarpetaUnicaA !== undefined
119
+ ? join(destino, opciones.renombrarCarpetaUnicaA, ruta.slice(prefijo.length + 1))
120
+ : join(destino, ruta);
121
+ crearCarpeta(dirname(rutaFinal));
122
+ escribir(rutaFinal, datos);
123
+ }
124
+ decir(`listo: ${ficheros.length} ficheros`);
125
+ return { estado: "ok", ms: ahora() - t0 };
126
+ }
127
+ catch (error) {
128
+ if (colgadaPorSilencio) {
129
+ return { estado: "colgada", motivo: `no llegó nada en ${Math.round(TOPE_SIN_SALIDA_MS / 60_000)} min`, ms: ahora() - t0 };
130
+ }
131
+ if (canceladaPorFuera)
132
+ return { estado: "cancelada", ms: ahora() - t0 };
133
+ return { estado: "fallo", motivo: unaLinea(error), ms: ahora() - t0 };
134
+ }
135
+ })();
136
+ return {
137
+ cancelar: () => {
138
+ canceladaPorFuera = true;
139
+ abortador.abort();
140
+ },
141
+ terminado,
142
+ };
143
+ }
144
+ /**
145
+ * Lee el cuerpo de la respuesta a trozos, informando el `%` de progreso por
146
+ * `alSalirLinea` — a saltos de 10 puntos, para no inundar el log de una descarga de minutos.
147
+ * `rearmar`/`desarmar` son el mismo vigilante de silencio que el resto de la descarga: cada
148
+ * trozo que llega es la prueba de que el servidor sigue hablando.
149
+ *
150
+ * Si el `fetch` inyectado no da un cuerpo en streaming (algunos dobles de test, o un
151
+ * `fetch` sin soporte de `ReadableStream`), se cae a `arrayBuffer()` sin progreso intermedio
152
+ * — sigue siendo correcto, solo menos hablador.
153
+ */
154
+ async function leerConProgreso(respuesta, decir, rearmar, desarmar) {
155
+ const total = Number(respuesta.headers.get("content-length") ?? "0");
156
+ const cuerpo = respuesta.body;
157
+ if (cuerpo === null || typeof cuerpo.getReader !== "function") {
158
+ decir("descargando…");
159
+ return new Uint8Array(await respuesta.arrayBuffer());
160
+ }
161
+ const lector = cuerpo.getReader();
162
+ const trozos = [];
163
+ let recibido = 0;
164
+ let ultimoPorcentaje = -10;
165
+ try {
166
+ for (;;) {
167
+ const { done, value } = await lector.read();
168
+ if (done)
169
+ break;
170
+ rearmar();
171
+ trozos.push(value);
172
+ recibido += value.length;
173
+ if (total > 0) {
174
+ const porcentaje = Math.floor((recibido / total) * 100);
175
+ if (porcentaje >= ultimoPorcentaje + 10) {
176
+ decir(`descargando… ${porcentaje}%`);
177
+ ultimoPorcentaje = porcentaje;
178
+ }
179
+ }
180
+ }
181
+ }
182
+ finally {
183
+ desarmar();
184
+ }
185
+ const bytes = new Uint8Array(recibido);
186
+ let offset = 0;
187
+ for (const trozo of trozos) {
188
+ bytes.set(trozo, offset);
189
+ offset += trozo.length;
190
+ }
191
+ return bytes;
192
+ }
193
+ /** Una línea sobre por qué falló la descarga, sin la traza entera. */
194
+ function unaLinea(error) {
195
+ if (error instanceof Error) {
196
+ if (error.name === "AbortError")
197
+ return "la descarga se abortó";
198
+ return error.message.split(/\r?\n/)[0] ?? "fallo desconocido";
199
+ }
200
+ return String(error).split(/\r?\n/)[0] ?? "fallo desconocido";
201
+ }
202
+ //# sourceMappingURL=descargaDeHerramientas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descargaDeHerramientas.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/descargaDeHerramientas.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,18 @@ import { execFile } from "node:child_process";
31
31
  import { existsSync } from "node:fs";
32
32
  import { readFile, rm } from "node:fs/promises";
33
33
  import { homedir, tmpdir } from "node:os";
34
- import { delimiter, join } from "node:path";
34
+ import { join, posix, win32 } from "node:path";
35
+ /**
36
+ * Las reglas de RUTA de la plataforma que se está MIDIENDO, no las de la máquina que corre
37
+ * esto. Las funciones de abajo reciben `plataforma` por parámetro —es lo que deja probar la
38
+ * rama de Windows desde un Mac—, y con `join`/`delimiter` a secas de `node:path` usaban las del
39
+ * host: en un Mac, un `Path` de Windows se partía por `:` y no se encontraba nada. Salió al
40
+ * mezclar la rama que añadió los `.bat`, cuyo test pasaba en Windows y fallaba en cualquier
41
+ * otra máquina.
42
+ */
43
+ function rutasDe(plataforma) {
44
+ return plataforma === "win32" ? win32 : posix;
45
+ }
35
46
  import { promisify } from "node:util";
36
47
  import { seMira } from "../../core/settings.js";
37
48
  import { recetaDeEmuladorAndroid, recetaDeSimuladorIos, parsearRuntimesDeIos, parsearAdbDevices, nombreDeAvdDeConsola, motivoDeVerificacion, parsearAvds, parsearDevicectl, parsearSimctl, motivoDeSimctl, plataformaDe, sistemaDe, } from "../../core/dispositivos.js";
@@ -58,12 +69,12 @@ export const TOPES_MS = {
58
69
  */
59
70
  const RAICES_DE_SDK_POR_OMISION = {
60
71
  darwin: (home) => [
61
- join(home, "Library", "Android", "sdk"),
72
+ posix.join(home, "Library", "Android", "sdk"),
62
73
  "/opt/homebrew/share/android-commandlinetools",
63
74
  "/usr/local/share/android-commandlinetools",
64
75
  ],
65
- win32: (_home, entorno) => (entorno.LOCALAPPDATA === undefined ? [] : [join(entorno.LOCALAPPDATA, "Android", "Sdk")]),
66
- linux: (home) => [join(home, "Android", "Sdk")],
76
+ win32: (_home, entorno) => (entorno.LOCALAPPDATA === undefined ? [] : [win32.join(entorno.LOCALAPPDATA, "Android", "Sdk")]),
77
+ linux: (home) => [posix.join(home, "Android", "Sdk")],
67
78
  };
68
79
  /**
69
80
  * Dónde están las cosas de Android en esta máquina: las raíces del SDK y cómo buscar en el
@@ -77,14 +88,27 @@ const RAICES_DE_SDK_POR_OMISION = {
77
88
  * En Windows los binarios llevan `.exe`. `existe` entra por parámetro porque `npm test` no
78
89
  * puede depender del disco de quien lo corre.
79
90
  */
91
+ /**
92
+ * La extensión de un binario en Windows: `.exe` para `adb`/`emulator`, pero `sdkmanager` y
93
+ * `avdmanager` son SCRIPTS `.bat` en Windows —nunca `.exe`, en ningún SDK—. Antes esto era un
94
+ * único `.exe` para lo que fuera, y con él `sdkmanager`/`avdmanager` no se localizaban NUNCA
95
+ * en Windows, aunque las cmdline-tools ya estuvieran instaladas a mano: los pasos que
96
+ * dependen de `estado.sdkmanager`/`estado.jdk` no podían marcarse nunca como disponibles.
97
+ */
98
+ function extensionDeBinario(nombre, plataforma) {
99
+ if (plataforma !== "win32")
100
+ return "";
101
+ return nombre === "sdkmanager" || nombre === "avdmanager" ? ".bat" : ".exe";
102
+ }
80
103
  export function localizadorDeAndroid(deps) {
81
- const ext = deps.plataforma === "win32" ? ".exe" : "";
82
104
  const raicesDeSdk = [
83
105
  deps.entorno.ANDROID_HOME,
84
106
  deps.entorno.ANDROID_SDK_ROOT,
85
107
  ...(RAICES_DE_SDK_POR_OMISION[deps.plataforma]?.(deps.home, deps.entorno) ?? []),
86
108
  ].filter((r) => r !== undefined && r !== "");
109
+ const { delimiter, join } = rutasDe(deps.plataforma);
87
110
  const enPath = (nombre) => {
111
+ const ext = extensionDeBinario(nombre, deps.plataforma);
88
112
  for (const carpeta of (deps.entorno.PATH ?? deps.entorno.Path ?? "").split(delimiter)) {
89
113
  if (carpeta === "")
90
114
  continue;
@@ -98,6 +122,7 @@ export function localizadorDeAndroid(deps) {
98
122
  const delPath = enPath(nombre);
99
123
  if (delPath !== undefined)
100
124
  return delPath;
125
+ const ext = extensionDeBinario(nombre, deps.plataforma);
101
126
  for (const raiz of raicesDeSdk) {
102
127
  const candidato = join(raiz, subcarpeta, nombre + ext);
103
128
  if (deps.existe(candidato))
@@ -110,18 +135,26 @@ export function localizadorDeAndroid(deps) {
110
135
  /**
111
136
  * El JDK con el que corre `sdkmanager`, que es un programa Java.
112
137
  *
113
- * `JAVA_HOME` si el usuario la puso; si no, el `openjdk@17` de Homebrew en los dos prefijos
114
- * —igual que las raíces del SDK, y por lo mismo: preguntárselo a `brew --prefix` costaría un
115
- * proceso en cada medida—. Lo usan el detector, para decir si el paso 3 se puede lanzar, y
116
- * el ejecutor, para ponérselo al hijo: una segunda copia habría divergido con el síntoma
117
- * peor, que el botón se ofreciera y luego no encontrara el JDK.
138
+ * `JAVA_HOME` si el usuario la puso; si no, por sistema: en macOS el `openjdk@17` de
139
+ * Homebrew en los dos prefijos —preguntárselo a `brew --prefix` costaría un proceso en cada
140
+ * medida—; en Windows la ruta FIJA donde cae el paso 2 de la receta,
141
+ * `%LOCALAPPDATA%\Android\jdk17` (`descargaDeHerramientas.ts` renombra ahí la carpeta
142
+ * versionada que trae el zip de Adoptium). Lo usan el detector, para decir si los últimos
143
+ * pasos se pueden lanzar, y el ejecutor, para ponérselo al hijo: una segunda copia habría
144
+ * divergido con el síntoma peor, que el botón se ofreciera y luego no encontrara el JDK.
118
145
  */
119
- export function jdkDeLaMaquina(entorno, existe) {
146
+ export function jdkDeLaMaquina(entorno, existe, plataforma) {
120
147
  const puesta = entorno.JAVA_HOME ?? "";
121
148
  if (puesta !== "" && existe(puesta))
122
149
  return puesta;
150
+ if (plataforma === "win32") {
151
+ if (entorno.LOCALAPPDATA === undefined)
152
+ return undefined;
153
+ const candidato = win32.join(entorno.LOCALAPPDATA, "Android", "jdk17");
154
+ return existe(candidato) ? candidato : undefined;
155
+ }
123
156
  for (const prefijo of ["/opt/homebrew", "/usr/local"]) {
124
- const candidato = join(prefijo, "opt", "openjdk@17");
157
+ const candidato = posix.join(prefijo, "opt", "openjdk@17");
125
158
  if (existe(candidato))
126
159
  return candidato;
127
160
  }
@@ -209,16 +242,34 @@ ajustes = {}) {
209
242
  }
210
243
  return undefined;
211
244
  };
212
- const adb = miraAndroid || miraAndroidEmulador ? localizar("adb", "platform-tools") : undefined;
245
+ /**
246
+ * La ruta personalizada, cuando la hay, gana sobre PATH/SDK — es lo que la persona pidió
247
+ * a mano porque la búsqueda automática no la encontró. Si no existe en disco se dice CUÁL
248
+ * se probó: ya es una ruta que cruza el cable (`Herramienta.ruta` para estas dos
249
+ * herramientas), así que repetirla en `detalle` no abre ninguna excepción nueva.
250
+ */
251
+ const rutaAdbPersonalizada = ajustes.rutaAdb?.trim();
252
+ const adb = rutaAdbPersonalizada !== undefined && rutaAdbPersonalizada !== ""
253
+ ? existe(rutaAdbPersonalizada)
254
+ ? rutaAdbPersonalizada
255
+ : undefined
256
+ : miraAndroid || miraAndroidEmulador
257
+ ? localizar("adb", "platform-tools")
258
+ : undefined;
213
259
  if (!miraAndroid && !miraAndroidEmulador) {
214
260
  herramientas.push({ nombre: "adb", estado: "desactivada", detalle: APAGADO });
215
261
  }
216
262
  else if (adb === undefined) {
217
- const instalar = comoInstalar("adb");
263
+ const rutaNoEncontrada = rutaAdbPersonalizada !== undefined && rutaAdbPersonalizada !== "";
264
+ // Con una ruta a mano que no existe no se ofrece un comando de instalación: ya se dijo
265
+ // dónde buscar, y proponer `sdkmanager`/`brew` encima sería ignorar lo que se pidió.
266
+ const instalar = rutaNoEncontrada ? undefined : comoInstalar("adb");
218
267
  herramientas.push({
219
268
  nombre: "adb",
220
269
  estado: "no-encontrada",
221
- detalle: "ni en el PATH ni en platform-tools del SDK de Android",
270
+ detalle: rutaNoEncontrada
271
+ ? `la ruta configurada no existe: ${rutaAdbPersonalizada}`
272
+ : "ni en el PATH ni en platform-tools del SDK de Android",
222
273
  ...(instalar === undefined ? {} : { instalar }),
223
274
  });
224
275
  }
@@ -291,16 +342,26 @@ ajustes = {}) {
291
342
  herramientas.push({ nombre: "adb", estado: "fallo", ruta: adb, detalle: describirFallo(error, TOPES_MS.adb) });
292
343
  }
293
344
  }
294
- const emulator = miraAndroidEmulador ? localizar("emulator", "emulator") : undefined;
345
+ const rutaEmulatorPersonalizada = ajustes.rutaEmulator?.trim();
346
+ const emulator = rutaEmulatorPersonalizada !== undefined && rutaEmulatorPersonalizada !== ""
347
+ ? existe(rutaEmulatorPersonalizada)
348
+ ? rutaEmulatorPersonalizada
349
+ : undefined
350
+ : miraAndroidEmulador
351
+ ? localizar("emulator", "emulator")
352
+ : undefined;
295
353
  if (!miraAndroidEmulador) {
296
354
  herramientas.push({ nombre: "emulator", estado: "desactivada", detalle: APAGADO });
297
355
  }
298
356
  else if (emulator === undefined) {
299
- const instalar = comoInstalar("emulator");
357
+ const rutaNoEncontrada = rutaEmulatorPersonalizada !== undefined && rutaEmulatorPersonalizada !== "";
358
+ const instalar = rutaNoEncontrada ? undefined : comoInstalar("emulator");
300
359
  herramientas.push({
301
360
  nombre: "emulator",
302
361
  estado: "no-encontrada",
303
- detalle: "ni en el PATH ni en la carpeta emulator del SDK de Android; viene con Android Studio",
362
+ detalle: rutaNoEncontrada
363
+ ? `la ruta configurada no existe: ${rutaEmulatorPersonalizada}`
364
+ : "ni en el PATH ni en la carpeta emulator del SDK de Android; viene con Android Studio",
304
365
  ...(instalar === undefined ? {} : { instalar }),
305
366
  });
306
367
  }
@@ -422,11 +483,14 @@ ajustes = {}) {
422
483
  */
423
484
  const recetaAndroid = recetaDeEmuladorAndroid(plataforma, {
424
485
  brew: enPath("brew") !== undefined,
486
+ // Ya localizado arriba: sin este campo, el primer paso de la receta de Windows —que es
487
+ // justo descargar `adb`— no tendría de qué `hecho` colgarse.
488
+ adb: adb !== undefined,
425
489
  sdkmanager: enPath("sdkmanager") !== undefined ||
426
490
  localizar("sdkmanager", join("cmdline-tools", "latest", "bin")) !== undefined,
427
491
  emulator: emulator !== undefined,
428
492
  // El JDK con el que corre `sdkmanager`: sin él, el botón de ejecutar no se ofrece.
429
- jdk: jdkDeLaMaquina(entorno, existe) !== undefined,
493
+ jdk: jdkDeLaMaquina(entorno, existe, plataforma) !== undefined,
430
494
  avds,
431
495
  });
432
496
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dispositivosEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/dispositivosEnMaquina.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispositivosEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/dispositivos/dispositivosEnMaquina.ts"],"names":[],"mappings":"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"}