xonecode 0.38.44 → 0.39.4

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 (335) hide show
  1. package/apps/web/dist/assets/{EditorDeFichero-BeWDctgN.js → EditorDeFichero-4HFwLke_.js} +1 -1
  2. package/apps/web/dist/assets/index-C57A_ylS.css +1 -0
  3. package/apps/web/dist/assets/index-CYZEmLsX.js +506 -0
  4. package/apps/web/dist/assets/{php-D3QdOnb8.js → php-CdQiFsq1.js} +1 -1
  5. package/apps/web/dist/assets/{ruby-DDAcW-Z2.js → ruby-3JrCXo0h.js} +1 -1
  6. package/apps/web/dist/index.html +2 -2
  7. package/dist/agent/cloudstudio/cloudstudioClient.d.ts +29 -0
  8. package/dist/agent/cloudstudio/cloudstudioMcp.d.ts +414 -0
  9. package/dist/agent/cloudstudio/conexionDeServidor.d.ts +37 -0
  10. package/dist/agent/cloudstudio/conexionDeServidor.js +63 -0
  11. package/dist/agent/cloudstudio/conexionDeServidor.js.map +1 -0
  12. package/dist/agent/cloudstudio/crearRama.d.ts +15 -0
  13. package/dist/agent/cloudstudio/crearRama.js +16 -0
  14. package/dist/agent/cloudstudio/crearRama.js.map +1 -0
  15. package/dist/agent/cloudstudio/descarga.d.ts +44 -0
  16. package/dist/agent/cloudstudio/manifiesto.d.ts +25 -0
  17. package/dist/agent/cloudstudio/ramaActiva.d.ts +24 -0
  18. package/dist/agent/cloudstudio/subida.d.ts +61 -0
  19. package/dist/agent/cloudstudio/subida.js +7 -1
  20. package/dist/agent/cloudstudio/subida.js.map +1 -1
  21. package/dist/agent/cloudstudio/validarTrasDescarga.d.ts +13 -0
  22. package/dist/agent/cloudstudio/zip.d.ts +13 -0
  23. package/dist/agent/conectores/conectoresEnDisco.d.ts +47 -0
  24. package/dist/agent/conectores/gestorJira.d.ts +50 -0
  25. package/dist/agent/conectores/gestorNotion.d.ts +45 -0
  26. package/dist/agent/conectores/proveedorDeConector.d.ts +43 -0
  27. package/dist/agent/conectores/servicioDeConectores.d.ts +112 -0
  28. package/dist/agent/config/authEnDisco.d.ts +43 -0
  29. package/dist/agent/config/catalogoModelos.d.ts +79 -0
  30. package/dist/agent/config/configEnDisco.d.ts +235 -0
  31. package/dist/agent/config/crearProyecto.d.ts +20 -0
  32. package/dist/agent/config/diagnosticoDeNodeEnMaquina.d.ts +44 -0
  33. package/dist/agent/config/ecoDeRazonamiento.d.ts +104 -0
  34. package/dist/agent/config/entorno.d.ts +83 -0
  35. package/dist/agent/config/fuentesEnRed.d.ts +12 -0
  36. package/dist/agent/config/gemini.d.ts +5 -0
  37. package/dist/agent/config/iconosEnRed.d.ts +10 -0
  38. package/dist/agent/config/identidadEnDisco.d.ts +27 -0
  39. package/dist/agent/config/modelos.d.ts +77 -0
  40. package/dist/agent/config/modelosDeMotor.d.ts +52 -0
  41. package/dist/agent/config/mudanzaEnDisco.d.ts +99 -0
  42. package/dist/agent/config/persona.d.ts +1 -0
  43. package/dist/agent/config/selectorEnMaquina.d.ts +35 -0
  44. package/dist/agent/config/settingsEnDisco.d.ts +206 -0
  45. package/dist/agent/config/versionEnDisco.d.ts +17 -0
  46. package/dist/agent/dispositivos/arranqueDeEmulador.d.ts +60 -0
  47. package/dist/agent/dispositivos/cajasDeMaqueta.d.ts +61 -0
  48. package/dist/agent/dispositivos/decodificarImagen.d.ts +21 -0
  49. package/dist/agent/dispositivos/descargaDeHerramientas.d.ts +44 -0
  50. package/dist/agent/dispositivos/dispositivosEnMaquina.d.ts +161 -0
  51. package/dist/agent/dispositivos/geometriaEnDisco.d.ts +17 -0
  52. package/dist/agent/dispositivos/hotswap.d.ts +194 -0
  53. package/dist/agent/dispositivos/instalacionEnMaquina.d.ts +156 -0
  54. package/dist/agent/dispositivos/juezVisual.d.ts +144 -0
  55. package/dist/agent/dispositivos/lanzamientoEnMaquina.d.ts +197 -0
  56. package/dist/agent/dispositivos/paqueteDelProyecto.d.ts +28 -0
  57. package/dist/agent/dispositivos/procesosEnMaquina.d.ts +154 -0
  58. package/dist/agent/dispositivos/recargaEnAparato.d.ts +30 -0
  59. package/dist/agent/dispositivos/sensorDeArranque.d.ts +42 -0
  60. package/dist/agent/exportarPdf.d.ts +72 -0
  61. package/dist/agent/grafo/aprendido.d.ts +28 -0
  62. package/dist/agent/grafo/arbolDeProyecto.d.ts +205 -0
  63. package/dist/agent/grafo/artefactosEnDisco.d.ts +35 -0
  64. package/dist/agent/grafo/atributosXone.d.ts +31 -0
  65. package/dist/agent/grafo/buscarIcono.d.ts +32 -0
  66. package/dist/agent/grafo/busquedaRegex.d.ts +56 -0
  67. package/dist/agent/grafo/codificacionDelProyecto.d.ts +7 -0
  68. package/dist/agent/grafo/compararCapturas.d.ts +22 -0
  69. package/dist/agent/grafo/copiarArtefacto.d.ts +64 -0
  70. package/dist/agent/grafo/criticaVisual.d.ts +60 -0
  71. package/dist/agent/grafo/describirImagen.d.ts +79 -0
  72. package/dist/agent/grafo/diferenciaDeCapturas.d.ts +33 -0
  73. package/dist/agent/grafo/ejecucionCancelable.d.ts +45 -0
  74. package/dist/agent/grafo/escriturasEnSerie.d.ts +31 -0
  75. package/dist/agent/grafo/excluirTools.d.ts +37 -0
  76. package/dist/agent/grafo/fuentesDeGoogle.d.ts +37 -0
  77. package/dist/agent/grafo/generarFondoSvg.d.ts +52 -0
  78. package/dist/agent/grafo/incorporarAdjunto.d.ts +98 -0
  79. package/dist/agent/grafo/lectorDeReferencias.d.ts +28 -0
  80. package/dist/agent/grafo/marcarCriteriosDelPlan.d.ts +47 -0
  81. package/dist/agent/grafo/memoriaDeProyecto.d.ts +15 -0
  82. package/dist/agent/grafo/navegacionXone.d.ts +60 -0
  83. package/dist/agent/grafo/opcionesDeFicheros.d.ts +23 -0
  84. package/dist/agent/grafo/perfiles.d.ts +225 -0
  85. package/dist/agent/grafo/proyecto.d.ts +450 -0
  86. package/dist/agent/grafo/skills.d.ts +181 -0
  87. package/dist/agent/grafo/traerDeLaMaquina.d.ts +60 -0
  88. package/dist/agent/grafo/unirSecciones.d.ts +20 -0
  89. package/dist/agent/grafo/validacionXone.d.ts +35 -0
  90. package/dist/agent/grafo/validarFicheroXone.d.ts +33 -0
  91. package/dist/agent/grafo/xoneAgent.d.ts +166 -0
  92. package/dist/agent/motores/motoresLocales.d.ts +87 -0
  93. package/dist/agent/motores/trueforge/capacidades.d.ts +183 -0
  94. package/dist/agent/motores/trueforge/convertirAP.d.ts +38 -0
  95. package/dist/agent/motores/trueforge/detencion.d.ts +70 -0
  96. package/dist/agent/motores/trueforge/esperas.d.ts +38 -0
  97. package/dist/agent/motores/trueforge/eventosTrueforge.d.ts +56 -0
  98. package/dist/agent/motores/trueforge/informesDeHijos.d.ts +48 -0
  99. package/dist/agent/motores/trueforge/medidaAutomatica.d.ts +37 -0
  100. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.d.ts +60 -0
  101. package/dist/agent/motores/trueforge/memoriaTrueforge.d.ts +131 -0
  102. package/dist/agent/motores/trueforge/metricasTrueforge.d.ts +45 -0
  103. package/dist/agent/motores/trueforge/modeloExterno.d.ts +9 -0
  104. package/dist/agent/motores/trueforge/modeloLangchain.d.ts +69 -0
  105. package/dist/agent/motores/trueforge/notas.d.ts +48 -0
  106. package/dist/agent/motores/trueforge/proponerTareas.d.ts +30 -0
  107. package/dist/agent/motores/trueforge/recortes.d.ts +47 -0
  108. package/dist/agent/motores/trueforge/resumenSeguro.d.ts +33 -0
  109. package/dist/agent/motores/trueforge/sesionTrueforge.d.ts +273 -0
  110. package/dist/agent/motores/trueforge/skillsTrueforge.d.ts +16 -0
  111. package/dist/agent/motores/trueforge/toolsDeConectores.d.ts +36 -0
  112. package/dist/agent/motores/trueforge/toolsDeFichero.d.ts +146 -0
  113. package/dist/agent/motores/trueforge/toolsPropias.d.ts +38 -0
  114. package/dist/agent/motores/trueforge/traerDeStitch.d.ts +63 -0
  115. package/dist/agent/motores/trueforge/trueforge.d.ts +35 -0
  116. package/dist/agent/navegacion/estilosEnDisco.d.ts +41 -0
  117. package/dist/agent/navegacion/hechosEnDisco.d.ts +19 -0
  118. package/dist/agent/navegacion/indiceEnDisco.d.ts +50 -0
  119. package/dist/agent/navegacion/modeloDeProyecto.d.ts +86 -0
  120. package/dist/agent/planesEnDisco.d.ts +18 -0
  121. package/dist/agent/publicarPlan.d.ts +20 -0
  122. package/dist/agent/raizDelPaquete.d.ts +9 -0
  123. package/dist/agent/remoto/ngrokEnMaquina.d.ts +44 -0
  124. package/dist/agent/remoto/puenteWebSocket.d.ts +59 -0
  125. package/dist/agent/remoto/tunelNgrok.d.ts +31 -0
  126. package/dist/agent/renombrarSobre.d.ts +14 -0
  127. package/dist/agent/sesiones/adjuntosDeSesion.d.ts +64 -0
  128. package/dist/agent/sesiones/baseDeFichero.d.ts +9 -0
  129. package/dist/agent/sesiones/checkpointer.d.ts +146 -0
  130. package/dist/agent/sesiones/git.d.ts +66 -0
  131. package/dist/agent/sesiones/gitSync.d.ts +264 -0
  132. package/dist/agent/sesiones/memoriaDeHilo.d.ts +4 -0
  133. package/dist/agent/sesiones/modeloDelCambio.d.ts +7 -0
  134. package/dist/agent/sesiones/parcheEnTexto.d.ts +9 -0
  135. package/dist/agent/sesiones/sesionGit.d.ts +155 -0
  136. package/dist/agent/subagentes/actividadDeCodex.d.ts +8 -0
  137. package/dist/agent/subagentes/agentesEnDisco.d.ts +198 -0
  138. package/dist/agent/subagentes/consumoExterno.d.ts +83 -0
  139. package/dist/agent/subagentes/ejecutableEnWindows.d.ts +53 -0
  140. package/dist/agent/subagentes/escrituraDeCodex.d.ts +94 -0
  141. package/dist/agent/subagentes/escrituraDeOpencode.d.ts +67 -0
  142. package/dist/agent/subagentes/escrituraExterna.d.ts +419 -0
  143. package/dist/agent/subagentes/pluginDeSkills.d.ts +84 -0
  144. package/dist/agent/subagentes/subagenteCodex.d.ts +76 -0
  145. package/dist/agent/subagentes/subagenteExterno.d.ts +169 -0
  146. package/dist/agent/subagentes/subagenteOpencode.d.ts +126 -0
  147. package/dist/agent/tareas/aumentador.d.ts +99 -0
  148. package/dist/agent/tareas/juezDeTarea.d.ts +64 -0
  149. package/dist/agent/tareas/reflejoEnElGestor.d.ts +38 -0
  150. package/dist/agent/tareas/sondeoDelGestor.d.ts +49 -0
  151. package/dist/agent/tareas/tareasEnDisco.d.ts +148 -0
  152. package/dist/agent/tareas/tareasEnDisco.js +17 -0
  153. package/dist/agent/tareas/tareasEnDisco.js.map +1 -1
  154. package/dist/agent/trazaDeErroresEnDisco.d.ts +10 -0
  155. package/dist/agent/turno/depuracion.d.ts +1 -0
  156. package/dist/agent/turno/diagnosticoDeTools.d.ts +124 -0
  157. package/dist/agent/turno/ficherosDelProyecto.d.ts +10 -0
  158. package/dist/agent/turno/guionizado.d.ts +18 -0
  159. package/dist/agent/turno/informeDeTraza.d.ts +220 -0
  160. package/dist/agent/turno/inspectorDePrompt.d.ts +150 -0
  161. package/dist/agent/turno/instantanea.d.ts +16 -0
  162. package/dist/agent/turno/interrupts.d.ts +54 -0
  163. package/dist/agent/turno/juezDelTurnoConModelo.d.ts +26 -0
  164. package/dist/agent/turno/mensajes.d.ts +23 -0
  165. package/dist/agent/turno/normalizar.d.ts +15 -0
  166. package/dist/agent/turno/puente.d.ts +196 -0
  167. package/dist/agent/turno/registroDeFallos.d.ts +39 -0
  168. package/dist/agent/turno/resumenDeContexto.d.ts +269 -0
  169. package/dist/agent/turno/resumenDeTool.d.ts +33 -0
  170. package/dist/agent/turno/rubrica.d.ts +35 -0
  171. package/dist/agent/turno/sesionReal.d.ts +89 -0
  172. package/dist/agent/turno/textoDeTool.d.ts +19 -0
  173. package/dist/agent/turno/turnoReal.d.ts +210 -0
  174. package/dist/agent/turno/verificacion.d.ts +85 -0
  175. package/dist/agent/turno/verificador.d.ts +66 -0
  176. package/dist/bin.d.ts +2 -0
  177. package/dist/cli/acuseDeModelo.d.ts +18 -0
  178. package/dist/cli/aprobar.d.ts +162 -0
  179. package/dist/cli/config.d.ts +17 -0
  180. package/dist/cli/consola.d.ts +473 -0
  181. package/dist/cli/describe.d.ts +7 -0
  182. package/dist/cli/doctor.d.ts +8 -0
  183. package/dist/cli/fuentesDeDisco.d.ts +25 -0
  184. package/dist/cli/main.d.ts +291 -0
  185. package/dist/cli/markdown.d.ts +126 -0
  186. package/dist/cli/panel.d.ts +38 -0
  187. package/dist/cli/podar.d.ts +38 -0
  188. package/dist/cli/run.d.ts +30 -0
  189. package/dist/cli/spinner.d.ts +37 -0
  190. package/dist/cli/stdio.d.ts +94 -0
  191. package/dist/cli/tema.d.ts +68 -0
  192. package/dist/cli/tokens.d.ts +16 -0
  193. package/dist/cli/traza.d.ts +19 -0
  194. package/dist/cli/tui/app.d.ts +23 -0
  195. package/dist/cli/tui/aprobarTui.d.ts +46 -0
  196. package/dist/cli/tui/barra.d.ts +43 -0
  197. package/dist/cli/tui/correrTui.d.ts +119 -0
  198. package/dist/cli/tui/entrada.d.ts +14 -0
  199. package/dist/cli/tui/filas.d.ts +13 -0
  200. package/dist/cli/tui/logo.d.ts +20 -0
  201. package/dist/cli/tui/pielTui.d.ts +15 -0
  202. package/dist/cli/tui/raton.d.ts +68 -0
  203. package/dist/cli/tui/sidebar.d.ts +63 -0
  204. package/dist/cli/tui/store.d.ts +102 -0
  205. package/dist/cli/tui/tarjeta.d.ts +8 -0
  206. package/dist/cli/tui/temaInk.d.ts +67 -0
  207. package/dist/cli/tui/transcript.d.ts +32 -0
  208. package/dist/cli/verify.d.ts +9 -0
  209. package/dist/cli/wizardInicial.d.ts +59 -0
  210. package/dist/core/actos.d.ts +437 -0
  211. package/dist/core/adjuntos.d.ts +77 -0
  212. package/dist/core/agentes.d.ts +353 -0
  213. package/dist/core/analisisDeSesion.d.ts +63 -0
  214. package/dist/core/aprendido.d.ts +41 -0
  215. package/dist/core/artefactos.d.ts +74 -0
  216. package/dist/core/atributosXone.d.ts +53 -0
  217. package/dist/core/bitacora.d.ts +21 -0
  218. package/dist/core/cloudstudio.d.ts +168 -0
  219. package/dist/core/codificacion.d.ts +81 -0
  220. package/dist/core/comandoExterno.d.ts +49 -0
  221. package/dist/core/compararCapturas.d.ts +136 -0
  222. package/dist/core/conectores.d.ts +296 -0
  223. package/dist/core/config.d.ts +148 -0
  224. package/dist/core/contextos.d.ts +54 -0
  225. package/dist/core/convertirAP.d.ts +56 -0
  226. package/dist/core/copiaDeAvd.d.ts +44 -0
  227. package/dist/core/cssBienFormado.d.ts +22 -0
  228. package/dist/core/deps.d.ts +28 -0
  229. package/dist/core/descargas.d.ts +61 -0
  230. package/dist/core/descripcionDePantalla.d.ts +121 -0
  231. package/dist/core/descriptoresDeApp.d.ts +108 -0
  232. package/dist/core/diagnosticoDeNode.d.ts +51 -0
  233. package/dist/core/diff.d.ts +26 -0
  234. package/dist/core/diffDeColecciones.d.ts +54 -0
  235. package/dist/core/disenoVinculado.d.ts +17 -0
  236. package/dist/core/dispositivoDeSesion.d.ts +22 -0
  237. package/dist/core/dispositivoElegido.d.ts +17 -0
  238. package/dist/core/dispositivos.d.ts +469 -0
  239. package/dist/core/entrega.d.ts +341 -0
  240. package/dist/core/entrelazar.d.ts +48 -0
  241. package/dist/core/esfuerzo.d.ts +120 -0
  242. package/dist/core/esqueleto.d.ts +38 -0
  243. package/dist/core/estiloMedido.d.ts +70 -0
  244. package/dist/core/estilos.d.ts +76 -0
  245. package/dist/core/events.d.ts +218 -0
  246. package/dist/core/exportacion.d.ts +88 -0
  247. package/dist/core/fallos.d.ts +79 -0
  248. package/dist/core/fondosSvg.d.ts +115 -0
  249. package/dist/core/fotoDeColecciones.d.ts +45 -0
  250. package/dist/core/fuentes.d.ts +96 -0
  251. package/dist/core/geometriaDePantalla.d.ts +171 -0
  252. package/dist/core/gestorDeTareas.d.ts +295 -0
  253. package/dist/core/hechosDelProyecto.d.ts +70 -0
  254. package/dist/core/hotswap.d.ts +30 -0
  255. package/dist/core/iconos.d.ts +86 -0
  256. package/dist/core/identidadDeProveedor.d.ts +20 -0
  257. package/dist/core/idiomaDeLaRespuesta.d.ts +26 -0
  258. package/dist/core/imagenesDeDocumento.d.ts +40 -0
  259. package/dist/core/jsParaRhino.d.ts +3 -0
  260. package/dist/core/juezDelTurno.d.ts +95 -0
  261. package/dist/core/logDeDispositivo.d.ts +67 -0
  262. package/dist/core/memoria.d.ts +18 -0
  263. package/dist/core/metodoDeComparacionVisual.d.ts +20 -0
  264. package/dist/core/modelos.d.ts +198 -0
  265. package/dist/core/modoDeEscritura.d.ts +155 -0
  266. package/dist/core/motor.d.ts +43 -0
  267. package/dist/core/motoresLocales.d.ts +113 -0
  268. package/dist/core/mudanzaDeWorkspace.d.ts +112 -0
  269. package/dist/core/navegacion.d.ts +172 -0
  270. package/dist/core/notify.d.ts +77 -0
  271. package/dist/core/nucleoXone.d.ts +28 -0
  272. package/dist/core/panorama.d.ts +68 -0
  273. package/dist/core/paqueteDeSoporte.d.ts +100 -0
  274. package/dist/core/planDeSubida.d.ts +56 -0
  275. package/dist/core/planes.d.ts +53 -0
  276. package/dist/core/podaDeCheckpoint.d.ts +75 -0
  277. package/dist/core/ports.d.ts +1034 -0
  278. package/dist/core/puedeLanzarse.d.ts +181 -0
  279. package/dist/core/puertosDeAvd.d.ts +59 -0
  280. package/dist/core/recargaEnCaliente.d.ts +52 -0
  281. package/dist/core/referenciasDeImagen.d.ts +36 -0
  282. package/dist/core/remoto.d.ts +76 -0
  283. package/dist/core/repartoDeEncargo.d.ts +80 -0
  284. package/dist/core/rubrica.d.ts +78 -0
  285. package/dist/core/rutaVirtual.d.ts +29 -0
  286. package/dist/core/selectorDeCarpeta.d.ts +59 -0
  287. package/dist/core/serieDeEscrituras.d.ts +58 -0
  288. package/dist/core/settings.d.ts +421 -0
  289. package/dist/core/shellDeAgente.d.ts +177 -0
  290. package/dist/core/skills.d.ts +129 -0
  291. package/dist/core/stitch.d.ts +114 -0
  292. package/dist/core/tareas.d.ts +412 -0
  293. package/dist/core/tareasDelPlan.d.ts +123 -0
  294. package/dist/core/tareasEnElGestor.d.ts +117 -0
  295. package/dist/core/textos.d.ts +8 -0
  296. package/dist/core/topeAgotado.d.ts +55 -0
  297. package/dist/core/traerDeLaMaquina.d.ts +33 -0
  298. package/dist/core/trazaDeErrores.d.ts +83 -0
  299. package/dist/core/tunel.d.ts +45 -0
  300. package/dist/core/turno.d.ts +154 -0
  301. package/dist/core/validacionDeEscritura.d.ts +95 -0
  302. package/dist/core/verificacionDeSubida.d.ts +14 -0
  303. package/dist/core/version.d.ts +35 -0
  304. package/dist/core/xmlBienFormado.d.ts +23 -0
  305. package/dist/core/zipDeAdjunto.d.ts +28 -0
  306. package/dist/core/zipDeSkill.d.ts +74 -0
  307. package/dist/lib/tareaAutonoma.d.ts +36 -0
  308. package/dist/lib/tareaAutonoma.js +259 -0
  309. package/dist/lib/tareaAutonoma.js.map +1 -0
  310. package/dist/lib.d.ts +31 -0
  311. package/dist/lib.js +28 -0
  312. package/dist/lib.js.map +1 -0
  313. package/dist/vendor/hitl.d.ts +69 -0
  314. package/dist/vendor/skillLoaders/catalog.d.ts +27 -0
  315. package/dist/vendor/sqliteSaver.d.ts +22 -0
  316. package/dist/vendor/tokenTracking.d.ts +22 -0
  317. package/dist/web/servidor/arranque.d.ts +1372 -0
  318. package/dist/web/servidor/arranque.js +39 -0
  319. package/dist/web/servidor/arranque.js.map +1 -1
  320. package/dist/web/servidor/consolaDeTarea.d.ts +166 -0
  321. package/dist/web/servidor/consolaWeb.d.ts +142 -0
  322. package/dist/web/servidor/corredorDeTareas.d.ts +395 -0
  323. package/dist/web/servidor/datosDeCierre.d.ts +4 -0
  324. package/dist/web/servidor/interrupcion.d.ts +39 -0
  325. package/dist/web/servidor/pielWeb.d.ts +32 -0
  326. package/dist/web/servidor/puenteRemoto.d.ts +80 -0
  327. package/dist/web/servidor/servidor.d.ts +53 -0
  328. package/dist/web/servidor/sesiones.d.ts +342 -0
  329. package/dist/web/servidor/soporte.d.ts +65 -0
  330. package/dist/web/servidor/transporte.d.ts +2751 -0
  331. package/dist/web/servidor/vestibulo.d.ts +952 -0
  332. package/dist/web/servidor/visorOpenui.d.ts +33 -0
  333. package/package.json +9 -1
  334. package/apps/web/dist/assets/index-B-6cDRAV.js +0 -506
  335. package/apps/web/dist/assets/index-BQdHnRbo.css +0 -1
