@kya-os/mcp-i-cloudflare 1.3.9 → 1.4.0

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 (54) hide show
  1. package/README.md +132 -255
  2. package/dist/adapter.js.map +1 -1
  3. package/dist/agent.d.ts +88 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +157 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/app.d.ts +52 -0
  8. package/dist/app.d.ts.map +1 -0
  9. package/dist/app.js +115 -0
  10. package/dist/app.js.map +1 -0
  11. package/dist/config.d.ts +26 -0
  12. package/dist/config.d.ts.map +1 -1
  13. package/dist/config.js +83 -0
  14. package/dist/config.js.map +1 -1
  15. package/dist/constants.d.ts +32 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +32 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/helpers/env-mapper.d.ts +23 -0
  20. package/dist/helpers/env-mapper.d.ts.map +1 -0
  21. package/dist/helpers/env-mapper.js +39 -0
  22. package/dist/helpers/env-mapper.js.map +1 -0
  23. package/dist/index.d.ts +28 -31
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +51 -37
  26. package/dist/index.js.map +1 -1
  27. package/dist/runtime.d.ts.map +1 -1
  28. package/dist/runtime.js +3 -2
  29. package/dist/runtime.js.map +1 -1
  30. package/dist/server.d.ts +58 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +125 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/services/admin.service.d.ts +22 -0
  35. package/dist/services/admin.service.d.ts.map +1 -0
  36. package/dist/services/admin.service.js +151 -0
  37. package/dist/services/admin.service.js.map +1 -0
  38. package/dist/services/consent.service.d.ts +25 -0
  39. package/dist/services/consent.service.d.ts.map +1 -0
  40. package/dist/services/consent.service.js +48 -0
  41. package/dist/services/consent.service.js.map +1 -0
  42. package/dist/services/delegation.service.d.ts +33 -0
  43. package/dist/services/delegation.service.d.ts.map +1 -0
  44. package/dist/services/delegation.service.js +168 -0
  45. package/dist/services/delegation.service.js.map +1 -0
  46. package/dist/services/proof.service.d.ts +32 -0
  47. package/dist/services/proof.service.d.ts.map +1 -0
  48. package/dist/services/proof.service.js +95 -0
  49. package/dist/services/proof.service.js.map +1 -0
  50. package/dist/types.d.ts +27 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +7 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +7 -3
