xonecode 0.38.41 → 0.39.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/apps/web/dist/assets/{EditorDeFichero-B5qtmfKO.js → EditorDeFichero-BeWDctgN.js} +1 -1
  2. package/apps/web/dist/assets/{index-C6XoIOQg.js → index-B-6cDRAV.js} +20 -20
  3. package/apps/web/dist/assets/{php-I6JfbNBQ.js → php-D3QdOnb8.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-DlqXDLOX.js → ruby-DDAcW-Z2.js} +1 -1
  5. package/apps/web/dist/index.html +1 -1
  6. package/dist/agent/cloudstudio/cloudstudioClient.d.ts +29 -0
  7. package/dist/agent/cloudstudio/cloudstudioMcp.d.ts +414 -0
  8. package/dist/agent/cloudstudio/conexionDeServidor.d.ts +37 -0
  9. package/dist/agent/cloudstudio/conexionDeServidor.js +63 -0
  10. package/dist/agent/cloudstudio/conexionDeServidor.js.map +1 -0
  11. package/dist/agent/cloudstudio/crearRama.d.ts +15 -0
  12. package/dist/agent/cloudstudio/crearRama.js +16 -0
  13. package/dist/agent/cloudstudio/crearRama.js.map +1 -0
  14. package/dist/agent/cloudstudio/descarga.d.ts +44 -0
  15. package/dist/agent/cloudstudio/manifiesto.d.ts +25 -0
  16. package/dist/agent/cloudstudio/ramaActiva.d.ts +24 -0
  17. package/dist/agent/cloudstudio/subida.d.ts +61 -0
  18. package/dist/agent/cloudstudio/subida.js +7 -1
  19. package/dist/agent/cloudstudio/subida.js.map +1 -1
  20. package/dist/agent/cloudstudio/validarTrasDescarga.d.ts +13 -0
  21. package/dist/agent/cloudstudio/zip.d.ts +13 -0
  22. package/dist/agent/conectores/conectoresEnDisco.d.ts +47 -0
  23. package/dist/agent/conectores/gestorJira.d.ts +50 -0
  24. package/dist/agent/conectores/gestorNotion.d.ts +45 -0
  25. package/dist/agent/conectores/proveedorDeConector.d.ts +43 -0
  26. package/dist/agent/conectores/servicioDeConectores.d.ts +112 -0
  27. package/dist/agent/config/authEnDisco.d.ts +43 -0
  28. package/dist/agent/config/catalogoModelos.d.ts +79 -0
  29. package/dist/agent/config/configEnDisco.d.ts +235 -0
  30. package/dist/agent/config/crearProyecto.d.ts +20 -0
  31. package/dist/agent/config/diagnosticoDeNodeEnMaquina.d.ts +44 -0
  32. package/dist/agent/config/ecoDeRazonamiento.d.ts +104 -0
  33. package/dist/agent/config/entorno.d.ts +83 -0
  34. package/dist/agent/config/fuentesEnRed.d.ts +12 -0
  35. package/dist/agent/config/gemini.d.ts +5 -0
  36. package/dist/agent/config/iconosEnRed.d.ts +10 -0
  37. package/dist/agent/config/identidadEnDisco.d.ts +27 -0
  38. package/dist/agent/config/modelos.d.ts +77 -0
  39. package/dist/agent/config/modelosDeMotor.d.ts +52 -0
  40. package/dist/agent/config/mudanzaEnDisco.d.ts +99 -0
  41. package/dist/agent/config/persona.d.ts +1 -0
  42. package/dist/agent/config/selectorEnMaquina.d.ts +35 -0
  43. package/dist/agent/config/settingsEnDisco.d.ts +206 -0
  44. package/dist/agent/config/versionEnDisco.d.ts +17 -0
  45. package/dist/agent/dispositivos/arranqueDeEmulador.d.ts +60 -0
  46. package/dist/agent/dispositivos/cajasDeMaqueta.d.ts +61 -0
  47. package/dist/agent/dispositivos/decodificarImagen.d.ts +21 -0
  48. package/dist/agent/dispositivos/descargaDeHerramientas.d.ts +44 -0
  49. package/dist/agent/dispositivos/dispositivosEnMaquina.d.ts +161 -0
  50. package/dist/agent/dispositivos/geometriaEnDisco.d.ts +17 -0
  51. package/dist/agent/dispositivos/hotswap.d.ts +194 -0
  52. package/dist/agent/dispositivos/instalacionEnMaquina.d.ts +156 -0
  53. package/dist/agent/dispositivos/juezVisual.d.ts +144 -0
  54. package/dist/agent/dispositivos/lanzamientoEnMaquina.d.ts +197 -0
  55. package/dist/agent/dispositivos/paqueteDelProyecto.d.ts +28 -0
  56. package/dist/agent/dispositivos/procesosEnMaquina.d.ts +154 -0
  57. package/dist/agent/dispositivos/recargaEnAparato.d.ts +30 -0
  58. package/dist/agent/dispositivos/sensorDeArranque.d.ts +42 -0
  59. package/dist/agent/exportarPdf.d.ts +72 -0
  60. package/dist/agent/grafo/aprendido.d.ts +28 -0
  61. package/dist/agent/grafo/arbolDeProyecto.d.ts +205 -0
  62. package/dist/agent/grafo/artefactosEnDisco.d.ts +35 -0
  63. package/dist/agent/grafo/atributosXone.d.ts +31 -0
  64. package/dist/agent/grafo/buscarIcono.d.ts +32 -0
  65. package/dist/agent/grafo/busquedaRegex.d.ts +56 -0
  66. package/dist/agent/grafo/codificacionDelProyecto.d.ts +7 -0
  67. package/dist/agent/grafo/compararCapturas.d.ts +22 -0
  68. package/dist/agent/grafo/copiarArtefacto.d.ts +64 -0
  69. package/dist/agent/grafo/criticaVisual.d.ts +60 -0
  70. package/dist/agent/grafo/describirImagen.d.ts +79 -0
  71. package/dist/agent/grafo/diferenciaDeCapturas.d.ts +33 -0
  72. package/dist/agent/grafo/ejecucionCancelable.d.ts +45 -0
  73. package/dist/agent/grafo/escriturasEnSerie.d.ts +31 -0
  74. package/dist/agent/grafo/excluirTools.d.ts +37 -0
  75. package/dist/agent/grafo/fuentesDeGoogle.d.ts +37 -0
  76. package/dist/agent/grafo/generarFondoSvg.d.ts +52 -0
  77. package/dist/agent/grafo/incorporarAdjunto.d.ts +98 -0
  78. package/dist/agent/grafo/lectorDeReferencias.d.ts +28 -0
  79. package/dist/agent/grafo/marcarCriteriosDelPlan.d.ts +47 -0
  80. package/dist/agent/grafo/memoriaDeProyecto.d.ts +15 -0
  81. package/dist/agent/grafo/navegacionXone.d.ts +60 -0
  82. package/dist/agent/grafo/opcionesDeFicheros.d.ts +23 -0
  83. package/dist/agent/grafo/perfiles.d.ts +225 -0
  84. package/dist/agent/grafo/proyecto.d.ts +450 -0
  85. package/dist/agent/grafo/skills.d.ts +181 -0
  86. package/dist/agent/grafo/traerDeLaMaquina.d.ts +60 -0
  87. package/dist/agent/grafo/unirSecciones.d.ts +20 -0
  88. package/dist/agent/grafo/validacionXone.d.ts +35 -0
  89. package/dist/agent/grafo/validarFicheroXone.d.ts +33 -0
  90. package/dist/agent/grafo/xoneAgent.d.ts +166 -0
  91. package/dist/agent/motores/motoresLocales.d.ts +87 -0
  92. package/dist/agent/motores/trueforge/capacidades.d.ts +183 -0
  93. package/dist/agent/motores/trueforge/convertirAP.d.ts +38 -0
  94. package/dist/agent/motores/trueforge/detencion.d.ts +70 -0
  95. package/dist/agent/motores/trueforge/esperas.d.ts +38 -0
  96. package/dist/agent/motores/trueforge/eventosTrueforge.d.ts +56 -0
  97. package/dist/agent/motores/trueforge/informesDeHijos.d.ts +48 -0
  98. package/dist/agent/motores/trueforge/medidaAutomatica.d.ts +37 -0
  99. package/dist/agent/motores/trueforge/medidaAutomatica.js +4 -2
  100. package/dist/agent/motores/trueforge/medidaAutomatica.js.map +1 -1
  101. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.d.ts +60 -0
  102. package/dist/agent/motores/trueforge/memoriaTrueforge.d.ts +131 -0
  103. package/dist/agent/motores/trueforge/metricasTrueforge.d.ts +45 -0
  104. package/dist/agent/motores/trueforge/modeloExterno.d.ts +9 -0
  105. package/dist/agent/motores/trueforge/modeloLangchain.d.ts +69 -0
  106. package/dist/agent/motores/trueforge/notas.d.ts +48 -0
  107. package/dist/agent/motores/trueforge/proponerTareas.d.ts +30 -0
  108. package/dist/agent/motores/trueforge/recortes.d.ts +47 -0
  109. package/dist/agent/motores/trueforge/resumenSeguro.d.ts +33 -0
  110. package/dist/agent/motores/trueforge/sesionTrueforge.d.ts +273 -0
  111. package/dist/agent/motores/trueforge/sesionTrueforge.js +32 -15
  112. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
  113. package/dist/agent/motores/trueforge/skillsTrueforge.d.ts +16 -0
  114. package/dist/agent/motores/trueforge/toolsDeConectores.d.ts +36 -0
  115. package/dist/agent/motores/trueforge/toolsDeFichero.d.ts +146 -0
  116. package/dist/agent/motores/trueforge/toolsPropias.d.ts +38 -0
  117. package/dist/agent/motores/trueforge/traerDeStitch.d.ts +63 -0
  118. package/dist/agent/motores/trueforge/trueforge.d.ts +35 -0
  119. package/dist/agent/navegacion/estilosEnDisco.d.ts +41 -0
  120. package/dist/agent/navegacion/hechosEnDisco.d.ts +19 -0
  121. package/dist/agent/navegacion/indiceEnDisco.d.ts +50 -0
  122. package/dist/agent/navegacion/modeloDeProyecto.d.ts +86 -0
  123. package/dist/agent/planesEnDisco.d.ts +18 -0
  124. package/dist/agent/publicarPlan.d.ts +20 -0
  125. package/dist/agent/raizDelPaquete.d.ts +9 -0
  126. package/dist/agent/remoto/ngrokEnMaquina.d.ts +44 -0
  127. package/dist/agent/remoto/puenteWebSocket.d.ts +59 -0
  128. package/dist/agent/remoto/tunelNgrok.d.ts +31 -0
  129. package/dist/agent/renombrarSobre.d.ts +14 -0
  130. package/dist/agent/sesiones/adjuntosDeSesion.d.ts +64 -0
  131. package/dist/agent/sesiones/baseDeFichero.d.ts +9 -0
  132. package/dist/agent/sesiones/checkpointer.d.ts +146 -0
  133. package/dist/agent/sesiones/git.d.ts +66 -0
  134. package/dist/agent/sesiones/gitSync.d.ts +264 -0
  135. package/dist/agent/sesiones/memoriaDeHilo.d.ts +4 -0
  136. package/dist/agent/sesiones/modeloDelCambio.d.ts +7 -0
  137. package/dist/agent/sesiones/parcheEnTexto.d.ts +9 -0
  138. package/dist/agent/sesiones/sesionGit.d.ts +155 -0
  139. package/dist/agent/subagentes/actividadDeCodex.d.ts +8 -0
  140. package/dist/agent/subagentes/agentesEnDisco.d.ts +198 -0
  141. package/dist/agent/subagentes/consumoExterno.d.ts +83 -0
  142. package/dist/agent/subagentes/ejecutableEnWindows.d.ts +53 -0
  143. package/dist/agent/subagentes/escrituraDeCodex.d.ts +94 -0
  144. package/dist/agent/subagentes/escrituraDeOpencode.d.ts +67 -0
  145. package/dist/agent/subagentes/escrituraExterna.d.ts +419 -0
  146. package/dist/agent/subagentes/pluginDeSkills.d.ts +84 -0
  147. package/dist/agent/subagentes/subagenteCodex.d.ts +76 -0
  148. package/dist/agent/subagentes/subagenteExterno.d.ts +169 -0
  149. package/dist/agent/subagentes/subagenteOpencode.d.ts +126 -0
  150. package/dist/agent/tareas/aumentador.d.ts +99 -0
  151. package/dist/agent/tareas/juezDeTarea.d.ts +64 -0
  152. package/dist/agent/tareas/reflejoEnElGestor.d.ts +38 -0
  153. package/dist/agent/tareas/sondeoDelGestor.d.ts +49 -0
  154. package/dist/agent/tareas/tareasEnDisco.d.ts +141 -0
  155. package/dist/agent/trazaDeErroresEnDisco.d.ts +10 -0
  156. package/dist/agent/turno/depuracion.d.ts +1 -0
  157. package/dist/agent/turno/diagnosticoDeTools.d.ts +124 -0
  158. package/dist/agent/turno/ficherosDelProyecto.d.ts +10 -0
  159. package/dist/agent/turno/guionizado.d.ts +18 -0
  160. package/dist/agent/turno/informeDeTraza.d.ts +220 -0
  161. package/dist/agent/turno/inspectorDePrompt.d.ts +150 -0
  162. package/dist/agent/turno/instantanea.d.ts +16 -0
  163. package/dist/agent/turno/interrupts.d.ts +54 -0
  164. package/dist/agent/turno/juezDelTurnoConModelo.d.ts +26 -0
  165. package/dist/agent/turno/mensajes.d.ts +23 -0
  166. package/dist/agent/turno/normalizar.d.ts +15 -0
  167. package/dist/agent/turno/puente.d.ts +196 -0
  168. package/dist/agent/turno/registroDeFallos.d.ts +39 -0
  169. package/dist/agent/turno/resumenDeContexto.d.ts +269 -0
  170. package/dist/agent/turno/resumenDeTool.d.ts +33 -0
  171. package/dist/agent/turno/rubrica.d.ts +35 -0
  172. package/dist/agent/turno/sesionReal.d.ts +89 -0
  173. package/dist/agent/turno/textoDeTool.d.ts +19 -0
  174. package/dist/agent/turno/turnoReal.d.ts +210 -0
  175. package/dist/agent/turno/verificacion.d.ts +85 -0
  176. package/dist/agent/turno/verificador.d.ts +66 -0
  177. package/dist/bin.d.ts +2 -0
  178. package/dist/cli/acuseDeModelo.d.ts +18 -0
  179. package/dist/cli/aprobar.d.ts +162 -0
  180. package/dist/cli/config.d.ts +17 -0
  181. package/dist/cli/consola.d.ts +473 -0
  182. package/dist/cli/describe.d.ts +7 -0
  183. package/dist/cli/doctor.d.ts +8 -0
  184. package/dist/cli/fuentesDeDisco.d.ts +25 -0
  185. package/dist/cli/main.d.ts +291 -0
  186. package/dist/cli/markdown.d.ts +126 -0
  187. package/dist/cli/panel.d.ts +38 -0
  188. package/dist/cli/podar.d.ts +38 -0
  189. package/dist/cli/run.d.ts +30 -0
  190. package/dist/cli/spinner.d.ts +37 -0
  191. package/dist/cli/stdio.d.ts +94 -0
  192. package/dist/cli/tema.d.ts +68 -0
  193. package/dist/cli/tokens.d.ts +16 -0
  194. package/dist/cli/traza.d.ts +19 -0
  195. package/dist/cli/tui/app.d.ts +23 -0
  196. package/dist/cli/tui/aprobarTui.d.ts +46 -0
  197. package/dist/cli/tui/barra.d.ts +43 -0
  198. package/dist/cli/tui/correrTui.d.ts +119 -0
  199. package/dist/cli/tui/entrada.d.ts +14 -0
  200. package/dist/cli/tui/filas.d.ts +13 -0
  201. package/dist/cli/tui/logo.d.ts +20 -0
  202. package/dist/cli/tui/pielTui.d.ts +15 -0
  203. package/dist/cli/tui/raton.d.ts +68 -0
  204. package/dist/cli/tui/sidebar.d.ts +63 -0
  205. package/dist/cli/tui/store.d.ts +102 -0
  206. package/dist/cli/tui/tarjeta.d.ts +8 -0
  207. package/dist/cli/tui/temaInk.d.ts +67 -0
  208. package/dist/cli/tui/transcript.d.ts +32 -0
  209. package/dist/cli/verify.d.ts +9 -0
  210. package/dist/cli/wizardInicial.d.ts +59 -0
  211. package/dist/core/actos.d.ts +437 -0
  212. package/dist/core/adjuntos.d.ts +77 -0
  213. package/dist/core/agentes.d.ts +353 -0
  214. package/dist/core/analisisDeSesion.d.ts +63 -0
  215. package/dist/core/aprendido.d.ts +41 -0
  216. package/dist/core/artefactos.d.ts +74 -0
  217. package/dist/core/atributosXone.d.ts +53 -0
  218. package/dist/core/bitacora.d.ts +21 -0
  219. package/dist/core/cloudstudio.d.ts +168 -0
  220. package/dist/core/codificacion.d.ts +81 -0
  221. package/dist/core/comandoExterno.d.ts +49 -0
  222. package/dist/core/compararCapturas.d.ts +136 -0
  223. package/dist/core/conectores.d.ts +296 -0
  224. package/dist/core/config.d.ts +148 -0
  225. package/dist/core/contextos.d.ts +54 -0
  226. package/dist/core/convertirAP.d.ts +56 -0
  227. package/dist/core/copiaDeAvd.d.ts +44 -0
  228. package/dist/core/cssBienFormado.d.ts +22 -0
  229. package/dist/core/deps.d.ts +28 -0
  230. package/dist/core/descargas.d.ts +61 -0
  231. package/dist/core/descripcionDePantalla.d.ts +121 -0
  232. package/dist/core/descriptoresDeApp.d.ts +108 -0
  233. package/dist/core/diagnosticoDeNode.d.ts +51 -0
  234. package/dist/core/diff.d.ts +26 -0
  235. package/dist/core/diffDeColecciones.d.ts +54 -0
  236. package/dist/core/disenoVinculado.d.ts +17 -0
  237. package/dist/core/dispositivoDeSesion.d.ts +22 -0
  238. package/dist/core/dispositivoElegido.d.ts +17 -0
  239. package/dist/core/dispositivos.d.ts +469 -0
  240. package/dist/core/entrega.d.ts +341 -0
  241. package/dist/core/entrelazar.d.ts +48 -0
  242. package/dist/core/esfuerzo.d.ts +120 -0
  243. package/dist/core/esqueleto.d.ts +38 -0
  244. package/dist/core/estiloMedido.d.ts +70 -0
  245. package/dist/core/estilos.d.ts +76 -0
  246. package/dist/core/events.d.ts +218 -0
  247. package/dist/core/exportacion.d.ts +88 -0
  248. package/dist/core/fallos.d.ts +79 -0
  249. package/dist/core/fondosSvg.d.ts +115 -0
  250. package/dist/core/fotoDeColecciones.d.ts +45 -0
  251. package/dist/core/fuentes.d.ts +96 -0
  252. package/dist/core/geometriaDePantalla.d.ts +171 -0
  253. package/dist/core/gestorDeTareas.d.ts +295 -0
  254. package/dist/core/hechosDelProyecto.d.ts +70 -0
  255. package/dist/core/hotswap.d.ts +30 -0
  256. package/dist/core/iconos.d.ts +86 -0
  257. package/dist/core/identidadDeProveedor.d.ts +20 -0
  258. package/dist/core/idiomaDeLaRespuesta.d.ts +26 -0
  259. package/dist/core/imagenesDeDocumento.d.ts +40 -0
  260. package/dist/core/jsParaRhino.d.ts +3 -0
  261. package/dist/core/juezDelTurno.d.ts +95 -0
  262. package/dist/core/logDeDispositivo.d.ts +67 -0
  263. package/dist/core/memoria.d.ts +18 -0
  264. package/dist/core/metodoDeComparacionVisual.d.ts +20 -0
  265. package/dist/core/modelos.d.ts +198 -0
  266. package/dist/core/modoDeEscritura.d.ts +155 -0
  267. package/dist/core/motor.d.ts +43 -0
  268. package/dist/core/motoresLocales.d.ts +113 -0
  269. package/dist/core/mudanzaDeWorkspace.d.ts +112 -0
  270. package/dist/core/navegacion.d.ts +172 -0
  271. package/dist/core/notify.d.ts +77 -0
  272. package/dist/core/nucleoXone.d.ts +28 -0
  273. package/dist/core/panorama.d.ts +68 -0
  274. package/dist/core/paqueteDeSoporte.d.ts +100 -0
  275. package/dist/core/planDeSubida.d.ts +56 -0
  276. package/dist/core/planes.d.ts +53 -0
  277. package/dist/core/podaDeCheckpoint.d.ts +75 -0
  278. package/dist/core/ports.d.ts +1034 -0
  279. package/dist/core/puedeLanzarse.d.ts +181 -0
  280. package/dist/core/puertosDeAvd.d.ts +59 -0
  281. package/dist/core/recargaEnCaliente.d.ts +52 -0
  282. package/dist/core/referenciasDeImagen.d.ts +36 -0
  283. package/dist/core/remoto.d.ts +76 -0
  284. package/dist/core/repartoDeEncargo.d.ts +80 -0
  285. package/dist/core/rubrica.d.ts +78 -0
  286. package/dist/core/rutaVirtual.d.ts +29 -0
  287. package/dist/core/selectorDeCarpeta.d.ts +59 -0
  288. package/dist/core/serieDeEscrituras.d.ts +58 -0
  289. package/dist/core/settings.d.ts +421 -0
  290. package/dist/core/shellDeAgente.d.ts +177 -0
  291. package/dist/core/skills.d.ts +129 -0
  292. package/dist/core/stitch.d.ts +114 -0
  293. package/dist/core/tareas.d.ts +412 -0
  294. package/dist/core/tareasDelPlan.d.ts +123 -0
  295. package/dist/core/tareasEnElGestor.d.ts +117 -0
  296. package/dist/core/textos.d.ts +8 -0
  297. package/dist/core/topeAgotado.d.ts +55 -0
  298. package/dist/core/traerDeLaMaquina.d.ts +33 -0
  299. package/dist/core/trazaDeErrores.d.ts +83 -0
  300. package/dist/core/tunel.d.ts +45 -0
  301. package/dist/core/turno.d.ts +154 -0
  302. package/dist/core/validacionDeEscritura.d.ts +95 -0
  303. package/dist/core/verificacionDeSubida.d.ts +14 -0
  304. package/dist/core/version.d.ts +35 -0
  305. package/dist/core/xmlBienFormado.d.ts +23 -0
  306. package/dist/core/zipDeAdjunto.d.ts +28 -0
  307. package/dist/core/zipDeSkill.d.ts +74 -0
  308. package/dist/lib/tareaAutonoma.d.ts +36 -0
  309. package/dist/lib/tareaAutonoma.js +259 -0
  310. package/dist/lib/tareaAutonoma.js.map +1 -0
  311. package/dist/lib.d.ts +31 -0
  312. package/dist/lib.js +28 -0
  313. package/dist/lib.js.map +1 -0
  314. package/dist/vendor/hitl.d.ts +69 -0
  315. package/dist/vendor/skillLoaders/catalog.d.ts +27 -0
  316. package/dist/vendor/sqliteSaver.d.ts +22 -0
  317. package/dist/vendor/tokenTracking.d.ts +22 -0
  318. package/dist/web/servidor/arranque.d.ts +1372 -0
  319. package/dist/web/servidor/consolaDeTarea.d.ts +166 -0
  320. package/dist/web/servidor/consolaWeb.d.ts +142 -0
  321. package/dist/web/servidor/corredorDeTareas.d.ts +395 -0
  322. package/dist/web/servidor/datosDeCierre.d.ts +4 -0
  323. package/dist/web/servidor/interrupcion.d.ts +39 -0
  324. package/dist/web/servidor/pielWeb.d.ts +32 -0
  325. package/dist/web/servidor/puenteRemoto.d.ts +80 -0
  326. package/dist/web/servidor/servidor.d.ts +53 -0
  327. package/dist/web/servidor/sesiones.d.ts +342 -0
  328. package/dist/web/servidor/soporte.d.ts +65 -0
  329. package/dist/web/servidor/soporte.js +2 -0
  330. package/dist/web/servidor/soporte.js.map +1 -1
  331. package/dist/web/servidor/transporte.d.ts +2751 -0
  332. package/dist/web/servidor/vestibulo.d.ts +952 -0
  333. package/dist/web/servidor/visorOpenui.d.ts +33 -0
  334. package/package.json +9 -1
