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,269 @@
1
+ /**
2
+ * Política de contexto del harness.
3
+ *
4
+ * DeepAgents usa 170k tokens cuando el proveedor no publica su ventana de contexto. Con
5
+ * Ollama eso retrasa demasiado la compresión y cada llamada reenvía lecturas ya resueltas.
6
+ * Este umbral es independiente del proveedor: limita el coste sin borrar el trabajo reciente.
7
+ */
8
+ import { type FilesystemBackend } from "deepagents";
9
+ import { createMiddleware } from "langchain";
10
+ import { z } from "zod";
11
+ import { HumanMessage } from "@langchain/core/messages";
12
+ export declare const UMBRAL_RESUMEN_TOKENS = 32000;
13
+ export declare const CONTEXTO_RECIENTE_TOKENS = 8000;
14
+ /**
15
+ * El prompt del resumen, en CASTELLANO y pidiendo markdown.
16
+ *
17
+ * El de deepagents está en inglés, y el resumen no es un texto interno: se le enseña a la
18
+ * persona en su propio plegable («Resumen del contexto», ver `ETIQUETA_DEL_RESUMEN`). Medido en
19
+ * MyAllXOne: salía un `## Summary` / `**Task:**` / `Key facts established:` en mitad de una
20
+ * conversación en castellano. `{conversation}` es el hueco que la librería rellena.
21
+ *
22
+ * Lo que NO se le pide aquí es que conserve el encargo: eso lo hace el CÓDIGO
23
+ * (`conservarElEncargo`), porque un resumen que a veces lo pierde ya costó millones de tokens.
24
+ */
25
+ export declare const PROMPT_DEL_RESUMEN = "Eres el encargado de resumir una conversaci\u00F3n de trabajo sobre una aplicaci\u00F3n XOne para que el agente pueda seguir sin releerla. Escribe EN CASTELLANO y en markdown legible (t\u00EDtulos cortos y listas), y recoge:\n1. Qu\u00E9 se est\u00E1 haciendo y para qu\u00E9.\n2. Los hechos ya comprobados, con fichero y l\u00EDnea cuando los haya.\n3. Las decisiones tomadas y lo que queda pendiente.\n\nS\u00E9 concreto y breve. No inventes nada que no est\u00E9 en la conversaci\u00F3n.\n\nConversaci\u00F3n a resumir:\n{conversation}\n\nResumen:";
26
+ export declare function resumenDeContexto(backend: FilesystemBackend): import("langchain").AgentMiddleware<z.ZodObject<{
27
+ _summarizationSessionId: z.ZodOptional<z.ZodString>;
28
+ _summarizationEvent: z.ZodOptional<z.ZodObject<{
29
+ cutoffIndex: z.ZodNumber;
30
+ summaryMessage: z.ZodCustom<HumanMessage<import("@langchain/core/messages").MessageStructure<import("@langchain/core/messages").MessageToolSet>>, HumanMessage<import("@langchain/core/messages").MessageStructure<import("@langchain/core/messages").MessageToolSet>>>;
31
+ filePath: z.ZodNullable<z.ZodString>;
32
+ }, z.core.$strip>>;
33
+ }, z.core.$strip>, undefined, unknown, readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[], readonly []>;
34
+ /**
35
+ * Devuelve el ENCARGO a la conversación después de que el resumen se lo lleve.
36
+ *
37
+ * ## El fallo que cierra, medido offline el 17-09-2026
38
+ *
39
+ * Un turno real del usuario: el orquestador delegó una pregunta sobre si XOne servía para un
40
+ * CRM, el especialista dio 57 pasos y volvió con la respuesta de la pregunta **anterior** —«la
41
+ * ventana de inicio de mi app»—. El orquestador lo detectó y relanzó dos veces: 1,5M de tokens
42
+ * para una pregunta. El propio modelo dijo que «parece que trae una sesión antigua pegada», y
43
+ * esa hipótesis era falsa: los subagentes van en `handoff`, así que arrancan con el encargo y
44
+ * nada más, y aunque HEREDAN nuestro checkpointer, el namespace de cada `task` lleva el paso y
45
+ * el id del checkpoint dentro, así que no puede reanudar nada.
46
+ *
47
+ * Lo que pasa de verdad está en el middleware de resumen: al cruzar el umbral, los mensajes
48
+ * `[0, corte)` se sustituyen por UN resumen, y el mensaje 0 es justamente el encargo. `keep`
49
+ * solo conserva la COLA —no hay opción para el primero— y el prompt de resumen por omisión
50
+ * pide «temas, decisiones y contexto para continuar», no el encargo. O sea que a partir de los
51
+ * 32k el especialista sigue trabajando **sin la pregunta que le hicieron**, y contesta a lo que
52
+ * el resumen le deje entender. Medido en `resumenDeContexto.test.ts`.
53
+ *
54
+ * ## Por qué por CÓDIGO y no por `summaryPrompt`
55
+ *
56
+ * Se podría pedir en el prompt del resumen que conserve el encargo, y a veces lo haría. Un
57
+ * agente que pierde su encargo no contesta peor: contesta a otra cosa, y el coste de eso ya
58
+ * está medido en millones de tokens. Es la misma regla que hace que los avisos de honestidad
59
+ * sean código y no prompt (`core/bitacora.ts`).
60
+ *
61
+ * El encargo se saca del ESTADO, que el resumen no reescribe (guarda un `_summarizationEvent`
62
+ * y reconstruye la lista efectiva), así que ahí sigue intacto el mensaje 0. Y se reinserta solo
63
+ * si NO está: por debajo del umbral no hay nada que devolver y duplicarlo sería peor.
64
+ */
65
+ export declare function conservarElEncargo(): import("langchain").AgentMiddleware<undefined, undefined, unknown, readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[], readonly []>;
66
+ /**
67
+ * El resumen y la devolución del encargo, SIEMPRE juntos y en este orden.
68
+ *
69
+ * Van en una sola función porque separarlos es el fallo: el primero de la lista envuelve al
70
+ * siguiente, así que `conservarElEncargo` tiene que ver los mensajes YA resumidos — delante no
71
+ * habría nada que devolver. Montarlos a mano en dos sitios (el orquestador y cada especialista)
72
+ * es el patrón que en este repo ha fallado nueve veces: una composición de producción que vive
73
+ * en un cierre que los tests doblan, y que puede dejar de estar montada con todo en verde.
74
+ */
75
+ export declare function resumenConEncargo(backend: FilesystemBackend): ReturnType<typeof createMiddleware>[];
76
+ /**
77
+ * La marca que distingue, en el stream, la llamada del RESUMEN de la respuesta del agente.
78
+ *
79
+ * deepagents resume llamando al MISMO modelo del agente (`request.model`, que gana sobre el
80
+ * `model` de sus opciones) dentro del MISMO nodo, así que sus chunks llegaban al puente con el
81
+ * mismo namespace, el mismo nodo y ninguna etiqueta: indistinguibles de la respuesta. El puente
82
+ * los pintaba en el chat y el `.jsonl` los guardaba como un mensaje del asistente — medido en
83
+ * MyAllXOne, un `## Summary` en inglés a mitad de la conversación.
84
+ *
85
+ * Con la etiqueta, el puente los saca de la respuesta y los manda a su propio acto (`resumen`),
86
+ * que el cliente pliega como «Verificaciones» o «Permisos». Una ETIQUETA y no una heurística
87
+ * sobre el texto por la regla de siempre: la clase viaja como dato.
88
+ */
89
+ export declare const ETIQUETA_DEL_RESUMEN = "xonecode:resumen";
90
+ /**
91
+ * Cuántas llamadas al modelo puede gastar UN especialista en un encargo.
92
+ *
93
+ * Medido el 17-09-2026 con el banco: una pregunta de estructura se resuelve en 3-7 llamadas en
94
+ * TODO el turno, y la de capacidad —la clase cara— la terminó bien un modelo en 10. El que se
95
+ * descarriló llevaba 32 y subiendo cuando el reloj lo mató, y 57 en el turno que lo destapó.
96
+ *
97
+ * **No es un ahorro, es una frontera.** Un especialista hace una tarea específica con un
98
+ * encargo bien descrito; si necesita cuarenta llamadas, lo que falla es la delegación, y seguir
99
+ * dándole cuerda solo hace más cara la misma respuesta mala.
100
+ *
101
+ * ## Por qué ya no es 15: aquella medida era de PREGUNTAS, y no todos contestan preguntas
102
+ *
103
+ * Las cifras de arriba salieron del banco, que pregunta. Y a un especialista que además
104
+ * ESCRIBE no le valen: medido el 21-09-2026 sobre MyAllXOne con un encargo de desarrollo de
105
+ * varios pasos, `analyst-xone` se delegó dos veces, **agotó las 15 las dos veces y no escribió
106
+ * ni un fichero**. No se descarriló ni entendió mal el encargo —en sus llamadas 2 y 3 abrió
107
+ * `xone-spec-builder` y `xone-plan-builder`, o sea que sabía que tenía que dejar un plan—:
108
+ * se le fue el presupuesto ORIENTÁNDOSE, y la fase de escribir, que es el entregable, no
109
+ * llegó a empezar. `developer-xone` se quedó cortado en el mismo turno.
110
+ *
111
+ * Un tope calibrado sobre «leer y contestar» aplicado a «leer y ENTREGAR» corta el trabajo
112
+ * justo antes de que produzca algo, y encima en silencio: el síntoma es un plan que no
113
+ * existe, no un error. El número cubre una pasada entera de reconocimiento (~15, medido) más
114
+ * las lecturas de sus skills y los tres ficheros que deja: es un freno por encima de una
115
+ * entrega y no por debajo (y hoy está en 100, ver abajo).
116
+ *
117
+ * ## Y SUBIRLO NO BASTA — se probó el mismo día y hay que decirlo aquí
118
+ *
119
+ * Con 15 el analista gastaba 15 y no escribía; con 30 gastó **30 y tampoco escribió**, dos
120
+ * pasadas otra vez, y el turno costó un 30 % más (~950k → ~1,24M efectivos) para el mismo
121
+ * resultado: cero `write_file`, cero `/planes/`. **Expande el reconocimiento hasta llenar lo
122
+ * que le des** — con 30 llamadas se fue a `LoginColl`, `ContentTareas`, `ClientesCoord` y
123
+ * `basico.css` para un conversor de divisas.
124
+ *
125
+ * O sea que el presupuesto **no era la restricción que ataba**, y este número no es el
126
+ * arreglo de nada: lo que ata es que escribir está planteado como el ÚLTIMO paso, y eso se
127
+ * arregla donde vive esa instrucción (`agentesEnDisco.ts#PLAN_DE_DESARROLLO`), no aquí. Esto
128
+ * se queda porque una entrega no cabía en 15 y sigue sin caber; no porque cure el síntoma.
129
+ */
130
+ export declare const TOPE_DE_LLAMADAS_DEL_ESPECIALISTA = 100;
131
+ /**
132
+ * El de quien CONDUCE UN APARATO, que es otro trabajo y por eso otro número.
133
+ *
134
+ * El 15 de arriba se midió sobre especialistas que LEEN y contestan: ahí treinta llamadas
135
+ * significan que la delegación estaba mal escrita. Conducir no es eso — es un bucle de
136
+ * acto→observa donde cada paso (conectar, listar controles, pulsar, esperar, capturar,
137
+ * leer el log) es una llamada al modelo POR CONSTRUCCIÓN, y no hay encargo, por bien
138
+ * escrito que esté, que lo acorte.
139
+ *
140
+ * **Medido en un turno real** (MyAllXOne, «crear una opción nueva en el drawer»): el
141
+ * conductor se delegó SIETE veces en el mismo turno, cada una agotando su tope, ~94
142
+ * comandos en total. El tope no evitó el gasto: lo partió en siete arranques, y como los
143
+ * especialistas no comparten transcript, cada uno volvió a conectar y a orientarse desde
144
+ * cero. Un tope que se rodea re-delegando no acota nada, solo añade amnesia.
145
+ *
146
+ * Sigue habiendo tope, y por lo mismo de siempre: un bucle sin freno se come el turno. Lo
147
+ * que cambia es dónde está el freno — por encima de UNA navegación completa y no por
148
+ * debajo.
149
+ */
150
+ export declare const TOPE_DE_LLAMADAS_DEL_CONDUCTOR = 150;
151
+ /**
152
+ * El tope, NUESTRO y no el de la librería.
153
+ *
154
+ * `modelCallLimitMiddleware` cuenta bien y corta bien, pero lo que deja como respuesta es un
155
+ * `AIMessage` con su frase en inglés —«Model call limits exceeded: …»—, y el `task` de
156
+ * deepagents devuelve SOLO el último mensaje (`extractLastMessage`). O sea que quien delegó
157
+ * recibe esa frase y **las quince llamadas de trabajo se pierden**: medido el 19-09-2026,
158
+ * 100-160k de entrada por especialista devolviendo menos de 900 tokens. Esa es la razón de que
159
+ * el orquestador encadene al siguiente — no enruta mal, es que no recibe nada con lo que seguir.
160
+ *
161
+ * No se pudo arreglar por fuera: su `jumpTo: "end"` **cortocircuita todos los middlewares
162
+ * posteriores**, incluidos `afterAgent` y su propio reset del contador (medido contra la
163
+ * librería real con `FakeToolCallingModel` y `runLimit: 0`, ver el test). No hay dónde
164
+ * engancharse. Así que el contador, la decisión y el mensaje son de aquí: uno de cada, y el
165
+ * mensaje se compone en `core/` donde se puede probar sin librería.
166
+ *
167
+ * `exitBehavior` sigue siendo «terminar» y no «lanzar», por el argumento de siempre: con un
168
+ * error la delegación entera se cae y el orquestador se queda sin nada, que es como empieza el
169
+ * bucle de reintentos que costó 1,5M de tokens.
170
+ */
171
+ export declare function topeDeLlamadas(limite?: number, alCortar?: () => void): ReturnType<typeof createMiddleware>;
172
+ /**
173
+ * Cuántas TOOLS puede gastar un especialista en un encargo.
174
+ *
175
+ * El tope de llamadas al modelo acota los VIAJES; este acota **lo que se acumula**, que es lo
176
+ * que multiplica. Medido el 17-09-2026 en una conversación de tres preguntas: en la tercera, el
177
+ * consultor llegó a 43 resultados de tool metidos en su contexto, y como cada llamada al modelo
178
+ * reenvía todo lo anterior, la primera costó 5.264 tokens y la última 39.888 — 406k en total. No
179
+ * era un bucle: era la acumulación al cuadrado.
180
+ *
181
+ * ## Por qué ya no es 20, y qué NO cambia
182
+ *
183
+ * Aquel veinte era generoso contra la regla del CONSULTOR, que ya le pide «máximo tres
184
+ * referencias por pregunta y un `grep` por hipótesis». Pero el consultor contesta, y hay
185
+ * especialistas que ENTREGAN: medido el 21-09-2026, `analyst-xone` gastó su pasada entera
186
+ * inventariando (`glob *.xne`, `mappings.xne` paginado, `regex_search create table`, greps de
187
+ * `SqlManager`) y se quedó sin tools antes de escribir el plan — ver
188
+ * `TOPE_DE_LLAMADAS_DEL_ESPECIALISTA`, donde está la medida entera.
189
+ *
190
+ * Lo que NO cambia es el motivo por el que este tope existe, que es la acumulación y no el
191
+ * bucle: cada llamada reenvía todo lo anterior, así que esto sigue siendo cuadrático y sigue
192
+ * habiendo techo. El número nuevo cubre un reconocimiento completo más la escritura del
193
+ * entregable y se queda por debajo del orquestador; el 43 de aquel incidente sigue fuera.
194
+ *
195
+ * ## Por qué ya no es 35: el tope bloqueaba la ENTREGA (23-09-2026)
196
+ *
197
+ * Medido en MyAllXOne, «una calculadora a partir de una maqueta de Stitch»: el developer gastó
198
+ * 39, 39 y 49 tools en tres encargos y **ninguno escribió**. Con `continue`, al agotarse, el
199
+ * tope bloquea TODA tool que venga después, y eso incluye `write_file` y `edit_file`: el
200
+ * especialista explora hasta el techo y cuando va a crear el `.xne` se lo rechazan. Se pagaba
201
+ * el reconocimiento entero (1,17M de entrada solo el developer) y no salía nada; el
202
+ * orquestador lo leía como «se quedan sin turnos explorando» y re-delegaba, que es el mismo
203
+ * reconocimiento otra vez desde cero.
204
+ *
205
+ * **Así que deja de ser una economía y pasa a ser un GUARDA**, como el del orquestador: por
206
+ * encima de lo observado, para que no muerda en un encargo normal y solo pare uno desbocado.
207
+ * Lo que sigue acotando de verdad es el tope de LLAMADAS, que con tools en paralelo llega
208
+ * antes. **Y por eso ya no está por debajo del del orquestador**: esa relación tenía sentido
209
+ * mientras este número era un presupuesto de trabajo.
210
+ *
211
+ * La alternativa que se descartó, para no rediscutirla: excluir las escrituras del conteo
212
+ * (un middleware propio, porque el de langchain no sabe excluir). Arreglaba el bloqueo de la
213
+ * entrega sin tocar el número; se prefirió el tope alto, que es su criterio de siempre —los
214
+ * topes se ponen altos para que no muerdan—.
215
+ */
216
+ export declare const TOPE_DE_TOOLS_DEL_ESPECIALISTA = 150;
217
+ /**
218
+ * **`continue`, y NO `end`: son incompatibles con pedir varias tools a la vez.**
219
+ *
220
+ * Medido el 17-09-2026 en el primer turno con el tope puesto: «Cannot end execution with other
221
+ * tool calls pending. Found calls to: read_file, ls, grep». La documentación de langchain lo
222
+ * dice igual —`end` «raises NotImplementedError if there are multiple tool calls»— y nosotros le
223
+ * PEDIMOS al especialista que agrupe las lecturas independientes en un mismo mensaje, así que
224
+ * llegar al tope con varias en vuelo es el caso normal, no el raro.
225
+ *
226
+ * `continue` bloquea las que sobran con un mensaje de error y deja que el modelo termine: se
227
+ * queda sin más tools y contesta con lo que tiene, que es lo mismo que buscaba `end` pero sin
228
+ * romperse. `error` tumbaría la delegación entera, que es como empieza el bucle de reintentos.
229
+ *
230
+ * Dos reglas nuestras que vivían sin hablarse —«agrupa las tools» y «corta al llegar al tope»—
231
+ * y cuyo choque solo se ve corriendo. Por eso el test las ata juntas.
232
+ */
233
+ export declare const SALIDA_DEL_TOPE_DE_TOOLS: "continue";
234
+ /**
235
+ * Cuántas TOOLS puede gastar el ORQUESTADOR, y **es un guarda, no una economía**.
236
+ *
237
+ * ## Por qué NO lleva tope de LLAMADAS, y esto sí
238
+ *
239
+ * El argumento contra caparle las llamadas sigue en pie y es bueno: **el que contesta al
240
+ * usuario no puede quedarse a medias**. Pero ese argumento es sobre no cortarle la VOZ, y el
241
+ * tope de tools con `exitBehavior: "continue"` no corta nada — se queda sin más tools y
242
+ * contesta con lo que tenga. Le quita la pala, no la palabra.
243
+ *
244
+ * ## Por qué el número es ALTO, y qué NO es
245
+ *
246
+ * **No está puesto para ahorrar.** Medido el 19-09-2026 sobre turnos reales, el orquestador
247
+ * gasta 41 tools en un encargo visual normal —18 lecturas, 15 `grep`, 5 de navegación y 3
248
+ * delegaciones— y sus llamadas al modelo van de 14 a 49 según el turno. Esas lecturas SON el
249
+ * trabajo: recortarlas no abarata el turno, empeora la respuesta. Lo que abarata es quitarle la
250
+ * NECESIDAD de leer, que es lo que hacen `conHechosDelProyecto` y la operación `estilos` — y se
251
+ * está moviendo: la navegación pasó de 1-2 usos por turno a 5.
252
+ *
253
+ * Así que esto se sitúa POR ENCIMA de lo observado a propósito: no muerde en ningún turno
254
+ * medido y solo para uno desbocado. Es el mismo papel que `topeDeRondas` y el tope propio de
255
+ * los artefactos — «aquí no hay humano que frene el bucle»—, y por eso vive aquí y no en una
256
+ * medida de coste. Si algún día muerde en un turno normal, lo que hay que mirar es por qué ese
257
+ * turno necesitó 60 tools, no subir el número.
258
+ */
259
+ export declare const TOPE_DE_TOOLS_DEL_ORQUESTADOR = 60;
260
+ export declare function topeDeTools(limite?: number): import("langchain").AgentMiddleware<import("zod/v3").ZodObject<{
261
+ threadToolCallCount: import("zod/v3").ZodDefault<import("zod/v3").ZodRecord<import("zod/v3").ZodString, import("zod/v3").ZodNumber>>;
262
+ runToolCallCount: import("zod/v3").ZodDefault<import("zod/v3").ZodRecord<import("zod/v3").ZodString, import("zod/v3").ZodNumber>>;
263
+ }, "strip", import("zod/v3").ZodTypeAny, {
264
+ threadToolCallCount: Record<string, number>;
265
+ runToolCallCount: Record<string, number>;
266
+ }, {
267
+ threadToolCallCount?: Record<string, number> | undefined;
268
+ runToolCallCount?: Record<string, number> | undefined;
269
+ }>, undefined, unknown, readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[], readonly []>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * La LISTA BLANCA de la línea de estado: qué argumento de cada tool puede salir como
3
+ * `detalle` del evento `tool`.
4
+ *
5
+ * La regla dura está documentada en `core/events.ts`: ningún evento lleva argumentos de
6
+ * tool crudos, porque `write_file` lleva el contenido del fichero y una tool MCP lleva
7
+ * el bearer — enseñar el progreso no puede ser la forma de filtrar un secreto. Este
8
+ * módulo es la otra mitad de esa regla: no se FILTRA nada, se ELIGE a mano un campo por
9
+ * tool — una ruta o un patrón, nunca contenido — y lo que no está en la tabla no sale.
10
+ * Los nombres de campo son los de las tools de fichero de deepagents, verificados
11
+ * contra su dist (`file_path` con `path` normalizado, `pattern` en glob/grep).
12
+ */
13
+ /** Valores escalares que una traza local puede conservar sin volcar contenido. */
14
+ export type ParametrosSeguros = Record<string, string | number | boolean>;
15
+ /**
16
+ * Campos permitidos por tool. Es una lista blanca deliberada: ni `content`,
17
+ * ni `old_string`/`new_string`, ni la descripción de `task` llegan a disco.
18
+ *
19
+ * Los parámetros de paginación y acotación son justo los que necesitamos para
20
+ * detectar una lectura masiva o una búsqueda mal afinada.
21
+ */
22
+ export declare const CAMPOS_SEGUROS: Record<string, readonly string[]>;
23
+ /** Argumentos acotados y seguros para la traza opt-in de diagnóstico. */
24
+ /** Huella corta y estable de un texto. No reversible: solo sirve para comparar dos. */
25
+ export declare function huellaDeTexto(texto: string): string;
26
+ export declare function parametrosDe(nombre: string, args: unknown): ParametrosSeguros | undefined;
27
+ /**
28
+ * El `detalle` de una llamada, o `undefined` si no hay nada permitido que contar.
29
+ *
30
+ * Los argumentos llegan como objeto o como cadena JSON (así viajan en las
31
+ * `tool_calls`); un JSON roto es una tool rota, no una excepción que tumbe el turno.
32
+ */
33
+ export declare function detalleDe(nombre: string, args: unknown): string | undefined;
@@ -0,0 +1,35 @@
1
+ import { createMiddleware } from "langchain";
2
+ import { type Calificacion, type EstadoDeRubrica } from "../../core/rubrica.js";
3
+ /**
4
+ * Quién juzga. **Un PUERTO y no un modelo construido dentro**, que es la diferencia con el
5
+ * original de Python: así el bucle entero se prueba sin red y sin clave, que es el invariante
6
+ * que sostiene el diseño de este repo. Quien lo implemente con un modelo de verdad vive fuera.
7
+ *
8
+ * Recibe el transcript tal cual y la rúbrica. Devolver es obligatorio: si no puede juzgar, que
9
+ * lance — el bucle distingue «no cumple» de «no se pudo juzgar», y son dos cosas distintas.
10
+ */
11
+ export type Calificador = (mensajes: readonly unknown[], rubrica: string) => Promise<Calificacion>;
12
+ /**
13
+ * El bucle de rúbrica, portado del `RubricMiddleware` de deepagents (que está en su SDK de
14
+ * Python y no en el de JS).
15
+ *
16
+ * En la parada natural del agente —el modelo contesta sin pedir más tools— se juzga lo hecho
17
+ * contra la rúbrica. `necesita-revision` mete el comentario como mensaje y **salta de vuelta al
18
+ * modelo** (`jumpTo: "model"`, que el langchain de JS admite desde `afterAgent`); cualquier otro
19
+ * veredicto cierra.
20
+ *
21
+ * **Sin rúbrica no hace NADA**, igual que el original, y por eso se puede montar siempre: un
22
+ * turno normal no paga ni una llamada. Lo que decide si hay bucle es el dato, no una bandera.
23
+ *
24
+ * **Y a diferencia del original, un final no satisfecho SE DICE**: allí el estado vive en un
25
+ * campo privado y la última respuesta sigue siendo la del modelo —que puede estar afirmando que
26
+ * terminó—. Aquí se apila el aviso, que es la misma regla que hizo falta en el tope de llamadas.
27
+ *
28
+ * `alEvaluar` existe para que el harness pueda enseñarlo donde una persona lo vea: un mensaje
29
+ * apilado llega al transcript, pero no a la pantalla.
30
+ */
31
+ export declare function middlewareDeRubrica(opciones: {
32
+ calificar: Calificador;
33
+ tope?: number;
34
+ alEvaluar?: (estado: EstadoDeRubrica, vuelta: number) => void;
35
+ }): ReturnType<typeof createMiddleware>;
@@ -0,0 +1,89 @@
1
+ /**
2
+ * El contrato de una sesión de turno real, que cumplen LOS DOS motores —deepagents
3
+ * (`turnoReal.ts#abrirSesionReal`) y TrueForge (`motores/trueforge/sesionTrueforge.ts`)—.
4
+ *
5
+ * Vive aparte, y no en `turnoReal.ts`, porque los dos lo necesitan y `turnoReal.ts` es quien
6
+ * elige el motor: si el contrato viviera allí, TrueForge tendría que importar a quien lo importa
7
+ * a él, que es el ciclo que había (`src/ciclos.test.ts` lo vigila).
8
+ */
9
+ import type { Piel } from "../../core/turno.js";
10
+ import type { Bitacora } from "../../core/bitacora.js";
11
+ import type { ConsumoDeSesionPorCuenta, ModelosPort } from "../../core/ports.js";
12
+ import type { ResultadoDeTurno } from "../../core/entrega.js";
13
+ import type { TokenTracker } from "../../vendor/tokenTracking.js";
14
+ import type { Cambio } from "./instantanea.js";
15
+ /**
16
+ * Una sesión de turno real: varios turnos sobre el MISMO agente y el MISMO hilo.
17
+ *
18
+ * Es la extracción de `correrReal` (`cli/run.ts`), reescrita de disparo único a reutilizable:
19
+ * el agente, el checkpointer, el tracker y el `thread_id` viven en el cierre de
20
+ * `abrirSesionReal` y se conservan entre llamadas. Lo que cada `turno()` renueva es la foto
21
+ * del ANTES, porque el diff es del TURNO y no de la sesión: si la foto fuese una por sesión,
22
+ * el turno 3 reportaría también lo que escribió el turno 1.
23
+ */
24
+ export interface SesionReal {
25
+ /**
26
+ * Un turno. Devuelve la bitácora, los cambios que dejó en el proyecto y **lo que hay que
27
+ * saber para decidir si el trabajo se puede dar por bueno** (`ResultadoDeTurno`).
28
+ *
29
+ * Esas tres últimas cosas —cómo acabó el verificador, cuántas escrituras quedaron sin
30
+ * aplicar y los hallazgos— no estaban, y su ausencia era una deuda MEDIDA: con las
31
+ * tareas de fondo aplicando escrituras solas, un turno se cortó por el tope de rondas
32
+ * con cuatro ficheros escritos, una escritura abandonada, el verificador sin correr ni
33
+ * una vez… y el kanban diciendo «terminada». La bitácora no sirve para esto: `corrio`
34
+ * responde si un nodo pasó, no con qué veredicto.
35
+ */
36
+ turno(peticion: string, piel: Piel): Promise<ResultadoDeTurno & {
37
+ bitacora: Bitacora;
38
+ cambios: Cambio[];
39
+ /** Se agotó el tope de rondas con aprobaciones sin resolver. */
40
+ cortadoPorTope: boolean;
41
+ }>;
42
+ /** Rehace el agente con modelos nuevos, CONSERVANDO el hilo. Para `/modelo`. */
43
+ cambiarModelos(modelos: ModelosPort): Promise<void>;
44
+ /** Abre un hilo nuevo. Para `/nuevo`. */
45
+ /**
46
+ * Abre un hilo nuevo. **Acepta el id** porque quien lo pide puede ya tener uno.
47
+ *
48
+ * Sin el parámetro había DOS ids para un mismo hilo: la consola generaba el suyo en su
49
+ * `/nuevo` y la sesión otro aquí, así que `/hilo` enseñaba un `thread_id` que no era el
50
+ * que usaba el grafo. Un identificador que no identifica es peor que no darlo.
51
+ */
52
+ nuevoHilo(id?: string): void;
53
+ /** Aborta de inmediato la llamada al modelo que está en curso, si la hay. */
54
+ cancelar(): void;
55
+ /** Lo que lleva consumido la sesión, en sus DOS cuentas (ver `ConsumoDeSesionPorCuenta`). */
56
+ consumo(): ConsumoDeSesionPorCuenta;
57
+ /** Se avisa en cada cambio de cualquiera de las dos. Devuelve cómo dejar de escuchar. */
58
+ alCambiarConsumo(oyente: () => void): () => void;
59
+ /**
60
+ * Termina la sesión: aborta lo que esté en curso y la deja inservible.
61
+ *
62
+ * Hace falta para CAMBIAR de proyecto (`web/servidor/vestibulo.ts`): la consola web abre
63
+ * una consola de proyecto a la vez, y cerrar la anterior es agotar sus `lineas` para que
64
+ * `correrConsola` retorne. Sin esto, un turno en vuelo mantendría el lazo dentro del
65
+ * `await` durante minutos y la apertura del proyecto siguiente se quedaría esperando.
66
+ *
67
+ * Qué libera y qué no, dicho entero porque una fuga callada es peor que una declarada:
68
+ * el `MemorySaver`, el agente construido y el tracker viven en el CIERRE de
69
+ * `abrirSesionReal` y no exponen ningún `close()` —no hay sockets ni descriptores, el
70
+ * cliente del modelo es por llamada—, así que se recogen con la referencia a la sesión
71
+ * en cuanto quien la abrió la suelta. Lo único que hay que soltar activamente es la
72
+ * llamada en curso, y eso es exactamente `cancelar()`. La bandera de cerrada existe para
73
+ * que un `turno()` tardío falle en vez de revivir un hilo que ya nadie mira.
74
+ */
75
+ cerrar(): void;
76
+ /**
77
+ * Añade una nota al turno EN MARCHA (IXCODE-4). Opcional: el ejecutor guionizado y
78
+ * `deepagents` no lo tienen.
79
+ */
80
+ agregarNota?(texto: string): void;
81
+ /**
82
+ * DETENER y replanificar el turno EN MARCHA (IXCODE-4): los especialistas cierran con su
83
+ * resumen y el orquestador replanifica con `texto`. Opcional: solo TrueForge lo tiene.
84
+ */
85
+ detener?(texto: string): void;
86
+ readonly tracker: TokenTracker;
87
+ /** El `thread_id` ACTUAL: tras `nuevoHilo()` cambia, y hay que leerlo, no cachearlo. */
88
+ readonly hilo: string;
89
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * El contenido de un mensaje, como cadena.
3
+ *
4
+ * `JSON.stringify` es el último recurso y no el primero: para bloques de texto daría
5
+ * `[{"type":"text","text":"…"}]`, y el modelo tendría que desenterrar el contenido de
6
+ * su propio envoltorio en cada llamada.
7
+ */
8
+ export declare function aTexto(contenido: unknown): string;
9
+ /** ¿Es un `ToolMessage`? Se mira por las dos vías: el tipo de langchain y el campo. */
10
+ export declare function esMensajeDeTool(msg: unknown): boolean;
11
+ /**
12
+ * Convierte los `ToolMessage` de la petición, sin tocar el historial.
13
+ *
14
+ * Va en `wrapModelCall` y no en `beforeModel` a propósito: lo que hay que arreglar es lo
15
+ * que SE MANDA, no lo que se guarda. Reescribir el estado perdería el contenido
16
+ * estructurado para todo lo demás —el rastreo, un proveedor que sí lo acepte— por un
17
+ * problema de un solo conversor.
18
+ */
19
+ export declare function middlewareTextoDeTool(): import("langchain").AgentMiddleware<undefined, undefined, unknown, readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[], readonly []>;