xonecode 0.38.39 → 0.38.44

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 (27) hide show
  1. package/apps/web/dist/assets/{EditorDeFichero-BJtZcWxU.js → EditorDeFichero-BeWDctgN.js} +1 -1
  2. package/apps/web/dist/assets/{index-C7He5FCe.js → index-B-6cDRAV.js} +41 -41
  3. package/apps/web/dist/assets/{php-rRoDNmGQ.js → php-D3QdOnb8.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-RX1ckLBs.js → ruby-DDAcW-Z2.js} +1 -1
  5. package/apps/web/dist/index.html +1 -1
  6. package/dist/agent/config/diagnosticoDeNodeEnMaquina.js +8 -0
  7. package/dist/agent/config/diagnosticoDeNodeEnMaquina.js.map +1 -1
  8. package/dist/agent/exportarPdf.js +18 -2
  9. package/dist/agent/exportarPdf.js.map +1 -1
  10. package/dist/agent/motores/trueforge/medidaAutomatica.js +4 -2
  11. package/dist/agent/motores/trueforge/medidaAutomatica.js.map +1 -1
  12. package/dist/agent/motores/trueforge/sesionTrueforge.js +54 -16
  13. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
  14. package/dist/agent/subagentes/subagenteExterno.js +81 -6
  15. package/dist/agent/subagentes/subagenteExterno.js.map +1 -1
  16. package/dist/agent/turno/diagnosticoDeTools.js +14 -0
  17. package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
  18. package/dist/core/comandoExterno.js +3 -1
  19. package/dist/core/comandoExterno.js.map +1 -1
  20. package/dist/core/diagnosticoDeNode.js +1 -1
  21. package/dist/core/diagnosticoDeNode.js.map +1 -1
  22. package/dist/core/ports.js.map +1 -1
  23. package/dist/core/shellDeAgente.js +24 -0
  24. package/dist/core/shellDeAgente.js.map +1 -1
  25. package/dist/web/servidor/soporte.js +10 -1
  26. package/dist/web/servidor/soporte.js.map +1 -1
  27. package/package.json +1 -1
@@ -7,7 +7,7 @@
7
7
  <!-- El icono oficial, servido por Vite desde `iconos/`. Es el mismo fichero que la
8
8
  marca de la barra superior: dos copias del logo acaban siendo dos logos. -->
9
9
  <link rel="icon" type="image/png" href="./iconos/xonecode.png" />
10
- <script type="module" crossorigin src="./assets/index-C7He5FCe.js"></script>
10
+ <script type="module" crossorigin src="./assets/index-B-6cDRAV.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="./assets/index-BQdHnRbo.css">
12
12
  </head>
