@slashfi/agents-sdk 0.76.0 → 0.77.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.
@@ -30,6 +30,8 @@
30
30
  * const dbUrl = await consumer.resolveSecret('https://twin.slash.com/secrets/crdb-url');
31
31
  * ```
32
32
  */
33
+ import { AdkError } from "./adk-error.js";
34
+ import { parseWwwAuthenticate } from "./mcp-client.js";
33
35
  import { isSecretUri, normalizeRef, normalizeRegistry, } from "./define-config.js";
34
36
  // TODO: wire discoverOAuthMetadata from ./mcp-client.js into MCP server auth negotiation
35
37
  // ============================================
@@ -225,12 +227,20 @@ async function listFromMcpServer(url, auth, fetchFn) {
225
227
  ...(params && { params }),
226
228
  }),
227
229
  });
230
+ if (res.status === 401)
231
+ throwRegistryAuthError(serverUrl, res);
228
232
  if (!res.ok) {
229
- throw new Error(`MCP call to ${serverUrl} failed: ${res.status}`);
233
+ const body = await res.text().catch(() => "");
234
+ throwRegistryCallError(serverUrl, res.status, body);
230
235
  }
231
236
  const json = (await res.json());
232
237
  if (json.error) {
233
- throw new Error(`MCP RPC error: ${json.error.message}`);
238
+ throw new AdkError({
239
+ code: "registry_rpc_error",
240
+ message: `Registry at ${serverUrl} returned an RPC error: ${json.error.message}`,
241
+ hint: "Check the tool name and parameters, or inspect the registry.",
242
+ details: { url: serverUrl, rpcError: json.error.message },
243
+ });
234
244
  }
235
245
  return json.result;
236
246
  }
@@ -283,12 +293,20 @@ async function discoverRegistryViaMcp(registryUrl, authHeaders, fetchFn) {
283
293
  ...(params && { params }),
284
294
  }),
285
295
  });
296
+ if (res.status === 401)
297
+ throwRegistryAuthError(serverUrl, res);
286
298
  if (!res.ok) {
287
- throw new Error(`MCP initialize to ${serverUrl} failed: ${res.status}`);
299
+ const body = await res.text().catch(() => "");
300
+ throwRegistryCallError(serverUrl, res.status, body);
288
301
  }
289
302
  const json = (await res.json());
290
303
  if (json.error) {
291
- throw new Error(`MCP RPC error: ${json.error.message}`);
304
+ throw new AdkError({
305
+ code: "registry_rpc_error",
306
+ message: `Registry at ${serverUrl} returned an RPC error: ${json.error.message}`,
307
+ hint: "Check the registry URL and that the server speaks MCP.",
308
+ details: { url: serverUrl, rpcError: json.error.message },
309
+ });
292
310
  }
293
311
  return json.result;
294
312
  }
@@ -314,6 +332,36 @@ async function discoverRegistryViaMcp(registryUrl, authHeaders, fetchFn) {
314
332
  ...(proxy && { proxy }),
315
333
  };
316
334
  }
335
+ /**
336
+ * Throw a typed auth error with context parsed from the challenge. Used when
337
+ * any MCP call returns 401, so callers see a friendly message pointing at
338
+ * `adk registry auth` rather than a bare "MCP call failed: 401".
339
+ */
340
+ function throwRegistryAuthError(serverUrl, res) {
341
+ const wwwAuth = res.headers.get("www-authenticate") ?? "";
342
+ const { scheme, params } = parseWwwAuthenticate(wwwAuth);
343
+ throw new AdkError({
344
+ code: "registry_auth_required",
345
+ message: `Registry at ${serverUrl} returned 401 Unauthorized.`,
346
+ hint: `Run: adk registry auth <name> --token <token>`,
347
+ details: {
348
+ url: serverUrl,
349
+ scheme,
350
+ realm: params.realm,
351
+ resourceMetadataUrl: params.resource_metadata,
352
+ status: 401,
353
+ },
354
+ });
355
+ }
356
+ /** Wrap a generic MCP failure (non-401) in an AdkError so CLI callers get a typed error. */
357
+ function throwRegistryCallError(serverUrl, status, body) {
358
+ throw new AdkError({
359
+ code: "registry_call_failed",
360
+ message: `Registry at ${serverUrl} returned ${status}.`,
361
+ hint: "Check the registry URL and that the server is reachable.",
362
+ details: { url: serverUrl, status, body: body.slice(0, 500) },
363
+ });
364
+ }
317
365
  /**
318
366
  * Call a tool on a direct MCP server.
319
367
  */
@@ -336,12 +384,20 @@ async function callMcpTool(url, toolName, params, auth, fetchFn) {
336
384
  params: { name: toolName, arguments: params },
337
385
  }),
338
386
  });
387
+ if (res.status === 401)
388
+ throwRegistryAuthError(serverUrl, res);
339
389
  if (!res.ok) {
340
- throw new Error(`MCP tool call failed: ${res.status}`);
390
+ const body = await res.text().catch(() => "");
391
+ throwRegistryCallError(serverUrl, res.status, body);
341
392
  }
342
393
  const json = (await res.json());
343
394
  if (json.error) {
344
- throw new Error(`MCP RPC error: ${json.error.message}`);
395
+ throw new AdkError({
396
+ code: "registry_rpc_error",
397
+ message: `Registry at ${serverUrl} returned an RPC error: ${json.error.message}`,
398
+ hint: "Check the tool name and parameters, or inspect the registry.",
399
+ details: { url: serverUrl, rpcError: json.error.message },
400
+ });
345
401
  }
346
402
  // Extract text content
347
403
  const result = json.result;
@@ -602,13 +658,15 @@ export async function createRegistryConsumer(config, options = {}) {
602
658
  return discover(registryUrl, registry);
603
659
  },
604
660
  async browse(registryUrl, query) {
605
- // List agents from a specific registry, or all registries if not specified
661
+ // List agents from a specific registry, or all registries if not specified.
662
+ // Errors from any target propagate — previously allSettled silently
663
+ // dropped rejections (including 401s), so browsing an unreachable or
664
+ // unauthenticated registry returned 0 agents with no indication why.
606
665
  const targets = registryUrl
607
666
  ? resolvedRegistries.filter((r) => r.url === registryUrl || r.name === registryUrl)
608
667
  : resolvedRegistries;
609
- // Pass query to server for BM25 search
610
- const results = await Promise.allSettled(targets.map((t) => listFromRegistry(t, query)));
611
- return results.flatMap((r) => r.status === "fulfilled" ? r.value : []);
668
+ const results = await Promise.all(targets.map((t) => listFromRegistry(t, query)));
669
+ return results.flat();
612
670
  },
613
671
  async inspect(agentPath, registryUrl, options) {
614
672
  const targetRegistries = registryUrl
@@ -1 +1 @@
1
- {"version":3,"file":"registry-consumer.js","sourceRoot":"","sources":["../src/registry-consumer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry-consumer.js","sourceRoot":"","sources":["../src/registry-consumer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slashfi/agents-sdk",
3
- "version": "0.76.0",
3
+ "version": "0.77.0",
4
4
  "author": "Slash Financial",
5
5
  "repository": {
6
6
  "type": "git",
package/src/adk.ts CHANGED
@@ -60,7 +60,8 @@ const HELP_SECTIONS: Record<string, string> = {
60
60
  adk registry list
61
61
  adk registry browse <name> [--query <q>]
62
62
  adk registry inspect <name>
63
- adk registry test [name]`,
63
+ adk registry test [name]
64
+ adk registry auth <name> [--token <t>] [--api-key <k>] [--header <h>]`,
64
65
  ref: `Ref operations:
