@slashfi/agents-sdk 0.21.0 → 0.22.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/dist/adk.js ADDED
@@ -0,0 +1,331 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * ADK CLI — Agent Development Kit
4
+ *
5
+ * Unified CLI for building, testing, and publishing agent definitions.
6
+ *
7
+ * Commands:
8
+ * codegen Generate agent definitions from an MCP server (full codegen)
9
+ * introspect Introspect an MCP server → agent.json (lightweight)
10
+ * pack Generate publishable @agentdef/* package from agent.json
11
+ * publish Pack + npm publish to @agentdef/*
12
+ * use Execute a tool on a generated agent
13
+ * list List all generated agents
14
+ *
15
+ * @example
16
+ * ```bash
17
+ * # Full codegen from MCP server
18
+ * adk codegen --server 'npx @mcp/notion' --name notion --out ./agents/@notion
19
+ *
20
+ * # Lightweight introspect → agent.json
21
+ * adk introspect --server 'npx @notionhq/notion-mcp-server' --name notion
22
+ *
23
+ * # Build + publish
24
+ * adk pack
25
+ * adk publish
26
+ *
27
+ * # Use a tool
28
+ * adk use notion search_pages '{"query": "hello"}'
29
+ * adk use notion --list
30
+ * ```
31
+ */
32
+ import { existsSync, readdirSync } from "node:fs";
33
+ import { join, resolve } from "node:path";
34
+ import { codegen, listAgentTools, useAgent } from "./codegen.js";
35
+ import { pack, publish } from "./pack.js";
36
+ const args = process.argv.slice(2);
37
+ const command = args[0];
38
+ // ============================================
39
+ // Helpers
40
+ // ============================================
41
+ function getArg(flag) {
42
+ const idx = args.indexOf(flag);
43
+ if (idx === -1 || idx + 1 >= args.length)
44
+ return undefined;
45
+ return args[idx + 1];
46
+ }
47
+ function hasFlag(flag) {
48
+ return args.includes(flag);
49
+ }
50
+ function getAgentsDir() {
51
+ return resolve(process.env.AGENTS_SDK_DIR ?? "./agents");
52
+ }
53
+ function findAgentDir(name) {
54
+ const agentsDir = getAgentsDir();
55
+ const exactPath = resolve(name);
56
+ if (existsSync(join(exactPath, ".codegen-manifest.json")))
57
+ return exactPath;
58
+ const withAt = join(agentsDir, `@${name}`);
59
+ if (existsSync(join(withAt, ".codegen-manifest.json")))
60
+ return withAt;
61
+ const withoutAt = join(agentsDir, name);
62
+ if (existsSync(join(withoutAt, ".codegen-manifest.json")))
63
+ return withoutAt;
64
+ return null;
65
+ }
66
+ function printUsage() {
67
+ console.log(`
68
+ adk — Agent Development Kit
69
+
70
+ Usage:
71
+ adk codegen [options] Generate agent from MCP server (full codegen)
72
+ adk introspect [options] Introspect MCP server → agent.json
73
+ adk pack [options] Generate publishable package from agent.json
74
+ adk publish [options] Pack + npm publish to @agentdef/*
75
+ adk use <agent> [options] Execute a tool on a generated agent
76
+ adk list List all generated agents
77
+
78
+ Codegen options:
79
+ --server <source> MCP server (command string or URL)
80
+ --name <name> Agent name (default: derived from server)
81
+ --out <dir> Output directory (default: ./agents/@<name>)
82
+ --path <path> Agent path override
83
+ --no-cli Skip CLI generation
84
+ --no-types Skip TypeScript interface generation
85
+ --visibility <level> Agent visibility (public|internal|private)
86
+
87
+ Introspect options:
88
+ --server <cmd> MCP server command to introspect
89
+ --name <name> Agent name for output
90
+ --out <path> Output path (default: ./<name>.json)
91
+
92
+ Pack / Publish options:
93
+ --agent <path> Path to agent.json (default: ./agent.json)
94
+ --out <dir> Output directory (default: ./dist)
95
+ --scope <scope> npm scope (default: @agentdef)
96
+ --previous <path> Previous agent.json for diff
97
+ --dry-run Don't actually publish (publish only)
98
+ --tag <tag> npm dist-tag (default: latest)
99
+ --access <level> npm access: public | restricted (default: public)
100
+
101
+ Use options:
102
+ adk use <agent> <tool> [params_json]
103
+ adk use <agent> --list List tools on the agent
104
+
105
+ Examples:
106
+ adk codegen --server 'npx @mcp/notion' --name notion
107
+ adk introspect --server 'npx @notionhq/notion-mcp-server' --name notion
108
+ adk pack --agent ./agent.json
109
+ adk publish --dry-run
110
+ adk use notion search_pages '{"query": "hello"}'
111
+ `);
112
+ }
113
+ // ============================================
114
+ // Commands
115
+ // ============================================
116
+ async function runCodegen() {
117
+ const server = getArg("--server");
118
+ const name = getArg("--name");
119
+ const outDir = getArg("--out");
120
+ const agentPath = getArg("--path");
121
+ const visibility = getArg("--visibility");
122
+ const noCli = hasFlag("--no-cli");
123
+ const noTypes = hasFlag("--no-types");
124
+ if (!server) {
125
+ console.error("Error: --server is required.\n" +
126
+ " Example: adk codegen --server 'npx @mcp/notion' --name notion");
127
+ process.exit(1);
128
+ }
129
+ const resolvedOutDir = outDir ??
130
+ join(getAgentsDir(), `@${(name ?? "mcp-agent").toLowerCase().replace(/[^a-z0-9-]/g, "-")}`);
131
+ console.log(`Connecting to MCP server: ${server}`);
132
+ console.log(`Output: ${resolvedOutDir}\n`);
133
+ try {
134
+ const result = await codegen({
135
+ server,
136
+ outDir: resolvedOutDir,
137
+ agentPath,
138
+ name,
139
+ cli: !noCli,
140
+ types: !noTypes,
141
+ visibility,
142
+ });
143
+ console.log(`\x1b[32m\u2713\x1b[0m Generated ${result.toolCount} tools from ${result.serverInfo.name ?? "MCP server"}`);
144
+ console.log("\nFiles:");
145
+ for (const f of result.files) {
146
+ console.log(` ${f}`);
147
+ }
148
+ console.log(`\nUse: adk use ${name ?? result.serverInfo.name ?? "<agent>"} --list`);
149
+ }
150
+ catch (err) {
151
+ console.error(`\x1b[31mError:\x1b[0m ${err instanceof Error ? err.message : String(err)}`);
152
+ process.exit(1);
153
+ }
154
+ }
155
+ async function runIntrospect() {
156
+ const server = getArg("--server");
157
+ const name = getArg("--name");
158
+ const out = getArg("--out") || (name ? `./${name}.json` : undefined);
159
+ if (!server || !name) {
160
+ console.error("Usage: adk introspect --server <cmd> --name <name> [--out <path>]");
161
+ process.exit(1);
162
+ }
163
+ const { introspectMcp } = await import("./introspect.js");
164
+ await introspectMcp({ server, name, out });
165
+ }
166
+ function runPack() {
167
+ const agentFile = getArg("--agent") || "./agent.json";
168
+ const outDir = getArg("--out") || "./dist";
169
+ const scope = getArg("--scope") || "@agentdef";
170
+ const previousAgentFile = getArg("--previous");
171
+ if (!existsSync(resolve(agentFile))) {
172
+ console.error(`agent.json not found at ${resolve(agentFile)}`);
173
+ console.error("Run 'adk introspect' first, or specify --agent <path>");
174
+ process.exit(1);
175
+ }
176
+ const result = pack({ agentFile, outDir, scope, previousAgentFile });
177
+ console.log(`\n\u2705 Packed ${result.packageName}@${result.version}`);
178
+ console.log(` Hash: ${result.hash}`);
179
+ console.log(` Tools: ${result.meta.toolCount}`);
180
+ console.log(` Size: ${(result.meta.sizeBytes / 1024).toFixed(1)}KB`);
181
+ console.log(` Output: ${result.packageDir}`);
182
+ if (result.meta.changes) {
183
+ const c = result.meta.changes;
184
+ if (c.toolsAdded.length > 0)
185
+ console.log(` Added: ${c.toolsAdded.join(", ")}`);
186
+ if (c.toolsRemoved.length > 0)
187
+ console.log(` Removed: ${c.toolsRemoved.join(", ")}`);
188
+ if (c.toolsModified.length > 0)
189
+ console.log(` Modified: ${c.toolsModified.join(", ")}`);
190
+ }
191
+ }
192
+ function runPublish() {
193
+ const agentFile = getArg("--agent") || "./agent.json";
194
+ const outDir = getArg("--out") || "./dist";
195
+ const scope = getArg("--scope") || "@agentdef";
196
+ const previousAgentFile = getArg("--previous");
197
+ const dryRun = hasFlag("--dry-run");
198
+ const tag = getArg("--tag");
199
+ const access = getArg("--access");
200
+ const registry = getArg("--registry");
201
+ if (!existsSync(resolve(agentFile))) {
202
+ console.error(`agent.json not found at ${resolve(agentFile)}`);
203
+ console.error("Run 'adk introspect' first, or specify --agent <path>");
204
+ process.exit(1);
205
+ }
206
+ try {
207
+ const result = publish({
208
+ agentFile,
209
+ outDir,
210
+ scope,
211
+ previousAgentFile,
212
+ dryRun,
213
+ tag,
214
+ access,
215
+ registry,
216
+ });
217
+ console.log(`\n\u2705 Published ${result.packageName}@${result.version} (hash: ${result.hash})`);
218
+ }
219
+ catch (err) {
220
+ console.error(err instanceof Error ? err.message : String(err));
221
+ process.exit(1);
222
+ }
223
+ }
224
+ async function runUse() {
225
+ const agentName = args[1];
226
+ if (!agentName) {
227
+ console.error("Error: agent name required.\n" +
228
+ " Example: adk use notion search_pages '{...}'");
229
+ process.exit(1);
230
+ }
231
+ const agentDir = findAgentDir(agentName);
232
+ if (!agentDir) {
233
+ console.error(`Error: agent '${agentName}' not found.\n` +
234
+ ` Looked in: ${getAgentsDir()}\n` +
235
+ ` Generate first: adk codegen --server '...' --name ${agentName}`);
236
+ process.exit(1);
237
+ }
238
+ if (hasFlag("--list")) {
239
+ const tools = listAgentTools(agentDir);
240
+ console.log(`Tools for ${agentName}:\n`);
241
+ for (const t of tools) {
242
+ console.log(` ${t.name.padEnd(30)} ${t.description ?? ""}`);
243
+ }
244
+ return;
245
+ }
246
+ const toolName = args[2];
247
+ if (!toolName) {
248
+ console.error(`Error: tool name required.\n Example: adk use ${agentName} <tool> [params]\n List tools: adk use ${agentName} --list`);
249
+ process.exit(1);
250
+ }
251
+ const paramsStr = args[3];
252
+ const params = paramsStr ? JSON.parse(paramsStr) : {};
253
+ try {
254
+ const result = await useAgent({
255
+ agentDir,
256
+ tool: toolName,
257
+ params,
258
+ });
259
+ console.log(JSON.stringify(result, null, 2));
260
+ }
261
+ catch (err) {
262
+ console.error(`\x1b[31mError:\x1b[0m ${err instanceof Error ? err.message : String(err)}`);
263
+ process.exit(1);
264
+ }
265
+ }
266
+ function runList() {
267
+ const agentsDir = getAgentsDir();
268
+ if (!existsSync(agentsDir)) {
269
+ console.log("No generated agents found.");
270
+ return;
271
+ }
272
+ const entries = readdirSync(agentsDir);
273
+ const agents = [];
274
+ for (const entry of entries) {
275
+ const manifestPath = join(agentsDir, entry, ".codegen-manifest.json");
276
+ if (existsSync(manifestPath)) {
277
+ try {
278
+ const manifest = JSON.parse(require("node:fs").readFileSync(manifestPath, "utf-8"));
279
+ agents.push({
280
+ name: manifest.agentPath,
281
+ tools: manifest.tools.length,
282
+ server: manifest.serverInfo.name,
283
+ });
284
+ }
285
+ catch {
286
+ agents.push({ name: entry, tools: 0 });
287
+ }
288
+ }
289
+ }
290
+ if (agents.length === 0) {
291
+ console.log("No generated agents found.");
292
+ return;
293
+ }
294
+ console.log("Generated agents:\n");
295
+ for (const a of agents) {
296
+ console.log(` ${a.name.padEnd(25)} ${String(a.tools).padEnd(5)} tools${a.server ? ` (${a.server})` : ""}`);
297
+ }
298
+ }
299
+ // ============================================
300
+ // Main
301
+ // ============================================
302
+ switch (command) {
303
+ case "codegen":
304
+ await runCodegen();
305
+ break;
306
+ case "introspect":
307
+ await runIntrospect();
308
+ break;
309
+ case "pack":
310
+ runPack();
311
+ break;
312
+ case "publish":
313
+ runPublish();
314
+ break;
315
+ case "use":
316
+ await runUse();
317
+ break;
318
+ case "list":
319
+ runList();
320
+ break;
321
+ case "--help":
322
+ case "-h":
323
+ case undefined:
324
+ printUsage();
325
+ break;
326
+ default:
327
+ console.error(`Unknown command: ${command}`);
328
+ printUsage();
329
+ process.exit(1);
330
+ }
331
+ //# sourceMappingURL=adk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adk.js","sourceRoot":"","sources":["../src/adk.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -89,4 +89,9 @@ export { serializeAgent, serializeTool } from "./serialized.js";
89
89
  export type { SerializedAgentDefinition, SerializedTool, } from "./serialized.js";
