xonecode 0.21.0 → 0.22.0

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 (44) hide show
  1. package/apps/web/dist/assets/index-5rtynJV_.js +490 -0
  2. package/apps/web/dist/assets/index-Cq6c6WEF.css +1 -0
  3. package/apps/web/dist/assets/{php-UkjSyds-.js → php-BTFUgUDo.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-e801JuzW.js → ruby-BKKiBtJK.js} +1 -1
  5. package/apps/web/dist/index.html +2 -2
  6. package/dist/agent/config/mudanzaEnDisco.js +237 -3
  7. package/dist/agent/config/mudanzaEnDisco.js.map +1 -1
  8. package/dist/agent/config/selectorEnMaquina.js +3 -2
  9. package/dist/agent/config/selectorEnMaquina.js.map +1 -1
  10. package/dist/agent/config/settingsEnDisco.js +76 -2
  11. package/dist/agent/config/settingsEnDisco.js.map +1 -1
  12. package/dist/agent/dispositivos/arranqueDeEmulador.js +27 -3
  13. package/dist/agent/dispositivos/arranqueDeEmulador.js.map +1 -1
  14. package/dist/agent/dispositivos/instalacionEnMaquina.js +240 -29
  15. package/dist/agent/dispositivos/instalacionEnMaquina.js.map +1 -1
  16. package/dist/agent/dispositivos/lanzamientoEnMaquina.js +12 -17
  17. package/dist/agent/dispositivos/lanzamientoEnMaquina.js.map +1 -1
  18. package/dist/core/copiaDeAvd.js +111 -0
  19. package/dist/core/copiaDeAvd.js.map +1 -0
  20. package/dist/core/mudanzaDeWorkspace.js +105 -15
  21. package/dist/core/mudanzaDeWorkspace.js.map +1 -1
  22. package/dist/core/puertosDeAvd.js +64 -0
  23. package/dist/core/puertosDeAvd.js.map +1 -0
  24. package/dist/core/selectorDeCarpeta.js +88 -9
  25. package/dist/core/selectorDeCarpeta.js.map +1 -1
  26. package/dist/core/settings.js +60 -1
  27. package/dist/core/settings.js.map +1 -1
  28. package/dist/core/shellDeAgente.js +11 -0
  29. package/dist/core/shellDeAgente.js.map +1 -1
  30. package/dist/web/servidor/arranque.js +476 -43
  31. package/dist/web/servidor/arranque.js.map +1 -1
  32. package/dist/web/servidor/transporte.js.map +1 -1
  33. package/dist/web/servidor/vestibulo.js +154 -48
  34. package/dist/web/servidor/vestibulo.js.map +1 -1
  35. package/package.json +1 -1
  36. package/skills/xone-hotswap/SKILL.md +26 -10
  37. package/skills/xone-hotswap/lib/dispositivo.mjs +97 -3
  38. package/skills/xone-hotswap/references/conexion-y-despliegue.md +27 -15
  39. package/skills/xone-hotswap/scripts/xone-arrancar-android +9 -2
  40. package/skills/xone-hotswap/scripts/xone-desplegar-android +12 -6
  41. package/skills/xone-hotswap/scripts/xone-hotswap +32 -10
  42. package/skills/xone-hotswap/scripts/xone-reiniciar-android +23 -7
  43. package/apps/web/dist/assets/index-CFoqpKRk.css +0 -1
  44. package/apps/web/dist/assets/index-DgvLb2SM.js +0 -486
