agents 0.2.28 → 0.2.30

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 (55) hide show
  1. package/dist/ai-chat-agent.d.ts +7 -6
  2. package/dist/ai-chat-agent.js +34 -26
  3. package/dist/ai-chat-agent.js.map +1 -1
  4. package/dist/{ai-chat-v5-migration-BSiGZmYU.js → ai-chat-v5-migration-DguhuLKF.js} +1 -1
  5. package/dist/{ai-chat-v5-migration-BSiGZmYU.js.map → ai-chat-v5-migration-DguhuLKF.js.map} +1 -1
  6. package/dist/ai-chat-v5-migration.js +1 -1
  7. package/dist/ai-react.d.ts +10 -9
  8. package/dist/ai-react.js +1 -1
  9. package/dist/{ai-types-CrMqkwc_.js → ai-types-CwgHzwUb.js} +1 -1
  10. package/dist/{ai-types-CrMqkwc_.js.map → ai-types-CwgHzwUb.js.map} +1 -1
  11. package/dist/{ai-types-81H_-Uxh.d.ts → ai-types-D_hTbf25.d.ts} +1 -1
  12. package/dist/ai-types.d.ts +1 -1
  13. package/dist/ai-types.js +1 -1
  14. package/dist/{client-B3SR12TQ.js → client-CcyhkGfN.js} +2 -2
  15. package/dist/{client-B3SR12TQ.js.map → client-CcyhkGfN.js.map} +1 -1
  16. package/dist/{client-BAQA84dr.d.ts → client-ClORm6f0.d.ts} +2 -2
  17. package/dist/{client-BuMCPgvv.d.ts → client-DfIOsabL.d.ts} +3 -3
  18. package/dist/{client-BqdCHvCQ.js → client-QZa2Rq0l.js} +2 -2
  19. package/dist/{client-BqdCHvCQ.js.map → client-QZa2Rq0l.js.map} +1 -1
  20. package/dist/client.d.ts +2 -2
  21. package/dist/client.js +2 -2
  22. package/dist/codemode/ai.js +6 -5
  23. package/dist/codemode/ai.js.map +1 -1
  24. package/dist/context-BkKbAa1R.js +8 -0
  25. package/dist/context-BkKbAa1R.js.map +1 -0
  26. package/dist/context-_sPQqJWv.d.ts +24 -0
  27. package/dist/context.d.ts +6 -0
  28. package/dist/context.js +3 -0
  29. package/dist/{do-oauth-client-provider-CJ9YuMVT.d.ts → do-oauth-client-provider-B-ryFIPr.d.ts} +1 -1
  30. package/dist/{do-oauth-client-provider-CnDheVho.js → do-oauth-client-provider-B1fVIshX.js} +1 -1
  31. package/dist/{do-oauth-client-provider-CnDheVho.js.map → do-oauth-client-provider-B1fVIshX.js.map} +1 -1
  32. package/dist/{index-BUle9RiP.d.ts → index-CyDpAVHZ.d.ts} +2 -2
  33. package/dist/{index-D_tyky7R.d.ts → index-DPJ32qQn.d.ts} +32 -42
  34. package/dist/index.d.ts +34 -34
  35. package/dist/index.js +6 -5
  36. package/dist/mcp/client.d.ts +3 -3
  37. package/dist/mcp/client.js +2 -2
  38. package/dist/mcp/do-oauth-client-provider.d.ts +1 -1
  39. package/dist/mcp/do-oauth-client-provider.js +1 -1
  40. package/dist/mcp/index.d.ts +7 -6
  41. package/dist/mcp/index.js +37 -14
  42. package/dist/mcp/index.js.map +1 -1
  43. package/dist/{mcp-BwPscEiF.d.ts → mcp-CzbSsLfc.d.ts} +1 -1
  44. package/dist/observability/index.d.ts +2 -2
  45. package/dist/observability/index.js +6 -5
  46. package/dist/{react-rMtTc0Ef.d.ts → react-DTzwSLAh.d.ts} +29 -5
  47. package/dist/react.d.ts +15 -10
  48. package/dist/react.js +10 -3
  49. package/dist/react.js.map +1 -1
  50. package/dist/{serializable-faDkMCai.d.ts → serializable-C4GLimgv.d.ts} +1 -1
  51. package/dist/serializable.d.ts +1 -1
  52. package/dist/{src-DYN-ccro.js → src-BmbDclOA.js} +6 -7
  53. package/dist/src-BmbDclOA.js.map +1 -0
  54. package/package.json +1 -1
  55. package/dist/src-DYN-ccro.js.map +0 -1
