agents 0.0.0-32c4b00 → 0.0.0-33ff003
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 +2 -6
- package/dist/ai-chat-agent.d.ts +49 -3
- package/dist/ai-chat-agent.js +130 -66
- package/dist/ai-chat-agent.js.map +1 -1
- package/dist/ai-react.d.ts +12 -0
- package/dist/ai-react.js +39 -23
- package/dist/ai-react.js.map +1 -1
- package/dist/ai-types.d.ts +5 -0
- package/dist/chunk-BZXOAZUX.js +106 -0
- package/dist/chunk-BZXOAZUX.js.map +1 -0
- package/dist/{chunk-HMLY7DHA.js → chunk-NOUFNU2O.js} +1 -5
- package/dist/{chunk-X6BBKLSC.js → chunk-NPGUKHFR.js} +372 -167
- package/dist/chunk-NPGUKHFR.js.map +1 -0
- package/dist/chunk-QSGN3REV.js +123 -0
- package/dist/chunk-QSGN3REV.js.map +1 -0
- package/dist/chunk-Y67CHZBI.js +464 -0
- package/dist/chunk-Y67CHZBI.js.map +1 -0
- package/dist/client.d.ts +9 -1
- package/dist/client.js +7 -133
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +85 -12
- package/dist/index.js +7 -4
- package/dist/mcp/client.d.ts +783 -0
- package/dist/mcp/client.js +10 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/do-oauth-client-provider.d.ts +41 -0
- package/dist/mcp/do-oauth-client-provider.js +8 -0
- package/dist/mcp/do-oauth-client-provider.js.map +1 -0
- package/dist/mcp/index.d.ts +84 -0
- package/dist/mcp/index.js +780 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/react.d.ts +14 -0
- package/dist/react.js +39 -28
- package/dist/react.js.map +1 -1
- package/dist/schedule.js +1 -1
- package/package.json +36 -8
- package/src/index.ts +481 -126
- package/dist/chunk-X6BBKLSC.js.map +0 -1
- package/dist/mcp.d.ts +0 -58
- package/dist/mcp.js +0 -945
- package/dist/mcp.js.map +0 -1
- /package/dist/{chunk-HMLY7DHA.js.map → chunk-NOUFNU2O.js.map} +0 -0
package/dist/client.js
CHANGED
|
@@ -1,138 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
|
|
7
|
-
// src/client.ts
|
|
8
|
-
import {
|
|
9
|
-
PartySocket
|
|
10
|
-
} from "partysocket";
|
|
11
|
-
var _options, _pendingCalls;
|
|
12
|
-
var AgentClient = class extends PartySocket {
|
|
13
|
-
constructor(options) {
|
|
14
|
-
super({
|
|
15
|
-
prefix: "agents",
|
|
16
|
-
party: options.agent,
|
|
17
|
-
room: options.name || "default",
|
|
18
|
-
...options
|
|
19
|
-
});
|
|
20
|
-
__privateAdd(this, _options);
|
|
21
|
-
__privateAdd(this, _pendingCalls, /* @__PURE__ */ new Map());
|
|
22
|
-
this.agent = options.agent;
|
|
23
|
-
this.name = options.name || "default";
|
|
24
|
-
__privateSet(this, _options, options);
|
|
25
|
-
if (this.agent !== this.agent.toLowerCase()) {
|
|
26
|
-
console.warn(
|
|
27
|
-
`Agent name: ${this.agent} should probably be in lowercase. Received: ${this.agent}`
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
if (this.name !== this.name.toLowerCase()) {
|
|
31
|
-
console.warn(
|
|
32
|
-
`Agent instance name: ${this.name} should probably be in lowercase. Received: ${this.name}`
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
this.addEventListener("message", (event) => {
|
|
36
|
-
if (typeof event.data === "string") {
|
|
37
|
-
let parsedMessage;
|
|
38
|
-
try {
|
|
39
|
-
parsedMessage = JSON.parse(event.data);
|
|
40
|
-
} catch (error) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (parsedMessage.type === "cf_agent_state") {
|
|
44
|
-
__privateGet(this, _options).onStateUpdate?.(parsedMessage.state, "server");
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (parsedMessage.type === "rpc") {
|
|
48
|
-
const response = parsedMessage;
|
|
49
|
-
const pending = __privateGet(this, _pendingCalls).get(response.id);
|
|
50
|
-
if (!pending) return;
|
|
51
|
-
if (!response.success) {
|
|
52
|
-
pending.reject(new Error(response.error));
|
|
53
|
-
__privateGet(this, _pendingCalls).delete(response.id);
|
|
54
|
-
pending.stream?.onError?.(response.error);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
if ("done" in response) {
|
|
58
|
-
if (response.done) {
|
|
59
|
-
pending.resolve(response.result);
|
|
60
|
-
__privateGet(this, _pendingCalls).delete(response.id);
|
|
61
|
-
pending.stream?.onDone?.(response.result);
|
|
62
|
-
} else {
|
|
63
|
-
pending.stream?.onChunk?.(response.result);
|
|
64
|
-
}
|
|
65
|
-
} else {
|
|
66
|
-
pending.resolve(response.result);
|
|
67
|
-
__privateGet(this, _pendingCalls).delete(response.id);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @deprecated Use agentFetch instead
|
|
75
|
-
*/
|
|
76
|
-
static fetch(_opts) {
|
|
77
|
-
throw new Error(
|
|
78
|
-
"AgentClient.fetch is not implemented, use agentFetch instead"
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
setState(state) {
|
|
82
|
-
this.send(JSON.stringify({ type: "cf_agent_state", state }));
|
|
83
|
-
__privateGet(this, _options).onStateUpdate?.(state, "client");
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Call a method on the Agent
|
|
87
|
-
* @param method Name of the method to call
|
|
88
|
-
* @param args Arguments to pass to the method
|
|
89
|
-
* @param streamOptions Options for handling streaming responses
|
|
90
|
-
* @returns Promise that resolves with the method's return value
|
|
91
|
-
*/
|
|
92
|
-
async call(method, args = [], streamOptions) {
|
|
93
|
-
return new Promise((resolve, reject) => {
|
|
94
|
-
const id = Math.random().toString(36).slice(2);
|
|
95
|
-
__privateGet(this, _pendingCalls).set(id, {
|
|
96
|
-
resolve: (value) => resolve(value),
|
|
97
|
-
reject,
|
|
98
|
-
stream: streamOptions,
|
|
99
|
-
type: null
|
|
100
|
-
});
|
|
101
|
-
const request = {
|
|
102
|
-
type: "rpc",
|
|
103
|
-
id,
|
|
104
|
-
method,
|
|
105
|
-
args
|
|
106
|
-
};
|
|
107
|
-
this.send(JSON.stringify(request));
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
_options = new WeakMap();
|
|
112
|
-
_pendingCalls = new WeakMap();
|
|
113
|
-
function agentFetch(opts, init) {
|
|
114
|
-
if (opts.agent !== opts.agent.toLowerCase()) {
|
|
115
|
-
console.warn(
|
|
116
|
-
`Agent name: ${opts.agent} should probably be in lowercase. Received: ${opts.agent}`
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
if (opts.name && opts.name !== opts.name.toLowerCase()) {
|
|
120
|
-
console.warn(
|
|
121
|
-
`Agent instance name: ${opts.name} should probably be in lowercase. Received: ${opts.name}`
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
return PartySocket.fetch(
|
|
125
|
-
{
|
|
126
|
-
prefix: "agents",
|
|
127
|
-
party: opts.agent,
|
|
128
|
-
room: opts.name || "default",
|
|
129
|
-
...opts
|
|
130
|
-
},
|
|
131
|
-
init
|
|
132
|
-
);
|
|
133
|
-
}
|
|
2
|
+
AgentClient,
|
|
3
|
+
agentFetch,
|
|
4
|
+
camelCaseToKebabCase
|
|
5
|
+
} from "./chunk-QSGN3REV.js";
|
|
6
|
+
import "./chunk-NOUFNU2O.js";
|
|
134
7
|
export {
|
|
135
8
|
AgentClient,
|
|
136
|
-
agentFetch
|
|
9
|
+
agentFetch,
|
|
10
|
+
camelCaseToKebabCase
|
|
137
11
|
};
|
|
138
12
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import { Server, Connection, PartyServerOptions } from "partyserver";
|
|
2
2
|
export { Connection, ConnectionContext, WSMessage } from "partyserver";
|
|
3
|
-
import {
|
|
3
|
+
import { MCPClientManager } from "./mcp/client.js";
|
|
4
|
+
import { Tool, Prompt, Resource } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
6
|
+
import "zod";
|
|
7
|
+
import "@modelcontextprotocol/sdk/client/sse.js";
|
|
8
|
+
import "./mcp/do-oauth-client-provider.js";
|
|
9
|
+
import "@modelcontextprotocol/sdk/client/auth.js";
|
|
10
|
+
import "@modelcontextprotocol/sdk/shared/auth.js";
|
|
11
|
+
import "@modelcontextprotocol/sdk/shared/protocol.js";
|
|
12
|
+
import "ai";
|
|
4
13
|
|
|
5
14
|
/**
|
|
6
15
|
* RPC request message from client
|
|
@@ -59,10 +68,6 @@ declare function unstable_callable(
|
|
|
59
68
|
target: (this: This, ...args: Args) => Return,
|
|
60
69
|
context: ClassMethodDecoratorContext
|
|
61
70
|
) => (this: This, ...args: Args) => Return;
|
|
62
|
-
/**
|
|
63
|
-
* A class for creating workflow entry points that can be used with Cloudflare Workers
|
|
64
|
-
*/
|
|
65
|
-
declare class WorkflowEntrypoint extends WorkflowEntrypoint$1 {}
|
|
66
71
|
/**
|
|
67
72
|
* Represents a scheduled task within an Agent
|
|
68
73
|
* @template T Type of the payload data
|
|
@@ -98,6 +103,34 @@ type Schedule<T = string> = {
|
|
|
98
103
|
cron: string;
|
|
99
104
|
}
|
|
100
105
|
);
|
|
106
|
+
/**
|
|
107
|
+
* MCP Server state update message from server -> Client
|
|
108
|
+
*/
|
|
109
|
+
type MCPServerMessage = {
|
|
110
|
+
type: "cf_agent_mcp_servers";
|
|
111
|
+
mcp: MCPServersState;
|
|
112
|
+
};
|
|
113
|
+
type MCPServersState = {
|
|
114
|
+
servers: {
|
|
115
|
+
[id: string]: MCPServer;
|
|
116
|
+
};
|
|
117
|
+
tools: Tool[];
|
|
118
|
+
prompts: Prompt[];
|
|
119
|
+
resources: Resource[];
|
|
120
|
+
};
|
|
121
|
+
type MCPServer = {
|
|
122
|
+
name: string;
|
|
123
|
+
server_url: string;
|
|
124
|
+
auth_url: string | null;
|
|
125
|
+
state: "authenticating" | "connecting" | "ready" | "discovering" | "failed";
|
|
126
|
+
};
|
|
127
|
+
declare function getCurrentAgent<
|
|
128
|
+
T extends Agent<unknown, unknown> = Agent<unknown, unknown>,
|
|
129
|
+
>(): {
|
|
130
|
+
agent: T | undefined;
|
|
131
|
+
connection: Connection | undefined;
|
|
132
|
+
request: Request<unknown, CfProperties<unknown>> | undefined;
|
|
133
|
+
};
|
|
101
134
|
/**
|
|
102
135
|
* Base class for creating Agent implementations
|
|
103
136
|
* @template Env Environment type containing bindings
|
|
@@ -105,6 +138,9 @@ type Schedule<T = string> = {
|
|
|
105
138
|
*/
|
|
106
139
|
declare class Agent<Env, State = unknown> extends Server<Env> {
|
|
107
140
|
#private;
|
|
141
|
+
private _state;
|
|
142
|
+
private _ParentClass;
|
|
143
|
+
mcp: MCPClientManager;
|
|
108
144
|
/**
|
|
109
145
|
* Initial state for the Agent
|
|
110
146
|
* Override to provide default state values
|
|
@@ -133,6 +169,7 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
|
|
|
133
169
|
...values: (string | number | boolean | null)[]
|
|
134
170
|
): T[];
|
|
135
171
|
constructor(ctx: AgentContext, env: Env);
|
|
172
|
+
private _setStateInternal;
|
|
136
173
|
/**
|
|
137
174
|
* Update the Agent's state
|
|
138
175
|
* @param state New state to set
|
|
@@ -148,7 +185,8 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
|
|
|
148
185
|
* Called when the Agent receives an email
|
|
149
186
|
* @param email Email message to process
|
|
150
187
|
*/
|
|
151
|
-
onEmail(email: ForwardableEmailMessage): void
|
|
188
|
+
onEmail(email: ForwardableEmailMessage): Promise<void>;
|
|
189
|
+
private _tryCatch;
|
|
152
190
|
onError(connection: Connection, error: unknown): void | Promise<void>;
|
|
153
191
|
onError(error: unknown): void | Promise<void>;
|
|
154
192
|
/**
|
|
@@ -182,7 +220,6 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
|
|
|
182
220
|
* @returns Array of matching Schedule objects
|
|
183
221
|
*/
|
|
184
222
|
getSchedules<T = string>(criteria?: {
|
|
185
|
-
description?: string;
|
|
186
223
|
id?: string;
|
|
187
224
|
type?: "scheduled" | "delayed" | "cron";
|
|
188
225
|
timeRange?: {
|
|
@@ -196,15 +233,46 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
|
|
|
196
233
|
* @returns true if the task was cancelled, false otherwise
|
|
197
234
|
*/
|
|
198
235
|
cancelSchedule(id: string): Promise<boolean>;
|
|
236
|
+
private _scheduleNextAlarm;
|
|
199
237
|
/**
|
|
200
|
-
* Method called when an alarm fires
|
|
201
|
-
* Executes any scheduled tasks that are due
|
|
238
|
+
* Method called when an alarm fires.
|
|
239
|
+
* Executes any scheduled tasks that are due.
|
|
240
|
+
*
|
|
241
|
+
* @remarks
|
|
242
|
+
* To schedule a task, please use the `this.schedule` method instead.
|
|
243
|
+
* See {@link https://developers.cloudflare.com/agents/api-reference/schedule-tasks/}
|
|
202
244
|
*/
|
|
203
|
-
alarm()
|
|
245
|
+
readonly alarm: () => Promise<void>;
|
|
204
246
|
/**
|
|
205
247
|
* Destroy the Agent, removing all state and scheduled tasks
|
|
206
248
|
*/
|
|
207
249
|
destroy(): Promise<void>;
|
|
250
|
+
private _isCallable;
|
|
251
|
+
/**
|
|
252
|
+
* Connect to a new MCP Server
|
|
253
|
+
*
|
|
254
|
+
* @param url MCP Server SSE URL
|
|
255
|
+
* @param callbackHost Base host for the agent, used for the redirect URI.
|
|
256
|
+
* @param agentsPrefix agents routing prefix if not using `agents`
|
|
257
|
+
* @param options MCP client and transport (header) options
|
|
258
|
+
* @returns authUrl
|
|
259
|
+
*/
|
|
260
|
+
addMcpServer(
|
|
261
|
+
serverName: string,
|
|
262
|
+
url: string,
|
|
263
|
+
callbackHost: string,
|
|
264
|
+
agentsPrefix?: string,
|
|
265
|
+
options?: {
|
|
266
|
+
client?: ConstructorParameters<typeof Client>[1];
|
|
267
|
+
transport?: {
|
|
268
|
+
headers: HeadersInit;
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
): Promise<{
|
|
272
|
+
id: string;
|
|
273
|
+
authUrl: string | undefined;
|
|
274
|
+
}>;
|
|
275
|
+
removeMcpServer(id: string): Promise<void>;
|
|
208
276
|
}
|
|
209
277
|
/**
|
|
210
278
|
* Namespace for creating Agent instances
|
|
@@ -269,7 +337,9 @@ declare function getAgentByName<Env, T extends Agent<Env>>(
|
|
|
269
337
|
* A wrapper for streaming responses in callable methods
|
|
270
338
|
*/
|
|
271
339
|
declare class StreamingResponse {
|
|
272
|
-
|
|
340
|
+
private _connection;
|
|
341
|
+
private _id;
|
|
342
|
+
private _closed;
|
|
273
343
|
constructor(connection: Connection, id: string);
|
|
274
344
|
/**
|
|
275
345
|
* Send a chunk of data to the client
|
|
@@ -289,13 +359,16 @@ export {
|
|
|
289
359
|
type AgentNamespace,
|
|
290
360
|
type AgentOptions,
|
|
291
361
|
type CallableMetadata,
|
|
362
|
+
type MCPServer,
|
|
363
|
+
type MCPServerMessage,
|
|
364
|
+
type MCPServersState,
|
|
292
365
|
type RPCRequest,
|
|
293
366
|
type RPCResponse,
|
|
294
367
|
type Schedule,
|
|
295
368
|
type StateUpdateMessage,
|
|
296
369
|
StreamingResponse,
|
|
297
|
-
WorkflowEntrypoint,
|
|
298
370
|
getAgentByName,
|
|
371
|
+
getCurrentAgent,
|
|
299
372
|
routeAgentEmail,
|
|
300
373
|
routeAgentRequest,
|
|
301
374
|
unstable_callable,
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Agent,
|
|
3
3
|
StreamingResponse,
|
|
4
|
-
WorkflowEntrypoint,
|
|
5
4
|
getAgentByName,
|
|
5
|
+
getCurrentAgent,
|
|
6
6
|
routeAgentEmail,
|
|
7
7
|
routeAgentRequest,
|
|
8
8
|
unstable_callable
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-NPGUKHFR.js";
|
|
10
|
+
import "./chunk-BZXOAZUX.js";
|
|
11
|
+
import "./chunk-QSGN3REV.js";
|
|
12
|
+
import "./chunk-Y67CHZBI.js";
|
|
13
|
+
import "./chunk-NOUFNU2O.js";
|
|
11
14
|
export {
|
|
12
15
|
Agent,
|
|
13
16
|
StreamingResponse,
|
|
14
|
-
WorkflowEntrypoint,
|
|
15
17
|
getAgentByName,
|
|
18
|
+
getCurrentAgent,
|
|
16
19
|
routeAgentEmail,
|
|
17
20
|
routeAgentRequest,
|
|
18
21
|
unstable_callable
|