@@ -1,5 +1,5 @@
1
- import { posix } from "node:path";
2
- import { rutaDeWorkspace } from "./settings.js";
1
+ import { posix, win32 } from "node:path";
2
+ import { esRutaDeWindows, rutaDeWorkspace } from "./settings.js";
3
3
  /**
4
4
  * El literal que vivía en MEDIO del reparto: `<base>/<entorno>/workspace/<proyecto>`.
5
5
  *
@@ -12,16 +12,30 @@ export const CARPETA_DEL_REPARTO_VIEJO = "workspace";
12
12
  function esSegmentoLlano(valor) {
13
13
  return valor !== "" && valor !== "." && valor !== ".." && !/[/\\]/.test(valor);
14
14
  }
15
- function normalizar(ruta) {
16
- return posix.normalize(ruta).replace(/\/+$/, "");
15
+ /**
16
+ * Los segmentos de una ruta, con la barra invertida de Windows como separador cuando la ruta
17
+ * es de Windows. Con `posix` a secas, `C:\Users\…` era UN segmento y ni la guarda de anidadas
18
+ * ni `rutaMudada` veían nada dentro de nada.
19
+ */
20
+ function segmentos(ruta) {
21
+ const windows = esRutaDeWindows(ruta);
22
+ const barras = windows ? ruta.replace(/\\/g, "/") : ruta;
23
+ return posix.normalize(barras).replace(/(?<=.)\/+$/, "").split("/");
24
+ }
25
+ /** Dos segmentos son el mismo: en Windows sin distinguir mayúsculas, como su disco. */
26
+ function mismoSegmento(a, b, windows) {
27
+ return windows ? a.toLowerCase() === b.toLowerCase() : a === b;
28
+ }
29
+ /** ¿`prefijo` es la ruta `ruta` o una antepasada suya? Por SEGMENTOS, nunca por texto. */
30
+ function empiezaPor(ruta, prefijo, windows) {
31
+ return prefijo.length <= ruta.length && prefijo.every((seg, i) => mismoSegmento(seg, ruta[i], windows));
17
32
  }
18
33
  /** ¿Son la misma ruta, o una es antepasada de la otra? Por SEGMENTOS, nunca por texto. */
19
34
  function unaCuelgaDeLaOtra(a, b) {
20
- const uno = normalizar(a).split("/");
21
- const otro = normalizar(b).split("/");
22
- const corto = uno.length <= otro.length ? uno : otro;
23
- const largo = corto === uno ? otro : uno;
24
- return corto.every((seg, i) => largo[i] === seg);
35
+ const windows = esRutaDeWindows(a) || esRutaDeWindows(b);
36
+ const uno = segmentos(a);
37
+ const otro = segmentos(b);
38
+ return empiezaPor(uno, otro, windows) || empiezaPor(otro, uno, windows);
25
39
  }
26
40
  /**
27
41
  * Qué copias locales siguen en el reparto viejo y adónde van.
@@ -82,15 +96,91 @@ export function mudanzasPendientes(opciones) {
82
96
  * entrada para decidir si reescribe el fichero.
83
97
  */
84
98
  export function rutaMudada(ruta, mudanzas) {
85
- const partes = normalizar(ruta).split("/");
99
+ const partes = segmentos(ruta);
86
100
  for (const mudanza of mudanzas) {
87
- const origen = normalizar(mudanza.desde).split("/");
88
- if (partes.length < origen.length)
89
- continue;
90
- if (!origen.every((seg, i) => partes[i] === seg))
101
+ const windows = esRutaDeWindows(ruta) || esRutaDeWindows(mudanza.desde);
102
+ const origen = segmentos(mudanza.desde);
103
+ if (!empiezaPor(partes, origen, windows))
91
104
  continue;
92
- return posix.join(normalizar(mudanza.hacia), ...partes.slice(origen.length));
105
+ // Con las reglas del DESTINO: una base de Windows se compone con `\`.
106
+ return (esRutaDeWindows(mudanza.hacia) ? win32 : posix).join(mudanza.hacia, ...partes.slice(origen.length));
93
107
  }
94
108
  return undefined;
95
109
  }
