xonecode 0.11.0 → 0.13.0

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 (85) hide show
  1. package/apps/web/dist/assets/index-D8kdTP0Z.css +1 -0
  2. package/apps/web/dist/assets/index-a1EvXQj9.js +485 -0
  3. package/apps/web/dist/assets/{php-DPbDT8rX.js → php-qXN69lAY.js} +1 -1
  4. package/apps/web/dist/assets/{ruby-Bfvws9R8.js → ruby-Cxx7RgZA.js} +1 -1
  5. package/apps/web/dist/iconos/conectores/deepwiki.png +0 -0
  6. package/apps/web/dist/iconos/conectores/jira.png +0 -0
  7. package/apps/web/dist/index.html +2 -2
  8. package/dist/agent/conectores/conectoresEnDisco.js +188 -0
  9. package/dist/agent/conectores/conectoresEnDisco.js.map +1 -0
  10. package/dist/agent/conectores/proveedorDeConector.js +56 -0
  11. package/dist/agent/conectores/proveedorDeConector.js.map +1 -0
  12. package/dist/agent/conectores/servicioDeConectores.js +496 -0
  13. package/dist/agent/conectores/servicioDeConectores.js.map +1 -0
  14. package/dist/agent/config/catalogoModelos.js +2 -0
  15. package/dist/agent/config/catalogoModelos.js.map +1 -1
  16. package/dist/agent/config/modelos.js +27 -0
  17. package/dist/agent/config/modelos.js.map +1 -1
  18. package/dist/agent/config/settingsEnDisco.js +16 -0
  19. package/dist/agent/config/settingsEnDisco.js.map +1 -1
  20. package/dist/agent/dispositivos/procesosEnMaquina.js +24 -2
  21. package/dist/agent/dispositivos/procesosEnMaquina.js.map +1 -1
  22. package/dist/agent/grafo/ejecucionCancelable.js +117 -0
  23. package/dist/agent/grafo/ejecucionCancelable.js.map +1 -0
  24. package/dist/agent/grafo/incorporarAdjunto.js +262 -0
  25. package/dist/agent/grafo/incorporarAdjunto.js.map +1 -0
  26. package/dist/agent/grafo/perfiles.js +12 -5
  27. package/dist/agent/grafo/perfiles.js.map +1 -1
  28. package/dist/agent/grafo/proyecto.js +53 -18
  29. package/dist/agent/grafo/proyecto.js.map +1 -1
  30. package/dist/agent/grafo/xoneAgent.js +25 -0
  31. package/dist/agent/grafo/xoneAgent.js.map +1 -1
  32. package/dist/agent/motores/trueforge/capacidades.js +69 -4
  33. package/dist/agent/motores/trueforge/capacidades.js.map +1 -1
  34. package/dist/agent/motores/trueforge/detencion.js +138 -0
  35. package/dist/agent/motores/trueforge/detencion.js.map +1 -0
  36. package/dist/agent/motores/trueforge/modeloLangchain.js +36 -4
  37. package/dist/agent/motores/trueforge/modeloLangchain.js.map +1 -1
  38. package/dist/agent/motores/trueforge/notas.js +49 -0
  39. package/dist/agent/motores/trueforge/notas.js.map +1 -0
  40. package/dist/agent/motores/trueforge/sesionTrueforge.js +100 -3
  41. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
  42. package/dist/agent/sesiones/adjuntosDeSesion.js +235 -0
  43. package/dist/agent/sesiones/adjuntosDeSesion.js.map +1 -0
  44. package/dist/agent/subagentes/agentesEnDisco.js +4 -0
  45. package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
  46. package/dist/agent/trazaDeErroresEnDisco.js +12 -4
  47. package/dist/agent/trazaDeErroresEnDisco.js.map +1 -1
  48. package/dist/agent/turno/depuracion.js +27 -0
  49. package/dist/agent/turno/depuracion.js.map +1 -0
  50. package/dist/agent/turno/diagnosticoDeTools.js +7 -1
  51. package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
  52. package/dist/agent/turno/informeDeTraza.js +2 -1
  53. package/dist/agent/turno/informeDeTraza.js.map +1 -1
  54. package/dist/agent/turno/interrupts.js +13 -0
  55. package/dist/agent/turno/interrupts.js.map +1 -1
  56. package/dist/agent/turno/resumenDeTool.js +4 -0
  57. package/dist/agent/turno/resumenDeTool.js.map +1 -1
  58. package/dist/agent/turno/turnoReal.js +9 -2
  59. package/dist/agent/turno/turnoReal.js.map +1 -1
  60. package/dist/cli/main.js +52 -10
  61. package/dist/cli/main.js.map +1 -1
  62. package/dist/core/actos.js.map +1 -1
  63. package/dist/core/adjuntos.js +72 -14
  64. package/dist/core/adjuntos.js.map +1 -1
  65. package/dist/core/conectores.js +191 -0
  66. package/dist/core/conectores.js.map +1 -0
  67. package/dist/core/entrega.js.map +1 -1
  68. package/dist/core/modelos.js +23 -1
  69. package/dist/core/modelos.js.map +1 -1
  70. package/dist/core/settings.js +57 -0
  71. package/dist/core/settings.js.map +1 -1
  72. package/dist/web/servidor/arranque.js +336 -6
  73. package/dist/web/servidor/arranque.js.map +1 -1
  74. package/dist/web/servidor/consolaWeb.js +29 -3
  75. package/dist/web/servidor/consolaWeb.js.map +1 -1
  76. package/dist/web/servidor/servidor.js +16 -1
  77. package/dist/web/servidor/servidor.js.map +1 -1
  78. package/dist/web/servidor/transporte.js.map +1 -1
  79. package/dist/web/servidor/vestibulo.js +122 -11
  80. package/dist/web/servidor/vestibulo.js.map +1 -1
  81. package/dist/web/servidor/visorOpenui.js +25 -3
  82. package/dist/web/servidor/visorOpenui.js.map +1 -1
  83. package/package.json +1 -1
  84. package/apps/web/dist/assets/index-BAyybSz-.css +0 -1
  85. package/apps/web/dist/assets/index-BNCMVjWv.js +0 -485
