@kya-os/mcp-i-cloudflare 1.5.8-canary.6 → 1.5.8-canary.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -0
- package/dist/__tests__/e2e/test-config.d.ts +37 -0
- package/dist/__tests__/e2e/test-config.d.ts.map +1 -0
- package/dist/__tests__/e2e/test-config.js +62 -0
- package/dist/__tests__/e2e/test-config.js.map +1 -0
- package/dist/adapter.d.ts +44 -0
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +677 -88
- package/dist/adapter.js.map +1 -1
- package/dist/agent.d.ts +69 -25
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +438 -39
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +0 -8
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +208 -55
- package/dist/app.js.map +1 -1
- package/dist/cache/kv-oauth-config-cache.d.ts +47 -0
- package/dist/cache/kv-oauth-config-cache.d.ts.map +1 -0
- package/dist/cache/kv-oauth-config-cache.js +82 -0
- package/dist/cache/kv-oauth-config-cache.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +33 -4
- package/dist/config.js.map +1 -1
- package/dist/helpers/env-mapper.d.ts +60 -1
- package/dist/helpers/env-mapper.d.ts.map +1 -1
- package/dist/helpers/env-mapper.js +136 -6
- package/dist/helpers/env-mapper.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime/audit-logger.d.ts +96 -0
- package/dist/runtime/audit-logger.d.ts.map +1 -0
- package/dist/runtime/audit-logger.js +276 -0
- package/dist/runtime/audit-logger.js.map +1 -0
- package/dist/runtime/oauth-handler.d.ts +5 -0
- package/dist/runtime/oauth-handler.d.ts.map +1 -1
- package/dist/runtime/oauth-handler.js +287 -35
- package/dist/runtime/oauth-handler.js.map +1 -1
- package/dist/runtime.d.ts +12 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +34 -4
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +55 -2
- package/dist/server.js.map +1 -1
- package/dist/services/admin.service.d.ts.map +1 -1
- package/dist/services/admin.service.js +27 -0
- package/dist/services/admin.service.js.map +1 -1
- package/dist/services/consent-audit.service.d.ts +91 -0
- package/dist/services/consent-audit.service.d.ts.map +1 -0
- package/dist/services/consent-audit.service.js +243 -0
- package/dist/services/consent-audit.service.js.map +1 -0
- package/dist/services/consent-config.service.d.ts +2 -2
- package/dist/services/consent-config.service.d.ts.map +1 -1
- package/dist/services/consent-config.service.js +55 -24
- package/dist/services/consent-config.service.js.map +1 -1
- package/dist/services/consent-page-renderer.d.ts +14 -0
- package/dist/services/consent-page-renderer.d.ts.map +1 -1
- package/dist/services/consent-page-renderer.js +42 -0
- package/dist/services/consent-page-renderer.js.map +1 -1
- package/dist/services/consent.service.d.ts +82 -4
- package/dist/services/consent.service.d.ts.map +1 -1
- package/dist/services/consent.service.js +1717 -34
- package/dist/services/consent.service.js.map +1 -1
- package/dist/services/delegation.service.d.ts.map +1 -1
- package/dist/services/delegation.service.js +67 -29
- package/dist/services/delegation.service.js.map +1 -1
- package/dist/services/idp-token-storage.d.ts +68 -0
- package/dist/services/idp-token-storage.d.ts.map +1 -0
- package/dist/services/idp-token-storage.js +157 -0
- package/dist/services/idp-token-storage.js.map +1 -0
- package/dist/services/oauth-service.d.ts +66 -0
- package/dist/services/oauth-service.d.ts.map +1 -0
- package/dist/services/oauth-service.js +223 -0
- package/dist/services/oauth-service.js.map +1 -0
- package/dist/services/proof.service.d.ts +5 -3
- package/dist/services/proof.service.d.ts.map +1 -1
- package/dist/services/proof.service.js +35 -8
- package/dist/services/proof.service.js.map +1 -1
- package/dist/services/tool-context-builder.d.ts +55 -0
- package/dist/services/tool-context-builder.d.ts.map +1 -0
- package/dist/services/tool-context-builder.js +124 -0
- package/dist/services/tool-context-builder.js.map +1 -0
- package/dist/types/tool-context.d.ts +35 -0
- package/dist/types/tool-context.d.ts.map +1 -0
- package/dist/types/tool-context.js +13 -0
- package/dist/types/tool-context.js.map +1 -0
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +27 -60
package/dist/agent.js
CHANGED
|
@@ -6,12 +6,15 @@
|
|
|
6
6
|
* Users only need to extend this class and register their tools.
|
|
7
7
|
*/
|
|
8
8
|
import { McpAgent } from "agents/mcp";
|
|
9
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/
|
|
9
|
+
import { Server as McpServer } from "@modelcontextprotocol/sdk/server/index.js";
|
|
10
10
|
import { CloudflareRuntime } from "./runtime";
|
|
11
11
|
import { createCloudflareRuntime } from "./index";
|
|
12
12
|
import { mapPrefixedEnv } from "./helpers/env-mapper";
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
import { STORAGE_KEYS } from "./constants/storage-keys";
|
|
14
|
+
import { OAuthConfigService, OAuthService, IdpTokenResolver, ToolContextBuilder, OAuthRequiredError, DelegationRequiredError, } from "@kya-os/mcp-i-core";
|
|
15
|
+
import { KVOAuthConfigCache } from "./cache/kv-oauth-config-cache";
|
|
16
|
+
import { IdpTokenStorage } from "./services/idp-token-storage";
|
|
17
|
+
import { OAuthSecurityService } from "./services/oauth-security.service";
|
|
15
18
|
/**
|
|
16
19
|
* Base class for MCP agents with MCP-I features
|
|
17
20
|
*
|
|
@@ -21,7 +24,12 @@ const agentOptionsRegistry = new Map();
|
|
|
21
24
|
* - Session management
|
|
22
25
|
* - Durable Object routing
|
|
23
26
|
*
|
|
24
|
-
* Users extend this class and implement
|
|
27
|
+
* Users extend this class and implement:
|
|
28
|
+
* - `getAgentName()`: Return the agent name
|
|
29
|
+
* - `getAgentVersion()`: Return the agent version (optional)
|
|
30
|
+
* - `getEnvPrefix()`: Return the KV environment prefix (optional)
|
|
31
|
+
* - `getRuntimeConfig()`: Return the runtime configuration
|
|
32
|
+
* - `registerTools()`: Register tools with the MCP server
|
|
25
33
|
*/
|
|
26
34
|
export class MCPICloudflareAgent extends McpAgent {
|
|
27
35
|
// @ts-ignore - Type incompatibility between different versions of @modelcontextprotocol/sdk
|
|
@@ -30,36 +38,35 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
30
38
|
server = new McpServer({
|
|
31
39
|
name: "MCP-I Agent",
|
|
32
40
|
version: "1.0.0",
|
|
41
|
+
}, {
|
|
42
|
+
capabilities: {},
|
|
33
43
|
});
|
|
34
44
|
mcpiRuntime;
|
|
35
45
|
env;
|
|
36
|
-
options;
|
|
37
46
|
constructor(state, env) {
|
|
38
47
|
// Call super() with just state and env (agents@0.2.21+ only accepts 2 parameters)
|
|
39
48
|
// The config is no longer passed to the constructor - it's set via the server property
|
|
40
49
|
super(state, env);
|
|
41
|
-
// Get options from registry AFTER calling super() (can now access 'this')
|
|
42
|
-
const AgentClass = new.target;
|
|
43
|
-
const options = agentOptionsRegistry.get(AgentClass);
|
|
44
|
-
// Now we can safely access 'this' and set properties
|
|
45
|
-
if (!options) {
|
|
46
|
-
throw new Error(`Agent options not found. Make sure to call createMCPIApp() before instantiating ${AgentClass.name}.`);
|
|
47
|
-
}
|
|
48
50
|
this.env = env;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
// Get agent configuration from subclass methods
|
|
52
|
+
const agentName = this.getAgentName();
|
|
53
|
+
const agentVersion = this.getAgentVersion();
|
|
54
|
+
const envPrefix = this.getEnvPrefix();
|
|
55
|
+
// Update server with correct config
|
|
51
56
|
this.server = new McpServer({
|
|
52
|
-
name:
|
|
53
|
-
version:
|
|
57
|
+
name: agentName,
|
|
58
|
+
version: agentVersion || "1.0.0",
|
|
59
|
+
}, {
|
|
60
|
+
capabilities: {},
|
|
54
61
|
});
|
|
55
62
|
// Map prefixed environment to standard CloudflareEnv
|
|
56
|
-
const mappedEnv =
|
|
57
|
-
? mapPrefixedEnv(env,
|
|
63
|
+
const mappedEnv = envPrefix
|
|
64
|
+
? mapPrefixedEnv(env, envPrefix)
|
|
58
65
|
: env;
|
|
59
|
-
// Add DurableObjectState to mapped env
|
|
66
|
+
// Add DurableObjectState to mapped env for identity persistence
|
|
60
67
|
mappedEnv._durableObjectState = state;
|
|
61
|
-
// Load runtime configuration
|
|
62
|
-
const runtimeConfig = this.
|
|
68
|
+
// Load runtime configuration from subclass
|
|
69
|
+
const runtimeConfig = this.getRuntimeConfigInternal(mappedEnv);
|
|
63
70
|
// Create tool protection service if configured
|
|
64
71
|
const toolProtectionService = runtimeConfig.toolProtection &&
|
|
65
72
|
mappedEnv.TOOL_PROTECTION_KV &&
|
|
@@ -73,10 +80,13 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
73
80
|
mappedEnv.AGENTSHIELD_PROJECT_ID,
|
|
74
81
|
cacheTtl: runtimeConfig.toolProtection.agentShield?.cacheTtl || 300000,
|
|
75
82
|
debug: runtimeConfig.environment === "development",
|
|
83
|
+
// Wrap fallback ToolProtectionMap into ToolProtectionConfig format
|
|
84
|
+
// Handle both wrapped and unwrapped formats for backward compatibility
|
|
76
85
|
fallbackConfig: runtimeConfig.toolProtection.fallback
|
|
77
|
-
?
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
? runtimeConfig.toolProtection.fallback.toolProtections !==
|
|
87
|
+
undefined
|
|
88
|
+
? runtimeConfig.toolProtection.fallback // Already wrapped
|
|
89
|
+
: { toolProtections: runtimeConfig.toolProtection.fallback } // Wrap it
|
|
80
90
|
: undefined,
|
|
81
91
|
})
|
|
82
92
|
: undefined;
|
|
@@ -94,40 +104,119 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
94
104
|
});
|
|
95
105
|
}
|
|
96
106
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
107
|
+
* Get agent version
|
|
108
|
+
* Subclasses can override this to provide a custom version
|
|
109
|
+
*/
|
|
110
|
+
getAgentVersion() {
|
|
111
|
+
return "1.0.0";
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get environment prefix for KV bindings
|
|
115
|
+
* Subclasses can override this for multi-agent deployments
|
|
99
116
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
117
|
+
getEnvPrefix() {
|
|
118
|
+
return undefined;
|
|
102
119
|
}
|
|
103
120
|
/**
|
|
104
121
|
* Initialize the agent
|
|
105
122
|
* Call this after construction to set up the runtime and register tools
|
|
106
123
|
*/
|
|
107
124
|
async init() {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
125
|
+
try {
|
|
126
|
+
await this.mcpiRuntime?.initialize();
|
|
127
|
+
const identity = await this.mcpiRuntime?.getIdentity();
|
|
128
|
+
console.log("[MCP-I] Initialized with DID:", identity?.did);
|
|
129
|
+
// Ensure server is initialized before registering tools
|
|
130
|
+
if (!this.server) {
|
|
131
|
+
throw new Error("Server not initialized. This should not happen - server is initialized in constructor.");
|
|
132
|
+
}
|
|
133
|
+
// Register tools (implemented by subclasses)
|
|
134
|
+
await this.registerTools();
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.error("[MCPICloudflareAgent] Initialization failed:", error);
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Register a tool with automatic session ID extraction and proof generation
|
|
143
|
+
*
|
|
144
|
+
* This helper method automatically extracts `sessionId` from `ToolExtraArguments`
|
|
145
|
+
* and passes it to `executeToolWithProof`, eliminating the need for manual extraction
|
|
146
|
+
* in every tool handler.
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* this.registerToolWithProof(
|
|
151
|
+
* greetTool.name,
|
|
152
|
+
* greetTool.description,
|
|
153
|
+
* greetTool.inputSchema.shape,
|
|
154
|
+
* greetTool.handler
|
|
155
|
+
* );
|
|
156
|
+
* ```
|
|
157
|
+
*
|
|
158
|
+
* @param name - Tool name
|
|
159
|
+
* @param description - Tool description
|
|
160
|
+
* @param schema - Tool input schema (Zod schema shape)
|
|
161
|
+
* @param handler - Tool handler function that receives args and returns result
|
|
162
|
+
*/
|
|
163
|
+
registerToolWithProof(name, description, schema, handler) {
|
|
164
|
+
// Safety check: ensure server is initialized
|
|
165
|
+
if (!this.server) {
|
|
166
|
+
throw new Error(`Cannot register tool "${name}": server not initialized. Make sure to call init() before registering tools.`);
|
|
167
|
+
}
|
|
168
|
+
try {
|
|
169
|
+
this.server.tool(name, description, schema, async (args, extra) => {
|
|
170
|
+
// ✅ Automatically extract sessionId from ToolExtraArguments
|
|
171
|
+
// This ensures delegation tokens stored with the original session ID
|
|
172
|
+
// can be retrieved on subsequent tool calls
|
|
173
|
+
// Note: extra is typed as 'any' to match MCP SDK's ToolExtraArguments type
|
|
174
|
+
const sessionId = extra?.sessionId;
|
|
175
|
+
return this.executeToolWithProof(name, args, handler, sessionId);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
console.error(`[MCPICloudflareAgent] Failed to register tool "${name}":`, error);
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
113
182
|
}
|
|
114
183
|
/**
|
|
115
184
|
* Execute a tool with automatic proof generation
|
|
116
185
|
* Use this helper method when registering tools to ensure proofs are generated
|
|
186
|
+
*
|
|
187
|
+
* @param toolName - Name of the tool being executed
|
|
188
|
+
* @param args - Tool arguments
|
|
189
|
+
* @param handler - Tool handler function
|
|
190
|
+
* @param providedSessionId - Optional session ID from MCP request (extracted from ToolExtraArguments.sessionId)
|
|
191
|
+
* If provided, uses this session ID for delegation token lookup.
|
|
192
|
+
* If not provided, falls back to getSessionId() or generates ephemeral ID.
|
|
117
193
|
*/
|
|
118
|
-
async executeToolWithProof(toolName, args, handler) {
|
|
194
|
+
async executeToolWithProof(toolName, args, handler, providedSessionId) {
|
|
119
195
|
if (!this.mcpiRuntime) {
|
|
120
196
|
throw new Error("MCP-I runtime not initialized. Call init() first.");
|
|
121
197
|
}
|
|
122
198
|
// Create session
|
|
199
|
+
// ✅ CRITICAL: Use provided sessionId if available (from MCP request params)
|
|
200
|
+
// This ensures delegation tokens stored with the original session ID can be retrieved
|
|
123
201
|
const timestamp = Date.now();
|
|
124
|
-
const sessionId =
|
|
202
|
+
const sessionId = providedSessionId ||
|
|
203
|
+
this.getSessionId() ||
|
|
125
204
|
`ephemeral-${timestamp}-${Math.random().toString(36).substring(2, 10)}`;
|
|
205
|
+
// Log session ID source for debugging
|
|
206
|
+
const envPrefix = this.getEnvPrefix();
|
|
207
|
+
const mappedEnv = envPrefix
|
|
208
|
+
? mapPrefixedEnv(this.env, envPrefix)
|
|
209
|
+
: this.env;
|
|
210
|
+
if (this.getRuntimeConfigInternal(mappedEnv).environment === "development") {
|
|
211
|
+
console.log("[MCPICloudflareAgent] Session ID source:", {
|
|
212
|
+
provided: !!providedSessionId,
|
|
213
|
+
fromGetSessionId: !!this.getSessionId(),
|
|
214
|
+
isEphemeral: !providedSessionId && !this.getSessionId(),
|
|
215
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
216
|
+
});
|
|
217
|
+
}
|
|
126
218
|
// Get server URL from env var (MCP_SERVER_URL) for consent URL building
|
|
127
219
|
// In production, this should be set to the deployed worker URL
|
|
128
|
-
const mappedEnv = this.options?.envPrefix
|
|
129
|
-
? mapPrefixedEnv(this.env, this.options.envPrefix)
|
|
130
|
-
: this.env;
|
|
131
220
|
let serverUrl = mappedEnv.MCP_SERVER_URL;
|
|
132
221
|
// Ensure URL has protocol (https://) if provided
|
|
133
222
|
if (serverUrl &&
|
|
@@ -136,6 +225,92 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
136
225
|
// Auto-add https:// if protocol missing
|
|
137
226
|
serverUrl = `https://${serverUrl}`;
|
|
138
227
|
}
|
|
228
|
+
// ✅ Look up delegation token from KV storage (3-priority system)
|
|
229
|
+
let delegationToken;
|
|
230
|
+
let userDid; // Extract userDid for IDP token resolution
|
|
231
|
+
const delegationStorage = mappedEnv.DELEGATION_STORAGE;
|
|
232
|
+
if (delegationStorage) {
|
|
233
|
+
try {
|
|
234
|
+
const agentDid = (await this.mcpiRuntime.getIdentity()).did;
|
|
235
|
+
console.log("[MCPICloudflareAgent] 🔍 Starting delegation token lookup:", {
|
|
236
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
237
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
238
|
+
hasDelegationStorage: !!delegationStorage,
|
|
239
|
+
});
|
|
240
|
+
// PRIORITY 1: User+Agent scoped token (user-specific, most secure)
|
|
241
|
+
// Try to get userDid from session cache
|
|
242
|
+
const sessionKey = STORAGE_KEYS.session(sessionId);
|
|
243
|
+
const sessionData = (await delegationStorage.get(sessionKey, "json"));
|
|
244
|
+
userDid = sessionData?.userDid;
|
|
245
|
+
if (userDid) {
|
|
246
|
+
const userAgentKey = STORAGE_KEYS.delegation(userDid, agentDid);
|
|
247
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 1: Checking user+agent scoped key:", {
|
|
248
|
+
key: userAgentKey,
|
|
249
|
+
userDid: userDid.slice(0, 20) + "...",
|
|
250
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
251
|
+
});
|
|
252
|
+
const userAgentToken = await delegationStorage.get(userAgentKey, "text");
|
|
253
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 1: User+agent scoped lookup result:", {
|
|
254
|
+
found: !!userAgentToken,
|
|
255
|
+
tokenLength: userAgentToken?.length || 0,
|
|
256
|
+
});
|
|
257
|
+
if (userAgentToken) {
|
|
258
|
+
delegationToken = userAgentToken;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
// PRIORITY 2: Session-scoped token (if session ID persists)
|
|
262
|
+
if (!delegationToken) {
|
|
263
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 2: Checking session-scoped key:", {
|
|
264
|
+
key: sessionKey,
|
|
265
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
266
|
+
});
|
|
267
|
+
const sessionTokenData = (await delegationStorage.get(sessionKey, "json"));
|
|
268
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 2: Session-scoped lookup result:", {
|
|
269
|
+
found: !!sessionTokenData,
|
|
270
|
+
hasDelegationToken: !!sessionTokenData?.delegationToken,
|
|
271
|
+
tokenLength: sessionTokenData?.delegationToken?.length || 0,
|
|
272
|
+
});
|
|
273
|
+
if (sessionTokenData?.delegationToken) {
|
|
274
|
+
delegationToken = sessionTokenData.delegationToken;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
// PRIORITY 3: Agent-scoped token (legacy fallback - DEPRECATED)
|
|
278
|
+
// Only use when userDid is unavailable (backward compatibility)
|
|
279
|
+
if (!delegationToken && !userDid) {
|
|
280
|
+
const agentKey = STORAGE_KEYS.legacyDelegation(agentDid);
|
|
281
|
+
console.warn("[MCPICloudflareAgent] ⚠️ DEPRECATION: Using agent-scoped token (legacy format). Migrate to user+agent scoped tokens for proper user isolation.", {
|
|
282
|
+
key: agentKey,
|
|
283
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
284
|
+
reason: "userDid unavailable",
|
|
285
|
+
});
|
|
286
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 3: Checking agent-scoped key (legacy):", {
|
|
287
|
+
key: agentKey,
|
|
288
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
289
|
+
});
|
|
290
|
+
delegationToken = await delegationStorage.get(agentKey, "text");
|
|
291
|
+
console.log("[MCPICloudflareAgent] 🔍 PRIORITY 3: Agent-scoped lookup result:", {
|
|
292
|
+
found: !!delegationToken,
|
|
293
|
+
tokenLength: delegationToken?.length || 0,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
if (delegationToken) {
|
|
297
|
+
console.log("[MCPICloudflareAgent] ✅ Delegation token retrieved:", {
|
|
298
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
299
|
+
tokenLength: delegationToken.length,
|
|
300
|
+
source: "kv-storage",
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
console.log("[MCPICloudflareAgent] ⚠️ No delegation token found in KV storage:", {
|
|
305
|
+
sessionId: sessionId.slice(0, 20) + "...",
|
|
306
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
catch (error) {
|
|
311
|
+
console.warn("[MCPICloudflareAgent] Failed to retrieve delegation token:", error);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
139
314
|
const session = {
|
|
140
315
|
id: sessionId,
|
|
141
316
|
audience: "https://kya.vouched.id",
|
|
@@ -143,11 +318,235 @@ export class MCPICloudflareAgent extends McpAgent {
|
|
|
143
318
|
createdAt: timestamp,
|
|
144
319
|
expiresAt: timestamp + 30 * 60 * 1000, // 30 minutes
|
|
145
320
|
serverOrigin: serverUrl, // Use MCP_SERVER_URL for consent URL building
|
|
321
|
+
delegationToken, // ✅ Include token in session if found
|
|
322
|
+
};
|
|
323
|
+
// ✅ NEW: Build tool execution context with IDP token (Phase 1 - MH-7)
|
|
324
|
+
let toolContext;
|
|
325
|
+
try {
|
|
326
|
+
toolContext = await this.buildToolContext(toolName, userDid, sessionId, delegationToken, mappedEnv);
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
// Handle OAuthRequiredError - build OAuth URL and throw DelegationRequiredError
|
|
330
|
+
if (error instanceof OAuthRequiredError) {
|
|
331
|
+
try {
|
|
332
|
+
const oauthUrl = await this.buildOAuthUrlForError(error, sessionId, mappedEnv);
|
|
333
|
+
// Generate resume token using runtime's internal method
|
|
334
|
+
// The runtime will generate it when DelegationRequiredError is thrown
|
|
335
|
+
const resumeToken = `resume_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
336
|
+
// Throw DelegationRequiredError with OAuth URL
|
|
337
|
+
throw new DelegationRequiredError(error.toolName, error.requiredScopes, oauthUrl, // Use OAuth URL as consent URL
|
|
338
|
+
undefined, // interceptedCall
|
|
339
|
+
resumeToken);
|
|
340
|
+
}
|
|
341
|
+
catch (oauthError) {
|
|
342
|
+
// If OAuth URL building fails, re-throw the original error
|
|
343
|
+
throw oauthError instanceof DelegationRequiredError
|
|
344
|
+
? oauthError
|
|
345
|
+
: error;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Log other errors but don't fail tool execution (backward compatibility)
|
|
349
|
+
console.warn("[MCPICloudflareAgent] Failed to build tool context:", error);
|
|
350
|
+
}
|
|
351
|
+
// Wrap handler to pass context as optional second parameter
|
|
352
|
+
// For backward compatibility, handlers can accept (args) or (args, context)
|
|
353
|
+
// If handler doesn't accept context, it will be ignored
|
|
354
|
+
const handlerWithContext = async (handlerArgs) => {
|
|
355
|
+
// Try to call handler with context if available
|
|
356
|
+
// TypeScript function types don't preserve length, so we try both signatures
|
|
357
|
+
try {
|
|
358
|
+
// Try calling with context (for handlers that accept it)
|
|
359
|
+
if (toolContext) {
|
|
360
|
+
return handler(handlerArgs, toolContext);
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
return handler(handlerArgs);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
catch (error) {
|
|
367
|
+
// If handler doesn't accept context parameter, fall back to args-only call
|
|
368
|
+
// This maintains backward compatibility
|
|
369
|
+
return handler(handlerArgs);
|
|
370
|
+
}
|
|
146
371
|
};
|
|
147
372
|
// Execute tool with automatic proof generation
|
|
148
|
-
const result = await this.mcpiRuntime.processToolCall(toolName, args,
|
|
373
|
+
const result = await this.mcpiRuntime.processToolCall(toolName, args, handlerWithContext, session);
|
|
149
374
|
return result;
|
|
150
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* Build tool execution context with IDP token (Phase 1 - MH-7)
|
|
378
|
+
*
|
|
379
|
+
* @private
|
|
380
|
+
*/
|
|
381
|
+
async buildToolContext(toolName, userDid, sessionId, delegationToken, env) {
|
|
382
|
+
// Only build context if userDid is available and services are configured
|
|
383
|
+
if (!userDid || !env.AGENTSHIELD_API_KEY || !env.DELEGATION_STORAGE) {
|
|
384
|
+
return undefined;
|
|
385
|
+
}
|
|
386
|
+
// Check if tool protection service is available
|
|
387
|
+
const toolProtectionService = this.mcpiRuntime.config
|
|
388
|
+
?.toolProtectionService;
|
|
389
|
+
if (!toolProtectionService) {
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
392
|
+
try {
|
|
393
|
+
// Get tool protection configuration
|
|
394
|
+
const agentDid = (await this.mcpiRuntime.getIdentity()).did;
|
|
395
|
+
const protection = await toolProtectionService.checkToolProtection(toolName, agentDid);
|
|
396
|
+
// Only build context if tool requires OAuth
|
|
397
|
+
if (!protection?.requiredScopes?.length) {
|
|
398
|
+
return undefined;
|
|
399
|
+
}
|
|
400
|
+
// Get project ID from tool protection service
|
|
401
|
+
const projectId = toolProtectionService.getProjectId();
|
|
402
|
+
if (!projectId) {
|
|
403
|
+
return undefined;
|
|
404
|
+
}
|
|
405
|
+
// Initialize OAuth services lazily
|
|
406
|
+
const fetchProvider = this.mcpiRuntime.fetch;
|
|
407
|
+
if (!fetchProvider) {
|
|
408
|
+
return undefined;
|
|
409
|
+
}
|
|
410
|
+
// Use KV cache for OAuth config if available, otherwise in-memory
|
|
411
|
+
const oauthConfigCache = env.TOOL_PROTECTION_KV
|
|
412
|
+
? new KVOAuthConfigCache({ kv: env.TOOL_PROTECTION_KV })
|
|
413
|
+
: undefined;
|
|
414
|
+
const oauthConfigService = new OAuthConfigService({
|
|
415
|
+
baseUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
|
|
416
|
+
apiKey: env.AGENTSHIELD_API_KEY,
|
|
417
|
+
fetchProvider,
|
|
418
|
+
cache: oauthConfigCache,
|
|
419
|
+
});
|
|
420
|
+
// Phase 2: Initialize provider registry and resolver
|
|
421
|
+
const { OAuthProviderRegistry, ProviderResolver } = await import("@kya-os/mcp-i-core");
|
|
422
|
+
const providerRegistry = new OAuthProviderRegistry(oauthConfigService);
|
|
423
|
+
const providerResolver = new ProviderResolver(providerRegistry, oauthConfigService);
|
|
424
|
+
const oauthService = new OAuthService({
|
|
425
|
+
configService: oauthConfigService,
|
|
426
|
+
fetchProvider,
|
|
427
|
+
agentShieldApiUrl: env.AGENTSHIELD_API_URL || "https://kya.vouched.id",
|
|
428
|
+
agentShieldApiKey: env.AGENTSHIELD_API_KEY,
|
|
429
|
+
projectId,
|
|
430
|
+
});
|
|
431
|
+
const oauthSecurityService = new OAuthSecurityService(env.DELEGATION_STORAGE, env.OAUTH_ENCRYPTION_SECRET);
|
|
432
|
+
const idpTokenStorage = new IdpTokenStorage({
|
|
433
|
+
storage: env.DELEGATION_STORAGE,
|
|
434
|
+
oauthSecurityService,
|
|
435
|
+
});
|
|
436
|
+
const tokenResolver = new IdpTokenResolver({
|
|
437
|
+
tokenStorage: idpTokenStorage,
|
|
438
|
+
oauthService,
|
|
439
|
+
});
|
|
440
|
+
const contextBuilder = new ToolContextBuilder({
|
|
441
|
+
tokenResolver,
|
|
442
|
+
configService: oauthConfigService,
|
|
443
|
+
providerResolver: providerResolver, // Phase 2: Pass ProviderResolver (type assertion for dist/src compatibility)
|
|
444
|
+
projectId,
|
|
445
|
+
});
|
|
446
|
+
// Build context
|
|
447
|
+
return await contextBuilder.buildContext(toolName, userDid, sessionId, delegationToken, protection);
|
|
448
|
+
}
|
|
449
|
+
catch (error) {
|
|
450
|
+
// Re-throw OAuthRequiredError so it can be handled by executeToolWithProof
|
|
451
|
+
if (error instanceof OAuthRequiredError) {
|
|
452
|
+
throw error;
|
|
453
|
+
}
|
|
454
|
+
console.warn("[MCPICloudflareAgent] Failed to build tool context:", error);
|
|
455
|
+
return undefined;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Build OAuth URL for OAuthRequiredError
|
|
460
|
+
*
|
|
461
|
+
* Creates OAuth authorization URL with PKCE challenge for secure token exchange.
|
|
462
|
+
*
|
|
463
|
+
* @private
|
|
464
|
+
*/
|
|
465
|
+
async buildOAuthUrlForError(error, sessionId, env) {
|
|
466
|
+
const agentShieldUrl = env.AGENTSHIELD_API_URL || "https://kya.vouched.id";
|
|
467
|
+
const toolProtectionService = this.mcpiRuntime.config
|
|
468
|
+
?.toolProtectionService;
|
|
469
|
+
const projectId = toolProtectionService?.getProjectId();
|
|
470
|
+
if (!projectId) {
|
|
471
|
+
throw new Error("Project ID not available for OAuth URL building");
|
|
472
|
+
}
|
|
473
|
+
// Get server URL
|
|
474
|
+
let serverUrl = env.MCP_SERVER_URL;
|
|
475
|
+
if (serverUrl &&
|
|
476
|
+
!serverUrl.startsWith("http://") &&
|
|
477
|
+
!serverUrl.startsWith("https://")) {
|
|
478
|
+
serverUrl = `https://${serverUrl}`;
|
|
479
|
+
}
|
|
480
|
+
if (!serverUrl) {
|
|
481
|
+
throw new Error("MCP_SERVER_URL not configured for OAuth callback");
|
|
482
|
+
}
|
|
483
|
+
// TypeScript: projectId is guaranteed to be defined after the check above
|
|
484
|
+
// Use non-null assertion since we've already validated it
|
|
485
|
+
const safeProjectId = projectId;
|
|
486
|
+
const agentDid = (await this.mcpiRuntime.getIdentity()).did;
|
|
487
|
+
// Generate PKCE challenge if OAuthSecurityService is available
|
|
488
|
+
let codeChallenge;
|
|
489
|
+
let stateParam;
|
|
490
|
+
if (env.DELEGATION_STORAGE && env.OAUTH_ENCRYPTION_SECRET) {
|
|
491
|
+
try {
|
|
492
|
+
const oauthSecurityService = new OAuthSecurityService(env.DELEGATION_STORAGE, env.OAUTH_ENCRYPTION_SECRET);
|
|
493
|
+
const pkceChallenge = await oauthSecurityService.generatePKCEChallenge();
|
|
494
|
+
codeChallenge = pkceChallenge.challenge;
|
|
495
|
+
// Build state data
|
|
496
|
+
const stateData = {
|
|
497
|
+
project_id: safeProjectId,
|
|
498
|
+
agent_did: agentDid,
|
|
499
|
+
session_id: sessionId || "",
|
|
500
|
+
scopes: error.requiredScopes,
|
|
501
|
+
storedAt: Date.now(),
|
|
502
|
+
code_verifier: pkceChallenge.verifier,
|
|
503
|
+
code_challenge: pkceChallenge.challenge,
|
|
504
|
+
redirect_uri: `${serverUrl}/oauth/callback`,
|
|
505
|
+
};
|
|
506
|
+
// Store state securely
|
|
507
|
+
const randomBytes = crypto.getRandomValues(new Uint8Array(32));
|
|
508
|
+
const stateValue = btoa(String.fromCharCode(...randomBytes))
|
|
509
|
+
.replace(/\+/g, "-")
|
|
510
|
+
.replace(/\//g, "_")
|
|
511
|
+
.replace(/=/g, "");
|
|
512
|
+
await oauthSecurityService.storeOAuthState(stateValue, stateData, 600);
|
|
513
|
+
stateParam = stateValue;
|
|
514
|
+
}
|
|
515
|
+
catch (err) {
|
|
516
|
+
console.warn("[MCPICloudflareAgent] Failed to generate PKCE challenge, using insecure state:", err);
|
|
517
|
+
// Fallback to insecure state encoding
|
|
518
|
+
const stateData = {
|
|
519
|
+
project_id: safeProjectId,
|
|
520
|
+
agent_did: agentDid,
|
|
521
|
+
session_id: sessionId || "",
|
|
522
|
+
scopes: error.requiredScopes,
|
|
523
|
+
};
|
|
524
|
+
stateParam = btoa(JSON.stringify(stateData));
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
else {
|
|
528
|
+
// Fallback to insecure state encoding
|
|
529
|
+
const stateData = {
|
|
530
|
+
project_id: safeProjectId,
|
|
531
|
+
agent_did: agentDid,
|
|
532
|
+
session_id: sessionId || "",
|
|
533
|
+
scopes: error.requiredScopes,
|
|
534
|
+
};
|
|
535
|
+
stateParam = btoa(JSON.stringify(stateData));
|
|
536
|
+
}
|
|
537
|
+
// Build OAuth authorization URL
|
|
538
|
+
const oauthUrl = new URL(`${agentShieldUrl}/bouncer/oauth/authorize`);
|
|
539
|
+
oauthUrl.searchParams.set("response_type", "code");
|
|
540
|
+
oauthUrl.searchParams.set("client_id", safeProjectId);
|
|
541
|
+
oauthUrl.searchParams.set("redirect_uri", `${serverUrl}/oauth/callback`);
|
|
542
|
+
oauthUrl.searchParams.set("scope", error.requiredScopes.join(" "));
|
|
543
|
+
oauthUrl.searchParams.set("state", stateParam);
|
|
544
|
+
if (codeChallenge) {
|
|
545
|
+
oauthUrl.searchParams.set("code_challenge", codeChallenge);
|
|
546
|
+
oauthUrl.searchParams.set("code_challenge_method", "S256");
|
|
547
|
+
}
|
|
548
|
+
return oauthUrl.toString();
|
|
549
|
+
}
|
|
151
550
|
/**
|
|
152
551
|
* Get Durable Object instance ID based on routing strategy
|
|
153
552
|
*/
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgDtD,2DAA2D;AAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAGjC,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,mBAAoB,SAAQ,QAAQ;IACxD,4FAA4F;IAC5F,yDAAyD;IACzD,sFAAsF;IACtF,MAAM,GAAG,IAAI,SAAS,CAAC;QACrB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAQ,CAAC;IAEA,WAAW,CAAqB;IAChC,GAAG,CAAwB;IAC7B,OAAO,CAA8B;IAE7C,YAAY,KAAyB,EAAE,GAA0B;QAC/D,kFAAkF;QAClF,uFAAuF;QACvF,KAAK,CAAC,KAAY,EAAE,GAAG,CAAC,CAAC;QAEzB,0EAA0E;QAC1E,MAAM,UAAU,GAAG,GAAG,CAAC,MAAoC,CAAC;QAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAErD,qDAAqD;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,mFAAmF,UAAU,CAAC,IAAI,GAAG,CACtG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,wEAAwE;QACxE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO;SACzC,CAAQ,CAAC;QAEV,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;YACtC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAC7C,CAAC,CAAE,GAAqB,CAAC;QAE3B,uCAAuC;QACtC,SAA2B,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAEzD,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE/D,+CAA+C;QAC/C,MAAM,qBAAqB,GACzB,aAAa,CAAC,cAAc;YAC5B,SAAS,CAAC,kBAAkB;YAC5B,SAAS,CAAC,mBAAmB;YAC3B,CAAC,CAAC,iBAAiB,CAAC,2BAA2B,CAC3C,SAAS,CAAC,kBAAkB,EAC5B;gBACE,MAAM,EACJ,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM;oBAChD,SAAS,CAAC,mBAAmB;oBAC7B,wBAAwB;gBAC1B,MAAM,EAAE,SAAS,CAAC,mBAAoB;gBACtC,SAAS,EACP,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS;oBACnD,SAAS,CAAC,sBAAsB;gBAClC,QAAQ,EACN,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,IAAI,MAAM;gBAC9D,KAAK,EAAE,aAAa,CAAC,WAAW,KAAK,aAAa;gBAClD,cAAc,EAAE,aAAa,CAAC,cAAc,CAAC,QAAQ;oBACnD,CAAC,CAAC;wBACE,eAAe,EAAE,aAAa,CAAC,cAAc,CAAC,QAAQ;qBACvD;oBACH,CAAC,CAAC,SAAS;aACd,CACF;YACH,CAAC,CAAC,SAAS,CAAC;QAEhB,2BAA2B;QAC3B,IAAI,CAAC,WAAW,GAAG,uBAAuB,CAAC;YACzC,GAAG,EAAE,SAAS;YACd,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,KAAK,EAAE;gBACL,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI;gBAC7C,WAAW,EACT,aAAa,CAAC,KAAK,EAAE,WAAW;oBAChC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;aACrD;YACD,qBAAqB;YACrB,aAAa,EAAE,yDAAyD;SACzE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CACpB,UAAsC,EACtC,OAAmC;QAEnC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE5D,6CAA6C;QAC7C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAQD;;;OAGG;IACO,KAAK,CAAC,oBAAoB,CAIlC,QAAgB,EAChB,IAAW,EACX,OAA0C;QAE1C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,SAAS,GACZ,IAAY,CAAC,YAAY,EAAE;YAC5B,aAAa,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAE1E,wEAAwE;QACxE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS;YACvC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAClD,CAAC,CAAE,IAAI,CAAC,GAAqB,CAAC;QAChC,IAAI,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC;QAEzC,iDAAiD;QACjD,IACE,SAAS;YACT,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;YAChC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EACjC,CAAC;YACD,wCAAwC;YACxC,SAAS,GAAG,WAAW,SAAS,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,SAAS;YACb,QAAQ,EAAE,wBAAwB;YAClC,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG;YACpD,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACpD,YAAY,EAAE,SAAS,EAAE,8CAA8C;SACxE,CAAC;QAEF,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CACnD,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC;QAEF,OAAO,MAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC;YACH,MAAM,SAAS,GAAI,IAAY,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC;YAE3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,WAAW,SAAS,EAAE,CAAC;YAChC,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;gBAC7D,MAAM,eAAe,GACnB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;gBAC/C,OAAO,SAAS,KAAK,EAAE,CAAC;YAC1B,CAAC;YAED,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YACnE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/app.d.ts
CHANGED
|
@@ -22,14 +22,6 @@ export interface CreateMCPIAppOptions {
|
|
|
22
22
|
* MCP Agent class (extends MCPICloudflareAgent)
|
|
23
23
|
*/
|
|
24
24
|
AgentClass: typeof MCPICloudflareAgent;
|
|
25
|
-
/**
|
|
26
|
-
* Agent name (used in MCP server metadata)
|
|
27
|
-
*/
|
|
28
|
-
agentName: string;
|
|
29
|
-
/**
|
|
30
|
-
* Agent version (used in MCP server metadata)
|
|
31
|
-
*/
|
|
32
|
-
agentVersion?: string;
|
|
33
25
|
}
|
|
34
26
|
/**
|
|
35
27
|
* Create a Hono app with all MCP-I routes configured
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAG1E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,uBAAuB,CAAC;IAElE;;OAEG;IACH,UAAU,EAAE,OAAO,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAG1E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,uBAAuB,CAAC;IAElE;;OAEG;IACH,UAAU,EAAE,OAAO,mBAAmB,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;qBAsS9C,cAAc,OAChB,qBAAqB,OACrB,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC;EAKnB"}
|