110
+ /**
111
+ * Una ruta traducida a través de VARIAS mudanzas, en el orden en que ocurrieron: cada tanda
112
+ * es el plan de un cambio de base, y la salida de una es la entrada de la siguiente.
113
+ *
114
+ * Existe porque `rutaMudada` coge la PRIMERA coincidencia, que dentro de UN plan es correcto
115
+ * (sus orígenes no se solapan) y entre varios no: con ir de A a B y volver a A, una lista plana
116
+ * traducía `A/…` a `B/…` —la ida— aunque la vuelta ya había vaciado `B`, y abrir el proyecto
117
+ * abría una carpeta que no existe. Encadenadas, `A/…` va a `B/…` y vuelve a `A/…`.
118
+ */
119
+ export function rutaTrasLasMudanzas(ruta, tandas) {
120
+ let actual = ruta;
121
+ for (const tanda of tandas)
122
+ actual = rutaMudada(actual, tanda) ?? actual;
123
+ return actual;
124
+ }
125
+ /**
126
+ * Qué copias hay que MUDAR al cambiar el workspace de `desde` a `hacia`, o por qué no se
127
+ * puede — antes de tocar nada.
128
+ *
129
+ * **Se listan las carpetas REALES** `<desde>/<entorno>/<proyecto>`, no los entornos
130
+ * registrados: quitar un entorno de Ajustes no borra sus copias, y una mudanza que solo mirara
131
+ * la lista las dejaría huérfanas en la base vieja. Lo OCULTO no es un proyecto —las lápidas
132
+ * `.<proyecto>.borrando-…` que un borrado a medias deja (`borrarCopiaDeProyecto`) y las
133
+ * carpetas temporales de una mudanza cortada—, y se queda fuera.
134
+ *
135
+ * Tres noes, y todos antes de copiar un byte:
136
+ * - **una base cuelga de la otra** (o son la misma): copiar una carpeta dentro de sí misma no
137
+ * termina, y al revés la base vieja pasaría a parecer un entorno de la nueva;
138
+ * - **dentro de la casa de xonecode** (`~/.xonecode`), salvo su `workspace` de omisión: ahí
139
+ * viven `tareas/`, `agentes/` y `auth.json`, y un entorno llamado igual se mezclaría con
140
+ * ellos;
141
+ * - **un destino que ya existe**: se NIEGA ENTERO, nunca se pisa. En esa carpeta puede haber
142
+ * otra historia de git y otro checkpoint, y mudar la mitad dejaría el workspace partido.
143
+ */
144
+ export function planDeCambioDeBase(opciones) {
145
+ const { desde, hacia, casaXonecode } = opciones;
146
+ if (unaCuelgaDeLaOtra(desde, hacia)) {
147
+ return {
148
+ mudanzas: [],
149
+ motivo: "la carpeta nueva no puede estar dentro de la de ahora, ni al revés: elige una que no cuelgue de la otra",
150
+ };
151
+ }
152
+ const windows = esRutaDeWindows(hacia) || esRutaDeWindows(casaXonecode);
153
+ const nueva = segmentos(hacia);
154
+ const casa = segmentos(casaXonecode);
155
+ const deOmision = segmentos((esRutaDeWindows(casaXonecode) ? win32 : posix).join(casaXonecode, "workspace"));
156
+ if (empiezaPor(nueva, casa, windows) && !empiezaPor(nueva, deOmision, windows)) {
157
+ return {
158
+ mudanzas: [],
159
+ motivo: "esa carpeta es la de la configuración de XOneCode (tareas, agentes, credenciales): elige otra fuera de ella",
160
+ };
161
+ }
162
+ const mudanzas = [];
163
+ const ocupadas = [];
164
+ const separador = esRutaDeWindows(desde) ? win32 : posix;
165
+ for (const entorno of opciones.listar(desde)) {
166
+ if (!esSegmentoLlano(entorno) || entorno.startsWith("."))
167
+ continue;
168
+ for (const proyecto of opciones.listar(separador.join(desde, entorno))) {
169
+ if (!esSegmentoLlano(proyecto) || proyecto.startsWith("."))
170
+ continue;
171
+ const mudanza = { entorno, proyecto, desde: separador.join(desde, entorno, proyecto), hacia: rutaDeWorkspace(hacia, entorno, proyecto) };
172
+ if (opciones.existe(mudanza.hacia))
173
+ ocupadas.push(`${proyecto} (${entorno})`);
174
+ else
175
+ mudanzas.push(mudanza);
176
+ }
177
+ }
178
+ if (ocupadas.length > 0) {
179
+ return {
180
+ mudanzas: [],
181
+ motivo: `en la carpeta nueva ya hay ${ocupadas.length === 1 ? "una copia" : "copias"} de ${ocupadas.join(", ")}: no se pisa nada, así que no se muda ninguna`,
182
+ };
183
+ }
184
+ return { mudanzas };
185
+ }
96
186
  //# sourceMappingURL=mudanzaDeWorkspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mudanzaDeWorkspace.js","sourceRoot":"","sources":["../../src/core/mudanzaDeWorkspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mudanzaDeWorkspace.js","sourceRoot":"","sources":["../../src/core/mudanzaDeWorkspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;AAsBrD,0EAA0E;AAC1E,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,uFAAuF;AACvF,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,OAAgB;IAC3D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CAAC,IAAc,EAAE,OAAiB,EAAE,OAAgB;IACrE,OAAO,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,0FAA0F;AAC1F,SAAS,iBAAiB,CAAC,CAAS,EAAE,CAAS;IAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAMiB;IAEjB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QAEtC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrE,+EAA+E;YAC/E,mFAAmF;YACnF,qFAAqF;YACrF,sDAAsD;YACtD,IAAI,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC9C,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAA4B;IACnE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;YAAE,SAAS;QACnD,sEAAsE;QACtE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,MAAuC;IACvF,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC;IACzE,OAAO,MAAM,CAAC;AAChB,CAAC;AAQD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA+E;IAE/E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IAChD,IAAI,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,yGAAyG;SAClH,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7G,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/E,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,6GAA6G;SACtH,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACnE,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACrE,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YACzI,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC;;gBACzE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,8BAA8B,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C;SAC9J,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,64 @@