@@ -0,0 +1,60 @@
1
+ import { z } from "zod";
2
+ import { type Artefacto } from "../../core/artefactos.js";
3
+ /**
4
+ * Traer al área de trabajo un fichero que la PERSONA ha nombrado por su ruta.
5
+ *
6
+ * ## El caso, medido
7
+ *
8
+ * «Usa el diseño de `/Users/…/Downloads/stitch_calculadora.zip`». Esa ruta no es del proyecto,
9
+ * y las tools de fichero van confinadas a su raíz, así que el agente no podía abrirla: la
10
+ * resolvía DENTRO del proyecto, recibía un ENOENT que decía «no existe» sobre un fichero que
11
+ * sí existe, concluía que estaba enjaulado y se iba a delegar en el único especialista con
12
+ * shell para que lo copiara. Dieciocho pasos y un `unzip` para un fichero que le acababan de
13
+ * nombrar.
14
+ *
15
+ * ## Por qué COPIAR y no montar el disco
16
+ *
17
+ * La primera versión montaba la máquina entera bajo `/disco/`, de solo lectura. **Rompió un
18
+ * turno de producción**: con `/` dentro del `CompositeBackend`, toda operación recursiva sin
19
+ * ruta lo recorre — un `grep` sobre el PROYECTO tardaba 30 segundos y moría con
20
+ * `EPERM … scandir '/Volumes/com.apple.TimeMachine.localsnapshots'`.
21
+ *
22
+ * Y al mirarlo se vio que montar era más de lo que hacía falta. Lo que se necesita no es
23
+ * navegar el disco: es **traerse un fichero concreto**. Copiar tiene tres ventajas que el
24
+ * montaje no puede dar: no hay nada recursivo que se descontrole, lo traído queda en el área
25
+ * de trabajo —donde se ANUNCIA y se puede volver a leer—, y un BINARIO sobrevive: un `.zip` o
26
+ * un `.png` no aguantan un `read_file` + `write_file`, que son de TEXTO. Es el mismo reparto
27
+ * que `copiar_artefacto` y que el PDF: lo hace el harness porque el agente no puede.
28
+ *
29
+ * ## Las guardas
30
+ *
31
+ * 1. **Lo que se acepta es una lista BLANCA de forma** (`core/traerDeLaMaquina.ts`): una ruta
32
+ * absoluta de verdad, y nada del propio harness —`auth.json` guarda las claves en claro y
33
+ * cualquier `.xonecode/` lleva la conversación entera—.
34
+ * 2. **El DESTINO no se recibe**: lo deriva el código dentro de la carpeta de artefactos. Con
35
+ * un destino por parámetro esto sería una forma de escribir donde se quisiera.
36
+ * 3. **Tope de tamaño**, porque el área de trabajo no es un almacén y un fichero enorme se
37
+ * copia igual de callado que uno pequeño.
38
+ * 4. Y la ruta se comprueba **dos veces**, por TEXTO y por `realpath`, como en
39
+ * `arbolDeProyecto.ts`: un enlace puede apuntar a otro sitio.
40
+ */
41
+ export declare const NOMBRE_TRAER = "traer_de_la_maquina";
42
+ export interface DependenciasDeTraida {
43
+ /** La carpeta de artefactos de la sesión. Sin ella no hay dónde dejarlo. */
44
+ carpeta?: string;
45
+ /**
46
+ * Para ANUNCIARLO, con el mismo evento que una escritura de artefacto.
47
+ *
48
+ * No es cosmético: lo traído cae en una carpeta que se escribe SIN aprobación, y la regla de
49
+ * este repo es que lo que nadie aprueba no puede ser además mudo. Sin esto, el fichero
50
+ * existiría en el disco y no existiría para nadie.
51
+ */
52
+ alEscribir?: (a: Artefacto) => void;
53
+ }
54
+ export declare function crearTraerDeLaMaquina(deps: DependenciasDeTraida): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
55
+ ruta: z.ZodString;
56
+ }, z.core.$strip>, {
57
+ ruta: string;
58
+ }, {
59
+ ruta: string;
60
+ }, string, unknown, "traer_de_la_maquina">;
@@ -0,0 +1,20 @@
1
+ import { z } from "zod";
2
+ import { type QuienDecidePermisos } from "./perfiles.js";
3
+ export declare const NOMBRE_UNIR_SECCIONES = "unir_secciones";
4
+ /** Topes: una carpeta con cientos de secciones o megas de texto no es un documento, es un error. */
5
+ export declare const TOPE_DE_SECCIONES = 300;
6
+ export declare const TOPE_DE_CARACTERES = 5000000;
7
+ /** El documento que sale de una carpeta de secciones: la carpeta sin su barra final, más `.md`. */
8
+ export declare function documentoDeCarpeta(carpeta: string): string;
9
+ /** Los números de orden que llevan DOS o más secciones, con cuáles: `06 (06-a.md, 06-b.md)`. */
10
+ export declare function numerosRepetidos(nombres: readonly string[]): string[];
11
+ export declare function crearUnirSecciones(donde: {
12
+ raiz: string;
13
+ perfil: QuienDecidePermisos;
14
+ }): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
15
+ carpeta: z.ZodString;
16
+ }, z.core.$strip>, {
17
+ carpeta: string;
18
+ }, {
19
+ carpeta: string;
20
+ }, string, unknown, "unir_secciones">;
@@ -0,0 +1,35 @@
1
+ import type { HallazgoDeEscritura } from "../../core/validacionDeEscritura.js";
2
+ /** Lo que esta guarda necesita saber hacer. Entra por parámetro: `npm test` no abre ficheros. */
3
+ export type ValidarContenido = (ruta: string, contenido: string) => Promise<HallazgoDeEscritura[] | undefined>;
4
+ /**
5
+ * El validador de PRODUCCIÓN, sobre `xone-linter`.
6
+ *
7
+ * **Devuelve `undefined` cuando no se pudo mirar**, que no es lo mismo que «no hay hallazgos» y
8
+ * por eso no es una lista vacía. Quien lo lea tiene que poder distinguir «esto está limpio» de
9
+ * «no sé»: lo primero deja escribir porque se comprobó, lo segundo deja escribir porque un fallo
10
+ * del ENTORNO no puede convertirse en un veredicto sobre el trabajo del agente. Es la misma
11
+ * frontera que `ErrorDelSimulador` frente a un informe en rojo.
12
+ */
13
+ export declare function validarConXoneLinter(): ValidarContenido;
14
+ /**
15
+ * Lo que un `edit` va a dejar en el fichero, o `undefined` si no se puede saber.
16
+ *
17
+ * **Se calcula aquí en vez de dejar escribir y mirar después**, porque mirar después obliga a
18
+ * deshacer, y deshacer es escribir dos veces en el proyecto del usuario — con la ventana en la
19
+ * que el fichero malo existe si el proceso se muere en medio.
20
+ *
21
+ * Y **cuando el reemplazo no es exacto se devuelve `undefined` y NO se juzga**: si `oldString`
22
+ * no aparece, o aparece varias veces sin `replaceAll`, deepagents va a rechazar el edit él
23
+ * mismo. Adivinar ahí sería validar un contenido que nunca va a existir.
24
+ */
25
+ export declare function contenidoTrasEditar(actual: string, oldString: string, newString: string, replaceAll: boolean): string | undefined;
26
+ /**
27
+ * Envuelve el backend para que un `write` o un `edit` que INTRODUZCA un problema no llegue a
28
+ * disco.
29
+ *
30
+ * Cuarta guarda del mismo Proxy que `sinVistasAplanadas`, `sinArtefactosEnElProyecto` y
31
+ * `sinDescargasEnElProyecto`, con su misma forma: **se DEVUELVE `{error}`, nunca se lanza**.
32
+ * deepagents devuelve ese error al modelo como resultado de la tool y puede reintentar; una
33
+ * excepción se lleva el turno por delante y el agente no reintenta.
34
+ */
35
+ export declare function sinContenidoInvalido<T extends object>(backend: T, validar: ValidarContenido): T;
@@ -0,0 +1,33 @@
1
+ import type { FilesystemBackend } from "deepagents";
2
+ import { z } from "zod";
3
+ /**
4
+ * `validar_fichero_xone`: ¿está bien este `.xne`, `.xml` (el `app.xml`), `.css` o `.js`? Una respuesta
5
+ * exacta en vez de leer el fichero a ojo. Cada extensión con su comprobador puro de `core/`:
6
+ * `comprobarXml` (bien formado), `comprobarCss` (estructura de la hoja, con la gramática de XOne) y
7
+ * `comprobarJs` (lo que lee Rhino, el motor de Android: `acorn` a ES2015 más la rodaja medida que le
8
+ * falta).
9
+ *
10
+ * Existe por un turno real (soporte de APPSalud): la persona pegó un error del parser de Studio
11
+ * («'name' is an unexpected token…, Line 381») y el agente, sin forma de comprobarlo, se pasó
12
+ * minutos releyendo un fichero que estaba BIEN —lo dijo a los dos minutos y no se lo creyó—.
13
+ *
14
+ * - **Sin llamar a nadie**: el comprobador es puro (`core/xmlBienFormado.ts`), ni simulador ni
15
+ * linter ni red.
16
+ * - **Lee por el backend** (`readRaw`), así que hereda la codificación del fichero, las vistas
17
+ * aplanadas y el resto de guardas; y **reaplica `puedeLeerRuta` a mano**, porque una tool de
18
+ * LangChain añadida por xonecode no pasa por el middleware de permisos.
19
+ * - **Solo lectura**: no corrige nada. Y su descripción dice qué significa un «bien formado»
20
+ * frente a un error que alguien ha visto: que ese error viene de OTRA copia del fichero.
21
+ */
22
+ export declare const NOMBRE_VALIDAR_FICHERO_XONE = "validar_fichero_xone";
23
+ /** Cuántos ficheros como mucho en una pasada sobre una carpeta. */
24
+ export declare const TOPE_DE_FICHEROS_A_VALIDAR = 300;
25
+ type BackendDeValidacion = Pick<FilesystemBackend, "glob" | "readRaw">;
26
+ export declare function crearValidarFicheroXone(backend: BackendDeValidacion): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
27
+ path: z.ZodDefault<z.ZodString>;
28
+ }, z.core.$strip>, {
29
+ path: string;
30
+ }, {
31
+ path?: string | undefined;
32
+ }, string, unknown, "validar_fichero_xone">;
33
+ export {};
@@ -0,0 +1,166 @@
1
+ import { type Agente } from "../../core/agentes.js";
2
+ import type { SubagenteExternoPort } from "../../core/ports.js";
3
+ import type { BaseCheckpointSaver } from "@langchain/langgraph-checkpoint";
4
+ import type { Artefacto } from "../../core/artefactos.js";
5
+ import { type QuienDecidePermisos } from "./perfiles.js";
6
+ import { type CargarIndice } from "../navegacion/indiceEnDisco.js";
7
+ import type { CargarEstilos } from "../navegacion/estilosEnDisco.js";
8
+ import type { DiagnosticoDeTools } from "../turno/diagnosticoDeTools.js";
9
+ import { type Calificador } from "../turno/rubrica.js";
10
+ import { type AlContarTokens, type TokenTracker } from "../../vendor/tokenTracking.js";
11
+ import type { IconosPort, SkillsPort, ModelosPort } from "../../core/ports.js";
12
+ export interface OpcionesDelAgente {
13
+ raiz: string;
14
+ /** Todas las rutas del proyecto, para saber cuáles son vistas aplanadas. */
15
+ ficheros: ReadonlySet<string>;
16
+ /**
17
+ * Se avisa en cada llamada al modelo, DESPUÉS de que el tracker se actualice.
18
+ *
19
+ * No lleva el uso dentro a propósito: quien escucha tiene el tracker —es él quien lo
20
+ * pasó— y dos fuentes para el mismo número son dos números que divergen.
21
+ */
22
+ alContarTokens?: () => void;
23
+ /**
24
+ * Los subagentes, ya leídos de disco (`agent/subagentes/agentesEnDisco.ts`). Entran por parámetro y
25
+ * no se leen aquí por la misma razón que todo lo demás: quien construye el agente no
26
+ * toca el disco, y así un test puede montar los que quiera sin escribir ficheros.
27
+ *
28
+ * Puede venir VACÍO, y entonces el orquestador se queda sin nadie a quien delegar. No se
29
+ * rellena con los de serie a espaldas de nadie: si el usuario borró los cuatro, la
30
+ * consola tiene que decírselo, no fingir que siguen ahí.
31
+ */
32
+ agentes: readonly Agente[];
33
+ /**
34
+ * Quien lanza los agentes de otro producto (Claude Code). Puerto por lo de siempre:
35
+ * `npm test` no puede necesitar un binario instalado, y ni este fichero ni `turnoReal`
36
+ * pueden saber que Claude Code existe — la misma regla que con las tools de CloudStudio.
37
+ */
38
+ subagenteExterno: SubagenteExternoPort;
39
+ modelos: ModelosPort;
40
+ skills: SkillsPort;
41
+ /**
42
+ * De dónde sale el índice de navegación XOne. Ausente = el real, leyendo el proyecto con
43
+ * `xone-linter`. Entra por aquí para que un test pueda doblarlo sin proyecto en disco.
44
+ */
45
+ navegacion?: CargarIndice;
46
+ /** El resolvedor de estilos. Ausente, el de disco sobre `raiz`. Doblable como el índice. */
47
+ estilos?: CargarEstilos;
48
+ /**
49
+ * De dónde salen los iconos (IXCODE-18). Ausente = `buscar_icono` no se monta: una tool que
50
+ * siempre contestara «no hay red» sería un botón muerto en el prompt. Entra por parámetro porque
51
+ * toca la red (`core/ports.ts#IconosPort`).
52
+ */
53
+ iconos?: IconosPort;
54
+ /**
55
+ * Quién juzga si lo hecho cumple la rúbrica del encargo, si es que hay rúbrica.
56
+ *
57
+ * Ausente = no se monta el bucle, y ese es el caso normal. El middleware además no hace nada
58
+ * sin rúbrica en el estado, así que hay dos puertas y las dos son datos: quien no lo use no
59
+ * paga ni una llamada. Entra por parámetro porque llama a un modelo, y el invariante de
60
+ * `npm test` es que nada de eso haga falta para probar el harness.
61
+ */
62
+ calificador?: Calificador;
63
+ /** `BaseCheckpointSaver` y no `MemorySaver`: desde que hay uno persistente
64
+ * (`agent/sesiones/checkpointer.ts`) el tipo tiene que ser el de la interfaz, no el del doble. */
65
+ checkpointer?: BaseCheckpointSaver;
66
+ /** Opcional porque no siempre se viene a contar gasto; sin él la barra de estado enseña 0. */
67
+ tracker?: TokenTracker;
68
+ /** Registro local opt-in de llamadas y uso; nunca llega al modelo. */
69
+ diagnostico?: DiagnosticoDeTools;
70
+ /**
71
+ * Dónde caen los artefactos de la sesión (`/artefactos/` para el agente). Es una carpeta
72
+ * de `.xonecode/`, o sea FUERA del proyecto: ver `core/artefactos.ts`. Ausente = no se
73
+ * monta la carpeta, y entonces un `write_file` a `/artefactos/…` es un fichero más del
74
+ * proyecto — que es lo que pasaba antes de que esto existiera.
75
+ */
76
+ artefactos?: {
77
+ carpeta: string;
78
+ alEscribir: (a: Artefacto) => void;
79
+ };
80
+ /**
81
+ * La carpeta de los ADJUNTOS de una tarea (`/adjuntos/` para el agente), de solo lectura.
82
+ * Es de `~/.xonecode/tareas/<id>/`, o sea fuera del proyecto: ver `core/adjuntos.ts`.
83
+ *
84
+ * Ausente = no se monta, que es el caso de toda sesión de persona y de toda tarea sin
85
+ * adjuntos. Entonces esa ruta no es nada, y lo que evita que un `write_file` a
86
+ * `/adjuntos/x` acabe siendo un fichero del proyecto es la denegación incondicional de
87
+ * `permisosDe` (medido: sin ella lo era).
88
+ */
89
+ adjuntos?: string;
90
+ }
91
+ /**
92
+ * El prompt del orquestador, GENERADO a partir de los subagentes que hay.
93
+ *
94
+ * Era una constante que nombraba a `docs`, `planner`, `dev` y `mockup` a pelo. Desde que los
95
+ * subagentes son ficheros que el usuario escribe y borra, eso se queda mintiendo el primer
96
+ * día: mandarle delegar en `mockup` cuando `mockup` no existe es la misma clase de botón
97
+ * muerto que este repo lleva semanas quitando de la interfaz.
98
+ *
99
+ * Lo que se conserva es lo GENERAL —no tienes tools, delega, encadena con handoff, no
100
+ * afirmes lo que no te han confirmado—, y lo específico sale de la propia lista. La línea
101
+ * del encadenado para diagramas solo se escribe si existen los dos agentes de los que
102
+ * habla: una instrucción sobre un especialista que no está no la puede seguir nadie.
103
+ */
104
+ /**
105
+ * Quién es el orquestador a efectos de permisos: SOLO LECTURA.
106
+ *
107
+ * Es un `QuienDecidePermisos` y no un `Agente` porque el orquestador no es un especialista
108
+ * —no se puede dar de alta, ni borrar, ni editar desde Ajustes—, pero sus tools de fichero
109
+ * son las mismas y tienen que pasar por la misma función. Ver dónde se usa, en
110
+ * `construirAgente`, para el agujero que esto cierra.
111
+ */
112
+ export declare const PERFIL_DEL_ORQUESTADOR: QuienDecidePermisos;
113
+ export declare function promptOrquestador(agentes: readonly Agente[]): string;
114
+ /**
115
+ * Indicaciones que el modelo recibe junto a las tools reales de fichero.
116
+ *
117
+ * No crean herramientas ni rebajan permisos: hacen explícito el destino correcto
118
+ * para que una skill no confunda su propia carpeta de instrucciones con la salida.
119
+ */
120
+ /**
121
+ * **`read_file` NO está aquí, y es deliberado.**
122
+ *
123
+ * Una descripción propia REEMPLAZA la de la librería, no se suma a ella, así que la nuestra
124
+ * —que solo hablaba de coste— borraba tres cosas que deepagents ya dice y que no son nuestras
125
+ * de decir: que la salida lleva una cabecera de formato **que no hay que reinyectar al
126
+ * editar** (eso es CORRECCIÓN, no ahorro), que conviene pedir varias lecturas en una misma
127
+ * respuesta, y que un resultado grande se descarga a `/large_tool_results/` y se pagina desde
128
+ * ahí. Medido al comparar dos parches suyos: entre `1.13.2` y `1.13.5` ese formato CAMBIÓ
129
+ * —de prefijos de número de línea a una cabecera `@@ … @@`— y con él la advertencia. Una copia
130
+ * nuestra habría quedado describiendo un formato que ya no existe, sin un error que leer.
131
+ *
132
+ * La regla: lo que describe la TOOL es de la librería y se actualiza con ella; lo que decimos
133
+ * nosotros es cómo QUEREMOS usarla, y eso vive en el prompt del especialista
134
+ * (`core/agentes.ts#promptDeAgente`), donde no compite con nada.
135
+ */
136
+ export declare const DESCRIPCIONES_FICHEROS: {
137
+ write_file: string;
138
+ edit_file: string;
139
+ grep: string;
140
+ };
141
+ export { OPCIONES_BUSQUEDA_FICHEROS } from "./opcionesDeFicheros.js";
142
+ export declare function construirAgente(opciones: OpcionesDelAgente): Promise<unknown>;
143
+ /**
144
+ * Rutas virtuales que SkillsMiddleware carga de forma progresiva para un agente.
145
+ *
146
+ * Recibe el AGENTE y no su nombre: antes buscaba el perfil en `PERFILES`, y con subagentes
147
+ * escritos por el usuario ese `Record` no tiene su entrada — `perfil.skills` habría
148
+ * reventado con «cannot read properties of undefined» en cuanto alguien creara el primero.
149
+ *
150
+ * Solo las que EXISTEN. Una ruta a una skill que no está haría que el middleware fallara al
151
+ * montarla; que falte se dice en el prompt (`promptDeAgente`), que es donde se puede leer.
152
+ */
153
+ export declare function rutasDeSkills(agente: Agente, disponibles: ReadonlySet<string>): string[];
154
+ /**
155
+ * Lo que se hace cada vez que el tracker cuenta: avisar a los DOS que lo esperan.
156
+ *
157
+ * **Extraída y exportada porque uno de los dos se cayó**, y en verde: el callback nació
158
+ * llamando solo al diagnóstico, así que el aviso de consumo tenía un único disparador —el
159
+ * de un agente EXTERNO— y una sesión normal subía sus tokens en silencio. Medido en la
160
+ * pantalla del usuario: el contador de la web no apareció nunca. Con la composición dentro
161
+ * de `construirAgente`, que todos sus tests doblan, no había dónde cazarlo.
162
+ *
163
+ * `alContarTokens` no lleva el uso dentro a propósito: quien escucha tiene el tracker —es
164
+ * él quien lo pasó— y dos fuentes para el mismo número son dos números que divergen.
165
+ */
166
+ export declare function alContarDelTracker(origen: string, diagnostico?: DiagnosticoDeTools, alContarTokens?: () => void): AlContarTokens;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Los motores locales en la máquina: medir si están y con qué sesión, PROBARLOS con un encargo de
3
+ * verdad, e iniciar la sesión de Claude Code desde un botón. Las reglas puras están en
4
+ * `core/motoresLocales.ts`; aquí solo hay procesos.
5
+ *
6
+ * Tres decisiones que no se ven en el código:
7
+ *
8
+ * - **Se mide el binario que el SDK LANZA**, el de su paquete de plataforma, y no el `claude` del
9
+ * PATH: pueden ser versiones distintas (medido: 2.1.263 frente a 2.1.287), y medir el otro
10
+ * diría algo de un programa que los subagentes no corren. Sin respaldo al PATH, a propósito.
11
+ * - **La prueba sale por el MISMO puerto que un encargo real** (`crearSubagenteExterno().correr`),
12
+ * no por un `query()` montado aquí: una prueba con sus propias opciones mediría otra cosa —el
13
+ * patrón de fallo de siempre, una composición que solo existe donde nadie la usa—.
14
+ * - **`auth login` funciona sin TTY** (medido con el binario del SDK y un `CLAUDE_CONFIG_DIR`
15
+ * aislado): abre el navegador él solo, imprime un enlace de respaldo y espera «Paste code here
16
+ * if prompted». Así que el botón lanza el proceso y, si la web enseña un código, se le pasa
17
+ * por `stdin`. **El enlace no cruza el cable** (la regla de los conectores): si el navegador
18
+ * no se abrió, lo vuelve a abrir el SERVIDOR. Límite declarado: por un túnel no sirve.
19
+ */
20
+ import { type ChildProcess } from "node:child_process";
21
+ import { type CaminoDePrueba, type EstadoDeMotorLocal } from "../../core/motoresLocales.js";
22
+ import type { MotorExterno } from "../../core/ports.js";
23
+ /** `--version` y `auth status`: si tardan más, el binario no está bien. */
24
+ export declare const TOPE_DE_MEDIDA_MS = 15000;
25
+ /** Un primer arranque de Claude Code en frío tarda; dos minutos es «no contesta». */
26
+ export declare const TOPE_DE_PRUEBA_MS = 120000;
27
+ /** Lo que se espera a que la persona termine en el navegador. */
28
+ export declare const TOPE_DE_LOGIN_MS: number;
29
+ type Entorno = Readonly<Record<string, string | undefined>>;
30
+ export interface Salida {
31
+ stdout: string;
32
+ stderr: string;
33
+ }
34
+ /** El proceso del login, con lo justo para doblarlo en un test. */
35
+ export type ProcesoDeLogin = Pick<ChildProcess, "stdout" | "stderr" | "stdin" | "on" | "kill">;
36
+ export interface DependenciasDeMotoresLocales {
37
+ /** Se llama tras cada cambio de la foto: quien lo monta emite el mensaje. */
38
+ alCambiar: () => void;
39
+ plataforma?: string;
40
+ entorno?: Entorno;
41
+ ahora?: () => Date;
42
+ binarioDeClaude?: () => string | undefined;
43
+ /** Un proceso corto. Rechaza con un código distinto de 0, como `execFile`. */
44
+ ejecutar?: (binario: string, args: readonly string[], opciones: {
45
+ timeout: number;
46
+ entorno: Entorno;
47
+ }) => Promise<Salida>;
48
+ lanzar?: (binario: string, args: readonly string[], opciones: {
49
+ entorno: Entorno;
50
+ }) => ProcesoDeLogin;
51
+ /** Un encargo de prueba al motor. Devuelve la respuesta; lanza si no la hay. */
52
+ probar?: (peticion: {
53
+ motor: MotorExterno;
54
+ camino: CaminoDePrueba;
55
+ entornoLimpio: Record<string, string>;
56
+ senal: AbortSignal;
57
+ }) => Promise<string>;
58
+ abrir?: (url: string) => void;
59
+ /** Abre una terminal del sistema con el comando. `false` si en este sistema no se sabe. */
60
+ abrirTerminal?: (binario: string, args: readonly string[], entorno: Entorno) => boolean;
61
+ /** El modelo elegido para un motor de `MOTORES_CON_MODELO`, leído en cada medida. */
62
+ leerModelo?: (motor: MotorExterno) => string | undefined;
63
+ /** Y guardarlo; `undefined` lo quita. Lanza si no se pudo escribir. */
64
+ guardarModelo?: (motor: MotorExterno, modelo: string | undefined) => void;
65
+ }
66
+ export interface ServicioDeMotoresLocales {
67
+ /** La última foto. Ausente hasta la primera medida. */
68
+ foto(): EstadoDeMotorLocal[] | undefined;
69
+ medir(): Promise<void>;
70
+ probar(motor: MotorExterno): Promise<void>;
71
+ /** `false` si no se puede (otro login en curso, o el motor no lo admite). */
72
+ iniciarSesion(motor: MotorExterno, modo: "claudeai" | "console"): boolean;
73
+ enviarCodigo(motor: MotorExterno, codigo: string): boolean;
74
+ cancelarSesion(motor: MotorExterno): boolean;
75
+ abrirNavegador(motor: MotorExterno): boolean;
76
+ abrirConsola(motor: MotorExterno): boolean;
77
+ /** `false` si el motor no admite modelo, el nombre no vale o no se pudo guardar. */
78
+ elegirModelo(motor: MotorExterno, modelo: string | undefined): boolean;
79
+ }
80
+ /**
81
+ * El `claude` del paquete de plataforma del SDK, con la MISMA regla con que lo busca el SDK
82
+ * (`sdk.mjs`): `@anthropic-ai/claude-agent-sdk-<plataforma>-<arquitectura>/claude[.exe]`, y en
83
+ * Linux las dos variantes de libc. Resuelto por el cargador de módulos, nunca contando `..`.
84
+ */
85
+ export declare function binarioDeClaudeDelSdk(plataforma?: string, arquitectura?: string, resolver?: (id: string) => string): string | undefined;
86
+ export declare function crearServicioDeMotoresLocales(deps: DependenciasDeMotoresLocales): ServicioDeMotoresLocales;
87
+ export {};
@@ -0,0 +1,183 @@
1
+ import type { Agente } from "../../../core/agentes.js";
2
+ import type { DispositivoDeLaSesion } from "../../../core/dispositivoDeSesion.js";
3
+ import { permisosDe } from "../../grafo/perfiles.js";
4
+ import { type BackendDeFicheros, type ToolDeFichero } from "./toolsDeFichero.js";
5
+ import { type ToolDeLangchain } from "./toolsPropias.js";
6
+ import type { ClaseDeTool, ConectoresDeSesion } from "./toolsDeConectores.js";
7
+ import { type EscritorDeDesalojo } from "./recortes.js";
8
+ import { type Nota } from "./notas.js";
9
+ import type { ControlDeDetencion } from "./detencion.js";
10
+ /** Una pieza: la `AgentCapability` que se le da a TrueForge y las tools que añade. */
11
+ export interface Capacidad {
12
+ nombre: string;
13
+ tools: readonly string[];
14
+ capability: Record<string, unknown>;
15
+ }
16
+ /** Las tools que NO piden aprobación: las de lectura, las propias y la shell del conductor. */
17
+ export declare const SIN_APROBACION: {
18
+ enableTools: string[];
19
+ disableTools: never[];
20
+ preloadTools: never[];
21
+ requireApprovalForTools: never[];
22
+ };
23
+ /** Las que escriben PARAN el turno hasta que alguien decida, como el HITL de deepagents. */
24
+ export declare const CON_APROBACION: {
25
+ enableTools: string[];
26
+ disableTools: never[];
27
+ preloadTools: never[];
28
+ requireApprovalForTools: ("read_file" | "ls" | "write_file" | "edit_file" | "glob" | "grep")[];
29
+ };
30
+ /** Las tools de FICHERO sobre nuestro backend, acotadas por `reglas`. */
31
+ export declare function capacidadDeFicheros(opciones: {
32
+ backend: BackendDeFicheros;
33
+ reglas: ReturnType<typeof permisosDe>;
34
+ tools: readonly ToolDeFichero[];
35
+ conAprobacion: boolean;
36
+ }): Capacidad;
37
+ /**
38
+ * Las tools propias de xonecode (`xone_navegacion`, `regex_search`…), adaptadas.
39
+ *
40
+ * `conAprobacion`: las de ESTE conjunto que paran el turno como `write_file` —`incorporar_adjunto` y
41
+ * `traer_fuente` (`PROPIAS_QUE_ESCRIBEN`), que escriben el proyecto por su cuenta tras el «sí»—. Omitido
42
+ * es «ninguna», que es lo de siempre para las que solo leen.
43
+ */
44
+ /** Las tools PROPIAS que escriben el proyecto por su cuenta, y por eso paran el turno a preguntar. */
45
+ export declare const PROPIAS_QUE_ESCRIBEN: readonly string[];
46
+ export declare function capacidadDePropias(tools: readonly ToolDeLangchain[], backend: EscritorDeDesalojo, conAprobacion?: readonly string[]): Capacidad;
47
+ /**
48
+ * Las tools de los conectores MCP del proyecto, de UNA clase (`toolsDeConectores.ts`): las de
49
+ * lectura sin aprobación, y el resto con aprobación TODAS (`@all`), porque lo que el servidor no
50
+ * declara de lectura escribe en la cuenta de la persona. `tools` va vacío: sus nombres salen de la
51
+ * red al primer `listTools`, no al montar.
52
+ */
53
+ export declare function capacidadDeConectores(conectores: ConectoresDeSesion, clase: ClaseDeTool, backend: EscritorDeDesalojo): Capacidad;
54
+ /** `execute`: la shell del que la declara en su `.md`, y de nadie más. */
55
+ export declare function capacidadDeEjecucion(conShell: {
56
+ execute(c: string): unknown;
57
+ write(ruta: string, contenido: string): unknown;
58
+ }, dispositivo?: () => DispositivoDeLaSesion | undefined): Capacidad;
59
+ /**
60
+ * El presupuesto de un PASO entero (`recortes.ts#recortarPaso`), que el recorte por resultado no
61
+ * ve: varias respuestas en paralelo que caben solas pero no juntas. No añade tools.
62
+ */
63
+ export declare function capacidadDeRecortes(backend: EscritorDeDesalojo): Capacidad;
64
+ /**
65
+ * Entrega lo que la sesión le deba a ESTE hilo mientras trabaja (IXCODE-4), por
66
+ * `preLLMProcessors` —corre antes de CADA llamada al modelo, en la raíz y en cada hijo por
67
+ * igual (`AgentThread.js:733-740`)—. No añade tools. `Nota`/`pendientesPara`/`marcarEntregada`
68
+ * viven en `notas.ts`, sin importar tipos internos de la librería: ni
69
+ * `PreLLMAgentContextProcessor` ni `AgentContextProcessorAppendContext` se reexportan desde su
70
+ * punto de entrada público.
71
+ *
72
+ * La orden de DETENER (`detencion.ts`) va por el MISMO procesador y no por otro: es la única
73
+ * pieza que corre antes de CADA llamada de cada hilo, y el control necesita contar las del raíz
74
+ * para saber de qué plan nació cada hijo.
75
+ */
76
+ export declare function capacidadDeNotas(notas: Nota[], opciones?: {
77
+ detencion?: ControlDeDetencion;
78
+ /** El nombre con que el raíz conoce a un hijo, para decirle a QUIÉN se le pasó una nota. */
79
+ nombreDe?: (threadId: string) => string;
80
+ hiloRaiz?: string;
81
+ }): Capacidad;
82
+ /**
83
+ * `get_current_datetime` de la librería: la fecha en UTC, para que «hoy» o «hace tres días» no se
84
+ * lo invente el modelo. No da la zona horaria local, y no se le atribuye.
85
+ */
86
+ export declare function capacidadDeFecha(): Capacidad;
87
+ /**
88
+ * Lo que OpenUI tiene que saber de ESTE harness, y que su prompt no dice. Va en CÓDIGO —en el
89
+ * prompt de quien tiene la skill `openui-builder`— porque vale para cualquier usuario y el modelo
90
+ * no siempre abre un `SKILL.md` (la lección medida de `artifacts-builder`, ver `agentesEnDisco.ts`):
91
+ * el prompt de la librería le pide que emita el bloque en su RESPUESTA, y la de un especialista
92
+ * la lee el orquestador. Y «elige UNO» porque se midió lo contrario: un turno real escribió el
93
+ * mismo panel en `.html` y en `.openui`, pagando el caro además del barato. Lo demás —cuándo usarlo
94
+ * y cómo no fallar— vive en la skill, que el usuario puede copiar y editar como cualquier otra.
95
+ */
96
+ export declare const REGLAS_DE_OPENUI: string;
97
+ /** El nombre de la skill que TRAE OpenUI: quien la tiene recibe la tool que la skill necesita. */
98
+ export { SKILL_DE_OPENUI } from "../../../core/agentes.js";
99
+ /**
100
+ * OpenUI para quien tiene la skill `openui-builder`: la tool de la librería que carga sus
101
+ * instrucciones BAJO DEMANDA (unos 5.000 tokens que no viajan en cada llamada) y, al lado, las
102
+ * reglas del harness. **La skill explica y esto monta lo que la skill necesita**, igual que un
103
+ * builder del usuario: lo decide la skill que declara su `.md`, no el nombre de otra skill.
104
+ */
105
+ export declare function capacidadDeOpenui(): Capacidad;
106
+ /**
107
+ * Las instrucciones de un HIJO en su prompt de SISTEMA. La librería IGNORA el `instruction` de un
108
+ * hijo (`buildInstruction`, `!this.parent`): a su sistema solo llegan los `instructionBuilders`.
109
+ * En el primer mensaje, una compactación —que sustituye el contexto entero— se las llevaría.
110
+ */
111
+ export declare function capacidadDeInstrucciones(texto: string): Capacidad;
112
+ /** Las tools que suman unas piezas, en orden: de aquí sale la nota del hijo. */
113
+ export declare function toolsDe(capacidades: readonly Capacidad[]): string[];
114
+ /** Las `AgentCapability` que recibe TrueForge. */
115
+ export declare function capabilitiesDe(capacidades: readonly Capacidad[]): Record<string, unknown>[];
116
+ /**
117
+ * Qué CLASE de especialista es, por lo que declara su `.md` — la partición de deepagents
118
+ * (`perfiles.ts#toolsDe` y `montajeDeFicheros`):
119
+ * - quien EJECUTA: lectura + `execute`, y nada de escribir (la shell no pasa por los permisos,
120
+ * así que el camino normal de tocar el proyecto sigue siendo el de la aprobación);
121
+ * - quien solo lee: las seis SIN aprobación, porque `permisosDe` lo confina a lo que no es el
122
+ * proyecto —`/artefactos/` y `/planes/`, que es donde el analista deja su plan—: en deepagents
123
+ * `hitlDe` le devuelve `{}` por lo mismo;
124
+ * - el resto: las seis, con `write_file`/`edit_file` pidiendo aprobación y `permisosDe` acotando
125
+ * (`escribeEn` incluido).
126
+ */
127
+ export declare function clasesDeTools(agente: Pick<Agente, "soloLectura" | "ejecucion">): "ejecuta" | "lee" | "escribe";
128
+ /**
129
+ * `create_sub_agent` para un HIJO: la misma delegación que tiene el raíz, dada a quien su `.md` declara que puede
130
+ * llamar a otro (`llama`). La librería crea el nieto igual que cualquier hijo y su respuesta vuelve a quien lo
131
+ * llamó. El nombre no se restringe aquí —el esquema de la tool es un texto libre—: lo hace la fábrica de hijos de la
132
+ * sesión, que no concede a quien no está en su lista.
133
+ */
134
+ export declare function capacidadDeSubagentes(): Capacidad;
135
+ /**
136
+ * Avisa a quien lleva un LAZO (escribir, comprobar, corregir) de cuántas comprobaciones lleva, por
137
+ * `preLLMProcessors`: al llegar a cada umbral se le añade UN mensaje de usuario, y no otro más hasta el siguiente.
138
+ *
139
+ * Existe porque «tres vueltas» estaba solo en el prompt del desarrollador y una pasada real hizo seis llamadas al
140
+ * conductor: un texto no es un contador. Y el aviso no dice «para», dice «cambia de procedimiento»: repetir la
141
+ * misma familia de fallo con otra reescritura completa es lo que se vio (un control que falta, y al arreglarlo,
142
+ * otro), y lo que hay que hacer es aislar la causa, no cortar. No añade tools.
143
+ */
144
+ export declare function capacidadDeAvisoDeVueltas(opciones: {
145
+ vueltasDe: (hilo: string) => number;
146
+ umbrales: readonly number[];
147
+ texto: (vueltas: number) => string;
148
+ }): Capacidad;
149
+ /** Lo que el backend y las tools de la sesión ponen para montar a un especialista. */
150
+ export interface DependenciasDelEspecialista {
151
+ backend: BackendDeFicheros & EscritorDeDesalojo;
152
+ /** Las tools propias que le tocan a ESTE agente (el reparto vive en la sesión). */
153
+ propias: (agente: Agente) => readonly ToolDeLangchain[];
154
+ /** El backend CON shell, montado solo para quien ejecuta. */
155
+ conShell: () => {
156
+ execute(c: string): unknown;
157
+ write(ruta: string, contenido: string): unknown;
158
+ };
159
+ /** El aparato de la sesión para la guarda del `execute` (IXCODE-32). Ausente = ninguno elegido. */
160
+ dispositivo?: () => DispositivoDeLaSesion | undefined;
161
+ /** La cola de notas de la SESIÓN, ya envuelta: la misma instancia para todos los hijos. */
162
+ notas: Capacidad;
163
+ /** ¿Puede ESTE agente llamar a otros? Lo decide la sesión (su `.md` y el interruptor); ausente es que no. */
164
+ puedeLlamar?: (agente: Agente) => boolean;
165
+ /** El aviso de vueltas de ESTE agente, si lleva un lazo. Ausente es que no lo lleva. */
166
+ vueltas?: (agente: Agente) => Capacidad | undefined;
167
+ /** Lo que escribieron los hijos que ESTE agente llame (`informesDeHijos.ts`): solo para quien puede llamar. */
168
+ informes?: Capacidad;
169
+ /** Las tools de los conectores MCP que le tocan a ESTE agente (el reparto vive en la sesión). */
170
+ conectores?: (agente: Agente) => readonly Capacidad[];
171
+ /**
172
+ * Sin nadie a quien preguntar (una TAREA de fondo): sus escrituras LOCALES no paran el turno a pedir aprobación. Una
173
+ * aprobación solo se atiende cuando la librería devuelve el control, y medido en Maset las del diseñador esperaron
174
+ * todo lo que tardó el analista (un Claude Code de una sola llamada larga) aunque en una tarea se aprueban solas. Las
175
+ * guardas de ruta siguen enteras; las escrituras de los CONECTORES siguen parando (en una tarea se rechazan).
176
+ */
177
+ escribeSinPreguntar?: boolean;
178
+ }
179
+ /**
180
+ * Las piezas de un especialista —o del hijo genérico, si el nombre no es de ninguno—, sin sus
181
+ * instrucciones: esas se escriben con la lista de tools que salga de aquí.
182
+ */
183
+ export declare function capacidadesDelEspecialista(agente: Agente | undefined, nombrePedido: string, deps: DependenciasDelEspecialista): Capacidad[];
@@ -0,0 +1,38 @@
1
+ import { z } from "zod";
2
+ import { NOMBRE_CONVERTIR_A_P } from "../../../core/convertirAP.js";
3
+ import type { Agente } from "../../../core/agentes.js";
4
+ export { NOMBRE_CONVERTIR_A_P };
5
+ /**
6
+ * `convertir_a_p`: las medidas de una maqueta (px CSS) a la `p` de XOne (`core/convertirAP.ts` tiene el porqué y la
7
+ * cuenta). **Pura, de LECTURA y sin red**, solo en TrueForge, y a quien escribe el proyecto (la regla de dato de
8
+ * `buscar_icono`: el desarrollador y el diseñador).
9
+ *
10
+ * Los dos datos de la cuenta NO entran por parámetro salvo el ancho de la maqueta cuando su imagen no lo deja claro:
11
+ * el `resolution-width` se lee del `app.xml` de la RAÍZ, fijada al construir —como `xone_navegacion`, nunca una ruta
12
+ * que elija el modelo—, y el ancho de la maqueta, de la misma maqueta que mide el harness (`buscarMaqueta`). Un
13
+ * rechazo se DEVUELVE como texto, nunca se lanza.
14
+ */
15
+ export declare const recibeConvertirAP: (agente: Agente) => boolean;
16
+ export declare function crearConvertirAP(opciones: {
17
+ raiz: string;
18
+ artefactos?: string;
19
+ adjuntos?: string;
20
+ }): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
21
+ medidas: z.ZodArray<z.ZodObject<{
22
+ nombre: z.ZodString;
23
+ px: z.ZodCoercedNumber<unknown>;
24
+ }, z.core.$strip>>;
25
+ ancho_maqueta: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
26
+ }, z.core.$strip>, {
27
+ medidas: {
28
+ nombre: string;
29
+ px: number;
30
+ }[];
31
+ ancho_maqueta?: number | undefined;
32
+ }, {
33
+ medidas: {
34
+ nombre: string;
35
+ px: unknown;
36
+ }[];
37
+ ancho_maqueta?: unknown;
38
+ }, string, unknown, "convertir_a_p">;