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.
- package/apps/web/dist/assets/index-D8kdTP0Z.css +1 -0
- package/apps/web/dist/assets/index-a1EvXQj9.js +485 -0
- package/apps/web/dist/assets/{php-DPbDT8rX.js → php-qXN69lAY.js} +1 -1
- package/apps/web/dist/assets/{ruby-Bfvws9R8.js → ruby-Cxx7RgZA.js} +1 -1
- package/apps/web/dist/iconos/conectores/deepwiki.png +0 -0
- package/apps/web/dist/iconos/conectores/jira.png +0 -0
- package/apps/web/dist/index.html +2 -2
- package/dist/agent/conectores/conectoresEnDisco.js +188 -0
- package/dist/agent/conectores/conectoresEnDisco.js.map +1 -0
- package/dist/agent/conectores/proveedorDeConector.js +56 -0
- package/dist/agent/conectores/proveedorDeConector.js.map +1 -0
- package/dist/agent/conectores/servicioDeConectores.js +496 -0
- package/dist/agent/conectores/servicioDeConectores.js.map +1 -0
- package/dist/agent/config/catalogoModelos.js +2 -0
- package/dist/agent/config/catalogoModelos.js.map +1 -1
- package/dist/agent/config/modelos.js +27 -0
- package/dist/agent/config/modelos.js.map +1 -1
- package/dist/agent/config/settingsEnDisco.js +16 -0
- package/dist/agent/config/settingsEnDisco.js.map +1 -1
- package/dist/agent/dispositivos/procesosEnMaquina.js +24 -2
- package/dist/agent/dispositivos/procesosEnMaquina.js.map +1 -1
- package/dist/agent/grafo/ejecucionCancelable.js +117 -0
- package/dist/agent/grafo/ejecucionCancelable.js.map +1 -0
- package/dist/agent/grafo/incorporarAdjunto.js +262 -0
- package/dist/agent/grafo/incorporarAdjunto.js.map +1 -0
- package/dist/agent/grafo/perfiles.js +12 -5
- package/dist/agent/grafo/perfiles.js.map +1 -1
- package/dist/agent/grafo/proyecto.js +53 -18
- package/dist/agent/grafo/proyecto.js.map +1 -1
- package/dist/agent/grafo/xoneAgent.js +25 -0
- package/dist/agent/grafo/xoneAgent.js.map +1 -1
- package/dist/agent/motores/trueforge/capacidades.js +69 -4
- package/dist/agent/motores/trueforge/capacidades.js.map +1 -1
- package/dist/agent/motores/trueforge/detencion.js +138 -0
- package/dist/agent/motores/trueforge/detencion.js.map +1 -0
- package/dist/agent/motores/trueforge/modeloLangchain.js +36 -4
- package/dist/agent/motores/trueforge/modeloLangchain.js.map +1 -1
- package/dist/agent/motores/trueforge/notas.js +49 -0
- package/dist/agent/motores/trueforge/notas.js.map +1 -0
- package/dist/agent/motores/trueforge/sesionTrueforge.js +100 -3
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/sesiones/adjuntosDeSesion.js +235 -0
- package/dist/agent/sesiones/adjuntosDeSesion.js.map +1 -0
- package/dist/agent/subagentes/agentesEnDisco.js +4 -0
- package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
- package/dist/agent/trazaDeErroresEnDisco.js +12 -4
- package/dist/agent/trazaDeErroresEnDisco.js.map +1 -1
- package/dist/agent/turno/depuracion.js +27 -0
- package/dist/agent/turno/depuracion.js.map +1 -0
- package/dist/agent/turno/diagnosticoDeTools.js +7 -1
- package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
- package/dist/agent/turno/informeDeTraza.js +2 -1
- package/dist/agent/turno/informeDeTraza.js.map +1 -1
- package/dist/agent/turno/interrupts.js +13 -0
- package/dist/agent/turno/interrupts.js.map +1 -1
- package/dist/agent/turno/resumenDeTool.js +4 -0
- package/dist/agent/turno/resumenDeTool.js.map +1 -1
- package/dist/agent/turno/turnoReal.js +9 -2
- package/dist/agent/turno/turnoReal.js.map +1 -1
- package/dist/cli/main.js +52 -10
- package/dist/cli/main.js.map +1 -1
- package/dist/core/actos.js.map +1 -1
- package/dist/core/adjuntos.js +72 -14
- package/dist/core/adjuntos.js.map +1 -1
- package/dist/core/conectores.js +191 -0
- package/dist/core/conectores.js.map +1 -0
- package/dist/core/entrega.js.map +1 -1
- package/dist/core/modelos.js +23 -1
- package/dist/core/modelos.js.map +1 -1
- package/dist/core/settings.js +57 -0
- package/dist/core/settings.js.map +1 -1
- package/dist/web/servidor/arranque.js +336 -6
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/consolaWeb.js +29 -3
- package/dist/web/servidor/consolaWeb.js.map +1 -1
- package/dist/web/servidor/servidor.js +16 -1
- package/dist/web/servidor/servidor.js.map +1 -1
- package/dist/web/servidor/transporte.js.map +1 -1
- package/dist/web/servidor/vestibulo.js +122 -11
- package/dist/web/servidor/vestibulo.js.map +1 -1
- package/dist/web/servidor/visorOpenui.js +25 -3
- package/dist/web/servidor/visorOpenui.js.map +1 -1
- package/package.json +1 -1
- package/apps/web/dist/assets/index-BAyybSz-.css +0 -1
- 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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"}
|