@slashfi/agents-sdk 0.26.2 → 0.27.1
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/dist/agent-definitions/config.d.ts +44 -0
- package/dist/agent-definitions/config.d.ts.map +1 -0
- package/dist/agent-definitions/config.js +234 -0
- package/dist/agent-definitions/config.js.map +1 -0
- package/dist/cjs/agent-definitions/config.js +237 -0
- package/dist/cjs/agent-definitions/config.js.map +1 -0
- package/dist/cjs/codegen.js +46 -2
- package/dist/cjs/codegen.js.map +1 -1
- package/dist/cjs/index.js +21 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mcp-client.js +159 -0
- package/dist/cjs/mcp-client.js.map +1 -0
- package/dist/cjs/pkce.js +49 -0
- package/dist/cjs/pkce.js.map +1 -0
- package/dist/cjs/registry-consumer.js +217 -2
- package/dist/cjs/registry-consumer.js.map +1 -1
- package/dist/cjs/server.js +33 -2
- package/dist/cjs/server.js.map +1 -1
- package/dist/codegen.d.ts +25 -0
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +46 -2
- package/dist/codegen.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp-client.d.ts +87 -0
- package/dist/mcp-client.d.ts.map +1 -0
- package/dist/mcp-client.js +152 -0
- package/dist/mcp-client.js.map +1 -0
- package/dist/pkce.d.ts +29 -0
- package/dist/pkce.d.ts.map +1 -0
- package/dist/pkce.js +44 -0
- package/dist/pkce.js.map +1 -0
- package/dist/registry-consumer.d.ts +4 -0
- package/dist/registry-consumer.d.ts.map +1 -1
- package/dist/registry-consumer.js +216 -2
- package/dist/registry-consumer.js.map +1 -1
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +33 -2
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/src/agent-definitions/config.ts +318 -0
- package/src/codegen.ts +76 -1
- package/src/index.ts +35 -2
- package/src/mcp-client.ts +230 -0
- package/src/pkce.ts +54 -0
- package/src/registry-consumer.ts +257 -2
- package/src/server.ts +49 -2
package/src/server.ts
CHANGED
|
@@ -120,6 +120,19 @@ export interface AgentServerOptions {
|
|
|
120
120
|
keyStore?: import("./key-manager.js").KeyStore;
|
|
121
121
|
/** OIDC provider for user sign-in (authorization code flow) */
|
|
122
122
|
oidcProvider?: OIDCProviderConfig;
|
|
123
|
+
/**
|
|
124
|
+
* Registry capabilities — advertised in MCP initialize response.
|
|
125
|
+
* When set, this server identifies as an agent registry (superset of MCP).
|
|
126
|
+
* Consumers use this to differentiate `registry` type from plain `mcp`.
|
|
127
|
+
*/
|
|
128
|
+
registry?: {
|
|
129
|
+
/** Registry protocol version */
|
|
130
|
+
version?: string;
|
|
131
|
+
/** Feature flags (e.g., 'shared-oauth', 'agent-listing') */
|
|
132
|
+
features?: string[];
|
|
133
|
+
/** OAuth callback URL for shared OAuth flows */
|
|
134
|
+
oauthCallbackUrl?: string;
|
|
135
|
+
};
|
|
123
136
|
}
|
|
124
137
|
|
|
125
138
|
export interface AgentServer {
|
|
@@ -518,7 +531,16 @@ export function createAgentServer(
|
|
|
518
531
|
case "initialize":
|
|
519
532
|
return jsonRpcSuccess(request.id, {
|
|
520
533
|
protocolVersion: "2024-11-05",
|
|
521
|
-
capabilities: {
|
|
534
|
+
capabilities: {
|
|
535
|
+
tools: { listChanged: false },
|
|
536
|
+
...(options.registry && {
|
|
537
|
+
registry: {
|
|
538
|
+
version: options.registry.version ?? "1.0",
|
|
539
|
+
...(options.registry.features && { features: options.registry.features }),
|
|
540
|
+
...(options.registry.oauthCallbackUrl && { oauthCallbackUrl: options.registry.oauthCallbackUrl }),
|
|
541
|
+
},
|
|
542
|
+
}),
|
|
543
|
+
},
|
|
522
544
|
serverInfo: { name: serverName, version: serverVersion },
|
|
523
545
|
});
|
|
524
546
|
|
|
@@ -1178,7 +1200,7 @@ export function createAgentServer(
|
|
|
1178
1200
|
return cors ? addCors(res) : res;
|
|
1179
1201
|
}
|
|
1180
1202
|
|
|
1181
|
-
// ── GET /.well-known/configuration → Server discovery ──
|
|
1203
|
+
// ── GET /.well-known/configuration → Server discovery (deprecated, use MCP initialize capabilities) ──
|
|
1182
1204
|
if (path === "/.well-known/configuration" && req.method === "GET") {
|
|
1183
1205
|
const baseUrl = resolveBaseUrl(req);
|
|
1184
1206
|
const res = jsonResponse({
|
|
@@ -1196,6 +1218,31 @@ export function createAgentServer(
|
|
|
1196
1218
|
return cors ? addCors(res) : res;
|
|
1197
1219
|
}
|
|
1198
1220
|
|
|
1221
|
+
// ── GET /.well-known/oauth-authorization-server → OAuth Server Metadata (RFC 8414) ──
|
|
1222
|
+
// Only exposed when the server requires auth (private registries).
|
|
1223
|
+
// Public registries (e.g. registry.slash.com) skip this entirely.
|
|
1224
|
+
if (
|
|
1225
|
+
path === "/.well-known/oauth-authorization-server" &&
|
|
1226
|
+
req.method === "GET" &&
|
|
1227
|
+
(options.registry?.oauthCallbackUrl || serverSigningKeys.length > 0)
|
|
1228
|
+
) {
|
|
1229
|
+
const baseUrl = resolveBaseUrl(req);
|
|
1230
|
+
const res = jsonResponse({
|
|
1231
|
+
issuer: baseUrl,
|
|
1232
|
+
authorization_endpoint: `${baseUrl}/oauth/authorize`,
|
|
1233
|
+
token_endpoint: `${baseUrl}/oauth/token`,
|
|
1234
|
+
jwks_uri: `${baseUrl}/.well-known/jwks.json`,
|
|
1235
|
+
response_types_supported: ["code"],
|
|
1236
|
+
grant_types_supported: ["authorization_code", "client_credentials", "jwt_exchange"],
|
|
1237
|
+
code_challenge_methods_supported: ["S256"],
|
|
1238
|
+
token_endpoint_auth_methods_supported: ["client_secret_post", "none"],
|
|
1239
|
+
...(options.registry?.oauthCallbackUrl && {
|
|
1240
|
+
registration_endpoint: `${baseUrl}/oauth/register`,
|
|
1241
|
+
}),
|
|
1242
|
+
});
|
|
1243
|
+
return cors ? addCors(res) : res;
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1199
1246
|
// ── GET /list → List agents (legacy endpoint) ──
|
|
1200
1247
|
if (path === "/list" && req.method === "GET") {
|
|
1201
1248
|
const agents = registry.list();
|