agents 0.2.15 → 0.2.17

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.
Files changed (48) hide show
  1. package/dist/ai-chat-agent.d.ts +10 -10
  2. package/dist/ai-chat-agent.js +6 -6
  3. package/dist/{ai-chat-v5-migration-gdyLiTd8.js → ai-chat-v5-migration-DBHGW4Hv.js} +2 -2
  4. package/dist/{ai-chat-v5-migration-gdyLiTd8.js.map → ai-chat-v5-migration-DBHGW4Hv.js.map} +1 -1
  5. package/dist/ai-chat-v5-migration.js +1 -1
  6. package/dist/ai-react.d.ts +9 -9
  7. package/dist/ai-react.js +1 -1
  8. package/dist/{ai-types-UZlfLOYP.js → ai-types-B3aQaFv3.js} +2 -2
  9. package/dist/{ai-types-UZlfLOYP.js.map → ai-types-B3aQaFv3.js.map} +1 -1
  10. package/dist/{ai-types-BWW4umHY.d.ts → ai-types-D5YoPrBZ.d.ts} +2 -2
  11. package/dist/ai-types.d.ts +4 -4
  12. package/dist/ai-types.js +1 -1
  13. package/dist/{client-CZBVDDoO.js → client-9Ld2_lnt.js} +2 -2
  14. package/dist/{client-CZBVDDoO.js.map → client-9Ld2_lnt.js.map} +1 -1
  15. package/dist/{client-C-nwz-3N.d.ts → client-B17XUTV7.d.ts} +20 -20
  16. package/dist/{client-DjR-lC16.js → client-BfiZ3HQd.js} +3 -3
  17. package/dist/{client-DjR-lC16.js.map → client-BfiZ3HQd.js.map} +1 -1
  18. package/dist/{client-CmMi85Sj.d.ts → client-CbWe9FBd.d.ts} +10 -10
  19. package/dist/client.d.ts +8 -8
  20. package/dist/client.js +2 -2
  21. package/dist/codemode/ai.js +5 -5
  22. package/dist/{do-oauth-client-provider-B2jr6UNq.js → do-oauth-client-provider-CswoD5Lu.js} +2 -2
  23. package/dist/{do-oauth-client-provider-B2jr6UNq.js.map → do-oauth-client-provider-CswoD5Lu.js.map} +1 -1
  24. package/dist/{do-oauth-client-provider-CCwGwnrA.d.ts → do-oauth-client-provider-DGc5pP0l.d.ts} +2 -2
  25. package/dist/{index-DWJSBMbz.d.ts → index-B6MjW6n-.d.ts} +49 -225
  26. package/dist/{index-W4JUkafc.d.ts → index-DhJCaDWd.d.ts} +7 -3
  27. package/dist/index.d.ts +36 -50
  28. package/dist/index.js +6 -6
  29. package/dist/mcp/client.d.ts +3 -3
  30. package/dist/mcp/client.js +1 -1
  31. package/dist/mcp/do-oauth-client-provider.d.ts +1 -1
  32. package/dist/mcp/do-oauth-client-provider.js +1 -1
  33. package/dist/mcp/index.d.ts +129 -7
  34. package/dist/mcp/index.js +1234 -6
  35. package/dist/mcp/index.js.map +1 -0
  36. package/dist/{mcp-BEwaCsxO.d.ts → mcp-Dw5vDrY8.d.ts} +2 -2
  37. package/dist/observability/index.d.ts +2 -2
  38. package/dist/observability/index.js +5 -5
  39. package/dist/{react-GnTP-a01.d.ts → react-CRBsIQ1z.d.ts} +28 -26
  40. package/dist/react.d.ts +9 -9
  41. package/dist/react.js +1 -1
  42. package/dist/{serializable-gtr9YMhp.d.ts → serializable-CymX8ovI.d.ts} +8 -3
  43. package/dist/serializable.d.ts +5 -5
  44. package/dist/src-Dz0H9hSU.js +1200 -0
  45. package/dist/src-Dz0H9hSU.js.map +1 -0
  46. package/package.json +5 -5
  47. package/dist/src-tpG9NtHy.js +0 -2457
  48. package/dist/src-tpG9NtHy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client-DjR-lC16.js","names":["parsedMessage: Record<string, unknown>","request: RPCRequest"],"sources":["../src/client.ts"],"sourcesContent":["import {\n type PartyFetchOptions,\n PartySocket,\n type PartySocketOptions\n} from \"partysocket\";\nimport type { RPCRequest, RPCResponse } from \"./\";\nimport type {\n SerializableReturnValue,\n SerializableValue\n} from \"./serializable\";\nimport { MessageType } from \"./ai-types\";\n\n/**\n * Options for creating an AgentClient\n */\nexport type AgentClientOptions<State = unknown> = Omit<\n PartySocketOptions,\n \"party\" | \"room\"\n> & {\n /** Name of the agent to connect to */\n agent: string;\n /** Name of the specific Agent instance */\n name?: string;\n /** Called when the Agent's state is updated */\n onStateUpdate?: (state: State, source: \"server\" | \"client\") => void;\n};\n\n/**\n * Options for streaming RPC calls\n */\nexport type StreamOptions = {\n /** Called when a chunk of data is received */\n onChunk?: (chunk: unknown) => void;\n /** Called when the stream ends */\n onDone?: (finalChunk: unknown) => void;\n /** Called when an error occurs */\n onError?: (error: string) => void;\n};\n\n/**\n * Options for the agentFetch function\n */\nexport type AgentClientFetchOptions = Omit<\n PartyFetchOptions,\n \"party\" | \"room\"\n> & {\n /** Name of the agent to connect to */\n agent: string;\n /** Name of the specific Agent instance */\n name?: string;\n};\n\n/**\n * Convert a camelCase string to a kebab-case string\n * @param str The string to convert\n * @returns The kebab-case string\n */\nexport function camelCaseToKebabCase(str: string): string {\n // If string is all uppercase, convert to lowercase\n if (str === str.toUpperCase() && str !== str.toLowerCase()) {\n return str.toLowerCase().replace(/_/g, \"-\");\n }\n\n // Otherwise handle camelCase to kebab-case\n let kebabified = str.replace(\n /[A-Z]/g,\n (letter) => `-${letter.toLowerCase()}`\n );\n kebabified = kebabified.startsWith(\"-\") ? kebabified.slice(1) : kebabified;\n // Convert any remaining underscores to hyphens and remove trailing -'s\n return kebabified.replace(/_/g, \"-\").replace(/-$/, \"\");\n}\n\n/**\n * WebSocket client for connecting to an Agent\n */\nexport class AgentClient<State = unknown> extends PartySocket {\n /**\n * @deprecated Use agentFetch instead\n */\n static fetch(_opts: PartyFetchOptions): Promise<Response> {\n throw new Error(\n \"AgentClient.fetch is not implemented, use agentFetch instead\"\n );\n }\n agent: string;\n name: string;\n private options: AgentClientOptions<State>;\n private _pendingCalls = new Map<\n string,\n {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n stream?: StreamOptions;\n type?: unknown;\n }\n >();\n\n constructor(options: AgentClientOptions<State>) {\n const agentNamespace = camelCaseToKebabCase(options.agent);\n super({\n party: agentNamespace,\n prefix: \"agents\",\n room: options.name || \"default\",\n ...options\n });\n this.agent = agentNamespace;\n this.name = options.name || \"default\";\n this.options = options;\n\n this.addEventListener(\"message\", (event) => {\n if (typeof event.data === \"string\") {\n let parsedMessage: Record<string, unknown>;\n try {\n parsedMessage = JSON.parse(event.data);\n } catch (_error) {\n // silently ignore invalid messages for now\n // TODO: log errors with log levels\n return;\n }\n if (parsedMessage.type === MessageType.CF_AGENT_STATE) {\n this.options.onStateUpdate?.(parsedMessage.state as State, \"server\");\n return;\n }\n if (parsedMessage.type === MessageType.RPC) {\n const response = parsedMessage as RPCResponse;\n const pending = this._pendingCalls.get(response.id);\n if (!pending) return;\n\n if (!response.success) {\n pending.reject(new Error(response.error));\n this._pendingCalls.delete(response.id);\n pending.stream?.onError?.(response.error);\n return;\n }\n\n // Handle streaming responses\n if (\"done\" in response) {\n if (response.done) {\n pending.resolve(response.result);\n this._pendingCalls.delete(response.id);\n pending.stream?.onDone?.(response.result);\n } else {\n pending.stream?.onChunk?.(response.result);\n }\n } else {\n // Non-streaming response\n pending.resolve(response.result);\n this._pendingCalls.delete(response.id);\n }\n }\n }\n });\n }\n\n setState(state: State) {\n this.send(JSON.stringify({ state, type: MessageType.CF_AGENT_STATE }));\n this.options.onStateUpdate?.(state, \"client\");\n }\n\n /**\n * Call a method on the Agent\n * @param method Name of the method to call\n * @param args Arguments to pass to the method\n * @param streamOptions Options for handling streaming responses\n * @returns Promise that resolves with the method's return value\n */\n call<T extends SerializableReturnValue>(\n method: string,\n args?: SerializableValue[],\n streamOptions?: StreamOptions\n ): Promise<T>;\n call<T = unknown>(\n method: string,\n args?: unknown[],\n streamOptions?: StreamOptions\n ): Promise<T>;\n async call<T>(\n method: string,\n args: unknown[] = [],\n streamOptions?: StreamOptions\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const id = Math.random().toString(36).slice(2);\n this._pendingCalls.set(id, {\n reject,\n resolve: (value: unknown) => resolve(value as T),\n stream: streamOptions,\n type: null as T\n });\n\n const request: RPCRequest = {\n args,\n id,\n method,\n type: MessageType.RPC\n };\n\n this.send(JSON.stringify(request));\n });\n }\n}\n\n/**\n * Make an HTTP request to an Agent\n * @param opts Connection options\n * @param init Request initialization options\n * @returns Promise resolving to a Response\n */\nexport function agentFetch(opts: AgentClientFetchOptions, init?: RequestInit) {\n const agentNamespace = camelCaseToKebabCase(opts.agent);\n\n return PartySocket.fetch(\n {\n party: agentNamespace,\n prefix: \"agents\",\n room: opts.name || \"default\",\n ...opts\n },\n init\n );\n}\n"],"mappings":";;;;;;;;;AAyDA,SAAgB,qBAAqB,KAAqB;AAExD,KAAI,QAAQ,IAAI,aAAa,IAAI,QAAQ,IAAI,aAAa,CACxD,QAAO,IAAI,aAAa,CAAC,QAAQ,MAAM,IAAI;CAI7C,IAAI,aAAa,IAAI,QACnB,WACC,WAAW,IAAI,OAAO,aAAa,GACrC;AACD,cAAa,WAAW,WAAW,IAAI,GAAG,WAAW,MAAM,EAAE,GAAG;AAEhE,QAAO,WAAW,QAAQ,MAAM,IAAI,CAAC,QAAQ,MAAM,GAAG;;;;;AAMxD,IAAa,cAAb,cAAkD,YAAY;;;;CAI5D,OAAO,MAAM,OAA6C;AACxD,QAAM,IAAI,MACR,+DACD;;CAeH,YAAY,SAAoC;EAC9C,MAAM,iBAAiB,qBAAqB,QAAQ,MAAM;AAC1D,QAAM;GACJ,OAAO;GACP,QAAQ;GACR,MAAM,QAAQ,QAAQ;GACtB,GAAG;GACJ,CAAC;uCAjBoB,IAAI,KAQzB;AAUD,OAAK,QAAQ;AACb,OAAK,OAAO,QAAQ,QAAQ;AAC5B,OAAK,UAAU;AAEf,OAAK,iBAAiB,YAAY,UAAU;AAC1C,OAAI,OAAO,MAAM,SAAS,UAAU;IAClC,IAAIA;AACJ,QAAI;AACF,qBAAgB,KAAK,MAAM,MAAM,KAAK;aAC/B,QAAQ;AAGf;;AAEF,QAAI,cAAc,SAAS,YAAY,gBAAgB;AACrD,UAAK,QAAQ,gBAAgB,cAAc,OAAgB,SAAS;AACpE;;AAEF,QAAI,cAAc,SAAS,YAAY,KAAK;KAC1C,MAAM,WAAW;KACjB,MAAM,UAAU,KAAK,cAAc,IAAI,SAAS,GAAG;AACnD,SAAI,CAAC,QAAS;AAEd,SAAI,CAAC,SAAS,SAAS;AACrB,cAAQ,OAAO,IAAI,MAAM,SAAS,MAAM,CAAC;AACzC,WAAK,cAAc,OAAO,SAAS,GAAG;AACtC,cAAQ,QAAQ,UAAU,SAAS,MAAM;AACzC;;AAIF,SAAI,UAAU,SACZ,KAAI,SAAS,MAAM;AACjB,cAAQ,QAAQ,SAAS,OAAO;AAChC,WAAK,cAAc,OAAO,SAAS,GAAG;AACtC,cAAQ,QAAQ,SAAS,SAAS,OAAO;WAEzC,SAAQ,QAAQ,UAAU,SAAS,OAAO;UAEvC;AAEL,cAAQ,QAAQ,SAAS,OAAO;AAChC,WAAK,cAAc,OAAO,SAAS,GAAG;;;;IAI5C;;CAGJ,SAAS,OAAc;AACrB,OAAK,KAAK,KAAK,UAAU;GAAE;GAAO,MAAM,YAAY;GAAgB,CAAC,CAAC;AACtE,OAAK,QAAQ,gBAAgB,OAAO,SAAS;;CAoB/C,MAAM,KACJ,QACA,OAAkB,EAAE,EACpB,eACY;AACZ,SAAO,IAAI,SAAY,SAAS,WAAW;GACzC,MAAM,KAAK,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE;AAC9C,QAAK,cAAc,IAAI,IAAI;IACzB;IACA,UAAU,UAAmB,QAAQ,MAAW;IAChD,QAAQ;IACR,MAAM;IACP,CAAC;GAEF,MAAMC,UAAsB;IAC1B;IACA;IACA;IACA,MAAM,YAAY;IACnB;AAED,QAAK,KAAK,KAAK,UAAU,QAAQ,CAAC;IAClC;;;;;;;;;AAUN,SAAgB,WAAW,MAA+B,MAAoB;CAC5E,MAAM,iBAAiB,qBAAqB,KAAK,MAAM;AAEvD,QAAO,YAAY,MACjB;EACE,OAAO;EACP,QAAQ;EACR,MAAM,KAAK,QAAQ;EACnB,GAAG;EACJ,EACD,KACD"}