@@ -0,0 +1,469 @@
1
+ /**
2
+ * Qué hay en la máquina para probar una app XOne: el sistema operativo, las herramientas
3
+ * de Android e iOS, y los dispositivos y simuladores a los que se llega.
4
+ *
5
+ * Aquí viven los TIPOS y los parsers PUROS —texto de una herramienta → datos—; quien lanza
6
+ * las herramientas es `agent/dispositivos/dispositivosEnMaquina.ts`. Separarlo así es lo que permite
7
+ * probar cada formato contra una salida real sin que `npm test` necesite ni adb ni Xcode.
8
+ *
9
+ * Tres estados por herramienta y no un booleano: «no encontrada», «falló» (con el motivo) y
10
+ * «bien». Un cuarto, «no aplica», para lo que no se puede detectar en este sistema —Xcode
11
+ * en Windows— y que no es lo mismo que «no hay»: el escritorio los pinta distintos, porque
12
+ * decir «sin iOS» en un Linux sería afirmar algo que la máquina no puede saber. Y un
13
+ * quinto, «desactivada», para el destino que la persona apagó en Ajustes
14
+ * (`core/settings.ts#AjustesDeDispositivos`) — ese no se consulta, y decir que su
15
+ * herramienta no está sería mentir sobre la máquina.
16
+ */
17
+ export type SistemaOperativo = "mac" | "windows" | "linux" | "otro";
18
+ export type NombreDeHerramienta = "adb" | "emulator" | "xcrun" | "devicectl";
19
+ export interface Herramienta {
20
+ nombre: NombreDeHerramienta;
21
+ /**
22
+ * A qué plataforma sirve. **Es un DATO y no una adivinanza del nombre**: la ventana de
23
+ * Ajustes tiene una pestaña por plataforma y agrupa por esto. Deducirlo allí de
24
+ * «`adb` suena a Android» sería una segunda copia de una regla que ya está aquí — y el
25
+ * día que una herramienta sirviera a las dos, la copia callaría.
26
+ */
27
+ plataforma: "android" | "ios";
28
+ /**
29
+ * Cinco estados, y los cinco dicen algo distinto: «ok», «no-encontrada», «fallo» (con el
30
+ * motivo), «no-aplica» —lo que este sistema no puede saber, iOS en Windows— y
31
+ * **«desactivada»**, que es el destino que la persona ha apagado en Ajustes.
32
+ *
33
+ * «desactivada» no se pliega en «no-aplica» ni en «no-encontrada»: una dice que la
34
+ * máquina no puede, la otra que falta el binario, y esta que no se ha mirado a propósito
35
+ * — y es la única de las tres que se arregla con un clic.
36
+ */
37
+ estado: "ok" | "no-encontrada" | "fallo" | "no-aplica" | "desactivada";
38
+ /**
39
+ * Dónde se encontró, cuando se encontró. **Cruza el cable ENTERA solo para `adb` y
40
+ * `emulator`** — la segunda excepción declarada a `sinRutas`, igual que
41
+ * `Settings.workspace` (sin abreviar con `~`: se probó para el workspace y se descartó).
42
+ * Para `xcrun`/`devicectl` se queda en el host, como hasta ahora.
43
+ */
44
+ ruta?: string;
45
+ /**
46
+ * Cómo se instala, cuando falta y se sabe cómo. **El comando no puede llevar ninguna ruta
47
+ * de la máquina**: se pinta en la ventana y viaja por el cable, que puede ir por un túnel
48
+ * (`--anfitrion`) — es la misma regla por la que `ruta` se queda en el host (`sinRutas`).
49
+ * Por eso solo se propone lo que se resuelve por el PATH.
50
+ *
51
+ * `automatico` es si xonecode puede lanzarlo ÉL. Hoy solo `xcode-select --install`, que
52
+ * devuelve en el acto y abre el diálogo de Apple. Lo demás se ofrece para copiar, y **el
53
+ * motivo NO es la contraseña de administrador**: eso está desmentido —medido, `sudo` sin
54
+ * terminal de control falla en el acto en vez de colgarse, y por eso los `brew` de la
55
+ * RECETA sí se lanzan—. Es que este camino
56
+ * (`agent/dispositivos/dispositivosEnMaquina.ts#instalarHerramientaDeDispositivos`) no tiene canal de
57
+ * progreso: un `execFile` con su tope, sin log en vivo. `brew install --cask` tarda
58
+ * minutos, y un botón mudo durante diez se lee como que se ha colgado — que es justo lo
59
+ * que la fase de la receta existe para evitar.
60
+ */
61
+ instalar?: {
62
+ comando: string;
63
+ automatico: boolean;
64
+ };
65
+ /** El motivo del fallo, o por qué no aplica. Nunca la salida cruda entera. */
66
+ detalle?: string;
67
+ }
68
+ /**
69
+ * A qué plataforma sirve una herramienta, **en un solo sitio y exhaustivo por TIPO**.
70
+ *
71
+ * Es lo que rellena `Herramienta.plataforma`, y el `switch` sin `default` es lo que hace que
72
+ * una herramienta nueva no compile hasta que alguien decida de quién es. Escribir la
73
+ * plataforma a mano en cada fila de la medida habría sido la misma respuesta catorce veces,
74
+ * y bastaba con olvidarla en una para que esa fila cayera en la pestaña equivocada —o en
75
+ * ninguna— sin que nada diera error.
76
+ */
77
+ export declare function plataformaDe(nombre: NombreDeHerramienta): "android" | "ios";
78
+ export interface Dispositivo {
79
+ /** El serial de adb, el UDID del simulador o el identificador de devicectl. */
80
+ id: string;
81
+ nombre: string;
82
+ plataforma: "android" | "ios";
83
+ clase: "emulador" | "simulador" | "fisico";
84
+ /**
85
+ * `conectado` y `arrancado` son los dos estados en que SE LLEGA al dispositivo; el resto
86
+ * son situaciones propias y se enseñan como tales, no se pliegan en «no».
87
+ */
88
+ estado: "conectado" | "arrancado" | "apagado" | "sin-autorizar" | "offline" | "no-disponible";
89
+ /**
90
+ * De qué AVD es este emulador. Solo para `clase === "emulador"` de Android.
91
+ *
92
+ * **Es el único dato que ata un emulador en marcha a su definición**, y hay que MEDIRLO
93
+ * aparte: `adb devices -l` no lo dice por ningún lado —la imagen `google_apis` contesta
94
+ * `model:sdk_gphone64_arm64` mientras el AVD se llama `pixel8`—, así que emparejar por el
95
+ * nombre visible no puede acertar nunca. Sin este campo, el AVD arrancado se listaba
96
+ * ADEMÁS como apagado: dos filas para un aparato y una diciendo lo contrario de la verdad.
97
+ *
98
+ * Ausente es «no se pudo identificar», no «no tiene»: un emulador de terceros o una
99
+ * consola que no contesta. Quien empareja tiene que tratarlo como desconocido y no como
100
+ * «este AVD está apagado».
101
+ */
102
+ avd?: string;
103
+ detalle?: string;
104
+ /**
105
+ * Lo que contestó el dispositivo cuando alguien pidió VERIFICAR la conexión.
106
+ *
107
+ * Es otra pregunta que `estado`, y por eso es otro campo: `estado` sale de LISTAR
108
+ * (`adb devices`, `simctl list`), o sea de lo que el intermediario cree; esto sale de
109
+ * hablar CON el dispositivo y esperar respuesta. Un `adb devices` que dice «device» y un
110
+ * `adb shell` que se queda colgado son la situación que esto distingue.
111
+ *
112
+ * **Ausente es «nadie lo ha verificado», nunca «no responde».** Y vive con el informe, así
113
+ * que una medida nueva se lo lleva por construcción: una verificación de hace media hora
114
+ * pegada a una foto de ahora afirmaría algo que nadie ha comprobado.
115
+ */
116
+ verificado?: {
117
+ ok: boolean;
118
+ /** Una línea: lo que contestó, o por qué no. Nunca la salida entera. */
119
+ detalle: string;
120
+ /** Cuándo se verificó (ISO). Se dice al lado: la foto y la verificación son dos horas. */
121
+ medido: string;
122
+ };
123
+ }
124
+ /**
125
+ * Un paso de una RECETA: lo que hay que hacer una vez para que una capacidad exista.
126
+ *
127
+ * Todos se pueden COPIAR; los que además se pueden LANZAR llevan `ejecutable`. La regla es
128
+ * «se ofrece ejecutar lo que se puede cumplir», aplicada por COMANDO y no por herramienta.
129
+ *
130
+ * **Y el criterio dejó de ser «puede pedir la contraseña» para ser «puede COLGARSE
131
+ * pidiéndola», que está medido.** Aquí decía que `brew` no se lanzaba porque un hijo sin
132
+ * terminal detrás se quedaría esperando la contraseña de administrador para siempre. Es
133
+ * falso con la forma en que este harness lanza: `sudo` lee la contraseña de `/dev/tty`, no
134
+ * de `stdin`, así que sin terminal de control **falla en el acto** — medido el 10-09-2026,
135
+ * `sudo -k true` con `stdio[0] = "ignore"` sale con código 1 en 57 ms diciendo «a terminal
136
+ * is required to read the password». O sea que el modo de fallo no es un botón colgado: es
137
+ * un botón que dice en dos segundos qué hace falta. Con eso, los pasos de `brew` pasan a
138
+ * ejecutables — y son justo los que faltaban para que la receta de Android tuviera algún
139
+ * botón vivo en una máquina nueva, porque los otros dos dependen de este.
140
+ *
141
+ * Lo que sigue siendo copiable es lo que pide entrada por un camino que NO falla rápido: un
142
+ * `sudo` escrito a mano en el comando (la licencia de Xcode) y una autorización que el
143
+ * sistema pide en una VENTANA (`xcodebuild -downloadPlatform`). Ahí un botón fallaría
144
+ * siempre, que es la otra forma del botón muerto.
145
+ *
146
+ * **Ningún comando puede llevar una ruta de la máquina.** Se pinta en la ventana y viaja por
147
+ * el cable, que puede ir por un túnel: es la misma regla por la que `Herramienta.ruta` se
148
+ * queda en el host. Por eso el prefijo de Homebrew se deriva con `$(brew --prefix)` en vez
149
+ * de escribirse — y de paso vale igual en Intel que en Apple Silicon, que lo tienen distinto.
150
+ */
151
+ export interface PasoDeReceta {
152
+ /** Qué consigue este paso, en una frase. */
153
+ titulo: string;
154
+ /** Las líneas a pegar en un terminal, en orden. */
155
+ comandos: string[];
156
+ /** Lo que hay que saber ANTES de pegarlo: que pregunta algo, que pesa, qué se acepta. */
157
+ nota?: string;
158
+ /**
159
+ * ¿Ya está hecho? Sale de la MEDIDA, nunca de recordar que alguien pulsó: una marca
160
+ * guardada seguiría diciendo «hecho» después de que el usuario desinstalara el SDK, que
161
+ * es exactamente cuando hay que decirle que falta.
162
+ */
163
+ hecho: boolean;
164
+ /**
165
+ * ¿Lo puede lanzar xonecode él, con log en vivo?
166
+ *
167
+ * Solo lo que no puede quedarse ESPERANDO a nadie. `sdkmanager` y `avdmanager` preguntan
168
+ * las licencias y el perfil de hardware, y las dos respuestas se alimentan por `stdin` de
169
+ * forma determinista; `brew` no pregunta nada en modo no interactivo y, si algo suyo
170
+ * pidiera la contraseña, sin terminal de control falla en el acto (medido, arriba).
171
+ *
172
+ * Un paso ejecutable lo es SI Y SOLO SI está en la tabla cerrada de
173
+ * `agent/dispositivos/instalacionEnMaquina.ts#PASOS_EJECUTABLES`: este campo dice que se ofrezca el
174
+ * botón, y esa tabla es la que decide qué se lanza. Que las dos coincidan lo ata un test.
175
+ */
176
+ ejecutable: boolean;
177
+ /**
178
+ * Por qué no se puede lanzar. Dos formas, y las dos se dicen: que falte otro paso —«hace
179
+ * falta el paso 1»— o que ese comando no se lance nunca desde aquí, como el `sudo` de la
180
+ * licencia de Xcode. Sin el motivo, un paso sin botón se lee como que la ventana está rota.
181
+ */
182
+ porQueNo?: string;
183
+ /**
184
+ * Lo que se acepta al pulsar, si al pulsar se acepta algo. Va aparte del `nota` porque
185
+ * aceptar una licencia en nombre de alguien no puede ser un efecto de rebote de un botón
186
+ * que dice «Ejecutar»: se enseña al lado, y pulsar ES la aceptación.
187
+ */
188
+ acepta?: string;
189
+ /**
190
+ * Con el paso YA HECHO, si volver a lanzarlo sirve para algo, cómo se llama entonces el
191
+ * botón. **Ausente significa que no se ofrece.**
192
+ *
193
+ * Medido en la ventana: un paso marcado como hecho seguía enseñando «Ejecutar este paso»,
194
+ * o sea que la receta ofrecía instalar lo que su propia marca decía que ya estaba. Eso es
195
+ * el botón muerto otra vez, y en la dirección que más desgasta: enseña a pulsar sin leer.
196
+ * Pero quitarlo de todos habría borrado la única vía de ACTUALIZAR: `sdkmanager --install`
197
+ * sobre un paquete instalado lo sube de versión, así que ahí repetir es una operación
198
+ * distinta y con otro nombre — y con su `porQue` al lado, porque un botón sobre un paso
199
+ * hecho, sin motivo, se lee como el mismo error al revés.
200
+ */
201
+ repetir?: {
202
+ etiqueta: string;
203
+ porQue: string;
204
+ };
205
+ }
206
+ /**
207
+ * Lo que va APARTE de los pasos: consejo que NO se mide, no se lanza desde aquí y **no
208
+ * decide si la receta está completa**.
209
+ *
210
+ * Existe por un paso que había aquí: «declarar las variables en tu shell» era un paso —con
211
+ * su número, su marca y su peso en `completa`— cuyo `hecho` se medía en el ENTORNO DE ESTE
212
+ * PROCESO y no en la shell de nadie, y cuya propia nota decía que xonecode no lo necesita.
213
+ * El resultado, medido en una máquina con el emulador ya instalado: la receta seguía abierta
214
+ * enseñando pasos hechos, y no podía cerrarse nunca por un consejo que nadie está obligado a
215
+ * seguir. El consejo se sigue dando —los `export` hacen falta para que `emulator` y `adb`
216
+ * funcionen en un terminal— pero deja de ser un requisito.
217
+ */
218
+ export interface Aparte {
219
+ titulo: string;
220
+ comandos: string[];
221
+ /** Lo que hay que saber antes de pegarlo, igual que en un paso. */
222
+ nota?: string;
223
+ }
224
+ /**
225
+ * Cómo conseguir una capacidad que esta máquina no tiene. Hoy hay dos, las dos de macOS.
226
+ *
227
+ * El `id` es una UNIÓN y no una cadena: viaja por el cable y es la clave con que
228
+ * `agent/dispositivos/instalacionEnMaquina.ts` busca en su tabla cerrada de pasos ejecutables, así que un
229
+ * id nuevo tiene que aparecer aquí para que el compilador obligue a decidir qué se lanza y
230
+ * qué se copia.
231
+ */
232
+ export interface Receta {
233
+ id: "android-emulador" | "ios-simulador";
234
+ /** A qué plataforma sirve. Dato, como en `Herramienta`: de aquí sale su pestaña. */
235
+ plataforma: "android" | "ios";
236
+ titulo: string;
237
+ descripcion: string;
238
+ pasos: PasoDeReceta[];
239
+ /** Todo hecho: la receta se pliega y se dice que ya está. */
240
+ completa: boolean;
241
+ /**
242
+ * Consejo que NO es un paso y no cuenta para `completa`. Ver `Aparte`.
243
+ *
244
+ * Solo Android lo tiene hoy: son los `export` de la shell, que hacen falta para que el
245
+ * comando de `despues` funcione en un terminal pero que xonecode no necesita para nada.
246
+ */
247
+ aparte?: Aparte;
248
+ /** Lo que viene DESPUÉS de instalar y que esta consola no hace por ti. */
249
+ despues: string;
250
+ }
251
+ /** Lo medido que decide qué pasos están hechos. Entra ya resuelto: esto es `core/`. */
252
+ export interface EstadoDeAndroid {
253
+ /** ¿Hay `brew`? Sin él la receta se puede leer igual, pero el primer paso no valdrá.
254
+ * Solo lo usa la receta de macOS. */
255
+ brew: boolean;
256
+ /**
257
+ * ¿Hay `adb`? En macOS lo trae el mismo cask que `sdkmanager`, así que no hacía falta
258
+ * aparte; en Windows es su PROPIO paso (una descarga independiente de las demás), y sin
259
+ * este campo ese paso no tendría de qué `hecho` colgarse.
260
+ */
261
+ adb: boolean;
262
+ sdkmanager: boolean;
263
+ emulator: boolean;
264
+ /** Un JDK con el que correr `sdkmanager`, que es un programa Java. */
265
+ jdk: boolean;
266
+ avds: readonly string[];
267
+ }
268
+ /**
269
+ * Las URLs de descarga de la receta de Windows, fijadas a mano y verificadas en vivo
270
+ * (2026-09-22): `platform-tools-latest-windows.zip` y la API de Adoptium son alias
271
+ * ESTABLES que Google/Adoptium mantienen sin cambiar nunca — los usan incontables scripts
272
+ * de CI. Las «command line tools» del SDK NO tienen alias estable (el número de build
273
+ * cambia de vez en cuando): se fija a mano, igual que ya está fijada a mano la imagen de
274
+ * sistema `system-images;android-35;…` de abajo. Si Google la retira, el paso de descarga
275
+ * falla con un mensaje claro (no en silencio) y esto se bump a mano cuando toque.
276
+ */
277
+ export declare const URL_PLATFORM_TOOLS_WINDOWS = "https://dl.google.com/android/repository/platform-tools-latest-windows.zip";
278
+ export declare const URL_JDK_WINDOWS = "https://api.adoptium.net/v3/binary/latest/17/ga/windows/x64/jdk/hotspot/normal/eclipse";
279
+ export declare const URL_CMDLINE_TOOLS_WINDOWS = "https://dl.google.com/android/repository/commandlinetools-win-15859902_latest.zip";
280
+ /**
281
+ * La receta del emulador de Android, en macOS o en Windows.
282
+ *
283
+ * **Solo estos dos, y a propósito.** En Linux los gestores y las rutas son otros, así que
284
+ * sería otra receta; devolver esta con otro título sería el botón muerto de siempre, y el
285
+ * panel prefiere decir que aún no la hay.
286
+ *
287
+ * Sale de los pasos que el usuario verificó a mano en su máquina, no de la documentación.
288
+ * Los de macOS, en su propia sección (`recetaMacOs`); los de Windows en `recetaWindows`, con
289
+ * la MISMA forma pero un mecanismo de instalación distinto: macOS tiene Homebrew para
290
+ * instalar TODO de un tirón; Windows no tiene un gestor equivalente para esto, así que cada
291
+ * pieza (adb, el JDK, las herramientas del SDK) se descarga por su cuenta — de ahí que
292
+ * Windows tenga cinco pasos donde macOS tiene tres.
293
+ */
294
+ export declare function recetaDeEmuladorAndroid(plataforma: string, estado: EstadoDeAndroid): Receta | undefined;
295
+ /** Lo medido que decide los pasos de la receta de iOS. Entra ya resuelto: esto es `core/`. */
296
+ export interface EstadoDeIos {
297
+ /**
298
+ * Xcode COMPLETO, no las Command Line Tools: `xcode-select -p` apunta dentro de un
299
+ * `Xcode.app`. La distinción es la mitad de esta receta — las CLT traen `xcrun` y
300
+ * `simctl`, así que `xcode-select -p` contesta y `xcrun simctl list` no falla, pero **no
301
+ * traen ni un simulador**. Sin separarlas, alguien con solo las CLT vería «Xcode: ok» y
302
+ * una lista de simuladores vacía sin nada que le dijera qué le falta.
303
+ */
304
+ xcode: boolean;
305
+ /** La licencia aceptada y la ruta activa puesta: `xcodebuild -version` contesta. */
306
+ licencia: boolean;
307
+ /** Los runtime de iOS instalados, por versión (`xcrun simctl runtime list -j`). */
308
+ runtimes: readonly string[];
309
+ }
310
+ /**
311
+ * La receta del simulador de iOS en macOS.
312
+ *
313
+ * **Solo macOS, y no por elección**: los simuladores de iOS los da Xcode, que no existe en
314
+ * ningún otro sistema. Fuera de macOS la respuesta no es otra receta, es que no hay ninguna.
315
+ *
316
+ * Los tres pasos son COPIABLES y ninguno se lanza desde aquí, al contrario que la de
317
+ * Android. Es la regla de siempre —se ofrece ejecutar lo que se puede cumplir— aplicada a lo
318
+ * que cada comando necesita de verdad:
319
+ * - **Xcode se instala del App Store.** No hay comando que lo haga; lo que se da es el que
320
+ * abre su ficha. Un botón «Ejecutar este paso» que solo abriera una ventana del App Store
321
+ * diría que ha hecho el paso, y no lo ha hecho.
322
+ * - **La licencia lleva `sudo` escrito en el comando.** Sin terminal de control `sudo` falla
323
+ * en el acto (medido), así que el botón no se colgaría — fallaría SIEMPRE, que es la otra
324
+ * forma del botón muerto.
325
+ * - **El runtime pide autorización de administrador en una VENTANA del sistema.** Eso no se
326
+ * puede contestar por `stdin` ni fallar rápido: se queda esperando a alguien que está
327
+ * mirando el navegador, no el escritorio.
328
+ *
329
+ * Y hay que decir lo que se mide de esta máquina: aquí, el 10-09-2026, los tres pasos están
330
+ * hechos (Xcode 26.6, licencia aceptada, tres runtime de iOS), así que la receta sale
331
+ * `completa` y el panel dice «ya está» en vez de cuatro pasos que sobran.
332
+ */
333
+ export declare function recetaDeSimuladorIos(plataforma: string, estado: EstadoDeIos): Receta | undefined;
334
+ export interface InformeDeDispositivos {
335
+ sistema: SistemaOperativo;
336
+ herramientas: Herramienta[];
337
+ dispositivos: Dispositivo[];
338
+ /** Los AVD de Android definidos (imágenes de emulador), estén arrancados o no. */
339
+ avds: string[];
340
+ /**
341
+ * Cómo conseguir lo que a esta máquina le falta. Vacío cuando no hay ninguna receta para
342
+ * este sistema —Windows y Linux son otras— o cuando no hace falta ninguna.
343
+ */
344
+ recetas: Receta[];
345
+ /** Cuándo se midió (ISO). Lo que se enseña es una foto, no un estado en vivo. */
346
+ medido: string;
347
+ }
348
+ /** El sistema, a partir de `process.platform`. */
349
+ export declare function sistemaDe(platform: string): SistemaOperativo;
350
+ export declare function nombreDelSistema(sistema: SistemaOperativo): string;
351
+ /**
352
+ * `adb devices -l`. Formato estable desde hace años:
353
+ *
354
+ * List of devices attached
355
+ * emulator-5554 device product:sdk_gphone64_arm64 model:sdk_gphone64_arm64 device:emu64a transport_id:1
356
+ * R58M12ABCDE unauthorized transport_id:2
357
+ * 192.168.1.20:5555 offline
358
+ *
359
+ * El nombre sale de `model:` (con los guiones bajos como espacios) y, sin él, del serial.
360
+ * Un serial `emulator-N` es un emulador; lo demás, físico (incluido un dispositivo por red).
361
+ */
362
+ export declare function parsearAdbDevices(texto: string): Dispositivo[];
363
+ /**
364
+ * `emulator -list-avds`: un nombre por línea. Las versiones recientes mezclan líneas
365
+ * `INFO | …` (van a stderr, pero por si acaso se descartan también aquí).
366
+ */
367
+ export declare function parsearAvds(texto: string): string[];
368
+ /**
369
+ * El motivo de una verificación fallida, dicho sin vocabulario de máquina.
370
+ *
371
+ * Lo que devuelve `adb` viene con el SERIAL dentro —«adb: device 'emulator-5554' not found»— y
372
+ * eso acaba en una fila que se llama `pixel8`: el serial es un puerto que cambia entre
373
+ * arranques, es lo que esta interfaz esconde a propósito en todas partes, y encima deja al
374
+ * usuario leyendo dos nombres del mismo aparato. Se sustituye por el nombre que se le enseña.
375
+ *
376
+ * Y el caso de «no está» se DICE en vez de traducirse palabra por palabra: «not found» de adb
377
+ * significa que el aparato ya no aparece en su lista, o sea que se apagó o se desenchufó desde
378
+ * la última medida. Eso es lo accionable —la lista está vieja, vuelve a mirar— y es lo que
379
+ * explica por qué la fila decía «arrancado» mientras la verificación dice que no.
380
+ */
381
+ export declare function motivoDeVerificacion(crudo: string, dispositivo: Pick<Dispositivo, "id" | "nombre">): string;
382
+ /**
383
+ * `adb -s <serial> emu avd name`: el nombre del AVD que hay detrás de un emulador en marcha.
384
+ *
385
+ * Forma MEDIDA con `pixel8` arrancado — son DOS líneas, el nombre y el acuse de la consola:
386
+ *
387
+ * pixel8
388
+ * OK
389
+ *
390
+ * Se usa la consola del emulador y no `getprop ro.boot.qemu.avd_name` (que contesta lo mismo,
391
+ * medido) porque `getprop` lee una propiedad de la IMAGEN y podría no estar en un emulador de
392
+ * terceros, mientras que la consola es el emulador mismo contestando.
393
+ *
394
+ * Fail-closed: `undefined` ante cualquier cosa que no sea un nombre de AVD. El nombre es una
395
+ * carpeta de `~/.android/avd`, así que no lleva espacios ni barras; y el `OK` del acuse se
396
+ * descarta explícitamente porque llegar a tomarlo por nombre sería emparejar por una cadena
397
+ * que no existe, o sea el mismo fallo de antes con otra forma.
398
+ */
399
+ export declare function nombreDeAvdDeConsola(texto: string): string | undefined;
400
+ /**
401
+ * `xcrun simctl list -j devices available`. Forma MEDIDA en esta máquina (Xcode con iOS 26):
402
+ *
403
+ * { "devices": { "com.apple.CoreSimulator.SimRuntime.iOS-26-0": [
404
+ * { "udid": "EF39…", "isAvailable": true, "state": "Shutdown", "name": "iPhone 17 Pro", … } ] } }
405
+ *
406
+ * El runtime se lee de la clave: «iOS-26-0» → «iOS 26.0». `Booted` es el único estado en que
407
+ * se llega al simulador; `Shutdown` es apagado, y cualquier otro se enseña como no disponible
408
+ * con su valor.
409
+ */
410
+ export declare function parsearSimctl(json: string): Dispositivo[];
411
+ /**
412
+ * Los runtime de iOS del simulador, del MISMO `xcrun simctl list -j` que ya trae los
413
+ * dispositivos: se le añade el dominio `runtimes` y con eso viene en la misma respuesta.
414
+ *
415
+ * Eso es lo que hace que saber si falta el runtime no cueste NI UN proceso más, que es la
416
+ * regla de esta pantalla: medir cuesta procesos en el equipo del usuario. La otra forma,
417
+ * `xcrun simctl runtime list -j`, existe y contesta lo mismo —medido: un objeto indexado por
418
+ * uuid con `platformIdentifier` y `state: "Ready"`— pero es una llamada aparte.
419
+ *
420
+ * Forma MEDIDA aquí (Xcode 26.6):
421
+ *
422
+ * { "runtimes": [ { "name": "iOS 26.0", "version": "26.0.1", "isAvailable": true,
423
+ * "platform": "iOS", "identifier": "…SimRuntime.iOS-26-0" } ],
424
+ * "devices": { … } }
425
+ *
426
+ * Solo los de **iOS** y solo los `isAvailable`: uno a medio descargar no arranca nada, y con
427
+ * watchOS o tvOS instalados la cifra diría que hay iOS cuando no lo hay. `isAvailable` se
428
+ * mira como booleano de verdad —la trampa del `"false"` de cadena— y **ausente cuenta como
429
+ * disponible**: este listado ya se pide con `available`, así que quien no lo esté no llega
430
+ * hasta aquí, y descartar lo que no lo declara diría que no hay runtime teniéndolos.
431
+ */
432
+ export declare function parsearRuntimesDeIos(json: string): string[];
433
+ /**
434
+ * `xcrun devicectl list devices --json-output <fichero>`. Forma DOCUMENTADA (Xcode 15+),
435
+ * no medida: en esta máquina no hay ningún dispositivo iOS físico, y el fichero real
436
+ * trae `result.devices: []`. Campos: `identifier`, `deviceProperties.name`,
437
+ * `connectionProperties.tunnelState` («connected» | «unavailable» | …) y
438
+ * `hardwareProperties.platform`.
439
+ */
440
+ export declare function parsearDevicectl(json: string): Dispositivo[];
441
+ /**
442
+ * La línea que EXPLICA un fallo de `simctl`, de entre las que escribe.
443
+ *
444
+ * Medido el 10-09-2026 con `xcrun simctl spawn <udid>` sobre un simulador apagado: la
445
+ * primera línea es papeleo y la segunda es lo que hay que leer.
446
+ *
447
+ * An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=405):
448
+ * Process spawn via launchd failed because device is not booted.
449
+ * Underlying error (domain=com.apple.SimLaunchHostService.RequestError, code=3):
450
+ *
451
+ * `describirFallo` se queda con la PRIMERA línea de stderr, que aquí es justo la que no dice
452
+ * nada —un dominio y un número—, así que esta elige la primera que no sea de papeleo. Sin
453
+ * esto, verificar un simulador apagado contestaba con un código de error en vez de con
454
+ * «no está arrancado».
455
+ */
456
+ export declare function motivoDeSimctl(texto: string): string | undefined;
457
+ /**
458
+ * ¿Este estado es «se puede hablar con él»? El criterio vive AQUÍ y en un solo sitio.
459
+ *
460
+ * Estaba escrito a mano dentro de `alcanzables()`, y el veredicto de lanzamiento
461
+ * (`core/puedeLanzarse.ts`) necesitaba lo mismo: una segunda definición de «alcanzable» es un
462
+ * segundo sitio donde puede dejar de significar lo mismo —el día que un estado nuevo contara
463
+ * como llegada, uno de los dos se enteraría y el otro no—, que es como se ha roto este repo
464
+ * nueve veces. El test que ata las dos respuestas estado a estado es lo que impide que la copia
465
+ * vuelva.
466
+ */
467
+ export declare function esAlcanzable(estado: Dispositivo["estado"]): boolean;
468
+ /** Con qué dispositivos SE LLEGA ahora mismo: es lo que el escritorio lista por nombre. */
469
+ export declare function alcanzables(informe: InformeDeDispositivos): Dispositivo[];