@slashfi/agents-sdk 0.61.0 → 0.63.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/README.md +266 -212
- package/dist/adk.js +47 -0
- package/dist/adk.js.map +1 -1
- package/dist/agent-definitions/config.js +2 -2
- package/dist/agent-definitions/config.js.map +1 -1
- package/dist/cjs/agent-definitions/config.js +2 -2
- package/dist/cjs/agent-definitions/config.js.map +1 -1
- package/dist/cjs/config-store.js +19 -11
- package/dist/cjs/config-store.js.map +1 -1
- package/dist/cjs/index.js +1 -29
- package/dist/cjs/index.js.map +1 -1
- package/dist/config-store.d.ts +2 -2
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +19 -11
- package/dist/config-store.js.map +1 -1
- package/dist/index.d.ts +1 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adk.ts +40 -0
- package/src/agent-definitions/config.ts +2 -2
- package/src/config-store.test.ts +2 -2
- package/src/config-store.ts +17 -11
- package/src/consumer.test.ts +4 -4
- package/src/index.ts +1 -44
- package/src/types.ts +8 -0
- package/dist/cjs/client.js +0 -193
- package/dist/cjs/client.js.map +0 -1
- package/dist/cjs/codegen.js +0 -1071
- package/dist/cjs/codegen.js.map +0 -1
- package/dist/cjs/introspect.js +0 -136
- package/dist/cjs/introspect.js.map +0 -1
- package/dist/cjs/jsonc.js +0 -74
- package/dist/cjs/jsonc.js.map +0 -1
- package/dist/cjs/pack.js +0 -256
- package/dist/cjs/pack.js.map +0 -1
- package/dist/client.d.ts +0 -49
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -190
- package/dist/client.js.map +0 -1
- package/dist/codegen.d.ts +0 -163
- package/dist/codegen.d.ts.map +0 -1
- package/dist/codegen.js +0 -1059
- package/dist/codegen.js.map +0 -1
- package/dist/introspect.d.ts +0 -16
- package/dist/introspect.d.ts.map +0 -1
- package/dist/introspect.js +0 -133
- package/dist/introspect.js.map +0 -1
- package/dist/jsonc.d.ts +0 -15
- package/dist/jsonc.d.ts.map +0 -1
- package/dist/jsonc.js +0 -70
- package/dist/jsonc.js.map +0 -1
- package/dist/pack.d.ts +0 -59
- package/dist/pack.d.ts.map +0 -1
- package/dist/pack.js +0 -252
- package/dist/pack.js.map +0 -1
- package/src/client.ts +0 -273
- package/src/codegen.test.ts +0 -537
- package/src/codegen.ts +0 -1423
- package/src/introspect.ts +0 -171
- package/src/jsonc.ts +0 -83
- package/src/pack.ts +0 -394
package/dist/client.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent Client
|
|
3
|
-
*
|
|
4
|
-
* Creates a typed client from a SerializedAgentDefinition.
|
|
5
|
-
* The client spawns (or connects to) the MCP server and proxies
|
|
6
|
-
* tool calls via JSON-RPC.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* import { createClient } from '@slashfi/agents-sdk';
|
|
11
|
-
* import definition from './agents/notion/definition.json';
|
|
12
|
-
*
|
|
13
|
-
* const client = createClient(definition, {
|
|
14
|
-
* env: { NOTION_TOKEN: process.env.NOTION_TOKEN },
|
|
15
|
-
* });
|
|
16
|
-
*
|
|
17
|
-
* const result = await client.call('API-post-search', { query: 'meeting notes' });
|
|
18
|
-
* await client.close();
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
import { spawn } from "node:child_process";
|
|
22
|
-
class McpStdioClient {
|
|
23
|
-
definition;
|
|
24
|
-
proc = null;
|
|
25
|
-
messageId = 0;
|
|
26
|
-
buffer = "";
|
|
27
|
-
pending = new Map();
|
|
28
|
-
initialized = false;
|
|
29
|
-
initPromise = null;
|
|
30
|
-
serverCommand;
|
|
31
|
-
env;
|
|
32
|
-
timeout;
|
|
33
|
-
constructor(definition, options = {}) {
|
|
34
|
-
this.definition = definition;
|
|
35
|
-
this.serverCommand = options.serverCommand ?? definition.serverSource ?? "";
|
|
36
|
-
this.env = options.env ?? {};
|
|
37
|
-
this.timeout = options.timeout ?? 30000;
|
|
38
|
-
if (!this.serverCommand) {
|
|
39
|
-
throw new Error(`No server command for agent "${definition.path}". Set serverSource in the definition or pass serverCommand in options.`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
tools() {
|
|
43
|
-
return this.definition.tools;
|
|
44
|
-
}
|
|
45
|
-
isConnected() {
|
|
46
|
-
return this.proc !== null && !this.proc.killed;
|
|
47
|
-
}
|
|
48
|
-
async call(toolName, input = {}) {
|
|
49
|
-
// Validate tool exists
|
|
50
|
-
const tool = this.definition.tools.find((t) => t.name === toolName);
|
|
51
|
-
if (!tool) {
|
|
52
|
-
const available = this.definition.tools.map((t) => t.name).join(", ");
|
|
53
|
-
throw new Error(`Tool "${toolName}" not found. Available: ${available}`);
|
|
54
|
-
}
|
|
55
|
-
// Ensure connected + initialized
|
|
56
|
-
await this.ensureInitialized();
|
|
57
|
-
// Send tools/call
|
|
58
|
-
const result = await this.sendRequest("tools/call", {
|
|
59
|
-
name: toolName,
|
|
60
|
-
arguments: input,
|
|
61
|
-
});
|
|
62
|
-
// MCP tools/call returns { content: [{ type, text }] }
|
|
63
|
-
const resultObj = result;
|
|
64
|
-
if (resultObj && typeof resultObj === "object" && "content" in resultObj) {
|
|
65
|
-
const content = resultObj.content;
|
|
66
|
-
if (Array.isArray(content) && content.length > 0) {
|
|
67
|
-
const first = content[0];
|
|
68
|
-
if (first.type === "text") {
|
|
69
|
-
try {
|
|
70
|
-
return JSON.parse(first.text);
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
return first.text;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return first;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
close() {
|
|
82
|
-
if (this.proc) {
|
|
83
|
-
this.proc.kill();
|
|
84
|
-
this.proc = null;
|
|
85
|
-
}
|
|
86
|
-
this.initialized = false;
|
|
87
|
-
this.initPromise = null;
|
|
88
|
-
// Reject all pending
|
|
89
|
-
for (const req of Array.from(this.pending.values())) {
|
|
90
|
-
clearTimeout(req.timer);
|
|
91
|
-
req.reject(new Error("Client closed"));
|
|
92
|
-
}
|
|
93
|
-
this.pending.clear();
|
|
94
|
-
}
|
|
95
|
-
// ── Private ──
|
|
96
|
-
async ensureInitialized() {
|
|
97
|
-
if (this.initialized)
|
|
98
|
-
return;
|
|
99
|
-
if (this.initPromise)
|
|
100
|
-
return this.initPromise;
|
|
101
|
-
this.initPromise = this.connect();
|
|
102
|
-
await this.initPromise;
|
|
103
|
-
this.initialized = true;
|
|
104
|
-
}
|
|
105
|
-
async connect() {
|
|
106
|
-
const parts = this.serverCommand.split(/\s+/);
|
|
107
|
-
this.proc = spawn(parts[0], parts.slice(1), {
|
|
108
|
-
stdio: ["pipe", "pipe", "pipe"],
|
|
109
|
-
env: { ...process.env, ...this.env },
|
|
110
|
-
});
|
|
111
|
-
this.proc.stdout?.on("data", (chunk) => this.onData(chunk));
|
|
112
|
-
this.proc.on("error", (err) => {
|
|
113
|
-
for (const req of Array.from(this.pending.values())) {
|
|
114
|
-
clearTimeout(req.timer);
|
|
115
|
-
req.reject(err);
|
|
116
|
-
}
|
|
117
|
-
this.pending.clear();
|
|
118
|
-
});
|
|
119
|
-
// Initialize handshake
|
|
120
|
-
await this.sendRequest("initialize", {
|
|
121
|
-
protocolVersion: "2024-11-05",
|
|
122
|
-
capabilities: {},
|
|
123
|
-
clientInfo: { name: "agents-sdk-client", version: "1.0.0" },
|
|
124
|
-
});
|
|
125
|
-
// Send initialized notification
|
|
126
|
-
this.sendNotification("notifications/initialized");
|
|
127
|
-
}
|
|
128
|
-
sendRequest(method, params = {}) {
|
|
129
|
-
return new Promise((resolve, reject) => {
|
|
130
|
-
const id = ++this.messageId;
|
|
131
|
-
const timer = setTimeout(() => {
|
|
132
|
-
this.pending.delete(id);
|
|
133
|
-
reject(new Error(`Timeout after ${this.timeout}ms calling ${method}`));
|
|
134
|
-
}, this.timeout);
|
|
135
|
-
this.pending.set(id, { resolve, reject, timer });
|
|
136
|
-
const msg = JSON.stringify({ jsonrpc: "2.0", id, method, params });
|
|
137
|
-
this.proc?.stdin?.write(`${msg}\n`);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
sendNotification(method, params) {
|
|
141
|
-
const msg = JSON.stringify({
|
|
142
|
-
jsonrpc: "2.0",
|
|
143
|
-
method,
|
|
144
|
-
...(params ? { params } : {}),
|
|
145
|
-
});
|
|
146
|
-
this.proc?.stdin?.write(`${msg}\n`);
|
|
147
|
-
}
|
|
148
|
-
onData(chunk) {
|
|
149
|
-
this.buffer += chunk.toString();
|
|
150
|
-
const lines = this.buffer.split("\n");
|
|
151
|
-
this.buffer = lines.pop() || "";
|
|
152
|
-
for (const line of lines) {
|
|
153
|
-
const trimmed = line.trim();
|
|
154
|
-
if (!trimmed)
|
|
155
|
-
continue;
|
|
156
|
-
try {
|
|
157
|
-
const parsed = JSON.parse(trimmed);
|
|
158
|
-
if (parsed.id != null && this.pending.has(parsed.id)) {
|
|
159
|
-
const req = this.pending.get(parsed.id);
|
|
160
|
-
if (!req)
|
|
161
|
-
continue;
|
|
162
|
-
this.pending.delete(parsed.id);
|
|
163
|
-
clearTimeout(req.timer);
|
|
164
|
-
if (parsed.error) {
|
|
165
|
-
req.reject(new Error(JSON.stringify(parsed.error)));
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
req.resolve(parsed.result);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
catch {
|
|
173
|
-
// ignore non-JSON lines (stderr leakage, etc.)
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// ============================================
|
|
179
|
-
// Factory
|
|
180
|
-
// ============================================
|
|
181
|
-
/**
|
|
182
|
-
* Create an agent client from a serialized definition.
|
|
183
|
-
*
|
|
184
|
-
* The client lazily spawns the MCP server on first call and
|
|
185
|
-
* proxies tool invocations via JSON-RPC over stdio.
|
|
186
|
-
*/
|
|
187
|
-
export function createClient(definition, options) {
|
|
188
|
-
return new McpStdioClient(definition, options);
|
|
189
|
-
}
|
|
190
|
-
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/codegen.d.ts
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Codegen
|
|
3
|
-
*
|
|
4
|
-
* Connects to any MCP server, introspects its tools via `tools/list`,
|
|
5
|
-
* and generates readable agent-definition source files.
|
|
6
|
-
*
|
|
7
|
-
* Supports three transport modes:
|
|
8
|
-
* - stdio: spawn a process (e.g., `npx @modelcontextprotocol/server-notion`)
|
|
9
|
-
* - sse: connect to an SSE endpoint
|
|
10
|
-
* - http: connect to an HTTP JSON-RPC endpoint
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* import { codegen } from '@slashfi/agents-sdk';
|
|
15
|
-
*
|
|
16
|
-
* await codegen({
|
|
17
|
-
* server: 'npx @modelcontextprotocol/server-notion',
|
|
18
|
-
* outDir: './generated/notion',
|
|
19
|
-
* agentPath: '@notion',
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* @example CLI
|
|
24
|
-
* ```bash
|
|
25
|
-
* agents-sdk codegen --server 'npx @mcp/notion' --name notion
|
|
26
|
-
* agents-sdk use notion search_pages '{"query": "hello"}'
|
|
27
|
-
* agents-sdk use notion --list
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
import type { JsonSchema } from "./types.js";
|
|
31
|
-
import { type OAuthServerMetadata } from "./mcp-client.js";
|
|
32
|
-
/** MCP tool definition as returned by tools/list */
|
|
33
|
-
export interface McpToolDefinition {
|
|
34
|
-
name: string;
|
|
35
|
-
description?: string;
|
|
36
|
-
inputSchema?: JsonSchema;
|
|
37
|
-
}
|
|
38
|
-
/** MCP server info from initialize response */
|
|
39
|
-
export interface McpServerInfo {
|
|
40
|
-
name?: string;
|
|
41
|
-
version?: string;
|
|
42
|
-
protocolVersion?: string;
|
|
43
|
-
}
|
|
44
|
-
/** Transport for communicating with an MCP server */
|
|
45
|
-
export interface McpTransport {
|
|
46
|
-
send(method: string, params?: Record<string, unknown>): Promise<unknown>;
|
|
47
|
-
/** Send a JSON-RPC notification (no id, no response expected) */
|
|
48
|
-
notify(method: string, params?: Record<string, unknown>): Promise<void>;
|
|
49
|
-
close(): Promise<void>;
|
|
50
|
-
}
|
|
51
|
-
/** Server source — string command, URL, or explicit config */
|
|
52
|
-
export type ServerSource = string | {
|
|
53
|
-
command: string;
|
|
54
|
-
args?: string[];
|
|
55
|
-
env?: Record<string, string>;
|
|
56
|
-
} | {
|
|
57
|
-
url: string;
|
|
58
|
-
headers?: Record<string, string>;
|
|
59
|
-
} | {
|
|
60
|
-
spawn: string;
|
|
61
|
-
args?: string[];
|
|
62
|
-
env?: Record<string, string>;
|
|
63
|
-
port?: number;
|
|
64
|
-
endpoint?: string;
|
|
65
|
-
};
|
|
66
|
-
/** Options for the codegen function */
|
|
67
|
-
export interface CodegenOptions {
|
|
68
|
-
/** MCP server source — command string, URL, or config object */
|
|
69
|
-
server: ServerSource;
|
|
70
|
-
/** Output directory for generated files */
|
|
71
|
-
outDir: string;
|
|
72
|
-
/** Agent path override (default: derived from server name) */
|
|
73
|
-
agentPath?: string;
|
|
74
|
-
/** Agent display name */
|
|
75
|
-
name?: string;
|
|
76
|
-
/** SDK import path (default: '@slashfi/agents-sdk') */
|
|
77
|
-
sdkImport?: string;
|
|
78
|
-
/** Whether to generate a CLI entrypoint (default: true) */
|
|
79
|
-
cli?: boolean;
|
|
80
|
-
/** Whether to generate TypeScript interfaces from schemas (default: true) */
|
|
81
|
-
types?: boolean;
|
|
82
|
-
/** Visibility for the generated agent (default: 'public') */
|
|
83
|
-
visibility?: "public" | "internal" | "private";
|
|
84
|
-
}
|
|
85
|
-
/** Result of codegen */
|
|
86
|
-
export interface CodegenResult {
|
|
87
|
-
/** Path to the output directory */
|
|
88
|
-
outDir: string;
|
|
89
|
-
/** Server info from the MCP initialize handshake */
|
|
90
|
-
serverInfo: McpServerInfo;
|
|
91
|
-
/** Number of tools generated */
|
|
92
|
-
toolCount: number;
|
|
93
|
-
/** Names of generated tool files */
|
|
94
|
-
toolFiles: string[];
|
|
95
|
-
/** All generated file paths */
|
|
96
|
-
files: string[];
|
|
97
|
-
/** OAuth server metadata (if discovered via .well-known/oauth-authorization-server) */
|
|
98
|
-
oauth?: OAuthServerMetadata;
|
|
99
|
-
/** Connection spec for consumers */
|
|
100
|
-
connection?: ConnectionSpec;
|
|
101
|
-
}
|
|
102
|
-
/** Convert tool name to a valid TypeScript identifier (camelCase) */
|
|
103
|
-
export declare function toIdentifier(name: string): string;
|
|
104
|
-
/** Convert tool name to PascalCase for type names */
|
|
105
|
-
export declare function toPascalCase(name: string): string;
|
|
106
|
-
/** Serialize a JSON schema to a readable TypeScript literal string */
|
|
107
|
-
export declare function schemaToString(schema: JsonSchema, indent?: number): string;
|
|
108
|
-
/** Generate a TypeScript interface from a JSON Schema */
|
|
109
|
-
export declare function schemaToInterface(name: string, schema: JsonSchema): string;
|
|
110
|
-
/** Manifest stored in outDir for `agents-sdk use` */
|
|
111
|
-
/** How a consumer connects to this MCP server */
|
|
112
|
-
export interface ConnectionSpec {
|
|
113
|
-
/** MCP server URL (for HTTP/SSE transports) */
|
|
114
|
-
url?: string;
|
|
115
|
-
/** Transport type */
|
|
116
|
-
transport: 'http' | 'sse' | 'stdio';
|
|
117
|
-
/** Auth requirements */
|
|
118
|
-
auth: {
|
|
119
|
-
/** Auth type: oauth, api_key, or none */
|
|
120
|
-
type: 'oauth' | 'api_key' | 'none';
|
|
121
|
-
/** OAuth discovery URL (.well-known/oauth-authorization-server) */
|
|
122
|
-
discovery?: string;
|
|
123
|
-
/** Whether dynamic client registration (RFC 7591) is supported */
|
|
124
|
-
dynamic_registration?: boolean;
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
export interface CodegenManifest {
|
|
128
|
-
agentPath: string;
|
|
129
|
-
serverSource: ServerSource;
|
|
130
|
-
serverInfo: McpServerInfo;
|
|
131
|
-
tools: {
|
|
132
|
-
name: string;
|
|
133
|
-
description?: string;
|
|
134
|
-
inputSchema?: Record<string, unknown>;
|
|
135
|
-
}[];
|
|
136
|
-
/** How to connect to and authenticate with this MCP server */
|
|
137
|
-
connection?: ConnectionSpec;
|
|
138
|
-
/** Raw OAuth server metadata (from .well-known discovery) */
|
|
139
|
-
oauth?: OAuthServerMetadata;
|
|
140
|
-
generatedAt: string;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Connect to an MCP server, introspect its tools, and generate
|
|
144
|
-
* agent-definition source files.
|
|
145
|
-
*/
|
|
146
|
-
export declare function codegen(options: CodegenOptions): Promise<CodegenResult>;
|
|
147
|
-
/**
|
|
148
|
-
* Execute a tool on a previously codegenned agent by reconnecting
|
|
149
|
-
* to the MCP server and calling the tool.
|
|
150
|
-
*/
|
|
151
|
-
export declare function useAgent(options: {
|
|
152
|
-
/** Path to the generated agent directory (contains .codegen-manifest.json) */
|
|
153
|
-
agentDir: string;
|
|
154
|
-
/** Tool name to execute */
|
|
155
|
-
tool: string;
|
|
156
|
-
/** Tool parameters */
|
|
157
|
-
params?: Record<string, unknown>;
|
|
158
|
-
}): Promise<unknown>;
|
|
159
|
-
/**
|
|
160
|
-
* List tools available on a codegenned agent.
|
|
161
|
-
*/
|
|
162
|
-
export declare function listAgentTools(agentDir: string): CodegenManifest["tools"];
|
|
163
|
-
//# sourceMappingURL=codegen.d.ts.map
|
package/dist/codegen.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"}
|