xonecode 0.38.44 → 0.39.2

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 (323) hide show
  1. package/dist/agent/cloudstudio/cloudstudioClient.d.ts +29 -0
  2. package/dist/agent/cloudstudio/cloudstudioMcp.d.ts +414 -0
  3. package/dist/agent/cloudstudio/conexionDeServidor.d.ts +37 -0
  4. package/dist/agent/cloudstudio/conexionDeServidor.js +63 -0
  5. package/dist/agent/cloudstudio/conexionDeServidor.js.map +1 -0
  6. package/dist/agent/cloudstudio/crearRama.d.ts +15 -0
  7. package/dist/agent/cloudstudio/crearRama.js +16 -0
  8. package/dist/agent/cloudstudio/crearRama.js.map +1 -0
  9. package/dist/agent/cloudstudio/descarga.d.ts +44 -0
  10. package/dist/agent/cloudstudio/manifiesto.d.ts +25 -0
  11. package/dist/agent/cloudstudio/ramaActiva.d.ts +24 -0
  12. package/dist/agent/cloudstudio/subida.d.ts +61 -0
  13. package/dist/agent/cloudstudio/subida.js +7 -1
  14. package/dist/agent/cloudstudio/subida.js.map +1 -1
  15. package/dist/agent/cloudstudio/validarTrasDescarga.d.ts +13 -0
  16. package/dist/agent/cloudstudio/zip.d.ts +13 -0
  17. package/dist/agent/conectores/conectoresEnDisco.d.ts +47 -0
  18. package/dist/agent/conectores/gestorJira.d.ts +50 -0
  19. package/dist/agent/conectores/gestorNotion.d.ts +45 -0
  20. package/dist/agent/conectores/proveedorDeConector.d.ts +43 -0
  21. package/dist/agent/conectores/servicioDeConectores.d.ts +112 -0
  22. package/dist/agent/config/authEnDisco.d.ts +43 -0
  23. package/dist/agent/config/catalogoModelos.d.ts +79 -0
  24. package/dist/agent/config/configEnDisco.d.ts +235 -0
  25. package/dist/agent/config/crearProyecto.d.ts +20 -0
  26. package/dist/agent/config/diagnosticoDeNodeEnMaquina.d.ts +44 -0
  27. package/dist/agent/config/ecoDeRazonamiento.d.ts +104 -0
  28. package/dist/agent/config/entorno.d.ts +83 -0
  29. package/dist/agent/config/fuentesEnRed.d.ts +12 -0
  30. package/dist/agent/config/gemini.d.ts +5 -0
  31. package/dist/agent/config/iconosEnRed.d.ts +10 -0
  32. package/dist/agent/config/identidadEnDisco.d.ts +27 -0
  33. package/dist/agent/config/modelos.d.ts +77 -0
  34. package/dist/agent/config/modelosDeMotor.d.ts +52 -0
  35. package/dist/agent/config/mudanzaEnDisco.d.ts +99 -0
  36. package/dist/agent/config/persona.d.ts +1 -0
  37. package/dist/agent/config/selectorEnMaquina.d.ts +35 -0
  38. package/dist/agent/config/settingsEnDisco.d.ts +206 -0
  39. package/dist/agent/config/versionEnDisco.d.ts +17 -0
  40. package/dist/agent/dispositivos/arranqueDeEmulador.d.ts +60 -0
  41. package/dist/agent/dispositivos/cajasDeMaqueta.d.ts +61 -0
  42. package/dist/agent/dispositivos/decodificarImagen.d.ts +21 -0
  43. package/dist/agent/dispositivos/descargaDeHerramientas.d.ts +44 -0
  44. package/dist/agent/dispositivos/dispositivosEnMaquina.d.ts +161 -0
  45. package/dist/agent/dispositivos/geometriaEnDisco.d.ts +17 -0
  46. package/dist/agent/dispositivos/hotswap.d.ts +194 -0
  47. package/dist/agent/dispositivos/instalacionEnMaquina.d.ts +156 -0
  48. package/dist/agent/dispositivos/juezVisual.d.ts +144 -0
  49. package/dist/agent/dispositivos/lanzamientoEnMaquina.d.ts +197 -0
  50. package/dist/agent/dispositivos/paqueteDelProyecto.d.ts +28 -0
  51. package/dist/agent/dispositivos/procesosEnMaquina.d.ts +154 -0
  52. package/dist/agent/dispositivos/recargaEnAparato.d.ts +30 -0
  53. package/dist/agent/dispositivos/sensorDeArranque.d.ts +42 -0
  54. package/dist/agent/exportarPdf.d.ts +72 -0
  55. package/dist/agent/grafo/aprendido.d.ts +28 -0
  56. package/dist/agent/grafo/arbolDeProyecto.d.ts +205 -0
  57. package/dist/agent/grafo/artefactosEnDisco.d.ts +35 -0
  58. package/dist/agent/grafo/atributosXone.d.ts +31 -0
  59. package/dist/agent/grafo/buscarIcono.d.ts +32 -0
  60. package/dist/agent/grafo/busquedaRegex.d.ts +56 -0
  61. package/dist/agent/grafo/codificacionDelProyecto.d.ts +7 -0
  62. package/dist/agent/grafo/compararCapturas.d.ts +22 -0
  63. package/dist/agent/grafo/copiarArtefacto.d.ts +64 -0
  64. package/dist/agent/grafo/criticaVisual.d.ts +60 -0
  65. package/dist/agent/grafo/describirImagen.d.ts +79 -0
  66. package/dist/agent/grafo/diferenciaDeCapturas.d.ts +33 -0
  67. package/dist/agent/grafo/ejecucionCancelable.d.ts +45 -0
  68. package/dist/agent/grafo/escriturasEnSerie.d.ts +31 -0
  69. package/dist/agent/grafo/excluirTools.d.ts +37 -0
  70. package/dist/agent/grafo/fuentesDeGoogle.d.ts +37 -0
  71. package/dist/agent/grafo/generarFondoSvg.d.ts +52 -0
  72. package/dist/agent/grafo/incorporarAdjunto.d.ts +98 -0
  73. package/dist/agent/grafo/lectorDeReferencias.d.ts +28 -0
  74. package/dist/agent/grafo/marcarCriteriosDelPlan.d.ts +47 -0
  75. package/dist/agent/grafo/memoriaDeProyecto.d.ts +15 -0
  76. package/dist/agent/grafo/navegacionXone.d.ts +60 -0
  77. package/dist/agent/grafo/opcionesDeFicheros.d.ts +23 -0
  78. package/dist/agent/grafo/perfiles.d.ts +225 -0
  79. package/dist/agent/grafo/proyecto.d.ts +450 -0
  80. package/dist/agent/grafo/skills.d.ts +181 -0
  81. package/dist/agent/grafo/traerDeLaMaquina.d.ts +60 -0
  82. package/dist/agent/grafo/unirSecciones.d.ts +20 -0
  83. package/dist/agent/grafo/validacionXone.d.ts +35 -0
  84. package/dist/agent/grafo/validarFicheroXone.d.ts +33 -0
  85. package/dist/agent/grafo/xoneAgent.d.ts +166 -0
  86. package/dist/agent/motores/motoresLocales.d.ts +87 -0
  87. package/dist/agent/motores/trueforge/capacidades.d.ts +183 -0
  88. package/dist/agent/motores/trueforge/convertirAP.d.ts +38 -0
  89. package/dist/agent/motores/trueforge/detencion.d.ts +70 -0
  90. package/dist/agent/motores/trueforge/esperas.d.ts +38 -0
  91. package/dist/agent/motores/trueforge/eventosTrueforge.d.ts +56 -0
  92. package/dist/agent/motores/trueforge/informesDeHijos.d.ts +48 -0
  93. package/dist/agent/motores/trueforge/medidaAutomatica.d.ts +37 -0
  94. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.d.ts +60 -0
  95. package/dist/agent/motores/trueforge/memoriaTrueforge.d.ts +131 -0
  96. package/dist/agent/motores/trueforge/metricasTrueforge.d.ts +45 -0
  97. package/dist/agent/motores/trueforge/modeloExterno.d.ts +9 -0
  98. package/dist/agent/motores/trueforge/modeloLangchain.d.ts +69 -0
  99. package/dist/agent/motores/trueforge/notas.d.ts +48 -0
  100. package/dist/agent/motores/trueforge/proponerTareas.d.ts +30 -0
  101. package/dist/agent/motores/trueforge/recortes.d.ts +47 -0
  102. package/dist/agent/motores/trueforge/resumenSeguro.d.ts +33 -0
  103. package/dist/agent/motores/trueforge/sesionTrueforge.d.ts +273 -0
  104. package/dist/agent/motores/trueforge/skillsTrueforge.d.ts +16 -0
  105. package/dist/agent/motores/trueforge/toolsDeConectores.d.ts +36 -0
  106. package/dist/agent/motores/trueforge/toolsDeFichero.d.ts +146 -0
  107. package/dist/agent/motores/trueforge/toolsPropias.d.ts +38 -0
  108. package/dist/agent/motores/trueforge/traerDeStitch.d.ts +63 -0
  109. package/dist/agent/motores/trueforge/trueforge.d.ts +35 -0
  110. package/dist/agent/navegacion/estilosEnDisco.d.ts +41 -0
  111. package/dist/agent/navegacion/hechosEnDisco.d.ts +19 -0
  112. package/dist/agent/navegacion/indiceEnDisco.d.ts +50 -0
  113. package/dist/agent/navegacion/modeloDeProyecto.d.ts +86 -0
  114. package/dist/agent/planesEnDisco.d.ts +18 -0
  115. package/dist/agent/publicarPlan.d.ts +20 -0
  116. package/dist/agent/raizDelPaquete.d.ts +9 -0
  117. package/dist/agent/remoto/ngrokEnMaquina.d.ts +44 -0
  118. package/dist/agent/remoto/puenteWebSocket.d.ts +59 -0
  119. package/dist/agent/remoto/tunelNgrok.d.ts +31 -0
  120. package/dist/agent/renombrarSobre.d.ts +14 -0
  121. package/dist/agent/sesiones/adjuntosDeSesion.d.ts +64 -0
  122. package/dist/agent/sesiones/baseDeFichero.d.ts +9 -0
  123. package/dist/agent/sesiones/checkpointer.d.ts +146 -0
  124. package/dist/agent/sesiones/git.d.ts +66 -0
  125. package/dist/agent/sesiones/gitSync.d.ts +264 -0
  126. package/dist/agent/sesiones/memoriaDeHilo.d.ts +4 -0
  127. package/dist/agent/sesiones/modeloDelCambio.d.ts +7 -0
  128. package/dist/agent/sesiones/parcheEnTexto.d.ts +9 -0
  129. package/dist/agent/sesiones/sesionGit.d.ts +155 -0
  130. package/dist/agent/subagentes/actividadDeCodex.d.ts +8 -0
  131. package/dist/agent/subagentes/agentesEnDisco.d.ts +198 -0
  132. package/dist/agent/subagentes/consumoExterno.d.ts +83 -0
  133. package/dist/agent/subagentes/ejecutableEnWindows.d.ts +53 -0
  134. package/dist/agent/subagentes/escrituraDeCodex.d.ts +94 -0
  135. package/dist/agent/subagentes/escrituraDeOpencode.d.ts +67 -0
  136. package/dist/agent/subagentes/escrituraExterna.d.ts +419 -0
  137. package/dist/agent/subagentes/pluginDeSkills.d.ts +84 -0
  138. package/dist/agent/subagentes/subagenteCodex.d.ts +76 -0
  139. package/dist/agent/subagentes/subagenteExterno.d.ts +169 -0
  140. package/dist/agent/subagentes/subagenteOpencode.d.ts +126 -0
  141. package/dist/agent/tareas/aumentador.d.ts +99 -0
  142. package/dist/agent/tareas/juezDeTarea.d.ts +64 -0
  143. package/dist/agent/tareas/reflejoEnElGestor.d.ts +38 -0
  144. package/dist/agent/tareas/sondeoDelGestor.d.ts +49 -0
  145. package/dist/agent/tareas/tareasEnDisco.d.ts +141 -0
  146. package/dist/agent/trazaDeErroresEnDisco.d.ts +10 -0
  147. package/dist/agent/turno/depuracion.d.ts +1 -0
  148. package/dist/agent/turno/diagnosticoDeTools.d.ts +124 -0
  149. package/dist/agent/turno/ficherosDelProyecto.d.ts +10 -0
  150. package/dist/agent/turno/guionizado.d.ts +18 -0
  151. package/dist/agent/turno/informeDeTraza.d.ts +220 -0
  152. package/dist/agent/turno/inspectorDePrompt.d.ts +150 -0
  153. package/dist/agent/turno/instantanea.d.ts +16 -0
  154. package/dist/agent/turno/interrupts.d.ts +54 -0
  155. package/dist/agent/turno/juezDelTurnoConModelo.d.ts +26 -0
  156. package/dist/agent/turno/mensajes.d.ts +23 -0
  157. package/dist/agent/turno/normalizar.d.ts +15 -0
  158. package/dist/agent/turno/puente.d.ts +196 -0
  159. package/dist/agent/turno/registroDeFallos.d.ts +39 -0
  160. package/dist/agent/turno/resumenDeContexto.d.ts +269 -0
  161. package/dist/agent/turno/resumenDeTool.d.ts +33 -0
  162. package/dist/agent/turno/rubrica.d.ts +35 -0
  163. package/dist/agent/turno/sesionReal.d.ts +89 -0
  164. package/dist/agent/turno/textoDeTool.d.ts +19 -0
  165. package/dist/agent/turno/turnoReal.d.ts +210 -0
  166. package/dist/agent/turno/verificacion.d.ts +85 -0
  167. package/dist/agent/turno/verificador.d.ts +66 -0
  168. package/dist/bin.d.ts +2 -0
  169. package/dist/cli/acuseDeModelo.d.ts +18 -0
  170. package/dist/cli/aprobar.d.ts +162 -0
  171. package/dist/cli/config.d.ts +17 -0
  172. package/dist/cli/consola.d.ts +473 -0
  173. package/dist/cli/describe.d.ts +7 -0
  174. package/dist/cli/doctor.d.ts +8 -0
  175. package/dist/cli/fuentesDeDisco.d.ts +25 -0
  176. package/dist/cli/main.d.ts +291 -0
  177. package/dist/cli/markdown.d.ts +126 -0
  178. package/dist/cli/panel.d.ts +38 -0
  179. package/dist/cli/podar.d.ts +38 -0
  180. package/dist/cli/run.d.ts +30 -0
  181. package/dist/cli/spinner.d.ts +37 -0
  182. package/dist/cli/stdio.d.ts +94 -0
  183. package/dist/cli/tema.d.ts +68 -0
  184. package/dist/cli/tokens.d.ts +16 -0
  185. package/dist/cli/traza.d.ts +19 -0
  186. package/dist/cli/tui/app.d.ts +23 -0
  187. package/dist/cli/tui/aprobarTui.d.ts +46 -0
  188. package/dist/cli/tui/barra.d.ts +43 -0
  189. package/dist/cli/tui/correrTui.d.ts +119 -0
  190. package/dist/cli/tui/entrada.d.ts +14 -0
  191. package/dist/cli/tui/filas.d.ts +13 -0
  192. package/dist/cli/tui/logo.d.ts +20 -0
  193. package/dist/cli/tui/pielTui.d.ts +15 -0
  194. package/dist/cli/tui/raton.d.ts +68 -0
  195. package/dist/cli/tui/sidebar.d.ts +63 -0
  196. package/dist/cli/tui/store.d.ts +102 -0
  197. package/dist/cli/tui/tarjeta.d.ts +8 -0
  198. package/dist/cli/tui/temaInk.d.ts +67 -0
  199. package/dist/cli/tui/transcript.d.ts +32 -0
  200. package/dist/cli/verify.d.ts +9 -0
  201. package/dist/cli/wizardInicial.d.ts +59 -0
  202. package/dist/core/actos.d.ts +437 -0
  203. package/dist/core/adjuntos.d.ts +77 -0
  204. package/dist/core/agentes.d.ts +353 -0
  205. package/dist/core/analisisDeSesion.d.ts +63 -0
  206. package/dist/core/aprendido.d.ts +41 -0
  207. package/dist/core/artefactos.d.ts +74 -0
  208. package/dist/core/atributosXone.d.ts +53 -0
  209. package/dist/core/bitacora.d.ts +21 -0
  210. package/dist/core/cloudstudio.d.ts +168 -0
  211. package/dist/core/codificacion.d.ts +81 -0
  212. package/dist/core/comandoExterno.d.ts +49 -0
  213. package/dist/core/compararCapturas.d.ts +136 -0
  214. package/dist/core/conectores.d.ts +296 -0
  215. package/dist/core/config.d.ts +148 -0
  216. package/dist/core/contextos.d.ts +54 -0
  217. package/dist/core/convertirAP.d.ts +56 -0
  218. package/dist/core/copiaDeAvd.d.ts +44 -0
  219. package/dist/core/cssBienFormado.d.ts +22 -0
  220. package/dist/core/deps.d.ts +28 -0
  221. package/dist/core/descargas.d.ts +61 -0
  222. package/dist/core/descripcionDePantalla.d.ts +121 -0
  223. package/dist/core/descriptoresDeApp.d.ts +108 -0
  224. package/dist/core/diagnosticoDeNode.d.ts +51 -0
  225. package/dist/core/diff.d.ts +26 -0
  226. package/dist/core/diffDeColecciones.d.ts +54 -0
  227. package/dist/core/disenoVinculado.d.ts +17 -0
  228. package/dist/core/dispositivoDeSesion.d.ts +22 -0
  229. package/dist/core/dispositivoElegido.d.ts +17 -0
  230. package/dist/core/dispositivos.d.ts +469 -0
  231. package/dist/core/entrega.d.ts +341 -0
  232. package/dist/core/entrelazar.d.ts +48 -0
  233. package/dist/core/esfuerzo.d.ts +120 -0
  234. package/dist/core/esqueleto.d.ts +38 -0
  235. package/dist/core/estiloMedido.d.ts +70 -0
  236. package/dist/core/estilos.d.ts +76 -0
  237. package/dist/core/events.d.ts +218 -0
  238. package/dist/core/exportacion.d.ts +88 -0
  239. package/dist/core/fallos.d.ts +79 -0
  240. package/dist/core/fondosSvg.d.ts +115 -0
  241. package/dist/core/fotoDeColecciones.d.ts +45 -0
  242. package/dist/core/fuentes.d.ts +96 -0
  243. package/dist/core/geometriaDePantalla.d.ts +171 -0
  244. package/dist/core/gestorDeTareas.d.ts +295 -0
  245. package/dist/core/hechosDelProyecto.d.ts +70 -0
  246. package/dist/core/hotswap.d.ts +30 -0
  247. package/dist/core/iconos.d.ts +86 -0
  248. package/dist/core/identidadDeProveedor.d.ts +20 -0
  249. package/dist/core/idiomaDeLaRespuesta.d.ts +26 -0
  250. package/dist/core/imagenesDeDocumento.d.ts +40 -0
  251. package/dist/core/jsParaRhino.d.ts +3 -0
  252. package/dist/core/juezDelTurno.d.ts +95 -0
  253. package/dist/core/logDeDispositivo.d.ts +67 -0
  254. package/dist/core/memoria.d.ts +18 -0
  255. package/dist/core/metodoDeComparacionVisual.d.ts +20 -0
  256. package/dist/core/modelos.d.ts +198 -0
  257. package/dist/core/modoDeEscritura.d.ts +155 -0
  258. package/dist/core/motor.d.ts +43 -0
  259. package/dist/core/motoresLocales.d.ts +113 -0
  260. package/dist/core/mudanzaDeWorkspace.d.ts +112 -0
  261. package/dist/core/navegacion.d.ts +172 -0
  262. package/dist/core/notify.d.ts +77 -0
  263. package/dist/core/nucleoXone.d.ts +28 -0
  264. package/dist/core/panorama.d.ts +68 -0
  265. package/dist/core/paqueteDeSoporte.d.ts +100 -0
  266. package/dist/core/planDeSubida.d.ts +56 -0
  267. package/dist/core/planes.d.ts +53 -0
  268. package/dist/core/podaDeCheckpoint.d.ts +75 -0
  269. package/dist/core/ports.d.ts +1034 -0
  270. package/dist/core/puedeLanzarse.d.ts +181 -0
  271. package/dist/core/puertosDeAvd.d.ts +59 -0
  272. package/dist/core/recargaEnCaliente.d.ts +52 -0
  273. package/dist/core/referenciasDeImagen.d.ts +36 -0
  274. package/dist/core/remoto.d.ts +76 -0
  275. package/dist/core/repartoDeEncargo.d.ts +80 -0
  276. package/dist/core/rubrica.d.ts +78 -0
  277. package/dist/core/rutaVirtual.d.ts +29 -0
  278. package/dist/core/selectorDeCarpeta.d.ts +59 -0
  279. package/dist/core/serieDeEscrituras.d.ts +58 -0
  280. package/dist/core/settings.d.ts +421 -0
  281. package/dist/core/shellDeAgente.d.ts +177 -0
  282. package/dist/core/skills.d.ts +129 -0
  283. package/dist/core/stitch.d.ts +114 -0
  284. package/dist/core/tareas.d.ts +412 -0
  285. package/dist/core/tareasDelPlan.d.ts +123 -0
  286. package/dist/core/tareasEnElGestor.d.ts +117 -0
  287. package/dist/core/textos.d.ts +8 -0
  288. package/dist/core/topeAgotado.d.ts +55 -0
  289. package/dist/core/traerDeLaMaquina.d.ts +33 -0
  290. package/dist/core/trazaDeErrores.d.ts +83 -0
  291. package/dist/core/tunel.d.ts +45 -0
  292. package/dist/core/turno.d.ts +154 -0
  293. package/dist/core/validacionDeEscritura.d.ts +95 -0
  294. package/dist/core/verificacionDeSubida.d.ts +14 -0
  295. package/dist/core/version.d.ts +35 -0
  296. package/dist/core/xmlBienFormado.d.ts +23 -0
  297. package/dist/core/zipDeAdjunto.d.ts +28 -0
  298. package/dist/core/zipDeSkill.d.ts +74 -0
  299. package/dist/lib/tareaAutonoma.d.ts +36 -0
  300. package/dist/lib/tareaAutonoma.js +259 -0
  301. package/dist/lib/tareaAutonoma.js.map +1 -0
  302. package/dist/lib.d.ts +31 -0
  303. package/dist/lib.js +28 -0
  304. package/dist/lib.js.map +1 -0
  305. package/dist/vendor/hitl.d.ts +69 -0
  306. package/dist/vendor/skillLoaders/catalog.d.ts +27 -0
  307. package/dist/vendor/sqliteSaver.d.ts +22 -0
  308. package/dist/vendor/tokenTracking.d.ts +22 -0
  309. package/dist/web/servidor/arranque.d.ts +1372 -0
  310. package/dist/web/servidor/consolaDeTarea.d.ts +166 -0
  311. package/dist/web/servidor/consolaWeb.d.ts +142 -0
  312. package/dist/web/servidor/corredorDeTareas.d.ts +395 -0
  313. package/dist/web/servidor/datosDeCierre.d.ts +4 -0
  314. package/dist/web/servidor/interrupcion.d.ts +39 -0
  315. package/dist/web/servidor/pielWeb.d.ts +32 -0
  316. package/dist/web/servidor/puenteRemoto.d.ts +80 -0
  317. package/dist/web/servidor/servidor.d.ts +53 -0
  318. package/dist/web/servidor/sesiones.d.ts +342 -0
  319. package/dist/web/servidor/soporte.d.ts +65 -0
  320. package/dist/web/servidor/transporte.d.ts +2751 -0
  321. package/dist/web/servidor/vestibulo.d.ts +952 -0
  322. package/dist/web/servidor/visorOpenui.d.ts +33 -0
  323. package/package.json +9 -1
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Los dos prefijos virtuales, con barra final: `CompositeBackend` la exige para no
3
+ * reconstruir `//nombre` fuera de la raíz montada — la misma trampa medida con `/skills/`.
4
+ *
5
+ * Los nombres son los de la librería y no una elección nuestra: cambiarlos aquí no cambiaría
6
+ * dónde escribe ella, solo dejaría el montaje sin usar.
7
+ */
8
+ export declare const RUTA_RESULTADOS_GRANDES = "/large_tool_results/";
9
+ export declare const RUTA_HISTORIAL_DE_MENSAJES = "/conversation_history/";
10
+ /** Las dos, para montarlas de una vez. */
11
+ export declare const RUTAS_DE_DESCARGA: readonly ["/large_tool_results/", "/conversation_history/"];
12
+ /**
13
+ * Dónde cae en DISCO una de esas carpetas: al LADO de la de artefactos de la sesión.
14
+ *
15
+ * Se deriva de la carpeta de artefactos en vez de recibir su propio parámetro, y no es
16
+ * pereza: esa carpeta ya lleva dentro la única decisión que hace falta —¿hay una sesión con
17
+ * IDENTIDAD?—, que `turnoReal.ts` resuelve pasando `.xonecode/sesiones/<id>/artefactos` en
18
+ * la web y cayendo a `.xonecode/artefactos` en el terminal, donde el hilo es un uuid nuevo
19
+ * en cada arranque y no habría nada que reabrir. Dos parámetros serían dos sitios donde
20
+ * contestar la misma pregunta, y el segundo es justo el que se cae en un cableado de ocho
21
+ * saltos — el patrón de fallo que este repo ya ha medido seis veces.
22
+ *
23
+ * Y de vivir AHÍ cuelga gratis lo que si no habría que escribir: `borrarSesion` ya borra la
24
+ * carpeta `<id>` entera (`rmSync(dirname(carpetaDeArtefactosDeSesion(...)))`), así que
25
+ * borrar una conversación se lleva también sus descargas — que es lo correcto, por el mismo
26
+ * motivo que se lleva su checkpoint: ahí dentro está la salida entera de tools que se
27
+ * ejecutaron en ella.
28
+ *
29
+ * En el terminal la carpeta es del PROYECTO y no de un hilo, y eso hay que decirlo: esos
30
+ * ficheros se acumulan entre arranques y nada los poda. Es la misma deuda declarada del
31
+ * checkpointer — en este repo no hay barrido de nada todavía.
32
+ */
33
+ export declare function carpetaDeDescargas(carpetaDeArtefactos: string, ruta: string): string;
34
+ /**
35
+ * ¿Es esta ruta una descarga del agente escrita en el PROYECTO? Y si lo es, dónde iba.
36
+ *
37
+ * Existe para que la regla no dependa del montaje. Con las dos raíces montadas esto no
38
+ * salta nunca —`CompositeBackend.getBackendAndKey` enruta por PREFIJO de texto y sin mirar
39
+ * si la carpeta destino existe (leído en deepagents 1.13.2), así que el backend del proyecto
40
+ * no llega a ver esas rutas—, y ahí está el sentido: el día que el montaje falte (una
41
+ * consola construida sin carpeta de artefactos, un cableado que se cae en silencio) la
42
+ * escritura falla CERRADO en vez de aterrizar en la app del cliente. Es la misma lección
43
+ * que la fila incondicional de `/adjuntos/` en `permisosDe`, y por el mismo camino: medido,
44
+ * sin ella la ruta se convertía en un fichero del proyecto.
45
+ *
46
+ * **Se mira el PRIMER segmento y nada más**, igual que `artefactoFueraDeSitio`, y con el
47
+ * mismo precio dicho: un proyecto que de verdad tuviera una carpeta `large_tool_results/`
48
+ * en su raíz no podría escribir ahí con el agente. Se acepta — ninguna convención de XOne
49
+ * usa esos nombres, y el otro lado del error es la salida cruda de una tool subida a la app
50
+ * del cliente. Sin distinguir mayúsculas, que es la lección de APFS.
51
+ */
52
+ export declare function descargaFueraDeSitio(ruta: string): string | undefined;
53
+ /**
54
+ * El motivo con el que se rechaza. Dice QUÉ es y por qué no va ahí, como `porQueNoAhi`: un
55
+ * error seco haría que el modelo probara otra ruta o diera el trabajo por hecho.
56
+ *
57
+ * Aquí quien lee el mensaje casi nunca es el modelo —estas escrituras las hace la librería,
58
+ * y su hueco en el contexto es un «no se pudo guardar»— así que el destinatario de verdad
59
+ * es quien esté leyendo un log. Por eso nombra la causa probable.
60
+ */
61
+ export declare const porQueNoEsDelProyecto: (ruta: string, destino: string) => string;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * El DESCRIPTOR DE PANTALLA: lo que el modelo ve en UNA imagen —la maqueta o la captura, cada una SOLA— con el
3
+ * MISMO esquema y el MISMO vocabulario cerrado, para que la comparación la haga el CÓDIGO. Puro.
4
+ *
5
+ * Existe por la calculadora de MyAllXOne. El crítico comparaba las dos imágenes a la vez y contestaba en prosa
6
+ * libre: vio el visor roto, pero en la misma lista dijo que el «0» de la maqueta era una píldora ancha y que la
7
+ * «=» era más grande que las demás, las dos cosas falsas, y no había forma de separar lo cierto de lo inventado.
8
+ * La maqueta ya se describía con un esquema; la captura, no. Ahora hablan el mismo idioma.
9
+ *
10
+ * Cuatro reglas:
11
+ *
12
+ * - **Cada imagen se describe SOLA.** Con las dos delante el modelo compara de memoria y lo que ve en una se
13
+ * contagia a la otra.
14
+ * - **En la captura, la ESTRUCTURA la pone el árbol de controles** (`filasDelAparato`): se le dice qué controles
15
+ * existen y en qué fila, y solo describe cómo se ve cada uno. Así no puede inventarse una fila ni un botón.
16
+ * - **Vocabulario CERRADO** (formas, tamaños de letra, alineación, colores en `#RRGGBB`): lo que no está en la
17
+ * lista se tira, no se interpreta.
18
+ * - **La comparación es de CÓDIGO** (`compararDescripciones`), control a control y siempre con la misma frase,
19
+ * agrupada por diferencia: «forma píldora → círculo en «7», «8»…». Un texto RECORTADO se dice siempre.
20
+ *
21
+ * Las filas descritas de una maqueta sin `code.html` se comparan además contra el árbol medido
22
+ * (`compararConMaqueta` en modo `aproximada`, vía `maquetaDeLaDescripcion`).
23
+ */
24
+ import { type ControlDelAparato, type GeometriaDelAparato, type MaquetaMedida } from "./geometriaDePantalla.js";
25
+ export declare const FORMAS: readonly ["pildora", "redondeada", "recta", "circulo"];
26
+ export declare const LETRAS: readonly ["pequena", "normal", "grande", "enorme"];
27
+ export declare const ALINEACIONES: readonly ["izquierda", "centro", "derecha"];
28
+ export type Forma = (typeof FORMAS)[number];
29
+ export type Letra = (typeof LETRAS)[number];
30
+ export type Alineacion = (typeof ALINEACIONES)[number];
31
+ export interface ControlVisto {
32
+ /** El texto VISIBLE; un icono sin texto va entre corchetes: `[borrar]`. */
33
+ texto: string;
34
+ /** Su ancho respecto al más estrecho de su fila (1, 2…). Ausente: no se compara su ancho. */
35
+ unidades?: number;
36
+ forma?: Forma;
37
+ fondo?: string;
38
+ colorTexto?: string;
39
+ letra?: Letra;
40
+ /** Lleva un CONTORNO visible. */
41
+ borde?: boolean;
42
+ /** Su texto se ve CORTADO por algún borde. */
43
+ recortado?: boolean;
44
+ alineacion?: Alineacion;
45
+ /** Radio de las esquinas del fondo entre el lado corto (0 recto … 0,5 extremo redondo). */
46
+ radio?: number;
47
+ /** Ancho entre alto de su fondo. */
48
+ proporcion?: number;
49
+ /** Altura de la tinta en fracción del ANCHO de la pantalla. */
50
+ alturaDeLetra?: number;
51
+ /** Su centro en fracción de la pantalla: con él se empareja, en vez de con la fila y la columna. */
52
+ centro?: {
53
+ x: number;
54
+ y: number;
55
+ };
56
+ }
57
+ export interface FilaVista {
58
+ /** Dónde está: `cabecera`, `visor`, `teclado`… (texto libre, corto). */
59
+ zona?: string;
60
+ controles: ControlVisto[];
61
+ }
62
+ export interface PantallaDescrita {
63
+ /** De arriba abajo; cada fila de izquierda a derecha. */
64
+ filas: FilaVista[];
65
+ /** Lo visible que NO es un control: una caja vacía con borde, una línea, un marco. */
66
+ extras: string[];
67
+ }
68
+ /**
69
+ * El prompt, el MISMO para la maqueta y para la captura. `controlesQueExisten` (de la captura, del árbol): las
70
+ * filas con sus textos, que el modelo tiene que usar tal cual.
71
+ */
72
+ export declare function promptDescribirPantalla(controlesQueExisten?: readonly string[]): string;
73
+ /** La fila de la captura como se le da al modelo: los textos, y un control sin texto por su nombre entre corchetes. */
74
+ export declare function filasParaElDescriptor(filas: readonly (readonly ControlDelAparato[])[]): string[];
75
+ /** La descripción que devolvió el modelo, o `undefined` si no trae al menos una fila. Lo que no encaja se tira. */
76
+ export declare function interpretarDescripcion(objeto: Record<string, unknown> | undefined): PantallaDescrita | undefined;
77
+ /**
78
+ * La descripción como cajas de una REJILLA: cada fila a su altura, cada control a lo ancho de sus unidades. Solo
79
+ * sirven para decir fila, orden y ancho relativo (`compararConMaqueta` en modo `aproximada`); un control sin
80
+ * unidades —o todos, con `conAnchos: false`— va marcado `sinAncho`.
81
+ */
82
+ export declare function maquetaDeLaDescripcion(d: PantallaDescrita, conAnchos?: boolean): MaquetaMedida;
83
+ /** La maqueta MEDIDA (las cajas del `code.html`) vista como si fuera un aparato, para compararla con la descrita. */
84
+ export declare function htmlComoAparato(m: MaquetaMedida): GeometriaDelAparato;
85
+ export interface ComparacionDeDescripciones {
86
+ /** «forma píldora → círculo en «7», «8»…»: una línea por diferencia, con los controles que la tienen. */
87
+ diferencias: string[];
88
+ /**
89
+ * Diferencias MENORES: se enseñan, pero no ponen el rojo. Una forma de una categoría VECINA con casi la misma
90
+ * proporción (una píldora de 2,9:1 que sale «recta» de 2,8:1) es un radio unos píxeles distinto en el límite entre dos
91
+ * nombres. Medido en la calculadora: sin esta separación el crítico medido no daba verde nunca y el bucle no acababa.
92
+ */
93
+ menores?: string[];
94
+ /** Lo de la maqueta que no está en la captura. */
95
+ faltan: string[];
96
+ /**
97
+ * Lo que se DICE y no pone el rojo: un texto que en la captura dice otra cosa en el mismo sitio (traducido, u otro
98
+ * estado: un DEG que está en RAD). Antes era una diferencia, y una maqueta en inglés no daba verde nunca.
99
+ */
100
+ notas?: string[];
101
+ /** Texto RECORTADO en la captura: se dice siempre, haya maqueta o no. */
102
+ recortes: string[];
103
+ /**
104
+ * Lo que se ve y no es un control (cajas vacías, rectángulos con borde…), de cada lado. Texto libre: se ENSEÑA
105
+ * para que lo mire quien arregla, pero no cuenta para el veredicto —no se puede comparar por código—.
106
+ */
107
+ extras: {
108
+ maqueta: string[];
109
+ captura: string[];
110
+ };
111
+ }
112
+ /**
113
+ * La comparación, control a control y con la misma frase siempre. Se empareja por TEXTO en orden de lectura
114
+ * (el segundo «±» de la maqueta con el segundo de la captura). Las diferencias iguales se AGRUPAN: dieciséis
115
+ * teclas que pasan de píldora a círculo son una línea, no dieciséis.
116
+ */
117
+ export declare function compararDescripciones(maqueta: PantallaDescrita, captura: PantallaDescrita): ComparacionDeDescripciones;
118
+ /** El bloque que ve el agente. `medida`: las dos salen de los píxeles de cada control, no de un modelo. */
119
+ export declare function informeDeComparacion(c: ComparacionDeDescripciones, como?: "medida" | "descrita"): string[];
120
+ /** Hay algo que arreglar según la comparación. */
121
+ export declare const hayQueArreglar: (c: ComparacionDeDescripciones) => boolean;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Los descriptores de una app XOne: `app.xml` (qué conexiones declara) y `app.ini` (cómo se
3
+ * llama). Datos puros, sin tocar el disco y sin una sola dependencia.
4
+ *
5
+ * **Por qué un escáner y no un regex.** Un regex sobre el texto entero no puede distinguir una
6
+ * etiqueta dentro de un comentario de una de verdad —`<!-- <connection .../> -->` le da
7
+ * exactamente lo mismo—, y aquí el error peligroso es el **falso negativo**: decir «este
8
+ * proyecto no declara conexión» cuando sí la declara deja pasar justo el caso que esta
9
+ * comprobación existe para parar, que es el fichero que falta, el `{"result":true}` del
10
+ * lanzamiento y el diálogo «Database not found» detrás. Un falso positivo, en cambio, solo
11
+ * bloquea y dice por qué: es recuperable. El escáner puede ser correcto en las dos
12
+ * direcciones; un regex, no. Y **no se añade una dependencia de XML**: esto lee dos atributos
13
+ * de un fichero que ya conocemos y que sabemos emitir, no un documento arbitrario.
14
+ *
15
+ * Medido el 2026-09-16 sobre proyectos reales: de cuatro proyectos, dos declaran sus conexiones
16
+ * con `Provider=…` (Replanteos_2026, MyAllXOne), uno declara además la local
17
+ * `connstring="bd/gestion.db"` (MinitsMT) y el esqueleto de `core/esqueleto.ts` declara solo
18
+ * esa ruta. O sea que las dos formas conviven, y por eso hay un predicado que las separa.
19
+ *
20
+ * **Y de ahí sale una consecuencia que NO es la obvia: la declaración es la forma RARA.** De
21
+ * esos cuatro, tres no declaran su base y **los cuatro tienen su `bd/gestion.db`** — porque
22
+ * XOne usa esa ruta **por defecto**, se declare o no—. Así que `esRutaDeFichero` sirve para
23
+ * separar una ruta de una cadena de proveedor dentro de lo declarado, y **no** para decidir qué
24
+ * bases hay que comprobar: eso lo decide la convención, en `puedeLanzarse.ts`. Una regla que
25
+ * dependiera de este escáner para saber si hay base dejaría sin mirar el caso más común —el
26
+ * medido, el diálogo «Database not found»— en tres de cada cuatro proyectos.
27
+ *
28
+ * Y sobre `app.ini`: **el `app.ini` real escribe `name=` en MINÚSCULA** y el esqueleto de
29
+ * `core/esqueleto.ts` escribe `Name=` en mayúscula. Un lector sensible a mayúsculas devolvería
30
+ * `undefined` en todos los proyectos reales y funcionaría solo en el esqueleto — el patrón de
31
+ * fallo de esta casa, escrito en `CLAUDE.md`.
32
+ */
33
+ /**
34
+ * Hasta dónde se mira. `app.xml` de verdad son 2-4 KB (el mayor medido, MinitsMT, 3.9 KB), así
35
+ * que este tope solo existe para que un fichero que no es un `app.xml` —un binario, un minified
36
+ * gigante— no se recorra entero. Por encima se devuelve **lo encontrado**: no es un error, es
37
+ * el final del texto que sabemos leer.
38
+ */
39
+ export declare const TOPE_DE_XML = 400000;
40
+ export interface ConexionDeclarada {
41
+ /** El `name` del atributo. Vacío si la etiqueta no lo traía. */
42
+ nombre: string;
43
+ /** El `connstring` tal cual, sin normalizar. */
44
+ connstring: string;
45
+ }
46
+ /**
47
+ * Las conexiones que declara `app.xml`, **en orden de aparición**.
48
+ *
49
+ * Bucle sobre índices y sin recursión: cada `<` se decide una vez y se avanza, así que un
50
+ * documento mal formado no puede hacer otra cosa que terminar antes.
51
+ *
52
+ * No se mira `<connection>` **dentro de un comentario, de un CDATA, del prólogo `<?xml ?>` ni
53
+ * de un `<!DOCTYPE>`**, que es exactamente lo que un regex no sabe hacer. Medido: el `app.xml`
54
+ * de MinitsMT tiene cuatro bloques de comentario —uno de ellos de cinco líneas y otro que
55
+ * contiene atributos comentados— y el de Replanteos tiene un `<include>` comentado.
56
+ *
57
+ * Un `<connection` sin `>` que lo cierre **sí** se devuelve, con lo que se haya podido leer. Es
58
+ * el lado conservador y la misma doctrina del falso negativo: una etiqueta truncada es una
59
+ * conexión declarada cuyo valor no se pudo leer, y decir «no declara ninguna» sería afirmar de
60
+ * más.
61
+ */
62
+ export declare function conexionesDeApp(xml: string): ConexionDeclarada[];
63
+ /**
64
+ * El `name=`/`Name=` de `app.ini`, recortado. `undefined` si no está o si está vacío.
65
+ *
66
+ * **Sin distinguir mayúsculas, y no es prudencia: es el censo.** Los tres `app.ini` reales que
67
+ * existen —Replanteos_2026, MyAllXOne y AppDemo; MinitsMT no tiene— escriben `name=` en
68
+ * minúscula, y el esqueleto de xonecode escribe `Name=`. Comparar con `=== "name"` funcionaría
69
+ * en todos los proyectos de verdad y fallaría en el único que escribimos nosotros, que es el
70
+ * peor reparto posible.
71
+ *
72
+ * Se salta las líneas sin `=`: el `app.ini` de AppDemo tiene una. Y la PRIMERA clave que case
73
+ * decide: no se sigue buscando otra por si acaso, porque dos `name=` en el mismo fichero no son
74
+ * una ambigüedad que resolver, son un fichero que alguien tocó.
75
+ */
76
+ export declare function nombreDeApp(ini: string): string | undefined;
77
+ /** El icono de la app (`icon=`/`Icon=` de `app.ini`), con las mismas reglas que `nombreDeApp`. */
78
+ export declare function iconoDeApp(ini: string): string | undefined;
79
+ /**
80
+ * Dónde puede estar el icono, en orden y como rutas RELATIVAS a la raíz del proyecto.
81
+ *
82
+ * **Dos sitios, porque el censo y la documentación no coinciden.** Los proyectos reales
83
+ * (ProyectoDieta, ProyectoPruebasXOneCode, mRED_Web) escriben `icon=icon.png` y dejan el fichero
84
+ * en la RAÍZ, junto a `splash.png`; la documentación y nuestro esqueleto dicen `Icon=app_icon.png`
85
+ * dentro de `IconFolder` (`icons/` por omisión). Se prueba primero lo que hacen los reales.
86
+ *
87
+ * Aquí no se decide nada de seguridad: un `icon=../.env` sale tal cual y lo para quien LEE
88
+ * (`leerFicheroDeProyecto`, texto y `realpath`), que es la misma barrera de Ficheros.
89
+ */
90
+ export declare function candidatosDeIcono(ini: string): string[];
91
+ /**
92
+ * ¿Este `connstring` es una RUTA del proyecto, o una cadena de proveedor?
93
+ *
94
+ * Medido el 2026-09-16: `bd/gestion.db` es una ruta; `Provider=Xone Remote Provider;ProgID=…`
95
+ * no lo es, y esos proyectos (Replanteos_2026, MyAllXOne) arrancan perfectamente. Confundirlos
96
+ * bloquearía un lanzamiento que funciona. Los tres descartes son la forma de una cadena de
97
+ * proveedor y no una lista de proveedores conocidos, para que uno nuevo no se cuele como ruta:
98
+ * `;` separa campos, `=` asigna, y `://` es un origen remoto.
99
+ *
100
+ * **La comprobación de existencia que esto habilita es conservadora a propósito, y su falso
101
+ * positivo está acotado.** Mira el PROYECTO, no el dispositivo: un proyecto que nunca se
102
+ * arrancó en local puede no tener `bd/gestion.db` aquí y tenerlo en el aparato, y entonces esto
103
+ * bloquea un lanzamiento que habría funcionado. Se acepta porque el error contrario —el
104
+ * medido— es un `{"result":true}` seguido de un diálogo de error, sin síntoma en ningún sitio;
105
+ * y porque la frase que lo acompaña dice exactamente qué falta. Preguntarle al DISPOSITIVO si
106
+ * tiene el fichero es la mejora obvia y queda fuera de esta pasada.
107
+ */
108
+ export declare function esRutaDeFichero(connstring: string): boolean;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * El diagnóstico de Node de Ajustes → General: lo que hace falta en ESTA máquina para que el agente pueda probar en el
3
+ * aparato y verificar el proyecto. Existe por un paquete de soporte de un usuario en Windows: el desarrollador en Claude
4
+ * Code no tenía ningún script (Windows no da bit de ejecución) y cada turno cerraba con «xone-simulator no está
5
+ * instalado (ENOENT)» aunque venía dentro del paquete. Las dos cosas se ven aquí en un clic.
6
+ *
7
+ * Una FOTO con hora, pedida a mano (el patrón de Dispositivos y Motores locales). **Ninguna ruta de la máquina viaja**:
8
+ * cada línea dice si funciona, una versión y, si falla, un motivo corto sin rutas (el `code` de Node o una frase fija).
9
+ */
10
+ /** Una comprobación: si funciona, lo que se midió (una versión, una cuenta) y, si no, por qué. */
11
+ export interface LineaDeDiagnostico {
12
+ ok: boolean;
13
+ /** Lo medido: una versión («v22.11.0», «2.1.301»), o lo que se comprobó. */
14
+ valor?: string;
15
+ /** Solo si `ok` es falso: por qué, sin rutas. */
16
+ motivo?: string;
17
+ }
18
+ export interface DiagnosticoDeNode {
19
+ /** ISO de cuando se midió. */
20
+ cuando: string;
21
+ /** El Node que corre xonecode: siempre funciona (si no, no habría servidor). */
22
+ servidor: {
23
+ version: string;
24
+ plataforma: string;
25
+ arquitectura: string;
26
+ };
27
+ /** Si el comando `node` responde desde una shell, que es como lanzan los scripts en Windows. */
28
+ nodeEnPath: LineaDeDiagnostico;
29
+ /** Cuántos scripts de las skills se detectan y si uno arranca con la MISMA llamada que haría el agente. */
30
+ scripts: LineaDeDiagnostico & {
31
+ cuantos: number;
32
+ };
33
+ /** `xone-simulator` (de `xone-linter`), el verificador del proyecto. */
34
+ simulador: LineaDeDiagnostico;
35
+ /** El Claude Code que trae el SDK: su versión y si su binario arranca. */
36
+ claudeCode: LineaDeDiagnostico;
37
+ /**
38
+ * El navegador con que el crítico MIDE la maqueta (y se imprime a PDF): Chrome, Edge… Medido en Windows: sin él, el
39
+ * crítico comparaba contra una descripción. Ausente en una foto vieja.
40
+ */
41
+ navegador?: LineaDeDiagnostico;
42
+ }
43
+ /** Los sistemas con su nombre de persona; lo que no se reconoce va tal cual. */
44
+ export declare function nombreDeSistema(plataforma: string): string;
45
+ /**
46
+ * El motivo de un fallo al lanzar un proceso, SIN rutas: el `code` de Node (ENOENT, EACCES…), el tope, o el código de
47
+ * salida. El mensaje de Node no se usa nunca: lleva la ruta absoluta del programa.
48
+ */
49
+ export declare function motivoDeFallo(error: unknown): string;
50
+ /** Si TODO lo que el agente necesita funciona. */
51
+ export declare function todoBien(d: DiagnosticoDeNode): boolean;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * El diff de líneas para la aprobación: el ANTES contra el DESPUÉS de una escritura
3
+ * pendiente, como datos — quien pinta decide colores y presupuesto de líneas.
4
+ *
5
+ * Es PURO a propósito: quién aprueba y de dónde sale el antes y el después no son
6
+ * cosa de este módulo. El algoritmo es el LCS clásico por programación dinámica,
7
+ * con un GUARDIÁN de tamaño: dos ficheros de mil líneas serían un millón de celdas
8
+ * por el precio de un diff bonito, y el fallback (entero reescrito: todo quitado y
9
+ * todo añadido) sigue contando la verdad, solo que sin deduplicar lo que se mantiene.
10
+ */
11
+ export type LineaDeDiff = {
12
+ tipo: "igual" | "anadido" | "quitado";
13
+ texto: string;
14
+ };
15
+ export declare function diffDeLineas(antes: string, despues: string): LineaDeDiff[];
16
+ /**
17
+ * Solo las líneas que importan para decidir: los cambios y `contexto` líneas alrededor
18
+ * de cada uno. Las rachas largas de «igual» se recortan por VENTANAS solapadas (dos
19
+ * cambios cercanos comparten el contexto), no por trozos fijos.
20
+ */
21
+ export declare function conContexto(d: LineaDeDiff[], contexto: number): LineaDeDiff[];
22
+ /** El techo de líneas del bloque de diff, con la cuenta honesta de lo que no cabe. */
23
+ export declare function recortar(d: LineaDeDiff[], tope: number): {
24
+ lineas: LineaDeDiff[];
25
+ recortadas: number;
26
+ };
@@ -0,0 +1,54 @@
1
+ /**
2
+ * El diff SEMÁNTICO de las colecciones de un fichero: qué campos, referencias, eventos, nodos y
3
+ * conexiones entran, salen o cambian entre el «antes» de Revisión y ahora.
4
+ *
5
+ * **Puro, y sobre el MISMO modelo que el índice** (`ColeccionDeNavegacion`): quien lee el disco
6
+ * —el de ahora y el del «antes», sacado de git— es `agent/`, con el cargador de siempre. Así no
7
+ * hay un segundo sitio que decida qué es un campo o una referencia.
8
+ *
9
+ * **Límite declarado**: el modelo sabe el TIPO de un campo y nada más de sus atributos —ni el
10
+ * tamaño, ni `visible`, ni `class`—, así que un `S(20) → S(50)` o un cambio de estilo NO salen
11
+ * aquí: los enseña el diff de texto de debajo, que es la medida entera. Esto es el resumen de lo
12
+ * que el modelo entiende, no un sustituto del diff.
13
+ *
14
+ * Los nombres se casan SIN distinguir mayúsculas, la misma regla que el índice: en XOne `NOMBRE`
15
+ * y `Nombre` son la misma intención, y contarlo como «uno sale, otro entra» sería inventar un
16
+ * cambio. Se enseña el nombre de AHORA.
17
+ */
18
+ import type { ColeccionDeNavegacion } from "./navegacion.js";
19
+ export interface CambioDeCampo {
20
+ cambio: "nuevo" | "borrado" | "tipo";
21
+ nombre: string;
22
+ /** El tipo de antes (en `borrado` y `tipo`) y el de ahora (en `nuevo` y `tipo`). Ausente = el `.xne` no lo dice. */
23
+ antes?: string;
24
+ ahora?: string;
25
+ }
26
+ /** Una referencia que entra o sale: `desde` con qué atributo `hacia` dónde. */
27
+ export interface CambioDeReferencia {
28
+ cambio: "nuevo" | "borrado";
29
+ desde: string;
30
+ por: string;
31
+ hacia: string;
32
+ }
33
+ /** Un nombre suelto (evento, nodo o conexión) que entra o sale. */
34
+ export interface CambioDeNombre {
35
+ cambio: "nuevo" | "borrado";
36
+ nombre: string;
37
+ }
38
+ export interface CambiosDeUnaColeccion {
39
+ nombre: string;
40
+ /** La colección entera: nueva en este fichero, borrada de él, o modificada dentro. */
41
+ estado: "nueva" | "borrada" | "modificada";
42
+ campos: CambioDeCampo[];
43
+ referencias: CambioDeReferencia[];
44
+ eventos: CambioDeNombre[];
45
+ nodos: CambioDeNombre[];
46
+ conexiones: CambioDeNombre[];
47
+ }
48
+ /**
49
+ * Las colecciones que cambiaron entre `antes` y `ahora`, que son las declaradas en UN fichero en
50
+ * cada extremo. Una colección sin ningún cambio que el modelo vea no sale: el fichero cambió en
51
+ * algo que el modelo no entiende, y eso lo dice quien pinta («sin cambios en el modelo»), no una
52
+ * fila vacía.
53
+ */
54
+ export declare function diffDeColecciones(antes: readonly ColeccionDeNavegacion[], ahora: readonly ColeccionDeNavegacion[]): CambiosDeUnaColeccion[];
@@ -0,0 +1,17 @@
1
+ /**
2
+ * El diseño VINCULADO a un proyecto XOne, en un módulo SIN imports: `config.ts` lo valida y `stitch.ts` lo usa, y
3
+ * importarlo desde `stitch.ts` cerraba el ciclo config → stitch → artefactos → settings → config (`ciclos.test.ts`).
4
+ */
5
+ /**
6
+ * El proyecto de Stitch VINCULADO a un proyecto XOne (`config.json#disenoVinculado`): de ahí salen las pantallas que se
7
+ * eligen para una tarea. Decisión suya: el diseño se ELIGE con su miniatura, no se busca por el nombre que escribe la
8
+ * persona — medido en Maset, «Menu Listado Entregas» no era el título de ninguna y la tarea construyó con otra maqueta.
9
+ */
10
+ export interface DisenoVinculado {
11
+ /** `projects/<id>` de Stitch. */
12
+ proyecto: string;
13
+ /** Su título, para enseñarlo sin volver a preguntar a Stitch. */
14
+ nombre: string;
15
+ }
16
+ /** Por qué ese `projects/<id>` no vale, o `undefined`. */
17
+ export declare function motivoDeProyectoDeStitchInaceptable(proyecto: unknown): string | undefined;
@@ -0,0 +1,22 @@
1
+ import { type DispositivoDeLaSesion } from "./dispositivoElegido.js";
2
+ /** La variable que nombra el fichero con el dispositivo de la sesión. */
3
+ export declare const VARIABLE_DE_DISPOSITIVO = "XONECODE_DISPOSITIVO";
4
+ /** Lo que se guarda en el fichero: lo mismo que la pastilla, sin el estado en vivo. Vive en un
5
+ * módulo aparte porque `settings.ts` también lo lee, y desde aquí sería un ciclo. */
6
+ export type { DispositivoDeLaSesion } from "./dispositivoElegido.js";
7
+ /** El fichero, al lado de la carpeta de artefactos de la sesión y no dentro: lo de dentro se
8
+ * ANUNCIA como artefacto, y esto no es una salida para nadie. */
9
+ export declare function ficheroDeDispositivo(carpetaDeArtefactos: string): string;
10
+ export declare function ficheroDeDispositivoDeSesion(raiz: string, id: string): string;
11
+ /**
12
+ * El contenido del fichero, validado como lo valida `skills/xone-hotswap/lib/dispositivo.mjs`
13
+ * (`dispositivoDeLaSesion`): las dos lecturas tienen que coincidir, o la shell y los scripts
14
+ * creerían en aparatos distintos. Roto o incompleto = no hay elección.
15
+ */
16
+ export declare function dispositivoDeTexto(texto: string): DispositivoDeLaSesion | undefined;
17
+ /**
18
+ * La línea que se le DICE al agente al mandar cada turno. La garantía la ponen los scripts, que
19
+ * leen el fichero; esto es para que el orquestador lo nombre al delegar y el `device-controller`
20
+ * sepa con cuál trabaja en vez de descubrirlo, y no se pelee con él pasando otro `--serie`.
21
+ */
22
+ export declare function lineaDelDispositivo(d: DispositivoDeLaSesion | undefined): string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * La FOTO de un aparato elegido —el de una sesión, o el de por defecto de las sesiones nuevas
3
+ * (IXCODE-51)— y la regla que la valida. Puro, y sin importar nada: lo leen `dispositivoDeSesion.ts`
4
+ * y `settings.ts`, y desde cualquiera de los dos sería un ciclo.
5
+ */
6
+ export interface DispositivoDeLaSesion {
7
+ id: string;
8
+ nombre: string;
9
+ plataforma: "android" | "ios";
10
+ clase: "emulador" | "simulador" | "fisico";
11
+ }
12
+ /**
13
+ * Validada como la valida `skills/xone-hotswap/lib/dispositivo.mjs` (`dispositivoDeLaSesion`): las
14
+ * dos lecturas tienen que coincidir, o la shell y los scripts creerían en aparatos distintos.
15
+ * Rota o incompleta = no hay elección.
16
+ */
17
+ export declare function dispositivoDeValor(valor: unknown): DispositivoDeLaSesion | undefined;