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,79 @@
1
+ import { z } from "zod";
2
+ import { type ImagenReferida } from "../../core/referenciasDeImagen.js";
3
+ import type { Papel } from "../../core/ports.js";
4
+ import { type InvocarVisual } from "../dispositivos/juezVisual.js";
5
+ /**
6
+ * `describe_image`: que el agente VEA una imagen (IXCODE-23).
7
+ *
8
+ * ## Por qué existe, medido
9
+ *
10
+ * Con una imagen adjunta, el agente contestaba «en este harness no tengo visión» sin abrirla. Dos
11
+ * causas, las dos nuestras: el aviso de adjuntos se lo DECÍA («no hay visión en este harness
12
+ * todavía»), y el `read_file` de TrueForge devolvía «fichero binario» ante un PNG. Pero el modelo sí
13
+ * ve: medido contra la API, `deepseek-flash` nombró el color de un cuadrado liso y describió bien un
14
+ * icono adjunto («un círculo negro con un símbolo de suma blanco»). No faltaba la visión, faltaba el
15
+ * camino hasta ella.
16
+ *
17
+ * ## Por qué una llamada APARTE y no la imagen en la conversación
18
+ *
19
+ * - En un API compatible con OpenAI, el resultado de una tool es TEXTO: una imagen devuelta por
20
+ * `read_file` no le llega al modelo como imagen. La única entrada sería un mensaje de usuario falso.
21
+ * - Una imagen en el historial se PAGA en cada llamada siguiente (se cobra por píxeles, no por bytes),
22
+ * y se quedaría en la foto de TrueForge y en la traza. Una descripción se paga UNA vez y es texto.
23
+ *
24
+ * Es el camino que ya usa `xone_critica_visual` (`invocarVisualConModelos`), con otra pregunta: el
25
+ * crítico JUZGA una pantalla, ésta DESCRIBE lo que haya.
26
+ *
27
+ * ## Las guardas
28
+ *
29
+ * La MISMA regla de ruta que las maquetas del crítico (`imagenReferida`, lista blanca de forma, sin
30
+ * dotfiles) y la misma lectura (`lectorDeReferencias`, texto y `realpath`): una tool de LangChain
31
+ * añadida por xonecode no pasa por el middleware de permisos, así que sin esto mandaría a un modelo
32
+ * cualquier fichero de la máquina. Todo rechazo se DEVUELVE, nunca se lanza. De un error de lectura
33
+ * solo cruza el `code` (su mensaje lleva la ruta absoluta).
34
+ *
35
+ * **Acepta también la ruta COMPLETA de la máquina** (petición suya: es la que el agente ve a veces en
36
+ * un error o la que pega la persona), pero solo si cae dentro de lo montado —el proyecto, los adjuntos
37
+ * y los artefactos de la sesión—: se TRADUCE a su ruta virtual y pasa por la misma regla. Fuera de ahí
38
+ * se rechaza con el camino (`traer_de_la_maquina` y después esta), para que no sea una forma de mandar
39
+ * a un modelo cualquier fichero de la máquina.
40
+ *
41
+ * **Límite declarado**: un modelo SIN visión puede no fallar y describir lo que no recibió. La
42
+ * respuesta dice que la descripción es de un modelo, y quien la lee no debe darla por medida.
43
+ */
44
+ export declare const NOMBRE_DESCRIBIR_IMAGEN = "describe_image";
45
+ /** El papel del modelo que mira. `afilado` es del juez (`core/modelos.ts`); describir es trabajo. */
46
+ export declare const PAPEL_DE_DESCRIBIR: Papel;
47
+ /** Tope de bytes de la imagen: una captura de pantalla son cientos de KB; esto para un fichero absurdo antes de mandarlo. */
48
+ export declare const TOPE_DE_BYTES_DE_IMAGEN: number;
49
+ export declare const PROMPT_DE_DESCRIPCION: string;
50
+ export interface DependenciasDeDescribir {
51
+ invocar: InvocarVisual;
52
+ /** Lee la imagen ya validada (`crearLectorDeReferencias`). Lanza con un `code`. */
53
+ leer: (imagen: ImagenReferida) => Promise<Buffer>;
54
+ /**
55
+ * Las carpetas montadas, para traducir una ruta COMPLETA a la virtual. Ausentes, solo vale la virtual.
56
+ * El orden importa: las de la sesión viven DENTRO del proyecto (`.xonecode/sesiones/…`), así que se
57
+ * miran antes que la raíz.
58
+ */
59
+ carpetas?: {
60
+ raiz: string;
61
+ adjuntos?: string;
62
+ artefactos?: string;
63
+ };
64
+ }
65
+ /**
66
+ * La ruta virtual de una ruta completa que cae dentro de lo montado, o `undefined`. Solo compara TEXTO:
67
+ * lo que salga pasa después por `imagenReferida` y por el `realpath` del lector, como cualquier otra.
68
+ */
69
+ export declare function rutaVirtualDe(completa: string, carpetas: NonNullable<DependenciasDeDescribir["carpetas"]>): string | undefined;
70
+ export declare function crearDescribirImagen(deps: DependenciasDeDescribir): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
71
+ ruta: z.ZodString;
72
+ pregunta: z.ZodOptional<z.ZodString>;
73
+ }, z.core.$strip>, {
74
+ ruta: string;
75
+ pregunta?: string | undefined;
76
+ }, {
77
+ ruta: string;
78
+ pregunta?: string | undefined;
79
+ }, string, unknown, "describe_image">;
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ export declare const NOMBRE_DIFERENCIA_DE_CAPTURAS = "diferencia_de_capturas";
3
+ export interface DependenciasDeDiferencia {
4
+ leerArtefacto: (nombre: string) => Promise<Buffer>;
5
+ }
6
+ export declare function crearDiferenciaDeCapturas(deps: DependenciasDeDiferencia): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
7
+ antes: z.ZodString;
8
+ despues: z.ZodString;
9
+ zona: z.ZodOptional<z.ZodObject<{
10
+ x: z.ZodNumber;
11
+ y: z.ZodNumber;
12
+ ancho: z.ZodNumber;
13
+ alto: z.ZodNumber;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>, {
16
+ antes: string;
17
+ despues: string;
18
+ zona?: {
19
+ x: number;
20
+ y: number;
21
+ ancho: number;
22
+ alto: number;
23
+ } | undefined;
24
+ }, {
25
+ antes: string;
26
+ despues: string;
27
+ zona?: {
28
+ x: number;
29
+ y: number;
30
+ ancho: number;
31
+ alto: number;
32
+ } | undefined;
33
+ }, string, unknown, "diferencia_de_capturas">;
@@ -0,0 +1,45 @@
1
+ export interface ResultadoDeEjecucion {
2
+ output: string;
3
+ exitCode: number | null;
4
+ truncated: boolean;
5
+ }
6
+ /** El hijo, visto por este módulo — sin `stdin`, que `execute` nunca teclea. */
7
+ interface ProcesoDeShell {
8
+ pid?: number;
9
+ stdout: {
10
+ on: (evento: "data", cb: (dato: unknown) => void) => void;
11
+ };
12
+ stderr: {
13
+ on: (evento: "data", cb: (dato: unknown) => void) => void;
14
+ };
15
+ on: (evento: "close" | "error", cb: (...args: unknown[]) => void) => void;
16
+ kill: (senal?: string) => boolean;
17
+ }
18
+ export type LanzarShell = (comando: string, opciones: {
19
+ env: Record<string, string>;
20
+ cwd: string;
21
+ }) => ProcesoDeShell;
22
+ /**
23
+ * **`detached: true` no es cosmético: es la causa raíz.** Sin él, el hijo comparte el grupo
24
+ * de proceso de xonecode entero, y `process.kill(-pid)` (dentro de `matarGrupoReal`) mataría
25
+ * ESE grupo — el propio xonecode incluido. `LocalShellBackend.execute` de la librería no lo
26
+ * pone, y por eso su `child.kill()` solo alcanza al hijo inmediato.
27
+ *
28
+ * **`detached` es solo de POSIX.** Es lo que hace al hijo líder de su propio grupo para que
29
+ * `process.kill(-pid)` alcance al árbol; en Windows no hay grupos de proceso POSIX, así que
30
+ * `matarGrupoReal` usa `taskkill /T` (recorre el árbol por PID, no por grupo) y no lo
31
+ * necesita — y ahí `detached: true` le abre al hijo su PROPIA ventana de consola visible (lo
32
+ * dice la documentación de Node). `windowsHide: true` va siempre, en las dos plataformas: en
33
+ * POSIX no hace nada, en Windows evita esa ventana.
34
+ */
35
+ export declare const lanzarReal: LanzarShell;
36
+ export declare function crearExecuteCancelable(opciones: {
37
+ env: Record<string, string>;
38
+ cwd: string;
39
+ timeoutS: number;
40
+ maxOutputBytes?: number;
41
+ }, deps?: {
42
+ lanzar?: LanzarShell;
43
+ matarGrupo?: (pid: number, senal: string) => void;
44
+ }): (comando: string, senal?: AbortSignal) => Promise<ResultadoDeEjecucion>;
45
+ export {};
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Dos escrituras sobre el MISMO fichero no se solapan: la segunda espera a que acabe la
3
+ * primera. Sobre ficheros distintos no cambia nada.
4
+ *
5
+ * **El fallo que cierra es silencioso, que es lo que lo hace grave.** `write` y `edit` del
6
+ * backend son leer-modificar-escribir sobre el fichero entero, así que dos a la vez se pisan
7
+ * y **las dos contestan que bien**. Reproducido contra el backend real: cuatro `edit`
8
+ * concurrentes, cuatro resultados sin error, **una** aplicada. Y ocurre de verdad — en una
9
+ * sesión de MyAllXOne la traza de errores registró dos `edit` sobre `/funciones.js` entrando
10
+ * en el MISMO milisegundo, con el testigo `escrituraSolapada` disparado.
11
+ *
12
+ * **Por qué serializar basta**, que era la objeción razonable: la segunda edición calculó su
13
+ * `old_string` contra un contenido que la primera acaba de cambiar. Cierto — y por eso este
14
+ * envoltorio va POR FUERA de quien edita, no por dentro: cuando le llega el turno, el camino
15
+ * de escritura vuelve a leer el fichero y vuelve a buscar el `old_string` contra lo que hay
16
+ * AHORA. Si el ancla sigue, la edición es correcta; si desapareció, el backend contesta que
17
+ * no lo encuentra y el modelo recibe su error y reintenta. Medido: en serie, cuatro ediciones
18
+ * independientes se aplican las cuatro, y dos que se pisan dan una aplicada y **un error
19
+ * visible** — en vez de una aplicada y un cambio perdido sin que nadie se entere.
20
+ *
21
+ * **Dónde va en la pila**: por dentro de las guardas de RUTA —que contestan con una
22
+ * comparación de texto y deben seguir contestando primero, ver `proyecto.ts`— y por fuera de
23
+ * `sinContenidoInvalido`, para que leer el fichero de antes, validar y escribir sean un solo
24
+ * turno. Al revés, dos validaciones podrían intercalarse entre la lectura y la escritura, que
25
+ * es exactamente la carrera que esto viene a quitar.
26
+ *
27
+ * **No toca `read`, `ls`, `glob` ni nada que no escriba.** Serializar lecturas no arregla
28
+ * nada y convertiría en secuencial el trabajo que sí puede ir en paralelo, que es la mitad de
29
+ * lo que el agente hace.
30
+ */
31
+ export declare function escriturasEnSerie<T extends object>(backend: T): T;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Quita del PROMPT las tools que un agente no puede usar.
3
+ *
4
+ * ## Por qué, medido el 17-09-2026
5
+ *
6
+ * El inspector (`agent/turno/inspectorDePrompt.ts`) enseñó que en un turno de la pregunta más
7
+ * barata que tenemos, los esquemas de las tools eran **12.350 de los 14.135 caracteres** de la
8
+ * primera llamada — el 87 % — y que se reenvían ENTEROS en cada una: ~12.400 de los 15.466
9
+ * tokens del turno. La pregunta ocupaba cuarenta caracteres.
10
+ *
11
+ * Y dentro de eso, el orquestador —que es de SOLO LECTURA por `permisosDe`— cargaba los
12
+ * esquemas de `write_file`, `edit_file` y `delete`: 3.743 caracteres, unos 940 tokens POR
13
+ * LLAMADA, por tres tools que tiene prohibido usar. `permissions` acota el PERMISO; el esquema
14
+ * viaja igual.
15
+ *
16
+ * ## Qué es y qué NO es
17
+ *
18
+ * **No es una frontera de seguridad**, y eso no es una opinión nuestra: deepagents tiene el
19
+ * mismo middleware (`createToolExclusionMiddleware`, que no exporta) y su propia documentación
20
+ * lo dice con esas palabras — «exclusions calibrate the agent per model; they are not a security
21
+ * boundary». La frontera sigue siendo `permisosDe`, intacta, y esto es coste.
22
+ *
23
+ * Por eso hace las DOS cosas: quita la tool de la petición (que es lo que ahorra) **y** rechaza
24
+ * su llamada si aun así llegara. Solo lo primero sería fiar la barrera a que el modelo no
25
+ * invente un nombre que no ha visto, y en este repo eso no es una barrera.
26
+ */
27
+ import { createMiddleware } from "langchain";
28
+ import { type QuienDecidePermisos } from "./perfiles.js";
29
+ export declare function excluirTools(nombres: readonly string[]): ReturnType<typeof createMiddleware>;
30
+ /**
31
+ * Las que este perfil NO puede usar, DERIVADAS de lo que ya decide `toolsDe`.
32
+ *
33
+ * Escritas a mano serían una segunda lista que hay que acordarse de actualizar, y el día que un
34
+ * perfil gane una capacidad se quedaría sin ella en silencio — el patrón de fallo de este repo.
35
+ * Así, conceder una tool en `perfiles.ts` la saca de aquí sola.
36
+ */
37
+ export declare function toolsQueNoUsa(perfil: QuienDecidePermisos): string[];
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import { NOMBRE_BUSCAR_FUENTE, NOMBRE_TRAER_FUENTE, recibeFuentes } from "../../core/fuentes.js";
3
+ import type { FuentesPort } from "../../core/ports.js";
4
+ import type { QuienDecidePermisos } from "./perfiles.js";
5
+ export { NOMBRE_BUSCAR_FUENTE, NOMBRE_TRAER_FUENTE, recibeFuentes };
6
+ export declare function crearBuscarFuente(fuentes: FuentesPort): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
7
+ consulta: z.ZodString;
8
+ limite: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
9
+ }, z.core.$strip>, {
10
+ consulta: string;
11
+ limite?: number | undefined;
12
+ }, {
13
+ consulta: string;
14
+ limite?: unknown;
15
+ }, string, unknown, "buscar_fuente">;
16
+ export interface DondeTraerFuente {
17
+ /** La raíz REAL del proyecto en disco. */
18
+ raiz: string;
19
+ /** De quién son los permisos que hay que reaplicar. */
20
+ perfil: QuienDecidePermisos;
21
+ }
22
+ export declare function crearTraerFuente(fuentes: FuentesPort, donde: DondeTraerFuente): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
23
+ familia: z.ZodString;
24
+ peso: z.ZodCoercedNumber<unknown>;
25
+ cursiva: z.ZodOptional<z.ZodBoolean>;
26
+ file_path: z.ZodString;
27
+ }, z.core.$strip>, {
28
+ familia: string;
29
+ peso: number;
30
+ file_path: string;
31
+ cursiva?: boolean | undefined;
32
+ }, {
33
+ familia: string;
34
+ peso: unknown;
35
+ file_path: string;
36
+ cursiva?: boolean | undefined;
37
+ }, string, unknown, "traer_fuente">;
@@ -0,0 +1,52 @@
1
+ import { z } from "zod";
2
+ import { NOMBRE_GENERAR_FONDO } from "../../core/fondosSvg.js";
3
+ import { recibeBuscarIcono } from "./buscarIcono.js";
4
+ export { NOMBRE_GENERAR_FONDO };
5
+ /**
6
+ * Generar el fondo SVG de un frame o un botón (degradado, sombra, resplandor), para lo que XOne
7
+ * no trae propio (IXCODE-18). **Pura y sin red**: no hay puerto, siempre está montada donde se
8
+ * reparte. Las plantillas, y por qué no llevan ningún filtro, están en `core/fondosSvg.ts`.
9
+ *
10
+ * **Solo lee**, como `buscar_icono`: el SVG lo escribe `write_file` con su aprobación. Y va a los
11
+ * MISMOS especialistas (`recibeBuscarIcono`, la regla de dato de quien escribe el proyecto), en
12
+ * los dos motores. Los rechazos se DEVUELVEN como texto, nunca se lanzan.
13
+ */
14
+ export declare const recibeGenerarFondo: typeof recibeBuscarIcono;
15
+ export declare function crearGenerarFondoSvg(): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
16
+ tipo: z.ZodEnum<{
17
+ "degradado-lineal": "degradado-lineal";
18
+ "degradado-radial": "degradado-radial";
19
+ sombra: "sombra";
20
+ glow: "glow";
21
+ }>;
22
+ nombre: z.ZodString;
23
+ ancho: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
24
+ alto: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
25
+ colores: z.ZodArray<z.ZodString>;
26
+ angulo: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
27
+ radio: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
28
+ intensidad: z.ZodOptional<z.ZodEnum<{
29
+ [x: string]: string;
30
+ }>>;
31
+ fondo: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>, {
33
+ tipo: "degradado-lineal" | "degradado-radial" | "sombra" | "glow";
34
+ nombre: string;
35
+ ancho: string | number;
36
+ alto: string | number;
37
+ colores: string[];
38
+ angulo?: number | undefined;
39
+ radio?: number | undefined;
40
+ intensidad?: string | undefined;
41
+ fondo?: string | undefined;
42
+ }, {
43
+ tipo: "degradado-lineal" | "degradado-radial" | "sombra" | "glow";
44
+ nombre: string;
45
+ ancho: string | number;
46
+ alto: string | number;
47
+ colores: string[];
48
+ angulo?: unknown;
49
+ radio?: unknown;
50
+ intensidad?: string | undefined;
51
+ fondo?: string | undefined;
52
+ }, string, unknown, "generar_fondo_svg">;
@@ -0,0 +1,98 @@
1
+ import { z } from "zod";
2
+ import type { Agente } from "../../core/agentes.js";
3
+ import { NOMBRE_INCORPORAR_ADJUNTO } from "../../core/adjuntos.js";
4
+ import { type QuienDecidePermisos } from "./perfiles.js";
5
+ export { NOMBRE_INCORPORAR_ADJUNTO };
6
+ /**
7
+ * Meter un ADJUNTO del chat en el PROYECTO (IXCODE-7): «pon este icono en el menú».
8
+ *
9
+ * ## Por qué es una tool y no un `read_file` + `write_file`
10
+ *
11
+ * Las tools de fichero son de TEXTO (`write(filePath, content: string)`), y un PNG no
12
+ * sobrevive a esa ida y vuelta: lleva ceros en su cabecera y se copiaría corrupto sin que nadie
13
+ * se enterara hasta abrir la app. Es el mismo reparto que `copiar_artefacto`: el harness copia
14
+ * los BYTES porque el agente no puede, y darle una shell para eso sería peor que el problema.
15
+ *
16
+ * ## Por qué pasa por la APROBACIÓN, y `copiar_artefacto` no
17
+ *
18
+ * `copiar_artefacto` es del documentador, confinado por `escribeEn` a `/doc/`. Ésta es de quien
19
+ * escribe el proyecto ENTERO, así que el destino puede ser cualquier fichero de la app —también
20
+ * uno que ya existe, que se REEMPLAZA—. Eso es exactamente lo que `write_file` no hace sin que
21
+ * alguien lo apruebe, y una tool que lo hiciera sería la puerta trasera de la aprobación. Por
22
+ * eso va en el HITL por su NOMBRE, en los dos motores (`perfiles.ts#hitlDe`, las capacidades de
23
+ * TrueForge), y por eso el destino se llama `file_path`: es la clave que leen `seDetieneEn`, la
24
+ * tarjeta (`interrupts.ts#ficheroDe`) y el modo autónomo al anotar la ruta.
25
+ *
26
+ * ## Las guardas, reaplicadas A MANO
27
+ *
28
+ * Una tool propia no pasa por el middleware de permisos ni por la pila del backend: escribe al
29
+ * disco directo. Así que lo que ahí es gratis aquí hay que decirlo:
30
+ *
31
+ * 1. **El ORIGEN es un adjunto de verdad**: un nombre de la lista BLANCA de forma
32
+ * (`nombreDeAdjuntoAceptable`), no un `startsWith` — sin eso sería `/adjuntos/../.env`.
33
+ * 2. **El DESTINO lo puede escribir ESTE agente** (`puedeEscribirRuta`), y no es un sitio de
34
+ * artefacto equivocado (`artefactoFueraDeSitio`).
35
+ * 3. **El destino es el PROYECTO**: ni `/artefactos/`, ni `/planes/`, ni `/adjuntos/`, ni
36
+ * `/skills/`, ni los otros montajes del backend (`/hotswap/`, las descargas de deepagents,
37
+ * `/MEMORIA_PROYECTO.md`). Detrás de esas rutas el backend tiene OTRA carpeta; esta tool
38
+ * escribiría en la del proyecto un fichero con ese nombre. Y es además lo que sostiene a
39
+ * `seDetieneEn`: por `/artefactos/` y `/planes/` NO se pregunta, así que la única barrera ahí
40
+ * es este rechazo (`incorporarAdjunto.test.ts` lo ata ruta a ruta).
41
+ * 4. **Ni una vista APLANADA** (`X.xml` con su `X.xne`): la regla es del proyecto, no del
42
+ * backend por el que esta tool no pasa.
43
+ * 5. **Y todo, dos veces: por TEXTO y por `realpath`**, como `copiar_artefacto` y las escrituras
44
+ * de los motores externos. En APFS `.XONECODE` abre `.xonecode`, y un enlace dentro de la raíz
45
+ * puede apuntar fuera. **A diferencia de `copiar_artefacto`, la contención se comprueba ANTES
46
+ * de crear carpetas**: sobre el primer ancestro que existe, para que un destino que sale del
47
+ * proyecto no deje un árbol vacío fuera. El fichero final, si existe, no puede ser un enlace:
48
+ * escribir lo seguiría.
49
+ *
50
+ * Todo rechazo se DEVUELVE como texto, nunca se lanza (un `throw` se lleva el turno), y de un
51
+ * error de Node solo viaja su `code`: su mensaje lleva la ruta de la máquina.
52
+ */
53
+ /**
54
+ * Quién la recibe: escribe el PROYECTO y no está confinado por `escribeEn`. Regla de DATO, no una
55
+ * lista de nombres: de los de serie da `designer-xone` y `developer-xone`, que es lo que se
56
+ * decidió. Quien ejecuta no: la shell ya se le quitó el `write_file` para que tocar el proyecto
57
+ * siga siendo el camino del diff. Y quien va acotado por `escribeEn` (el documentador) tiene
58
+ * `copiar_artefacto` para lo suyo.
59
+ *
60
+ * **Solo llega a `motor: "modelo"`**, sin que esta función lo mire: los de motor externo se montan
61
+ * aparte y no reciben tools propias (corren en otro proceso), y tampoco ven `/adjuntos/`: es una
62
+ * ruta virtual de nuestro backend. El inventario que lee el orquestador lo dice
63
+ * (`core/adjuntos.ts#conAdjuntos`).
64
+ */
65
+ export declare function recibeIncorporarAdjunto(a: Pick<Agente, "soloLectura" | "ejecucion" | "escribeEn">): boolean;
66
+ export interface DondeIncorporar {
67
+ /** La raíz REAL del proyecto en disco. */
68
+ raiz: string;
69
+ /** La carpeta REAL de adjuntos de esta sesión (o tarea). Puede no existir todavía. */
70
+ carpetaDeAdjuntos: string;
71
+ /** De quién son los permisos que hay que reaplicar. */
72
+ perfil: QuienDecidePermisos;
73
+ }
74
+ /**
75
+ * ¿Por qué no vale `ruta` como destino, mirando SOLO el texto? `undefined` = vale.
76
+ *
77
+ * Se aplica dos veces: a lo que escribió el modelo y a la ruta que sale del `realpath`.
78
+ * Todo se compara también sin mayúsculas (APFS: `/Adjuntos/` es la misma carpeta en disco).
79
+ */
80
+ export declare function motivoDeDestino(perfil: QuienDecidePermisos, ruta: string): string | undefined;
81
+ /**
82
+ * (5b) ¿Por qué no vale `destinoVirtual` mirando el DISCO? `undefined` = vale. ANTES de crear nada:
83
+ * el primer ancestro que existe tiene que caer dentro de la raíz, y lo que resulta se vuelve a
84
+ * juzgar como ruta virtual (un enlace `/icons` → `.xonecode/` pasa el texto y no esto). El
85
+ * fichero final, si ya está, no puede ser un enlace (se seguiría) ni una carpeta. Exportada
86
+ * porque `traer_fuente` escribe un binario al proyecto con las MISMAS guardas. Nunca lanza.
87
+ */
88
+ export declare function motivoDeDestinoEnDisco(donde: Pick<DondeIncorporar, "raiz" | "perfil">, destinoVirtual: string): string | undefined;
89
+ export declare function crearIncorporarAdjunto(donde: DondeIncorporar): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
90
+ adjunto: z.ZodString;
91
+ file_path: z.ZodString;
92
+ }, z.core.$strip>, {
93
+ adjunto: string;
94
+ file_path: string;
95
+ }, {
96
+ adjunto: string;
97
+ file_path: string;
98
+ }, string, unknown, "incorporar_adjunto">;
@@ -0,0 +1,28 @@
1
+ import type { ImagenReferida } from "../../core/referenciasDeImagen.js";
2
+ /**
3
+ * La lectura de una maqueta (`core/referenciasDeImagen.ts` decide QUÉ rutas valen; esto las abre).
4
+ *
5
+ * **La comprobación se repite dos veces: por el TEXTO (la regla pura) y por el `realpath`.** Un enlace
6
+ * simbólico dentro del proyecto puede apuntar a `/etc` o a `~/.ssh`, y el texto de la ruta no lo dice:
7
+ * es lo que hacen también las escrituras de los motores externos y el lector de Ficheros. Se resuelve
8
+ * el enlace y se exige que lo que salga siga DENTRO de la carpeta de su origen.
9
+ *
10
+ * Solo lee y solo abre lo que ya pasó la regla. **Lanza con un `code`** (ENOENT si el origen no está
11
+ * montado o el fichero no existe, EACCES si el enlace sale de la carpeta): quien la llama devuelve
12
+ * solo ese código, porque el mensaje de un error de Node lleva la ruta absoluta de la máquina.
13
+ */
14
+ export interface CarpetasDeReferencia {
15
+ /** La carpeta de artefactos de la sesión. */
16
+ artefactos?: string;
17
+ /** La carpeta de adjuntos (de solo lectura). Ausente = `/adjuntos/` no está montada. */
18
+ adjuntos?: string;
19
+ /** La raíz del proyecto. */
20
+ raiz: string;
21
+ }
22
+ export declare function crearLectorDeReferencias(carpetas: CarpetasDeReferencia): (imagen: ImagenReferida) => Promise<Buffer>;
23
+ /**
24
+ * El `code.html` que acompaña a una maqueta —el de Stitch: `screen.png` y `code.html` en la misma carpeta—,
25
+ * con su ruta en disco, o `undefined` si no hay. Con la MISMA comprobación que la lectura: por el texto de
26
+ * la carpeta y por el `realpath`, para que un enlace no lleve a renderizar un HTML de fuera.
27
+ */
28
+ export declare function crearLocalizadorDeHtmlDeMaqueta(carpetas: CarpetasDeReferencia): (imagen: ImagenReferida) => string | undefined;
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Marcar en el plan lo que se COMPROBÓ en el aparato.
4
+ *
5
+ * ## Por qué existe
6
+ *
7
+ * Un criterio de un `TASKS.md` dice cosas como «pulsarla abre la pantalla nueva», y quien lo
8
+ * comprueba es el `device-controller`, en el emulador. Pero ese agente no tiene `write_file` ni
9
+ * `edit_file` —ejecuta, y el camino normal de tocar ficheros es el del desarrollador—, y el
10
+ * orquestador es de solo lectura: medido en una sesión real, el conductor comprobó en el
11
+ * emulador la entrada del drawer, la lista y el detalle, y el plan siguió con todas las casillas
12
+ * a cero. Lo verificado no volvía nunca al plan.
13
+ *
14
+ * ## Por qué una tool y no `edit_file`
15
+ *
16
+ * Porque lo que se le concede es EXACTAMENTE marcar casillas, y eso lo decide el código:
17
+ * `marcarCriterios` (`core/tareasDelPlan.ts`) solo cambia `- [ ]` a `- [x]` en la sección de UNA
18
+ * tarea. Un `edit_file` le abriría el fichero entero —y en deepagents, a quien ejecuta no se le
19
+ * pueden pasar `permissions` junto a su backend con shell—.
20
+ *
21
+ * ## Las guardas
22
+ *
23
+ * - El nombre del plan es un SLUG (`motivoDePlanInaceptable`): es un segmento de ruta, y sin esto
24
+ * `../..` saldría de la carpeta de planes.
25
+ * - Ni la carpeta ni el fichero pueden ser un enlace (`lstat`), y el camino REAL tiene que seguir
26
+ * dentro de `.xonecode/planes/`: lo mismo que `planesEnDisco.ts` al leer.
27
+ * - No crea nada: sin `TASKS.md` no hay criterios que marcar.
28
+ *
29
+ * **Límite declarado**: escribe directo al disco, sin la cola de `escriturasEnSerie`. Un
30
+ * `edit_file` del desarrollador sobre el MISMO `TASKS.md` a la vez podría pisar la marca.
31
+ */
32
+ export declare const NOMBRE_MARCAR_CRITERIOS = "marcar_criterios_del_plan";
33
+ export declare function crearMarcarCriteriosDelPlan(donde: {
34
+ raiz: string;
35
+ }): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
36
+ plan: z.ZodString;
37
+ tarea: z.ZodString;
38
+ criterios: z.ZodArray<z.ZodNumber>;
39
+ }, z.core.$strip>, {
40
+ plan: string;
41
+ tarea: string;
42
+ criterios: number[];
43
+ }, {
44
+ plan: string;
45
+ tarea: string;
46
+ criterios: number[];
47
+ }, string, unknown, "marcar_criterios_del_plan">;
@@ -0,0 +1,15 @@
1
+ export declare const NOMBRE_ARCHIVO_MEMORIA = "memoria.md";
2
+ /** Ruta que ve el agente dentro de su backend virtual. Vive en `core/memoria.ts`, que la
3
+ * reconoce también en el flujo de tools. */
4
+ export { RUTA_MEMORIA_VIRTUAL } from "../../core/memoria.js";
5
+ /** Ruta real dentro del backend virtual; nunca se enseña al agente. */
6
+ export declare const RUTA_MEMORIA_INTERNA = "/.xonecode/memoria.md";
7
+ /** Almacén interno de los historiales que DeepAgents ya ha resumido. */
8
+ export declare const RUTA_HISTORIAL_RESUMIDO = "/.xonecode/conversation_history";
9
+ export declare function rutaMemoriaDeProyecto(raiz: string): string;
10
+ export declare const PLANTILLA_MEMORIA = "# Memoria del proyecto\n\nEsta memoria recoge solo hechos confirmados, decisiones acordadas y riesgos que ayudan a\ncontinuar el trabajo. No es un transcript ni guarda secretos, credenciales o contenido de\nficheros completos.\n\n## Decisiones\n\n- A\u00FAn no hay decisiones registradas.\n\n## Estado y convenciones\n\n- A\u00FAn no hay estado persistente registrado.\n\n## Riesgos y pendientes\n\n- A\u00FAn no hay riesgos o pendientes registrados.\n";
11
+ /**
12
+ * Crea la memoria inicial una sola vez. `flag: wx` es la barrera contra pisar una
13
+ * memoria existente, incluso si dos sesiones arrancan a la vez.
14
+ */
15
+ export declare function asegurarMemoriaDeProyecto(raiz: string): boolean;
@@ -0,0 +1,60 @@
1
+ import { z } from "zod";
2
+ import type { CargarIndice } from "../navegacion/indiceEnDisco.js";
3
+ import type { CargarEstilos } from "../navegacion/estilosEnDisco.js";
4
+ /**
5
+ * `xone_navegacion`: preguntar por la ESTRUCTURA del proyecto sin leer ficheros.
6
+ *
7
+ * **Por qué existe, medido.** Sobre un proyecto real de 41 `.xne`, contestar «¿qué
8
+ * colecciones tiene el proyecto?» leyendo ficheros cuesta unos 18.000 tokens; contestarla
9
+ * desde el índice cuesta 141. Y una pregunta de capacidad («¿podríamos hacer un CRM?») llegó
10
+ * a gastar 21 pasos de exploración. Lo caro no es abrir un `.xne` —son un par de kilobytes—,
11
+ * es **no saber cuál de los cuarenta y uno abrir**. `grep` y `regex_search` buscan TEXTO;
12
+ * esto contesta sobre el modelo ya resuelto, así que un `mapcol` encuentra su colección
13
+ * aunque el nombre aparezca en otros veinte sitios.
14
+ *
15
+ * **El esquema es deliberadamente pequeño.** El inspector midió que el 87 % de una llamada
16
+ * son los esquemas de las tools y quitarle al orquestador tres que no podía usar valió un
17
+ * −24 % del turno. Una tool con una operación enumerada y un nombre opcional cuesta poco en
18
+ * cada llamada; cuatro tools separadas costarían cuatro veces eso para siempre.
19
+ *
20
+ * **Las rutas que devuelve son VIRTUALES y ya están filtradas.** Quien las traduce y aplica
21
+ * `puedeLeerRuta` y `esVistaAplanada` es el adaptador (`navegacion/modeloDeProyecto.ts`), y
22
+ * lo hace en la FUENTE: lo que el agente no puede abrir no llega ni a estar en el índice. Se
23
+ * filtra ahí y no aquí a propósito — es el único sitio donde una ruta se crea, está probado
24
+ * contra una fuga, y un segundo filtro sobre los mismos datos sería un segundo sitio donde
25
+ * equivocarse sin añadir barrera. Lo que esta tool NO hace nunca es aceptar una ruta del
26
+ * modelo: se pregunta por NOMBRE, así que no hay ruta que validar a la entrada.
27
+ */
28
+ /** Topes. Una respuesta que no cabe se recorta DICIENDO cuánto se dejó fuera: una lista
29
+ * truncada en silencio se lee como la lista entera, y sobre eso se concluye de más. */
30
+ export declare const LIMITES_NAVEGACION: {
31
+ readonly inventario: 200;
32
+ readonly referencias: 60;
33
+ readonly campos: 150;
34
+ readonly definiciones: 20;
35
+ readonly problemas: 40;
36
+ };
37
+ /**
38
+ * La tool. `cargar` entra por parámetro —y con él la raíz ya fijada— para que el modelo no
39
+ * pueda decir sobre QUÉ proyecto pregunta: si pudiera, esto sería una tool que lee cualquier
40
+ * carpeta de la máquina.
41
+ */
42
+ export declare function crearNavegacionXone(cargar: CargarIndice, ficheros: ReadonlySet<string>, cargarEstilos?: CargarEstilos): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
43
+ operacion: z.ZodEnum<{
44
+ estilos: "estilos";
45
+ detalle: "detalle";
46
+ app: "app";
47
+ inventario: "inventario";
48
+ definicion: "definicion";
49
+ referencias: "referencias";
50
+ campos: "campos";
51
+ problemas: "problemas";
52
+ }>;
53
+ nombre: z.ZodOptional<z.ZodString>;
54
+ }, z.core.$strip>, {
55
+ operacion: "estilos" | "detalle" | "app" | "inventario" | "definicion" | "referencias" | "campos" | "problemas";
56
+ nombre?: string | undefined;
57
+ }, {
58
+ operacion: "estilos" | "detalle" | "app" | "inventario" | "definicion" | "referencias" | "campos" | "problemas";
59
+ nombre?: string | undefined;
60
+ }, string, unknown, "xone_navegacion">;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Presupuesto de las herramientas de ficheros.
3
+ *
4
+ * DeepAgents 1.13 incorpora `max_count` y `output_mode` en `grep`. El valor por
5
+ * defecto de la librería (1.000) sigue siendo demasiado generoso para un agente
6
+ * que explora proyectos XOne: 100 resultados bastan para localizar candidatos y
7
+ * el modelo puede subirlo explícitamente en una búsqueda excepcional.
8
+ *
9
+ * A partir de 6k tokens la salida se conserva bajo `/large_tool_results/` y se
10
+ * sustituye por una referencia paginable. Así una lectura o búsqueda accidental
11
+ * no consume toda la ventana antes de que actúe el resumen de conversación.
12
+ *
13
+ * **Esa carpeta se monta FUERA del proyecto** (`core/descargas.ts`,
14
+ * `agent/grafo/proyecto.ts#backendConDescargas`), y hasta el 10-09-2026 no: la escribe la librería
15
+ * llamando al backend directamente, esa ruta no estaba montada en ninguna parte y caía en el
16
+ * `FilesystemBackend` de la raíz. Medido en el AppDemo real del usuario, 26 KB de salida
17
+ * cruda de una tool dentro de la app XOne y commiteados. Bajar este tope no era el arreglo:
18
+ * el desalojo es la función, el fallo era el sitio.
19
+ */
20
+ export declare const OPCIONES_BUSQUEDA_FICHEROS: {
21
+ readonly grepMaxCount: 100;
22
+ readonly toolTokenLimitBeforeEvict: 6000;
23
+ };