@slashfi/agents-sdk 0.72.0 → 0.73.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 (73) hide show
  1. package/dist/adk.js +5 -9
  2. package/dist/adk.js.map +1 -1
  3. package/dist/agent-definitions/remote-registry.d.ts +15 -0
  4. package/dist/agent-definitions/remote-registry.d.ts.map +1 -1
  5. package/dist/agent-definitions/remote-registry.js +42 -17
  6. package/dist/agent-definitions/remote-registry.js.map +1 -1
  7. package/dist/cjs/agent-definitions/remote-registry.js +42 -17
  8. package/dist/cjs/agent-definitions/remote-registry.js.map +1 -1
  9. package/dist/cjs/config-store.js +125 -8
  10. package/dist/cjs/config-store.js.map +1 -1
  11. package/dist/cjs/events.js +11 -3
  12. package/dist/cjs/events.js.map +1 -1
  13. package/dist/cjs/fetch-types.js +3 -0
  14. package/dist/cjs/fetch-types.js.map +1 -0
  15. package/dist/cjs/index.js +8 -2
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/key-manager.js +7 -1
  18. package/dist/cjs/key-manager.js.map +1 -1
  19. package/dist/cjs/logger.js +115 -0
  20. package/dist/cjs/logger.js.map +1 -0
  21. package/dist/cjs/registry-consumer.js.map +1 -1
  22. package/dist/cjs/registry.js +1 -1
  23. package/dist/cjs/registry.js.map +1 -1
  24. package/dist/cjs/server.js +70 -13
  25. package/dist/cjs/server.js.map +1 -1
  26. package/dist/config-store.d.ts +19 -0
  27. package/dist/config-store.d.ts.map +1 -1
  28. package/dist/config-store.js +125 -8
  29. package/dist/config-store.js.map +1 -1
  30. package/dist/events.d.ts +6 -1
  31. package/dist/events.d.ts.map +1 -1
  32. package/dist/events.js +11 -3
  33. package/dist/events.js.map +1 -1
  34. package/dist/fetch-types.d.ts +11 -0
  35. package/dist/fetch-types.d.ts.map +1 -0
  36. package/dist/fetch-types.js +2 -0
  37. package/dist/fetch-types.js.map +1 -0
  38. package/dist/index.d.ts +4 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +2 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/key-manager.d.ts +6 -0
  43. package/dist/key-manager.d.ts.map +1 -1
  44. package/dist/key-manager.js +7 -1
  45. package/dist/key-manager.js.map +1 -1
  46. package/dist/logger.d.ts +42 -0
  47. package/dist/logger.d.ts.map +1 -0
  48. package/dist/logger.js +109 -0
  49. package/dist/logger.js.map +1 -0
  50. package/dist/registry-consumer.d.ts +8 -2
  51. package/dist/registry-consumer.d.ts.map +1 -1
  52. package/dist/registry-consumer.js.map +1 -1
  53. package/dist/registry.d.ts +6 -0
  54. package/dist/registry.d.ts.map +1 -1
  55. package/dist/registry.js +1 -1
  56. package/dist/registry.js.map +1 -1
  57. package/dist/server.d.ts +7 -0
  58. package/dist/server.d.ts.map +1 -1
  59. package/dist/server.js +70 -13
  60. package/dist/server.js.map +1 -1
  61. package/package.json +1 -1
  62. package/src/adk.ts +5 -10
  63. package/src/agent-definitions/remote-registry.ts +56 -28
  64. package/src/config-store.ts +168 -9
  65. package/src/events.ts +16 -6
  66. package/src/fetch-types.ts +13 -0
  67. package/src/index.ts +13 -0
  68. package/src/key-manager.ts +12 -1
  69. package/src/logger.test.ts +206 -0
  70. package/src/logger.ts +123 -0
  71. package/src/registry-consumer.ts +13 -7
  72. package/src/registry.ts +7 -2
  73. package/src/server.ts +76 -42
package/src/server.ts CHANGED
@@ -44,6 +44,7 @@ import {
44
44
  verifyJwtFromIssuer,
45
45
  verifyJwtLocal,
46
46
  } from "./jwt.js";
47
+ import { getDefaultLogger, type Logger } from "./logger.js";
47
48
  import { type OIDCProviderConfig, createOIDCSignIn } from "./oidc-signin.js";
