xonecode 0.38.44 → 0.39.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/apps/web/dist/assets/{EditorDeFichero-BeWDctgN.js → EditorDeFichero-4HFwLke_.js} +1 -1
  2. package/apps/web/dist/assets/index-C57A_ylS.css +1 -0
  3. package/apps/web/dist/assets/index-CYZEmLsX.js +506 -0
  4. package/apps/web/dist/assets/{php-D3QdOnb8.js → php-CdQiFsq1.js} +1 -1
  5. package/apps/web/dist/assets/{ruby-DDAcW-Z2.js → ruby-3JrCXo0h.js} +1 -1
  6. package/apps/web/dist/index.html +2 -2
  7. package/dist/agent/cloudstudio/cloudstudioClient.d.ts +29 -0
  8. package/dist/agent/cloudstudio/cloudstudioMcp.d.ts +414 -0
  9. package/dist/agent/cloudstudio/conexionDeServidor.d.ts +37 -0
  10. package/dist/agent/cloudstudio/conexionDeServidor.js +63 -0
  11. package/dist/agent/cloudstudio/conexionDeServidor.js.map +1 -0
  12. package/dist/agent/cloudstudio/crearRama.d.ts +15 -0
  13. package/dist/agent/cloudstudio/crearRama.js +16 -0
  14. package/dist/agent/cloudstudio/crearRama.js.map +1 -0
  15. package/dist/agent/cloudstudio/descarga.d.ts +44 -0
  16. package/dist/agent/cloudstudio/manifiesto.d.ts +25 -0
  17. package/dist/agent/cloudstudio/ramaActiva.d.ts +24 -0
  18. package/dist/agent/cloudstudio/subida.d.ts +61 -0
  19. package/dist/agent/cloudstudio/subida.js +7 -1
  20. package/dist/agent/cloudstudio/subida.js.map +1 -1
  21. package/dist/agent/cloudstudio/validarTrasDescarga.d.ts +13 -0
  22. package/dist/agent/cloudstudio/zip.d.ts +13 -0
  23. package/dist/agent/conectores/conectoresEnDisco.d.ts +47 -0
  24. package/dist/agent/conectores/gestorJira.d.ts +50 -0
  25. package/dist/agent/conectores/gestorNotion.d.ts +45 -0
  26. package/dist/agent/conectores/proveedorDeConector.d.ts +43 -0
  27. package/dist/agent/conectores/servicioDeConectores.d.ts +112 -0
  28. package/dist/agent/config/authEnDisco.d.ts +43 -0
  29. package/dist/agent/config/catalogoModelos.d.ts +79 -0
  30. package/dist/agent/config/configEnDisco.d.ts +235 -0
  31. package/dist/agent/config/crearProyecto.d.ts +20 -0
  32. package/dist/agent/config/diagnosticoDeNodeEnMaquina.d.ts +44 -0
  33. package/dist/agent/config/ecoDeRazonamiento.d.ts +104 -0
  34. package/dist/agent/config/entorno.d.ts +83 -0
  35. package/dist/agent/config/fuentesEnRed.d.ts +12 -0
  36. package/dist/agent/config/gemini.d.ts +5 -0
  37. package/dist/agent/config/iconosEnRed.d.ts +10 -0
  38. package/dist/agent/config/identidadEnDisco.d.ts +27 -0
  39. package/dist/agent/config/modelos.d.ts +77 -0
  40. package/dist/agent/config/modelosDeMotor.d.ts +52 -0
  41. package/dist/agent/config/mudanzaEnDisco.d.ts +99 -0
  42. package/dist/agent/config/persona.d.ts +1 -0
  43. package/dist/agent/config/selectorEnMaquina.d.ts +35 -0
  44. package/dist/agent/config/settingsEnDisco.d.ts +206 -0
  45. package/dist/agent/config/versionEnDisco.d.ts +17 -0
  46. package/dist/agent/dispositivos/arranqueDeEmulador.d.ts +60 -0
  47. package/dist/agent/dispositivos/cajasDeMaqueta.d.ts +61 -0
  48. package/dist/agent/dispositivos/decodificarImagen.d.ts +21 -0
  49. package/dist/agent/dispositivos/descargaDeHerramientas.d.ts +44 -0
  50. package/dist/agent/dispositivos/dispositivosEnMaquina.d.ts +161 -0
  51. package/dist/agent/dispositivos/geometriaEnDisco.d.ts +17 -0
  52. package/dist/agent/dispositivos/hotswap.d.ts +194 -0
  53. package/dist/agent/dispositivos/instalacionEnMaquina.d.ts +156 -0
  54. package/dist/agent/dispositivos/juezVisual.d.ts +144 -0
  55. package/dist/agent/dispositivos/lanzamientoEnMaquina.d.ts +197 -0
  56. package/dist/agent/dispositivos/paqueteDelProyecto.d.ts +28 -0
  57. package/dist/agent/dispositivos/procesosEnMaquina.d.ts +154 -0
  58. package/dist/agent/dispositivos/recargaEnAparato.d.ts +30 -0
  59. package/dist/agent/dispositivos/sensorDeArranque.d.ts +42 -0
  60. package/dist/agent/exportarPdf.d.ts +72 -0
  61. package/dist/agent/grafo/aprendido.d.ts +28 -0
  62. package/dist/agent/grafo/arbolDeProyecto.d.ts +205 -0
  63. package/dist/agent/grafo/artefactosEnDisco.d.ts +35 -0
  64. package/dist/agent/grafo/atributosXone.d.ts +31 -0
  65. package/dist/agent/grafo/buscarIcono.d.ts +32 -0
  66. package/dist/agent/grafo/busquedaRegex.d.ts +56 -0
  67. package/dist/agent/grafo/codificacionDelProyecto.d.ts +7 -0
  68. package/dist/agent/grafo/compararCapturas.d.ts +22 -0
  69. package/dist/agent/grafo/copiarArtefacto.d.ts +64 -0
  70. package/dist/agent/grafo/criticaVisual.d.ts +60 -0
  71. package/dist/agent/grafo/describirImagen.d.ts +79 -0
  72. package/dist/agent/grafo/diferenciaDeCapturas.d.ts +33 -0
  73. package/dist/agent/grafo/ejecucionCancelable.d.ts +45 -0
  74. package/dist/agent/grafo/escriturasEnSerie.d.ts +31 -0
  75. package/dist/agent/grafo/excluirTools.d.ts +37 -0
  76. package/dist/agent/grafo/fuentesDeGoogle.d.ts +37 -0
  77. package/dist/agent/grafo/generarFondoSvg.d.ts +52 -0
  78. package/dist/agent/grafo/incorporarAdjunto.d.ts +98 -0
  79. package/dist/agent/grafo/lectorDeReferencias.d.ts +28 -0
  80. package/dist/agent/grafo/marcarCriteriosDelPlan.d.ts +47 -0
  81. package/dist/agent/grafo/memoriaDeProyecto.d.ts +15 -0
  82. package/dist/agent/grafo/navegacionXone.d.ts +60 -0
  83. package/dist/agent/grafo/opcionesDeFicheros.d.ts +23 -0
  84. package/dist/agent/grafo/perfiles.d.ts +225 -0
  85. package/dist/agent/grafo/proyecto.d.ts +450 -0
  86. package/dist/agent/grafo/skills.d.ts +181 -0
  87. package/dist/agent/grafo/traerDeLaMaquina.d.ts +60 -0
  88. package/dist/agent/grafo/unirSecciones.d.ts +20 -0
  89. package/dist/agent/grafo/validacionXone.d.ts +35 -0
  90. package/dist/agent/grafo/validarFicheroXone.d.ts +33 -0
  91. package/dist/agent/grafo/xoneAgent.d.ts +166 -0
  92. package/dist/agent/motores/motoresLocales.d.ts +87 -0
  93. package/dist/agent/motores/trueforge/capacidades.d.ts +183 -0
  94. package/dist/agent/motores/trueforge/convertirAP.d.ts +38 -0
  95. package/dist/agent/motores/trueforge/detencion.d.ts +70 -0
  96. package/dist/agent/motores/trueforge/esperas.d.ts +38 -0
  97. package/dist/agent/motores/trueforge/eventosTrueforge.d.ts +56 -0
  98. package/dist/agent/motores/trueforge/informesDeHijos.d.ts +48 -0
  99. package/dist/agent/motores/trueforge/medidaAutomatica.d.ts +37 -0
  100. package/dist/agent/motores/trueforge/memoriaDeEspecialistas.d.ts +60 -0
  101. package/dist/agent/motores/trueforge/memoriaTrueforge.d.ts +131 -0
  102. package/dist/agent/motores/trueforge/metricasTrueforge.d.ts +45 -0
  103. package/dist/agent/motores/trueforge/modeloExterno.d.ts +9 -0
  104. package/dist/agent/motores/trueforge/modeloLangchain.d.ts +69 -0
  105. package/dist/agent/motores/trueforge/notas.d.ts +48 -0
  106. package/dist/agent/motores/trueforge/proponerTareas.d.ts +30 -0
  107. package/dist/agent/motores/trueforge/recortes.d.ts +47 -0
  108. package/dist/agent/motores/trueforge/resumenSeguro.d.ts +33 -0
  109. package/dist/agent/motores/trueforge/sesionTrueforge.d.ts +273 -0
  110. package/dist/agent/motores/trueforge/skillsTrueforge.d.ts +16 -0
  111. package/dist/agent/motores/trueforge/toolsDeConectores.d.ts +36 -0
  112. package/dist/agent/motores/trueforge/toolsDeFichero.d.ts +146 -0
  113. package/dist/agent/motores/trueforge/toolsPropias.d.ts +38 -0
  114. package/dist/agent/motores/trueforge/traerDeStitch.d.ts +63 -0
  115. package/dist/agent/motores/trueforge/trueforge.d.ts +35 -0
  116. package/dist/agent/navegacion/estilosEnDisco.d.ts +41 -0
  117. package/dist/agent/navegacion/hechosEnDisco.d.ts +19 -0
  118. package/dist/agent/navegacion/indiceEnDisco.d.ts +50 -0
  119. package/dist/agent/navegacion/modeloDeProyecto.d.ts +86 -0
  120. package/dist/agent/planesEnDisco.d.ts +18 -0
  121. package/dist/agent/publicarPlan.d.ts +20 -0
  122. package/dist/agent/raizDelPaquete.d.ts +9 -0
  123. package/dist/agent/remoto/ngrokEnMaquina.d.ts +44 -0
  124. package/dist/agent/remoto/puenteWebSocket.d.ts +59 -0
  125. package/dist/agent/remoto/tunelNgrok.d.ts +31 -0
  126. package/dist/agent/renombrarSobre.d.ts +14 -0
  127. package/dist/agent/sesiones/adjuntosDeSesion.d.ts +64 -0
  128. package/dist/agent/sesiones/baseDeFichero.d.ts +9 -0
  129. package/dist/agent/sesiones/checkpointer.d.ts +146 -0
  130. package/dist/agent/sesiones/git.d.ts +66 -0
  131. package/dist/agent/sesiones/gitSync.d.ts +264 -0
  132. package/dist/agent/sesiones/memoriaDeHilo.d.ts +4 -0
  133. package/dist/agent/sesiones/modeloDelCambio.d.ts +7 -0
  134. package/dist/agent/sesiones/parcheEnTexto.d.ts +9 -0
  135. package/dist/agent/sesiones/sesionGit.d.ts +155 -0
  136. package/dist/agent/subagentes/actividadDeCodex.d.ts +8 -0
  137. package/dist/agent/subagentes/agentesEnDisco.d.ts +198 -0
  138. package/dist/agent/subagentes/consumoExterno.d.ts +83 -0
  139. package/dist/agent/subagentes/ejecutableEnWindows.d.ts +53 -0
  140. package/dist/agent/subagentes/escrituraDeCodex.d.ts +94 -0
  141. package/dist/agent/subagentes/escrituraDeOpencode.d.ts +67 -0
  142. package/dist/agent/subagentes/escrituraExterna.d.ts +419 -0
  143. package/dist/agent/subagentes/pluginDeSkills.d.ts +84 -0
  144. package/dist/agent/subagentes/subagenteCodex.d.ts +76 -0
  145. package/dist/agent/subagentes/subagenteExterno.d.ts +169 -0
  146. package/dist/agent/subagentes/subagenteOpencode.d.ts +126 -0
  147. package/dist/agent/tareas/aumentador.d.ts +99 -0
  148. package/dist/agent/tareas/juezDeTarea.d.ts +64 -0
  149. package/dist/agent/tareas/reflejoEnElGestor.d.ts +38 -0
  150. package/dist/agent/tareas/sondeoDelGestor.d.ts +49 -0
  151. package/dist/agent/tareas/tareasEnDisco.d.ts +148 -0
  152. package/dist/agent/tareas/tareasEnDisco.js +17 -0
  153. package/dist/agent/tareas/tareasEnDisco.js.map +1 -1
  154. package/dist/agent/trazaDeErroresEnDisco.d.ts +10 -0
  155. package/dist/agent/turno/depuracion.d.ts +1 -0
  156. package/dist/agent/turno/diagnosticoDeTools.d.ts +124 -0
  157. package/dist/agent/turno/ficherosDelProyecto.d.ts +10 -0
  158. package/dist/agent/turno/guionizado.d.ts +18 -0
  159. package/dist/agent/turno/informeDeTraza.d.ts +220 -0
  160. package/dist/agent/turno/inspectorDePrompt.d.ts +150 -0
  161. package/dist/agent/turno/instantanea.d.ts +16 -0
  162. package/dist/agent/turno/interrupts.d.ts +54 -0
  163. package/dist/agent/turno/juezDelTurnoConModelo.d.ts +26 -0
  164. package/dist/agent/turno/mensajes.d.ts +23 -0
  165. package/dist/agent/turno/normalizar.d.ts +15 -0
  166. package/dist/agent/turno/puente.d.ts +196 -0
  167. package/dist/agent/turno/registroDeFallos.d.ts +39 -0
  168. package/dist/agent/turno/resumenDeContexto.d.ts +269 -0
  169. package/dist/agent/turno/resumenDeTool.d.ts +33 -0
  170. package/dist/agent/turno/rubrica.d.ts +35 -0
  171. package/dist/agent/turno/sesionReal.d.ts +89 -0
  172. package/dist/agent/turno/textoDeTool.d.ts +19 -0
  173. package/dist/agent/turno/turnoReal.d.ts +210 -0
  174. package/dist/agent/turno/verificacion.d.ts +85 -0
  175. package/dist/agent/turno/verificador.d.ts +66 -0
  176. package/dist/bin.d.ts +2 -0
  177. package/dist/cli/acuseDeModelo.d.ts +18 -0
  178. package/dist/cli/aprobar.d.ts +162 -0
  179. package/dist/cli/config.d.ts +17 -0
  180. package/dist/cli/consola.d.ts +473 -0
  181. package/dist/cli/describe.d.ts +7 -0
  182. package/dist/cli/doctor.d.ts +8 -0
  183. package/dist/cli/fuentesDeDisco.d.ts +25 -0
  184. package/dist/cli/main.d.ts +291 -0
  185. package/dist/cli/markdown.d.ts +126 -0
  186. package/dist/cli/panel.d.ts +38 -0
  187. package/dist/cli/podar.d.ts +38 -0
  188. package/dist/cli/run.d.ts +30 -0
  189. package/dist/cli/spinner.d.ts +37 -0
  190. package/dist/cli/stdio.d.ts +94 -0
  191. package/dist/cli/tema.d.ts +68 -0
  192. package/dist/cli/tokens.d.ts +16 -0
  193. package/dist/cli/traza.d.ts +19 -0
  194. package/dist/cli/tui/app.d.ts +23 -0
  195. package/dist/cli/tui/aprobarTui.d.ts +46 -0
  196. package/dist/cli/tui/barra.d.ts +43 -0
  197. package/dist/cli/tui/correrTui.d.ts +119 -0
  198. package/dist/cli/tui/entrada.d.ts +14 -0
  199. package/dist/cli/tui/filas.d.ts +13 -0
  200. package/dist/cli/tui/logo.d.ts +20 -0
  201. package/dist/cli/tui/pielTui.d.ts +15 -0
  202. package/dist/cli/tui/raton.d.ts +68 -0
  203. package/dist/cli/tui/sidebar.d.ts +63 -0
  204. package/dist/cli/tui/store.d.ts +102 -0
  205. package/dist/cli/tui/tarjeta.d.ts +8 -0
  206. package/dist/cli/tui/temaInk.d.ts +67 -0
  207. package/dist/cli/tui/transcript.d.ts +32 -0
  208. package/dist/cli/verify.d.ts +9 -0
  209. package/dist/cli/wizardInicial.d.ts +59 -0
  210. package/dist/core/actos.d.ts +437 -0
  211. package/dist/core/adjuntos.d.ts +77 -0
  212. package/dist/core/agentes.d.ts +353 -0
  213. package/dist/core/analisisDeSesion.d.ts +63 -0
  214. package/dist/core/aprendido.d.ts +41 -0
  215. package/dist/core/artefactos.d.ts +74 -0
  216. package/dist/core/atributosXone.d.ts +53 -0
  217. package/dist/core/bitacora.d.ts +21 -0
  218. package/dist/core/cloudstudio.d.ts +168 -0
  219. package/dist/core/codificacion.d.ts +81 -0
  220. package/dist/core/comandoExterno.d.ts +49 -0
  221. package/dist/core/compararCapturas.d.ts +136 -0
  222. package/dist/core/conectores.d.ts +296 -0
  223. package/dist/core/config.d.ts +148 -0
  224. package/dist/core/contextos.d.ts +54 -0
  225. package/dist/core/convertirAP.d.ts +56 -0
  226. package/dist/core/copiaDeAvd.d.ts +44 -0
  227. package/dist/core/cssBienFormado.d.ts +22 -0
  228. package/dist/core/deps.d.ts +28 -0
  229. package/dist/core/descargas.d.ts +61 -0
  230. package/dist/core/descripcionDePantalla.d.ts +121 -0
  231. package/dist/core/descriptoresDeApp.d.ts +108 -0
  232. package/dist/core/diagnosticoDeNode.d.ts +51 -0
  233. package/dist/core/diff.d.ts +26 -0
  234. package/dist/core/diffDeColecciones.d.ts +54 -0
  235. package/dist/core/disenoVinculado.d.ts +17 -0
  236. package/dist/core/dispositivoDeSesion.d.ts +22 -0
  237. package/dist/core/dispositivoElegido.d.ts +17 -0
  238. package/dist/core/dispositivos.d.ts +469 -0
  239. package/dist/core/entrega.d.ts +341 -0
  240. package/dist/core/entrelazar.d.ts +48 -0
  241. package/dist/core/esfuerzo.d.ts +120 -0
  242. package/dist/core/esqueleto.d.ts +38 -0
  243. package/dist/core/estiloMedido.d.ts +70 -0
  244. package/dist/core/estilos.d.ts +76 -0
  245. package/dist/core/events.d.ts +218 -0
  246. package/dist/core/exportacion.d.ts +88 -0
  247. package/dist/core/fallos.d.ts +79 -0
  248. package/dist/core/fondosSvg.d.ts +115 -0
  249. package/dist/core/fotoDeColecciones.d.ts +45 -0
  250. package/dist/core/fuentes.d.ts +96 -0
  251. package/dist/core/geometriaDePantalla.d.ts +171 -0
  252. package/dist/core/gestorDeTareas.d.ts +295 -0
  253. package/dist/core/hechosDelProyecto.d.ts +70 -0
  254. package/dist/core/hotswap.d.ts +30 -0
  255. package/dist/core/iconos.d.ts +86 -0
  256. package/dist/core/identidadDeProveedor.d.ts +20 -0
  257. package/dist/core/idiomaDeLaRespuesta.d.ts +26 -0
  258. package/dist/core/imagenesDeDocumento.d.ts +40 -0
  259. package/dist/core/jsParaRhino.d.ts +3 -0
  260. package/dist/core/juezDelTurno.d.ts +95 -0
  261. package/dist/core/logDeDispositivo.d.ts +67 -0
  262. package/dist/core/memoria.d.ts +18 -0
  263. package/dist/core/metodoDeComparacionVisual.d.ts +20 -0
  264. package/dist/core/modelos.d.ts +198 -0
  265. package/dist/core/modoDeEscritura.d.ts +155 -0
  266. package/dist/core/motor.d.ts +43 -0
  267. package/dist/core/motoresLocales.d.ts +113 -0
  268. package/dist/core/mudanzaDeWorkspace.d.ts +112 -0
  269. package/dist/core/navegacion.d.ts +172 -0
  270. package/dist/core/notify.d.ts +77 -0
  271. package/dist/core/nucleoXone.d.ts +28 -0
  272. package/dist/core/panorama.d.ts +68 -0
  273. package/dist/core/paqueteDeSoporte.d.ts +100 -0
  274. package/dist/core/planDeSubida.d.ts +56 -0
  275. package/dist/core/planes.d.ts +53 -0
  276. package/dist/core/podaDeCheckpoint.d.ts +75 -0
  277. package/dist/core/ports.d.ts +1034 -0
  278. package/dist/core/puedeLanzarse.d.ts +181 -0
  279. package/dist/core/puertosDeAvd.d.ts +59 -0
  280. package/dist/core/recargaEnCaliente.d.ts +52 -0
  281. package/dist/core/referenciasDeImagen.d.ts +36 -0
  282. package/dist/core/remoto.d.ts +76 -0
  283. package/dist/core/repartoDeEncargo.d.ts +80 -0
  284. package/dist/core/rubrica.d.ts +78 -0
  285. package/dist/core/rutaVirtual.d.ts +29 -0
  286. package/dist/core/selectorDeCarpeta.d.ts +59 -0
  287. package/dist/core/serieDeEscrituras.d.ts +58 -0
  288. package/dist/core/settings.d.ts +421 -0
  289. package/dist/core/shellDeAgente.d.ts +177 -0
  290. package/dist/core/skills.d.ts +129 -0
  291. package/dist/core/stitch.d.ts +114 -0
  292. package/dist/core/tareas.d.ts +412 -0
  293. package/dist/core/tareasDelPlan.d.ts +123 -0
  294. package/dist/core/tareasEnElGestor.d.ts +117 -0
  295. package/dist/core/textos.d.ts +8 -0
  296. package/dist/core/topeAgotado.d.ts +55 -0
  297. package/dist/core/traerDeLaMaquina.d.ts +33 -0
  298. package/dist/core/trazaDeErrores.d.ts +83 -0
  299. package/dist/core/tunel.d.ts +45 -0
  300. package/dist/core/turno.d.ts +154 -0
  301. package/dist/core/validacionDeEscritura.d.ts +95 -0
  302. package/dist/core/verificacionDeSubida.d.ts +14 -0
  303. package/dist/core/version.d.ts +35 -0
  304. package/dist/core/xmlBienFormado.d.ts +23 -0
  305. package/dist/core/zipDeAdjunto.d.ts +28 -0
  306. package/dist/core/zipDeSkill.d.ts +74 -0
  307. package/dist/lib/tareaAutonoma.d.ts +36 -0
  308. package/dist/lib/tareaAutonoma.js +259 -0
  309. package/dist/lib/tareaAutonoma.js.map +1 -0
  310. package/dist/lib.d.ts +31 -0
  311. package/dist/lib.js +28 -0
  312. package/dist/lib.js.map +1 -0
  313. package/dist/vendor/hitl.d.ts +69 -0
  314. package/dist/vendor/skillLoaders/catalog.d.ts +27 -0
  315. package/dist/vendor/sqliteSaver.d.ts +22 -0
  316. package/dist/vendor/tokenTracking.d.ts +22 -0
  317. package/dist/web/servidor/arranque.d.ts +1372 -0
  318. package/dist/web/servidor/arranque.js +39 -0
  319. package/dist/web/servidor/arranque.js.map +1 -1
  320. package/dist/web/servidor/consolaDeTarea.d.ts +166 -0
  321. package/dist/web/servidor/consolaWeb.d.ts +142 -0
  322. package/dist/web/servidor/corredorDeTareas.d.ts +395 -0
  323. package/dist/web/servidor/datosDeCierre.d.ts +4 -0
  324. package/dist/web/servidor/interrupcion.d.ts +39 -0
  325. package/dist/web/servidor/pielWeb.d.ts +32 -0
  326. package/dist/web/servidor/puenteRemoto.d.ts +80 -0
  327. package/dist/web/servidor/servidor.d.ts +53 -0
  328. package/dist/web/servidor/sesiones.d.ts +342 -0
  329. package/dist/web/servidor/soporte.d.ts +65 -0
  330. package/dist/web/servidor/transporte.d.ts +2751 -0
  331. package/dist/web/servidor/vestibulo.d.ts +952 -0
  332. package/dist/web/servidor/visorOpenui.d.ts +33 -0
  333. package/package.json +9 -1
  334. package/apps/web/dist/assets/index-B-6cDRAV.js +0 -506
  335. package/apps/web/dist/assets/index-BQdHnRbo.css +0 -1
