agents 0.0.0-7bd597a → 0.0.0-7f84d28

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/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { Server, Connection, PartyServerOptions } from "partyserver";
2
2
  export { Connection, ConnectionContext, WSMessage } from "partyserver";
3
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";
4
6
  import "zod";
5
- import "@modelcontextprotocol/sdk/types.js";
6
- import "@modelcontextprotocol/sdk/client/index.js";
7
7
  import "@modelcontextprotocol/sdk/client/sse.js";
8
8
  import "./mcp/do-oauth-client-provider.js";
9
9
  import "@modelcontextprotocol/sdk/client/auth.js";
@@ -103,6 +103,27 @@ type Schedule<T = string> = {
103
103
  cron: string;
104
104
  }
105
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
+ };
106
127
  declare function getCurrentAgent<
107
128
  T extends Agent<unknown, unknown> = Agent<unknown, unknown>,
108
129
  >(): {
@@ -116,7 +137,8 @@ declare function getCurrentAgent<
116
137
  * @template State State type to store within the Agent
117
138
  */
118
139
  declare class Agent<Env, State = unknown> extends Server<Env> {
119
- #private;
140
+ private _state;
141
+ private _ParentClass;
120
142
  mcp: MCPClientManager;
121
143
  /**
122
144
  * Initial state for the Agent
@@ -146,6 +168,7 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
146
168
  ...values: (string | number | boolean | null)[]
147
169
  ): T[];
148
170
  constructor(ctx: AgentContext, env: Env);
171
+ private _setStateInternal;
149
172
  /**
150
173
  * Update the Agent's state
151
174
  * @param state New state to set
@@ -162,6 +185,7 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
162
185
  * @param email Email message to process
163
186
  */
164
187
  onEmail(email: ForwardableEmailMessage): Promise<void>;
188
+ private _tryCatch;
165
189
  onError(connection: Connection, error: unknown): void | Promise<void>;
166
190
  onError(error: unknown): void | Promise<void>;
167
191
  /**
@@ -208,15 +232,72 @@ declare class Agent<Env, State = unknown> extends Server<Env> {
208
232
  * @returns true if the task was cancelled, false otherwise
209
233
  */
210
234
  cancelSchedule(id: string): Promise<boolean>;
235
+ private _scheduleNextAlarm;
211
236
  /**
212
- * Method called when an alarm fires
213
- * Executes any scheduled tasks that are due
237
+ * Method called when an alarm fires.
238
+ * Executes any scheduled tasks that are due.
239
+ *
240
+ * @remarks
241
+ * To schedule a task, please use the `this.schedule` method instead.
242
+ * See {@link https://developers.cloudflare.com/agents/api-reference/schedule-tasks/}
214
243
  */
215
- alarm(): Promise<void>;
244
+ readonly alarm: () => Promise<void>;
216
245
  /**
217
246
  * Destroy the Agent, removing all state and scheduled tasks
218
247
  */
219
248
  destroy(): Promise<void>;
249
+ private _isCallable;
250
+ /**
251
+ * Connect to a new MCP Server
252
+ *
253
+ * @param url MCP Server SSE URL
254
+ * @param callbackHost Base host for the agent, used for the redirect URI.
255
+ * @param agentsPrefix agents routing prefix if not using `agents`
256
+ * @param options MCP client and transport (header) options
257
+ * @returns authUrl
258
+ */
259
+ addMcpServer(
260
+ serverName: string,
261
+ url: string,
262
+ callbackHost: string,
263
+ agentsPrefix?: string,
264
+ options?: {
265
+ client?: ConstructorParameters<typeof Client>[1];
266
+ transport?: {
267
+ headers: HeadersInit;
268
+ };
269
+ }
270
+ ): Promise<{
271
+ id: string;
272
+ authUrl: string | undefined;
273
+ }>;
274
+ _connectToMcpServerInternal(
275
+ serverName: string,
276
+ url: string,
277
+ callbackUrl: string,
278
+ options?: {
279
+ client?: ConstructorParameters<typeof Client>[1];
280
+ /**
281
+ * We don't expose the normal set of transport options because:
282
+ * 1) we can't serialize things like the auth provider or a fetch function into the DB for reconnection purposes
283
+ * 2) We probably want these options to be agnostic to the transport type (SSE vs Streamable)
284
+ *
285
+ * This has the limitation that you can't override fetch, but I think headers should handle nearly all cases needed (i.e. non-standard bearer auth).
286
+ */
287
+ transport?: {
288
+ headers?: HeadersInit;
289
+ };
290
+ },
291
+ reconnect?: {
292
+ id: string;
293
+ oauthClientId?: string;
294
+ }
295
+ ): Promise<{
296
+ id: string;
297
+ authUrl: string | undefined;
298
+ }>;
299
+ removeMcpServer(id: string): Promise<void>;
300
+ private _getMcpServerStateInternal;
220
301
  }
221
302
  /**
222
303
  * Namespace for creating Agent instances
@@ -281,7 +362,9 @@ declare function getAgentByName<Env, T extends Agent<Env>>(
281
362
  * A wrapper for streaming responses in callable methods
282
363
  */
283
364
  declare class StreamingResponse {
284
- #private;
365
+ private _connection;
366
+ private _id;
367
+ private _closed;
285
368
  constructor(connection: Connection, id: string);
286
369
  /**
287
370
  * Send a chunk of data to the client
@@ -301,6 +384,9 @@ export {
301
384
  type AgentNamespace,
302
385
  type AgentOptions,
303
386
  type CallableMetadata,
387
+ type MCPServer,
388
+ type MCPServerMessage,
389
+ type MCPServersState,
304
390
  type RPCRequest,
305
391
  type RPCResponse,
306
392
  type Schedule,
package/dist/index.js CHANGED
@@ -6,9 +6,10 @@ import {
6
6
  routeAgentEmail,
7
7
  routeAgentRequest,
8
8
  unstable_callable
9
- } from "./chunk-HD4VEHBA.js";
10
- import "./chunk-Q5ZBHY4Z.js";
11
- import "./chunk-HMLY7DHA.js";
9
+ } from "./chunk-RIYR6FR6.js";
10
+ import "./chunk-BZXOAZUX.js";
11
+ import "./chunk-QSGN3REV.js";
12
+ import "./chunk-Y67CHZBI.js";
12
13
  export {
13
14
  Agent,
14
15
  StreamingResponse,
@@ -1,5 +1,5 @@
1
1
  import * as zod from 'zod';
2
- import { ClientCapabilities, Tool, Prompt, Resource, ResourceTemplate, ServerCapabilities, CallToolRequest, CallToolResultSchema, CompatibilityCallToolResultSchema, ReadResourceRequest, GetPromptRequest } from '@modelcontextprotocol/sdk/types.js';
2
+ import { Tool, Prompt, Resource, ResourceTemplate, ServerCapabilities, CallToolRequest, CallToolResultSchema, CompatibilityCallToolResultSchema, ReadResourceRequest, GetPromptRequest } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
4
4
  import { SSEClientTransportOptions } from '@modelcontextprotocol/sdk/client/sse.js';
5
5
  import { AgentsOAuthProvider } from './do-oauth-client-provider.js';
@@ -15,7 +15,6 @@ declare class MCPClientConnection {
15
15
  authProvider?: AgentsOAuthProvider;
16
16
  };
17
17
  client: ConstructorParameters<typeof Client>[1];
18
- capabilities: ClientCapabilities;
19
18
  };
20
19
  client: Client;
21
20
  connectionState: "authenticating" | "connecting" | "ready" | "discovering" | "failed";
@@ -30,7 +29,6 @@ declare class MCPClientConnection {
30
29
  authProvider?: AgentsOAuthProvider;
31
30
  };
32
31
  client: ConstructorParameters<typeof Client>[1];
33
- capabilities: ClientCapabilities;
34
32
  });
35
33
  /**
36
34
  * Initialize a client connection
@@ -38,7 +36,7 @@ declare class MCPClientConnection {
38
36
  * @param code Optional OAuth code to initialize the connection with if auth hasn't been initialized
39
37
  * @returns
40
38
  */
41
- init(code?: string, clientId?: string): Promise<void>;
39
+ init(code?: string): Promise<void>;
42
40
  /**
43
41
  * Notification handler registration
44
42
  */
@@ -57,13 +55,21 @@ declare class MCPClientConnection {
57
55
  } | undefined;
58
56
  };
59
57
  description?: string | undefined;
58
+ annotations?: {
59
+ [x: string]: unknown;
60
+ title?: string | undefined;
61
+ readOnlyHint?: boolean | undefined;
62
+ destructiveHint?: boolean | undefined;
63
+ idempotentHint?: boolean | undefined;
64
+ openWorldHint?: boolean | undefined;
65
+ } | undefined;
60
66
  }[]>;