48
49
  import type { AgentRegistry } from "./registry.js";
49
50
  import {
@@ -206,6 +207,12 @@ export interface AgentServerOptions {
206
207
  /** OAuth callback URL for shared OAuth flows */
207
208
  oauthCallbackUrl?: string;
208
209
  };
210
+ /**
211
+ * Structured logger for server-side errors (tool-call failures, JWT
212
+ * exchange errors, request errors, etc.). Defaults to the module-level
213
+ * default logger (single-line JSON).
214
+ */
215
+ logger?: Logger;
209
216
  }
210
217
 
211
218
  export interface AgentServer {
@@ -522,6 +529,7 @@ export function createAgentServer(
522
529
  secretStore,
523
530
  oauthIdentityProvider,
524
531
  } = options;
532
+ const logger = options.logger ?? getDefaultLogger();
525
533
 
526
534
  // Build tool definitions and validation schemas from overrides
527
535
  const toolDefs = getToolDefinitions(options.schemas);
@@ -607,7 +615,13 @@ export function createAgentServer(
607
615
  const result = await handleToolCall(name, args ?? {}, auth);
608
616
  return jsonRpcSuccess(request.id, result);
609
617
  } catch (err) {
610
- console.error("[server] Tool call error:", err);
618
+ logger.error("mcp_tool_call_error", {
619
+ component: "agents-sdk.server",
620
+ tool: name,
621
+ caller_id: auth?.callerId,
622
+ caller_type: auth?.callerType,
623
+ error: err,
624
+ });
611
625
  return jsonRpcSuccess(
612
626
  request.id,
613
627
  mcpResult(
@@ -907,22 +921,24 @@ export function createAgentServer(
907
921
  callerType: "system",
908
922
  });
909
923
  if (addResult.success) {
910
- console.error(
911
- `[jwt_exchange] Reverse connection stored for ${assertionPayload.iss}`,
912
- );
924
+ logger.info("jwt_exchange_reverse_connection_stored", {
925
+ component: "agents-sdk.server",
926
+ issuer: assertionPayload.iss,
927
+ });
913
928
  } else {
914
- console.error(
915
- "[jwt_exchange] Reverse connection failed:",
916
- addResult.error,
917
- );
929
+ logger.error("jwt_exchange_reverse_connection_failed", {
930
+ component: "agents-sdk.server",
931
+ issuer: assertionPayload.iss,
932
+ error: addResult.error,
933
+ });
918
934
  }
919
935
  }
920
936
  }
921
937
  } catch (reverseErr) {
922
- console.error(
923
- "[jwt_exchange] Reverse registration check failed:",
924
- reverseErr,
925
- );
938
+ logger.error("jwt_exchange_reverse_registration_failed", {
939
+ component: "agents-sdk.server",
940
+ error: reverseErr,
941
+ });
926
942
  }
927
943
 