@@ -0,0 +1,24 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { Connection } from "partyserver";
3
+
4
+ //#region src/context.d.ts
5
+ type AgentEmail = {
6
+ from: string;
7
+ to: string;
8
+ getRaw: () => Promise<Uint8Array>;
9
+ headers: Headers;
10
+ rawSize: number;
11
+ setReject: (reason: string) => void;
12
+ forward: (rcptTo: string, headers?: Headers) => Promise<void>;
13
+ reply: (options: { from: string; to: string; raw: string }) => Promise<void>;
14
+ };
15
+ type AgentContextStore = {
16
+ agent: unknown;
17
+ connection: Connection | undefined;
18
+ request: Request | undefined;
19
+ email: AgentEmail | undefined;
20
+ };
21
+ declare const agentContext: AsyncLocalStorage<AgentContextStore>;
22
+ //#endregion
23
+ export { AgentEmail as n, agentContext as r, AgentContextStore as t };
24
+ //# sourceMappingURL=context-_sPQqJWv.d.ts.map
@@ -0,0 +1,6 @@
1
+ import {
2
+ n as AgentEmail,
3
+ r as agentContext,
4
+ t as AgentContextStore
5
+ } from "./context-_sPQqJWv.js";
6
+ export { AgentContextStore, AgentEmail, agentContext };
@@ -0,0 +1,3 @@
1
+ import { t as agentContext } from "./context-BkKbAa1R.js";
2
+
3
+ export { agentContext };
@@ -67,4 +67,4 @@ declare class DurableObjectOAuthClientProvider implements AgentsOAuthProvider {
67
67
  }
68
68
  //#endregion
69
69
  export { DurableObjectOAuthClientProvider as n, AgentsOAuthProvider as t };