1
+ {"version":3,"file":"client-BfiZ3HQd.js","names":["parsedMessage: Record<string, unknown>","request: RPCRequest"],"sources":["../src/client.ts"],"sourcesContent":["import {\n type PartyFetchOptions,\n PartySocket,\n type PartySocketOptions\n} from \"partysocket\";\nimport type { RPCRequest, RPCResponse } from \"./\";\nimport type {\n SerializableReturnValue,\n SerializableValue\n} from \"./serializable\";\nimport { MessageType } from \"./ai-types\";\n\n/**\n * Options for creating an AgentClient\n */\nexport type AgentClientOptions<State = unknown> = Omit<\n PartySocketOptions,\n \"party\" | \"room\"\n> & {\n /** Name of the agent to connect to */\n agent: string;\n /** Name of the specific Agent instance */\n name?: string;\n /** Called when the Agent's state is updated */\n onStateUpdate?: (state: State, source: \"server\" | \"client\") => void;\n};\n\n/**\n * Options for streaming RPC calls\n */\nexport type StreamOptions = {\n /** Called when a chunk of data is received */\n onChunk?: (chunk: unknown) => void;\n /** Called when the stream ends */\n onDone?: (finalChunk: unknown) => void;\n /** Called when an error occurs */\n onError?: (error: string) => void;\n};\n\n/**\n * Options for the agentFetch function\n */\nexport type AgentClientFetchOptions = Omit<\n PartyFetchOptions,\n \"party\" | \"room\"\n> & {\n /** Name of the agent to connect to */\n agent: string;\n /** Name of the specific Agent instance */\n name?: string;\n};\n\n/**\n * Convert a camelCase string to a kebab-case string\n * @param str The string to convert\n * @returns The kebab-case string\n */\nexport function camelCaseToKebabCase(str: string): string {\n // If string is all uppercase, convert to lowercase\n if (str === str.toUpperCase() && str !== str.toLowerCase()) {\n return str.toLowerCase().replace(/_/g, \"-\");\n }\n\n // Otherwise handle camelCase to kebab-case\n let kebabified = str.replace(\n /[A-Z]/g,\n (letter) => `-${letter.toLowerCase()}`\n );\n kebabified = kebabified.startsWith(\"-\") ? kebabified.slice(1) : kebabified;\n // Convert any remaining underscores to hyphens and remove trailing -'s\n return kebabified.replace(/_/g, \"-\").replace(/-$/, \"\");\n}\n\n/**\n * WebSocket client for connecting to an Agent\n */\nexport class AgentClient<State = unknown> extends PartySocket {\n /**\n * @deprecated Use agentFetch instead\n */\n static fetch(_opts: PartyFetchOptions): Promise<Response> {\n throw new Error(\n \"AgentClient.fetch is not implemented, use agentFetch instead\"\n );\n }\n agent: string;\n name: string;\n private options: AgentClientOptions<State>;\n private _pendingCalls = new Map<\n string,\n {\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n stream?: StreamOptions;\n type?: unknown;\n }\n >();\n\n constructor(options: AgentClientOptions<State>) {\n const agentNamespace = camelCaseToKebabCase(options.agent);\n super({\n party: agentNamespace,\n prefix: \"agents\",\n room: options.name || \"default\",\n ...options\n });\n this.agent = agentNamespace;\n this.name = options.name || \"default\";\n this.options = options;\n\n this.addEventListener(\"message\", (event) => {\n if (typeof event.data === \"string\") {\n let parsedMessage: Record<string, unknown>;\n try {\n parsedMessage = JSON.parse(event.data);\n } catch (_error) {\n // silently ignore invalid messages for now\n // TODO: log errors with log levels\n return;\n }\n if (parsedMessage.type === MessageType.CF_AGENT_STATE) {\n this.options.onStateUpdate?.(parsedMessage.state as State, \"server\");\n return;\n }\n if (parsedMessage.type === MessageType.RPC) {\n const response = parsedMessage as RPCResponse;\n const pending = this._pendingCalls.get(response.id);\n if (!pending) return;\n\n if (!response.success) {\n pending.reject(new Error(response.error));\n this._pendingCalls.delete(response.id);\n pending.stream?.onError?.(response.error);\n return;\n }\n\n // Handle streaming responses\n if (\"done\" in response) {\n if (response.done) {\n pending.resolve(response.result);\n this._pendingCalls.delete(response.id);\n pending.stream?.onDone?.(response.result);\n } else {\n pending.stream?.onChunk?.(response.result);\n }\n } else {\n // Non-streaming response\n pending.resolve(response.result);\n this._pendingCalls.delete(response.id);\n }\n }\n }\n });\n }\n\n setState(state: State) {\n this.send(JSON.stringify({ state, type: MessageType.CF_AGENT_STATE }));\n this.options.onStateUpdate?.(state, \"client\");\n }\n\n /**\n * Call a method on the Agent\n * @param method Name of the method to call\n * @param args Arguments to pass to the method\n * @param streamOptions Options for handling streaming responses\n * @returns Promise that resolves with the method's return value\n */\n call<T extends SerializableReturnValue>(\n method: string,\n args?: SerializableValue[],\n streamOptions?: StreamOptions\n ): Promise<T>;\n call<T = unknown>(\n method: string,\n args?: unknown[],\n streamOptions?: StreamOptions\n ): Promise<T>;\n async call<T>(\n method: string,\n args: unknown[] = [],\n streamOptions?: StreamOptions\n ): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const id = Math.random().toString(36).slice(2);\n this._pendingCalls.set(id, {\n reject,\n resolve: (value: unknown) => resolve(value as T),\n stream: streamOptions,\n type: null as T\n });\n\n const request: RPCRequest = {\n args,\n id,\n method,\n type: MessageType.RPC\n };\n\n this.send(JSON.stringify(request));\n });\n }\n}\n\n/**\n * Make an HTTP request to an Agent\n * @param opts Connection options\n * @param init Request initialization options\n * @returns Promise resolving to a Response\n */\nexport function agentFetch(opts: AgentClientFetchOptions, init?: RequestInit) {\n const agentNamespace = camelCaseToKebabCase(opts.agent);\n\n return PartySocket.fetch(\n {\n party: agentNamespace,\n prefix: \"agents\",\n room: opts.name || \"default\",\n ...opts\n },\n init\n );\n}\n"],"mappings":";;;;;;;;;AAyDA,SAAgB,qBAAqB,KAAqB;AAExD,KAAI,QAAQ,IAAI,aAAa,IAAI,QAAQ,IAAI,aAAa,CACxD,QAAO,IAAI,aAAa,CAAC,QAAQ,MAAM,IAAI;CAI7C,IAAI,aAAa,IAAI,QACnB,WACC,WAAW,IAAI,OAAO,aAAa,GACrC;AACD,cAAa,WAAW,WAAW,IAAI,GAAG,WAAW,MAAM,EAAE,GAAG;AAEhE,QAAO,WAAW,QAAQ,MAAM,IAAI,CAAC,QAAQ,MAAM,GAAG;;;;;AAMxD,IAAa,cAAb,cAAkD,YAAY;;;;CAI5D,OAAO,MAAM,OAA6C;AACxD,QAAM,IAAI,MACR,+DACD;;CAeH,YAAY,SAAoC;EAC9C,MAAM,iBAAiB,qBAAqB,QAAQ,MAAM;AAC1D,QAAM;GACJ,OAAO;GACP,QAAQ;GACR,MAAM,QAAQ,QAAQ;GACtB,GAAG;GACJ,CAAC;uCAjBoB,IAAI,KAQzB;AAUD,OAAK,QAAQ;AACb,OAAK,OAAO,QAAQ,QAAQ;AAC5B,OAAK,UAAU;AAEf,OAAK,iBAAiB,YAAY,UAAU;AAC1C,OAAI,OAAO,MAAM,SAAS,UAAU;IAClC,IAAIA;AACJ,QAAI;AACF,qBAAgB,KAAK,MAAM,MAAM,KAAK;aAC/B,QAAQ;AAGf;;AAEF,QAAI,cAAc,SAAS,YAAY,gBAAgB;AACrD,UAAK,QAAQ,gBAAgB,cAAc,OAAgB,SAAS;AACpE;;AAEF,QAAI,cAAc,SAAS,YAAY,KAAK;KAC1C,MAAM,WAAW;KACjB,MAAM,UAAU,KAAK,cAAc,IAAI,SAAS,GAAG;AACnD,SAAI,CAAC,QAAS;AAEd,SAAI,CAAC,SAAS,SAAS;AACrB,cAAQ,OAAO,IAAI,MAAM,SAAS,MAAM,CAAC;AACzC,WAAK,cAAc,OAAO,SAAS,GAAG;AACtC,cAAQ,QAAQ,UAAU,SAAS,MAAM;AACzC;;AAIF,SAAI,UAAU,SACZ,KAAI,SAAS,MAAM;AACjB,cAAQ,QAAQ,SAAS,OAAO;AAChC,WAAK,cAAc,OAAO,SAAS,GAAG;AACtC,cAAQ,QAAQ,SAAS,SAAS,OAAO;WAEzC,SAAQ,QAAQ,UAAU,SAAS,OAAO;UAEvC;AAEL,cAAQ,QAAQ,SAAS,OAAO;AAChC,WAAK,cAAc,OAAO,SAAS,GAAG;;;;IAI5C;;CAGJ,SAAS,OAAc;AACrB,OAAK,KAAK,KAAK,UAAU;GAAE;GAAO,MAAM,YAAY;GAAgB,CAAC,CAAC;AACtE,OAAK,QAAQ,gBAAgB,OAAO,SAAS;;CAoB/C,MAAM,KACJ,QACA,OAAkB,EAAE,EACpB,eACY;AACZ,SAAO,IAAI,SAAY,SAAS,WAAW;GACzC,MAAM,KAAK,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE;AAC9C,QAAK,cAAc,IAAI,IAAI;IACzB;IACA,UAAU,UAAmB,QAAQ,MAAW;IAChD,QAAQ;IACR,MAAM;IACP,CAAC;GAEF,MAAMC,UAAsB;IAC1B;IACA;IACA;IACA,MAAM,YAAY;IACnB;AAED,QAAK,KAAK,KAAK,UAAU,QAAQ,CAAC;IAClC;;;;;;;;;AAUN,SAAgB,WAAW,MAA+B,MAAoB;CAC5E,MAAM,iBAAiB,qBAAqB,KAAK,MAAM;AAEvD,QAAO,YAAY,MACjB;EACE,OAAO;EACP,QAAQ;EACR,MAAM,KAAK,QAAQ;EACnB,GAAG;EACJ,EACD,KACD"}
@@ -1,7 +1,7 @@
1
1
  import {
2
- SerializableReturnValue,
3
- SerializableValue
4
- } from "./serializable-gtr9YMhp.js";
2
+ i as SerializableValue,
3
+ r as SerializableReturnValue
4
+ } from "./serializable-CymX8ovI.js";
5
5
  import {
6
6
  PartyFetchOptions,
7
7
  PartySocket,
@@ -94,11 +94,11 @@ declare function agentFetch(
94
94
  ): Promise<Response>;
95
95
  //#endregion
96
96
  export {
97
- AgentClient,
98
- AgentClientFetchOptions,
99
- AgentClientOptions,
100
- StreamOptions,
101
- agentFetch,
102
- camelCaseToKebabCase
97
+ agentFetch as a,
98
+ StreamOptions as i,
99
+ AgentClientFetchOptions as n,
100
+ camelCaseToKebabCase as o,
101
+ AgentClientOptions as r,
102
+ AgentClient as t
103
103
  };
104
- //# sourceMappingURL=client-CmMi85Sj.d.ts.map
104
+ //# sourceMappingURL=client-CbWe9FBd.d.ts.map
package/dist/client.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import "./serializable-gtr9YMhp.js";
1
+ import "./serializable-CymX8ovI.js";
2
2
  import {
3
- AgentClient,
4
- AgentClientFetchOptions,
5
- AgentClientOptions,
6
- StreamOptions,
7
- agentFetch,
8
- camelCaseToKebabCase
9
- } from "./client-CmMi85Sj.js";
3
+ a as agentFetch,
4
+ i as StreamOptions,
5
+ n as AgentClientFetchOptions,
6
+ o as camelCaseToKebabCase,
7
+ r as AgentClientOptions,
8
+ t as AgentClient
9
+ } from "./client-CbWe9FBd.js";
10
10
  export {
11
11
  AgentClient,
12
12
  AgentClientFetchOptions,
package/dist/client.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./ai-types-UZlfLOYP.js";
2
- import { AgentClient, agentFetch, camelCaseToKebabCase } from "./client-DjR-lC16.js";
1
+ import "./ai-types-B3aQaFv3.js";
2
+ import { n as agentFetch, r as camelCaseToKebabCase, t as AgentClient } from "./client-BfiZ3HQd.js";
3
3
 
4
4
  export { AgentClient, agentFetch, camelCaseToKebabCase };
@@ -1,8 +1,8 @@
1
- import "../ai-types-UZlfLOYP.js";
2
- import "../client-DjR-lC16.js";
3
- import "../client-CZBVDDoO.js";
4
- import "../do-oauth-client-provider-B2jr6UNq.js";
5
- import { getAgentByName } from "../src-tpG9NtHy.js";
1
+ import "../ai-types-B3aQaFv3.js";
2
+ import "../client-BfiZ3HQd.js";
3
+ import "../client-9Ld2_lnt.js";
4
+ import "../do-oauth-client-provider-CswoD5Lu.js";
5
+ import { s as getAgentByName } from "../src-Dz0H9hSU.js";
6
6
  import { generateObject, tool } from "ai";
7
7
  import { openai } from "@ai-sdk/openai";
8
8
  import { z } from "zod/v3";
@@ -89,5 +89,5 @@ var DurableObjectOAuthClientProvider = class {
89
89
  };
90
90
 
91
91
  //#endregion
92
- export { DurableObjectOAuthClientProvider };
93
- //# sourceMappingURL=do-oauth-client-provider-B2jr6UNq.js.map
92
+ export { DurableObjectOAuthClientProvider as t };
93
+ //# sourceMappingURL=do-oauth-client-provider-CswoD5Lu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"do-oauth-client-provider-B2jr6UNq.js","names":["storage: DurableObjectStorage","clientName: string","baseRedirectUrl: string"],"sources":["../src/mcp/do-oauth-client-provider.ts"],"sourcesContent":["import type { OAuthClientProvider } from \"@modelcontextprotocol/sdk/client/auth.js\";\nimport type {\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens\n} from \"@modelcontextprotocol/sdk/shared/auth.js\";\nimport { nanoid } from \"nanoid\";\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 client_name: this.clientName,\n client_uri: this.clientUri,\n grant_types: [\"authorization_code\", \"refresh_token\"],\n redirect_uris: [this.redirectUrl],\n response_types: [\"code\"],\n token_endpoint_auth_method: \"none\"\n };\n }\n\n get clientUri() {\n return new URL(this.redirectUrl).origin;\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 // Generate secure random token for state parameter\n const stateToken = nanoid();\n authUrl.searchParams.set(\"state\", stateToken);\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 const key = this.codeVerifierKey(this.clientId);\n\n // Don't overwrite existing verifier to preserve first PKCE verifier\n const existing = await this.storage.get<string>(key);\n if (existing) {\n return;\n }\n\n await this.storage.put(key, 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":";;;AAiBA,IAAa,mCAAb,MAA6E;CAK3E,YACE,AAAOA,SACP,AAAOC,YACP,AAAOC,iBACP;EAHO;EACA;EACA;;CAGT,IAAI,iBAAsC;AACxC,SAAO;GACL,aAAa,KAAK;GAClB,YAAY,KAAK;GACjB,aAAa,CAAC,sBAAsB,gBAAgB;GACpD,eAAe,CAAC,KAAK,YAAY;GACjC,gBAAgB,CAAC,OAAO;GACxB,4BAA4B;GAC7B;;CAGH,IAAI,YAAY;AACd,SAAO,IAAI,IAAI,KAAK,YAAY,CAAC;;CAGnC,IAAI,cAAc;AAChB,SAAO,GAAG,KAAK,gBAAgB,GAAG,KAAK;;CAGzC,IAAI,WAAW;AACb,MAAI,CAAC,KAAK,WACR,OAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAO,KAAK;;CAGd,IAAI,SAAS,WAAmB;AAC9B,OAAK,aAAa;;CAGpB,IAAI,WAAW;AACb,MAAI,CAAC,KAAK,WACR,OAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAO,KAAK;;CAGd,IAAI,SAAS,WAAmB;AAC9B,OAAK,aAAa;;CAGpB,UAAU,UAAkB;AAC1B,SAAO,IAAI,KAAK,WAAW,GAAG,KAAK,SAAS,GAAG;;CAGjD,cAAc,UAAkB;AAC9B,SAAO,GAAG,KAAK,UAAU,SAAS,CAAC;;CAGrC,MAAM,oBAAiE;AACrE,MAAI,CAAC,KAAK,WACR;AAEF,SACG,MAAM,KAAK,QAAQ,IAClB,KAAK,cAAc,KAAK,SAAS,CAClC,IAAK;;CAIV,MAAM,sBACJ,mBACe;AACf,QAAM,KAAK,QAAQ,IACjB,KAAK,cAAc,kBAAkB,UAAU,EAC/C,kBACD;AACD,OAAK,WAAW,kBAAkB;;CAGpC,SAAS,UAAkB;AACzB,SAAO,GAAG,KAAK,UAAU,SAAS,CAAC;;CAGrC,MAAM,SAA2C;AAC/C,MAAI,CAAC,KAAK,WACR;AAEF,SACG,MAAM,KAAK,QAAQ,IAAiB,KAAK,SAAS,KAAK,SAAS,CAAC,IAClE;;CAIJ,MAAM,WAAW,QAAoC;AACnD,QAAM,KAAK,QAAQ,IAAI,KAAK,SAAS,KAAK,SAAS,EAAE,OAAO;;CAG9D,IAAI,UAAU;AACZ,SAAO,KAAK;;;;;;CAOd,MAAM,wBAAwB,SAA6B;EAEzD,MAAM,aAAa,QAAQ;AAC3B,UAAQ,aAAa,IAAI,SAAS,WAAW;AAC7C,OAAK,YAAY,QAAQ,UAAU;;CAGrC,gBAAgB,UAAkB;AAChC,SAAO,GAAG,KAAK,UAAU,SAAS,CAAC;;CAGrC,MAAM,iBAAiB,UAAiC;EACtD,MAAM,MAAM,KAAK,gBAAgB,KAAK,SAAS;AAI/C,MADiB,MAAM,KAAK,QAAQ,IAAY,IAAI,CAElD;AAGF,QAAM,KAAK,QAAQ,IAAI,KAAK,SAAS;;CAGvC,MAAM,eAAgC;EACpC,MAAM,eAAe,MAAM,KAAK,QAAQ,IACtC,KAAK,gBAAgB,KAAK,SAAS,CACpC;AACD,MAAI,CAAC,aACH,OAAM,IAAI,MAAM,yBAAyB;AAE3C,SAAO"}
1
+ {"version":3,"file":"do-oauth-client-provider-CswoD5Lu.js","names":["storage: DurableObjectStorage","clientName: string","baseRedirectUrl: string"],"sources":["../src/mcp/do-oauth-client-provider.ts"],"sourcesContent":["import type { OAuthClientProvider } from \"@modelcontextprotocol/sdk/client/auth.js\";\nimport type {\n OAuthClientInformation,\n OAuthClientInformationFull,\n OAuthClientMetadata,\n OAuthTokens\n} from \"@modelcontextprotocol/sdk/shared/auth.js\";\nimport { nanoid } from \"nanoid\";\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 client_name: this.clientName,\n client_uri: this.clientUri,\n grant_types: [\"authorization_code\", \"refresh_token\"],\n redirect_uris: [this.redirectUrl],\n response_types: [\"code\"],\n token_endpoint_auth_method: \"none\"\n };\n }\n\n get clientUri() {\n return new URL(this.redirectUrl).origin;\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 // Generate secure random token for state parameter\n const stateToken = nanoid();\n authUrl.searchParams.set(\"state\", stateToken);\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 const key = this.codeVerifierKey(this.clientId);\n\n // Don't overwrite existing verifier to preserve first PKCE verifier\n const existing = await this.storage.get<string>(key);\n if (existing) {\n return;\n }\n\n await this.storage.put(key, 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":";;;AAiBA,IAAa,mCAAb,MAA6E;CAK3E,YACE,AAAOA,SACP,AAAOC,YACP,AAAOC,iBACP;EAHO;EACA;EACA;;CAGT,IAAI,iBAAsC;AACxC,SAAO;GACL,aAAa,KAAK;GAClB,YAAY,KAAK;GACjB,aAAa,CAAC,sBAAsB,gBAAgB;GACpD,eAAe,CAAC,KAAK,YAAY;GACjC,gBAAgB,CAAC,OAAO;GACxB,4BAA4B;GAC7B;;CAGH,IAAI,YAAY;AACd,SAAO,IAAI,IAAI,KAAK,YAAY,CAAC;;CAGnC,IAAI,cAAc;AAChB,SAAO,GAAG,KAAK,gBAAgB,GAAG,KAAK;;CAGzC,IAAI,WAAW;AACb,MAAI,CAAC,KAAK,WACR,OAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAO,KAAK;;CAGd,IAAI,SAAS,WAAmB;AAC9B,OAAK,aAAa;;CAGpB,IAAI,WAAW;AACb,MAAI,CAAC,KAAK,WACR,OAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAO,KAAK;;CAGd,IAAI,SAAS,WAAmB;AAC9B,OAAK,aAAa;;CAGpB,UAAU,UAAkB;AAC1B,SAAO,IAAI,KAAK,WAAW,GAAG,KAAK,SAAS,GAAG;;CAGjD,cAAc,UAAkB;AAC9B,SAAO,GAAG,KAAK,UAAU,SAAS,CAAC;;CAGrC,MAAM,oBAAiE;AACrE,MAAI,CAAC,KAAK,WACR;AAEF,SACG,MAAM,KAAK,QAAQ,IAClB,KAAK,cAAc,KAAK,SAAS,CAClC,IAAK;;CAIV,MAAM,sBACJ,mBACe;AACf,QAAM,KAAK,QAAQ,IACjB,KAAK,cAAc,kBAAkB,UAAU,EAC/C,kBACD;AACD,OAAK,WAAW,kBAAkB;;CAGpC,SAAS,UAAkB;AACzB,SAAO,GAAG,KAAK,UAAU,SAAS,CAAC;;CAGrC,MAAM,SAA2C;AAC/C,MAAI,CAAC,KAAK,WACR;AAEF,SACG,MAAM,KAAK,QAAQ,IAAiB,KAAK,SAAS,KAAK,SAAS,CAAC,IAClE;;CAIJ,MAAM,WAAW,QAAoC;AACnD,QAAM,KAAK,QAAQ,IAAI,KAAK,SAAS,KAAK,SAAS,EAAE,OAAO;;CAG9D,IAAI,UAAU;AACZ,SAAO,KAAK;;;;;;CAOd,MAAM,wBAAwB,SAA6B;EAEzD,MAAM,aAAa,QAAQ;AAC3B,UAAQ,aAAa,IAAI,SAAS,WAAW;AAC7C,OAAK,YAAY,QAAQ,UAAU;;CAGrC,gBAAgB,UAAkB;AAChC,SAAO,GAAG,KAAK,UAAU,SAAS,CAAC;;CAGrC,MAAM,iBAAiB,UAAiC;EACtD,MAAM,MAAM,KAAK,gBAAgB,KAAK,SAAS;AAI/C,MADiB,MAAM,KAAK,QAAQ,IAAY,IAAI,CAElD;AAGF,QAAM,KAAK,QAAQ,IAAI,KAAK,SAAS;;CAGvC,MAAM,eAAgC;EACpC,MAAM,eAAe,MAAM,KAAK,QAAQ,IACtC,KAAK,gBAAgB,KAAK,SAAS,CACpC;AACD,MAAI,CAAC,aACH,OAAM,IAAI,MAAM,yBAAyB;AAE3C,SAAO"}
@@ -51,5 +51,5 @@ declare class DurableObjectOAuthClientProvider implements AgentsOAuthProvider {
51
51
  codeVerifier(): Promise<string>;
52
52
  }
53
53
  //#endregion
54
- export { AgentsOAuthProvider, DurableObjectOAuthClientProvider };
55
- //# sourceMappingURL=do-oauth-client-provider-CCwGwnrA.d.ts.map
54
+ export { DurableObjectOAuthClientProvider as n, AgentsOAuthProvider as t };
55
+ //# sourceMappingURL=do-oauth-client-provider-DGc5pP0l.d.ts.map
@@ -1,13 +1,10 @@
1
1
  import {
2
- BaseTransportType,
3
- MCPClientManager,
4
- MCPConnectionState,
5
- MaybePromise,
6
- ServeOptions,
7
- TransportType
8
- } from "./client-C-nwz-3N.js";
9
- import { Observability } from "./index-W4JUkafc.js";
10
- import { MessageType } from "./ai-types-BWW4umHY.js";
2
+ a as MCPConnectionState,
3
+ l as TransportType,
4
+ t as MCPClientManager
5
+ } from "./client-B17XUTV7.js";
6
+ import { t as Observability } from "./index-DhJCaDWd.js";
7
+ import { n as MessageType } from "./ai-types-D5YoPrBZ.js";
11
8
  import {
12
9
  Connection,
13
10
  Connection as Connection$1,
@@ -18,169 +15,15 @@ import {
18
15
  } from "partyserver";
19
16
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
20
17
  import {
21
- ElicitRequest as ElicitRequest$1,
22
- ElicitRequestSchema as ElicitRequestSchema$1,
23
- ElicitResult,
24
- ElicitResult as ElicitResult$1,
25
- JSONRPCMessage,
26
18
  Prompt,
27
19
  Resource,
28
20
  ServerCapabilities,
29
21
  Tool
30
22
  } from "@modelcontextprotocol/sdk/types.js";
31
23
  import { env } from "cloudflare:workers";
32
- import { Server as Server$1 } from "@modelcontextprotocol/sdk/server/index.js";
33
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
34
- import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
35
24
 
36
- //#region src/mcp/worker-transport.d.ts
37
- interface WorkerTransportOptions {
38
- sessionIdGenerator?: () => string;
39
- enableJsonResponse?: boolean;
40
- onsessioninitialized?: (sessionId: string) => void;
41
- }
42
- declare class WorkerTransport implements Transport {
43
- private started;
44
- private initialized;
45
- private sessionIdGenerator?;
46
- private enableJsonResponse;
47
- private onsessioninitialized?;
48
- private standaloneSseStreamId;
49
- private streamMapping;
50
- private requestToStreamMapping;
51
- private requestResponseMap;
52
- sessionId?: string;
53
- onclose?: () => void;
54
- onerror?: (error: Error) => void;
55
- onmessage?: (message: JSONRPCMessage) => void;
56
- constructor(options?: WorkerTransportOptions);
57
- start(): Promise<void>;
58
- handleRequest(request: Request, parsedBody?: unknown): Promise<Response>;
59
- private handleGetRequest;
60
- private handlePostRequest;
61
- private handleDeleteRequest;
62
- private handleOptionsRequest;
63
- private handleUnsupportedRequest;
64
- private validateSession;
65
- close(): Promise<void>;
66
- send(message: JSONRPCMessage): Promise<void>;
67
- }
68
- //#endregion
69
- //#region src/mcp/handler.d.ts
70
- interface CreateMcpHandlerOptions extends WorkerTransportOptions {
71
- /**
72
- * The route path that this MCP handler should respond to.
73
- * If specified, the handler will only process requests that match this route.
74
- * @default "/mcp"
75
- */
76
- route?: string;
77
- }
78
- type OAuthExecutionContext = ExecutionContext & {
79
- props?: Record<string, unknown>;
80
- };
81
- declare function experimental_createMcpHandler(
82
- server: McpServer | Server$1,
83
- options?: CreateMcpHandlerOptions
84
- ): (request: Request, env: unknown, ctx: ExecutionContext) => Promise<Response>;
85
- //#endregion
86
- //#region src/mcp/auth-context.d.ts
87
- interface McpAuthContext {
88
- props: Record<string, unknown>;
89
- }
90
- declare function getMcpAuthContext(): McpAuthContext | undefined;
91
- //#endregion
92
- //#region src/mcp/index.d.ts
93
- declare abstract class McpAgent<
94
- Env = unknown,
95
- State = unknown,
96
- Props extends Record<string, unknown> = Record<string, unknown>
97
- > extends Agent<Env, State, Props> {
98
- private _transport?;
99
- props?: Props;
100
- abstract server: MaybePromise<McpServer | Server$1>;
101
- abstract init(): Promise<void>;
102
- setInitializeRequest(initializeRequest: JSONRPCMessage): Promise<void>;
103
- getInitializeRequest(): Promise<JSONRPCMessage | undefined>;
104
- /** Read the transport type for this agent.
105
- * This relies on the naming scheme being `sse:${sessionId}`
106
- * or `streamable-http:${sessionId}`.
107
- */
108
- getTransportType(): BaseTransportType;
109
- /** Read the sessionId for this agent.
110
- * This relies on the naming scheme being `sse:${sessionId}`
111
- * or `streamable-http:${sessionId}`.
112
- */
113
- getSessionId(): string;
114
- /** Get the unique WebSocket. SSE transport only. */
115
- private getWebSocket;
116
- /** Returns a new transport matching the type of the Agent. */
117
- private initTransport;
118
- /** Update and store the props */
119
- updateProps(props?: Props): Promise<void>;
120
- reinitializeServer(): Promise<void>;
121
- /** Sets up the MCP transport and server every time the Agent is started.*/
122
- onStart(props?: Props): Promise<void>;
123
- /** Validates new WebSocket connections. */
124
- onConnect(
125
- conn: Connection$1,
126
- { request: req }: ConnectionContext
127
- ): Promise<void>;
128
- /** Handles MCP Messages for the legacy SSE transport. */
129
- onSSEMcpMessage(
130
- _sessionId: string,
131
- messageBody: unknown
132
- ): Promise<Error | null>;
133
- /** Elicit user input with a message and schema */
134
- elicitInput(params: {
135
- message: string;
136
- requestedSchema: unknown;
137
- }): Promise<ElicitResult>;
138
- /** Wait for elicitation response through storage polling */
139
- private _waitForElicitationResponse;
140
- /** Handle elicitation responses */
141
- private _handleElicitationResponse;
142
- /** Return a handler for the given path for this MCP.
143
- * Defaults to Streamable HTTP transport.
144
- */
145
- static serve(
146
- path: string,
147
- { binding, corsOptions, transport }?: ServeOptions
148
- ): {
149
- fetch<Env>(
150
- this: void,
151
- request: Request,
152
- env: Env,
153
- ctx: ExecutionContext
154
- ): Promise<Response>;
155
- };
156
- /**
157
- * Legacy api
158
- **/
159
- static mount(
160
- path: string,
161
- opts?: Omit<ServeOptions, "transport">
162
- ): {
163
- fetch<Env>(
164
- this: void,
165
- request: Request,
166
- env: Env,
167
- ctx: ExecutionContext
168
- ): Promise<Response>;
169
- };
170
- static serveSSE(
171
- path: string,
172
- opts?: Omit<ServeOptions, "transport">
173
- ): {
174
- fetch<Env>(
175
- this: void,
176
- request: Request,
177
- env: Env,
178
- ctx: ExecutionContext
179
- ): Promise<Response>;
180
- };
181
- }
182
- //#endregion
183
25
  //#region src/index.d.ts
26
+
184
27
  /**
185
28
  * RPC request message from client
186
29
  */
@@ -244,9 +87,9 @@ declare function callable(
244
87
  * @param metadata Optional metadata about the callable method
245
88
  */
246
89
  declare const unstable_callable: (metadata?: CallableMetadata) => void;
247
- type QueueItem<T = string> = {
90
+ type QueueItem<T$1 = string> = {
248
91
  id: string;
249
- payload: T;
92
+ payload: T$1;
250
93
  callback: keyof Agent<unknown>;
251
94
  created_at: number;
252
95
  };
@@ -254,13 +97,13 @@ type QueueItem<T = string> = {
254
97
  * Represents a scheduled task within an Agent
255
98
  * @template T Type of the payload data
256
99
  */
257
- type Schedule<T = string> = {
100
+ type Schedule<T$1 = string> = {
258
101
  /** Unique identifier for the schedule */
259
102
  id: string;
260
103
  /** Name of the method to be called */
261
104
  callback: string;
262
105
  /** Data to be passed to the callback */
263
- payload: T;
106
+ payload: T$1;
264
107
  } & (
265
108
  | {
266
109
  /** Type of schedule for one-time execution at a specific time */
@@ -309,9 +152,9 @@ type MCPServer = {
309
152
  capabilities: ServerCapabilities | null;
310
153
  };
311
154
  declare function getCurrentAgent<
312
- T extends Agent<unknown, unknown> = Agent<unknown, unknown>
155
+ T$1 extends Agent<unknown, unknown> = Agent<unknown, unknown>
313
156
  >(): {
314
- agent: T | undefined;
157
+ agent: T$1 | undefined;
315
158
  connection: Connection | undefined;
316
159
  request: Request | undefined;
317
160
  email: AgentEmail | undefined;
@@ -328,6 +171,7 @@ declare class Agent<
328
171
  > extends Server<Env, Props> {
329
172
  private _state;
330
173
  private _disposables;
174
+ private _mcpStateRestored;
331
175
  private _ParentClass;
332
176
  readonly mcp: MCPClientManager;
333
177
  /**
@@ -503,6 +347,7 @@ declare class Agent<
503
347
  * @returns A map of method names to their metadata
504
348
  */
505
349
  private _isCallable;
350
+ private _ensureMcpStateRestored;
506
351
  /**
507
352
  * Connect to a new MCP Server
508
353
  *
@@ -529,16 +374,6 @@ declare class Agent<
529
374
  id: string;
530
375
  authUrl: string | undefined;
531
376
  }>;
532
- /**
533
- * Handle potential OAuth callback requests after DO hibernation.
534
- * Detects OAuth callbacks, restores state from database, and processes the callback.
535
- * Returns a Response if this was an OAuth callback, otherwise returns undefined.
536
- */
537
- private _handlePotentialOAuthCallback;
538
- /**
539
- * Process an OAuth callback request (assumes state is already restored)
540
- */
541
- private _processOAuthCallback;
542
377
  private _connectToMcpServerInternal;
543
378
  removeMcpServer(id: string): Promise<void>;
544
379
  getMcpServers(): MCPServersState;
@@ -659,17 +494,17 @@ type EmailSendOptions = {
659
494
  */
660
495
  declare function getAgentByName<
661
496
  Env,
662
- T extends Agent<Env>,
497
+ T$1 extends Agent<Env>,
663
498
  Props extends Record<string, unknown> = Record<string, unknown>
664
499
  >(
665
- namespace: AgentNamespace<T>,
500
+ namespace: AgentNamespace<T$1>,
666
501
  name: string,
667
502
  options?: {
668
503
  jurisdiction?: DurableObjectJurisdiction;
669
504
  locationHint?: DurableObjectLocationHint;
670
505
  props?: Props;
671
506
  }
672
- ): Promise<DurableObjectStub<T>>;
507
+ ): Promise<DurableObjectStub<T$1>>;
673
508
  /**
674
509
  * A wrapper for streaming responses in callable methods
675
510
  */
@@ -691,46 +526,35 @@ declare class StreamingResponse {
691
526
  }
692
527
  //#endregion
693
528
  export {
694
- Agent,
695
- AgentContext,
696
- AgentEmail,
697
- AgentNamespace,
698
- AgentOptions,
699
- CallableMetadata,
700
- type Connection$1 as Connection,
701
- type ConnectionContext,
702
- type CreateMcpHandlerOptions,
703
- type ElicitRequest$1 as ElicitRequest,
704
- ElicitRequestSchema$1 as ElicitRequestSchema,
705
- type ElicitResult$1 as ElicitResult,
706
- EmailResolver,
707
- EmailRoutingOptions,
708
- EmailSendOptions,
709
- MCPServer,
710
- MCPServerMessage,
711
- MCPServersState,
712
- McpAgent,
713
- type McpAuthContext,
714
- type OAuthExecutionContext,
715
- QueueItem,
716
- RPCRequest,
717
- RPCResponse,
718
- Schedule,
719
- StateUpdateMessage,
720
- StreamingResponse,
721
- type WSMessage,
722
- WorkerTransport,
723
- type WorkerTransportOptions,
724
- callable,
725
- createAddressBasedEmailResolver,
726
- createCatchAllEmailResolver,
727
- createHeaderBasedEmailResolver,
728
- experimental_createMcpHandler,
729
- getAgentByName,
730
- getCurrentAgent,
731
- getMcpAuthContext,
732
- routeAgentEmail,
733
- routeAgentRequest,
734
- unstable_callable
529
+ unstable_callable as A,
530
+ createAddressBasedEmailResolver as C,
531
+ getCurrentAgent as D,
532
+ getAgentByName as E,
533
+ routeAgentEmail as O,
534
+ callable as S,
535
+ createHeaderBasedEmailResolver as T,
536
+ RPCResponse as _,
537
+ AgentOptions as a,
538
+ StreamingResponse as b,
539
+ ConnectionContext as c,
540
+ EmailSendOptions as d,
541
+ MCPServer as f,
542
+ RPCRequest as g,
543
+ QueueItem as h,
544
+ AgentNamespace as i,
545
+ routeAgentRequest as k,
546
+ EmailResolver as l,
547
+ MCPServersState as m,
548
+ AgentContext as n,
549
+ CallableMetadata as o,
550
+ MCPServerMessage as p,
551
+ AgentEmail as r,
552
+ Connection$1 as s,
553
+ Agent as t,
554
+ EmailRoutingOptions as u,
555
+ Schedule as v,
556
+ createCatchAllEmailResolver as w,
557
+ WSMessage as x,
558
+ StateUpdateMessage as y
735
559
  };
736
- //# sourceMappingURL=index-DWJSBMbz.d.ts.map
560
+ //# sourceMappingURL=index-B6MjW6n-.d.ts.map
@@ -1,4 +1,4 @@
1
- import { BaseEvent, MCPObservabilityEvent } from "./mcp-BEwaCsxO.js";
1
+ import { n as BaseEvent, t as MCPObservabilityEvent } from "./mcp-Dw5vDrY8.js";
2
2
 
3
3
  //#region src/observability/agent.d.ts
4
4
 
@@ -50,5 +50,9 @@ interface Observability {
50
50
  */
51
51
  declare const genericObservability: Observability;
52
52
  //#endregion
53
- export { Observability, ObservabilityEvent, genericObservability };
54
- //# sourceMappingURL=index-W4JUkafc.d.ts.map
53
+ export {
54
+ ObservabilityEvent as n,
55
+ genericObservability as r,
56
+ Observability as t
57
+ };
58
+ //# sourceMappingURL=index-DhJCaDWd.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,47 +1,40 @@
1
- import { TransportType } from "./client-C-nwz-3N.js";
2
- import "./mcp-BEwaCsxO.js";
3
- import "./do-oauth-client-provider-CCwGwnrA.js";
4
- import "./index-W4JUkafc.js";
5
- import "./ai-types-BWW4umHY.js";
1
+ import { l as TransportType } from "./client-B17XUTV7.js";
2
+ import "./mcp-Dw5vDrY8.js";
3
+ import "./do-oauth-client-provider-DGc5pP0l.js";
4
+ import "./index-DhJCaDWd.js";
5
+ import "./ai-types-D5YoPrBZ.js";
6
6
  import {
7
- Agent,
8
- AgentContext,
9
- AgentEmail,
10
- AgentNamespace,
11
- AgentOptions,
12
- CallableMetadata,
13
- Connection,
14
- ConnectionContext,
15
- CreateMcpHandlerOptions,
16
- EmailResolver,
17
- EmailRoutingOptions,
18
- EmailSendOptions,
19
- MCPServer,
20
- MCPServerMessage,
21
- MCPServersState,
22
- McpAuthContext,
23
- OAuthExecutionContext,
24
- QueueItem,
25
- RPCRequest,
26
- RPCResponse,
27
- Schedule,
28
- StateUpdateMessage,
29
- StreamingResponse,
30
- WSMessage,
31
- WorkerTransport,
32
- WorkerTransportOptions,
33
- callable,
34
- createAddressBasedEmailResolver,
35
- createCatchAllEmailResolver,
36
- createHeaderBasedEmailResolver,
37
- experimental_createMcpHandler,
38
- getAgentByName,
39
- getCurrentAgent,
40
- getMcpAuthContext,
41
- routeAgentEmail,
42
- routeAgentRequest,
43
- unstable_callable
44
- } from "./index-DWJSBMbz.js";
7
+ A as unstable_callable,
8
+ C as createAddressBasedEmailResolver,
9
+ D as getCurrentAgent,
10
+ E as getAgentByName,
11
+ O as routeAgentEmail,
12
+ S as callable,
13
+ T as createHeaderBasedEmailResolver,
14
+ _ as RPCResponse,
15
+ a as AgentOptions,
16
+ b as StreamingResponse,
17
+ c as ConnectionContext,
18
+ d as EmailSendOptions,
19
+ f as MCPServer,
20
+ g as RPCRequest,
21
+ h as QueueItem,
22
+ i as AgentNamespace,
23
+ k as routeAgentRequest,
24
+ l as EmailResolver,
25
+ m as MCPServersState,
26
+ n as AgentContext,
27
+ o as CallableMetadata,
28
+ p as MCPServerMessage,
29
+ r as AgentEmail,
30
+ s as Connection,
31
+ t as Agent,
32
+ u as EmailRoutingOptions,
33
+ v as Schedule,
34
+ w as createCatchAllEmailResolver,
35
+ x as WSMessage,
36
+ y as StateUpdateMessage
37
+ } from "./index-B6MjW6n-.js";
45
38
  export {
46
39
  Agent,
47
40
  AgentContext,
@@ -51,15 +44,12 @@ export {
51
44
  CallableMetadata,
52
45
  Connection,
53
46
  ConnectionContext,
54
- CreateMcpHandlerOptions,
55
47
  EmailResolver,
56
48
  EmailRoutingOptions,
57
49
  EmailSendOptions,
58
50
  MCPServer,
59
51
  MCPServerMessage,
60
52
  MCPServersState,
61
- McpAuthContext,
62
- OAuthExecutionContext,
63
53
  QueueItem,
64
54
  RPCRequest,
65
55
  RPCResponse,
@@ -68,16 +58,12 @@ export {
68
58
  StreamingResponse,
69
59
  TransportType,
70
60
  WSMessage,
71
- WorkerTransport,
72
- WorkerTransportOptions,
73
61
  callable,
74
62
  createAddressBasedEmailResolver,
75
63
  createCatchAllEmailResolver,
76
64
  createHeaderBasedEmailResolver,
77
- experimental_createMcpHandler,
78
65
  getAgentByName,
79
66
  getCurrentAgent,
80
- getMcpAuthContext,
81
67
  routeAgentEmail,
82
68
  routeAgentRequest,
83
69
  unstable_callable