1
+ /** El puerto del servidor hotswap DENTRO del aparato, y el local por omisión. */
2
+ export const PUERTO_DEL_HOTSWAP = 8443;
3
+ /** La consola y el adb de los emuladores viven aquí: un túnel encima los rompería. */
4
+ const PUERTOS_DE_EMULADOR = { desde: 5554, hasta: 5585 };
5
+ /** La MISMA forma que acepta `arranqueDeEmulador.ts`: lo que puede ser una carpeta de `~/.android/avd`. */
6
+ export const FORMA_DE_NOMBRE_DE_AVD = /^[A-Za-z0-9._][A-Za-z0-9._-]*$/;
7
+ const LARGO_MAXIMO_DE_NOMBRE = 64;
8
+ export function puertoDeAvd(ajustes, avd) {
9
+ return ajustes?.avds?.[avd]?.puerto ?? PUERTO_DEL_HOTSWAP;
10
+ }
11
+ /**
12
+ * Los puertos que faltan, o `undefined` si no falta ninguno. Solo AÑADE: un puerto guardado no
13
+ * se mueve nunca. Entre los que faltan, por orden alfabético (que no dependa del orden de
14
+ * `emulator -list-avds`), desde el 8443 si está libre. Como el único AVD ya queda sembrado, el
15
+ * orden solo decide entre AVD que aparecieron a la vez.
16
+ */
17
+ export function asignarPuertosPendientes(avds, ajustes) {
18
+ if (avds.length === 0)
19
+ return undefined;
20
+ const usados = new Set(Object.values(ajustes?.avds ?? {})
21
+ .map((a) => a.puerto)
22
+ .filter((p) => p !== undefined));
23
+ const nuevos = {};
24
+ let candidato = PUERTO_DEL_HOTSWAP;
25
+ for (const avd of [...avds].sort()) {
26
+ if (ajustes?.avds?.[avd]?.puerto !== undefined)
27
+ continue;
28
+ while (usados.has(candidato))
29
+ candidato++;
30
+ nuevos[avd] = candidato;
31
+ usados.add(candidato);
32
+ }
33
+ return Object.keys(nuevos).length === 0 ? undefined : nuevos;
34
+ }
35
+ export function motivoDePuertoInaceptable(puerto, avd, ajustes) {
36
+ if (!Number.isInteger(puerto) || puerto < 1024 || puerto > 65535) {
37
+ return "el puerto tiene que ser un número entero entre 1024 y 65535";
38
+ }
39
+ if (puerto >= PUERTOS_DE_EMULADOR.desde && puerto <= PUERTOS_DE_EMULADOR.hasta) {
40
+ return `del ${PUERTOS_DE_EMULADOR.desde} al ${PUERTOS_DE_EMULADOR.hasta} los usan los propios emuladores`;
41
+ }
42
+ for (const [otro, a] of Object.entries(ajustes?.avds ?? {})) {
43
+ if (otro !== avd && a.puerto === puerto)
44
+ return `el ${puerto} ya es de ${otro}`;
45
+ }
46
+ return undefined;
47
+ }
48
+ export function motivoDeNombreDeAvdInaceptable(nombre, existentes) {
49
+ if (nombre === "")
50
+ return "falta el nombre";
51
+ if (nombre.length > LARGO_MAXIMO_DE_NOMBRE)
52
+ return `el nombre no puede pasar de ${LARGO_MAXIMO_DE_NOMBRE} caracteres`;
53
+ if (!FORMA_DE_NOMBRE_DE_AVD.test(nombre)) {
54
+ return "solo letras, números, «.», «_» y «-», y sin empezar por «-»";
55
+ }
56
+ if (existentes.includes(nombre))
57
+ return `${nombre} ya existe`;
58
+ return undefined;
59
+ }
60
+ /** Los argumentos de `emulator`. Sin ventana lleva `-no-metrics`: su aviso será una pregunta que nadie ve. */
61
+ export function argsDeArranque(avd, opciones) {
62
+ return opciones.sinVentana === true ? ["-avd", avd, "-no-window", "-no-audio", "-no-metrics"] : ["-avd", avd];
63
+ }
64
+ //# sourceMappingURL=puertosDeAvd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"puertosDeAvd.js","sourceRoot":"","sources":["../../src/core/puertosDeAvd.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,73 @@ import { posix, win32 } from "node:path";
27
27
  /** Lo que tarda un diálogo en contestar lo pone una persona, así que el tope es largo: solo
28
28
  * existe para que un diálogo que nadie cierra no deje un proceso vivo para siempre. */
