xonecode 0.22.0 → 0.23.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.
- package/apps/web/dist/assets/{index-5rtynJV_.js → index-CLQDE24i.js} +75 -75
- package/apps/web/dist/assets/{index-Cq6c6WEF.css → index-gpgG7Ir4.css} +1 -1
- package/apps/web/dist/assets/{php-BTFUgUDo.js → php-CQxmz2B6.js} +1 -1
- package/apps/web/dist/assets/{ruby-BKKiBtJK.js → ruby-CipCmGZU.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/dist/agent/cloudstudio/cloudstudioClient.js +32 -5
- package/dist/agent/cloudstudio/cloudstudioClient.js.map +1 -1
- package/dist/agent/cloudstudio/descarga.js +10 -0
- package/dist/agent/cloudstudio/descarga.js.map +1 -1
- package/dist/agent/cloudstudio/subida.js +31 -6
- package/dist/agent/cloudstudio/subida.js.map +1 -1
- package/dist/agent/cloudstudio/validarTrasDescarga.js +79 -0
- package/dist/agent/cloudstudio/validarTrasDescarga.js.map +1 -0
- package/dist/agent/config/configEnDisco.js +27 -0
- package/dist/agent/config/configEnDisco.js.map +1 -1
- package/dist/agent/config/settingsEnDisco.js +14 -0
- package/dist/agent/config/settingsEnDisco.js.map +1 -1
- package/dist/agent/grafo/proyecto.js +22 -2
- package/dist/agent/grafo/proyecto.js.map +1 -1
- package/dist/agent/motores/trueforge/capacidades.js +5 -3
- package/dist/agent/motores/trueforge/capacidades.js.map +1 -1
- package/dist/agent/motores/trueforge/sesionTrueforge.js +3 -1
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/motores/trueforge/toolsDeFichero.js +6 -3
- package/dist/agent/motores/trueforge/toolsDeFichero.js.map +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/core/config.js +21 -3
- package/dist/core/config.js.map +1 -1
- package/dist/core/dispositivoDeSesion.js +21 -1
- package/dist/core/dispositivoDeSesion.js.map +1 -1
- package/dist/core/modoDeEscritura.js +21 -3
- package/dist/core/modoDeEscritura.js.map +1 -1
- package/dist/core/settings.js +3 -0
- package/dist/core/settings.js.map +1 -1
- package/dist/core/shellDeAgente.js +57 -0
- package/dist/core/shellDeAgente.js.map +1 -1
- package/dist/core/validacionDeEscritura.js +19 -11
- package/dist/core/validacionDeEscritura.js.map +1 -1
- package/dist/web/servidor/arranque.js +102 -3
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/transporte.js.map +1 -1
- package/dist/web/servidor/vestibulo.js +18 -3
- package/dist/web/servidor/vestibulo.js.map +1 -1
- package/package.json +1 -1
- package/skills/xone-hotswap/SKILL.md +6 -5
- package/skills/xone-hotswap/lib/dispositivo.mjs +58 -13
- package/skills/xone-hotswap/scripts/xone-arrancar-android +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validacionDeEscritura.js","sourceRoot":"","sources":["../../src/core/validacionDeEscritura.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAUH;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,CAAsB;IACpC,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;AACxC,CAAC;AASD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAwC,EACxC,OAA8B;IAE9B,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;QAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/F,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,MAAM,aAAa,GAA0B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACzC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"validacionDeEscritura.js","sourceRoot":"","sources":["../../src/core/validacionDeEscritura.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,12 +66,12 @@ import { borrarCredencial, guardarCredencial } from "../../agent/config/authEnDi
|
|
|
66
66
|
import { borrarProveedorPersonalizado, guardarProveedorPersonalizado, proveedoresPersonalizados, } from "../../agent/config/configEnDisco.js";
|
|
67
67
|
import { crearCheckpointerDeProyecto, mantenimientoDelCheckpointer, } from "../../agent/sesiones/checkpointer.js";
|
|
68
68
|
import { resumenDePoda } from "../../core/podaDeCheckpoint.js";
|
|
69
|
-
import { cargarSettings, guardarConcurrenciaDeTareas, guardarDepurar, guardarWorkspace as guardarWorkspaceEnDisco, guardarDispositivos, guardarAjusteDeAvd, quitarAjustesDeAvd, guardarPuertosAsignados, guardarEntorno as guardarEntornoEnDisco, olvidarEntornoDeSettings, copiasDeEntorno, borrarCopiasDeEntorno, } from "../../agent/config/settingsEnDisco.js";
|
|
69
|
+
import { cargarSettings, guardarConcurrenciaDeTareas, guardarDepurar, guardarModoPorDefecto, guardarWorkspace as guardarWorkspaceEnDisco, guardarDispositivos, guardarAjusteDeAvd, quitarAjustesDeAvd, guardarPuertosAsignados, guardarEntorno as guardarEntornoEnDisco, olvidarEntornoDeSettings, copiasDeEntorno, borrarCopiasDeEntorno, } from "../../agent/config/settingsEnDisco.js";
|
|
70
70
|
import { dentroDelWorkspace, depuracionActiva, expandirConCasa, mismaRuta, motivoParaNoOlvidarEntorno, motivoDeNombreDeEntornoInaceptable, motivoDeWorkspaceInaceptable, } from "../../core/settings.js";
|
|
71
71
|
import { esModoDeEscritura, MODO_POR_OMISION, } from "../../core/modoDeEscritura.js";
|
|
72
72
|
import { megasDeLasMudanzas, mudarWorkspaceLegado } from "../../agent/config/mudanzaEnDisco.js";
|
|
73
73
|
import { elegirCarpetaEnMaquina, haySelectorDeCarpeta } from "../../agent/config/selectorEnMaquina.js";
|
|
74
|
-
import { cloudstudioDelProyecto } from "../../agent/config/configEnDisco.js";
|
|
74
|
+
import { cloudstudioDelProyecto, guardarModoDeEscrituraDeProyecto, modoDeEscrituraDelProyecto } from "../../agent/config/configEnDisco.js";
|
|
75
75
|
import { abrirEnSistema, olvidarEntorno as olvidarCredencialesDeEntorno, rutaAuthPorDefecto } from "../../agent/cloudstudio/cloudstudioMcp.js";
|
|
76
76
|
import { nombreDePersona } from "../../agent/config/persona.js";
|
|
77
77
|
import { cambiosDeSesion, fotoDeApertura, olvidarSesion, parcheDeSesion } from "../../agent/sesiones/sesionGit.js";
|
|
@@ -1101,6 +1101,8 @@ export function montarRutas(servidor, vestibulo, opciones = {}) {
|
|
|
1101
1101
|
// La casilla «Depurar», por lo mismo que el workspace: Ajustes se puede abrir en cuanto
|
|
1102
1102
|
// conecta.
|
|
1103
1103
|
const depuracion = mensajeDeDepuracion();
|
|
1104
|
+
// El modo de las sesiones nuevas (IXCODE-31), por lo mismo: está en Ajustes > General.
|
|
1105
|
+
const modoPorDefecto = mensajeDeModoPorDefecto();
|
|
1104
1106
|
// Y los conectores MCP, tras el workspace y por la misma regla: solo si esta ejecución
|
|
1105
1107
|
// los monta, y entonces la ventana de Ajustes no se abre con la sección en blanco.
|
|
1106
1108
|
const conectores = mensajeDeConectores();
|
|
@@ -1127,6 +1129,8 @@ export function montarRutas(servidor, vestibulo, opciones = {}) {
|
|
|
1127
1129
|
cliente({ clase: "mudanzaDeWorkspace", progreso: ultimoProgresoDeMudanza });
|
|
1128
1130
|
if (depuracion !== undefined)
|
|
1129
1131
|
cliente(depuracion);
|
|
1132
|
+
if (modoPorDefecto !== undefined)
|
|
1133
|
+
cliente(modoPorDefecto);
|
|
1130
1134
|
if (conectores !== undefined)
|
|
1131
1135
|
cliente(conectores);
|
|
1132
1136
|
if (consumoDeLaSesion !== undefined) {
|
|
@@ -1302,6 +1306,10 @@ export function montarRutas(servidor, vestibulo, opciones = {}) {
|
|
|
1302
1306
|
if (m !== undefined)
|
|
1303
1307
|
emitir(m);
|
|
1304
1308
|
};
|
|
1309
|
+
const mensajeDeModoPorDefecto = () => {
|
|
1310
|
+
const modo = opciones.modoPorDefectoGlobal?.();
|
|
1311
|
+
return modo === undefined ? undefined : { clase: "modoPorDefecto", modo };
|
|
1312
|
+
};
|
|
1305
1313
|
/**
|
|
1306
1314
|
* El servicio de conectores, construido UNA VEZ al montar — no en cada mensaje, porque es
|
|
1307
1315
|
* quien guarda en memoria las pruebas y las autorizaciones pendientes (`servicioDeConectores.ts`).
|
|
@@ -4918,11 +4926,59 @@ export function montarRutas(servidor, vestibulo, opciones = {}) {
|
|
|
4918
4926
|
const { clase: _clase, ...medida } = await lecturaDeSync(raiz);
|
|
4919
4927
|
sync = medida;
|
|
4920
4928
|
}
|
|
4921
|
-
|
|
4929
|
+
// El modo de las sesiones nuevas de ESTE proyecto (IXCODE-31): solo con copia, que es
|
|
4930
|
+
// donde vive su `config.json`; dentro, ausente es «como el global».
|
|
4931
|
+
const modoDeEscritura = opciones.modoDelProyecto === undefined || !esProyectoEnDisco(raiz)
|
|
4932
|
+
? undefined
|
|
4933
|
+
: (() => {
|
|
4934
|
+
const proyecto = opciones.modoDelProyecto(raiz);
|
|
4935
|
+
return proyecto === undefined ? {} : { proyecto };
|
|
4936
|
+
})();
|
|
4937
|
+
const foto = {
|
|
4938
|
+
tareas,
|
|
4939
|
+
...(sync === undefined ? {} : { sync }),
|
|
4940
|
+
...(modoDeEscritura === undefined ? {} : { modoDeEscritura }),
|
|
4941
|
+
};
|
|
4922
4942
|
respuesta.writeHead(200, { "content-type": "application/json" });
|
|
4923
4943
|
respuesta.end(JSON.stringify(foto));
|
|
4924
4944
|
return;
|
|
4925
4945
|
}
|
|
4946
|
+
if (typeof mensaje === "object" && mensaje !== null && mensaje.clase === "copiaLocal" && mensaje.accion === "modoDeEscritura") {
|
|
4947
|
+
// IXCODE-31. Del cable llega el ID y, opcional, el modo; la raíz la pone el servidor,
|
|
4948
|
+
// como en `resumen`. Sin `modo` se QUITA: vuelve a mandar el global.
|
|
4949
|
+
const pedido = mensaje.modo;
|
|
4950
|
+
if (pedido !== undefined && !esModoDeEscritura(pedido)) {
|
|
4951
|
+
respuesta.writeHead(400);
|
|
4952
|
+
respuesta.end();
|
|
4953
|
+
return;
|
|
4954
|
+
}
|
|
4955
|
+
const identidad = proyectos.find((p) => p.id === mensaje.proyecto);
|
|
4956
|
+
const raiz = entornoElegido === undefined || identidad === undefined
|
|
4957
|
+
? undefined
|
|
4958
|
+
: vestibulo.raizDeProyecto(entornoElegido, identidad.nombre);
|
|
4959
|
+
if (raiz === undefined || !esProyectoEnDisco(raiz) || opciones.guardarModoDelProyecto === undefined) {
|
|
4960
|
+
respuesta.writeHead(409, { "content-type": "application/json" });
|
|
4961
|
+
respuesta.end(JSON.stringify({
|
|
4962
|
+
motivo: raiz === undefined
|
|
4963
|
+
? "ese proyecto no está en el listado del entorno activo"
|
|
4964
|
+
: "el proyecto no tiene copia local: el modo se guarda en su configuración",
|
|
4965
|
+
}));
|
|
4966
|
+
return;
|
|
4967
|
+
}
|
|
4968
|
+
try {
|
|
4969
|
+
opciones.guardarModoDelProyecto(raiz, pedido);
|
|
4970
|
+
}
|
|
4971
|
+
catch (error) {
|
|
4972
|
+
// Un `config.json` roto PARA sin escribir (`leerObjetoCrudoOAbortar`): se dice, sin la ruta.
|
|
4973
|
+
respuesta.writeHead(409, { "content-type": "application/json" });
|
|
4974
|
+
respuesta.end(JSON.stringify({ motivo: `no se pudo guardar en la configuración del proyecto (${codigoDe(error) ?? "su config.json no se puede leer"})` }));
|
|
4975
|
+
return;
|
|
4976
|
+
}
|
|
4977
|
+
const proyecto = opciones.modoDelProyecto?.(raiz);
|
|
4978
|
+
respuesta.writeHead(200, { "content-type": "application/json" });
|
|
4979
|
+
respuesta.end(JSON.stringify(proyecto === undefined ? {} : { proyecto }));
|
|
4980
|
+
return;
|
|
4981
|
+
}
|
|
4926
4982
|
if (typeof mensaje === "object" && mensaje !== null && mensaje.clase === "soporte" && mensaje.accion === "listar") {
|
|
4927
4983
|
// El listado de la pestaña Soporte, con el análisis PREVIO de cada chat y cada tarea
|
|
4928
4984
|
// (`core/analisisDeSesion.ts`), contestado en la propia respuesta como `resumen`.
|
|
@@ -5372,6 +5428,18 @@ export function montarRutas(servidor, vestibulo, opciones = {}) {
|
|
|
5372
5428
|
respuesta.end();
|
|
5373
5429
|
return;
|
|
5374
5430
|
}
|
|
5431
|
+
if (typeof mensaje === "object" && mensaje !== null && mensaje.clase === "modoPorDefecto") {
|
|
5432
|
+
// Un modo que no existe no se guarda: el cliente manda la intención, el servidor decide.
|
|
5433
|
+
if (esModoDeEscritura(mensaje.modo)) {
|
|
5434
|
+
opciones.guardarModoPorDefectoGlobal?.(mensaje.modo);
|
|
5435
|
+
const m = mensajeDeModoPorDefecto();
|
|
5436
|
+
if (m !== undefined)
|
|
5437
|
+
emitir(m);
|
|
5438
|
+
}
|
|
5439
|
+
respuesta.writeHead(204);
|
|
5440
|
+
respuesta.end();
|
|
5441
|
+
return;
|
|
5442
|
+
}
|
|
5375
5443
|
if (typeof mensaje === "object" && mensaje !== null && mensaje.clase === "depuracion" && typeof mensaje.activa === "boolean") {
|
|
5376
5444
|
opciones.guardarDepuracion?.(mensaje.activa);
|
|
5377
5445
|
emitirDepuracion();
|
|
@@ -6156,6 +6224,32 @@ export function ajusteDeDepuracionCableado(opciones = {}) {
|
|
|
6156
6224
|
guardarDepuracion: (activa) => guardar(activa),
|
|
6157
6225
|
};
|
|
6158
6226
|
}
|
|
6227
|
+
/**
|
|
6228
|
+
* El modo con que NACEN las sesiones nuevas (IXCODE-31), cableado: el global
|
|
6229
|
+
* (`settings.json#modoDeEscritura`, Ajustes > General) y el de cada proyecto
|
|
6230
|
+
* (`.xonecode/config.json#modoDeEscritura`, panel del proyecto). Extraída por el patrón de
|
|
6231
|
+
* fallo de siempre, y con una trampa concreta que el test vigila: el del proyecto se lee por la
|
|
6232
|
+
* RAÍZ, porque en la web `fuentes().proyecto` no se rellena nunca — leerlo de ahí daría el
|
|
6233
|
+
* ajuste por guardado y no se aplicaría jamás.
|
|
6234
|
+
*/
|
|
6235
|
+
export function ajusteDeModoPorDefectoCableado(opciones = {}) {
|
|
6236
|
+
const leerGlobal = opciones.leerGlobal ?? (() => cargarSettings().settings.modoDeEscritura);
|
|
6237
|
+
const guardarGlobal = opciones.guardarGlobal ?? ((modo) => void guardarModoPorDefecto(undefined, modo));
|
|
6238
|
+
const leerProyecto = opciones.leerProyecto ?? modoDeEscrituraDelProyecto;
|
|
6239
|
+
const guardarProyecto = opciones.guardarProyecto ??
|
|
6240
|
+
((raiz, modo) => void guardarModoDeEscrituraDeProyecto(raiz, modo));
|
|
6241
|
+
return {
|
|
6242
|
+
modoPorDefecto: (raiz) => {
|
|
6243
|
+
const proyecto = leerProyecto(raiz);
|
|
6244
|
+
const global = leerGlobal();
|
|
6245
|
+
return { ...(proyecto === undefined ? {} : { proyecto }), ...(global === undefined ? {} : { global }) };
|
|
6246
|
+
},
|
|
6247
|
+
modoPorDefectoGlobal: () => leerGlobal() ?? MODO_POR_OMISION,
|
|
6248
|
+
guardarModoPorDefectoGlobal: (modo) => guardarGlobal(modo),
|
|
6249
|
+
modoDelProyecto: (raiz) => leerProyecto(raiz),
|
|
6250
|
+
guardarModoDelProyecto: (raiz, modo) => guardarProyecto(raiz, modo),
|
|
6251
|
+
};
|
|
6252
|
+
}
|
|
6159
6253
|
/**
|
|
6160
6254
|
* La opción `conectores` de `montarRutas`, cableada — extraída por el MISMO motivo que
|
|
6161
6255
|
* `ajusteDeWorkspaceCableado`: un literal inline dentro de `arrancarConsolaWeb` no quedaría
|
|
@@ -6553,6 +6647,9 @@ export async function arrancarConsolaWeb(opciones) {
|
|
|
6553
6647
|
// La casilla «Depurar», con la MISMA disciplina: composición extraída y probada
|
|
6554
6648
|
// (`ajusteDeDepuracionCableado`).
|
|
6555
6649
|
...ajusteDeDepuracionCableado(),
|
|
6650
|
+
// El modo con que nacen las sesiones nuevas (IXCODE-31), con la MISMA disciplina. El
|
|
6651
|
+
// lector por raíz va al vestíbulo (`vestibuloReal`); aquí, los de Ajustes y del panel.
|
|
6652
|
+
...(({ modoPorDefecto: _paraElVestibulo, ...resto }) => resto)(ajusteDeModoPorDefectoCableado()),
|
|
6556
6653
|
// Los conectores MCP, con la MISMA disciplina: la composición extraída y probada
|
|
6557
6654
|
// (`ajusteDeConectoresCableado`), nunca un literal aquí dentro.
|
|
6558
6655
|
// Y el gestor de tareas (IXCODE-11) llama por ESE mismo servicio: los dos salen de
|
|
@@ -6808,6 +6905,8 @@ function vestibuloReal(opciones, servidor, escribir, informar, conectores) {
|
|
|
6808
6905
|
informar,
|
|
6809
6906
|
origenDeTrabajo: resolver(fuentes()).trabajo.origen,
|
|
6810
6907
|
fuentes,
|
|
6908
|
+
// Con qué modo nace una sesión nueva (IXCODE-31): el del proyecto de ESA raíz, si no el global.
|
|
6909
|
+
modoPorDefecto: ajusteDeModoPorDefectoCableado().modoPorDefecto,
|
|
6811
6910
|
// Se resuelve UNA vez, aquí, y no en cada `anunciarAlta`: `git config`/`os.userInfo`
|
|
6812
6911
|
// no cambian a media conexión, y repetir el subproceso en cada anuncio del alta sería
|
|
6813
6912
|
// gastar sin motivo. Nunca viaja hacia CloudStudio ni hacia ningún acto —
|