90
90
  export { createClient } from "./client.js";
91
91
  export type { AgentClient, CreateClientOptions, } from "./client.js";
92
+ export { parseJsonc, readJsoncFile } from "./jsonc.js";
93
+ export { pack, publish } from "./pack.js";
94
+ export type { PackOptions, PackResult, PublishOptions, VersionMeta, VersionChanges, } from "./pack.js";
95
+ export { introspectMcp } from "./introspect.js";
96
+ export type { IntrospectOptions } from "./introspect.js";
92
97
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -91,4 +91,16 @@ export { serializeAgent, serializeTool } from "./serialized.js";
91
91
  // Agent Client
92
92
  // ============================================
93
93
  export { createClient } from "./client.js";
94
+ // ============================================
95
+ // JSONC Parser
96
+ // ============================================
97
+ export { parseJsonc, readJsoncFile } from "./jsonc.js";
98
+ // ============================================
99
+ // Pack & Publish
100
+ // ============================================
101
+ export { pack, publish } from "./pack.js";
102
+ // ============================================
103
+ // Introspect
104
+ // ============================================
105
+ export { introspectMcp } from "./introspect.js";
94
106
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAiDH,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtD,WAAW;AACX,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,SAAS;AACT,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAc7C,SAAS;AACT,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAMhC,OAAO;AACP,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AASrC,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,UAAU;AACV,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,WAAW,EACX,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAOxC,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM;AACN,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,UAAU,CAAC;AAQlB,wBAAwB;AAExB,eAAe;AACf,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,qCAAqC,CAAC;AAiB7C,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,QAAQ;AACR,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAOtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EACL,gBAAgB,GAMjB,MAAM,kBAAkB,CAAC;AAE1B,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAShE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAWjE,+CAA+C;AAC/C,+BAA+B;AAC/B,+CAA+C;AAE/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhE,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAiDH,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtD,WAAW;AACX,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,SAAS;AACT,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAc7C,SAAS;AACT,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,aAAa,CAAC;AASrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAMhC,OAAO;AACP,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AASrC,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,UAAU;AACV,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,WAAW,EACX,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAOxC,SAAS;AACT,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM;AACN,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,UAAU,CAAC;AAQlB,wBAAwB;AAExB,eAAe;AACf,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,qCAAqC,CAAC;AAiB7C,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,QAAQ;AACR,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAOtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAE3C,OAAO,EACL,gBAAgB,GAMjB,MAAM,kBAAkB,CAAC;AAE1B,oBAAoB;AACpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAShE,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAWjE,+CAA+C;AAC/C,+BAA+B;AAC/B,+CAA+C;AAE/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhE,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvD,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAS1C,+CAA+C;AAC/C,aAAa;AACb,+CAA+C;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * MCP Introspection
3
+ *
4
+ * Connects to an MCP server, introspects its tools,
5
+ * and outputs a SerializedAgentDefinition (agent.json).
6
+ *
7
+ * Deduplicates shared $defs across tools.
8
+ */
9
+ export interface IntrospectOptions {
10
+ server: string;
11
+ name: string;
12
+ out?: string;
13
+ env?: Record<string, string>;
14
+ }
15
+ export declare function introspectMcp(options: IntrospectOptions): Promise<void>;
16
+ //# sourceMappingURL=introspect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAoCD,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoH7E"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * MCP Introspection
3
+ *
4
+ * Connects to an MCP server, introspects its tools,
5
+ * and outputs a SerializedAgentDefinition (agent.json).
6
+ *
7
+ * Deduplicates shared $defs across tools.
8
+ */
9
+ import { spawn } from "node:child_process";
10
+ import { mkdirSync, writeFileSync } from "node:fs";
11
+ import { dirname, resolve } from "node:path";
12
+ function deduplicateDefs(tools) {
13
+ const defsByContent = new Map();
14
+ for (const tool of tools) {
15
+ const schema = tool.inputSchema;
16
+ const defs = schema?.$defs;
17
+ if (!defs || typeof defs !== "object")
18
+ continue;
19
+ for (const [defName, defSchema] of Object.entries(defs)) {
20
+ const key = JSON.stringify(defSchema);
21
+ if (!defsByContent.has(key)) {
22
+ defsByContent.set(key, { name: defName, schema: defSchema });
23
+ }
24
+ }
25
+ }
26
+ const sharedDefs = {};
27
+ for (const { name, schema } of Array.from(defsByContent.values())) {
28
+ sharedDefs[name] = schema;
29
+ }
30
+ const cleanedTools = tools.map((t) => {
31
+ const schema = { ...t.inputSchema };
32
+ schema.$defs = undefined;
33
+ return { ...t, inputSchema: schema };
34
+ });
35
+ return { tools: cleanedTools, sharedDefs };
36
+ }
37
+ export async function introspectMcp(options) {
38
+ const { server, name, out } = options;
39
+ const parts = server.split(/\s+/);
40
+ const proc = spawn(parts[0], parts.slice(1), {
41
+ stdio: ["pipe", "pipe", "pipe"],
42
+ env: { ...process.env, ...options.env },
43
+ });
44
+ let buffer = "";
45
+ let messageId = 0;
46
+ function sendJsonRpc(method, params = {}) {
47
+ const id = ++messageId;
48
+ const msg = JSON.stringify({ jsonrpc: "2.0", id, method, params });
49
+ proc.stdin?.write(`${msg}\n`);
50
+ return id;
51
+ }
52
+ function waitForResponse(targetId) {
53
+ return new Promise((res, reject) => {
54
+ const timeout = setTimeout(() => reject(new Error("Timeout")), 30000);
55
+ const handler = (chunk) => {
56
+ buffer += chunk.toString();
57
+ const lines = buffer.split("\n");
58
+ buffer = lines.pop() || "";
59
+ for (const line of lines) {
60
+ const trimmed = line.trim();
61
+ if (!trimmed)
62
+ continue;
63
+ try {
64
+ const parsed = JSON.parse(trimmed);
65
+ if (parsed.id === targetId) {
66
+ clearTimeout(timeout);
67
+ proc.stdout?.removeListener("data", handler);
68
+ if (parsed.error)
69
+ reject(new Error(JSON.stringify(parsed.error)));
70
+ else
71
+ res(parsed.result);
72
+ }
73
+ }
74
+ catch {
75
+ /* ignore non-JSON */
76
+ }
77
+ }
78
+ };
79
+ proc.stdout?.on("data", handler);
80
+ });
81
+ }
82
+ try {
83
+ console.log(`Connecting to MCP server: ${server}`);
84
+ const initId = sendJsonRpc("initialize", {
85
+ protocolVersion: "2024-11-05",
86
+ capabilities: {},
87
+ clientInfo: { name: "adk-introspect", version: "1.0.0" },
88
+ });
89
+ const initResult = (await waitForResponse(initId));
90
+ const serverInfo = initResult.serverInfo;
91
+ console.log(`Server: ${serverInfo?.name} v${serverInfo?.version}`);
92
+ proc.stdin?.write(`${JSON.stringify({ jsonrpc: "2.0", method: "notifications/initialized" })}\n`);
93
+ const toolsId = sendJsonRpc("tools/list", {});
94
+ const toolsResult = (await waitForResponse(toolsId));
95
+ const rawTools = (toolsResult.tools || []).map((t) => ({
96
+ name: t.name,
97
+ description: t.description || "",
98
+ inputSchema: t.inputSchema || {
99
+ type: "object",
100
+ properties: {},
101
+ },
102
+ }));
103
+ console.log(`Discovered ${rawTools.length} tools`);
104
+ const { tools, sharedDefs } = deduplicateDefs(rawTools);
105
+ const defsCount = Object.keys(sharedDefs).length;
106
+ if (defsCount > 0) {
107
+ console.log(`Hoisted ${defsCount} shared $defs`);
108
+ }
109
+ const definition = {
110
+ path: name,
111
+ name: serverInfo?.name || name,
112
+ description: `Agent for ${serverInfo?.name || name}`,
113
+ version: serverInfo?.version || "1.0.0",
114
+ visibility: "public",
115
+ serverSource: server,
116
+ serverInfo,
117
+ ...(defsCount > 0 ? { $defs: sharedDefs } : {}),
118
+ tools,
119
+ generatedAt: new Date().toISOString(),
120
+ sdkVersion: "0.22.0",
121
+ };
122
+ const outPath = out || `./${name}.json`;
123
+ const resolved = resolve(outPath);
124
+ mkdirSync(dirname(resolved), { recursive: true });
125
+ writeFileSync(resolved, `${JSON.stringify(definition, null, 2)}\n`);
126
+ const sizeKB = (JSON.stringify(definition).length / 1024).toFixed(1);
127
+ console.log(`\nWrote ${resolved} (${sizeKB}KB, ${tools.length} tools)`);
128
+ }
129
+ finally {
130
+ proc.kill();
131
+ }
132
+ }
133
+ //# sourceMappingURL=introspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspect.js","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * JSONC Parser
3
+ *
4
+ * Parses JSON with comments (single-line and multi-line)
5
+ * so agent.json files can be annotated.
6
+ */
7
+ /**
8
+ * Strip comments from JSONC content and parse as JSON.
9
+ */
10
+ export declare function parseJsonc(content: string): unknown;
11
+ /**
12
+ * Read and parse a JSONC file.
13
+ */
14
+ export declare function readJsoncFile(path: string): unknown;
15
+ //# sourceMappingURL=jsonc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../src/jsonc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA8DnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD"}
package/dist/jsonc.js ADDED
@@ -0,0 +1,70 @@
1
+ /**
2
+ * JSONC Parser
3
+ *
4
+ * Parses JSON with comments (single-line and multi-line)
5
+ * so agent.json files can be annotated.
6
+ */
7
+ import { readFileSync } from "node:fs";
8
+ /**
9
+ * Strip comments from JSONC content and parse as JSON.
10
+ */
11
+ export function parseJsonc(content) {
12
+ let result = "";
13
+ let i = 0;
14
+ let inString = false;
15
+ let stringChar = "";
16
+ while (i < content.length) {
17
+ if (inString) {
18
+ if (content[i] === "\\" && i + 1 < content.length) {
19
+ result += content[i] + content[i + 1];
20
+ i += 2;
21
+ continue;
22
+ }
23
+ if (content[i] === stringChar) {
24
+ inString = false;
25
+ }
26
+ result += content[i];
27
+ i++;
28
+ continue;
29
+ }
30
+ if (content[i] === '"') {
31
+ inString = true;
32
+ stringChar = content[i];
33
+ result += content[i];
34
+ i++;
35
+ continue;
36
+ }
37
+ // Single-line comment
38
+ if (content[i] === "/" &&
39
+ i + 1 < content.length &&
40
+ content[i + 1] === "/") {
41
+ while (i < content.length && content[i] !== "\n")
42
+ i++;
43
+ continue;
44
+ }
45
+ // Multi-line comment
46
+ if (content[i] === "/" &&
47
+ i + 1 < content.length &&
48
+ content[i + 1] === "*") {
49
+ i += 2;
50
+ while (i + 1 < content.length &&
51
+ !(content[i] === "*" && content[i + 1] === "/"))
52
+ i++;
53
+ i += 2;
54
+ continue;
55
+ }
56
+ result += content[i];
57
+ i++;
58
+ }
59
+ // Handle trailing commas
60
+ const cleaned = result.replace(/,\s*([}\]])/g, "$1");
61
+ return JSON.parse(cleaned);
62
+ }
63
+ /**
64
+ * Read and parse a JSONC file.
65
+ */
66
+ export function readJsoncFile(path) {
67
+ const content = readFileSync(path, "utf-8");
68
+ return parseJsonc(content);
69
+ }
70
+ //# sourceMappingURL=jsonc.js.map