package/dist/agent.js ADDED
@@ -0,0 +1,157 @@
1
+ /**
2
+ * MCP-I Cloudflare Agent Base Class
3
+ *
4
+ * Base class for MCP agents running on Cloudflare Workers with MCP-I features.
5
+ * Handles all framework complexity (runtime initialization, tool execution with proofs, etc.)
6
+ * Users only need to extend this class and register their tools.
7
+ */
8
+ import { McpAgent } from "agents/mcp";
9
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10
+ import { CloudflareRuntime } from "./runtime";
11
+ import { createCloudflareRuntime } from "./index";
12
+ import { mapPrefixedEnv } from "./helpers/env-mapper";
13
+ // Global registry for agent options (set by createMCPIApp)
14
+ const agentOptionsRegistry = new Map();
15
+ /**
16
+ * Base class for MCP agents with MCP-I features
17
+ *
18
+ * Handles:
19
+ * - Runtime initialization
20
+ * - Tool execution with automatic proof generation
21
+ * - Session management
22
+ * - Durable Object routing
23
+ *
24
+ * Users extend this class and implement `registerTools()` to add their custom tools.
25
+ */
26
+ export class MCPICloudflareAgent extends McpAgent {
27
+ // @ts-ignore - Type incompatibility between different versions of @modelcontextprotocol/sdk
28
+ // Runtime behavior is correct, this is a type-only issue
29
+ server;
30
+ mcpiRuntime;
31
+ env;
32
+ options;
33
+ constructor(state, env) {
34
+ super(state, env);
35
+ this.env = env;
36
+ // Get options from registry (set by createMCPIApp)
37
+ const AgentClass = this.constructor;
38
+ this.options = agentOptionsRegistry.get(AgentClass);
39
+ if (!this.options) {
40
+ throw new Error(`Agent options not found. Make sure to call createMCPIApp() before instantiating ${AgentClass.name}.`);
41
+ }
42
+ // Create MCP server
43
+ this.server = new McpServer({
44
+ name: this.options.name,
45
+ version: this.options.version || "1.0.0",
46
+ });
47
+ // Map prefixed environment to standard CloudflareEnv
48
+ const mappedEnv = this.options.envPrefix
49
+ ? mapPrefixedEnv(env, this.options.envPrefix)
50
+ : env;
51
+ // Add DurableObjectState to mapped env
52
+ mappedEnv._durableObjectState = state;
53
+ // Load runtime configuration
54
+ const runtimeConfig = this.options.getRuntimeConfig(mappedEnv);
55
+ // Create tool protection service if configured
56
+ const toolProtectionService = runtimeConfig.toolProtection &&
57
+ mappedEnv.TOOL_PROTECTION_KV &&
58
+ mappedEnv.AGENTSHIELD_API_KEY
59
+ ? CloudflareRuntime.createToolProtectionService(mappedEnv.TOOL_PROTECTION_KV, {
60
+ apiUrl: runtimeConfig.toolProtection.agentShield?.apiUrl ||
61
+ mappedEnv.AGENTSHIELD_API_URL ||
62
+ "https://kya.vouched.id",
63
+ apiKey: mappedEnv.AGENTSHIELD_API_KEY,
64
+ projectId: runtimeConfig.toolProtection.agentShield?.projectId ||
65
+ mappedEnv.AGENTSHIELD_PROJECT_ID,
66
+ cacheTtl: runtimeConfig.toolProtection.agentShield?.cacheTtl || 300000,
67
+ debug: runtimeConfig.environment === "development",
68
+ fallbackConfig: runtimeConfig.toolProtection.fallback
69
+ ? {
70
+ toolProtections: runtimeConfig.toolProtection.fallback,
71
+ }
72
+ : undefined,
73
+ })
74
+ : undefined;
75
+ // Initialize MCP-I runtime
76
+ this.mcpiRuntime = createCloudflareRuntime({
77
+ env: mappedEnv,
78
+ environment: runtimeConfig.environment,
79
+ audit: {
80
+ enabled: runtimeConfig.audit?.enabled ?? true,
81
+ logFunction: runtimeConfig.audit?.logFunction ||
82
+ ((record) => console.log("[MCP-I Audit]", record)),
83
+ },
84
+ toolProtectionService,
85
+ });
86
+ }
87
+ /**
88
+ * Register options for an agent class
89
+ * Called internally by createMCPIApp
90
+ */
91
+ static registerOptions(AgentClass, options) {
92
+ agentOptionsRegistry.set(AgentClass, options);
93
+ }
94
+ /**
95
+ * Initialize the agent
96
+ * Call this after construction to set up the runtime and register tools
97
+ */
98
+ async init() {
99
+ await this.mcpiRuntime?.initialize();
100
+ const identity = await this.mcpiRuntime?.getIdentity();
101
+ console.log("[MCP-I] Initialized with DID:", identity?.did);
102
+ // Register tools (implemented by subclasses)
103
+ await this.registerTools();
104
+ }
105
+ /**
106
+ * Execute a tool with automatic proof generation
107
+ * Use this helper method when registering tools to ensure proofs are generated
108
+ */
109
+ async executeToolWithProof(toolName, args, handler) {
110
+ if (!this.mcpiRuntime) {
111
+ throw new Error("MCP-I runtime not initialized. Call init() first.");
112
+ }
113
+ // Create session
114
+ const timestamp = Date.now();
115
+ const sessionId = this.getSessionId() ||
116
+ `ephemeral-${timestamp}-${Math.random().toString(36).substring(2, 10)}`;
117
+ const session = {
118
+ id: sessionId,
119
+ audience: "https://kya.vouched.id",
120
+ agentDid: (await this.mcpiRuntime.getIdentity()).did,
121
+ createdAt: timestamp,
122
+ expiresAt: timestamp + 30 * 60 * 1000, // 30 minutes
123
+ };
124
+ // Execute tool with automatic proof generation
125
+ const result = await this.mcpiRuntime.processToolCall(toolName, args, handler, session);
126
+ return result;
127
+ }
128
+ /**
129
+ * Get Durable Object instance ID based on routing strategy
130
+ */
131
+ getInstanceId() {
132
+ try {
133
+ const sessionId = this.getSessionId();
134
+ const strategy = this.env.DO_ROUTING_STRATEGY || "session";
135
+ if (strategy === "session") {
136
+ return `session:${sessionId}`;
137
+ }
138
+ else if (strategy === "shard") {
139
+ const shardCount = parseInt(this.env.DO_SHARD_COUNT || "10");
140
+ const validShardCount = !isNaN(shardCount) && shardCount > 0 ? shardCount : 10;
141
+ let hash = 0;
142
+ for (let i = 0; i < sessionId.length; i++) {
143
+ hash = (hash << 5) - hash + sessionId.charCodeAt(i);
144
+ hash = hash & hash;
145
+ }
146
+ const shard = Math.abs(hash) % validShardCount;
147
+ return `shard:${shard}`;
148
+ }
149
+ return "default";
150
+ }
151
+ catch (error) {
152
+ console.error("[DO Routing] Failed to extract session ID:", error);
153
+ return "default";
154
+ }
155
+ }
156
+ }
157
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts ADDED
@@ -0,0 +1,52 @@
1
+ /**
2
+ * MCP-I Cloudflare App Factory
3
+ *
4
+ * Factory function to create a Hono app with all MCP-I routes configured.
5
+ * Handles framework routes (health, admin, consent, OAuth) and MCP protocol routes.
6
+ */
7
+ import { Hono } from "hono";
8
+ import type { CloudflareEnv } from "./types";
9
+ import type { CloudflareRuntimeConfig } from "./config";
10
+ import { MCPICloudflareAgent } from "./agent";
11
+ export interface CreateMCPIAppOptions {
12
+ /**
13
+ * Environment prefix for KV bindings (e.g., "MYAPP" for MYAPP_NONCE_CACHE)
14
+ * If not provided, uses standard CloudflareEnv bindings
15
+ */
16
+ envPrefix?: string;
17
+ /**
18
+ * Runtime configuration getter function
19
+ */
20
+ getRuntimeConfig: (env: CloudflareEnv) => CloudflareRuntimeConfig;
21
+ /**
22
+ * MCP Agent class (extends MCPICloudflareAgent)
23
+ */
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
+ }
34
+ /**
35
+ * Create a Hono app with all MCP-I routes configured
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * import { createMCPIApp, MCPICloudflareAgent } from "@kya-os/mcp-i-cloudflare";
40
+ * import { getRuntimeConfig } from "./mcpi-runtime-config";
41
+ * import { MyAgent } from "./agent";
42
+ *
43
+ * export default createMCPIApp({
44
+ * AgentClass: MyAgent,
45
+ * agentName: "my-agent",
46
+ * envPrefix: "MYAPP",
47
+ * getRuntimeConfig,
48
+ * });
49
+ * ```
50
+ */
51
+ export declare function createMCPIApp(options: CreateMCPIAppOptions): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
52
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAA8B,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;IAEvC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,8EAmH1D"}
package/dist/app.js ADDED
@@ -0,0 +1,115 @@
1
+ /**
2
+ * MCP-I Cloudflare App Factory
3
+ *
4
+ * Factory function to create a Hono app with all MCP-I routes configured.
5
+ * Handles framework routes (health, admin, consent, OAuth) and MCP protocol routes.
6
+ */
7
+ import { Hono } from "hono";
8
+ import { cors } from "hono/cors";
9
+ import { MCPICloudflareServer } from "./server";
10
+ import { CloudflareRuntime, createCloudflareRuntime } from "./index";
11
+ import { mapPrefixedEnv } from "./helpers/env-mapper";
12
+ import { MCPICloudflareAgent } from "./agent";
13
+ /**
14
+ * Create a Hono app with all MCP-I routes configured
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { createMCPIApp, MCPICloudflareAgent } from "@kya-os/mcp-i-cloudflare";
19
+ * import { getRuntimeConfig } from "./mcpi-runtime-config";
20
+ * import { MyAgent } from "./agent";
21
+ *
22
+ * export default createMCPIApp({
23
+ * AgentClass: MyAgent,
24
+ * agentName: "my-agent",
25
+ * envPrefix: "MYAPP",
26
+ * getRuntimeConfig,
27
+ * });
28
+ * ```
29
+ */
30
+ export function createMCPIApp(options) {
31
+ // Register agent options before creating routes
32
+ MCPICloudflareAgent.registerOptions(options.AgentClass, {
33
+ name: options.agentName,
34
+ version: options.agentVersion,
35
+ envPrefix: options.envPrefix,
36
+ getRuntimeConfig: options.getRuntimeConfig,
37
+ });
38
+ const app = new Hono();
39
+ app.use("*", cors());
40
+ // Initialize MCPICloudflareServer for framework routes
41
+ let mcpiServer = null;
42
+ async function getMcpiServer(env) {
43
+ if (!mcpiServer) {
44
+ // Map prefixed KV bindings to standard names
45
+ const mappedEnv = options.envPrefix
46
+ ? mapPrefixedEnv(env, options.envPrefix)
47
+ : env;
48
+ const runtimeConfig = options.getRuntimeConfig(mappedEnv);
49
+ // Create runtime for MCPICloudflareServer
50
+ const toolProtectionService = runtimeConfig.toolProtection &&
51
+ mappedEnv.TOOL_PROTECTION_KV &&
52
+ mappedEnv.AGENTSHIELD_API_KEY
53
+ ? CloudflareRuntime.createToolProtectionService(mappedEnv.TOOL_PROTECTION_KV, {
54
+ apiUrl: runtimeConfig.toolProtection.agentShield?.apiUrl ||
55
+ mappedEnv.AGENTSHIELD_API_URL ||
56
+ "https://kya.vouched.id",
57
+ apiKey: mappedEnv.AGENTSHIELD_API_KEY,
58
+ projectId: runtimeConfig.toolProtection.agentShield?.projectId ||
59
+ mappedEnv.AGENTSHIELD_PROJECT_ID,
60
+ cacheTtl: runtimeConfig.toolProtection.agentShield?.cacheTtl || 300000,
61
+ debug: runtimeConfig.environment === "development",
62
+ fallbackConfig: runtimeConfig.toolProtection.fallback
63
+ ? {
64
+ toolProtections: runtimeConfig.toolProtection.fallback,
65
+ }
66
+ : undefined,
67
+ })
68
+ : undefined;
69
+ const runtime = createCloudflareRuntime({
70
+ env: mappedEnv,
71
+ environment: runtimeConfig.environment,
72
+ audit: {
73
+ enabled: runtimeConfig.audit?.enabled ?? true,
74
+ logFunction: runtimeConfig.audit?.logFunction ||
75
+ ((record) => console.log("[MCP-I Audit]", record)),
76
+ },
77
+ toolProtectionService,
78
+ });
79
+ mcpiServer = new MCPICloudflareServer({
80
+ env: mappedEnv,
81
+ config: runtimeConfig,
82
+ runtime,
83
+ });
84
+ }
85
+ return mcpiServer;
86
+ }
87
+ // Route framework endpoints to MCPICloudflareServer
88
+ app.all("/health", async (c) => {
89
+ const server = await getMcpiServer(c.env);
90
+ return server.handleRequest(c.req.raw, c.executionCtx);
91
+ });
92
+ app.all("/consent/*", async (c) => {
93
+ const server = await getMcpiServer(c.env);
94
+ return server.handleRequest(c.req.raw, c.executionCtx);
95
+ });
96
+ app.all("/admin/*", async (c) => {
97
+ const server = await getMcpiServer(c.env);
98
+ return server.handleRequest(c.req.raw, c.executionCtx);
99
+ });
100
+ app.all("/oauth/callback", async (c) => {
101
+ const server = await getMcpiServer(c.env);
102
+ return server.handleRequest(c.req.raw, c.executionCtx);
103
+ });
104
+ // Route MCP protocol endpoints to Agent class
105
+ // Note: The Agent class must be instantiated as a Durable Object
106
+ // This is handled by Cloudflare Workers runtime
107
+ // Cast to McpAgent to access static serve/serveSSE methods
108
+ const AgentClass = options.AgentClass;
109
+ // Type assertion needed due to @cloudflare/workers-types version incompatibility
110
+ // Runtime behavior is correct
111
+ app.mount("/sse", AgentClass.serveSSE("/sse").fetch, { replaceRequest: false });
112
+ app.mount("/mcp", AgentClass.serve("/mcp").fetch, { replaceRequest: false });
113
+ return app;
114
+ }
115
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -142,6 +142,22 @@ export interface CloudflareRuntimeConfig extends MCPIConfig {
142
142
  * Cloudflare can use AgentShield or KV-based protection
143
143
  */
144
144
  toolProtection?: ToolProtectionSourceConfig;
145
+ /**
146
+ * Admin API configuration
147
+ * Enables admin endpoints for cache management and debugging
148
+ */
149
+ admin?: {
150
+ /**
151
+ * Enable admin endpoints
152
+ * @default false
153
+ */
154
+ enabled: boolean;
155
+ /**
156
+ * API key for admin endpoints
157
+ * Required when enabled is true
158
+ */
159
+ apiKey?: string;
160
+ };
145
161
  /**
146
162
  * Cloudflare-specific delegation configuration
147
163
  */
@@ -272,4 +288,14 @@ export interface CloudflareEnv {
272
288
  * Extract configuration from Cloudflare environment bindings
273
289
  */
274
290
  export declare function extractConfigFromEnv(env: CloudflareEnv): Partial<CloudflareRuntimeConfig>;
291
+ /**
292
+ * Define Cloudflare runtime configuration with smart defaults
293
+ *
294
+ * This function provides a Next.js-style configuration API where users
295
+ * only need to specify overrides. All defaults are handled automatically.
296
+ *
297
+ * @param config - Partial configuration with user overrides
298
+ * @returns Complete CloudflareRuntimeConfig with defaults applied
299
+ */
300
+ export declare function defineConfig(config: Partial<CloudflareRuntimeConfig>): CloudflareRuntimeConfig;
275
301
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -105,4 +105,87 @@ export function extractConfigFromEnv(env) {
105
105
  }
106
106
  return config;
107
107
  }
108
+ /**
109
+ * Define Cloudflare runtime configuration with smart defaults
110
+ *
111
+ * This function provides a Next.js-style configuration API where users
112
+ * only need to specify overrides. All defaults are handled automatically.
113
+ *
114
+ * @param config - Partial configuration with user overrides
115
+ * @returns Complete CloudflareRuntimeConfig with defaults applied
116
+ */
117
+ export function defineConfig(config) {
118
+ const env = config.vars || {};
119
+ const environment = (env.ENVIRONMENT || env.MCPI_ENV || config.environment || 'development');
120
+ const isDevelopment = environment === 'development';
121
+ // Build base config with smart defaults
122
+ const baseConfig = {
123
+ environment,
124
+ identity: {
125
+ enabled: true,
126
+ environment,
127
+ ...config.identity,
128
+ },
129
+ proofing: {
130
+ enabled: true,
131
+ batchQueue: {
132
+ destinations: [
133
+ {
134
+ type: 'agentshield',
135
+ apiUrl: env.AGENTSHIELD_API_URL || 'https://kya.vouched.id',
136
+ apiKey: env.AGENTSHIELD_API_KEY || '',
137
+ }
138
+ ],
139
+ maxBatchSize: 10,
140
+ flushIntervalMs: 5000,
141
+ maxRetries: 3,
142
+ debug: isDevelopment,
143
+ },
144
+ ...config.proofing,
145
+ },
146
+ delegation: {
147
+ enabled: true,
148
+ enforceDelegations: true,
149
+ verifier: {
150
+ type: 'agentshield',
151
+ apiUrl: env.AGENTSHIELD_API_URL || 'https://kya.vouched.id',
152
+ apiKey: env.AGENTSHIELD_API_KEY || '',
153
+ cacheTtl: 60000,
154
+ },
155
+ ...config.delegation,
156
+ },
157
+ audit: {
158
+ enabled: true,
159
+ includeProofHashes: false,
160
+ includePayloads: false,
161
+ ...config.audit,
162
+ },
163
+ session: {
164
+ timestampSkewSeconds: 120,
165
+ ttlMinutes: 30,
166
+ ...config.session,
167
+ },
168
+ };
169
+ // Merge with Cloudflare-specific defaults and user overrides
170
+ return {
171
+ ...baseConfig,
172
+ ...config,
173
+ // Cloudflare Workers-specific configuration
174
+ workers: {
175
+ cpuMs: 50,
176
+ memoryMb: 128,
177
+ ...config.workers,
178
+ },
179
+ // KV namespace bindings
180
+ kv: config.kv || [],
181
+ // Environment variable bindings
182
+ vars: {
183
+ ENVIRONMENT: environment,
184
+ AGENTSHIELD_API_KEY: env.AGENTSHIELD_API_KEY,
185
+ ...config.vars,
186
+ },
187
+ // Tool protection (optional - only if KV and API key available)
188
+ toolProtection: config.toolProtection,
189
+ };
190
+ }
108
191
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Default constants for MCP-I Cloudflare package
3
+ *
4
+ * These constants replace hardcoded values throughout the codebase
5
+ * to ensure consistency and easy configuration updates.
6
+ */
7
+ /**
8
+ * Default AgentShield API URL
9
+ */
10
+ export declare const DEFAULT_AGENTSHIELD_URL = "https://kya.vouched.id";
11
+ /**
12
+ * Default session TTL in milliseconds (30 minutes)
13
+ */
14
+ export declare const DEFAULT_SESSION_TTL: number;
15
+ /**
16
+ * Default delegation TTL in seconds (7 days)
17
+ */
18
+ export declare const DEFAULT_DELEGATION_TTL: number;
19
+ /**
20
+ * Default cache TTL in milliseconds (5 minutes)
21
+ */
22
+ export declare const DEFAULT_CACHE_TTL: number;
23
+ /**
24
+ * Default verification cache TTL in seconds (1 minute)
25
+ */
26
+ export declare const DEFAULT_VERIFICATION_CACHE_TTL = 60;
27
+ /**
28
+ * Default session cache TTL in seconds (5 minutes)
29
+ * Used for delegation token session caching
30
+ */
31
+ export declare const DEFAULT_SESSION_CACHE_TTL = 300;
32
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAiB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAgB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Default constants for MCP-I Cloudflare package
3
+ *
4
+ * These constants replace hardcoded values throughout the codebase
5
+ * to ensure consistency and easy configuration updates.
6
+ */
7
+ /**
8
+ * Default AgentShield API URL
9
+ */
10
+ export const DEFAULT_AGENTSHIELD_URL = 'https://kya.vouched.id';
11
+ /**
12
+ * Default session TTL in milliseconds (30 minutes)
13
+ */
14
+ export const DEFAULT_SESSION_TTL = 30 * 60 * 1000;
15
+ /**
16
+ * Default delegation TTL in seconds (7 days)
17
+ */
18
+ export const DEFAULT_DELEGATION_TTL = 7 * 24 * 60 * 60;
19
+ /**
20
+ * Default cache TTL in milliseconds (5 minutes)
21
+ */
22
+ export const DEFAULT_CACHE_TTL = 5 * 60 * 1000;
23
+ /**
24
+ * Default verification cache TTL in seconds (1 minute)
25
+ */
26
+ export const DEFAULT_VERIFICATION_CACHE_TTL = 60;
27
+ /**
28
+ * Default session cache TTL in seconds (5 minutes)
29
+ * Used for delegation token session caching
30
+ */
31
+ export const DEFAULT_SESSION_CACHE_TTL = 300;
32
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Environment Mapping Helpers
3
+ *
4
+ * Utilities for mapping prefixed KV bindings to standard CloudflareEnv format
5
+ */
6
+ import type { CloudflareEnv } from "../types";
7
+ import type { PrefixedCloudflareEnv } from "../agent";
8
+ /**
9
+ * Map prefixed KV bindings to standard CloudflareEnv format
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const env = {
14
+ * MYAPP_NONCE_CACHE: kvNamespace1,
15
+ * MYAPP_PROOF_ARCHIVE: kvNamespace2,
16
+ * // ... other env vars
17
+ * };
18
+ * const mapped = mapPrefixedEnv(env, "MYAPP");
19
+ * // Result: { NONCE_CACHE: kvNamespace1, PROOF_ARCHIVE: kvNamespace2, ... }
20
+ * ```
21
+ */
22
+ export declare function mapPrefixedEnv(env: PrefixedCloudflareEnv, prefix: string): CloudflareEnv;
23
+ //# sourceMappingURL=env-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-mapper.d.ts","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,qBAAqB,EAC1B,MAAM,EAAE,MAAM,GACb,aAAa,CAmBf"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Environment Mapping Helpers
3
+ *
4
+ * Utilities for mapping prefixed KV bindings to standard CloudflareEnv format
5
+ */
6
+ /**
7
+ * Map prefixed KV bindings to standard CloudflareEnv format
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const env = {
12
+ * MYAPP_NONCE_CACHE: kvNamespace1,
13
+ * MYAPP_PROOF_ARCHIVE: kvNamespace2,
14
+ * // ... other env vars
15
+ * };
16
+ * const mapped = mapPrefixedEnv(env, "MYAPP");
17
+ * // Result: { NONCE_CACHE: kvNamespace1, PROOF_ARCHIVE: kvNamespace2, ... }
18
+ * ```
19
+ */
20
+ export function mapPrefixedEnv(env, prefix) {
21
+ const prefixUpper = prefix.toUpperCase();
22
+ return {
23
+ NONCE_CACHE: env[`${prefixUpper}_NONCE_CACHE`],
24
+ PROOF_ARCHIVE: env[`${prefixUpper}_PROOF_ARCHIVE`],
25
+ IDENTITY_STORAGE: env[`${prefixUpper}_IDENTITY_STORAGE`],
26
+ DELEGATION_STORAGE: env[`${prefixUpper}_DELEGATION_STORAGE`],
27
+ TOOL_PROTECTION_KV: env[`${prefixUpper}_TOOL_PROTECTION_KV`],
28
+ MCP_IDENTITY_PRIVATE_KEY: typeof env.MCP_IDENTITY_PRIVATE_KEY === 'string' ? env.MCP_IDENTITY_PRIVATE_KEY : undefined,
29
+ MCP_IDENTITY_PUBLIC_KEY: typeof env.MCP_IDENTITY_PUBLIC_KEY === 'string' ? env.MCP_IDENTITY_PUBLIC_KEY : undefined,
30
+ MCP_IDENTITY_AGENT_DID: typeof env.MCP_IDENTITY_AGENT_DID === 'string' ? env.MCP_IDENTITY_AGENT_DID : undefined,
31
+ AGENTSHIELD_API_URL: typeof env.AGENTSHIELD_API_URL === 'string' ? env.AGENTSHIELD_API_URL : undefined,
32
+ AGENTSHIELD_API_KEY: typeof env.AGENTSHIELD_API_KEY === 'string' ? env.AGENTSHIELD_API_KEY : undefined,
33
+ AGENTSHIELD_PROJECT_ID: typeof env.AGENTSHIELD_PROJECT_ID === 'string' ? env.AGENTSHIELD_PROJECT_ID : undefined,
34
+ MCPI_ENV: typeof env.MCPI_ENV === 'string' ? env.MCPI_ENV : undefined,
35
+ MCP_SERVER_URL: typeof env.MCP_SERVER_URL === 'string' ? env.MCP_SERVER_URL : undefined,
36
+ ENVIRONMENT: typeof env.ENVIRONMENT === 'string' ? env.ENVIRONMENT : undefined,
37
+ };
38
+ }
39
+ //# sourceMappingURL=env-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-mapper.js","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAC5B,GAA0B,EAC1B,MAAc;IAEd,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,GAAG,WAAW,cAAc,CAAgB;QAC7D,aAAa,EAAE,GAAG,CAAC,GAAG,WAAW,gBAAgB,CAA4B;QAC7E,gBAAgB,EAAE,GAAG,CAAC,GAAG,WAAW,mBAAmB,CAA4B;QACnF,kBAAkB,EAAE,GAAG,CAAC,GAAG,WAAW,qBAAqB,CAA4B;QACvF,kBAAkB,EAAE,GAAG,CAAC,GAAG,WAAW,qBAAqB,CAA4B;QACvF,wBAAwB,EAAE,OAAO,GAAG,CAAC,wBAAwB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS;QACrH,uBAAuB,EAAE,OAAO,GAAG,CAAC,uBAAuB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;QAClH,sBAAsB,EAAE,OAAO,GAAG,CAAC,sBAAsB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;QAC/G,mBAAmB,EAAE,OAAO,GAAG,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;QACtG,mBAAmB,EAAE,OAAO,GAAG,CAAC,mBAAmB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS;QACtG,sBAAsB,EAAE,OAAO,GAAG,CAAC,sBAAsB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS;QAC/G,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACrE,cAAc,EAAE,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QACvF,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KAC/E,CAAC;AACJ,CAAC"}