@meshagent/meshagent 0.44.12 → 0.45.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/CHANGELOG.md +8 -0
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/meshagent-client.d.ts +390 -372
- package/dist/browser/meshagent-client.js +841 -1040
- package/dist/browser/oauth-scopes.d.ts +1 -1
- package/dist/browser/oauth-scopes.js +64 -14
- package/dist/browser/participant-token.d.ts +68 -20
- package/dist/browser/participant-token.js +232 -61
- package/dist/browser/room-client.d.ts +4 -8
- package/dist/browser/room-client.js +4 -10
- package/dist/browser/services-client.d.ts +11 -0
- package/dist/browser/services-client.js +17 -0
- package/dist/browser/sqlite-client.d.ts +326 -0
- package/dist/browser/sqlite-client.js +630 -0
- package/dist/browser/toolkit-config.d.ts +7 -1
- package/dist/browser/toolkit-config.js +41 -22
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/meshagent-client.d.ts +390 -372
- package/dist/esm/meshagent-client.js +841 -1038
- package/dist/esm/oauth-scopes.d.ts +1 -1
- package/dist/esm/oauth-scopes.js +64 -14
- package/dist/esm/participant-token.d.ts +68 -20
- package/dist/esm/participant-token.js +228 -59
- package/dist/esm/room-client.d.ts +4 -8
- package/dist/esm/room-client.js +4 -10
- package/dist/esm/services-client.d.ts +11 -0
- package/dist/esm/services-client.js +17 -0
- package/dist/esm/sqlite-client.d.ts +326 -0
- package/dist/esm/sqlite-client.js +625 -0
- package/dist/esm/toolkit-config.d.ts +7 -1
- package/dist/esm/toolkit-config.js +41 -22
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/meshagent-client.d.ts +390 -372
- package/dist/node/meshagent-client.js +841 -1040
- package/dist/node/oauth-scopes.d.ts +1 -1
- package/dist/node/oauth-scopes.js +64 -14
- package/dist/node/participant-token.d.ts +68 -20
- package/dist/node/participant-token.js +232 -61
- package/dist/node/room-client.d.ts +4 -8
- package/dist/node/room-client.js +4 -10
- package/dist/node/services-client.d.ts +11 -0
- package/dist/node/services-client.js +17 -0
- package/dist/node/sqlite-client.d.ts +326 -0
- package/dist/node/sqlite-client.js +630 -0
- package/dist/node/toolkit-config.d.ts +7 -1
- package/dist/node/toolkit-config.js +41 -22
- package/package.json +1 -1
- package/dist/browser/secrets-client.d.ts +0 -112
- package/dist/browser/secrets-client.js +0 -300
- package/dist/esm/secrets-client.d.ts +0 -112
- package/dist/esm/secrets-client.js +0 -296
- package/dist/node/secrets-client.d.ts +0 -112
- package/dist/node/secrets-client.js +0 -300
|
@@ -174,30 +174,19 @@ export class Connector {
|
|
|
174
174
|
if (connector == null && this.oauth == null) {
|
|
175
175
|
return true;
|
|
176
176
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
delegatedTo: agentName,
|
|
181
|
-
});
|
|
182
|
-
return token != null;
|
|
177
|
+
void room;
|
|
178
|
+
void agentName;
|
|
179
|
+
throw new Error("OAuth MCP connections require proxy-backed user secrets");
|
|
183
180
|
}
|
|
184
181
|
async authenticate(client, agent, redirectUri) {
|
|
185
182
|
const connector = this.buildConnectorRef();
|
|
186
183
|
if (connector == null && this.oauth == null) {
|
|
187
184
|
return null;
|
|
188
185
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const agentName = agent.getAttribute("name");
|
|
194
|
-
return await client.secrets.requestOAuthToken({
|
|
195
|
-
fromParticipantId: localParticipant.id,
|
|
196
|
-
connector,
|
|
197
|
-
oauth: this.oauth,
|
|
198
|
-
redirectUri,
|
|
199
|
-
delegateTo: agentName == null ? null : String(agentName),
|
|
200
|
-
});
|
|
186
|
+
void client;
|
|
187
|
+
void agent;
|
|
188
|
+
void redirectUri;
|
|
189
|
+
throw new Error("OAuth MCP connections require proxy-backed user secrets");
|
|
201
190
|
}
|
|
202
191
|
}
|
|
203
192
|
function headersFromEndpointSpec(headers) {
|
|
@@ -252,7 +241,25 @@ function roomServiceMcpServerUrl({ service, port, endpoint, }) {
|
|
|
252
241
|
const fragment = baseUrl.hash;
|
|
253
242
|
return `${baseUrl.protocol}//${userInfo}${bracketIpv6Host(baseUrl.hostname)}:${portValue}${joinedPath}${query}${fragment}`;
|
|
254
243
|
}
|
|
255
|
-
|
|
244
|
+
function proxyMcpServerUrl({ serverUrl, useProxySecret, proxyConfig, }) {
|
|
245
|
+
const secretId = useProxySecret?.trim();
|
|
246
|
+
if (serverUrl == null || secretId == null || secretId.length === 0 || proxyConfig == null) {
|
|
247
|
+
return serverUrl;
|
|
248
|
+
}
|
|
249
|
+
const apiUrl = proxyConfig.apiUrl.trim().replace(/\/+$/, "");
|
|
250
|
+
if (apiUrl.length === 0 || proxyConfig.apiKey.trim().length === 0) {
|
|
251
|
+
throw new Error("meshagent_proxy_config requires apiUrl and apiKey");
|
|
252
|
+
}
|
|
253
|
+
const url = new URL(`${apiUrl}/proxy-request`);
|
|
254
|
+
url.searchParams.set("url", serverUrl);
|
|
255
|
+
url.searchParams.set("secret-id", secretId);
|
|
256
|
+
const user = proxyConfig.user?.trim();
|
|
257
|
+
if (user != null && user.length > 0) {
|
|
258
|
+
url.searchParams.set("user", user);
|
|
259
|
+
}
|
|
260
|
+
return url.toString();
|
|
261
|
+
}
|
|
262
|
+
export function mcpConnectorsFromRoomServices({ services, agentName, meshagentProxyConfig, }) {
|
|
256
263
|
const connectors = [];
|
|
257
264
|
for (const service of services) {
|
|
258
265
|
const filter = service.metadata.annotations?.["meshagent.agent.filter"];
|
|
@@ -269,12 +276,24 @@ export function mcpConnectorsFromRoomServices({ services, agentName, }) {
|
|
|
269
276
|
name: mcp.label,
|
|
270
277
|
server: new MCPServer({
|
|
271
278
|
serverLabel: mcp.label,
|
|
272
|
-
serverUrl:
|
|
273
|
-
|
|
279
|
+
serverUrl: proxyMcpServerUrl({
|
|
280
|
+
serverUrl: roomServiceMcpServerUrl({ service, port, endpoint }),
|
|
281
|
+
useProxySecret: mcp.use_proxy_secret,
|
|
282
|
+
proxyConfig: meshagentProxyConfig,
|
|
283
|
+
}),
|
|
284
|
+
headers: mcp.use_proxy_secret != null && meshagentProxyConfig != null
|
|
285
|
+
? [
|
|
286
|
+
...(headersFromEndpointSpec(mcp.headers) ?? []),
|
|
287
|
+
new MCPHeader({
|
|
288
|
+
name: "Authorization",
|
|
289
|
+
value: `Bearer ${meshagentProxyConfig.apiKey}`,
|
|
290
|
+
}),
|
|
291
|
+
]
|
|
292
|
+
: headersFromEndpointSpec(mcp.headers),
|
|
274
293
|
requireApproval: mcp.require_approval,
|
|
275
294
|
openaiConnectorId: mcp.openai_connector_id,
|
|
276
295
|
}),
|
|
277
|
-
oauth: mcp.oauth,
|
|
296
|
+
oauth: mcp.use_proxy_secret != null ? undefined : mcp.oauth,
|
|
278
297
|
}));
|
|
279
298
|
}
|
|
280
299
|
}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export * from './runtime.js';
|
|
|
24
24
|
export * from './schema.js';
|
|
25
25
|
export * from './storage-client.js';
|
|
26
26
|
export * from './services-client.js';
|
|
27
|
-
export * from './
|
|
27
|
+
export * from './sqlite-client.js';
|
|
28
28
|
export * from './stream-controller.js';
|
|
29
29
|
export * from './sync-client.js';
|
|
30
30
|
export * from './api_keys.js';
|
package/dist/node/index.js
CHANGED
|
@@ -40,7 +40,7 @@ __exportStar(require("./runtime.js"), exports);
|
|
|
40
40
|
__exportStar(require("./schema.js"), exports);
|
|
41
41
|
__exportStar(require("./storage-client.js"), exports);
|
|
42
42
|
__exportStar(require("./services-client.js"), exports);
|
|
43
|
-
__exportStar(require("./
|
|
43
|
+
__exportStar(require("./sqlite-client.js"), exports);
|
|
44
44
|
__exportStar(require("./stream-controller.js"), exports);
|
|
45
45
|
__exportStar(require("./sync-client.js"), exports);
|
|
46
46
|
__exportStar(require("./api_keys.js"), exports);
|