70
- //# sourceMappingURL=do-oauth-client-provider-CJ9YuMVT.d.ts.map
70
+ //# sourceMappingURL=do-oauth-client-provider-B-ryFIPr.d.ts.map
@@ -152,4 +152,4 @@ var DurableObjectOAuthClientProvider = class {
152
152
 
153
153
  //#endregion
154
154
  export { DurableObjectOAuthClientProvider as t };
155
- //# sourceMappingURL=do-oauth-client-provider-CnDheVho.js.map
155
+ //# sourceMappingURL=do-oauth-client-provider-B1fVIshX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"do-oauth-client-provider-CnDheVho.js","names":["storage: DurableObjectStorage","clientName: string","baseRedirectUrl: string","storedState: StoredState","deleteKeys: 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\nconst STATE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\n\ninterface StoredState {\n nonce: string;\n serverId: string;\n createdAt: number;\n}\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 checkState(\n state: string\n ): Promise<{ valid: boolean; serverId?: string; error?: string }>;\n consumeState(state: string): Promise<void>;\n deleteCodeVerifier(): Promise<void>;\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 if (!storage) {\n throw new Error(\n \"DurableObjectOAuthClientProvider requires a valid DurableObjectStorage instance\"\n );\n }\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;\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 stateKey(nonce: string) {\n return `/${this.clientName}/${this.serverId}/state/${nonce}`;\n }\n\n async state(): Promise<string> {\n const nonce = nanoid();\n const state = `${nonce}.${this.serverId}`;\n const storedState: StoredState = {\n nonce,\n serverId: this.serverId,\n createdAt: Date.now()\n };\n await this.storage.put(this.stateKey(nonce), storedState);\n return state;\n }\n\n async checkState(\n state: string\n ): Promise<{ valid: boolean; serverId?: string; error?: string }> {\n const parts = state.split(\".\");\n if (parts.length !== 2) {\n return { valid: false, error: \"Invalid state format\" };\n }\n\n const [nonce, serverId] = parts;\n const key = this.stateKey(nonce);\n const storedState = await this.storage.get<StoredState>(key);\n\n if (!storedState) {\n return { valid: false, error: \"State not found or already used\" };\n }\n\n if (storedState.serverId !== serverId) {\n await this.storage.delete(key);\n return { valid: false, error: \"State serverId mismatch\" };\n }\n\n const age = Date.now() - storedState.createdAt;\n if (age > STATE_EXPIRATION_MS) {\n await this.storage.delete(key);\n return { valid: false, error: \"State expired\" };\n }\n\n return { valid: true, serverId };\n }\n\n async consumeState(state: string): Promise<void> {\n const parts = state.split(\".\");\n if (parts.length !== 2) {\n // This should never happen since checkState validates format first.\n // Log for debugging but don't throw - state consumption is best-effort.\n console.warn(\n `[OAuth] consumeState called with invalid state format: ${state.substring(0, 20)}...`\n );\n return;\n }\n const [nonce] = parts;\n await this.storage.delete(this.stateKey(nonce));\n }\n\n async redirectToAuthorization(authUrl: URL): Promise<void> {\n this._authUrl_ = authUrl.toString();\n }\n\n async invalidateCredentials(\n scope: \"all\" | \"client\" | \"tokens\" | \"verifier\"\n ): Promise<void> {\n if (!this._clientId_) return;\n\n const deleteKeys: string[] = [];\n\n if (scope === \"all\" || scope === \"client\") {\n deleteKeys.push(this.clientInfoKey(this.clientId));\n }\n if (scope === \"all\" || scope === \"tokens\") {\n deleteKeys.push(this.tokenKey(this.clientId));\n }\n if (scope === \"all\" || scope === \"verifier\") {\n deleteKeys.push(this.codeVerifierKey(this.clientId));\n }\n\n if (deleteKeys.length > 0) {\n await this.storage.delete(deleteKeys);\n }\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 async deleteCodeVerifier(): Promise<void> {\n await this.storage.delete(this.codeVerifierKey(this.clientId));\n }\n}\n"],"mappings":";;;AASA,MAAM,sBAAsB,MAAU;AAqBtC,IAAa,mCAAb,MAA6E;CAK3E,YACE,AAAOA,SACP,AAAOC,YACP,AAAOC,iBACP;EAHO;EACA;EACA;AAEP,MAAI,CAAC,QACH,OAAM,IAAI,MACR,kFACD;;CAIL,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,KAAK;;CAGd,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;;CAGd,SAAS,OAAe;AACtB,SAAO,IAAI,KAAK,WAAW,GAAG,KAAK,SAAS,SAAS;;CAGvD,MAAM,QAAyB;EAC7B,MAAM,QAAQ,QAAQ;EACtB,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK;EAC/B,MAAMC,cAA2B;GAC/B;GACA,UAAU,KAAK;GACf,WAAW,KAAK,KAAK;GACtB;AACD,QAAM,KAAK,QAAQ,IAAI,KAAK,SAAS,MAAM,EAAE,YAAY;AACzD,SAAO;;CAGT,MAAM,WACJ,OACgE;EAChE,MAAM,QAAQ,MAAM,MAAM,IAAI;AAC9B,MAAI,MAAM,WAAW,EACnB,QAAO;GAAE,OAAO;GAAO,OAAO;GAAwB;EAGxD,MAAM,CAAC,OAAO,YAAY;EAC1B,MAAM,MAAM,KAAK,SAAS,MAAM;EAChC,MAAM,cAAc,MAAM,KAAK,QAAQ,IAAiB,IAAI;AAE5D,MAAI,CAAC,YACH,QAAO;GAAE,OAAO;GAAO,OAAO;GAAmC;AAGnE,MAAI,YAAY,aAAa,UAAU;AACrC,SAAM,KAAK,QAAQ,OAAO,IAAI;AAC9B,UAAO;IAAE,OAAO;IAAO,OAAO;IAA2B;;AAI3D,MADY,KAAK,KAAK,GAAG,YAAY,YAC3B,qBAAqB;AAC7B,SAAM,KAAK,QAAQ,OAAO,IAAI;AAC9B,UAAO;IAAE,OAAO;IAAO,OAAO;IAAiB;;AAGjD,SAAO;GAAE,OAAO;GAAM;GAAU;;CAGlC,MAAM,aAAa,OAA8B;EAC/C,MAAM,QAAQ,MAAM,MAAM,IAAI;AAC9B,MAAI,MAAM,WAAW,GAAG;AAGtB,WAAQ,KACN,0DAA0D,MAAM,UAAU,GAAG,GAAG,CAAC,KAClF;AACD;;EAEF,MAAM,CAAC,SAAS;AAChB,QAAM,KAAK,QAAQ,OAAO,KAAK,SAAS,MAAM,CAAC;;CAGjD,MAAM,wBAAwB,SAA6B;AACzD,OAAK,YAAY,QAAQ,UAAU;;CAGrC,MAAM,sBACJ,OACe;AACf,MAAI,CAAC,KAAK,WAAY;EAEtB,MAAMC,aAAuB,EAAE;AAE/B,MAAI,UAAU,SAAS,UAAU,SAC/B,YAAW,KAAK,KAAK,cAAc,KAAK,SAAS,CAAC;AAEpD,MAAI,UAAU,SAAS,UAAU,SAC/B,YAAW,KAAK,KAAK,SAAS,KAAK,SAAS,CAAC;AAE/C,MAAI,UAAU,SAAS,UAAU,WAC/B,YAAW,KAAK,KAAK,gBAAgB,KAAK,SAAS,CAAC;AAGtD,MAAI,WAAW,SAAS,EACtB,OAAM,KAAK,QAAQ,OAAO,WAAW;;CAIzC,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;;CAGT,MAAM,qBAAoC;AACxC,QAAM,KAAK,QAAQ,OAAO,KAAK,gBAAgB,KAAK,SAAS,CAAC"}
1
+ {"version":3,"file":"do-oauth-client-provider-B1fVIshX.js","names":["storage: DurableObjectStorage","clientName: string","baseRedirectUrl: string","storedState: StoredState","deleteKeys: 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\nconst STATE_EXPIRATION_MS = 10 * 60 * 1000; // 10 minutes\n\ninterface StoredState {\n nonce: string;\n serverId: string;\n createdAt: number;\n}\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 checkState(\n state: string\n ): Promise<{ valid: boolean; serverId?: string; error?: string }>;\n consumeState(state: string): Promise<void>;\n deleteCodeVerifier(): Promise<void>;\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 if (!storage) {\n throw new Error(\n \"DurableObjectOAuthClientProvider requires a valid DurableObjectStorage instance\"\n );\n }\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;\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 stateKey(nonce: string) {\n return `/${this.clientName}/${this.serverId}/state/${nonce}`;\n }\n\n async state(): Promise<string> {\n const nonce = nanoid();\n const state = `${nonce}.${this.serverId}`;\n const storedState: StoredState = {\n nonce,\n serverId: this.serverId,\n createdAt: Date.now()\n };\n await this.storage.put(this.stateKey(nonce), storedState);\n return state;\n }\n\n async checkState(\n state: string\n ): Promise<{ valid: boolean; serverId?: string; error?: string }> {\n const parts = state.split(\".\");\n if (parts.length !== 2) {\n return { valid: false, error: \"Invalid state format\" };\n }\n\n const [nonce, serverId] = parts;\n const key = this.stateKey(nonce);\n const storedState = await this.storage.get<StoredState>(key);\n\n if (!storedState) {\n return { valid: false, error: \"State not found or already used\" };\n }\n\n if (storedState.serverId !== serverId) {\n await this.storage.delete(key);\n return { valid: false, error: \"State serverId mismatch\" };\n }\n\n const age = Date.now() - storedState.createdAt;\n if (age > STATE_EXPIRATION_MS) {\n await this.storage.delete(key);\n return { valid: false, error: \"State expired\" };\n }\n\n return { valid: true, serverId };\n }\n\n async consumeState(state: string): Promise<void> {\n const parts = state.split(\".\");\n if (parts.length !== 2) {\n // This should never happen since checkState validates format first.\n // Log for debugging but don't throw - state consumption is best-effort.\n console.warn(\n `[OAuth] consumeState called with invalid state format: ${state.substring(0, 20)}...`\n );\n return;\n }\n const [nonce] = parts;\n await this.storage.delete(this.stateKey(nonce));\n }\n\n async redirectToAuthorization(authUrl: URL): Promise<void> {\n this._authUrl_ = authUrl.toString();\n }\n\n async invalidateCredentials(\n scope: \"all\" | \"client\" | \"tokens\" | \"verifier\"\n ): Promise<void> {\n if (!this._clientId_) return;\n\n const deleteKeys: string[] = [];\n\n if (scope === \"all\" || scope === \"client\") {\n deleteKeys.push(this.clientInfoKey(this.clientId));\n }\n if (scope === \"all\" || scope === \"tokens\") {\n deleteKeys.push(this.tokenKey(this.clientId));\n }\n if (scope === \"all\" || scope === \"verifier\") {\n deleteKeys.push(this.codeVerifierKey(this.clientId));\n }\n\n if (deleteKeys.length > 0) {\n await this.storage.delete(deleteKeys);\n }\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 async deleteCodeVerifier(): Promise<void> {\n await this.storage.delete(this.codeVerifierKey(this.clientId));\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { n as BaseEvent, t as MCPObservabilityEvent } from "./mcp-BwPscEiF.js";
1
+ import { n as BaseEvent, t as MCPObservabilityEvent } from "./mcp-CzbSsLfc.js";
2
2
 
3
3
  //#region src/observability/agent.d.ts
4
4
 
@@ -55,4 +55,4 @@ export {
55
55
  genericObservability as r,
56
56
  Observability as t
57
57
  };
58
- //# sourceMappingURL=index-BUle9RiP.d.ts.map
58
+ //# sourceMappingURL=index-CyDpAVHZ.d.ts.map
@@ -1,10 +1,11 @@
1
+ import { n as AgentEmail } from "./context-_sPQqJWv.js";
1
2
  import {
2
3
  h as TransportType,
3
4
  t as MCPClientManager,
4
5
  u as MCPConnectionState
5
- } from "./client-BuMCPgvv.js";
6
- import { t as Observability } from "./index-BUle9RiP.js";
7
- import { n as MessageType } from "./ai-types-81H_-Uxh.js";
6
+ } from "./client-DfIOsabL.js";
7
+ import { t as Observability } from "./index-CyDpAVHZ.js";
8
+ import { n as MessageType } from "./ai-types-D_hTbf25.js";
8
9
  import {
9
10
  Connection,
10
11
  Connection as Connection$1,
@@ -489,16 +490,6 @@ declare function routeAgentEmail<Env>(
489
490
  env: Env,
490
491
  options: EmailRoutingOptions<Env>
491
492
  ): Promise<void>;
492
- type AgentEmail = {
493
- from: string;
494
- to: string;
495
- getRaw: () => Promise<Uint8Array>;
496
- headers: Headers;
497
- rawSize: number;
498
- setReject: (reason: string) => void;
499
- forward: (rcptTo: string, headers?: Headers) => Promise<void>;
500
- reply: (options: { from: string; to: string; raw: string }) => Promise<void>;
501
- };
502
493
  type EmailSendOptions = {
503
494
  to: string;
504
495
  subject: string;
@@ -553,35 +544,34 @@ declare class StreamingResponse {
553
544
  }
554
545
  //#endregion
555
546
  export {
556
- unstable_callable as A,
557
- createAddressBasedEmailResolver as C,
558
- getCurrentAgent as D,
559
- getAgentByName as E,
560
- routeAgentEmail as O,
561
- callable as S,
562
- createHeaderBasedEmailResolver as T,
563
- RPCResponse as _,
564
- AgentOptions as a,
565
- StreamingResponse as b,
566
- ConnectionContext as c,
567
- EmailSendOptions as d,
568
- MCPServer as f,
569
- RPCRequest as g,
570
- QueueItem as h,
571
- AgentNamespace as i,
572
- routeAgentRequest as k,
573
- EmailResolver as l,
574
- MCPServersState as m,
547
+ createCatchAllEmailResolver as C,
548
+ routeAgentEmail as D,
549
+ getCurrentAgent as E,
550
+ routeAgentRequest as O,
551
+ createAddressBasedEmailResolver as S,
552
+ getAgentByName as T,
553
+ Schedule as _,
554
+ CallableMetadata as a,
555
+ WSMessage as b,
556
+ EmailResolver as c,
557
+ MCPServer as d,
558
+ MCPServerMessage as f,
559
+ RPCResponse as g,
560
+ RPCRequest as h,
561
+ AgentOptions as i,
562
+ unstable_callable as k,
563
+ EmailRoutingOptions as l,
564
+ QueueItem as m,
575
565
  AgentContext as n,
576
- CallableMetadata as o,
577
- MCPServerMessage as p,
578
- AgentEmail as r,
579
- Connection$1 as s,
566
+ Connection$1 as o,
567
+ MCPServersState as p,
568
+ AgentNamespace as r,
569
+ ConnectionContext as s,
580
570
  Agent as t,
581
- EmailRoutingOptions as u,
582
- Schedule as v,
583
- createCatchAllEmailResolver as w,
584
- WSMessage as x,
585
- StateUpdateMessage as y
571
+ EmailSendOptions as u,
572
+ StateUpdateMessage as v,
573
+ createHeaderBasedEmailResolver as w,
574
+ callable as x,
575
+ StreamingResponse as y
586
576
  };
587
- //# sourceMappingURL=index-D_tyky7R.d.ts.map
577
+ //# sourceMappingURL=index-DPJ32qQn.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,40 +1,40 @@
1
- import { h as TransportType } from "./client-BuMCPgvv.js";
2
- import "./mcp-BwPscEiF.js";
3
- import "./do-oauth-client-provider-CJ9YuMVT.js";
4
- import "./index-BUle9RiP.js";
5
- import "./ai-types-81H_-Uxh.js";
1
+ import { n as AgentEmail } from "./context-_sPQqJWv.js";
2
+ import { h as TransportType } from "./client-DfIOsabL.js";
3
+ import "./mcp-CzbSsLfc.js";
4
+ import "./do-oauth-client-provider-B-ryFIPr.js";
5
+ import "./index-CyDpAVHZ.js";
6
+ import "./ai-types-D_hTbf25.js";
6
7
  import {
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,
8
+ C as createCatchAllEmailResolver,
9
+ D as routeAgentEmail,
10
+ E as getCurrentAgent,
11
+ O as routeAgentRequest,
12
+ S as createAddressBasedEmailResolver,
13
+ T as getAgentByName,
14
+ _ as Schedule,
15
+ a as CallableMetadata,
16
+ b as WSMessage,
17
+ c as EmailResolver,
18
+ d as MCPServer,
19
+ f as MCPServerMessage,
20
+ g as RPCResponse,
21
+ h as RPCRequest,
22
+ i as AgentOptions,
23
+ k as unstable_callable,
24
+ l as EmailRoutingOptions,
25
+ m as QueueItem,
26
26
  n as AgentContext,
27
- o as CallableMetadata,
28
- p as MCPServerMessage,
29
- r as AgentEmail,
30
- s as Connection,
27
+ o as Connection,
28
+ p as MCPServersState,
29
+ r as AgentNamespace,
30
+ s as ConnectionContext,
31
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-D_tyky7R.js";
32
+ u as EmailSendOptions,
33
+ v as StateUpdateMessage,
34
+ w as createHeaderBasedEmailResolver,
35
+ x as callable,
36
+ y as StreamingResponse
37
+ } from "./index-DPJ32qQn.js";
38
38
  export {
39
39
  Agent,
40
40
  AgentContext,
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
- import "./ai-types-CrMqkwc_.js";
2
- import "./client-B3SR12TQ.js";
3
- import "./client-BqdCHvCQ.js";
4
- import "./do-oauth-client-provider-CnDheVho.js";
5
- import { a as createCatchAllEmailResolver, c as getCurrentAgent, d as unstable_callable, i as createAddressBasedEmailResolver, l as routeAgentEmail, n as StreamingResponse, o as createHeaderBasedEmailResolver, r as callable, s as getAgentByName, t as Agent, u as routeAgentRequest } from "./src-DYN-ccro.js";
1
+ import "./context-BkKbAa1R.js";
2
+ import "./ai-types-CwgHzwUb.js";
3
+ import "./client-CcyhkGfN.js";
4
+ import "./client-QZa2Rq0l.js";
5
+ import "./do-oauth-client-provider-B1fVIshX.js";
6
+ import { a as createCatchAllEmailResolver, c as getCurrentAgent, d as unstable_callable, i as createAddressBasedEmailResolver, l as routeAgentEmail, n as StreamingResponse, o as createHeaderBasedEmailResolver, r as callable, s as getAgentByName, t as Agent, u as routeAgentRequest } from "./src-BmbDclOA.js";
6
7
 
7
8
  export { Agent, StreamingResponse, callable, createAddressBasedEmailResolver, createCatchAllEmailResolver, createHeaderBasedEmailResolver, getAgentByName, getCurrentAgent, routeAgentEmail, routeAgentRequest, unstable_callable };
@@ -1,4 +1,4 @@
1
- import { a as MCPConnectionResult, c as RegisterServerOptions, i as MCPClientOAuthResult, l as getNamespacedData, n as MCPClientManagerOptions, o as MCPDiscoverResult, r as MCPClientOAuthCallbackConfig, s as MCPServerOptions, t as MCPClientManager } from "../client-BuMCPgvv.js";
2
- import "../mcp-BwPscEiF.js";
3
- import "../do-oauth-client-provider-CJ9YuMVT.js";
1
+ import { a as MCPConnectionResult, c as RegisterServerOptions, i as MCPClientOAuthResult, l as getNamespacedData, n as MCPClientManagerOptions, o as MCPDiscoverResult, r as MCPClientOAuthCallbackConfig, s as MCPServerOptions, t as MCPClientManager } from "../client-DfIOsabL.js";
2
+ import "../mcp-CzbSsLfc.js";
3
+ import "../do-oauth-client-provider-B-ryFIPr.js";
4
4
  export { MCPClientManager, MCPClientManagerOptions, MCPClientOAuthCallbackConfig, MCPClientOAuthResult, MCPConnectionResult, MCPDiscoverResult, MCPServerOptions, RegisterServerOptions, getNamespacedData };
@@ -1,4 +1,4 @@
1
- import { n as getNamespacedData, t as MCPClientManager } from "../client-BqdCHvCQ.js";
2
- import "../do-oauth-client-provider-CnDheVho.js";
1
+ import { n as getNamespacedData, t as MCPClientManager } from "../client-QZa2Rq0l.js";
2
+ import "../do-oauth-client-provider-B1fVIshX.js";
3
3
 
4
4
  export { MCPClientManager, getNamespacedData };
@@ -1,2 +1,2 @@
1
- import { n as DurableObjectOAuthClientProvider, t as AgentsOAuthProvider } from "../do-oauth-client-provider-CJ9YuMVT.js";
1
+ import { n as DurableObjectOAuthClientProvider, t as AgentsOAuthProvider } from "../do-oauth-client-provider-B-ryFIPr.js";
2
2
  export { AgentsOAuthProvider, DurableObjectOAuthClientProvider };
@@ -1,3 +1,3 @@
1
- import { t as DurableObjectOAuthClientProvider } from "../do-oauth-client-provider-CnDheVho.js";
1
+ import { t as DurableObjectOAuthClientProvider } from "../do-oauth-client-provider-B1fVIshX.js";
2
2
 
3
3
  export { DurableObjectOAuthClientProvider };
@@ -1,9 +1,10 @@
1
- import { a as MCPConnectionResult, d as BaseTransportType, f as CORSOptions, i as MCPClientOAuthResult, m as ServeOptions, o as MCPDiscoverResult, p as MaybePromise, r as MCPClientOAuthCallbackConfig, s as MCPServerOptions } from "../client-BuMCPgvv.js";
2
- import "../mcp-BwPscEiF.js";
3
- import "../do-oauth-client-provider-CJ9YuMVT.js";
4
- import "../index-BUle9RiP.js";
5
- import "../ai-types-81H_-Uxh.js";
6
- import { c as ConnectionContext, s as Connection, t as Agent } from "../index-D_tyky7R.js";
1
+ import "../context-_sPQqJWv.js";
2
+ import { a as MCPConnectionResult, d as BaseTransportType, f as CORSOptions, i as MCPClientOAuthResult, m as ServeOptions, o as MCPDiscoverResult, p as MaybePromise, r as MCPClientOAuthCallbackConfig, s as MCPServerOptions } from "../client-DfIOsabL.js";
3
+ import "../mcp-CzbSsLfc.js";
4
+ import "../do-oauth-client-provider-B-ryFIPr.js";
5
+ import "../index-CyDpAVHZ.js";
6
+ import "../ai-types-D_hTbf25.js";
7
+ import { o as Connection, s as ConnectionContext, t as Agent } from "../index-DPJ32qQn.js";
7
8
  import { SSEClientTransport, SSEClientTransportOptions } from "@modelcontextprotocol/sdk/client/sse.js";
8
9
  import { StreamableHTTPClientTransport, StreamableHTTPClientTransportOptions } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
9
10
  import { ElicitRequest, ElicitRequestSchema, ElicitResult, ElicitResult as ElicitResult$1, JSONRPCMessage, MessageExtraInfo } from "@modelcontextprotocol/sdk/types.js";
package/dist/mcp/index.js CHANGED
@@ -1,8 +1,9 @@
1
- import { t as MessageType } from "../ai-types-CrMqkwc_.js";
2
- import "../client-B3SR12TQ.js";
3
- import "../client-BqdCHvCQ.js";
4
- import "../do-oauth-client-provider-CnDheVho.js";
5
- import { c as getCurrentAgent, s as getAgentByName, t as Agent } from "../src-DYN-ccro.js";
1
+ import "../context-BkKbAa1R.js";
2
+ import { t as MessageType } from "../ai-types-CwgHzwUb.js";
3
+ import "../client-CcyhkGfN.js";
4
+ import "../client-QZa2Rq0l.js";
5
+ import "../do-oauth-client-provider-B1fVIshX.js";
6
+ import { c as getCurrentAgent, s as getAgentByName, t as Agent } from "../src-BmbDclOA.js";
6
7
  import { AsyncLocalStorage } from "node:async_hooks";
7
8
  import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
8
9
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
@@ -592,19 +593,35 @@ var StreamableHTTPServerTransport = class {
592
593
  if (Array.isArray(rawMessage)) messages = rawMessage.map((msg) => JSONRPCMessageSchema.parse(msg));
593
594
  else messages = [JSONRPCMessageSchema.parse(rawMessage)];
594
595
  const hasRequests = messages.some(isJSONRPCRequest);
595
- if (!hasRequests) for (const message of messages) this.onmessage?.(message, {
596
- authInfo,
597
- requestInfo
598
- });
596
+ if (!hasRequests) for (const message of messages) {
597
+ if (this.messageInterceptor) {
598
+ if (await this.messageInterceptor(message, {
599
+ authInfo,
600
+ requestInfo
601
+ })) continue;
602
+ }
603
+ this.onmessage?.(message, {
604
+ authInfo,
605
+ requestInfo
606
+ });
607
+ }
599
608
  else if (hasRequests) {
600
609
  const { connection } = getCurrentAgent();
601
610
  if (!connection) throw new Error("Connection was not found in handlePostRequest");
602
611
  const requestIds = messages.filter(isJSONRPCRequest).map((message) => message.id);
603
612
  connection.setState({ requestIds });
604
- for (const message of messages) this.onmessage?.(message, {
605
- authInfo,
606
- requestInfo
607
- });
613
+ for (const message of messages) {
614
+ if (this.messageInterceptor) {
615
+ if (await this.messageInterceptor(message, {
616
+ authInfo,
617
+ requestInfo
618
+ })) continue;
619
+ }
620
+ this.onmessage?.(message, {
621
+ authInfo,
622
+ requestInfo
623
+ });
624
+ }
608
625
  }
609
626
  }
610
627
  async close() {
@@ -1258,7 +1275,13 @@ var McpAgent = class McpAgent extends Agent {
1258
1275
  initTransport() {
1259
1276
  switch (this.getTransportType()) {
1260
1277
  case "sse": return new McpSSETransport();
1261
- case "streamable-http": return new StreamableHTTPServerTransport({});
1278
+ case "streamable-http": {
1279
+ const transport = new StreamableHTTPServerTransport({});
1280
+ transport.messageInterceptor = async (message) => {
1281
+ return this._handleElicitationResponse(message);
1282
+ };
1283
+ return transport;
1284
+ }
1262
1285
  }
1263
1286
  }
1264
1287
  /** Update and store the props */