61
67
  fetchResources(): Promise<{
62
68
  [x: string]: unknown;
63
- uri: string;
64
69
  name: string;
65
- mimeType?: string | undefined;
70
+ uri: string;
66
71
  description?: string | undefined;
72
+ mimeType?: string | undefined;
67
73
  }[]>;
68
74
  fetchPrompts(): Promise<{
69
75
  [x: string]: unknown;
@@ -80,8 +86,8 @@ declare class MCPClientConnection {
80
86
  [x: string]: unknown;
81
87
  name: string;
82
88
  uriTemplate: string;
83
- mimeType?: string | undefined;
84
89
  description?: string | undefined;
90
+ mimeType?: string | undefined;
85
91
  }[]>;
86
92
  }
87
93
 
@@ -89,16 +95,16 @@ declare class MCPClientConnection {
89
95
  * Utility class that aggregates multiple MCP clients into one
90
96
  */
91
97
  declare class MCPClientManager {
92
- private name;
93
- private version;
98
+ private _name;
99
+ private _version;
94
100
  mcpConnections: Record<string, MCPClientConnection>;
95
- private callbackUrls;
101
+ private _callbackUrls;
96
102
  /**
97
- * @param name Name of the MCP client
98
- * @param version Version of the MCP Client
103
+ * @param _name Name of the MCP client
104
+ * @param _version Version of the MCP Client
99
105
  * @param auth Auth paramters if being used to create a DurableObjectOAuthClientProvider
100
106
  */
101
- constructor(name: string, version: string);
107
+ constructor(_name: string, _version: string);
102
108
  /**
103
109
  * Connect to and register an MCP server
104
110
  *
@@ -116,10 +122,10 @@ declare class MCPClientManager {
116
122
  authProvider?: AgentsOAuthProvider;
117
123
  };
118
124
  client?: ConstructorParameters<typeof Client>[1];
119
- capabilities?: ClientCapabilities;
120
125
  }): Promise<{
121
126
  id: string;
122
- authUrl: string | undefined;
127
+ authUrl?: string;
128
+ clientId?: string;
123
129
  }>;
124
130
  isCallbackRequest(req: Request): boolean;
125
131
  handleCallbackRequest(req: Request): Promise<{
@@ -1,8 +1,7 @@
1
1
  import {
2
2
  MCPClientManager,
3
3
  getNamespacedData
4
- } from "../chunk-Q5ZBHY4Z.js";
5
- import "../chunk-HMLY7DHA.js";
4
+ } from "../chunk-Y67CHZBI.js";
6
5
  export {
7
6
  MCPClientManager,
8
7
  getNamespacedData
@@ -10,9 +10,9 @@ declare class DurableObjectOAuthClientProvider implements AgentsOAuthProvider {
10
10
  storage: DurableObjectStorage;
11
11
  clientName: string;
12
12
  baseRedirectUrl: string;
13
- private authUrl_;
14
- private serverId_;
15
- private clientId_;
13
+ private _authUrl_;
14
+ private _serverId_;
15
+ private _clientId_;
16
16
  constructor(storage: DurableObjectStorage, clientName: string, baseRedirectUrl: string);
17
17
  get clientMetadata(): OAuthClientMetadata;
18
18
  get redirectUrl(): string;
@@ -1,106 +1,6 @@
1
- import "../chunk-HMLY7DHA.js";
2
-
3
- // src/mcp/do-oauth-client-provider.ts
4
- var DurableObjectOAuthClientProvider = class {
5
- constructor(storage, clientName, baseRedirectUrl) {
6
- this.storage = storage;
7
- this.clientName = clientName;
8
- this.baseRedirectUrl = baseRedirectUrl;
9
- }
10
- get clientMetadata() {
11
- return {
12
- redirect_uris: [this.redirectUrl],
13
- token_endpoint_auth_method: "none",
14
- grant_types: ["authorization_code", "refresh_token"],
15
- response_types: ["code"],
16
- client_name: this.clientName,
17
- client_uri: "example.com"
18
- };
19
- }
20
- get redirectUrl() {
21
- return `${this.baseRedirectUrl}/${this.serverId}`;
22
- }
23
- get clientId() {
24
- if (!this.clientId_) {
25
- throw new Error("Trying to access clientId before it was set");
26
- }
27
- return this.clientId_;
28
- }
29
- set clientId(clientId_) {
30
- this.clientId_ = clientId_;
31
- }
32
- get serverId() {
33
- if (!this.serverId_) {
34
- throw new Error("Trying to access serverId before it was set");
35
- }
36
- return this.serverId_;
37
- }
38
- set serverId(serverId_) {
39
- this.serverId_ = serverId_;
40
- }
41
- keyPrefix(clientId) {
42
- return `/${this.clientName}/${this.serverId}/${clientId}`;
43
- }
44
- clientInfoKey(clientId) {
45
- return `${this.keyPrefix(clientId)}/client_info/`;
46
- }
47
- async clientInformation() {
48
- if (!this.clientId_) {
49
- return void 0;
50
- }
51
- return await this.storage.get(
52
- this.clientInfoKey(this.clientId)
53
- ) ?? void 0;
54
- }
55
- async saveClientInformation(clientInformation) {
56
- await this.storage.put(
57
- this.clientInfoKey(clientInformation.client_id),
58
- clientInformation
59
- );
60
- this.clientId = clientInformation.client_id;
61
- }
62
- tokenKey(clientId) {
63
- return `${this.keyPrefix(clientId)}/token`;
64
- }
65
- async tokens() {
66
- if (!this.clientId_) {
67
- return void 0;
68
- }
69
- return await this.storage.get(this.tokenKey(this.clientId)) ?? void 0;
70
- }
71
- async saveTokens(tokens) {
72
- await this.storage.put(this.tokenKey(this.clientId), tokens);
73
- }
74
- get authUrl() {
75
- return this.authUrl_;
76
- }
77
- /**
78
- * Because this operates on the server side (but we need browser auth), we send this url back to the user
79
- * and require user interact to initiate the redirect flow
80
- */
81
- async redirectToAuthorization(authUrl) {
82
- const client_id = authUrl.searchParams.get("client_id");
83
- if (client_id) {
84
- authUrl.searchParams.append("state", client_id);
85
- }
86
- this.authUrl_ = authUrl.toString();
87
- }
88
- codeVerifierKey(clientId) {
89
- return `${this.keyPrefix(clientId)}/code_verifier`;
90
- }
91
- async saveCodeVerifier(verifier) {
92
- await this.storage.put(this.codeVerifierKey(this.clientId), verifier);
93
- }
94
- async codeVerifier() {
95
- const codeVerifier = await this.storage.get(
96
- this.codeVerifierKey(this.clientId)
97
- );
98
- if (!codeVerifier) {
99
- throw new Error("No code verifier found");
100
- }
101
- return codeVerifier;
102
- }
103
- };
1
+ import {
2
+ DurableObjectOAuthClientProvider
3
+ } from "../chunk-BZXOAZUX.js";
104
4
  export {
105
5
  DurableObjectOAuthClientProvider
106
6
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mcp/do-oauth-client-provider.ts"],"sourcesContent":["import type { OAuthClientProvider } from \"@modelcontextprotocol/sdk/client/auth.js\";\nimport type {\n OAuthTokens,\n OAuthClientMetadata,\n OAuthClientInformation,\n OAuthClientInformationFull,\n} from \"@modelcontextprotocol/sdk/shared/auth.js\";\n\n// A slight extension to the standard OAuthClientProvider interface because `redirectToAuthorization` doesn't give us the interface we need\n// This allows us to track authentication for a specific server and associated dynamic client registration\nexport interface AgentsOAuthProvider extends OAuthClientProvider {\n authUrl: string | undefined;\n clientId: string | undefined;\n serverId: string | undefined;\n}\n\nexport class DurableObjectOAuthClientProvider implements AgentsOAuthProvider {\n private authUrl_: string | undefined;\n private serverId_: string | undefined;\n private clientId_: string | undefined;\n\n constructor(\n public storage: DurableObjectStorage,\n public clientName: string,\n public baseRedirectUrl: string\n ) {}\n\n get clientMetadata(): OAuthClientMetadata {\n return {\n redirect_uris: [this.redirectUrl],\n token_endpoint_auth_method: \"none\",\n grant_types: [\"authorization_code\", \"refresh_token\"],\n response_types: [\"code\"],\n client_name: this.clientName,\n client_uri: \"example.com\",\n };\n }\n\n get redirectUrl() {\n return `${this.baseRedirectUrl}/${this.serverId}`;\n }\n\n get clientId() {\n if (!this.clientId_) {\n throw new Error(\"Trying to access clientId before it was set\");\n }\n return this.clientId_;\n }\n\n set clientId(clientId_: string) {\n this.clientId_ = clientId_;\n }\n\n get serverId() {\n if (!this.serverId_) {\n throw new Error(\"Trying to access serverId before it was set\");\n }\n return this.serverId_;\n }\n\n set serverId(serverId_: string) {\n this.serverId_ = serverId_;\n }\n\n keyPrefix(clientId: string) {\n return `/${this.clientName}/${this.serverId}/${clientId}`;\n }\n\n clientInfoKey(clientId: string) {\n return `${this.keyPrefix(clientId)}/client_info/`;\n }\n\n async clientInformation(): Promise<OAuthClientInformation | undefined> {\n if (!this.clientId_) {\n return undefined;\n }\n return (\n (await this.storage.get<OAuthClientInformation>(\n this.clientInfoKey(this.clientId)\n )) ?? undefined\n );\n }\n\n async saveClientInformation(\n clientInformation: OAuthClientInformationFull\n ): Promise<void> {\n await this.storage.put(\n this.clientInfoKey(clientInformation.client_id),\n clientInformation\n );\n this.clientId = clientInformation.client_id;\n }\n\n tokenKey(clientId: string) {\n return `${this.keyPrefix(clientId)}/token`;\n }\n\n async tokens(): Promise<OAuthTokens | undefined> {\n if (!this.clientId_) {\n return undefined;\n }\n return (\n (await this.storage.get<OAuthTokens>(this.tokenKey(this.clientId))) ??\n undefined\n );\n }\n\n async saveTokens(tokens: OAuthTokens): Promise<void> {\n await this.storage.put(this.tokenKey(this.clientId), tokens);\n }\n\n get authUrl() {\n return this.authUrl_;\n }\n\n /**\n * Because this operates on the server side (but we need browser auth), we send this url back to the user\n * and require user interact to initiate the redirect flow\n */\n async redirectToAuthorization(authUrl: URL): Promise<void> {\n // We want to track the client ID in state here because the typescript SSE client sometimes does\n // a dynamic client registration AFTER generating this redirect URL.\n const client_id = authUrl.searchParams.get(\"client_id\");\n if (client_id) {\n authUrl.searchParams.append(\"state\", client_id);\n }\n this.authUrl_ = authUrl.toString();\n }\n\n codeVerifierKey(clientId: string) {\n return `${this.keyPrefix(clientId)}/code_verifier`;\n }\n\n async saveCodeVerifier(verifier: string): Promise<void> {\n await this.storage.put(this.codeVerifierKey(this.clientId), verifier);\n }\n\n async codeVerifier(): Promise<string> {\n const codeVerifier = await this.storage.get<string>(\n this.codeVerifierKey(this.clientId)\n );\n if (!codeVerifier) {\n throw new Error(\"No code verifier found\");\n }\n return codeVerifier;\n }\n}\n"],"mappings":";;;AAgBO,IAAM,mCAAN,MAAsE;AAAA,EAK3E,YACS,SACA,YACA,iBACP;AAHO;AACA;AACA;AAAA,EACN;AAAA,EAEH,IAAI,iBAAsC;AACxC,WAAO;AAAA,MACL,eAAe,CAAC,KAAK,WAAW;AAAA,MAChC,4BAA4B;AAAA,MAC5B,aAAa,CAAC,sBAAsB,eAAe;AAAA,MACnD,gBAAgB,CAAC,MAAM;AAAA,MACvB,aAAa,KAAK;AAAA,MAClB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EAEA,IAAI,cAAc;AAChB,WAAO,GAAG,KAAK,eAAe,IAAI,KAAK,QAAQ;AAAA,EACjD;AAAA,EAEA,IAAI,WAAW;AACb,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,IAAI,MAAM,6CAA6C;AAAA,IAC/D;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAS,WAAmB;AAC9B,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,IAAI,WAAW;AACb,QAAI,CAAC,KAAK,WAAW;AACnB,YAAM,IAAI,MAAM,6CAA6C;AAAA,IAC/D;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAS,WAAmB;AAC9B,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,UAAU,UAAkB;AAC1B,WAAO,IAAI,KAAK,UAAU,IAAI,KAAK,QAAQ,IAAI,QAAQ;AAAA,EACzD;AAAA,EAEA,cAAc,UAAkB;AAC9B,WAAO,GAAG,KAAK,UAAU,QAAQ,CAAC;AAAA,EACpC;AAAA,EAEA,MAAM,oBAAiE;AACrE,QAAI,CAAC,KAAK,WAAW;AACnB,aAAO;AAAA,IACT;AACA,WACG,MAAM,KAAK,QAAQ;AAAA,MAClB,KAAK,cAAc,KAAK,QAAQ;AAAA,IAClC,KAAM;AAAA,EAEV;AAAA,EAEA,MAAM,sBACJ,mBACe;AACf,UAAM,KAAK,QAAQ;AAAA,MACjB,KAAK,cAAc,kBAAkB,SAAS;AAAA,MAC9C;AAAA,IACF;AACA,SAAK,WAAW,kBAAkB;AAAA,EACpC;AAAA,EAEA,SAAS,UAAkB;AACzB,WAAO,GAAG,KAAK,UAAU,QAAQ,CAAC;AAAA,EACpC;AAAA,EAEA,MAAM,SAA2C;AAC/C,QAAI,CAAC,KAAK,WAAW;AACnB,aAAO;AAAA,IACT;AACA,WACG,MAAM,KAAK,QAAQ,IAAiB,KAAK,SAAS,KAAK,QAAQ,CAAC,KACjE;AAAA,EAEJ;AAAA,EAEA,MAAM,WAAW,QAAoC;AACnD,UAAM,KAAK,QAAQ,IAAI,KAAK,SAAS,KAAK,QAAQ,GAAG,MAAM;AAAA,EAC7D;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,wBAAwB,SAA6B;AAGzD,UAAM,YAAY,QAAQ,aAAa,IAAI,WAAW;AACtD,QAAI,WAAW;AACb,cAAQ,aAAa,OAAO,SAAS,SAAS;AAAA,IAChD;AACA,SAAK,WAAW,QAAQ,SAAS;AAAA,EACnC;AAAA,EAEA,gBAAgB,UAAkB;AAChC,WAAO,GAAG,KAAK,UAAU,QAAQ,CAAC;AAAA,EACpC;AAAA,EAEA,MAAM,iBAAiB,UAAiC;AACtD,UAAM,KAAK,QAAQ,IAAI,KAAK,gBAAgB,KAAK,QAAQ,GAAG,QAAQ;AAAA,EACtE;AAAA,EAEA,MAAM,eAAgC;AACpC,UAAM,eAAe,MAAM,KAAK,QAAQ;AAAA,MACtC,KAAK,gBAAgB,KAAK,QAAQ;AAAA,IACpC;AACA,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -18,10 +18,19 @@ interface CORSOptions {
18
18
  methods?: string;
19
19
  headers?: string;
20
20
  maxAge?: number;
21
+ exposeHeaders?: string;
21
22
  }
22
23
  type MaybePromise<T> = T | Promise<T>;
23
24
  declare abstract class McpAgent<Env = unknown, State = unknown, Props extends Record<string, unknown> = Record<string, unknown>> extends DurableObject<Env> {
24
- #private;
25
+ private _status;
26
+ private _transport?;
27
+ private _transportType;
28
+ private _requestIdToConnectionId;
29
+ /**
30
+ * Since McpAgent's _aren't_ yet real "Agents", let's only expose a couple of the methods
31
+ * to the outer class: initialState/state/setState/onStateUpdate/sql
32
+ */
33
+ private _agent;
25
34
  get mcp(): MCPClientManager;
26
35
  protected constructor(ctx: DurableObjectState, env: Env);
27
36
  /**
@@ -43,6 +52,7 @@ declare abstract class McpAgent<Env = unknown, State = unknown, Props extends Re
43
52
  _init(props: Props): Promise<void>;
44
53
  setInitialized(): Promise<void>;
45
54
  isInitialized(): Promise<boolean>;
55
+ private _initialize;
46
56
  fetch(request: Request): Promise<Response>;
47
57
  getWebSocket(): WebSocket | null;
48
58
  getWebSocketForResponseID(id: string): WebSocket | null;