29
29
  export const TOPE_DEL_SELECTOR_MS = 5 * 60 * 1000;
30
+ const TITULO_DEL_SELECTOR = "Dónde se bajan los proyectos de XOneCode";
31
+ /**
32
+ * El C# que PowerShell compila al vuelo (`Add-Type`, en unas décimas de segundo) para abrir
33
+ * el diálogo moderno de carpetas de Windows: no hay otra forma de llegar a `IFileOpenDialog`
34
+ * desde PowerShell sin un binario propio que distribuir.
35
+ */
36
+ const SELECTOR_DE_WINDOWS = String.raw `using System;
37
+ using System.Runtime.InteropServices;
38
+ using System.Windows.Forms;
39
+ public static class SelectorXone {
40
+ [ComImport, Guid("DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7")] class FileOpenDialog {}
41
+ [ComImport, Guid("42f85136-db7e-439c-85f1-e4075d135fc8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
42
+ interface IFileOpenDialog {
43
+ [PreserveSig] int Show(IntPtr hwnd);
44
+ void SetFileTypes(); void SetFileTypeIndex(); void GetFileTypeIndex(); void Advise(); void Unadvise();
45
+ void SetOptions(uint fos); void GetOptions(out uint fos);
46
+ void SetDefaultFolder(IShellItem si); void SetFolder(IShellItem si);
47
+ void GetFolder(); void GetCurrentSelection(); void SetFileName(); void GetFileName();
48
+ void SetTitle([MarshalAs(UnmanagedType.LPWStr)] string t);
49
+ void SetOkButtonLabel(); void SetFileNameLabel();
50
+ void GetResult(out IShellItem si);
51
+ }
52
+ [ComImport, Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
53
+ interface IShellItem {
54
+ void BindToHandler(); void GetParent();
55
+ void GetDisplayName(uint sigdn, [MarshalAs(UnmanagedType.LPWStr)] out string name);
56
+ }
57
+ [StructLayout(LayoutKind.Sequential)] struct RECT { public int Left, Top, Right, Bottom; }
58
+ [DllImport("shell32.dll", CharSet = CharSet.Unicode, PreserveSig = false)]
59
+ static extern void SHCreateItemFromParsingName(string path, IntPtr pbc, [MarshalAs(UnmanagedType.LPStruct)] Guid riid, out IShellItem item);
60
+ [DllImport("user32.dll")] static extern bool SetForegroundWindow(IntPtr h);
61
+ [DllImport("user32.dll")] static extern IntPtr GetWindow(IntPtr h, uint cmd);
62
+ [DllImport("user32.dll")] static extern bool GetWindowRect(IntPtr h, out RECT r);
63
+ [DllImport("user32.dll")] static extern bool SetWindowPos(IntPtr h, IntPtr after, int x, int y, int cx, int cy, uint flags);
64
+ public static string Elegir(string titulo, string desde) {
65
+ var area = Screen.FromPoint(Cursor.Position).WorkingArea;
66
+ var duenyo = new Form { TopMost = true, ShowInTaskbar = false, FormBorderStyle = FormBorderStyle.None,
67
+ StartPosition = FormStartPosition.Manual, Opacity = 0 };
68
+ duenyo.Show();
69
+ duenyo.Bounds = new System.Drawing.Rectangle(area.Left + area.Width / 2, area.Top + area.Height / 2, 1, 1);
70
+ SetForegroundWindow(duenyo.Handle); duenyo.Activate();
71
+ var reloj = new Timer { Interval = 30 };
72
+ int intentos = 0;
73
+ reloj.Tick += (o, e) => {
74
+ if (++intentos > 100) { reloj.Stop(); return; }
75
+ IntPtr dlg = GetWindow(duenyo.Handle, 6);
76
+ if (dlg == IntPtr.Zero || dlg == duenyo.Handle) return;
77
+ RECT r; if (!GetWindowRect(dlg, out r)) return;
78
+ int w = r.Right - r.Left, h = r.Bottom - r.Top;
79
+ SetWindowPos(dlg, IntPtr.Zero, area.Left + (area.Width - w) / 2, area.Top + (area.Height - h) / 2, 0, 0, 0x0015);
80
+ reloj.Stop();
81
+ };
82
+ reloj.Start();
83
+ try {
84
+ var d = (IFileOpenDialog)new FileOpenDialog();
85
+ d.SetOptions(0x20 | 0x40);
86
+ d.SetTitle(titulo);
87
+ if (!string.IsNullOrEmpty(desde)) {
88
+ try { IShellItem si; SHCreateItemFromParsingName(desde, IntPtr.Zero, typeof(IShellItem).GUID, out si); d.SetFolder(si); } catch {}
89
+ }
90
+ if (d.Show(duenyo.Handle) != 0) return null;
91
+ IShellItem res; d.GetResult(out res);
92
+ string ruta; res.GetDisplayName(0x80058000, out ruta);
93
+ return ruta;
94
+ } finally { reloj.Stop(); duenyo.Close(); }
95
+ }
96
+ }`;
30
97
  /**
31
98
  * El comando que abre el selector, o AUSENTE si este sistema no tiene ninguno conocido.
32
99
  *
@@ -50,7 +117,7 @@ export function comandoDelSelector(plataforma, desde) {
50
117
  " on error",
51
118
  " set inicio to path to home folder",
52
119
  " end try",
53
- ' set elegida to choose folder with prompt "Dónde se bajan los proyectos de XOneCode" default location inicio',
120
+ ` set elegida to choose folder with prompt "${TITULO_DEL_SELECTOR}" default location inicio`,
54
121
  " return POSIX path of elegida",
55
122
  "end run",
56
123
  ].join("\n");
@@ -62,19 +129,31 @@ export function comandoDelSelector(plataforma, desde) {
62
129
  argumentos: [
63
130
  "--file-selection",
64
131
  "--directory",
65
- "--title=Dónde se bajan los proyectos de XOneCode",
132
+ `--title=${TITULO_DEL_SELECTOR}`,
66
133
  ...(desde === undefined ? [] : [`--filename=${desde.replace(/\/*$/, "/")}`]),
67
134
  ],
68
135
  };
69
136
  }
70
137
  if (plataforma === "win32") {
71
- // El diálogo de carpetas de Windows, por PowerShell (IXCODE-22: no había ninguno y el botón no hacía nada). `-STA` es
72
- // obligatorio para un diálogo de Forms. La ruta de inicio va entre comillas simples con las suyas dobladas.
73
- const inicio = desde === undefined ? "" : `$d.SelectedPath = '${desde.replace(/'/g, "''")}'; `;
74
- const guion = "Add-Type -AssemblyName System.Windows.Forms; $d = New-Object System.Windows.Forms.FolderBrowserDialog; " +
75
- "$d.Description = 'Dónde se bajan los proyectos de XOneCode'; " +
76
- inicio +
77
- "if ($d.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { $d.SelectedPath }";
138
+ // IXCODE-22, segunda vuelta. El `FolderBrowserDialog` de Forms es el árbol CLÁSICO: sin
139
+ // barra de direcciones ni campo donde teclear la ruta, y sin dueño se abría DETRÁS del
140
+ // navegador. Se usa el diálogo del Explorador actual (`IFileOpenDialog` en modo carpetas)
141
+ // con un dueño invisible `TopMost`, y se CENTRA a mano: el diálogo recuerda dónde se cerró
142
+ // la última vez y se abre ahí, no sobre su dueño. Probado en un Windows de verdad, lanzado
143
+ // como lo lanza `execFile` (hijo de node): sale delante y centrado, se teclea la ruta, y
144
+ // una carpeta con acentos vuelve entera —por el `OutputEncoding`: sin él stdout sale en la
145
+ // página de códigos de la consola—. La ruta de inicio va entre comillas simples con las
146
+ // suyas dobladas; `-STA` es obligatorio para un diálogo.
147
+ const inicio = desde === undefined ? "''" : `'${desde.replace(/'/g, "''")}'`;
148
+ const guion = [
149
+ "[Console]::OutputEncoding = [Text.Encoding]::UTF8",
150
+ "Add-Type -ReferencedAssemblies System.Windows.Forms,System.Drawing -TypeDefinition @'",
151
+ SELECTOR_DE_WINDOWS,
152
+ // El here-string de PowerShell exige que `'@` cierre al PRINCIPIO de una línea.
153
+ "'@",
154
+ `$r = [SelectorXone]::Elegir('${TITULO_DEL_SELECTOR}', ${inicio})`,
155
+ "if ($r) { $r }",
156
+ ].join("\n");
78
157
  return { programa: "powershell.exe", argumentos: ["-NoProfile", "-STA", "-Command", guion] };
79
158
  }
80
159
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"selectorDeCarpeta.js","sourceRoot":"","sources":["../../src/core/selectorDeCarpeta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selectorDeCarpeta.js","sourceRoot":"","sources":["../../src/core/selectorDeCarpeta.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { posix, win32 } from "node:path";
13
13
  import { CLAVES_DENEGADAS } from "./config.js";
14
+ import { FORMA_DE_NOMBRE_DE_AVD } from "./puertosDeAvd.js";
14
15
  /**
15
16
  * Las cuatro clases de destino en que se prueba una app XOne. No son cuatro herramientas
16
17
  * —`adb` sirve a la vez a los Android físicos y a los emuladores arrancados— sino las
@@ -161,6 +162,35 @@ function validarDispositivos(candidato) {
161
162
  if (typeof valor === "string" && valor.trim() !== "")
162
163
  salida[campo] = valor.trim();
163
164
  }
165
+ const avds = validarAvds(c.avds);
166
+ if (avds !== undefined)
167
+ salida.avds = avds;
168
+ return Object.keys(salida).length === 0 ? undefined : salida;
169
+ }
170
+ /** Por AVD: nombre con la forma de una carpeta de AVD, puerto entero, `sinVentana` solo `true`, procedencia. Lo demás se tira. */
171
+ function validarAvds(candidato) {
172
+ if (typeof candidato !== "object" || candidato === null)
173
+ return undefined;
174
+ const salida = {};
175
+ for (const [nombre, valor] of Object.entries(candidato)) {
176
+ if (!FORMA_DE_NOMBRE_DE_AVD.test(nombre) || typeof valor !== "object" || valor === null)
177
+ continue;
178
+ const v = valor;
179
+ const a = {};
180
+ if (typeof v.puerto === "number" && Number.isInteger(v.puerto) && v.puerto >= 1024 && v.puerto <= 65535)
181
+ a.puerto = v.puerto;
182
+ if (v.sinVentana === true)
183
+ a.sinVentana = true;
184
+ // La procedencia: el nombre con la forma de un AVD (acaba en una etiqueta, no en una ruta), y el
185
+ // clon solo con su origen: sin él no habría a quién decir «clon de».
186
+ if (typeof v.copiaDe === "string" && FORMA_DE_NOMBRE_DE_AVD.test(v.copiaDe)) {
187
+ a.copiaDe = v.copiaDe;
188
+ if (v.clon === true)
189
+ a.clon = true;
190
+ }
191
+ if (Object.keys(a).length > 0)
192
+ salida[nombre] = a;
193
+ }
164
194
  return Object.keys(salida).length === 0 ? undefined : salida;
165
195
  }