@@ -0,0 +1,25 @@
1
+ /**
2
+ * El inventario del proyecto remoto.
3
+ *
4
+ * `get_project_structure` se trunca (medido: con `maxFiles:60` ya devolvía
5
+ * `truncated:true`, y el tope duro es 2000). Como el manifiesto es lo que impide borrar
6
+ * en Studio lo que no pudimos bajar, una enumeración incompleta no es un detalle
7
+ * cosmético: es el candado con una pata menos.
8
+ */
9
+ import type { CloudStudioPort } from "../../core/ports.js";
10
+ import type { ManifiestoRemoto } from "../../core/cloudstudio.js";
11
+ export interface ResultadoDeEnumeracion {
12
+ manifiesto: ManifiestoRemoto;
13
+ /** Directorios que no se pudieron listar. Salen en el informe: callarlos es peor. */
14
+ noEnumerados: string[];
15
+ /**
16
+ * El listado de la RAÍZ llegó truncado. A diferencia de un directorio truncado
17
+ * cualquiera (que este recorrido sortea pidiendo sus ancestros), un directorio de
18
+ * primer nivel que el corte deja fuera de la respuesta de la raíz Y que ningún otro
19
+ * fichero visto menciona como ancestro es INVISIBLE: no hay ninguna llamada que lo
20
+ * pida. No se puede demostrar que no existan; por eso se declara siempre que la raíz
21
+ * viene truncada, en vez de fingir que el recorrido por ancestros lo cubre todo.
22
+ */
23
+ raizTruncada: boolean;
24
+ }
25
+ export declare function enumerarRemoto(puerto: CloudStudioPort): Promise<ResultadoDeEnumeracion>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Cuál es la rama que Studio tiene ACTIVA — o que no se pudo saber.
3
+ *
4
+ * La rama activa solo se sabe por `studio_get_context`: `studio_manage_branches` enumera
5
+ * las ramas y no dice cuál está puesta (medido: no tiene `operation: "current"`). Y esa
6
+ * tool FALLA en el servidor para algunos proyectos —medido contra CloudStudio, con el
7
+ * proyecto ABIERTO: devuelve «An error occurred invoking 'studio_get_context'» mientras
8
+ * `studio_get_file`, `studio_get_project_structure` y `studio_manage_branches` contestan
9
+ * bien sobre ESE MISMO proyecto—, así que no es señal de sesión caída ni de red.
10
+ *
11
+ * Leerla sirve para UNA cosa: devolverle el suelo a quien tenga Studio abierto en el
12
+ * navegador. Eso es una cortesía, no una condición de corrección — lo que garantiza que
13
+ * se baja (y se sube) de la rama que toca es el `cambiarRama(ramaOrigen)` explícito, que
14
+ * no depende de esta lectura. Por eso un fallo aquí NO tumba la operación: devuelve
15
+ * `undefined` y lo DICE, que es la única parte que no puede quedarse muda, porque la
16
+ * consecuencia es visible (Studio se queda en la rama del proyecto).
17
+ *
18
+ * `CloudStudioPort.contexto()` sigue LANZANDO, a propósito: tolerar es decisión de quien
19
+ * llama, no del puerto. Y la sesión perdida no se cuela por aquí como un error genérico
20
+ * más — `cloudstudioClient.ts#conSesion` reabre y reintenta, y si sigue perdida relanza
21
+ * al siguiente `cambiarRama`, que es donde ese caso SÍ tiene que tumbar la operación.
22
+ */
23
+ import type { CloudStudioPort } from "../../core/ports.js";
24
+ export declare function ramaActiva(puerto: CloudStudioPort, ramaOrigen: string, informar: (texto: string) => void): Promise<string | undefined>;
@@ -0,0 +1,61 @@
1
+ import type { CloudStudioPort } from "../../core/ports.js";
2
+ import type { OperacionOmitida, PoliticaDeAprobacion } from "../../core/cloudstudio.js";
3
+ import { type FicheroIlegible } from "./validarTrasDescarga.js";
4
+ export interface OpcionesDeSubida {
5
+ puerto: CloudStudioPort;
6
+ raiz: string;
7
+ /**
8
+ * La rama del proyecto: de la que se bajó y a la que se sube. El nombre sigue diciendo
9
+ * «origen» porque es el origen de la descarga, y es el término que usan `descargar` y
10
+ * `planDeSubida` para la misma rama — renombrarlo en un solo sitio dejaría dos nombres
11
+ * para una cosa.
12
+ */
13
+ ramaOrigen: string;
14
+ proyecto: {
15
+ id: string;
16
+ nombre: string;
17
+ };
18
+ /**
19
+ * El hueco de política (`core/cloudstudio.ts#PoliticaDeAprobacion`), OBLIGATORIO —
20
+ * fail-closed por TIPO, no por convención: no hay forma de llamar a `subir()` sin decir
21
+ * quién autoriza, en vez de confiar en que cada llamador se acuerde. Se invoca con el
22
+ * plan YA CONSTRUIDO (`planDeSubida`), ANTES de tocar el puerto: quien autorice ve
23
+ * exactamente lo que se va a escribir, ni más ni menos. Cualquier resultado que no sea
24
+ * autorización deja todo como estaba: nada se escribe, la ref no se mueve.
25
+ */
26
+ politicaDeAprobacion: PoliticaDeAprobacion;
27
+ informar?: (texto: string) => void;
28
+ }
29
+ /** El aviso cuando la rama activa de Studio no se pudo leer justo antes de subir. */
30
+ export declare const AVISO_RAMA_SIN_CONFIRMAR = "no se pudo confirmar la rama activa de Studio antes de subir";
31
+ export interface FalloDeSubida {
32
+ ruta: string;
33
+ motivo: string;
34
+ /** Solo cuando el texto llegó DISTINTO: los dos hashes, para mirarlo después en `sync.log`. */
35
+ sha256Local?: string;
36
+ sha256Studio?: string;
37
+ }
38
+ export interface InformeDeSubida {
39
+ /** Lo subido Y comprobado. */
40
+ ok: string[];
41
+ fallos: FalloDeSubida[];
42
+ /**
43
+ * Presente = la rama activa de Studio NO se pudo leer tras posicionarla (la tool se cae para
44
+ * algunos proyectos), y se subió igual. No es un fallo: es lo que no se pudo confirmar, y se
45
+ * dice para que no pase en silencio.
46
+ */
47
+ avisoDeRama?: string;
48
+ /**
49
+ * Lo que NO se puede sincronizar, con el porqué (`core/planDeSubida.ts`). No son
50
+ * fallos: no bloquean la ref. Son el camino de escape para que una operación imposible
51
+ * —el borrado de un binario, un fichero de más de 5 MB— no atasque la subida entera.
52
+ */
53
+ omitidas: OperacionOmitida[];
54
+ /**
55
+ * Los ficheros que NEGARON la subida entera por no poderse leer (`validarTrasDescarga`).
56
+ * Presente = no se ha escrito nada en Studio ni se ha pedido autorización.
57
+ */
58
+ ilegibles?: FicheroIlegible[];
59
+ }
60
+ export declare function rutaSyncLog(raiz: string): string;
61
+ export declare function subir(opciones: OpcionesDeSubida): Promise<InformeDeSubida>;
@@ -32,6 +32,7 @@ import { appendFileSync, mkdirSync, readFileSync, statSync, existsSync, readdirS
32
32
  import { dirname, join } from "node:path";
33
33
  import { planAutorizado } from "../../core/cloudstudio.js";
34
34
  import { planDeSubida } from "../../core/planDeSubida.js";
35
+ import { decodificarComoTexto } from "../../core/codificacion.js";
35
36
  import { diferenciaDeTexto, motivoSinComprobar } from "../../core/verificacionDeSubida.js";
36
37
  import { NOMBRE_CARPETA } from "../config/configEnDisco.js";
37
38
  import { cambiosPendientes, marcarSubido, marcarSubidoParcial } from "../sesiones/gitSync.js";
@@ -237,7 +238,12 @@ export async function subir(opciones) {
237
238
  if (operacion.tipo === "borrado")
238
239
  await puerto.borrarTexto(operacion.ruta);
239
240
  else if (operacion.tipo === "texto") {
240
- const contenido = readFileSync(join(raiz, operacion.ruta), "utf8");
241
+ // Los BYTES, decodificados con la regla del proyecto (la del editor y la del agente):
242
+ // UTF-8 si lo son, y si no su tabla de 8 bits por el prólogo. Medido contra Studio:
243
+ // leído como "utf8", cada tilde de un `.xne` ISO-8859-15 viajaba como «�», Studio lo
244
+ // guardaba así y la relectura, igual de rota, daba la subida por buena. Studio quiere
245
+ // el texto DECODIFICADO y lo guarda él en la codificación que declara su prólogo.
246
+ const contenido = decodificarComoTexto(readFileSync(join(raiz, operacion.ruta)));
241
247
  await puerto.escribirTexto(operacion.ruta, contenido);
242
248
  // Releer lo escrito: es la única prueba de que llegó entero. Una relectura que
243
249
  // falla NO es un «ok»: el fichero puede estar cortado y no lo sabríamos.
@@ -1 +1 @@
1
- {"version":3,"file":"subida.js","sourceRoot":"","sources":["../../../src/agent/cloudstudio/subida.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subida.js","sourceRoot":"","sources":["../../../src/agent/cloudstudio/subida.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Un fichero bajado que no se puede leer como lo que es, y por qué. Ruta RELATIVA al proyecto. */
2
+ export interface FicheroIlegible {
3
+ ruta: string;
4
+ motivo: string;
5
+ }
6
+ /** El motivo por el que `contenido` no vale, o `undefined` si vale. Exportada para el test. */
7
+ export declare function motivoDeFicheroIlegible(ruta: string, bytes: Buffer): string | undefined;
8
+ /**
9
+ * Comprueba en el DISCO los ficheros que la descarga dice haber traído. Lee los BYTES, no el texto
10
+ * que se escribió: es lo que va a leer el aparato. Un fichero que no se puede ni abrir cuenta como
11
+ * ilegible con el `code` de Node (su mensaje lleva la ruta absoluta).
12
+ */
13
+ export declare function validarTrasDescarga(raiz: string, descargados: string[]): FicheroIlegible[];
@@ -0,0 +1,13 @@
1
+ /**
2
+ * La guarda de contención: una ruta con `../` o absoluta escribiría fuera de la raíz.
3
+ * Se comprueba sobre la ruta YA resuelta, porque comparar cadenas antes de resolver deja
4
+ * pasar `a/../../x`. Se aborta entero: un ZIP que intenta esto no es de fiar en ninguna
5
+ * de sus entradas.
6
+ *
7
+ * Se exporta porque la vía degradada (`agent/cloudstudio/descarga.ts`) escribe y BORRA con rutas que
8
+ * vienen del JSON del servidor exactamente igual de crudas: tener la guarda solo en el
9
+ * camino del ZIP era la asimetría, no una decisión.
10
+ */
11
+ export declare function destinoSeguro(raiz: string, entrada: string): string;
12
+ /** Devuelve las rutas escritas, relativas y en POSIX (las del manifiesto y las de MCP). */
13
+ export declare function extraerZipBase64(base64: string, raiz: string): string[];
@@ -0,0 +1,47 @@
1
+ import type { OAuthClientInformationMixed, OAuthTokens } from "@modelcontextprotocol/sdk/shared/auth.js";
2
+ import type { DefinicionDeConector } from "../../core/conectores.js";
3
+ export declare class ErrorDeFicheroDeConectores extends Error {
4
+ }
5
+ export declare function rutaDeAnadidos(casa: string): string;
6
+ export declare function rutaDeOAuth(casa: string): string;
7
+ /**
8
+ * Lo que se guarda de UN conector. `redirectUri` ata el cliente registrado a su puerto, y
9
+ * `clave` es la de un conector `api-key`: van juntas porque son la misma pregunta —«con qué se
10
+ * autentica este conector»— y porque el ciclo de vida es el mismo (nace al conectar, muere al
11
+ * desconectar y al quitar).
12
+ */
13
+ export interface SecretosDeConector {
14
+ clientInformation?: OAuthClientInformationMixed;
15
+ redirectUri?: string;
16
+ tokens?: OAuthTokens;
17
+ codeVerifier?: string;
18
+ clave?: string;
19
+ }
20
+ /** Todo lo que dice `conectores.json`, de UNA lectura. */
21
+ export interface ConectoresEnDisco {
22
+ /** Los añadidos que esta consola sabe resolver: del catálogo o con definición. */
23
+ anadidos: string[];
24
+ /** Los que no: una entrada muerta, y la ventana lo dice en vez de callarla. */
25
+ desconocidos: string[];
26
+ definiciones: Record<string, DefinicionDeConector>;
27
+ ilegible?: true;
28
+ }
29
+ /**
30
+ * El fichero entero en una lectura, y por eso es UNO y no `leerAnadidos` + `leerDefiniciones`:
31
+ * quien resuelve un id necesita las dos cosas a la vez, y dos lecturas del mismo fichero pueden
32
+ * discrepar a mitad de camino — un `anadido` que la segunda ya no sabe resolver. Con una sola,
33
+ * `anadidos` y `definiciones` son coherentes por construcción, que es lo que deja afirmar que
34
+ * todo id de `anadidos` tiene fila.
35
+ *
36
+ * **Un id está VIVO si lo conoce el catálogo o si tiene definición.** Las dos familias, una
37
+ * sola pregunta: de aquí para abajo nada distingue un conector de código de uno escrito a mano,
38
+ * que es lo que hace que un servidor propio se comporte como Jira.
39
+ */
40
+ export declare function leerConectores(casa: string): ConectoresEnDisco;
41
+ export declare function anadirConector(casa: string, id: string): void;
42
+ export declare function quitarConector(casa: string, id: string): void;
43
+ export declare function guardarDefinicion(casa: string, id: string, def: DefinicionDeConector): void;
44
+ export declare function olvidarDefinicion(casa: string, id: string): void;
45
+ export declare function leerOAuth(casa: string, id: string): SecretosDeConector;
46
+ export declare function guardarOAuth(casa: string, id: string, datos: SecretosDeConector): void;
47
+ export declare function olvidarOAuth(casa: string, id: string): void;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * El adaptador de Jira sobre `GestorDeTareasPort` (`core/gestorDeTareas.ts`): el ÚNICO fichero
3
+ * que conoce los nombres de las tools de Jira y la forma de sus respuestas — nada fuera de aquí
4
+ * sabe que el gestor de tareas es Jira.
5
+ *
6
+ * Llama al conector MCP por `llamar(nombre, args)` (el mismo `ServicioDeConectores.llamar`, ya
7
+ * atado a `"jira"` por quien construye este gestor): devuelve el TEXTO del primer bloque
8
+ * `type: "text"` del resultado. Este fichero solo hace `JSON.parse` de ese texto y lee sus
9
+ * campos a mano — nunca `@modelcontextprotocol` (`core/` no lo importa, y este fichero tampoco
10
+ * lo necesita).
11
+ *
12
+ * Lectura defensiva por campo, como `planesDelCable.ts` en el cliente: una respuesta que no es
13
+ * el JSON esperado LANZA, nunca vuelve como lista vacía (una lista vacía es un dato — «no hay
14
+ * pendientes» — y confundirlo con «no entendí la respuesta» esconde un fallo).
15
+ *
16
+ * Del `assignee` de Jira solo sale `displayName`: `emailAddress` y `accountId` no cruzan este
17
+ * adaptador (y por tanto no cruzan el cable).
18
+ */
19
+ import { type GestorDeTareasPort } from "../../core/gestorDeTareas.js";
20
+ type Llamar = (nombre: string, args: Record<string, unknown>) => Promise<string>;
21
+ /**
22
+ * El tipo de incidencia con el que se CREA una tarea, elegido de lo que el proyecto declara
23
+ * (`getJiraProjectIssueTypesMetadata`). Medido sobre un Jira en español: `name` viene TRADUCIDO («Tarea») y
24
+ * `untranslatedName` es el de siempre («Task»), así que escribir «Task» a fuego no vale. Regla: un tipo de nivel 0
25
+ * (ni épica ni subtarea), con «Task» primero, y si no el primero de nivel 0; se devuelve su `name`, que es como el
26
+ * proyecto lo llama. Sin ninguno de nivel 0, `undefined` (y crear lo dice).
27
+ */
28
+ export declare function tipoParaCrear(respuesta: unknown): string | undefined;
29
+ /**
30
+ * La clave de la incidencia recién creada. La respuesta de `createJiraIssue` es la de la API de Jira (`{id, key,
31
+ * self}`) o la incidencia entera; en las dos, `key` en la raíz. Sin ella se LANZA: el ticket puede existir, pero sin
32
+ * clave no hay a qué ligar la tarea, y quien llama lo dice.
33
+ */
34
+ export declare function claveCreada(respuesta: unknown): string;
35
+ /**
36
+ * `crearGestorJira`: cada instancia cachea la url pública de cada `sitio` (`cloudId`) que
37
+ * `sitios()` haya devuelto, para poder componer `url = <url del sitio>/browse/<clave>` sin
38
+ * volver a preguntar. Un sitio nunca visto por esta instancia deja `url` AUSENTE — no se
39
+ * inventa una URL a partir del `cloudId`.
40
+ */
41
+ /** El máximo que admite `getVisibleJiraProjects` por llamada (medido en su esquema). */
42
+ export declare const PROYECTOS_POR_PAGINA = 50;
43
+ /**
44
+ * Cuántas pendientes se piden de una vez: el máximo que admite `searchJiraIssuesUsingJql`. El panel
45
+ * FILTRA por estado y CUENTA en el cliente sobre esta lista, así que cuanto más entera llegue,
46
+ * menos mienten los números de las pastillas.
47
+ */
48
+ export declare const PENDIENTES_POR_CONSULTA = 100;
49
+ export declare function crearGestorJira(llamar: Llamar): GestorDeTareasPort;
50
+ export {};
@@ -0,0 +1,45 @@
1
+ /**
2
+ * El adaptador de Notion sobre `GestorDeTareasPort` (`core/gestorDeTareas.ts`, IXCODE-15): el
3
+ * ÚNICO fichero que conoce los nombres de las tools de Notion y la forma de sus respuestas — el
4
+ * molde es `gestorJira.ts`, y nada fuera de aquí sabe que el gestor de tareas es Notion.
5
+ *
6
+ * El «proyecto» es un DATA SOURCE de una base de Notion (`collection://…`): se busca la base por
7
+ * texto (`notion-search`), se resuelve su data source al ELEGIRLA (`notion-fetch`), y de su
8
+ * esquema se entiende qué propiedad es el estado (tipo `status`, con sus grupos `to_do`/
9
+ * `in_progress`/`complete`), cuál el título y cuál el asignado (la primera `person`). Las
10
+ * pendientes salen de un SQL de solo lectura con `params` (`sqlDePendientes`, puro).
11
+ *
12
+ * Todas las respuestas son `{content:[{type:"text", text:"<JSON>"}]}` (medido, 29-09-2026); el
13
+ * JSON de `notion-fetch` lleva además un `text` con marcado propio (`<data-source-state>`,
14
+ * `<properties>`, `<content>`) del que se sacan las piezas por patrón. Lectura DEFENSIVA, como en
15
+ * Jira: una respuesta que no se entiende LANZA, nunca vuelve como lista vacía.
16
+ *
17
+ * Del asignado solo cruza el NOMBRE: `notion-get-users` trae el correo, y de aquí no sale. Un id
18
+ * que no se resuelve (medido: los asignados de una plantilla no son miembros del espacio) deja el
19
+ * asignado AUSENTE — no se inventa ni se enseña el id.
20
+ */
21
+ import { type DescripcionDelProyecto, type GestorDeTareasPort } from "../../core/gestorDeTareas.js";
22
+ type Llamar = (nombre: string, args: Record<string, unknown>) => Promise<string>;
23
+ /** Cuánto de la página entra como descripción: una ficha no es la página entera. */
24
+ export declare const TOPE_DE_DESCRIPCION = 8000;
25
+ /** Cuántas bases se piden a `notion-search` de una vez: el máximo de su esquema (medido). */
26
+ export declare const BASES_POR_BUSQUEDA = 50;
27
+ /**
28
+ * El esquema de un `notion-fetch` de una base o de un data source: el PRIMER `<data-source-state>`
29
+ * (una base puede tener varios, y se dice cuántos), o el motivo de por qué esa base no vale.
30
+ */
31
+ export declare function esquemaDeFetch(tool: string, cuerpoTexto: string): DescripcionDelProyecto;
32
+ /** La descripción de una página: lo de dentro de `<content>`, sin los bloques vacíos. Una página en blanco es `""`. */
33
+ export declare function descripcionDePagina(cuerpoTexto: string): string;
34
+ /**
35
+ * El comentario de cierre tal como Notion lo enseña BIEN (IXCODE-15). El esquema de
36
+ * `notion-create-comment` dice que los encabezados, las listas, las tablas, las citas y los bloques
37
+ * de código se guardan como TEXTO —saldrían `## Qué cambió` y `- a` literales—, y que lo de dentro
38
+ * de la línea (negrita, cursiva, código, enlaces) sí se pinta. Así que solo se cambian los
39
+ * MARCADORES de bloque: `## Título` → `Título:` en su línea y `- x`/`* x`/`+ x` → `• x`; nada
40
+ * más (un bloque de código, que `comentarioDeCierre` no produce, se queda como está). Mismas líneas, mismo orden, mismo texto: lo que la persona
41
+ * aprobó no cambia de sentido. `**x**` y `` `x` `` se quedan porque Notion los pinta.
42
+ */
43
+ export declare function comentarioParaNotion(markdown: string): string;
44
+ export declare function crearGestorNotion(llamar: Llamar): GestorDeTareasPort;
45
+ export {};
@@ -0,0 +1,43 @@
1
+ /**
2
+ * El `OAuthClientProvider` del SDK para UN conector. El molde es `ProviderCloudStudio`
3
+ * (`cloudstudioMcp.ts`), con tres diferencias que no son de forma:
4
+ * - **Cliente PÚBLICO** (`token_endpoint_auth_method: "none"`): no hay dónde guardar un
5
+ * secreto que valga más que el propio token, y Notion y Atlassian lo aceptan (medido).
6
+ * - **El cliente va atado a su `redirect_uri`**: el puerto de la consola puede cambiar
7
+ * entre arranques y el servidor rechazaría el callback. Otro puerto = registrar de nuevo,
8
+ * que es una llamada.
9
+ * - **El `state` lo pone el servicio**, que es quien lo apunta como pendiente: la ruta
10
+ * pública del callback no tiene otra autenticación que ese valor.
11
+ */
12
+ import type { OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js";
13
+ import type { OAuthClientInformationMixed, OAuthClientMetadata, OAuthTokens } from "@modelcontextprotocol/sdk/shared/auth.js";
14
+ export interface OpcionesDeProveedor {
15
+ casa: string;
16
+ id: string;
17
+ redirectUrl: string;
18
+ state: string;
19
+ alRedirigir: (url: URL) => void;
20
+ }
21
+ export declare class ProveedorDeConector implements OAuthClientProvider {
22
+ private readonly o;
23
+ /**
24
+ * Los secretos de ESTE conector. Son los mismos que guarda el carril de la clave —un solo
25
+ * fichero por conector—, pero aquí no puede haber `clave`: quien construye un proveedor es el
26
+ * carril de OAuth, y la autenticación de un conector no cambia después de crearlo.
27
+ */
28
+ private datos;
29
+ constructor(o: OpcionesDeProveedor);
30
+ private guardar;
31
+ get redirectUrl(): string;
32
+ get clientMetadata(): OAuthClientMetadata;
33
+ state(): string;
34
+ clientInformation(): OAuthClientInformationMixed | undefined;
35
+ saveClientInformation(info: OAuthClientInformationMixed): void;
36
+ tokens(): OAuthTokens | undefined;
37
+ saveTokens(tokens: OAuthTokens): void;
38
+ redirectToAuthorization(url: URL): void;
39
+ saveCodeVerifier(verifier: string): void;
40
+ codeVerifier(): string;
41
+ /** El gancho de recuperación del SDK: sin él, un refresh muerto es un fallo duro. */
42
+ invalidateCredentials(alcance: "all" | "client" | "tokens" | "verifier" | "discovery"): void;
43
+ }
@@ -0,0 +1,112 @@
1
+ import { type OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js";
2
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
3
+ import { type AutenticacionDeConector, type ConectorDelCable, type DefinicionDeConector, type FilaDeCatalogo, type ToolConEsquema } from "../../core/conectores.js";
4
+ export interface ServicioDeConectores {
5
+ lista(): {
6
+ /** `catálogo ∪ definiciones`, recortado a lo que viaja (sin `url`). */
7
+ catalogo: FilaDeCatalogo[];
8
+ conectores: ConectorDelCable[];
9
+ desconocidos: string[];
10
+ ilegible?: true;
11
+ error?: string;
12
+ };
13
+ /** Da de alta un conector ESCRITO A MANO. Devuelve su id derivado, o `undefined` con el
14
+ * motivo ya puesto en `error` — el molde de `anadir`, que tampoco lanza por una frase. */
15
+ crear(def: DefinicionDeConector): string | undefined;
16
+ /**
17
+ * Por dónde se autoriza ese id: OAuth abre el navegador, `api-key` pide una clave, y
18
+ * `ninguna` no se autoriza. Lo pregunta el SERVIDOR y no viaja al cliente: lo que el cliente
19
+ * manda es la INTENCIÓN («autoriza este id»), no por dónde.
20
+ */
21
+ autenticacionDe(id: string): AutenticacionDeConector | undefined;
22
+ anadir(id: string): void;
23
+ quitar(id: string): void;
24
+ probar(id: string): Promise<void>;
25
+ /**
26
+ * Llama a una tool del conector y devuelve su texto. NO es `probar`: no toca la foto en
27
+ * memoria (`pruebas`) ni avisa con `alCambiar` — es una llamada de trabajo, no una medida del
28
+ * estado de la conexión. Lanza si el conector no está conectado, si falta autorizar, si pasa
29
+ * el tope, o con el motivo de `probar` para el resto de fallos de red.
30
+ */
31
+ llamar(id: string, nombre: string, args: Record<string, unknown>, opciones?: {
32
+ topeMs?: number;
33
+ }): Promise<string>;
34
+ /**
35
+ * Las tools del conector CON su esquema, preguntadas a la red en el acto (no la foto de
36
+ * `probar`). Para montarlas en un agente. Lanza como `llamar` si no se puede hablar con él.
37
+ */
38
+ tools(id: string): Promise<ToolConEsquema[]>;
39
+ autorizar(id: string, redirectUrl: string): Promise<void>;
40
+ guardarClave(id: string, clave: string): void;
41
+ completar(query: URLSearchParams): Promise<{
42
+ ok: boolean;
43
+ mensaje: string;
44
+ }>;
45
+ desconectar(id: string): void;
46
+ }
47
+ /**
48
+ * Cómo se autentica una conexión: un proveedor OAuth, o una cabecera ya montada. Ausente es
49
+ * «ninguna», y también «falta la credencial» — quien decide cuál de las dos lo sabe por el
50
+ * conector, no por esto.
51
+ *
52
+ * Una unión y no dos campos opcionales: `{proveedor?, cabecera?}` admite las dos cosas a la
53
+ * vez, que no significa nada, y a un tercer campo opcional le pasaría lo mismo.
54
+ */
55
+ export type CredencialDeRed = {
56
+ proveedor: OAuthClientProvider;
57
+ } | {
58
+ cabecera: {
59
+ nombre: string;
60
+ valor: string;
61
+ };
62
+ };
63
+ export interface RedDeConectores {
64
+ listarTools(url: string, credencial: CredencialDeRed | undefined, senal: AbortSignal): Promise<ToolConEsquema[]>;
65
+ /** Devuelve el texto del primer bloque `type: "text"` del resultado. Lanza `ErrorDeTool` (con
66
+ * ese texto, recortado) si el servidor contesta `isError: true` — así `llamar` distingue una
67
+ * tool que FALLÓ de un servidor que NO RESPONDE, y no lo aplana con `motivoDe`. */
68
+ llamarTool(url: string, credencial: CredencialDeRed | undefined, nombre: string, args: Record<string, unknown>, senal: AbortSignal, topeMs?: number): Promise<string>;
69
+ iniciarAutorizacion(url: string, proveedor: OAuthClientProvider): Promise<"REDIRECT" | "AUTHORIZED">;
70
+ canjearCodigo(url: string, proveedor: OAuthClientProvider, code: string): Promise<void>;
71
+ abrir(url: URL): void;
72
+ }
73
+ /**
74
+ * El servidor de la tool contestó, pero con `isError: true`: es un fallo DEL ENCARGO (una JQL
75
+ * mal escrita, un id que no existe…), no de la conexión. `llamar` la distingue de un fallo de
76
+ * red por CLASE —igual que `motivoDe` distingue un `OAuthError`— y relanza su texto TAL CUAL en
77
+ * vez de aplanarlo a «no responde»: ese texto es la única pista de qué salió mal en el encargo.
78
+ */
79
+ export declare class ErrorDeTool extends Error {
80
+ }
81
+ export declare function crearServicioDeConectores(o: {
82
+ casa: string;
83
+ red: RedDeConectores;
84
+ ahora?: () => number;
85
+ alCambiar?: () => void;
86
+ }): ServicioDeConectores;
87
+ /** Lo mínimo que `listarTools` y `llamarTool` usan del `Client` del SDK, para que la costura
88
+ * pueda doblarlo. */
89
+ export type ClienteDeMcp = Pick<Client, "connect" | "close" | "listTools" | "callTool">;
90
+ /** El transporte de un carril: lo que `Client.connect` acepta. */
91
+ export type TransporteDeMcp = Parameters<Client["connect"]>[0];
92
+ /** Lo que este código le pasa a los DOS transportes: los dos tipos del SDK lo aceptan. */
93
+ export type OpcionesDeTransporte = {
94
+ authProvider?: OAuthClientProvider;
95
+ requestInit?: RequestInit;
96
+ };
97
+ /**
98
+ * Por dónde habla `listarTools`: el cliente y los dos transportes. Existe por lo que se prueba
99
+ * sin red —el reparto de los dos carriles, o sea CUÁL de los dos errores sale—, que es justo lo
100
+ * que desde fuera de esta función no se ve. Por omisión, las piezas de verdad.
101
+ */
102
+ export interface CosturaDeRedDeConectores {
103
+ crearCliente(): ClienteDeMcp;
104
+ /** En orden: streamable-http (el protocolo de todos los medidos) y SSE (para uno viejo). */
105
+ primario(url: URL, opciones: OpcionesDeTransporte): TransporteDeMcp;
106
+ respaldo(url: URL, opciones: OpcionesDeTransporte): TransporteDeMcp;
107
+ }
108
+ export declare function redDeConectoresReal(costura?: CosturaDeRedDeConectores): RedDeConectores;
109
+ export declare function servicioDeConectoresCableado(o: {
110
+ casa: string;
111
+ alCambiar?: () => void;
112
+ }): ServicioDeConectores;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * El ESCRITOR de `~/.xonecode/auth.json` (el lector está en `configEnDisco.ts`).
3
+ *
4
+ * El contrato con el fichero del usuario: una escritura NUNCA destruye lo que ya
5
+ * había. Por eso la base de la fusión es el objeto CRUDO tal cual (no el resultado
6
+ * de `validarAuth`, que descarta en silencio entradas raras) y por eso ante un JSON
7
+ * roto se PARA sin escribir, en vez de recuperar el fichero por su cuenta.
8
+ *
9
+ * Escribe TAMBIÉN en `process.env` (ver el final de `guardarCredencial`): el fichero es
10
+ * para la próxima ejecución y la variable es para ésta, y una credencial que solo existe
11
+ * en disco no la ve nada de lo que ya está corriendo.
12
+ */
13
+ import { type Aviso } from "../../core/config.js";
14
+ import type { Proveedor } from "../../core/modelos.js";
15
+ /** Un `auth.json` existente que no se puede fusionar: no se escribe nada encima. */
16
+ export declare class AuthRotoEnDisco extends Error {
17
+ }
18
+ export declare function guardarCredencial(proveedor: Proveedor, clave: string): {
19
+ ruta: string;
20
+ avisos: Aviso[];
21
+ };
22
+ /**
23
+ * Quita la credencial de un proveedor de `auth.json`. Devuelve dónde estaba y si TODAVÍA
24
+ * queda puesta por el entorno.
25
+ *
26
+ * Mismo contrato que escribir: se fusiona sobre el objeto CRUDO —lo que este fichero no
27
+ * entiende se conserva— y ante un JSON roto se PARA sin tocar nada. Borrar lo que no
28
+ * estaba no es un error: es el estado que se pedía, y decirlo dos veces no cambia el
29
+ * fichero.
30
+ *
31
+ * De `process.env` se quita SOLO si la variable llevaba exactamente la clave que se acaba
32
+ * de borrar. Ese es el caso de `aplicarAuth` (el arranque copió `auth.json` al entorno) y
33
+ * también el de quien exportó la misma clave a mano — para el proceso son lo mismo. Una
34
+ * variable con OTRO valor es del usuario, no nuestra: no se toca, y por eso se devuelve
35
+ * `quedaEnEntorno`, para que quien lo pidió pueda decir la verdad («se borró del fichero,
36
+ * pero sigue puesta por la variable»). Desexportar la shell de nadie no está a nuestro
37
+ * alcance.
38
+ */
39
+ export declare function borrarCredencial(proveedor: Proveedor, clave?: string): {
40
+ ruta: string;
41
+ borrada: boolean;
42
+ quedaEnEntorno: boolean;
43
+ };
@@ -0,0 +1,79 @@
1
+ import { type Proveedor, type ProveedorDeclarado } from "../../core/modelos.js";
2
+ import type { CatalogoModelosPort, ModeloDisponible } from "../../core/ports.js";
3
+ /** Un fallo publicable: nunca incluye una clave ni el cuerpo remoto. */
4
+ export declare class ErrorCatalogoModelos extends Error {
5
+ constructor(mensaje: string);
6
+ }
7
+ /** La única resolución de URL de Ollama que comparten sus dos consumidores. */
8
+ export declare function baseUrlDeOllama(): string;
9
+ /** El host remoto oficial de Ollama Cloud no se mezcla con el servidor local. */
10
+ export declare function baseUrlDeOllamaCloud(): string;
11
+ export declare class CatalogoModelos implements CatalogoModelosPort {
12
+ private readonly fetchFn;
13
+ private readonly timeoutMs;
14
+ private readonly personalizados;
15
+ /**
16
+ * Los personalizados entran por una FUNCIÓN y no por una lista: la ventana de Ajustes
17
+ * los da de alta en caliente, y una lista leída al construir el catálogo se quedaría
18
+ * vieja hasta reiniciar el proceso — el mismo motivo por el que el modelo en vigor se
19
+ * re-resuelve en cada barra en vez de guardarse.
20
+ */
21
+ constructor(fetchFn?: typeof fetch, timeoutMs?: number, personalizados?: () => readonly ProveedorDeclarado[]);
22
+ listar(proveedor: Proveedor): Promise<ModeloDisponible[]>;
23
+ /**
24
+ * La clave de un proveedor, de la ÚNICA tabla que las nombra (`core/modelos.ts`).
25
+ *
26
+ * Un proveedor sin variable no puede llegar aquí —`ollama` es local y su listado no
27
+ * llama a esto—, pero si llegara, decirlo es mejor que leer `process.env[undefined]`.
28
+ */
29
+ private clave;
30
+ private pedir;
31
+ private listarOpenAi;
32
+ private listarAnthropic;
33
+ private listarGemini;
34
+ /**
35
+ * El `GET /v1/models` de un proveedor compatible con OpenAI (NVIDIA, Groq, xAI).
36
+ *
37
+ * Tres decisiones, y las tres son la misma: no afirmar lo que no se sabe.
38
+ *
39
+ * - **El filtro es el genérico** (`esIdConversacional`), no el de OpenAI: aquí los ids
40
+ * no siguen sus familias (`meta/llama-3.3-70b-instruct`, `grok-4`,
41
+ * `llama-3.1-8b-instant`), así que exigir un prefijo conocido dejaría la lista vacía.
42
+ * Se descarta solo lo que con certeza no es de conversación —embeddings, rerankers,
43
+ * voz, imagen— y lo demás se ofrece: preferimos una lista con algo de más a una que
44
+ * esconde el modelo que el usuario venía a elegir.
45
+ * - **El contexto solo si el servidor lo dice.** Por su documentación, Groq manda
46
+ * `context_window` en cada fila y los otros dos no mandan nada — no está medido
47
+ * contra los tres endpoints, y por eso se LEE si viene en vez de darse por hecho que
48
+ * viene o que no. Sin dato no hay campo, y por tanto la barra no
49
+ * pinta porcentaje — que es lo correcto, no un hueco por rellenar
50
+ * (`core/contextos.ts` no tiene tabla para estas familias, y no se le inventa una).
51
+ * - **Sin paginación.** Ninguno de los tres la declara en `/v1/models`; inventar un
52
+ * bucle de cursores contra un campo que no existe sería código que nadie ejecuta.
53
+ */
54
+ private listarCompatible;
55
+ private listarOllama;
56
+ private listarOllamaCloud;
57
+ private listarOllamaDesde;
58
+ }
59
+ /**
60
+ * Qué sabe hacer un modelo de Ollama, PREGUNTÁNDOSELO al servidor.
61
+ *
62
+ * Existe porque Ollama es el único proveedor cuyos modelos los elige el usuario y no hay
63
+ * prefijo que los describa: en esta máquina conviven `granite4.2:3b`, `qwen3.8:27b-mlx` y
64
+ * `ministral-3:3b`, y de los tres solo los dos primeros piensan. Una tabla habría sido
65
+ * adivinar; `POST /api/show` lo contesta, y devuelve `capabilities` con `"thinking"` dentro
66
+ * cuando el modelo piensa.
67
+ *
68
+ * **Importa acertar porque el fallo es duro, no blando**: medido, pedirle pensar a
69
+ * `ministral-3:3b` contesta `"ministral-3:3b" does not support thinking` y se lleva el
70
+ * turno. Por eso lo que no se pueda comprobar devuelve `undefined` —«no consta»— y
71
+ * `nivelesDeEsfuerzo` no afirma nada: sin capacidades no se manda el parámetro.
72
+ *
73
+ * No cachea, por la misma razón que `xone_navegacion` no cachea su índice: quien la llama
74
+ * ya guarda la respuesta el tiempo que le sirve, y un «este modelo piensa» viejo sobre un
75
+ * modelo que se ha sustituido es peor que no tener el dato.
76
+ */
77
+ export declare function capacidadesDeOllama(modelo: string, baseUrl?: string, fetchImpl?: typeof fetch): Promise<{
78
+ piensa: boolean;
79
+ } | undefined>;