@slashfi/agents-sdk 0.77.2 → 0.77.3

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.
@@ -19,227 +19,7 @@
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.createAdkTools = createAdkTools;
22
- const zod_1 = require("zod");
23
- const adk_error_js_1 = require("./adk-error.js");
24
- const call_agent_schema_js_1 = require("./call-agent-schema.js");
25
22
  const define_js_1 = require("./define.js");
26
- const objectRecordSchema = zod_1.z.record(zod_1.z.unknown());
27
- const sourceRegistrySchema = zod_1.z
28
- .object({
29
- url: zod_1.z.string().min(1).describe("Registry MCP URL."),
30
- agentPath: zod_1.z.string().optional().describe("Agent path on that registry."),
31
- })
32
- .passthrough();
33
- const refScopeSchema = zod_1.z
34
- .string()
35
- .optional()
36
- .describe("Config scope to operate on.");
37
- const refNameSchema = zod_1.z.string().min(1).describe("Local connection name.");
38
- const refAddOperationSchema = zod_1.z
39
- .object({
40
- operation: zod_1.z.literal("add"),
41
- scope: refScopeSchema,
42
- ref: zod_1.z
43
- .string()
44
- .min(1)
45
- .optional()
46
- .describe("Canonical agent path, e.g. 'google-calendar'. Defaults to name when omitted."),
47
- name: refNameSchema
48
- .optional()
49
- .describe("Local connection name. Defaults to ref when omitted."),
50
- scheme: zod_1.z
51
- .enum(["registry", "mcp", "https"])
52
- .optional()
53
- .describe("Connection type. Usually inferred from sourceRegistry or url."),
54
- url: zod_1.z
55
- .string()
56
- .min(1)
57
- .optional()
58
- .describe("Direct MCP/HTTPS URL. Required for direct mcp/https refs."),
59
- sourceRegistry: sourceRegistrySchema
60
- .optional()
61
- .describe("Registry that serves this agent. Required for registry-backed refs."),
62
- config: objectRecordSchema
63
- .optional()
64
- .describe("Optional per-instance config."),
65
- })
66
- .passthrough()
67
- .superRefine((input, ctx) => {
68
- if (!input.ref && !input.name) {
69
- ctx.addIssue({
70
- code: zod_1.z.ZodIssueCode.custom,
71
- path: ["ref"],
72
- message: "Either ref or name is required.",
73
- });
74
- }
75
- if (input.scheme === "registry" && !input.sourceRegistry?.url) {
76
- ctx.addIssue({
77
- code: zod_1.z.ZodIssueCode.custom,
78
- path: ["sourceRegistry", "url"],
79
- message: "scheme=registry requires sourceRegistry.url.",
80
- });
81
- }
82
- if ((input.scheme === "mcp" || input.scheme === "https") && !input.url) {
83
- ctx.addIssue({
84
- code: zod_1.z.ZodIssueCode.custom,
85
- path: ["url"],
86
- message: `scheme=${input.scheme} requires url.`,
87
- });
88
- }
89
- if (!input.url && !input.sourceRegistry?.url) {
90
- ctx.addIssue({
91
- code: zod_1.z.ZodIssueCode.custom,
92
- path: ["sourceRegistry"],
93
- message: "Connection target is required: provide sourceRegistry.url for a registry ref, or url for a direct mcp/https ref.",
94
- });
95
- }
96
- });
97
- const refOperationSchemas = {
98
- add: refAddOperationSchema,
99
- remove: zod_1.z
100
- .object({
101
- operation: zod_1.z.literal("remove"),
102
- scope: refScopeSchema,
103
- name: refNameSchema,
104
- })
105
- .passthrough(),
106
- list: zod_1.z
107
- .object({ operation: zod_1.z.literal("list"), scope: refScopeSchema })
108
- .passthrough(),
109
- update: zod_1.z
110
- .object({
111
- operation: zod_1.z.literal("update"),
112
- scope: refScopeSchema,
113
- name: refNameSchema,
114
- ref: zod_1.z.string().optional(),
115
- scheme: zod_1.z.enum(["registry", "mcp", "https"]).optional(),
116
- url: zod_1.z.string().optional(),
117
- sourceRegistry: sourceRegistrySchema.optional(),
118
- config: objectRecordSchema.optional(),
119
- })
120
- .passthrough(),
121
- inspect: zod_1.z
122
- .object({
123
- operation: zod_1.z.literal("inspect"),
124
- scope: refScopeSchema,
125
- name: refNameSchema,
126
- full: zod_1.z.boolean().optional(),
127
- })
128
- .passthrough(),
129
- call: zod_1.z
130
- .object({
131
- operation: zod_1.z.literal("call"),
132
- scope: refScopeSchema,
133
- name: refNameSchema,
134
- tool: zod_1.z.string().min(1),
135
- params: objectRecordSchema.optional(),
136
- })
137
- .passthrough(),
138
- auth: zod_1.z
139
- .object({
140
- operation: zod_1.z.literal("auth"),
141
- scope: refScopeSchema,
142
- name: refNameSchema,
143
- ref: zod_1.z.string().optional(),
144
- apiKey: zod_1.z.string().optional(),
145
- credentials: zod_1.z.record(zod_1.z.string()).optional(),
146
- sourceRegistry: sourceRegistrySchema.optional(),
147
- })
148
- .passthrough(),
149
- "auth-status": zod_1.z
150
- .object({
151
- operation: zod_1.z.literal("auth-status"),
152
- scope: refScopeSchema,
153
- name: refNameSchema,
154
- })
155
- .passthrough(),
156
- "refresh-token": zod_1.z
157
- .object({
158
- operation: zod_1.z.literal("refresh-token"),
159
- scope: refScopeSchema,
160
- name: refNameSchema,
161
- })
162
- .passthrough(),
163
- resources: zod_1.z
164
- .object({
165
- operation: zod_1.z.literal("resources"),
166
- scope: refScopeSchema,
167
- name: refNameSchema,
168
- })
169
- .passthrough(),
170
- read: zod_1.z
171
- .object({
172
- operation: zod_1.z.literal("read"),
173
- scope: refScopeSchema,
174
- name: refNameSchema,
175
- uris: zod_1.z.array(zod_1.z.string()),
176
- })
177
- .passthrough(),
178
- };
179
- const refToolInputSchema = zod_1.z.union([
180
- refOperationSchemas.add,
181
- refOperationSchemas.remove,
182
- refOperationSchemas.list,
183
- refOperationSchemas.update,
184
- refOperationSchemas.inspect,
185
- refOperationSchemas.call,
186
- refOperationSchemas.auth,
187
- refOperationSchemas["auth-status"],
188
- refOperationSchemas["refresh-token"],
189
- refOperationSchemas.resources,
190
- refOperationSchemas.read,
191
- ]);
192
- const refToolInputJsonSchema = (0, call_agent_schema_js_1.zodToOpenAiJsonSchema)(refToolInputSchema);
193
- function parseRefToolInput(input) {
194
- const op = typeof input.operation === "string" ? input.operation : undefined;
195
- const schema = op && op in refOperationSchemas
196
- ? refOperationSchemas[op]
197
- : refToolInputSchema;
198
- const result = schema.safeParse(input);
199
- if (result.success)
200
- return result.data;
201
- const operation = op ? `ref.${op}` : "ref";
202
- throw new adk_error_js_1.AdkError({
203
- code: "TOOL_INPUT_INVALID",
204
- message: `Invalid ${operation} input`,
205
- hint: "The expected input schema is serialized in details.schema; operation-specific schema is in details.operationSchema.",
206
- details: {
207
- operation,
208
- issues: result.error.issues.map((issue) => ({
209
- path: issue.path.join("."),
210
- message: issue.message,
211
- })),
212
- received: input,
213
- schema: refToolInputJsonSchema,
214
- ...(op &&
215
- op in refOperationSchemas && {
216
- operationSchema: (0, call_agent_schema_js_1.zodToOpenAiJsonSchema)(refOperationSchemas[op]),
217
- }),
218
- },
219
- });
220
- }
221
- function withScopeSchema(schema, scopeSchema) {
222
- const clone = JSON.parse(JSON.stringify(schema));
223
- const visit = (value) => {
224
- if (!value || typeof value !== "object")
225
- return;
226
- if (Array.isArray(value)) {
227
- for (const item of value)
228
- visit(item);
229
- return;
230
- }
231
- const record = value;
232
- const properties = record.properties;
233
- if (properties?.scope) {
234
- properties.scope = scopeSchema;
235
- }
236
- for (const child of Object.values(record)) {
237
- visit(child);
238
- }
239
- };
240
- visit(clone);
241
- return clone;
242
- }
243
23
  function createAdkTools(opts) {
244
24
  const { resolveScope, scopes } = opts;
245
25
  const scopeSchema = scopes
@@ -252,34 +32,105 @@ function createAdkTools(opts) {
252
32
  const refTool = (0, define_js_1.defineTool)({
253
33
  name: "ref",
254
34
  description: "Manage agent refs. Operations: add, remove, list, update, inspect, call, auth, auth-status, refresh-token, resources, read. For `add`, supply `ref` (canonical agent path, e.g. 'notion') and `name` (local identifier). If `name` is omitted on add, it defaults to `ref`. For every other operation, pass `name`.",
255
- inputSchema: withScopeSchema(refToolInputJsonSchema, scopeSchema),
35
+ inputSchema: {
36
+ type: "object",
37
+ properties: {
38
+ operation: {
39
+ type: "string",
40
+ enum: [
41
+ "add",
42
+ "remove",
43
+ "list",
44
+ "update",
45
+ "inspect",
46
+ "call",
47
+ "auth",
48
+ "auth-status",
49
+ "refresh-token",
50
+ "resources",
51
+ "read",
52
+ ],
53
+ },
54
+ scope: scopeSchema,
55
+ ref: {
56
+ type: "string",
57
+ description: "Canonical agent path on the remote registry (e.g. 'notion', 'linear', 'github'). Used by `add` to identify which agent definition to connect to. Other operations use `name` instead. If you call `add` with only `name` and no `ref`, `ref` defaults to `name`.",
58
+ },
59
+ name: {
60
+ type: "string",
61
+ description: "Local identifier for this ref, used by all operations to look up the entry. On `add`, defaults to `ref` when omitted.",
62
+ },
63
+ scheme: {
64
+ type: "string",
65
+ description: "Connection scheme: 'mcp' (direct MCP server), 'https' (REST proxy), or 'registry' (discovered via a registry). Auto-inferred from `url` or `sourceRegistry` when omitted.",
66
+ },
67
+ url: {
68
+ type: "string",
69
+ description: "Direct URL to the agent (e.g. https://mcp.notion.com/mcp). Required for 'mcp' and 'https' schemes.",
70
+ },
71
+ sourceRegistry: {
72
+ type: "object",
73
+ properties: {
74
+ url: { type: "string" },
75
+ agentPath: { type: "string" },
76
+ },
77
+ description: "When scheme is 'registry', the registry + agent path to resolve through.",
78
+ },
79
+ config: {
80
+ type: "object",
81
+ description: "Per-instance config passed to the agent (headers, credentials, etc.). Supports `{{secret-uri}}` templates.",
82
+ },
83
+ tool: {
84
+ type: "string",
85
+ description: "For `call` operation: the tool name on the ref to invoke.",
86
+ },
87
+ params: {
88
+ type: "object",
89
+ description: "For `call` operation: arguments to pass to the tool.",
90
+ },
91
+ full: {
92
+ type: "boolean",
93
+ description: "For `inspect` operation: include full agent definition.",
94
+ },
95
+ uris: {
96
+ type: "array",
97
+ items: { type: "string" },
98
+ description: "For `read` operation: the resource URIs to read.",
99
+ },
100
+ apiKey: {
101
+ type: "string",
102
+ description: "For `auth` operation: pre-provisioned API key.",
103
+ },
104
+ credentials: {
105
+ type: "object",
106
+ description: "For `auth` operation: key-value map of credential fields (keys match field names from the auth challenge).",
107
+ },
108
+ },
109
+ required: ["operation"],
110
+ },
256
111
  execute: async (input, ctx) => {
257
- const parsedInput = parseRefToolInput(input);
258
- const adk = await resolveScope(parsedInput.scope, ctx);
259
- const op = parsedInput.operation;
112
+ const adk = await resolveScope(input.scope, ctx);
113
+ const op = input.operation;
260
114
  switch (op) {
261
115
  case "add": {
262
116
  // Accept `ref` or `name` (or both). If only one is given, the
263
117
  // other defaults to it. The stored entry always has an explicit
264
118
  // `name`, so downstream auth/callback state can distinguish the
265
119
  // canonical ref from the local connection handle.
266
- const refValue = (parsedInput.ref ?? parsedInput.name);
120
+ const refValue = (input.ref ?? input.name);
267
121
  if (!refValue) {
268
122
  throw new Error("ref.add: must supply either 'ref' (canonical agent path) or 'name' (local identifier); both may be the same string for the common single-instance case.");
269
123
  }
270
- const nameValue = (parsedInput.name ?? refValue);
271
- const entry = {
272
- ref: refValue,
273
- name: nameValue,
274
- };
275
- if (parsedInput.scheme)
276
- entry.scheme = parsedInput.scheme;
277
- if (parsedInput.url)
278
- entry.url = parsedInput.url;
279
- if (parsedInput.sourceRegistry)
280
- entry.sourceRegistry = parsedInput.sourceRegistry;
281
- if (parsedInput.config)
282
- entry.config = parsedInput.config;
124
+ const nameValue = (input.name ?? refValue);
125
+ const entry = { ref: refValue, name: nameValue };
126
+ if (input.scheme)
127
+ entry.scheme = input.scheme;
128
+ if (input.url)
129
+ entry.url = input.url;
130
+ if (input.sourceRegistry)
131
+ entry.sourceRegistry = input.sourceRegistry;
132
+ if (input.config)
133
+ entry.config = input.config;
283
134
  const { security } = await adk.ref.add(entry);
284
135
  return {
285
136
  added: true,
@@ -289,38 +140,38 @@ function createAdkTools(opts) {
289
140
  };
290
141
  }
291
142
  case "remove":
292
- return { removed: await adk.ref.remove(parsedInput.name) };
143
+ return { removed: await adk.ref.remove(input.name) };
293
144
  case "list":
294
145
  return { refs: await adk.ref.list() };
295
146
  case "update":
296
147
  return {
297
- updated: await adk.ref.update(parsedInput.name, parsedInput),
148
+ updated: await adk.ref.update(input.name, input),
298
149
  };
299
150
  case "inspect":
300
- return await adk.ref.inspect(parsedInput.name, {
301
- full: parsedInput.full,
151
+ return await adk.ref.inspect(input.name, {
152
+ full: input.full,
302
153
  });
303
154
  case "call":
304
- return await adk.ref.call(parsedInput.name, parsedInput.tool, parsedInput.params);
155
+ return await adk.ref.call(input.name, input.tool, input.params);
305
156
  case "auth": {
306
157
  const authOpts = {};
307
- if (parsedInput.apiKey)
308
- authOpts.apiKey = parsedInput.apiKey;
309
- if (parsedInput.credentials)
310
- authOpts.credentials = parsedInput.credentials;
158
+ if (input.apiKey)
159
+ authOpts.apiKey = input.apiKey;
160
+ if (input.credentials)
161
+ authOpts.credentials = input.credentials;
311
162
  if (opts.hooks?.getAuthStateContext) {
312
- authOpts.stateContext = await opts.hooks.getAuthStateContext(parsedInput, ctx);
163
+ authOpts.stateContext = await opts.hooks.getAuthStateContext(input, ctx);
313
164
  }
314
- return await adk.ref.auth(parsedInput.name, authOpts);
165
+ return await adk.ref.auth(input.name, authOpts);
315
166
  }
316
167
  case "auth-status":
317
- return await adk.ref.authStatus(parsedInput.name);
168
+ return await adk.ref.authStatus(input.name);
318
169
  case "refresh-token":
319
- return await adk.ref.refreshToken(parsedInput.name);
170
+ return await adk.ref.refreshToken(input.name);
320
171
  case "resources":
321
- return await adk.ref.resources(parsedInput.name);
172
+ return await adk.ref.resources(input.name);
322
173
  case "read":
323
- return await adk.ref.read(parsedInput.name, parsedInput.uris);
174
+ return await adk.ref.read(input.name, input.uris);
324
175
  default:
325
176
  throw new Error(`Unknown ref operation: ${op}`);
326
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adk-tools.js","sourceRoot":"","sources":["../../src/adk-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adk-tools.js","sourceRoot":"","sources":["../../src/adk-tools.ts"],"names":[],"mappings":"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"}
@@ -244,6 +244,47 @@ function createAdk(fs, options = {}) {
244
244
  }
245
245
  return value;
246
246
  }
247
+ /**
248
+ * Build a `tryResolve(field, oauthMetadata?)` function bound to a
249
+ * specific ref + entry + security context. Wraps the host-injected
250
+ * `resolveCredentials` callback (e.g. atlas's env/static/tenant chain
251
+ * for first-party agents). Errors propagate to the caller.
252
+ */
253
+ function makeTryResolve(ctx) {
254
+ return async (field, oauthMetadata) => {
255
+ const resolve = options.resolveCredentials;
256
+ if (!resolve)
257
+ return null;
258
+ return resolve({
259
+ ref: ctx.name,
260
+ field,
261
+ entry: ctx.entry,
262
+ security: ctx.security,
263
+ oauthMetadata,
264
+ });
265
+ };
266
+ }
267
+ /**
268
+ * Resolve OAuth client credentials (client_id + client_secret) for a
269
+ * ref. Walks: `resolveCredentials` callback → per-ref VCS storage.
270
+ * Used by both `auth` (initial OAuth flow) and `refreshToken` (token
271
+ * refresh) — must be a single function so the two paths can never
272
+ * disagree about where credentials live.
273
+ *
274
+ * Returns null when no client_id is available anywhere; caller decides
275
+ * whether to attempt dynamic registration (`auth`) or bail (`refresh`).
276
+ */
277
+ async function resolveOAuthClient(ctx) {
278
+ const tryResolve = makeTryResolve(ctx);
279
+ const clientId = (await tryResolve("client_id", ctx.metadata)) ??
280
+ (await readRefSecret(ctx.name, "client_id"));
281
+ if (!clientId)
282
+ return null;
283
+ const clientSecret = (await tryResolve("client_secret", ctx.metadata)) ??
284
+ (await readRefSecret(ctx.name, "client_secret")) ??
285
+ undefined;
286
+ return { clientId, ...(clientSecret && { clientSecret }) };
287
+ }
247
288
  const PENDING_OAUTH_PATH = "pending-oauth.json";
248
289
  async function readPendingOAuth() {
249
290
  const content = await fs.readFile(PENDING_OAUTH_PATH);
@@ -1399,12 +1440,9 @@ function createAdk(fs, options = {}) {
1399
1440
  return { name, security, complete: true, fields: {} };
1400
1441
  }
1401
1442
  const configKeys = Object.keys(entry.config ?? {});
1402
- const resolve = options.resolveCredentials;
1443
+ const tryResolveField = makeTryResolve({ name, entry, security });
1403
1444
  async function canResolve(field, oauthMetadata) {
1404
- if (!resolve || !entry)
1405
- return false;
1406
- const val = await resolve({ ref: name, field, entry, security, oauthMetadata });
1407
- return val !== null;
1445
+ return (await tryResolveField(field, oauthMetadata)) !== null;
1408
1446
  }
1409
1447
  const fields = {};
1410
1448
  if (security.type === "oauth2") {
@@ -1509,12 +1547,7 @@ function createAdk(fs, options = {}) {
1509
1547
  }
1510
1548
  const status = await ref.authStatus(name);
1511
1549
  const security = status.security;
1512
- const resolve = options.resolveCredentials;
1513
- async function tryResolve(field, oauthMetadata) {
1514
- if (!resolve)
1515
- return null;
1516
- return resolve({ ref: name, field, entry: entry, security, oauthMetadata });
1517
- }
1550
+ const tryResolve = makeTryResolve({ name, entry, security });
1518
1551
  if (!security || security.type === "none") {
1519
1552
  return { type: "none", complete: true };
1520
1553
  }
@@ -1646,11 +1679,14 @@ function createAdk(fs, options = {}) {
1646
1679
  }
1647
1680
  const redirectUri = callbackUrl();
1648
1681
  // Resolve client credentials: callback → stored → dynamic registration
1649
- let clientId = await tryResolve("client_id", metadata)
1650
- ?? await readRefSecret(name, "client_id");
1651
- let clientSecret = await tryResolve("client_secret", metadata)
1652
- ?? await readRefSecret(name, "client_secret")
1653
- ?? undefined;
1682
+ const fromHelper = await resolveOAuthClient({
1683
+ name,
1684
+ entry,
1685
+ security,
1686
+ metadata,
1687
+ });
1688
+ let clientId = fromHelper?.clientId;
1689
+ let clientSecret = fromHelper?.clientSecret;
1654
1690
  if (!clientId && metadata.registration_endpoint) {
1655
1691
  const supportedAuthMethods = metadata.token_endpoint_auth_methods_supported ?? ["none"];
1656
1692
  const preferredMethod = supportedAuthMethods.includes("none")
@@ -1870,22 +1906,28 @@ function createAdk(fs, options = {}) {
1870
1906
  const refreshToken = await readRefSecret(name, "refresh_token");
1871
1907
  if (!refreshToken)
1872
1908
  return null;
1873
- // Read client credentials
1874
- const clientId = await readRefSecret(name, "client_id");
1875
- if (!clientId)
1876
- return null;
1877
- const clientSecret = await readRefSecret(name, "client_secret");
1878
- // Get the agent's token endpoint from its security metadata
1909
+ // Resolve token endpoint + OAuth client via the host's
1910
+ // `resolveCredentials` chain. Same chain `auth` uses (see
1911
+ // `resolveOAuthClient`) — kept symmetric so refresh works on every
1912
+ // ref `auth` works on, including first-party registry-hosted
1913
+ // clients whose creds live in env / tenant scope, not the user's
1914
+ // per-ref config.
1879
1915
  const entry = await ref.get(name);
1880
1916
  if (!entry)
1881
1917
  return null;
1882
- const info = await ref.inspect(name);
1883
- const security = info?.security;
1884
- const flows = security?.flows;
1918
+ const status = await ref.authStatus(name);
1919
+ const security = status.security;
1920
+ const flows = security && "flows" in security
1921
+ ? security.flows
1922
+ : undefined;
1885
1923
  const authCodeFlow = flows?.authorizationCode;
1886
- const tokenUrl = (authCodeFlow?.refreshUrl ?? authCodeFlow?.tokenUrl);
1924
+ const tokenUrl = authCodeFlow?.refreshUrl ?? authCodeFlow?.tokenUrl;
1887
1925
  if (!tokenUrl)
1888
1926
  return null;
1927
+ const oauthClient = await resolveOAuthClient({ name, entry, security });
1928
+ if (!oauthClient)
1929
+ return null;
1930
+ const { clientId, clientSecret } = oauthClient;
1889
1931
  // POST to the token endpoint with grant_type=refresh_token
1890
1932
  const body = new URLSearchParams({
1891
1933
  grant_type: "refresh_token",