65
66
  adk ref add <name> Install from default (public) registry
66
67
  adk ref add <name> --registry <reg> Install from a specific registry
@@ -106,6 +107,7 @@ Registry operations:
106
107
  adk registry browse <name> [--query <q>]
107
108
  adk registry inspect <name>
108
109
  adk registry test [name]
110
+ adk registry auth <name> [--token <t>] [--api-key <k>] [--header <h>]
109
111
 
110
112
  Ref operations:
111
113
  adk ref add <ref> [--registry <name>] [--as <alias>] [--url <url>] [--scheme mcp|https|registry]
@@ -156,6 +158,7 @@ async function runRegistry() {
156
158
  const op = args[1];
157
159
  const adk = getAdk();
158
160
 
161
+ try {
159
162
  switch (op) {
160
163
  case "add": {
161
164
  const url = args[2];
@@ -187,7 +190,7 @@ async function runRegistry() {
187
190
  }
188
191
  : undefined;
189
192
  const displayName = name ?? new URL(url).hostname;
190
- await adk.registry.add({
193
+ const addResult = await adk.registry.add({
191
194
  url,
192
195
  name: displayName,
193
196
  ...(auth && { auth }),
@@ -202,6 +205,17 @@ async function runRegistry() {
202
205
  console.log(
203
206
  `Added registry: ${displayName}${effectiveProxy ? ` (proxy: ${effectiveProxy.mode} → ${effectiveProxy.agent ?? "@config"}${source})` : ""}`,
204
207
  );
208
+ if (addResult.authRequirement) {
209
+ const req = addResult.authRequirement;
210
+ console.log(`\n \x1b[33m!\x1b[0m Auth required: ${req.scheme ?? "Bearer"}${req.realm ? ` (realm: ${req.realm})` : ""}`);
211
+ if (req.authorizationServers?.length) {
212
+ console.log(` authorization servers: ${req.authorizationServers.join(", ")}`);
213
+ }
214
+ if (req.scopes?.length) {
215
+ console.log(` scopes: ${req.scopes.join(" ")}`);
216
+ }
217
+ console.log(`\n Run: adk registry auth ${displayName} --token <token>`);
218
+ }
205
219
  break;
206
220
  }
207
221
  case "remove": {
@@ -264,10 +278,64 @@ async function runRegistry() {
264
278
  }
265
279
  break;
266
280
  }
281
+ case "auth": {
282
+ const name = args[2];
283
+ if (!name) { console.error("Usage: adk registry auth <name> [--token <t>] [--api-key <k>] [--header <h>]"); process.exit(1); }
284
+ const token = getArg("--token");
285
+ const apiKey = getArg("--api-key");
286
+ const header = getArg("--header");
287
+
288
+ // Explicit credential mode — user supplied a token/key directly.
289
+ if (token || apiKey) {
290
+ const credential = token
291
+ ? { token }
292
+ : { apiKey: apiKey!, ...(header && { header }) };
293
+ const updated = await adk.registry.auth(name, credential);
294
+ if (!updated) {
295
+ console.error(`Registry not found: ${name}`);
296
+ process.exit(1);
297
+ }
298
+ console.log(`\x1b[32m✓\x1b[0m Auth saved for ${name}`);
299
+ break;
300
+ }
301
+
302
+ // Auto-resolve: OAuth (when registry advertised an AS) or local
303
+ // credential form otherwise. Mirrors `adk ref auth` UX. Always force
304
+ // a fresh flow — invoking the command implies the existing creds
305
+ // aren't trusted, so skip the "already looks valid" short-circuit.
306
+ try {
307
+ const result = await adk.registry.authLocal(name, {
308
+ force: true,
309
+ onAuthorizeUrl: (url) => {
310
+ console.log(`\nOpen this URL to authenticate:\n\n ${url}\n`);
311
+ const opener = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
312
+ import("node:child_process").then(({ exec }) => exec(`${opener} "${url}"`)).catch(() => {});
313
+ console.log("Waiting ...");
314
+ },
315
+ });
316
+ if (result.complete) {
317
+ console.log(`\x1b[32m✓\x1b[0m Auth complete for ${name}`);
318
+ }
319
+ } catch (err) {
320
+ if (err instanceof AdkError) throw err;
321
+ console.error(`Auth failed: ${err instanceof Error ? err.message : String(err)}`);
322
+ process.exit(1);
323
+ }
324
+ break;
325
+ }
267
326
  default:
268
327
  console.error(`Unknown registry operation: ${op}`);
269
- console.error("Operations: add, remove, list, browse, inspect, test");
328
+ console.error("Operations: add, remove, list, browse, inspect, test, auth");
329
+ process.exit(1);
330
+ }
331
+ } catch (err) {
332
+ if (err instanceof AdkError) {
333
+ console.error(`\n\x1b[31m✗\x1b[0m ${err.message}`);
334
+ console.error(` ${err.hint}`);
335
+ console.error(` Error ID: ${err.errorId}`);
270
336
  process.exit(1);
337
+ }
338
+ throw err;
271
339
  }
272
340
  }
273
341
 
@@ -626,3 +626,215 @@ describe("ADK registry proxy routing", () => {
626
626
  expect((result as { authorizeUrl?: string }).authorizeUrl).toBeUndefined();
627
627
  });
628
628
  });
629
+
630
+ // ─── Registry auth lifecycle ─────────────────────────────────────
631
+
632
+ describe("ADK registry auth lifecycle", () => {
633
+ const PORT = 19930;
634
+ const MCP_URL = `http://localhost:${PORT}/mcp`;
635
+ const AS_URL = `http://localhost:${PORT}`;
636
+
637
+ let mcpServer: ReturnType<typeof Bun.serve>;
638
+ let activeAccessToken = "access-token-v1";
639
+ let tokenExchangeCount = 0;
640
+ let tokenRefreshCount = 0;
641
+
642
+ beforeAll(() => {
643
+ // Fake registry that speaks MCP when authenticated, emits an RFC 6750
644
+ // challenge pointing at RFC 9728 metadata when not, and doubles as the
645
+ // OAuth authorization server (registration + authorize + token) so the
646
+ // whole adk registry.auth flow can run end-to-end in-process.
647
+ mcpServer = Bun.serve({
648
+ port: PORT,
649
+ async fetch(req) {
650
+ const url = new URL(req.url);
651
+ const path = url.pathname;
652
+
653
+ // RFC 9728 protected-resource metadata
654
+ if (path === "/.well-known/oauth-protected-resource") {
655
+ return Response.json({
656
+ resource: MCP_URL,
657
+ authorization_servers: [AS_URL],
658
+ scopes_supported: ["mcp:full"],
659
+ bearer_methods_supported: ["header"],
660
+ });
661
+ }
662
+
663
+ // RFC 8414 authorization-server metadata
664
+ if (path === "/.well-known/oauth-authorization-server") {
665
+ return Response.json({
666
+ issuer: AS_URL,
667
+ authorization_endpoint: `${AS_URL}/oauth/authorize`,
668
+ token_endpoint: `${AS_URL}/oauth/token`,
669
+ registration_endpoint: `${AS_URL}/oauth/register`,
670
+ });
671
+ }
672
+
673
+ // Dynamic client registration (RFC 7591)
674
+ if (path === "/oauth/register" && req.method === "POST") {
675
+ return Response.json({
676
+ client_id: "test-client-id",
677
+ client_secret: "test-client-secret",
678
+ });
679
+ }
680
+
681
+ // Token endpoint — supports authorization_code + refresh_token grants
682
+ if (path === "/oauth/token" && req.method === "POST") {
683
+ const body = new URLSearchParams(await req.text());
684
+ const grant = body.get("grant_type");
685
+ if (grant === "authorization_code") {
686
+ tokenExchangeCount++;
687
+ return Response.json({
688
+ access_token: activeAccessToken,
689
+ refresh_token: "refresh-token-v1",
690
+ token_type: "Bearer",
691
+ expires_in: 3600,
692
+ });
693
+ }
694
+ if (grant === "refresh_token") {
695
+ tokenRefreshCount++;
696
+ if (body.get("refresh_token") !== "refresh-token-v1") {
697
+ return new Response(
698
+ JSON.stringify({ error: "invalid_grant" }),
699
+ { status: 400 },
700
+ );
701
+ }
702
+ // Rotate to a new access token so the test can tell refresh ran.
703
+ activeAccessToken = "access-token-v2";
704
+ return Response.json({
705
+ access_token: activeAccessToken,
706
+ token_type: "Bearer",
707
+ expires_in: 3600,
708
+ });
709
+ }
710
+ return new Response("unsupported_grant_type", { status: 400 });
711
+ }
712
+
713
+ // MCP endpoint
714
+ if (path === "/mcp" && req.method === "POST") {
715
+ const auth = req.headers.get("authorization") ?? "";
716
+ const expected = `Bearer ${activeAccessToken}`;
717
+ if (auth !== expected) {
718
+ return new Response(
719
+ JSON.stringify({ error: { code: "UNAUTHORIZED", message: "No token" } }),
720
+ {
721
+ status: 401,
722
+ headers: {
723
+ "Content-Type": "application/json",
724
+ "WWW-Authenticate": `Bearer realm="test", resource_metadata="${AS_URL}/.well-known/oauth-protected-resource"`,
725
+ },
726
+ },
727
+ );
728
+ }
729
+ const rpc = (await req.json()) as { id: number; method: string };
730
+ if (rpc.method === "initialize") {
731
+ return Response.json({
732
+ jsonrpc: "2.0",
733
+ id: rpc.id,
734
+ result: { serverInfo: { name: "test-mcp" }, capabilities: {} },
735
+ });
736
+ }
737
+ if (rpc.method === "tools/call") {
738
+ return Response.json({
739
+ jsonrpc: "2.0",
740
+ id: rpc.id,
741
+ result: {
742
+ content: [
743
+ {
744
+ type: "text",
745
+ text: JSON.stringify({
746
+ agents: [
747
+ { path: "@test-agent", description: "An agent", toolCount: 1 },
748
+ ],
749
+ }),
750
+ },
751
+ ],
752
+ },
753
+ });
754
+ }
755
+ return new Response("method not found", { status: 404 });
756
+ }
757
+
758
+ return new Response("not found", { status: 404 });
759
+ },
760
+ });
761
+ });
762
+
763
+ afterAll(() => {
764
+ mcpServer.stop();
765
+ });
766
+
767
+ test("registry.add records auth challenge; browse refuses; auth() unlocks", async () => {
768
+ const fs = createMemoryFs();
769
+ const adk = createAdk(fs, { encryptionKey: "test-key-32-chars-long-enough!!" });
770
+
771
+ const addResult = await adk.registry.add({ name: "test", url: MCP_URL });
772
+
773
+ expect(addResult.authRequirement).toBeDefined();
774
+ expect(addResult.authRequirement?.scheme).toBe("Bearer");
775
+ expect(addResult.authRequirement?.authorizationServers).toEqual([AS_URL]);
776
+ expect(addResult.authRequirement?.scopes).toEqual(["mcp:full"]);
777
+
778
+ await expect(adk.registry.browse("test")).rejects.toMatchObject({
779
+ code: "registry_auth_required",
780
+ });
781
+
782
+ await adk.registry.auth("test", { token: activeAccessToken });
783
+
784
+ // Stored token is encrypted (secret: prefix) — buildConsumer decrypts
785
+ // it transparently so browse should now land the MCP call.
786
+ const stored = await adk.registry.get("test");
787
+ expect(stored?.auth?.type).toBe("bearer");
788
+ expect((stored?.auth as { token: string }).token).toMatch(/^secret:/);
789
+ expect(stored?.authRequirement).toBeUndefined();
790
+
791
+ const agents = await adk.registry.browse("test");
792
+ expect(agents).toHaveLength(1);
793
+ expect(agents[0]?.path).toBe("@test-agent");
794
+ });
795
+
796
+ test("browse 401 triggers refresh via stored refresh_token and retries", async () => {
797
+ const fs = createMemoryFs();
798
+ const adk = createAdk(fs, { encryptionKey: "test-key-32-chars-long-enough!!" });
799
+
800
+ // Reset server-side token so the next refresh rotates predictably.
801
+ activeAccessToken = "access-token-v1";
802
+ tokenRefreshCount = 0;
803
+
804
+ await adk.registry.add({ name: "test", url: MCP_URL });
805
+ await adk.registry.auth("test", { token: activeAccessToken });
806
+
807
+ // Seed the entry with OAuth state as if `authLocal` had completed.
808
+ // Refresh token / endpoint / clientId are written directly so the
809
+ // test isn't dependent on the full browser-redirect flow.
810
+ const config = await adk.readConfig();
811
+ await adk.writeConfig({
812
+ ...config,
813
+ registries: config.registries?.map((r: any) => {
814
+ if (typeof r !== "string" && r.name === "test") {
815
+ return {
816
+ ...r,
817
+ oauth: {
818
+ tokenEndpoint: `${AS_URL}/oauth/token`,
819
+ clientId: "test-client-id",
820
+ refreshToken: "refresh-token-v1",
821
+ },
822
+ };
823
+ }
824
+ return r;
825
+ }),
826
+ });
827
+
828
+ // Rotate the server token — the client's stored token is now stale.
829
+ activeAccessToken = "access-token-v2";
830
+
831
+ const agents = await adk.registry.browse("test");
832
+
833
+ // Refresh was called exactly once; the browse call succeeded on retry.
834
+ expect(tokenRefreshCount).toBe(1);
835
+ expect(agents).toHaveLength(1);
836
+
837
+ const stored = await adk.registry.get("test");
838
+ expect((stored?.auth as { token: string }).token).toMatch(/^secret:/);
839
+ });
840
+ });