166
196
  /**
@@ -250,7 +280,7 @@ function segmentosComparables(a, b) {
250
280
  * del texto y no por `process.platform`, para que el módulo siga puro y se pueda probar en cualquier
251
281
  * máquina.
252
282
  */
253
- function esRutaDeWindows(ruta) {
283
+ export function esRutaDeWindows(ruta) {
254
284
  return /^[a-zA-Z]:[\\/]/.test(ruta) || ruta.startsWith("\\\\");
255
285
  }
256
286
  /**
@@ -429,4 +459,33 @@ export function motivoParaNoBorrarCopia(datos) {
429
459
  }
430
460
  return undefined;
431
461
  }
462
+ /**
463
+ * Por qué NO se puede cambiar el workspace ahora mismo —y con él MUDAR las copias que hay
464
+ * dentro—, o `undefined` si se puede.
465
+ *
466
+ * La hermana de `motivoParaNoBorrarCopia` para TODA la base, con la misma diferencia a
467
+ * propósito: una consola ABIERTA y en reposo no es motivo. La web tiene siempre una en foco,
468
+ * así que negarse por ella haría el cambio imposible; quien muda la cierra antes, en el orden
469
+ * de `vestibulo.borrarCopia`. Lo que sí para la mudanza es lo que está ESCRIBIENDO en la base:
470
+ *
471
+ * - un turno en vuelo en cualquier copia de la base (`trabajando`: sus raíces);
472
+ * - una consola de TAREA abierta (`deTareas`), que no se cierra por nadie;
473
+ * - una tarea de fondo sin terminar con su raíz bajo la base vieja —`requiere-atencion`
474
+ * incluida: espera feedback y la cola la volvería a abrir en la ruta de antes—.
475
+ */
476
+ export function motivoParaNoMudarWorkspace(datos) {
477
+ const suya = (raiz) => dentroDelWorkspace(raiz, datos.base);
478
+ const enVuelo = datos.trabajando.filter(suya);
479
+ if (enVuelo.length > 0) {
480
+ return `hay ${enVuelo.length === 1 ? "un chat trabajando" : `${enVuelo.length} chats trabajando`} en un proyecto del workspace: espera a que termine o páralo antes de cambiar la carpeta`;
481
+ }
482
+ if (datos.deTareas.some(suya)) {
483
+ return "hay una tarea de fondo corriendo en un proyecto del workspace: espera a que termine antes de cambiar la carpeta";
484
+ }
485
+ const viva = datos.tareas.filter((t) => t.estado !== "terminada" && suya(t.raiz));
486
+ if (viva.length > 0) {
487
+ return `hay ${viva.length} ${viva.length === 1 ? "tarea de fondo" : "tareas de fondo"} sin terminar en el workspace: termínalas o descártalas antes de cambiar la carpeta`;
488
+ }
489
+ return undefined;
490
+ }
432
491
  //# sourceMappingURL=settings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/core/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/core/settings.ts"],"names":[],"mappings":"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"}
@@ -193,6 +193,17 @@ export function motivoDeComandoRechazado(comando) {
193
193
  if (buscaFicheros.some((p) => p.test(comando))) {
194
194
  return `No se lanza: para buscar ficheros no uses la shell. ${tools} Si lo que buscas es un script de tus skills, está en el PATH.`;
195
195
  }
196
+ // El túnel de hotswap es del APARATO (su puerto está en Ajustes → Dispositivos) y lo ponen los
197
+ // scripts. Medido: un `adb forward` al mismo puerto local le QUITA el túnel al aparato de otra
198
+ // sesión sin dar error. `--list` solo mira, y pasa. `reverse` tampoco se rechaza: no toca puertos LOCALES del
199
+ // Mac (abre uno en el aparato) y tiene usos legítimos.
200
+ const adb = String.raw `(?:adb|"?\$\{?XONECODE_ADB\}?"?)`;
201
+ const tunelAMano = new RegExp(String.raw `${inicio}${adb}\s+(?:-[de]\s+|-\S+\s+\S+\s+)*forward\s+(?!--list${fin})`);
202
+ if (tunelAMano.test(comando)) {
203
+ return ("No se lanza: el túnel al aparato lo ponen `xone-desplegar-android` y `xone-reiniciar-android`, con el puerto que " +
204
+ "tiene ESTE aparato; un `adb forward` a mano puede quitarle el túnel al aparato de otra sesión sin avisar. Para " +
205
+ "hablar con la app usa `xone-hotswap`, que ya sabe a qué puerto ir. Mirar los túneles (`adb forward --list`) sí se puede.");
206
+ }
196
207
  return undefined;
197
208
  }
198
209
  //# sourceMappingURL=shellDeAgente.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shellDeAgente.js","sourceRoot":"","sources":["../../src/core/shellDeAgente.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shellDeAgente.js","sourceRoot":"","sources":["../../src/core/shellDeAgente.ts"],"names":[],"mappings":"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"}