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,72 @@
1
+ /**
2
+ * Convertir un documento del proyecto a PDF, imprimiéndolo con un NAVEGADOR.
3
+ *
4
+ * El porqué de que esto lo haga el harness y no el agente está en `core/exportacion.ts`.
5
+ * Aquí está lo que toca disco, y tres decisiones que no son de forma:
6
+ *
7
+ * - **El navegador se busca en una lista CERRADA de rutas conocidas**, igual que las
8
+ * herramientas de `core/dispositivos.ts`: lo que no está en la lista no se lanza. Y su RUTA
9
+ * se queda en el host — por el cable viaja que hay navegador o que no, nunca dónde.
10
+ * - **Se imprime SIN JavaScript** (`--blink-settings=scriptEnabled=false`). Un `.md` o un
11
+ * `.html` del proyecto puede traer un `<script>` dentro, y un PDF no necesita ejecutar
12
+ * nada: es la misma razón por la que un artefacto se sirve en un iframe con origen opaco.
13
+ * - **El HTML intermedio se escribe FUERA del proyecto.** Dentro entraría en git, en el
14
+ * commit de cada turno y en la siguiente subida a CloudStudio — un fichero de andamiaje en
15
+ * la app del cliente.
16
+ */
17
+ /**
18
+ * Dónde puede estar un navegador que sepa imprimir. Lista CERRADA y en este orden.
19
+ *
20
+ * Son todos Chromium por dentro, que es el que trae `--print-to-pdf`: Safari y Firefox no
21
+ * tienen equivalente en línea de comandos, así que no están y no es un olvido.
22
+ */
23
+ export declare const NAVEGADORES_CONOCIDOS: readonly ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", "/Applications/Chromium.app/Contents/MacOS/Chromium", "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge", "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser", "/usr/bin/chromium", "/usr/bin/chromium-browser", "/usr/bin/google-chrome", "/usr/bin/google-chrome-stable"];
24
+ /**
25
+ * Los de WINDOWS, por sus carpetas de programas (de las variables, nunca una letra de unidad a fuego). Edge va primero: lo
26
+ * trae todo Windows. Medido en la máquina Windows de un usuario: con solo las rutas de macOS y Linux, el crítico de pantalla
27
+ * decía «no hay Chrome ni Chromium» y comparaba contra una descripción en vez de medir las cajas de la maqueta.
28
+ */
29
+ export declare function navegadoresDeWindows(entorno: Readonly<Record<string, string | undefined>>): string[];
30
+ /** El primero que exista, o AUSENTE. Ausente = aquí no se puede imprimir, y se DICE con el
31
+ * remedio: no hay forma de adivinar que lo que falta es un navegador. */
32
+ export declare function navegadorParaImprimir(existe?: (ruta: string) => boolean, plataforma?: string, entorno?: Readonly<Record<string, string | undefined>>): string | undefined;
33
+ /** Qué decir cuando no hay ninguno. Vive aquí y no en quien llama para que las tres pieles
34
+ * digan lo mismo. */
35
+ export declare const SIN_NAVEGADOR: string;
36
+ export type ResultadoDeExportacion = {
37
+ ruta: string;
38
+ } | {
39
+ error: string;
40
+ };
41
+ /**
42
+ * Exporta `ruta` (relativa al proyecto) a un PDF hermano. Nunca LANZA.
43
+ *
44
+ * Las barreras son las MISMAS que usa la pestaña Ficheros y en el mismo orden: la criba de
45
+ * balde sobre el texto (`motivoDeRutaInaceptable`) y luego el camino REAL, porque un enlace
46
+ * simbólico dentro de la raíz puede apuntar fuera. No hay una segunda copia de esas reglas
47
+ * aquí: un segundo sitio donde decidir sobre una ruta es un segundo sitio donde el
48
+ * fail-closed puede dejar de estarlo.
49
+ */
50
+ export declare function exportarAPdf(opciones: {
51
+ raiz: string;
52
+ ruta: string;
53
+ /** El binario, ya elegido. Entra por parámetro para poder probar el cableado sin un
54
+ * navegador delante. */
55
+ navegador?: string;
56
+ /**
57
+ * Cómo se BUSCA cuando no se da uno. Por omisión, el primero conocido que exista.
58
+ *
59
+ * Entra por parámetro y no se resuelve dentro porque si no el resultado dependería de si la
60
+ * máquina que corre los tests tiene Chrome instalado — y un test que pasa aquí y falla en
61
+ * CI (o al revés) no fija nada.
62
+ */
63
+ buscarNavegador?: () => string | undefined;
64
+ /** Cómo se lanza. Por omisión `execFile`; los tests no abren un navegador de verdad. */
65
+ imprimir?: (navegador: string, argumentos: readonly string[]) => Promise<void>;
66
+ /** Markdown → HTML. Por omisión `marked`, que se carga PEREZOSAMENTE: exportar es raro y
67
+ * no tiene por qué pesar en el arranque de cada turno. */
68
+ aHtml?: (markdown: string) => string | Promise<string>;
69
+ }): Promise<ResultadoDeExportacion>;
70
+ /** Un documento largo con tablas tarda segundos, no minutos; un navegador que no vuelve en
71
+ * este plazo está colgado y no imprimiendo. */
72
+ export declare const TOPE_DE_IMPRESION_MS: number;
@@ -0,0 +1,28 @@
1
+ import { z } from "zod";
2
+ import { NOMBRE_APUNTAR_APRENDIZAJE, type Aprendizaje } from "../../core/aprendido.js";
3
+ export { NOMBRE_APUNTAR_APRENDIZAJE };
4
+ /** `.xonecode/aprendido.json` del proyecto (`core/aprendido.ts` tiene el porqué). */
5
+ export declare function rutaDeAprendido(raiz: string): string;
6
+ /** Lo apuntado, o una lista vacía: sin fichero, o roto, no hay nada que poner delante. */
7
+ export declare function leerAprendido(raiz: string): Aprendizaje[];
8
+ /** Apunta uno, sustituyendo el del mismo tema. Escritura atómica y 0600: puede llevar una contraseña. */
9
+ export declare function apuntarAprendizaje(raiz: string, nuevo: Aprendizaje): Aprendizaje[];
10
+ /**
11
+ * `apuntar_aprendizaje`: escribe lo aprendido para los encargos siguientes. **Sin aprobación**: no es un fichero de la
12
+ * app —vive en `.xonecode/`, que no sube ni entra en los commits— sino memoria del agente, como un plan. El mismo tema se
13
+ * sustituye. Un rechazo se DEVUELVE, nunca se lanza.
14
+ */
15
+ export declare function crearApuntarAprendizaje(donde: {
16
+ raiz: string;
17
+ quien: string;
18
+ ahora?: () => Date;
19
+ }): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
20
+ tema: z.ZodString;
21
+ texto: z.ZodString;
22
+ }, z.core.$strip>, {
23
+ tema: string;
24
+ texto: string;
25
+ }, {
26
+ tema: string;
27
+ texto: string;
28
+ }, string, unknown, "apuntar_aprendizaje">;
@@ -0,0 +1,205 @@
1
+ /**
2
+ * El proyecto tal como lo enseña la pestaña Ficheros de la consola web: el árbol, el
3
+ * contenido de un fichero y, desde el editor de la pestaña, GUARDARLO (`escribirFicheroDeProyecto`): la
4
+ * única escritura del cliente en un fichero del proyecto, con las MISMAS guardas que la lectura.
5
+ *
6
+ * Lo que se lista y lo que se lee es lo mismo que ve el agente, con las mismas reglas y
7
+ * por las mismas funciones: `puedeLeerRuta` (la barrera de las tools propias) y
8
+ * `esVistaAplanada` (los `.xml` que genera XOne Studio no se tocan). Reescribirlas aquí
9
+ * sería la segunda copia que diverge el primer día.
10
+ */
11
+ /** Profundidad del árbol de la web: sin tope práctico (el del Tab es 4). */
12
+ export declare const PROFUNDIDAD_DEL_ARBOL = 32;
13
+ /** Entradas a partir de las cuales el árbol se recorta y lo dice. */
14
+ export declare const TOPE_DE_ENTRADAS = 5000;
15
+ /** Bytes de contenido que viajan como mucho: el mismo tope que el parche de Revisión. */
16
+ export declare const TOPE_DE_FICHERO = 400000;
17
+ /** Ventana en la que un NUL delata un binario. */
18
+ export declare const VENTANA_DE_BINARIO = 8192;
19
+ /**
20
+ * Bytes de IMAGEN que viajan como mucho. Tope propio y más alto que el del texto por dos
21
+ * razones: una imagen recortada no es una imagen a medias, es nada —el navegador pinta el
22
+ * icono roto—, así que aquí no hay término medio entre traerla entera y no traerla; y la
23
+ * codificación base64 infla un tercio, de modo que este tope son ~2,7 MB por el cable.
24
+ * Un mockup o un icono de un proyecto XOne caben de sobra; un PSD de veinte megas no, y
25
+ * eso se DICE en vez de colgar la pestaña.
26
+ */
27
+ export declare const TOPE_DE_IMAGEN = 2000000;
28
+ /** El MIME de una ruta si es una imagen que sabemos pintar, o `undefined`. */
29
+ export declare function mimeDeImagen(ruta: string): string | undefined;
30
+ export interface ArbolDeProyecto {
31
+ /** Relativas a la raíz, sin barra inicial, ordenadas: carpetas antes que ficheros. */
32
+ rutas: string[];
33
+ recortado: boolean;
34
+ }
35
+ export interface FicheroLeido {
36
+ /** La ruta tal como se pidió, nunca la resuelta en disco. */
37
+ ruta: string;
38
+ /** Falta si es binario o si la ruta se rechazó. */
39
+ texto?: string;
40
+ recortado: boolean;
41
+ binario: boolean;
42
+ /** Tamaño real en disco, aunque el texto vaya recortado. */
43
+ bytes: number;
44
+ codificacion?: "utf-8" | "latin1";
45
+ /**
46
+ * El tipo MIME, solo si la ruta es una imagen que el visor sabe pintar. Va aunque los
47
+ * bytes NO viajen: es lo que deja distinguir «una imagen demasiado grande» de «un
48
+ * binario cualquiera», que son dos cosas distintas que decir.
49
+ */
50
+ mime?: string;
51
+ /** El contenido de la imagen, si cupo en `TOPE_DE_IMAGEN`. Sin recortar nunca. */
52
+ base64?: string;
53
+ /**
54
+ * Solo en un MARKDOWN que enlaza imágenes del proyecto: el mismo texto con cada uno de esos
55
+ * enlaces apuntando a `RUTA_IMAGEN_DEL_PROYECTO`, que las sirve (`vistaDeMarkdown`). `texto`
56
+ * sigue siendo la fuente tal cual: «Fuente» enseña lo que hay en el fichero, no lo que se pinta.
57
+ */
58
+ vista?: string;
59
+ /**
60
+ * El sha256 de los BYTES en disco (`huellaDeContenido`), solo con el texto ENTERO —UTF-8 o
61
+ * latin1, que se guarda en su tabla de 8 bits—: es lo que el editor devuelve al guardar para que se
62
+ * sepa si el disco cambió mientras tanto. Un recortado o un binario no la llevan, y sin ella no
63
+ * se edita.
64
+ */
65
+ huella?: string;
66
+ /** El motivo del paso que falló. Sin él, la lectura fue bien. */
67
+ error?: string;
68
+ }
69
+ /**
70
+ * Carpetas antes que ficheros en cada nivel, y dentro alfabético sin distinguir mayúsculas.
71
+ * Se compara segmento a segmento: en el primero que difiere, si uno es hoja (último
72
+ * segmento de su ruta) y el otro carpeta, la carpeta va antes.
73
+ */
74
+ export declare function ordenarRutas(rutas: readonly string[]): string[];
75
+ export declare function arbolDeProyecto(raiz: string): ArbolDeProyecto;
76
+ /**
77
+ * Por qué una ruta del cable no se acepta, o `undefined` si vale. Es la criba de balde,
78
+ * antes de tocar el disco: relativa, sin `.`/`..`/segmentos vacíos, y admitida por la
79
+ * barrera de lectura. La segunda criba —que el camino REAL siga dentro de la raíz— es de
80
+ * `leerFicheroDeProyecto`, porque necesita `realpath`.
81
+ */
82
+ export declare function motivoDeRutaInaceptable(ruta: string): string | undefined;
83
+ /** Una ruta del cable ya resuelta contra el disco y que ha pasado las DOS cribas. */
84
+ export interface RutaResuelta {
85
+ /** El camino REAL (`realpath`): el único sobre el que se abre o se escribe. */
86
+ real: string;
87
+ /** Ese camino real relativo a la raíz real, con «/». Es el que se le da a git. */
88
+ relativa: string;
89
+ /** La ruta pedida con «/» en vez de «\». */
90
+ normal: string;
91
+ }
92
+ /**
93
+ * ¿Se puede ENSEÑAR esta ruta? La MISMA regla que `leerFicheroDeProyecto`, para quien enseña
94
+ * algo de un fichero que no es su contenido tal cual —el diff de lo pendiente de subir—:
95
+ * criba de texto, vista aplanada, y la segunda pasada sobre el camino REAL cuando el fichero
96
+ * existe (mayúsculas en un disco que no las distingue, enlaces a un fichero denegado). Un
97
+ * fichero que ya no existe —un borrado— solo pasa la criba de texto: no hay camino que resolver,
98
+ * y su contenido sale de git, no del disco.
99
+ */
100
+ export declare function motivoParaNoEnsenar(raiz: string, ruta: string): Promise<string | undefined>;
101
+ /**
102
+ * La ruta RELATIVA del icono de la app de un proyecto bajado, o `undefined` si no tiene uno que se
103
+ * pueda enseñar.
104
+ *
105
+ * El nombre sale de `app.ini` (`core/descriptoresDeApp.ts#candidatosDeIcono`) y cada candidato pasa
106
+ * la MISMA barrera que la pestaña Ficheros (`motivoParaNoEnsenar`: texto y `realpath`), además de
107
+ * ser una imagen que sabemos pintar, un fichero de verdad y caber en `TOPE_DE_IMAGEN`. Un
108
+ * `icon=../.env` o un `icon.png` enlazado a un fichero denegado se quedan en «sin icono», que en la
109
+ * barra es la carpeta de siempre. Nunca lanza: un icono es decoración y no puede tumbar un anuncio.
110
+ */
111
+ export declare function iconoDelProyecto(raiz: string): Promise<string | undefined>;
112
+ /**
113
+ * La cadena ENTERA de guardas de una ruta del cable, en UN sitio: la usan leer, guardar y la base
114
+ * de las marcas del editor (`agent/sesiones/baseDeFichero.ts`). Se extrajo de la lectura cuando
115
+ * apareció la escritura: copiarla habría sido la segunda copia que diverge el primer día, y en el
116
+ * lado que escribe un agujero ya no enseña un secreto, lo pisa.
117
+ */
118
+ export declare function resolverEnProyecto(raiz: string, ruta: string): Promise<RutaResuelta | {
119
+ error: string;
120
+ }>;
121
+ export declare function leerFicheroDeProyecto(raiz: string, ruta: string): Promise<FicheroLeido>;
122
+ /**
123
+ * El markdown con cada enlace a una IMAGEN del proyecto apuntando a `RUTA_IMAGEN_DEL_PROYECTO`, o
124
+ * `undefined` si no enlaza ninguna.
125
+ *
126
+ * **No se incrusta, y es a propósito**: el visor (`MarkdownText`) solo pinta imágenes con URL
127
+ * absoluta `http(s)` —una `data:` se queda en su texto alternativo—, así que tienen que llegar por
128
+ * HTTP. Y así abrir un documento no lee ni un byte de sus imágenes: la barrera la pone la ruta que
129
+ * las sirve, al pedirlas. Aquí solo se reescribe lo que ya pasa la criba de balde sobre el TEXTO
130
+ * (`motivoDeRutaInaceptable`) y es una imagen por su extensión: un enlace a `.env`, o que se sale
131
+ * del proyecto, se queda como estaba.
132
+ */
133
+ export declare function vistaDeMarkdown(documento: string, texto: string): string | undefined;
134
+ /** Cuántas imágenes y cuántos bytes se incrustan como mucho en un documento. */
135
+ export declare const TOPE_DE_IMAGENES_INCRUSTADAS = 40;
136
+ export declare const TOPE_DE_BYTES_INCRUSTADOS = 10000000;
137
+ /**
138
+ * El documento `documento` (ruta relativa al proyecto) con sus imágenes del proyecto INCRUSTADAS.
139
+ *
140
+ * Cada imagen se lee con `leerFicheroDeProyecto` —las MISMAS barreras de la pestaña Ficheros, sobre
141
+ * el texto y sobre el camino real, y su tope por imagen—, así que un enlace a `.env` o a algo de
142
+ * fuera del proyecto no se incrusta: no pasa la barrera y se queda como estaba. No hay una segunda
143
+ * copia de esas reglas aquí. Lo que no se puede leer, o pasa de los topes, se deja tal cual y se
144
+ * CUENTA en `sinResolver`: una imagen rota se ve, una inventada no.
145
+ */
146
+ export declare function conImagenesDelProyecto(raiz: string, documento: string, texto: string, leer?: (raiz: string, ruta: string) => Promise<FicheroLeido>): Promise<{
147
+ texto: string;
148
+ incrustadas: number;
149
+ sinResolver: number;
150
+ }>;
151
+ /**
152
+ * El CONTENIDO de un fichero cuyo camino REAL ya pasó su barrera: texto o imagen, con su
153
+ * tope, su codificación y las dos caras del SVG.
154
+ *
155
+ * Se extrajo de `leerFicheroDeProyecto` cuando los ARTEFACTOS de una sesión necesitaron lo
156
+ * mismo (`agent/grafo/artefactosEnDisco.ts`). Lo que NO se extrajo es la barrera: la de un
157
+ * fichero del proyecto y la de un artefacto son reglas distintas —una pregunta
158
+ * `puedeLeerRuta` y las vistas aplanadas, la otra que el nombre sea un segmento llano
159
+ * dentro de la carpeta de la sesión—, y fundirlas en un parámetro sería la clase de
160
+ * generalización que acaba dejando un agujero en el lado que no se estaba mirando.
161
+ *
162
+ * `real` es el camino ya resuelto con `realpath`; `ruta` es la que se enseña y viaja de
163
+ * vuelta, nunca la del disco. El `mime` lo decide quien llama porque cada lado lo saca de
164
+ * un nombre distinto, y de él dependen los dos caminos de aquí: la imagen que solo viaja
165
+ * entera y el SVG, que va con fuente y dibujo.
166
+ */
167
+ export declare function leerContenidoDeFichero(real: string, ruta: string, mime: string | undefined): Promise<FicheroLeido>;
168
+ /**
169
+ * La HUELLA de un contenido: sha256 de sus bytes. Es la concurrencia optimista del editor: viaja
170
+ * al leer y vuelve al guardar, y si el disco ya no coincide no se escribe nada. Un hash y no una
171
+ * fecha de modificación porque una fecha no distingue «lo reescribió con lo mismo» de «lo cambió»,
172
+ * y en una copia mudada o bajada de nuevo las fechas no dicen nada.
173
+ */
174
+ export declare function huellaDeContenido(bytes: Uint8Array): string;
175
+ /** El resultado de guardar: con `huella` se escribió; con `error`, no se tocó nada. */
176
+ export interface FicheroGuardado {
177
+ ruta: string;
178
+ huella?: string;
179
+ error?: string;
180
+ }
181
+ /**
182
+ * Guarda lo que la persona editó en la pestaña Ficheros. En orden, y cualquier paso que falle
183
+ * DEVUELVE su motivo sin haber tocado el disco:
184
+ *
185
+ * 1. Las MISMAS guardas que leer (`resolverEnProyecto`), y además que sea un fichero normal —una
186
+ * carpeta no— y que no sea una imagen, que no se edita desde aquí.
187
+ * 2. La huella: si lo que hay en disco no es lo que el cliente cargó, alguien (el agente, otra
188
+ * pestaña, un editor de fuera) lo cambió, y escribir encima lo perdería sin avisar.
189
+ * 3. La codificación, la que YA tenía el fichero (sus bytes actuales) o, si es ASCII puro, la que
190
+ * declara su prólogo (`codificacionParaEscribir`); un carácter que no cabe en la tabla de 8 bits
191
+ * se niega con cuál y en qué línea.
192
+ * 4. El tope, en BYTES ya codificados: el mismo que la lectura, porque lo que no se puede leer
193
+ * entero no se edita.
194
+ * 5. Escritura ATÓMICA sobre el camino REAL (temporal en la misma carpeta + `rename`): un corte a
195
+ * mitad deja el fichero viejo, no uno truncado; y sobre el real porque renombrar encima de un
196
+ * enlace lo sustituiría por un fichero normal.
197
+ *
198
+ * Lo que NO hace es comprobar que nadie trabaja en el proyecto: eso es del manejador del cable
199
+ * (`arranque.ts#atenderGuardarFichero`), que es quien ve las consolas vivas.
200
+ *
201
+ * El BOM: el lector decodifica con `TextDecoder`, que lo QUITA, así que el editor nunca lo ve; si
202
+ * el fichero lo llevaba y el texto no, se le devuelve —si no, guardar un fichero sin tocar una
203
+ * coma cambiaría sus bytes—.
204
+ */
205
+ export declare function escribirFicheroDeProyecto(raiz: string, ruta: string, texto: string, huella: string): Promise<FicheroGuardado>;
@@ -0,0 +1,35 @@
1
+ import { type FicheroLeido } from "./arbolDeProyecto.js";
2
+ /**
3
+ * Bytes que la ruta HTTP sirve como mucho.
4
+ *
5
+ * No es el tope del cable (`TOPE_DE_FICHERO`, 400 KB) y no puede serlo: por aquí pasa el
6
+ * documento que el iframe pinta, y medio HTML no es medio panel — es una página rota. Un
7
+ * panel de `artifacts-builder` con sus datos horneados dentro ronda el megabyte, así que el
8
+ * tope está donde deja de ser un artefacto y empieza a ser un descuido; existe para que un
9
+ * fichero de 800 MB no se lea entero a memoria en la máquina del usuario, no para acotar lo
10
+ * que el agente puede dibujar.
11
+ */
12
+ export declare const TOPE_DE_ARTEFACTO = 20000000;
13
+ /** El resultado de la lectura cruda. Discriminado, y con el motivo separado, porque la ruta
14
+ * HTTP tiene que contestar un código distinto a cada cosa: 403 lo rechazado, 404 lo que no
15
+ * está, 413 lo que no cabe. Fundirlos daría un 404 para todo, que es la respuesta que hace
16
+ * imposible saber si el fichero existe o si el nombre estaba mal. */
17
+ export type LecturaCruda = {
18
+ ok: true;
19
+ nombre: string;
20
+ datos: Buffer;
21
+ mime?: string;
22
+ } | {
23
+ ok: false;
24
+ motivo: "rechazado" | "no-existe" | "demasiado-grande";
25
+ };
26
+ /**
27
+ * Para el CABLE: la misma forma con la que viaja un fichero del proyecto.
28
+ *
29
+ * La `ruta` que vuelve es la VIRTUAL (`/artefactos/<nombre>`), nunca la del disco: el cable
30
+ * puede ir por un túnel, y es la misma regla por la que la ruta de una herramienta se queda
31
+ * en el host. El error tampoco la lleva.
32
+ */
33
+ export declare function leerArtefactoDeSesion(raiz: string, sesion: string, nombre: string): Promise<FicheroLeido>;
34
+ /** Para la RUTA HTTP: los bytes, sin recortar y sin base64. Ver `TOPE_DE_ARTEFACTO`. */
35
+ export declare function leerArtefactoCrudo(raiz: string, sesion: string, nombre: string): Promise<LecturaCruda>;
@@ -0,0 +1,31 @@
1
+ import { z } from "zod";
2
+ export declare const NOMBRE_ATRIBUTOS_XONE = "xone_atributos";
3
+ /**
4
+ * Las tablas de las que sale el índice, dentro de la skill `xone-development` del PAQUETE: las de referencia de cada nodo y
5
+ * las de su capítulo propio, porque la skill no siempre dice lo mismo en los dos y el índice enseña los dos. `nodo` es el
6
+ * del fichero entero cuando su título no lo parte en secciones `## N. Nodo …`.
7
+ */
8
+ export declare const REFERENCIAS_DE_ATRIBUTOS: readonly {
9
+ fichero: string;
10
+ nodo?: string;
11
+ }[];
12
+ /** Dónde se busca lo que el índice no trae: la skill entera, con la tool de fichero que todos tienen. */
13
+ export declare const RUTA_DE_LA_SKILL = "/skills/xone-development/references/";
14
+ export declare const busquedaEnLaSkill: (atributo: string) => string;
15
+ /**
16
+ * `xone_atributos`: ¿existe este atributo en este nodo?, en una línea (`core/atributosXone.ts` tiene el porqué medido).
17
+ *
18
+ * Se lee de la skill del PAQUETE en cada construcción, nunca de una copia: si la referencia cambia, el índice cambia con
19
+ * ella. Una referencia que falta no tumba nada: la tool dice que no tiene índice y remite a la skill. Solo LEE, y lo que
20
+ * lee es de la skill, no del proyecto, así que no pasa por `puedeLeerRuta`.
21
+ */
22
+ export declare function crearAtributosXone(raizDeSkills?: string): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
23
+ atributo: z.ZodOptional<z.ZodString>;
24
+ nodo: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>, {
26
+ atributo?: string | undefined;
27
+ nodo?: string | undefined;
28
+ }, {
29
+ atributo?: string | undefined;
30
+ nodo?: string | undefined;
31
+ }, string, unknown, "xone_atributos">;
@@ -0,0 +1,32 @@
1
+ import { z } from "zod";
2
+ import { NOMBRE_BUSCAR_ICONO, recibeBuscarIcono } from "../../core/iconos.js";
3
+ import type { IconosPort } from "../../core/ports.js";
4
+ export { NOMBRE_BUSCAR_ICONO, recibeBuscarIcono };
5
+ export declare function crearBuscarIcono(iconos: IconosPort): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
6
+ operacion: z.ZodEnum<{
7
+ buscar: "buscar";
8
+ obtener: "obtener";
9
+ }>;
10
+ consulta: z.ZodOptional<z.ZodString>;
11
+ prefijo: z.ZodOptional<z.ZodString>;
12
+ limite: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
13
+ id: z.ZodOptional<z.ZodString>;
14
+ color: z.ZodOptional<z.ZodString>;
15
+ tamano: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
16
+ }, z.core.$strip>, {
17
+ operacion: "buscar" | "obtener";
18
+ consulta?: string | undefined;
19
+ prefijo?: string | undefined;
20
+ limite?: number | undefined;
21
+ id?: string | undefined;
22
+ color?: string | undefined;
23
+ tamano?: number | undefined;
24
+ }, {
25
+ operacion: "buscar" | "obtener";
26
+ consulta?: string | undefined;
27
+ prefijo?: string | undefined;
28
+ limite?: unknown;
29
+ id?: string | undefined;
30
+ color?: string | undefined;
31
+ tamano?: unknown;
32
+ }, string, unknown, "buscar_icono">;
@@ -0,0 +1,56 @@
1
+ import type { FilesystemBackend } from "deepagents";
2
+ import { z } from "zod";
3
+ /**
4
+ * El nombre de esta tool, en UN sitio.
5
+ *
6
+ * Existe porque `xone_navegacion` manda aquí cuando no sabe contestar, y una sugerencia que
7
+ * nombre una tool que ya no se llama así manda al modelo a llamar a algo que no existe —
8
+ * gasta un viaje y devuelve un error. Es la lección del token `HANDOFF DE ANÁLISIS`: lo que se
9
+ * nombra desde otro sitio no se escribe dos veces.
10
+ */
11
+ export declare const NOMBRE_BUSQUEDA_REGEX = "regex_search";
12
+ /**
13
+ * La llamada EXACTA a `regex_search` que busca un término como texto, lista para copiar.
14
+ *
15
+ * Se devuelve la llamada entera y no un consejo en prosa («busca con regex_search») por lo
16
+ * mismo que `porQueNo` dice la ruta buena en vez de solo negarse: un modelo al que se le dice
17
+ * qué hacer sin decirle cómo se inventa los argumentos, y aquí inventarlos cuesta un viaje y
18
+ * un error de esquema. Se comprueba contra el esquema REAL de la tool en su test.
19
+ */
20
+ export declare function llamadaDeBusqueda(termino: string, glob?: string): string;
21
+ /** Límites defensivos: la regex es una ayuda de localización, no un lector masivo. */
22
+ export declare const LIMITES_REGEX: {
23
+ readonly archivos: 50;
24
+ readonly bytesPorArchivo: number;
25
+ readonly coincidencias: 100;
26
+ readonly caracteresPorLinea: 1000;
27
+ };
28
+ type BackendDeBusqueda = Pick<FilesystemBackend, "glob" | "readRaw">;
29
+ /**
30
+ * Búsqueda regex confinada al backend virtual del proyecto.
31
+ *
32
+ * DeepAgents ofrece `grep` literal, que es preferible para la mayoría de
33
+ * búsquedas y usa ripgrep. Esta tool cubre patrones estructurales de XOne/ES5
34
+ * (funciones, atributos y eventos) sin conceder `execute` ni usar una shell.
35
+ * La coincidencia es por línea, como grep: no sirve para regex multilínea.
36
+ */
37
+ export declare function crearBusquedaRegex(backend: BackendDeBusqueda): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
38
+ pattern: z.ZodString;
39
+ path: z.ZodDefault<z.ZodString>;
40
+ glob: z.ZodDefault<z.ZodString>;
41
+ flags: z.ZodDefault<z.ZodString>;
42
+ max_count: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
43
+ }, z.core.$strip>, {
44
+ pattern: string;
45
+ path: string;
46
+ glob: string;
47
+ flags: string;
48
+ max_count: number;
49
+ }, {
50
+ pattern: string;
51
+ path?: string | undefined;
52
+ glob?: string | undefined;
53
+ flags?: string | undefined;
54
+ max_count?: unknown;
55
+ }, string, unknown, "regex_search">;
56
+ export {};
@@ -0,0 +1,7 @@
1
+ import { type Tabla8Bits } from "../../core/codificacion.js";
2
+ export declare function conCodificacionDelFichero<T extends object>(backend: T): T;
3
+ /**
4
+ * Lo que el agente lee cuando su texto no cabe. Le dice qué hacer en lugar de solo «no»: en un XML
5
+ * la entidad numérica es el mismo carácter para XOne; en JavaScript, el escape `\u`; en CSS, `\XX `.
6
+ */
7
+ export declare function motivoDeNoRepresentable(ruta: string, caracter: string, linea: number, tabla?: Tabla8Bits): string;
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { type ImagenReferida } from "../../core/referenciasDeImagen.js";
3
+ export declare const NOMBRE_COMPARAR_CAPTURAS = "comparar_capturas";
4
+ export interface DependenciasDeComparacion {
5
+ /** Los bytes de un artefacto, por su ruta RELATIVA. Quien la monta sabe dónde está la carpeta. */
6
+ leerArtefacto: (nombre: string) => Promise<Buffer>;
7
+ /**
8
+ * Lee una MAQUETA de donde esté (`core/referenciasDeImagen.ts`). Ausente, la referencia solo puede
9
+ * venir de `/artefactos/`, que es lo que hacía antes y lo que sigue haciendo el motor legacy.
10
+ */
11
+ leerReferencia?: (imagen: ImagenReferida) => Promise<Buffer>;
12
+ }
13
+ export declare function crearCompararCapturas(deps: DependenciasDeComparacion): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
14
+ referencia: z.ZodString;
15
+ captura: z.ZodString;
16
+ }, z.core.$strip>, {
17
+ referencia: string;
18
+ captura: string;
19
+ }, {
20
+ referencia: string;
21
+ captura: string;
22
+ }, string, unknown, "comparar_capturas">;
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+ import { type QuienDecidePermisos } from "./perfiles.js";
3
+ /**
4
+ * Traer un artefacto AL proyecto, que es la única forma sancionada de cruzar ese muro.
5
+ *
6
+ * ## Por qué es una tool y no algo que el agente pueda hacer solo
7
+ *
8
+ * Las tools de fichero son de TEXTO —`write_file` recibe una cadena, y el propio backend
9
+ * declara `write(filePath, content: string)`—, así que un PNG no sobrevive a un
10
+ * `read_file` + `write_file`: se copiaría corrupto y nadie se enteraría hasta abrir el
11
+ * manual. La otra vía sería una shell, y dársela al que documenta es justo lo contrario de
12
+ * lo que lo hace inofensivo. Es el mismo reparto que el PDF: lo hace el harness porque el
13
+ * agente no puede, y concederle la capacidad habría sido peor que el problema.
14
+ *
15
+ * ## Por qué esto NO es un agujero en la guarda de artefactos
16
+ *
17
+ * `artefactoFueraDeSitio` existe para que un artefacto no acabe dentro del proyecto, y esa
18
+ * regla se hizo cuando colarse dentro era SIEMPRE un descuido. Documentar es el primer caso
19
+ * donde meterlo dentro es lo correcto: un manual en `doc/` con sus capturas al lado viaja
20
+ * con el proyecto, entra en git y sube a CloudStudio, que es lo que lo hace un manual y no
21
+ * una salida de usar y tirar.
22
+ *
23
+ * La diferencia entre un agujero y una puerta es que la puerta tiene guarda, y aquí son
24
+ * tres, todas reaplicadas A MANO: **una tool propia no pasa por el middleware de permisos**
25
+ * —ya lo hacen `regex_search` y `xone_navegacion` con `puedeLeerRuta`, y una que ESCRIBE
26
+ * tiene el mismo deber con más consecuencias—. Sin `puedeEscribirRuta`, esto sería
27
+ * exactamente la puerta trasera por la que un agente de solo lectura mete ficheros en el
28
+ * proyecto.
29
+ *
30
+ * ## Las guardas, y por qué cada una
31
+ *
32
+ * 1. **El ORIGEN es un artefacto de verdad** (`esRutaDeArtefacto`, lista BLANCA de forma y
33
+ * no un `startsWith`): sin esto el «origen» podría ser `/artefactos/../.env`.
34
+ * 2. **El DESTINO lo puede escribir ESTE agente** (`puedeEscribirRuta`), que es lo que hace
35
+ * que la tool no conceda nada que el perfil no tuviera ya.
36
+ * 3. **El destino no es un sitio equivocado de artefacto** (`artefactoFueraDeSitio`): copiar
37
+ * a `/artifacts/x.png` sería recrear dentro del proyecto justo lo que esa guarda impide.
38
+ *
39
+ * Y las dos rutas se comprueban **dos veces**, por TEXTO y por `realpath`, como en
40
+ * `arbolDeProyecto.ts` y en las escrituras de los motores externos: en APFS `.ENV` abre
41
+ * `.env`, y un enlace dentro de la raíz puede apuntar fuera. Lo que no se pueda comprobar
42
+ * se deniega.
43
+ */
44
+ export declare const NOMBRE_COPIAR_ARTEFACTO = "copiar_artefacto";
45
+ export interface DondeCopiar {
46
+ /** La raíz REAL del proyecto en disco. */
47
+ raiz: string;
48
+ /** La carpeta REAL de artefactos de esta sesión. */
49
+ carpetaDeArtefactos: string;
50
+ /** De quién son los permisos que hay que reaplicar. */
51
+ perfil: QuienDecidePermisos;
52
+ }
53
+ export declare function crearCopiarArtefacto(donde: DondeCopiar): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
54
+ artefacto: z.ZodString;
55
+ destino: z.ZodString;
56
+ }, z.core.$strip>, {
57
+ artefacto: string;
58
+ destino: string;
59
+ }, {
60
+ artefacto: string;
61
+ destino: string;
62
+ }, string, unknown, "copiar_artefacto">;
63
+ /** Para los tests: la ruta real que le tocaría a un destino virtual. */
64
+ export declare function rutaRealDeDestino(raiz: string, destinoVirtual: string): string;
@@ -0,0 +1,60 @@
1
+ import { z } from "zod";
2
+ import { type ImagenReferida } from "../../core/referenciasDeImagen.js";
3
+ import { type MaquetaMedida } from "../../core/geometriaDePantalla.js";
4
+ import { type PantallaDescrita } from "../../core/descripcionDePantalla.js";
5
+ import type { ImagenRgba } from "../../core/compararCapturas.js";
6
+ import { type CapturaDePantalla, type InvocarVisual } from "../dispositivos/juezVisual.js";
7
+ export interface DependenciasDeCritica {
8
+ /** Los bytes de un artefacto, por su NOMBRE. Quien la monta sabe dónde está la carpeta. */
9
+ leerArtefacto: (nombre: string) => Promise<Buffer>;
10
+ invocar: InvocarVisual;
11
+ /**
12
+ * Lee la MAQUETA de donde esté: `/artefactos/`, `/adjuntos/` o el proyecto
13
+ * (`core/referenciasDeImagen.ts`). Ausente, la referencia solo puede venir de `/artefactos/`, como
14
+ * antes. La maqueta de un encargo casi nunca está ahí: la trae la persona en el chat o vive en
15
+ * `/diseno/`, y sin esto el crítico corría a ciegas y su verde significaba solo «nada roto».
16
+ */
17
+ leerReferencia?: (imagen: ImagenReferida) => Promise<Buffer>;
18
+ /**
19
+ * La GEOMETRÍA guardada con la captura (`<captura>.geometria.json`, que deja `xone-captura-android`
20
+ * o `xone-hotswap shot` en `/hotswap/` en el MISMO momento): el árbol de controles y las barras del
21
+ * sistema. `undefined` = no hay. Ausente la dependencia, el crítico trabaja como antes.
22
+ */
23
+ leerGeometria?: (nombreDeCaptura: string) => Promise<unknown>;
24
+ /**
25
+ * Las cajas de la maqueta, si trae `code.html` al lado (la de Stitch): `undefined` = no hay HTML (una
26
+ * maqueta que es solo un PNG); `{motivo}` = lo hay y no se pudo medir.
27
+ */
28
+ cajasDeMaqueta?: (imagen: ImagenReferida, bytes: Buffer) => Promise<MaquetaMedida | {
29
+ motivo: string;
30
+ } | undefined>;
31
+ /**
32
+ * Una pantalla DESCRITA por el modelo mirándola SOLA, primero su geometría y después el estilo de cada control,
33
+ * con el MISMO esquema para la maqueta y para la captura (`core/descripcionDePantalla.ts`,
34
+ * `juezVisual.ts#describirPantalla`). A la captura se le pasan los controles que existen, del árbol.
35
+ * `undefined` = no se entendió. Ausente la dependencia, el crítico trabaja como antes.
36
+ */
37
+ describirPantalla?: (imagen: CapturaDePantalla, controlesQueExisten?: readonly string[]) => Promise<PantallaDescrita | undefined>;
38
+ /**
39
+ * Saca los píxeles de un PNG o un JPEG (`decodificarImagen`). Con ella, el estilo de cada control se MIDE en su
40
+ * caja (`core/estiloMedido.ts`) en vez de pedírselo a un modelo. Ausente, no hay comparación control a control.
41
+ */
42
+ decodificar?: (bytes: Buffer) => ImagenRgba;
43
+ /** Guarda el informe junto a la captura (`<captura>.critica.txt` en `/hotswap/`), para poder auditar qué se dijo. */
44
+ guardarInforme?: (nombreDeCaptura: string, informe: string) => Promise<void>;
45
+ }
46
+ /** La tabla de traducción de Tailwind a XOne de la skill, por su ruta virtual. */
47
+ export declare const TABLA_DE_TRADUCCION = "`read_file /skills/xone-development/references/css/de-una-maqueta-a-xone.md`";
48
+ export declare function crearCriticaVisual(deps: DependenciasDeCritica): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
49
+ captura: z.ZodString;
50
+ pantalla: z.ZodString;
51
+ referencia: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strip>, {
53
+ captura: string;
54
+ pantalla: string;
55
+ referencia?: string | undefined;
56
+ }, {
57
+ captura: string;
58
+ pantalla: string;
59
+ referencia?: string | undefined;
60
+ }, string, unknown, "xone_critica_visual">;