@@ -0,0 +1,496 @@
1
+ /**
2
+ * Lo que la consola hace con un conector, en un solo sitio y con la red por COSTURA.
3
+ *
4
+ * Todo lo caro entra por `RedDeConectores`, que se pasa al construir: así los tests de la
5
+ * regla no abren un socket, y la composición de verdad vive en `servicioDeConectoresCableado`
6
+ * con su propio test — el patrón de fallo de siempre es una composición de producción
7
+ * dentro de algo que todos los tests doblan.
8
+ *
9
+ * **La prueba es una FOTO en memoria**, como la de dispositivos: se mide al pulsar y tras
10
+ * autorizar, no hay sondeo, y un proceso nuevo empieza sin foto — ausente es «no se ha
11
+ * probado», no «falla».
12
+ */
13
+ import { randomBytes } from "node:crypto";
14
+ import { UnauthorizedError, auth } from "@modelcontextprotocol/sdk/client/auth.js";
15
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
16
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
17
+ import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
18
+ import { CATALOGO_DE_CONECTORES, conectorDeDefinicion, conectorDelCatalogo, esConectorPropio, estadoDeConector, filaDeCatalogo, idDeConectorDesdeNombre, interpretarCallback, motivoDeDefinicionInaceptable, TOPE_DE_CONEXION_MS, TTL_DE_AUTORIZACION_MS, } from "../../core/conectores.js";
19
+ import { motivoDeClaveInaceptable } from "../../core/config.js";
20
+ import { anadirConector, ErrorDeFicheroDeConectores, guardarDefinicion, guardarOAuth, leerConectores, leerOAuth, olvidarDefinicion, olvidarOAuth, quitarConector, } from "./conectoresEnDisco.js";
21
+ import { ProveedorDeConector } from "./proveedorDeConector.js";
22
+ import { abrirEnSistema } from "../cloudstudio/cloudstudioMcp.js";
23
+ export function crearServicioDeConectores(o) {
24
+ const ahora = o.ahora ?? Date.now;
25
+ const pruebas = new Map();
26
+ const pendientes = new Map();
27
+ /** La frase de la última operación que falló. Viaja en el mensaje: `informar` no llega al
28
+ * navegador desde el vestíbulo, y Ajustes se abre sin proyecto. */
29
+ let error;
30
+ const cambio = () => { try {
31
+ o.alCambiar?.();
32
+ }
33
+ catch { /* reemitir no puede tumbar la operación */ } };
34
+ const hayPendienteVivo = (id) => [...pendientes.values()].some((p) => p.id === id && p.expira >= ahora());
35
+ /** Retira los pendientes de ESTE conector, vivos o no: el callback viejo contestará «ya se
36
+ * usó». Sin esto, `quitar`/`desconectar` dejan un canje en vuelo que escribe tokens de un
37
+ * conector ya retirado (o deja «Esperando al navegador…» encendido diez minutos). */
38
+ const retirarPendientes = (id) => { for (const [s, p] of pendientes)
39
+ if (p.id === id)
40
+ pendientes.delete(s); };
41
+ /** La misma frase en los dos sitios donde un `conectores.json` ilegible impide saber qué está
42
+ * añadido: al fallar `anadir` y al rechazar `autorizar` por la misma causa (ver más abajo). */
43
+ const FICHERO_ILEGIBLE = "el fichero de conectores no se entiende: revísalo o bórralo a mano";
44
+ /** La frase de un fallo AL GUARDAR EN DISCO, nunca `error.message`: un `ErrorDeFicheroDeConectores`
45
+ * lleva la ruta ABSOLUTA del fichero (`conectoresEnDisco.ts#paraEscribir`), y un `EACCES`/`ENOSPC`
46
+ * de Node también la lleva — ninguna ruta de la máquina viaja por el cable. */
47
+ const motivoDeFallo = (e) => {
48
+ if (e instanceof ErrorDeFicheroDeConectores)
49
+ return FICHERO_ILEGIBLE;
50
+ const code = e?.code;
51
+ return typeof code === "string" ? `no se pudo guardar (código ${code})` : "no se pudo guardar";
52
+ };
53
+ /** Para las operaciones de disco: lo que falla se DICE en `error`, no se lanza al cable.
54
+ * Devuelve si fue bien, que es lo único que `crear` necesita para saber si encadenar. */
55
+ const operar = (hacer) => {
56
+ let bien = false;
57
+ try {
58
+ hacer();
59
+ error = undefined;
60
+ bien = true;
61
+ }
62
+ catch (e) {
63
+ error = motivoDeFallo(e);
64
+ }
65
+ cambio();
66
+ return bien;
67
+ };
68
+ /**
69
+ * Un id resuelto contra TODO lo que hay: el catálogo y las definiciones del registro que se acaba
70
+ * de leer. Las dos familias vuelven como la MISMA fila (`conectorDeDefinicion`), así que de aquí
71
+ * para abajo nada sabe de dónde salió un conector.
72
+ *
73
+ * El registro entra por PARÁMETRO en vez de leerse aquí, y no es ceremonia: quien resuelve
74
+ * después de un `await` tiene que volver a mirarlo —el mundo pudo cambiar mientras la red
75
+ * respondía—, y quien resuelve varios ids tiene que hacerlo contra UNA foto. Una lectura por id
76
+ * serían dos ficheros distintos a mitad de camino. **Y no se cachea**: una definición vieja que
77
+ * afirma que un servidor existe es peor que no tener índice, la misma regla que
78
+ * `proveedoresPersonalizados()` y `SkillsEnDisco`.
79
+ */
80
+ const resolver = (id, definiciones) => {
81
+ const delCatalogo = conectorDelCatalogo(id);
82
+ if (delCatalogo !== undefined)
83
+ return delCatalogo;
84
+ const def = definiciones[id];
85
+ return def === undefined ? undefined : conectorDeDefinicion(id, def);
86
+ };
87
+ /**
88
+ * Resuelve un id y exige que además esté AÑADIDO: es lo que necesitan las operaciones que
89
+ * ESCRIBEN una credencial. Sin esto, un `crear` cuya escritura falló —o un `quitar` que le ganó
90
+ * la carrera— dejaría una clave o unos tokens huérfanos en el fichero de secretos, sin ningún
91
+ * «Quitar»/«Desconectar» que los alcanzara (esos botones solo salen para lo que YA está en la
92
+ * lista). Devuelve `undefined` con la frase puesta en `error`.
93
+ */
94
+ const anadido = (id) => {
95
+ const registro = leerConectores(o.casa);
96
+ const c = resolver(id, registro.definiciones);
97
+ if (c === undefined) {
98
+ error = `«${id}» no es un conector de esta consola`;
99
+ cambio();
100
+ return undefined;
101
+ }
102
+ if (!registro.anadidos.includes(id)) {
103
+ // El fichero ilegible es la MISMA causa que ya dejó `anadir` en `error`: se repite su
104
+ // frase en vez de inventar una nueva que la pisaría. Genuinamente ausente (un `quitar`
105
+ // de antes, o nunca se añadió) lleva la suya propia.
106
+ error = registro.ilegible === true ? FICHERO_ILEGIBLE : `«${id}» no está añadido`;
107
+ cambio();
108
+ return undefined;
109
+ }
110
+ return c;
111
+ };
112
+ /**
113
+ * ¿Hay con qué autenticarse? La MISMA pregunta para las dos familias —tokens o clave—, que es
114
+ * lo que contesta `estadoDeConector`: quien mira el fichero de secretos resuelve la suya y le
115
+ * pasa un booleano.
116
+ */
117
+ const tieneCredencial = (autenticacion, guardado) => {
118
+ if (autenticacion === "oauth")
119
+ return guardado.tokens !== undefined;
120
+ if (autenticacion === "api-key")
121
+ return guardado.clave !== undefined;
122
+ return false;
123
+ };
124
+ /**
125
+ * La credencial CON LA QUE SE HABLA con el servidor, o `undefined` si no hay ninguna o le falta
126
+ * algo — y ahí las dos familias se juntan: un OAuth sin tokens (o sin el redirect con el que se
127
+ * registró su cliente, que es lo que ata el `redirect_uri`) y un `api-key` sin clave son el
128
+ * mismo «no hay con qué». Una unión y no dos campos opcionales porque quien la recibe tiene que
129
+ * elegir UN carril.
130
+ *
131
+ * `Bearer ` lo pone el CÓDIGO y no se le pide a nadie: `motivoDeClaveInaceptable` no deja pasar
132
+ * un valor con espacios, así que el prefijo no cabe en la clave que pega una persona.
133
+ */
134
+ const credencialDe = (c, guardado) => {
135
+ if (c.autenticacion === "oauth") {
136
+ return guardado.tokens !== undefined && guardado.redirectUri !== undefined
137
+ ? { proveedor: proveedor(c.id, guardado.redirectUri, "") }
138
+ : undefined;
139
+ }
140
+ if (c.autenticacion === "api-key")
141
+ return guardado.clave === undefined ? undefined : { cabecera: `Bearer ${guardado.clave}` };
142
+ return undefined;
143
+ };
144
+ const proveedor = (id, redirectUrl, state, alRedirigir = () => { }) => new ProveedorDeConector({ casa: o.casa, id, redirectUrl, state, alRedirigir });
145
+ const motivoDe = (error) => {
146
+ if (error instanceof UnauthorizedError)
147
+ return "falta autorizar";
148
+ const code = error?.code;
149
+ if (typeof code === "number")
150
+ return `no responde (HTTP ${code})`;
151
+ if (typeof code === "string")
152
+ return `no responde (código ${code})`;
153
+ return "no responde";
154
+ };
155
+ const servicio = {
156
+ lista() {
157
+ const registro = leerConectores(o.casa);
158
+ const vivos = new Set([...pendientes.values()].filter((p) => p.expira >= ahora()).map((p) => p.id));
159
+ return {
160
+ // Las filas de CÓDIGO primero y las definiciones después, y las dos con la misma forma.
161
+ // Es lo que hace que el cliente resuelva un `custom:` con la misma línea que un `jira`,
162
+ // y lo que deja VER una definición huérfana —la que dejó un `quitar` que no olvidó su
163
+ // definición, o una escrita a mano en el fichero—: sale como fila, con su nombre, y se
164
+ // puede volver a añadir. Un fantasma invisible no se arregla.
165
+ catalogo: [
166
+ ...CATALOGO_DE_CONECTORES.map(filaDeCatalogo),
167
+ ...Object.entries(registro.definiciones).map(([id, def]) => filaDeCatalogo(conectorDeDefinicion(id, def))),
168
+ ],
169
+ desconocidos: registro.desconocidos,
170
+ ...(registro.ilegible === true ? { ilegible: true } : {}),
171
+ ...(error === undefined ? {} : { error }),
172
+ // Una fila por id añadido, y `leerConectores` solo llama vivo a un id que RESUELVE, así
173
+ // que las dos cosas salen de la MISMA lectura y aquí no hay un `undefined` que defender
174
+ // —el `flatMap` lo comprueba en vez de afirmarlo—. Es lo que deja que la lista viaje sin
175
+ // nombre: el cliente lo busca en el catálogo, que ahora trae también las definiciones.
176
+ conectores: registro.anadidos.flatMap((id) => {
177
+ const c = resolver(id, registro.definiciones);
178
+ if (c === undefined)
179
+ return [];
180
+ const prueba = pruebas.get(id);
181
+ const guardado = leerOAuth(o.casa, id);
182
+ return [{
183
+ id,
184
+ estado: estadoDeConector(c, tieneCredencial(c.autenticacion, guardado)),
185
+ ...(prueba === undefined ? {} : { prueba }),
186
+ ...(vivos.has(id) ? { autorizando: true } : {}),
187
+ }];
188
+ }),
189
+ };
190
+ },
191
+ autenticacionDe(id) {
192
+ // Sin `cambio()` y sin tocar `error`: es una PREGUNTA, y quien la hace ya sabe qué contar
193
+ // si la respuesta es `undefined` — escribir una frase aquí la pondría en pantalla cada vez
194
+ // que alguien pulsa un botón que no lleva a nada.
195
+ return resolver(id, leerConectores(o.casa).definiciones)?.autenticacion;
196
+ },
197
+ crear(def) {
198
+ const registro = leerConectores(o.casa);
199
+ // Sin poder leer qué está ocupado no se puede comprobar el nombre, y crear a ciegas
200
+ // pisaría una definición que ya existe. Es la misma causa que el `anadir` de al lado.
201
+ if (registro.ilegible === true) {
202
+ error = FICHERO_ILEGIBLE;
203
+ cambio();
204
+ return undefined;
205
+ }
206
+ // Lo ocupado son los AÑADIDOS y los DEFINIDOS: una definición huérfana —dejada por un
207
+ // `quitar` que falló, o escrita a mano en el fichero— también ocupa su sitio, porque
208
+ // volver a crearla la pisa.
209
+ const motivo = motivoDeDefinicionInaceptable(def, [...registro.anadidos, ...Object.keys(registro.definiciones)]);
210
+ // Fuera de `operar`: la frase es NUESTRA y no una ruta, así que no pasa por
211
+ // `motivoDeFallo` — que solo sabe traducir fallos de DISCO.
212
+ if (motivo !== undefined) {
213
+ error = motivo;
214
+ cambio();
215
+ return undefined;
216
+ }
217
+ const id = idDeConectorDesdeNombre(def.nombre);
218
+ // La definición ANTES que el alta: si el segundo paso falla, el primero deja una
219
+ // definición que nadie puede alcanzar —y que por eso cuenta como ocupada—, mientras que al
220
+ // revés quedaría un id añadido sin fila, o sea una fila de la lista sin nombre.
221
+ const bien = operar(() => { guardarDefinicion(o.casa, id, def); anadirConector(o.casa, id); });
222
+ // Y solo con la escritura hecha se devuelve el id: quien encadena la autorización no puede
223
+ // abrir un navegador (ni pedir una clave) por un conector que no llegó a estar añadido.
224
+ return bien ? id : undefined;
225
+ },
226
+ anadir(id) {
227
+ // Fuera de `operar`: su frase lleva el id y no una ruta, así que no pasa por
228
+ // `motivoDeFallo` — que solo sabe traducir fallos de DISCO.
229
+ if (resolver(id, leerConectores(o.casa).definiciones) === undefined) {
230
+ error = `«${id}» no es un conector de esta consola`;
231
+ cambio();
232
+ return;
233
+ }
234
+ operar(() => { anadirConector(o.casa, id); });
235
+ },
236
+ // `retirarPendientes` va ANTES de `operar`: su `cambio()` es SÍNCRONO, así que quien lo
237
+ // escuche y lea `lista()` dentro del callback vería `autorizando: true` un instante de
238
+ // más si el pendiente se retirara después — el mismo síntoma que `autorizar` evita al
239
+ // borrar su pendiente antes de avisar de un fallo.
240
+ //
241
+ // De un conector PROPIO se lleva también su definición: sin eso queda su fila en el catálogo
242
+ // —que ahora trae las definiciones— y el id desaparece de `anadidos`, o sea un fantasma en
243
+ // «Disponibles» que nadie puede quitar ni volver a añadir (su nombre está ocupado por una
244
+ // definición invisible). El molde de «dos especialistas, uno sin mantener y en silencio».
245
+ quitar(id) {
246
+ retirarPendientes(id);
247
+ operar(() => {
248
+ quitarConector(o.casa, id);
249
+ olvidarOAuth(o.casa, id);
250
+ if (esConectorPropio(id))
251
+ olvidarDefinicion(o.casa, id);
252
+ pruebas.delete(id);
253
+ });
254
+ },
255
+ desconectar(id) { retirarPendientes(id); operar(() => { olvidarOAuth(o.casa, id); pruebas.delete(id); }); },
256
+ guardarClave(id, clave) {
257
+ const c = anadido(id);
258
+ if (c === undefined)
259
+ return;
260
+ // Una clave guardada para un conector que no la pide es una credencial huérfana: nadie la
261
+ // usaría y no habría botón que la borrara. El carril lo elige la autenticación del conector.
262
+ if (c.autenticacion !== "api-key") {
263
+ error = `«${c.nombre}» no se autentica con una clave`;
264
+ cambio();
265
+ return;
266
+ }
267
+ // La criba es la de siempre (`core/config.ts`): rechaza la vacía, una línea `NOMBRE=valor`
268
+ // y cualquier cosa con espacios, porque esto acaba en una cabecera HTTP. Se comprueba ANTES
269
+ // de escribir, y su frase sale de aquí —fuera de `operar`— porque no es un fallo de DISCO.
270
+ const motivo = motivoDeClaveInaceptable(clave);
271
+ if (motivo !== undefined) {
272
+ error = motivo;
273
+ cambio();
274
+ return;
275
+ }
276
+ // Se FUSIONA con lo que hubiera en vez de escribir `{clave}`: el `clientInformation` y los
277
+ // tokens de un conector que se autorizó antes no son de esta operación.
278
+ operar(() => { guardarOAuth(o.casa, id, { ...leerOAuth(o.casa, id), clave }); });
279
+ },
280
+ async probar(id) {
281
+ const c = resolver(id, leerConectores(o.casa).definiciones);
282
+ if (c === undefined) {
283
+ error = `«${id}» no es un conector de esta consola`;
284
+ cambio();
285
+ return;
286
+ }
287
+ // Con una autorización abierta no se toca la red: un 401 haría que el SDK arrancara
288
+ // OTRA y pisara el verificador PKCE —uno por conector— que el callback va a necesitar.
289
+ if (hayPendienteVivo(id)) {
290
+ cambio();
291
+ return;
292
+ }
293
+ const guardado = leerOAuth(o.casa, id);
294
+ // Un conector que PIDE autenticación y no tiene con qué NO se prueba contra la red: el SDK,
295
+ // al ver el 401, intentaría registrar un cliente —con un redirect que no es ninguno— y
296
+ // dejaría basura en el fichero. La respuesta ya se sabe sin preguntar, y vale igual para un
297
+ // OAuth sin tokens que para un `api-key` sin clave: es el mismo «falta autorizar».
298
+ const credencial = credencialDe(c, guardado);
299
+ if (credencial === undefined && c.autenticacion !== "ninguna") {
300
+ pruebas.set(id, { cuando: ahora(), ok: false, motivo: "falta autorizar" });
301
+ cambio();
302
+ return;
303
+ }
304
+ const control = new AbortController();
305
+ let reloj;
306
+ const tope = new Promise((_, rechazar) => {
307
+ reloj = setTimeout(() => { control.abort(); rechazar(new Error("tope")); }, TOPE_DE_CONEXION_MS);
308
+ });
309
+ try {
310
+ // Sin autenticación la credencial es `undefined` y así se pasa: un `authProvider` haría
311
+ // que el SDK intentara un registro contra un servidor que no lo pide.
312
+ const tools = await Promise.race([o.red.listarTools(c.url, credencial, control.signal), tope]);
313
+ // El mundo pudo cambiar MIENTRAS la red respondía: un `quitar`/`desconectar` disparado
314
+ // después de pulsar «Probar» pero antes de que conteste corre en SÍNCRONO y no espera a
315
+ // esto. Sin repetir aquí la comprobación, este resultado — de una petición que arrancó
316
+ // contra un estado que ya no existe — resucitaría un «Conectado» sobre un conector que
317
+ // se acaba de quitar o desconectar. No se compara el VALOR de los tokens contra
318
+ // `guardado`: el propio SDK puede refrescarlos dentro de `listarTools` y eso sí sigue
319
+ // siendo un éxito legítimo — solo importa que siga añadido y, si hace falta, autorizado.
320
+ const sigueAnadido = leerConectores(o.casa).anadidos.includes(id);
321
+ const sigueAutorizado = c.autenticacion === "ninguna" || credencialDe(c, leerOAuth(o.casa, id)) !== undefined;
322
+ if (sigueAnadido && sigueAutorizado) {
323
+ pruebas.set(id, { cuando: ahora(), ok: true, tools });
324
+ // Un `error` de una operación ANTERIOR no puede quedarse junto a un estado que ya es
325
+ // correcto: «ausente ≠ vacío» también vale para lo que ya no es cierto.
326
+ error = undefined;
327
+ }
328
+ }
329
+ catch (error) {
330
+ pruebas.set(id, { cuando: ahora(), ok: false, motivo: control.signal.aborted ? "no responde (no contestó a tiempo)" : motivoDe(error) });
331
+ }
332
+ finally {
333
+ clearTimeout(reloj);
334
+ cambio();
335
+ }
336
+ },
337
+ async autorizar(id, redirectUrl) {
338
+ // `autorizar` resolvía el id SOLO contra el catálogo, nunca contra lo AÑADIDO: si el
339
+ // `anadir` del mismo clic había fallado al escribir —o un `quitar` le ganó la carrera—
340
+ // esto abría un navegador de verdad, completaba un OAuth de verdad y dejaba tokens
341
+ // huérfanos en `conectores-oauth.json` sin ningún «Quitar»/«Desconectar» que los
342
+ // alcanzara (esos botones solo salen para lo que YA está en la lista). Se comprueba lo
343
+ // añadido, y ANTES de tocar la red, no después de escribir tokens.
344
+ const c = anadido(id);
345
+ if (c === undefined)
346
+ return;
347
+ // La guarda SIMÉTRICA de `guardarClave`: abrir el navegador por un conector que se autentica
348
+ // con una clave registraría un cliente OAuth contra un servidor que no lo pide y dejaría
349
+ // tokens que nadie va a usar ni borrar. El carril lo elige la autenticación del conector, y
350
+ // esto es el fail-closed por si quien enruta se equivoca.
351
+ if (c.autenticacion !== "oauth") {
352
+ error = `«${c.nombre}» no se autoriza con el navegador`;
353
+ cambio();
354
+ return;
355
+ }
356
+ // UNA autorización viva por conector: el verificador PKCE se guarda por conector, así
357
+ // que una nueva invalida la anterior. Pulsar «Conectar» otra vez es también cómo se
358
+ // recupera quien cerró la pestaña a medias.
359
+ retirarPendientes(id);
360
+ const state = randomBytes(32).toString("base64url");
361
+ pendientes.set(state, { id, expira: ahora() + TTL_DE_AUTORIZACION_MS, redirectUrl });
362
+ // NO se limpia `error` aquí: en este instante no se sabe todavía si `autorizar` va a ir
363
+ // bien —solo se ha apuntado un pendiente—, y limpiarlo a ciegas borraría el error de UN
364
+ // CLIC ANTERIOR (por ejemplo, el fallo de una operación anterior sobre OTRO conector)
365
+ // antes de que nadie lo viera. Se limpia donde `autorizar` de verdad tiene éxito: la
366
+ // rama `AUTHORIZED` llama a `probar`, que ya limpia el suyo al ir bien; la rama
367
+ // `REDIRECT` no ha decidido nada todavía —quien lo decide es `completar`, que ya limpia
368
+ // el suyo al canjear el código—.
369
+ cambio();
370
+ try {
371
+ const resultado = await o.red.iniciarAutorizacion(c.url, proveedor(id, redirectUrl, state, (url) => o.red.abrir(url)));
372
+ // Ya autorizado (tokens válidos): no hay navegador que esperar.
373
+ if (resultado === "AUTHORIZED") {
374
+ pendientes.delete(state);
375
+ await servicio.probar(id);
376
+ }
377
+ }
378
+ catch (e) {
379
+ // Descubrimiento, registro o red: sin esto la pantalla esperaría a un navegador que
380
+ // nunca se abrió hasta que caducara el plazo.
381
+ pendientes.delete(state);
382
+ pruebas.set(id, { cuando: ahora(), ok: false, motivo: motivoDe(e) });
383
+ cambio();
384
+ }
385
+ },
386
+ async completar(query) {
387
+ // `interpretarCallback` CONSUME el pendiente, así que su redirect se lee antes: el
388
+ // canje tiene que ir con el MISMO `redirect_uri` con el que se pidió el código.
389
+ const redirect = pendientes.get(query.get("state") ?? "")?.redirectUrl;
390
+ const r = interpretarCallback(query, pendientes, ahora());
391
+ cambio();
392
+ if (!r.ok || redirect === undefined)
393
+ return { ok: false, mensaje: r.ok ? "esa autorización ya no está pendiente" : r.motivo };
394
+ // Se vuelve a leer el registro: entre pedir la autorización y volver del navegador puede
395
+ // haber pasado media hora, y el conector puede haberse quitado —o definido— por el camino.
396
+ const c = resolver(r.id, leerConectores(o.casa).definiciones);
397
+ if (c === undefined) {
398
+ cambio();
399
+ return { ok: false, mensaje: "ese conector ya no existe" };
400
+ }
401
+ try {
402
+ await o.red.canjearCodigo(c.url, proveedor(r.id, redirect, ""), r.code);
403
+ }
404
+ catch (error) {
405
+ pruebas.set(r.id, { cuando: ahora(), ok: false, motivo: motivoDe(error) });
406
+ cambio();
407
+ return { ok: false, mensaje: "no se pudo completar la autorización: vuelve a pulsar Conectar" };
408
+ }
409
+ // Un `quitar()` puede correr MIENTRAS `canjearCodigo` está en vuelo — es el único momento
410
+ // en que esto importa: antes de este `await` todo es síncrono, así que si `quitar` hubiera
411
+ // corrido antes, `retirarPendientes` ya habría hecho que `interpretarCallback` fallara
412
+ // arriba. Si ganó la carrera AQUÍ, el SDK ya escribió tokens frescos (su `saveTokens`,
413
+ // dentro de `canjearCodigo`) para un conector que ya NO está añadido — se olvidan otra
414
+ // vez, sin dejarlos huérfanos, y no se corre `probar` sobre algo que ya no está.
415
+ if (!leerConectores(o.casa).anadidos.includes(r.id)) {
416
+ try {
417
+ olvidarOAuth(o.casa, r.id);
418
+ }
419
+ catch { /* si esto también falla no hay más que deshacer */ }
420
+ cambio();
421
+ return { ok: false, mensaje: `«${c.nombre}» ya no está añadido` };
422
+ }
423
+ // El canje fue bien: un `error` de una operación anterior ya no describe el estado
424
+ // actual. No se deja esperando a que `probar` lo limpie — puede fallar por su cuenta
425
+ // sin que eso reviva un error que ya no es cierto.
426
+ error = undefined;
427
+ await servicio.probar(r.id);
428
+ return { ok: true, mensaje: `${c.nombre} conectado` };
429
+ },
430
+ };
431
+ return servicio;
432
+ }
433
+ const COSTURA_REAL = {
434
+ crearCliente: () => new Client({ name: "xonecode", version: "0" }),
435
+ primario: (url, opciones) => new StreamableHTTPClientTransport(url, opciones),
436
+ respaldo: (url, opciones) => new SSEClientTransport(url, opciones),
437
+ };
438
+ export function redDeConectoresReal(costura = COSTURA_REAL) {
439
+ return {
440
+ async listarTools(url, credencial, senal) {
441
+ // Los dos carriles de credencial, cada uno por SU palanca del SDK: `authProvider` para
442
+ // OAuth (es quien refresca tokens y firma la petición) y una cabecera para una clave. No
443
+ // hay un tercer camino, y la unión es lo que impide pasar los dos a la vez.
444
+ const cabeceras = credencial !== undefined && "cabecera" in credencial ? { Authorization: credencial.cabecera } : undefined;
445
+ const opciones = {
446
+ ...(credencial !== undefined && "proveedor" in credencial ? { authProvider: credencial.proveedor } : {}),
447
+ requestInit: { signal: senal, ...(cabeceras === undefined ? {} : { headers: cabeceras }) },
448
+ };
449
+ // Un `Client` NUEVO para el intento por SSE, como el ejemplo de compatibilidad del
450
+ // propio SDK: el que falló al conectar no se reutiliza. Los tres medidos hablan
451
+ // streamable-http; el SSE queda para un servidor viejo.
452
+ let cliente = costura.crearCliente();
453
+ try {
454
+ await cliente.connect(costura.primario(new URL(url), opciones), { signal: senal });
455
+ }
456
+ catch (error) {
457
+ if (error instanceof UnauthorizedError || senal.aborted)
458
+ throw error;
459
+ await cliente.close().catch(() => { });
460
+ cliente = costura.crearCliente();
461
+ try {
462
+ await cliente.connect(costura.respaldo(new URL(url), opciones), { signal: senal });
463
+ }
464
+ catch {
465
+ // El motivo lo trae el PRIMARIO, así que el del respaldo se DESCARTA. Medido: un 401
466
+ // de streamable-http llega como un `Error` con `code: 401` —y `motivoDe` lo convierte
467
+ // en «no responde (HTTP 401)»—, mientras que un fallo de red por el carril del SSE es
468
+ // un `Error` pelado sin código. Relanzando el del respaldo, una clave mala se leía
469
+ // exactamente igual que un host que no resuelve: «no responde», sin el código. Que el
470
+ // respaldo también falle NO quiere decir que el diagnóstico del primario fuera el
471
+ // equivocado: quiere decir que este servidor no habla ninguno de los dos protocolos,
472
+ // y lo que hay que enseñar es por qué falló el que sí era el suyo.
473
+ throw error;
474
+ }
475
+ }
476
+ try {
477
+ const { tools } = await cliente.listTools(undefined, { signal: senal });
478
+ return tools.map((t) => ({
479
+ nombre: t.name,
480
+ ...(t.description ? { descripcion: t.description } : {}),
481
+ ...(typeof t.annotations?.readOnlyHint === "boolean" ? { soloLectura: t.annotations.readOnlyHint } : {}),
482
+ }));
483
+ }
484
+ finally {
485
+ await cliente.close().catch(() => { });
486
+ }
487
+ },
488
+ iniciarAutorizacion: (url, proveedor) => auth(proveedor, { serverUrl: url }),
489
+ canjearCodigo: async (url, proveedor, code) => { await auth(proveedor, { serverUrl: url, authorizationCode: code }); },
490
+ abrir: abrirEnSistema,
491
+ };
492
+ }
493
+ export function servicioDeConectoresCableado(o) {
494
+ return crearServicioDeConectores({ casa: o.casa, red: redDeConectoresReal(), ...(o.alCambiar ? { alCambiar: o.alCambiar } : {}) });
495
+ }
496
+ //# sourceMappingURL=servicioDeConectores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"servicioDeConectores.js","sourceRoot":"","sources":["../../../src/agent/conectores/servicioDeConectores.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,8 @@ export class CatalogoModelos {
95
95
  case "groq":
96
96
  case "xai":
97
97
  case "deepseek":
98
+ case "opencode-go":
99
+ case "opencode-zen":
98
100
  return this.listarCompatible(proveedor);
99
101
  default:
100
102
  // Un personalizado va por el mismo camino: es un endpoint compatible con OpenAI y
@@ -1 +1 @@
1
- {"version":3,"file":"catalogoModelos.js","sourceRoot":"","sources":["../../../src/agent/config/catalogoModelos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalogoModelos.js","sourceRoot":"","sources":["../../../src/agent/config/catalogoModelos.ts"],"names":[],"mappings":"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"}