13
13
  <!-- Sin el atributo aquí: el oscuro es SOLO del splash (el registro de entorno y
@@ -11,6 +11,7 @@ import { scriptsConRuta } from "../grafo/proyecto.js";
11
11
  import { skillsConRuta } from "../grafo/skills.js";
12
12
  import { binarioDeClaudeDelSdk } from "../motores/motoresLocales.js";
13
13
  import { comoLanzarElSimulador } from "../turno/verificador.js";
14
+ import { navegadorParaImprimir } from "../exportarPdf.js";
14
15
  /**
15
16
  * Las medidas de `core/diagnosticoDeNode.ts` en la máquina de verdad. Cada una con su tope, y ninguna devuelve una ruta:
16
17
  * los motivos salen de `motivoDeFallo` (el `code`, nunca el mensaje de Node). Las dependencias se inyectan para que el
@@ -119,6 +120,13 @@ export async function medirDiagnosticoDeNode(deps = {}) {
119
120
  scripts: await scripts,
120
121
  simulador: await simulador,
121
122
  claudeCode: await claudeCode,
123
+ // Solo el NOMBRE del programa (msedge.exe, Google Chrome): la ruta no cruza.
124
+ navegador: (() => {
125
+ const n = (deps.navegador ?? (() => navegadorParaImprimir(existsSync, plataforma)))();
126
+ return n === undefined
127
+ ? { ok: false, motivo: "no hay Chrome, Edge, Chromium ni Brave: el crítico no podrá medir la maqueta" }
128
+ : { ok: true, valor: n.split(/[\\/]/).pop() ?? n };
129
+ })(),
122
130
  };
123
131
  }
124
132
  //# sourceMappingURL=diagnosticoDeNodeEnMaquina.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticoDeNodeEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/config/diagnosticoDeNodeEnMaquina.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAmD,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AAEH,sGAAsG;AACtG,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,qFAAqF;AACrF,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAwBxC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,IAAuB,EACvB,QAA8D;IAE9D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAwC,CAAC;IAC9D,yHAAyH;IACzH,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChL,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1K,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,0HAA0H;AAC1H,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5I,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,IAAI,CAAC;QACH,OAAQ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAA0B,CAAC,OAAO,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,OAAQ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,6CAA6C,CAAoC,CAAC,iBAAiB,CAAC;IAC7I,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAmC,EAAE;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAoC,EAA+B,EAAE;QAC3F,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,mBAAmB,CAAC,EAAE,CAAC;IAChE,wFAAwF;IACxF,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtI,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACtH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GACX,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QACjG,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,sGAAsG;YACtG,oHAAoH;YACpH,MAAM,CAAC,OAAO;gBACZ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;gBACzG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC;QACpC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,qBAAqB,CAAC,EAAE,CAAC;QAC1E,gHAAgH;QAChH,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,kHAAkH;YAClH,oFAAoF;YACpF,MAAM,MAAM,GAAI,CAA0B,CAAC,MAAM,CAAC;YAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,OAAO,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAgC,CAAC,KAAK,IAAI,EAAE;QAC1D,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5G,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;QACpG,0EAA0E;QAC1E,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7F,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,qBAAqB,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;QAC1D,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE;QACzH,UAAU,EAAE,MAAM,UAAU;QAC5B,OAAO,EAAE,MAAM,OAAO;QACtB,SAAS,EAAE,MAAM,SAAS;QAC1B,UAAU,EAAE,MAAM,UAAU;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"diagnosticoDeNodeEnMaquina.js","sourceRoot":"","sources":["../../../src/agent/config/diagnosticoDeNodeEnMaquina.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAmD,MAAM,iCAAiC,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AAEH,sGAAsG;AACtG,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,qFAAqF;AACrF,MAAM,gBAAgB,GAAG,cAAc,CAAC;AA0BxC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,IAAuB,EACvB,QAA8D;IAE9D,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAwC,CAAC;IAC9D,yHAAyH;IACzH,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAChL,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1K,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,0HAA0H;AAC1H,SAAS,mBAAmB;IAC1B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9E,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5I,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,IAAI,CAAC;QACH,OAAQ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAA0B,CAAC,OAAO,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,CAAC;QACH,OAAQ,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,6CAA6C,CAAoC,CAAC,iBAAiB,CAAC;IAC7I,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAmC,EAAE;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,KAAK,OAAO,CAAC;IAEvC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAoC,EAA+B,EAAE;QAC3F,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAClE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,mBAAmB,CAAC,EAAE,CAAC;IAChE,wFAAwF;IACxF,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtI,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACtH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GACX,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QACjG,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClB,sGAAsG;YACtG,oHAAoH;YACpH,MAAM,CAAC,OAAO;gBACZ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;gBACzG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,GAAG,OAAO,CAAC,MAAM,SAAS,CAAC;QACpC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,qBAAqB,CAAC,EAAE,CAAC;QAC1E,gHAAgH;QAChH,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACtG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,kHAAkH;YAClH,oFAAoF;YACpF,MAAM,MAAM,GAAI,CAA0B,CAAC,MAAM,CAAC;YAClD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,OAAO,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAgC,CAAC,KAAK,IAAI,EAAE;QAC1D,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5G,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;QACpG,0EAA0E;QAC1E,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;YACzB,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC7F,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,qBAAqB,CAAC,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;QAC1D,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE;QACzH,UAAU,EAAE,MAAM,UAAU;QAC5B,OAAO,EAAE,MAAM,OAAO;QACtB,SAAS,EAAE,MAAM,SAAS;QAC1B,UAAU,EAAE,MAAM,UAAU;QAC5B,6EAA6E;QAC7E,SAAS,EAAE,CAAC,GAAuB,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,KAAK,SAAS;gBACpB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8EAA8E,EAAE;gBACvG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACvD,CAAC,CAAC,EAAE;KACL,CAAC;AACJ,CAAC"}
@@ -36,10 +36,26 @@ export const NAVEGADORES_CONOCIDOS = [
36
36
  "/usr/bin/google-chrome",
37
37
  "/usr/bin/google-chrome-stable",
38
38
  ];
39
+ /**
40
+ * Los de WINDOWS, por sus carpetas de programas (de las variables, nunca una letra de unidad a fuego). Edge va primero: lo
41
+ * trae todo Windows. Medido en la máquina Windows de un usuario: con solo las rutas de macOS y Linux, el crítico de pantalla
42
+ * decía «no hay Chrome ni Chromium» y comparaba contra una descripción en vez de medir las cajas de la maqueta.
43
+ */
44
+ export function navegadoresDeWindows(entorno) {
45
+ const bases = [entorno["ProgramFiles(x86)"], entorno["ProgramFiles"], entorno["LOCALAPPDATA"]].filter((b) => b !== undefined && b !== "");
46
+ const relativos = [
47
+ "Microsoft\\Edge\\Application\\msedge.exe",
48
+ "Google\\Chrome\\Application\\chrome.exe",
49
+ "Chromium\\Application\\chrome.exe",
50
+ "BraveSoftware\\Brave-Browser\\Application\\brave.exe",
51
+ ];
52
+ return relativos.flatMap((r) => bases.map((b) => `${b.replace(/[\\/]$/, "")}\\${r}`));
53
+ }
39
54
  /** El primero que exista, o AUSENTE. Ausente = aquí no se puede imprimir, y se DICE con el
40
55
  * remedio: no hay forma de adivinar que lo que falta es un navegador. */
41
- export function navegadorParaImprimir(existe = existsSync) {
42
- return NAVEGADORES_CONOCIDOS.find((ruta) => existe(ruta));
56
+ export function navegadorParaImprimir(existe = existsSync, plataforma = process.platform, entorno = process.env) {
57
+ const lista = plataforma === "win32" ? navegadoresDeWindows(entorno) : [...NAVEGADORES_CONOCIDOS];
58
+ return lista.find((ruta) => existe(ruta));
43
59
  }
44
60
  /** Qué decir cuando no hay ninguno. Vive aquí y no en quien llama para que las tres pieles
45
61
  * digan lo mismo. */
@@ -1 +1 @@
1
- {"version":3,"file":"exportarPdf.js","sourceRoot":"","sources":["../../src/agent/exportarPdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exportarPdf.js","sourceRoot":"","sources":["../../src/agent/exportarPdf.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,11 @@ import { compararPantallas, desajusteDeEncaje, informeDeComparacion, TOLERANCIA_
19
19
  import { decodificarImagen } from "../../dispositivos/decodificarImagen.js";
20
20
  /**
21
21
  * Rondas VISUALES por encargo: una por captura medida. calc9, calc12 y calc13 sacaron 20-25 capturas cada una, retocando
22
- * una o dos cosas por despliegue. Con el aviso, la tercera se DICE la última: después se devuelve con lo que falta.
22
+ * una o dos cosas por despliegue. Con el aviso, la última se DICE: después se devuelve con lo que falta. Eran tres, y medido
23
+ * en Maset con DeepSeek flash el desarrollador devolvía a la tercera con una fila de la maqueta sin pintar: se subieron
24
+ * a cinco. El prompt del desarrollador dice este MISMO número (`textoDelBucle`).
23
25
  */
24
- export const RONDAS_VISUALES = 3;
26
+ export const RONDAS_VISUALES = 5;
25
27
  /** El criterio de aceptación por omisión del bucle (`textoDelBucle`): por debajo, en vertical Y en horizontal. */
26
28
  export const CRITERIO_DE_DISTANCIA = 0.1;
27
29
  const ES_IMAGEN = /\.(png|jpe?g)$/i;
@@ -1 +1 @@
1
- {"version":3,"file":"medidaAutomatica.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/medidaAutomatica.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"medidaAutomatica.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/medidaAutomatica.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAoB,MAAM,mCAAmC,CAAC;AACvJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,kHAAkH;AAClH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAiB,EAAE,UAAmB;IAChF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,MAAM,SAAS,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;YAC1E,IAAI,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,UAAU,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACpG,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACtF,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI;QAC/B,CAAC,MAAM,EAAE,UAAU,CAAC;QACpB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;KACrD,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACpG,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,OAAe;IAC5D,IAAI,KAAgD,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,KAAa,EAAQ,EAAE;QACjD,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC;YACP,IAAI,CAAC;gBACH,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,0FAA0F;gBAC1F,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC;oBAAE,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACrF,CAAC;iBAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvG,KAAK,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClB,OAAO,KAAK,EAAE,MAAM,CAAC;AACvB,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,OAAe;IACjE,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AAE9D,gIAAgI;AAChI,MAAM,UAAU,gBAAgB,CAAC,CAA4E;IAC3G,OAAO,CACL,CAAC,CAAC,iBAAiB,GAAG,qBAAqB;QAC3C,CAAC,CAAC,mBAAmB,GAAG,qBAAqB;QAC7C,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,oBAAoB,CACpD,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAAC,CAA4E,EAAE,OAAe;IAC3H,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,sBAAsB,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,OAAO,GAAG,CAAC,qBAAqB,CAAC,SAAS,GAAG,CAAC,oBAAoB,CAAC,mCAAmC,OAAO,GAAG,CAAC;AACtT,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,uBAAuB,CAAC,QAQvC;IACC,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO;QACL,6DAA6D,QAAQ,CAAC,KAAK,iBAAiB,QAAQ,CAAC,OAAO,uBAAuB,QAAQ,CAAC,OAAO,GAAG;QACtJ,GAAG,oBAAoB,CAAC,CAAC,CAAC;QAC1B,MAAM;YACJ,CAAC,CAAC,uCAAuC,GAAG,CAAC,qBAAqB,CAAC,gDAAgD,GAAG,CAAC,oBAAoB,CAAC,qEAAqE;YACjN,CAAC,CAAC,4BAA4B,GAAG,CAAC,qBAAqB,CAAC,yFAAyF,GAAG,CAAC,oBAAoB,CAAC,4EAA4E;gBACpP,+HAA+H;QACnI,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM;YACzC,CAAC,CAAC;gBACE,QAAQ,CAAC,KAAK,IAAI,eAAe;oBAC/B,CAAC,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,eAAe,gIAAgI;oBAC5L,CAAC,CAAC,gBAAgB,QAAQ,CAAC,KAAK,OAAO,eAAe,sFAAsF;aAC/I;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,YAAY;YACvB,CAAC,CAAC,CAAC,gGAAgG,QAAQ,CAAC,OAAO,iBAAiB,QAAQ,CAAC,OAAO,GAAG,CAAC;YACxJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -42,6 +42,7 @@ import { cambiosQueSeVerifican, huellaDeErrores, repartirHallazgos, textoDeRepar
42
42
  import { correrTurno } from "../../../core/turno.js";
43
43
  import { createTokenTracker } from "../../../vendor/tokenTracking.js";
44
44
  import { MAX_APPROVAL_ROUNDS } from "../../../vendor/hitl.js";
45
+ import { resumenDelEntorno } from "../../../core/shellDeAgente.js";
45
46
  import { artefactosNuevos, backendDeAgente, entornoDeLaShellDelProyecto, fotoDeArtefactos, lectorDelDispositivoDeSesion, scriptsConRuta } from "../../grafo/proyecto.js";
46
47
  import { carpetaDeHotswap } from "../../../core/hotswap.js";
47
48
  import { cargarAgentes } from "../../subagentes/agentesEnDisco.js";
@@ -68,7 +69,7 @@ import { leerTareasDelPlan, RUTA_DE_TASKS } from "../../../core/tareasDelPlan.js
68
69
  import { casanConTitulo, esDeLaMaqueta } from "../../../core/stitch.js";
69
70
  import { recibeConectores } from "../../../core/conectores.js";
70
71
  import { crearConvertirAP, NOMBRE_CONVERTIR_A_P, recibeConvertirAP } from "./convertirAP.js";
71
- import { buscarMaqueta, medirContraMaqueta, resumenDeMedida, textoDeMedidaAutomatica, ultimaCaptura } from "./medidaAutomatica.js";
72
+ import { buscarMaqueta, medirContraMaqueta, RONDAS_VISUALES, resumenDeMedida, textoDeMedidaAutomatica, ultimaCaptura } from "./medidaAutomatica.js";
72
73
  import { anotarEscritura, capacidadDeInformesDeHijos, esEscrituraBinaria, escrituraConExito, textoDelInforme } from "./informesDeHijos.js";
73
74
  import { crearDiagnosticoDeTools } from "../../turno/diagnosticoDeTools.js";
74
75
  import { encenderTrazaDeErrores } from "../../trazaDeErroresEnDisco.js";
@@ -144,6 +145,10 @@ export function textoDeMaquetadorExterno(nombres) {
144
145
  "diferencias de detalle van en tu resumen final, no en otra vuelta: cada vuelta suya empieza de cero. Si un recurso del",
145
146
  "diseñador está mal (proporción, color, un icono equivocado), díselo a él y que lo corrija en esa misma vuelta: puede escribir en",
146
147
  "`icons/`, y otra ronda diseñador → desarrollador cuesta dos arranques.",
148
+ "En su encargo NO nombres herramientas de xonecode (`comparar_capturas`, `xone_critica_visual`, `describe_image`,",
149
+ "`device-controller`…): corre en otro proceso y no las tiene, así que las busca o te devuelve que no pudo usarlas. El criterio",
150
+ "visual se lo das como QUÉ tiene que coincidir con la maqueta (su ruta), que él compara mirando la maqueta y su captura; esas",
151
+ "herramientas las pasas TÚ a su vuelta.",
147
152
  ].join("\n");
148
153
  }
149
154
  /**
@@ -324,7 +329,7 @@ export function textoDelBucle(llama, opciones = {}) {
324
329
  " 14`, display 14»). El de pruebas los hace, lee el log con `xone-log-android --app` y te devuelve cada caso: pasa o falla",
325
330
  " con lo que salió. SIN capturas. Corrige todos los fallos juntos y repite solo los que fallaron.",
326
331
  "- VISUAL, solo cuando lo funcional pasa: UNA captura por ronda. Con ella el harness te trae la medida contra la maqueta;",
327
- " pasa el crítico, arregla TODAS las diferencias en la misma ronda y solo entonces pide otra captura. Tres rondas como mucho.",
332
+ ` pasa el crítico, arregla TODAS las diferencias en la misma ronda y solo entonces pide otra captura. ${String(RONDAS_VISUALES)} rondas como mucho.`,
328
333
  "- Una pantalla que se parece a la maqueta con datos de ejemplo fijos NO está terminada: la lógica tiene que funcionar.",
329
334
  "Lo que te devuelva es lo que ha visto, no un permiso para dar el trabajo por bueno: si dice que la app se cae, se cae.",
330
335
  "EMPIEZA POR LO MÍNIMO: no escribas la pantalla entera de una vez. Primero la versión más pequeña que se pueda VER y PULSAR",
@@ -361,11 +366,11 @@ export function textoDelBucle(llama, opciones = {}) {
361
366
  "Lo que XOne NO puede reproducir no cuenta y no lo persigas: el desenfoque de fondo y las animaciones; una sombra o un",
362
367
  "degradado se aproximan con un SVG. La TIPOGRAFÍA del diseño sí: si la maqueta declara una fuente, sus .ttf van a `fonts/`",
363
368
  "(pídeselos a designer-xone con los recursos, o tráelos tú con `buscar_fuente`/`traer_fuente`) y se usa con `fontname`;",
364
- "para verla en el aparato hay que DESPLEGAR entero. Tienes TRES vueltas de corregir y volver a comprobar para",
369
+ `para verla en el aparato hay que DESPLEGAR entero. Tienes ${String(RONDAS_VISUALES)} vueltas de corregir y volver a comprobar para`,
365
370
  ]
366
371
  : [
367
372
  "Lo que XOne NO puede reproducir no cuenta y no lo persigas: las tipografías del diseño (no hay .ttf), el desenfoque de fondo y",
368
- "las animaciones; una sombra o un degradado se aproximan con un SVG. Tienes TRES vueltas de corregir y volver a comprobar para",
373
+ `las animaciones; una sombra o un degradado se aproximan con un SVG. Tienes ${String(RONDAS_VISUALES)} vueltas de corregir y volver a comprobar para`,
369
374
  ]),
370
375
  "llegar; si al agotarlas algo",
371
376
  "sigue sin cumplirse, devuelve el trabajo diciendo QUÉ falta, con lo que midieron el crítico y la medida tal cual. Devolver antes",
@@ -376,6 +381,10 @@ export function textoDelBucle(llama, opciones = {}) {
376
381
  export function notaDeDelegacion(agentes, opciones = {}) {
377
382
  if (agentes.length === 0)
378
383
  return "";
384
+ const externos = agentes.filter((a) => a.motor === "claude-code" && a.ejecucion === true && !a.soloLectura).map((a) => a.nombre);
385
+ // Medido en Maset: con el desarrollador en Claude Code, el orquestador copiaba `comparar_capturas` y el crítico en el
386
+ // criterio de su encargo, y el hijo, que no los tiene, volvía diciendo que no pudo usarlos. Su criterio va sin tools.
387
+ const desarrolladorExterno = externos.includes("developer-xone");
379
388
  return [
380
389
  "NOTA DEL HARNESS: en este entorno NO existe la tool `task`. Se delega con `create_sub_agent`:",
381
390
  "`name` es EXACTAMENTE el nombre del especialista y `input` el encargo, autosuficiente —el",
@@ -384,10 +393,7 @@ export function notaDeDelegacion(agentes, opciones = {}) {
384
393
  ...agentes.map((a) => `- ${a.nombre}: ${fichaDeAgente(a, opciones)}`),
385
394
  ...(opciones.conComparacion === true ? ["", BUCLE_DE_CALIDAD] : []),
386
395
  // Si quien maqueta corre en Claude Code con su shell, el bucle es SUYO: el orquestador no lo repite encima.
387
- ...(() => {
388
- const externos = agentes.filter((a) => a.motor === "claude-code" && a.ejecucion === true && !a.soloLectura).map((a) => a.nombre);
389
- return opciones.conComparacion === true && externos.length > 0 ? ["", textoDeMaquetadorExterno(externos)] : [];
390
- })(),
396
+ ...(opciones.conComparacion === true && externos.length > 0 ? ["", textoDeMaquetadorExterno(externos)] : []),
391
397
  ...(opciones.conEsperas === true
392
398
  ? [
393
399
  "",
@@ -400,16 +406,28 @@ export function notaDeDelegacion(agentes, opciones = {}) {
400
406
  ...(opciones.conBucle === true
401
407
  ? [
402
408
  "",
403
- "BUCLE DEL DESARROLLADOR: developer-xone prueba lo que escribe él mismo, llamando a device-controller (despliega, toca y lee",
404
- "el log), maqueta y arregla lo visual él mismo —designer-xone solo le hace iconos y fondos SVG—, y corrige hasta cumplir el CRITERIO DE ACEPTACIÓN que le des. Por eso",
405
- "cada encargo a developer-xone lleva el CRITERIO ESCRITO y MEDIBLE: qué casillas del plan tiene que dejar comprobadas, qué",
406
- "tiene que hacer la app, y, si hay diseño, que la distancia de `comparar_capturas` quede por debajo del 10 % en vertical y en",
407
- "horizontal, que ENCAJE en la pantalla (cada borde a un 3 % o menos del de la maqueta) y que el crítico no señale diferencias de forma o de estructura (di dónde está la maqueta). No se puede pedir",
409
+ ...(desarrolladorExterno
410
+ ? [
411
+ "BUCLE DEL DESARROLLADOR: developer-xone prueba lo que escribe él mismo con su shell (despliega, toca, captura y lee el",
412
+ "log), maqueta y arregla lo visual él mismo —designer-xone solo le hace iconos y fondos SVG—, y corrige hasta cumplir el CRITERIO DE ACEPTACIÓN que le des. Por eso",
413
+ "cada encargo a developer-xone lleva el CRITERIO ESCRITO y COMPROBABLE: qué casillas del plan tiene que dejar comprobadas, qué",
414
+ "tiene que hacer la app, y, si hay diseño, que su captura coincida con la maqueta (di su ruta): ninguna pieza que falte,",
415
+ "el mismo encaje en la pantalla, y sin diferencias de forma ni de estructura. Escrito así, sin nombres de herramientas. No se puede pedir",
416
+ ]
417
+ : [
418
+ "BUCLE DEL DESARROLLADOR: developer-xone prueba lo que escribe él mismo, llamando a device-controller (despliega, toca y lee",
419
+ "el log), maqueta y arregla lo visual él mismo —designer-xone solo le hace iconos y fondos SVG—, y corrige hasta cumplir el CRITERIO DE ACEPTACIÓN que le des. Por eso",
420
+ "cada encargo a developer-xone lleva el CRITERIO ESCRITO y MEDIBLE: qué casillas del plan tiene que dejar comprobadas, qué",
421
+ "tiene que hacer la app, y, si hay diseño, que la distancia de `comparar_capturas` quede por debajo del 10 % en vertical y en",
422
+ "horizontal, que ENCAJE en la pantalla (cada borde a un 3 % o menos del de la maqueta) y que el crítico no señale diferencias de forma o de estructura (di dónde está la maqueta). No se puede pedir",
423
+ ]),
408
424
  opciones.conFuentes === true
409
425
  ? "lo que XOne no reproduce —el desenfoque de fondo, las animaciones—; la tipografía del diseño sí (sus .ttf a `fonts/`). Sin criterio, devolverá el"
410
426
  : "lo que XOne no reproduce —las tipografías del diseño, el desenfoque de fondo, las animaciones—. Sin criterio, devolverá el",
411
- "trabajo en cuanto funcione. No le encargues a device-controller comprobar SU",
412
- "trabajo, ni a designer-xone lo visual de su pantalla (designer-xone no puede tocar un `.xne` ni el CSS): llama tú al diseñador",
427
+ desarrolladorExterno ? "trabajo en cuanto funcione." : "trabajo en cuanto funcione. No le encargues a device-controller comprobar SU",
428
+ desarrolladorExterno
429
+ ? "No le encargues a designer-xone lo visual de su pantalla (designer-xone no puede tocar un `.xne` ni el CSS): llama tú al diseñador"
430
+ : "trabajo, ni a designer-xone lo visual de su pantalla (designer-xone no puede tocar un `.xne` ni el CSS): llama tú al diseñador",
413
431
  "para los RECURSOS que la pantalla necesite, antes del desarrollador. Lo que developer-xone te devuelva es lo que él vio y midió, no un veredicto: el juicio final es tuyo y del arnés.",
414
432
  ]
415
433
  : []),
@@ -543,6 +561,15 @@ export async function abrirSesionTrueforge(opciones) {
543
561
  // El CHAT es la sesión con la que se abrió (`opciones.hilo`, el id del índice), no el `hilo` de
544
562
  // ahora: `/nuevo` abre otro hilo huérfano pero los actos siguen yendo a la misma sesión.
545
563
  const diagnostico = opciones.diagnostico ?? crearDiagnosticoDeTools(raiz, entornoDeDiagnostico, opciones.hilo);
564
+ /** La traza del entorno de NUESTRA shell (la de quien ejecuta), una vez por sesión: es la misma para todos. */
565
+ let entornoTrazado = false;
566
+ const conTrazaDelEntorno = (entorno) => {
567
+ if (!entornoTrazado) {
568
+ entornoTrazado = true;
569
+ diagnostico?.entorno?.("shell propia", resumenDelEntorno(entorno, { plataforma: process.platform, existe: existsSync }));
570
+ }
571
+ return entorno;
572
+ };
546
573
  /**
547
574
  * La traza de EXCEPCIONES e HITOS, la MISMA de deepagents (`turnoReal.ts`) y que aquí
548
575
  * faltaba por completo: TrueForge nunca la encendía, ni siquiera con la variable de entorno
@@ -1052,6 +1079,15 @@ export async function abrirSesionTrueforge(opciones) {
1052
1079
  : {}),
1053
1080
  }
1054
1081
  : undefined;
1082
+ // La traza del ENTORNO de su shell (con «Depurar»): medido en Windows, el PATH estaba roto y la traza no decía nada.
1083
+ if (ejecucion !== undefined) {
1084
+ diagnostico?.entorno?.(agente.nombre, resumenDelEntorno(ejecucion.entorno, {
1085
+ plataforma: process.platform,
1086
+ existe: existsSync,
1087
+ scripts: ejecucion.scripts.length,
1088
+ ...("nodeDelServidor" in ejecucion && ejecucion.nodeDelServidor !== undefined ? { nodeDelServidor: ejecucion.nodeDelServidor } : {}),
1089
+ }));
1090
+ }
1055
1091
  // Las carpetas de la sesión se LEEN aunque no ejecute: es donde el orquestador le deja la maqueta y las capturas.
1056
1092
  const lecturasDeSesion = motor === "claude-code" && carpeta !== undefined ? [carpeta, carpetaDeHotswap(carpeta)] : undefined;
1057
1093
  /**
@@ -1103,6 +1139,8 @@ export async function abrirSesionTrueforge(opciones) {
1103
1139
  ...(lecturasDeSesion === undefined ? {} : { lecturas: lecturasDeSesion }),
1104
1140
  // El esfuerzo de su `.md`, que Claude Code aplica como `effort`; los otros dos no tienen dónde recibirlo.
1105
1141
  ...(motor === "claude-code" && agente.esfuerzo !== undefined ? { esfuerzo: agente.esfuerzo } : {}),
1142
+ // Su shell y sus negativas, a la traza (con «Depurar»).
1143
+ ...(diagnostico?.externo === undefined ? {} : { trazar: (d) => diagnostico.externo(agente.nombre, d) }),
1106
1144
  }),
1107
1145
  senal: () => aborto?.signal,
1108
1146
  }),
@@ -1184,7 +1222,7 @@ export async function abrirSesionTrueforge(opciones) {
1184
1222
  // El aparato elegido manda también en la shell (IXCODE-32): del MISMO fichero que leen los scripts.
1185
1223
  dispositivo: lectorDelDispositivoDeSesion(opciones.artefactos),
1186
1224
  conShell: () => montarBackend({
1187
- entorno: entornoDeLaShellDelProyecto(raiz, opciones.artefactos),
1225
+ entorno: conTrazaDelEntorno(entornoDeLaShellDelProyecto(raiz, opciones.artefactos)),
1188
1226
  // El MISMO patrón que ya usa `modeloParaTrueforge` un poco más arriba en este
1189
1227
  // fichero: un getter que se reevalúa en cada llamada, así siempre lee el
1190
1228
  // `AbortController` de la RONDA en curso y no uno capturado al construir.