928
944
  if (!exchangeResult) {
@@ -988,7 +1004,10 @@ export function createAgentServer(
988
1004
 
989
1005
  return jsonResponse(exchangeResult);
990
1006
  } catch (err) {
991
- console.error("[oauth] JWT exchange error:", err);
1007
+ logger.error("oauth_jwt_exchange_error", {
1008
+ component: "agents-sdk.server",
1009
+ error: err,
1010
+ });
992
1011
  return jsonResponse(
993
1012
  {
994
1013
  error: "server_error",
@@ -1061,7 +1080,10 @@ export function createAgentServer(
1061
1080
  refresh_token: tokenResult.refreshToken,
1062
1081
  });
1063
1082
  } catch (err) {
1064
- console.error("[oauth] Token error:", err);
1083
+ logger.error("oauth_token_error", {
1084
+ component: "agents-sdk.server",
1085
+ error: err,
1086
+ });
1065
1087
  return jsonResponse(
1066
1088
  { error: "server_error", error_description: "Token exchange failed" },
1067
1089
  500,
@@ -1190,36 +1212,31 @@ export function createAgentServer(
1190
1212
  const allIssuerUrls = [
1191
1213
  ...new Set([...storeIssuers, ...configIssuerUrls]),
1192
1214
  ];
1193
- console.log(
1194
- "[oauth/authorize] storeIssuers:",
1195
- storeIssuers.length,
1196
- "configIssuers:",
1197
- configIssuerUrls.length,
1198
- "total:",
1199
- allIssuerUrls.length,
1200
- "urls:",
1201
- allIssuerUrls,
1202
- );
1215
+ logger.debug("oauth_authorize_issuer_check", {
1216
+ component: "agents-sdk.server",
1217
+ store_issuers: storeIssuers.length,
1218
+ config_issuers: configIssuerUrls.length,
1219
+ total_issuers: allIssuerUrls.length,
1220
+ issuer_urls: allIssuerUrls,
1221
+ });
1203
1222
  for (const issuerUrl of allIssuerUrls) {
1204
1223
  try {
1205
1224
  const result = await verifyJwtFromIssuer(token, issuerUrl);
1206
- console.log(
1207
- "[oauth/authorize] verify",
1208
- issuerUrl,
1209
- "->",
1210
- result ? "OK" : "null",
1211
- );
1225
+ logger.debug("oauth_authorize_verify", {
1226
+ component: "agents-sdk.server",
1227
+ issuer: issuerUrl,
1228
+ ok: !!result,
1229
+ });
1212
1230
  if (result) {
1213
1231
  claims = result as unknown as Record<string, unknown>;
1214
1232
  break;
1215
1233
  }
1216
1234
  } catch (e: unknown) {
1217
- console.log(
1218
- "[oauth/authorize] verify",
1219
- issuerUrl,
1220
- "-> ERROR:",
1221
- e instanceof Error ? e.message : String(e),
1222
- );
1235
+ logger.debug("oauth_authorize_verify_error", {
1236
+ component: "agents-sdk.server",
1237
+ issuer: issuerUrl,
1238
+ error: e,
1239
+ });
1223
1240
  }
1224
1241
  }
1225
1242
  if (!claims) {
@@ -1500,7 +1517,12 @@ export function createAgentServer(
1500
1517
  const res = jsonResponse(jsonRpcSuccess(body.id, result));
1501
1518
  return cors ? addCors(res) : res;
1502
1519
  } catch (err) {
1503
- console.error("[server] Scoped tool call error:", err);
1520
+ logger.error("mcp_scoped_tool_call_error", {
1521
+ component: "agents-sdk.server",
1522
+ caller_id: effectiveAuth?.callerId,
1523
+ caller_type: effectiveAuth?.callerType,
1524
+ error: err,
1525
+ });
1504
1526
  const res = jsonResponse(
1505
1527
  jsonRpcSuccess(
1506
1528
  body.id,
@@ -1534,7 +1556,12 @@ export function createAgentServer(
1534
1556
  );
1535
1557
  return cors ? addCors(res) : res;
1536
1558
  } catch (err) {
1537
- console.error("[server] Request error:", err);
1559
+ logger.error("mcp_request_error", {
1560
+ component: "agents-sdk.server",
1561
+ method: req.method,
1562
+ url: req.url,
1563
+ error: err,
1564
+ });
1538
1565
  const res = jsonResponse(
1539
1566
  {
1540
1567
  jsonrpc: "2.0",
@@ -1586,9 +1613,12 @@ export function createAgentServer(
1586
1613
  fetch,
1587
1614
  });
1588
1615
  this.url = `http://${hostname}:${port}`;
1589
- console.log(
1590
- `[agents-sdk] Server listening on http://${hostname}:${port}`,
1591
- );
1616
+ logger.info("agent_server_listening", {
1617
+ component: "agents-sdk.server",
1618
+ url: this.url,
1619
+ hostname,
1620
+ port,
1621
+ });
1592
1622
  },
1593
1623
 
1594
1624
  async stop() {
@@ -1644,7 +1674,11 @@ export function createAgentServer(
1644
1674
  issuer: issuerUrl,
1645
1675
  scopes: scopes ?? ["*"],
1646
1676
  });
1647
- console.error(`[agent-server] Added trusted issuer: ${issuerUrl}`);
1677
+ logger.info("trusted_issuer_added", {
1678
+ component: "agents-sdk.server",
1679
+ issuer: issuerUrl,
1680
+ scopes: scopes ?? ["*"],
1681
+ });
1648
1682
  }
1649
1683
  },
1650
1684
  };