@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.
Files changed (93) hide show
  1. package/README.md +130 -0
  2. package/dist/__tests__/e2e/test-config.d.ts +37 -0
  3. package/dist/__tests__/e2e/test-config.d.ts.map +1 -0
  4. package/dist/__tests__/e2e/test-config.js +62 -0
  5. package/dist/__tests__/e2e/test-config.js.map +1 -0
  6. package/dist/adapter.d.ts +44 -0
  7. package/dist/adapter.d.ts.map +1 -1
  8. package/dist/adapter.js +677 -88
  9. package/dist/adapter.js.map +1 -1
  10. package/dist/agent.d.ts +69 -25
  11. package/dist/agent.d.ts.map +1 -1
  12. package/dist/agent.js +438 -39
  13. package/dist/agent.js.map +1 -1
  14. package/dist/app.d.ts +0 -8
  15. package/dist/app.d.ts.map +1 -1
  16. package/dist/app.js +208 -55
  17. package/dist/app.js.map +1 -1
  18. package/dist/cache/kv-oauth-config-cache.d.ts +47 -0
  19. package/dist/cache/kv-oauth-config-cache.d.ts.map +1 -0
  20. package/dist/cache/kv-oauth-config-cache.js +82 -0
  21. package/dist/cache/kv-oauth-config-cache.js.map +1 -0
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/config.js +33 -4
  24. package/dist/config.js.map +1 -1
  25. package/dist/helpers/env-mapper.d.ts +60 -1
  26. package/dist/helpers/env-mapper.d.ts.map +1 -1
  27. package/dist/helpers/env-mapper.js +136 -6
  28. package/dist/helpers/env-mapper.js.map +1 -1
  29. package/dist/index.d.ts +4 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +8 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/runtime/audit-logger.d.ts +96 -0
  34. package/dist/runtime/audit-logger.d.ts.map +1 -0
  35. package/dist/runtime/audit-logger.js +276 -0
  36. package/dist/runtime/audit-logger.js.map +1 -0
  37. package/dist/runtime/oauth-handler.d.ts +5 -0
  38. package/dist/runtime/oauth-handler.d.ts.map +1 -1
  39. package/dist/runtime/oauth-handler.js +287 -35
  40. package/dist/runtime/oauth-handler.js.map +1 -1
  41. package/dist/runtime.d.ts +12 -1
  42. package/dist/runtime.d.ts.map +1 -1
  43. package/dist/runtime.js +34 -4
  44. package/dist/runtime.js.map +1 -1
  45. package/dist/server.d.ts +7 -0
  46. package/dist/server.d.ts.map +1 -1
  47. package/dist/server.js +55 -2
  48. package/dist/server.js.map +1 -1
  49. package/dist/services/admin.service.d.ts.map +1 -1
  50. package/dist/services/admin.service.js +27 -0
  51. package/dist/services/admin.service.js.map +1 -1
  52. package/dist/services/consent-audit.service.d.ts +91 -0
  53. package/dist/services/consent-audit.service.d.ts.map +1 -0
  54. package/dist/services/consent-audit.service.js +243 -0
  55. package/dist/services/consent-audit.service.js.map +1 -0
  56. package/dist/services/consent-config.service.d.ts +2 -2
  57. package/dist/services/consent-config.service.d.ts.map +1 -1
  58. package/dist/services/consent-config.service.js +55 -24
  59. package/dist/services/consent-config.service.js.map +1 -1
  60. package/dist/services/consent-page-renderer.d.ts +14 -0
  61. package/dist/services/consent-page-renderer.d.ts.map +1 -1
  62. package/dist/services/consent-page-renderer.js +42 -0
  63. package/dist/services/consent-page-renderer.js.map +1 -1
  64. package/dist/services/consent.service.d.ts +82 -4
  65. package/dist/services/consent.service.d.ts.map +1 -1
  66. package/dist/services/consent.service.js +1717 -34
  67. package/dist/services/consent.service.js.map +1 -1
  68. package/dist/services/delegation.service.d.ts.map +1 -1
  69. package/dist/services/delegation.service.js +67 -29
  70. package/dist/services/delegation.service.js.map +1 -1
  71. package/dist/services/idp-token-storage.d.ts +68 -0
  72. package/dist/services/idp-token-storage.d.ts.map +1 -0
  73. package/dist/services/idp-token-storage.js +157 -0
  74. package/dist/services/idp-token-storage.js.map +1 -0
  75. package/dist/services/oauth-service.d.ts +66 -0
  76. package/dist/services/oauth-service.d.ts.map +1 -0
  77. package/dist/services/oauth-service.js +223 -0
  78. package/dist/services/oauth-service.js.map +1 -0
  79. package/dist/services/proof.service.d.ts +5 -3
  80. package/dist/services/proof.service.d.ts.map +1 -1
  81. package/dist/services/proof.service.js +35 -8
  82. package/dist/services/proof.service.js.map +1 -1
  83. package/dist/services/tool-context-builder.d.ts +55 -0
  84. package/dist/services/tool-context-builder.d.ts.map +1 -0
  85. package/dist/services/tool-context-builder.js +124 -0
  86. package/dist/services/tool-context-builder.js.map +1 -0
  87. package/dist/types/tool-context.d.ts +35 -0
  88. package/dist/types/tool-context.d.ts.map +1 -0
  89. package/dist/types/tool-context.js +13 -0
  90. package/dist/types/tool-context.js.map +1 -0
  91. package/dist/types.d.ts +30 -0
  92. package/dist/types.d.ts.map +1 -1
  93. package/package.json +27 -60
package/dist/app.js CHANGED
@@ -9,7 +9,6 @@ import { cors } from "hono/cors";
9
9
  import { MCPICloudflareServer } from "./server";
10
10
  import { CloudflareRuntime, createCloudflareRuntime } from "./index";
11
11
  import { mapPrefixedEnv } from "./helpers/env-mapper";
12
- import { MCPICloudflareAgent } from "./agent";
13
12
  /**
14
13
  * Create a Hono app with all MCP-I routes configured
15
14
  *
@@ -28,67 +27,96 @@ import { MCPICloudflareAgent } from "./agent";
28
27
  * ```
29
28
  */
30
29
  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
- });
30
+ // Agent class is now self-contained and implements required abstract methods
31
+ // No registry pattern needed - configuration is accessed via abstract methods
38
32
  const app = new Hono();
39
33
  app.use("*", cors());
40
34
  // Initialize MCPICloudflareServer for framework routes
41
35
  let mcpiServer = null;
42
36
  async function getMcpiServer(env) {
43
37
  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
- runtimeConfig, // Pass full CloudflareRuntimeConfig for proofing support
79
- });
80
- mcpiServer = new MCPICloudflareServer({
81
- env: mappedEnv,
82
- config: runtimeConfig,
83
- runtime,
84
- });
38
+ let runtimeConfig;
39
+ try {
40
+ console.log("[App] Initializing MCPICloudflareServer...");
41
+ // Map prefixed KV bindings to standard names
42
+ const mappedEnv = options.envPrefix
43
+ ? mapPrefixedEnv(env, options.envPrefix)
44
+ : env;
45
+ console.log("[App] Getting runtime config...");
46
+ runtimeConfig = options.getRuntimeConfig(mappedEnv);
47
+ // Create runtime for MCPICloudflareServer
48
+ const toolProtectionService = runtimeConfig.toolProtection &&
49
+ mappedEnv.TOOL_PROTECTION_KV &&
50
+ mappedEnv.AGENTSHIELD_API_KEY
51
+ ? CloudflareRuntime.createToolProtectionService(mappedEnv.TOOL_PROTECTION_KV, {
52
+ apiUrl: runtimeConfig.toolProtection.agentShield?.apiUrl ||
53
+ mappedEnv.AGENTSHIELD_API_URL ||
54
+ "https://kya.vouched.id",
55
+ apiKey: mappedEnv.AGENTSHIELD_API_KEY,
56
+ projectId: runtimeConfig.toolProtection.agentShield?.projectId ||
57
+ mappedEnv.AGENTSHIELD_PROJECT_ID,
58
+ cacheTtl: runtimeConfig.toolProtection.agentShield?.cacheTtl || 300000,
59
+ debug: runtimeConfig.environment === "development",
60
+ // Wrap fallback ToolProtectionMap into ToolProtectionConfig format
61
+ // Handle both wrapped and unwrapped formats for backward compatibility
62
+ fallbackConfig: runtimeConfig.toolProtection.fallback
63
+ ? runtimeConfig.toolProtection.fallback.toolProtections !==
64
+ undefined
65
+ ? runtimeConfig.toolProtection.fallback // Already wrapped
66
+ : { toolProtections: runtimeConfig.toolProtection.fallback } // Wrap it
67
+ : undefined,
68
+ })
69
+ : undefined;
70
+ const runtime = createCloudflareRuntime({
71
+ env: mappedEnv,
72
+ environment: runtimeConfig.environment,
73
+ audit: {
74
+ enabled: runtimeConfig.audit?.enabled ?? true,
75
+ logFunction: runtimeConfig.audit?.logFunction ||
76
+ ((record) => console.log("[MCP-I Audit]", record)),
77
+ },
78
+ toolProtectionService,
79
+ runtimeConfig, // Pass full CloudflareRuntimeConfig for proofing support
80
+ });
81
+ console.log("[App] Creating MCPICloudflareServer...");
82
+ mcpiServer = new MCPICloudflareServer({
83
+ env: mappedEnv,
84
+ config: runtimeConfig,
85
+ runtime,
86
+ });
87
+ console.log("[App] MCPICloudflareServer initialized successfully");
88
+ }
89
+ catch (error) {
90
+ console.error("[App] Failed to initialize MCPICloudflareServer:", error);
91
+ console.error("[App] Error message:", error?.message);
92
+ console.error("[App] Error stack:", error?.stack);
93
+ console.error("[App] Error name:", error?.name);
94
+ if (error?.cause) {
95
+ console.error("[App] Error cause:", error.cause);
96
+ }
97
+ console.error("[App] Environment keys:", Object.keys(env || {}));
98
+ throw error; // Re-throw so route handlers can catch it
99
+ }
85
100
  }
86
101
  return mcpiServer;
87
102
  }
88
103
  // Route framework endpoints to MCPICloudflareServer
89
104
  app.all("/health", async (c) => {
90
- const server = await getMcpiServer(c.env);
91
- return server.handleRequest(c.req.raw, c.executionCtx);
105
+ try {
106
+ console.log("[App] Health check route hit");
107
+ const server = await getMcpiServer(c.env);
108
+ return server.handleRequest(c.req.raw, c.executionCtx);
109
+ }
110
+ catch (error) {
111
+ console.error("[App] Health check error:", error);
112
+ return new Response(JSON.stringify({
113
+ status: "error",
114
+ error: error?.message || "Unknown error"
115
+ }), {
116
+ status: 500,
117
+ headers: { "Content-Type": "application/json" }
118
+ });
119
+ }
92
120
  });
93
121
  // Consent routes - handle both exact /consent and /consent/* paths
94
122
  app.all("/consent", async (c) => {
@@ -126,10 +154,135 @@ export function createMCPIApp(options) {
126
154
  // This is handled by Cloudflare Workers runtime
127
155
  // Cast to McpAgent to access static serve/serveSSE methods
128
156
  const AgentClass = options.AgentClass;
129
- // Type assertion needed due to @cloudflare/workers-types version incompatibility
130
- // Runtime behavior is correct
131
- app.mount("/sse", AgentClass.serveSSE("/sse").fetch, { replaceRequest: false });
132
- app.mount("/mcp", AgentClass.serve("/mcp").fetch, { replaceRequest: false });
157
+ // Get fetch handlers from agent class
158
+ // These handlers manage Durable Object routing internally
159
+ const sseHandler = AgentClass.serveSSE("/sse").fetch;
160
+ const mcpHandler = AgentClass.serve("/mcp").fetch;
161
+ // Register routes using app.all() to handle all HTTP methods
162
+ // The agent's fetch handlers will handle routing to the correct Durable Object instance
163
+ app.all("/sse", async (c) => {
164
+ try {
165
+ console.log("[App] SSE route hit:", { url: c.req.url, method: c.req.method });
166
+ return await sseHandler(c.req.raw, c.env, c.executionCtx);
167
+ }
168
+ catch (error) {
169
+ console.error("[App] SSE route error:", error);
170
+ console.error("[App] Error message:", error?.message);
171
+ console.error("[App] Error stack:", error?.stack);
172
+ // Get runtime config to check environment
173
+ let isDev = false;
174
+ try {
175
+ const mappedEnv = options.envPrefix
176
+ ? mapPrefixedEnv(c.env, options.envPrefix)
177
+ : c.env;
178
+ const config = options.getRuntimeConfig(mappedEnv);
179
+ isDev = config.environment === "development";
180
+ }
181
+ catch {
182
+ // Ignore errors getting config
183
+ }
184
+ return new Response(JSON.stringify({
185
+ jsonrpc: "2.0",
186
+ error: {
187
+ code: -32603,
188
+ message: "Internal server error",
189
+ data: isDev ? error?.message : undefined
190
+ }
191
+ }), {
192
+ status: 500,
193
+ headers: { "Content-Type": "application/json" }
194
+ });
195
+ }
196
+ });
197
+ app.all("/mcp", async (c) => {
198
+ try {
199
+ console.log("[App] MCP route hit:", {
200
+ url: c.req.url,
201
+ method: c.req.method,
202
+ pathname: new URL(c.req.url).pathname
203
+ });
204
+ const response = await mcpHandler(c.req.raw, c.env, c.executionCtx);
205
+ console.log("[App] MCP route response status:", response?.status);
206
+ return response;
207
+ }
208
+ catch (error) {
209
+ console.error("[App] MCP route error:", error);
210
+ console.error("[App] Error message:", error?.message);
211
+ console.error("[App] Error stack:", error?.stack);
212
+ console.error("[App] Error name:", error?.name);
213
+ if (error?.cause) {
214
+ console.error("[App] Error cause:", error.cause);
215
+ }
216
+ // Get runtime config to check environment
217
+ let isDev = false;
218
+ try {
219
+ const mappedEnv = options.envPrefix
220
+ ? mapPrefixedEnv(c.env, options.envPrefix)
221
+ : c.env;
222
+ const config = options.getRuntimeConfig(mappedEnv);
223
+ isDev = config.environment === "development";
224
+ }
225
+ catch {
226
+ // Ignore errors getting config
227
+ }
228
+ return new Response(JSON.stringify({
229
+ jsonrpc: "2.0",
230
+ error: {
231
+ code: -32603,
232
+ message: "Internal server error",
233
+ data: isDev ? error?.message : undefined
234
+ }
235
+ }), {
236
+ status: 500,
237
+ headers: { "Content-Type": "application/json" }
238
+ });
239
+ }
240
+ });
241
+ // Also handle /mcp/* paths for sub-routes (e.g., /mcp/handshake)
242
+ app.all("/mcp/*", async (c) => {
243
+ try {
244
+ console.log("[App] MCP wildcard route hit:", {
245
+ url: c.req.url,
246
+ method: c.req.method,
247
+ pathname: new URL(c.req.url).pathname
248
+ });
249
+ const response = await mcpHandler(c.req.raw, c.env, c.executionCtx);
250
+ console.log("[App] MCP wildcard route response status:", response?.status);
251
+ return response;
252
+ }
253
+ catch (error) {
254
+ console.error("[App] MCP wildcard route error:", error);
255
+ console.error("[App] Error message:", error?.message);
256
+ console.error("[App] Error stack:", error?.stack);
257
+ console.error("[App] Error name:", error?.name);
258
+ if (error?.cause) {
259
+ console.error("[App] Error cause:", error.cause);
260
+ }
261
+ // Get runtime config to check environment
262
+ let isDev = false;
263
+ try {
264
+ const mappedEnv = options.envPrefix
265
+ ? mapPrefixedEnv(c.env, options.envPrefix)
266
+ : c.env;
267
+ const config = options.getRuntimeConfig(mappedEnv);
268
+ isDev = config.environment === "development";
269
+ }
270
+ catch {
271
+ // Ignore errors getting config
272
+ }
273
+ return new Response(JSON.stringify({
274
+ jsonrpc: "2.0",
275
+ error: {
276
+ code: -32603,
277
+ message: "Internal server error",
278
+ data: isDev ? error?.message : undefined
279
+ }
280
+ }), {
281
+ status: 500,
282
+ headers: { "Content-Type": "application/json" }
283
+ });
284
+ }
285
+ });
133
286
  // Return Cloudflare Worker export with both fetch and scheduled handlers
134
287
  return {
135
288
  fetch: app.fetch.bind(app),
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Cloudflare KV-based cache implementation for OAuth provider configurations
3
+ *
4
+ * Uses Cloudflare KV for distributed caching across Workers instances.
5
+ * Suitable for production Cloudflare Workers deployments.
6
+ *
7
+ * @package @kya-os/mcp-i-cloudflare
8
+ */
9
+ import type { OAuthConfig } from "@kya-os/contracts/config";
10
+ import type { OAuthConfigCache } from "@kya-os/mcp-i-core";
11
+ /**
12
+ * Minimal KV interface for compatibility across @cloudflare/workers-types versions
13
+ */
14
+ interface KVNamespaceLike {
15
+ get(key: string, options?: {
16
+ type?: 'text' | 'json' | 'arrayBuffer' | 'stream';
17
+ }): Promise<string | null>;
18
+ put(key: string, value: string, options?: {
19
+ expirationTtl?: number;
20
+ }): Promise<void>;
21
+ delete(key: string): Promise<void>;
22
+ }
23
+ export interface KVOAuthConfigCacheConfig {
24
+ /** KV namespace for storing cached configs */
25
+ kv: KVNamespaceLike;
26
+ /** Optional key prefix (default: "oauth-config:") */
27
+ keyPrefix?: string;
28
+ }
29
+ /**
30
+ * KV-based cache implementation for OAuth configs
31
+ *
32
+ * Storage format:
33
+ * - Key: `oauth-config:{projectId}`
34
+ * - Value: JSON stringified OAuthConfig
35
+ * - Metadata: expiration timestamp stored in KV metadata
36
+ */
37
+ export declare class KVOAuthConfigCache implements OAuthConfigCache {
38
+ private kv;
39
+ private keyPrefix;
40
+ constructor(config: KVOAuthConfigCacheConfig);
41
+ get(key: string): Promise<OAuthConfig | null>;
42
+ set(key: string, value: OAuthConfig, ttl: number): Promise<void>;
43
+ clear(): Promise<void>;
44
+ delete(key: string): Promise<void>;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=kv-oauth-config-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv-oauth-config-cache.d.ts","sourceRoot":"","sources":["../../src/cache/kv-oauth-config-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,UAAU,eAAe;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1G,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,EAAE,EAAE,eAAe,CAAC;IAEpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,wBAAwB;IAKtC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAwB7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBhE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAazC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Cloudflare KV-based cache implementation for OAuth provider configurations
3
+ *
4
+ * Uses Cloudflare KV for distributed caching across Workers instances.
5
+ * Suitable for production Cloudflare Workers deployments.
6
+ *
7
+ * @package @kya-os/mcp-i-cloudflare
8
+ */
9
+ /**
10
+ * KV-based cache implementation for OAuth configs
11
+ *
12
+ * Storage format:
13
+ * - Key: `oauth-config:{projectId}`
14
+ * - Value: JSON stringified OAuthConfig
15
+ * - Metadata: expiration timestamp stored in KV metadata
16
+ */
17
+ export class KVOAuthConfigCache {
18
+ kv;
19
+ keyPrefix;
20
+ constructor(config) {
21
+ this.kv = config.kv;
22
+ this.keyPrefix = config.keyPrefix || "oauth-config:";
23
+ }
24
+ async get(key) {
25
+ const cacheKey = `${this.keyPrefix}${key}`;
26
+ try {
27
+ const cached = await this.kv.get(cacheKey, {
28
+ type: "json",
29
+ });
30
+ if (!cached) {
31
+ return null;
32
+ }
33
+ // KV automatically handles expiration via expirationTtl set during put()
34
+ // When type is "json", KV returns the parsed object
35
+ return cached;
36
+ }
37
+ catch (error) {
38
+ console.warn("[KVOAuthConfigCache] Failed to get cache entry", {
39
+ key: cacheKey,
40
+ error: error instanceof Error ? error.message : String(error),
41
+ });
42
+ return null;
43
+ }
44
+ }
45
+ async set(key, value, ttl) {
46
+ const cacheKey = `${this.keyPrefix}${key}`;
47
+ try {
48
+ // Convert TTL from milliseconds to seconds (KV uses seconds)
49
+ const ttlSeconds = Math.floor(ttl / 1000);
50
+ await this.kv.put(cacheKey, JSON.stringify(value), {
51
+ expirationTtl: ttlSeconds,
52
+ });
53
+ }
54
+ catch (error) {
55
+ console.warn("[KVOAuthConfigCache] Failed to set cache entry", {
56
+ key: cacheKey,
57
+ error: error instanceof Error ? error.message : String(error),
58
+ });
59
+ // Don't throw - cache failures shouldn't break the app
60
+ }
61
+ }
62
+ async clear() {
63
+ // KV doesn't support clearing all keys efficiently
64
+ // This would require listing all keys, which is expensive
65
+ // For now, we'll log a warning
66
+ console.warn("[KVOAuthConfigCache] clear() not supported for KV cache. Use delete() for specific keys.");
67
+ }
68
+ async delete(key) {
69
+ const cacheKey = `${this.keyPrefix}${key}`;
70
+ try {
71
+ await this.kv.delete(cacheKey);
72
+ }
73
+ catch (error) {
74
+ console.warn("[KVOAuthConfigCache] Failed to delete cache entry", {
75
+ key: cacheKey,
76
+ error: error instanceof Error ? error.message : String(error),
77
+ });
78
+ // Don't throw - cache failures shouldn't break the app
79
+ }
80
+ }
81
+ }
82
+ //# sourceMappingURL=kv-oauth-config-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv-oauth-config-cache.js","sourceRoot":"","sources":["../../src/cache/kv-oauth-config-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IACrB,EAAE,CAAkB;IACpB,SAAS,CAAS;IAE1B,YAAY,MAAgC;QAC1C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACzC,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,yEAAyE;YACzE,oDAAoD;YACpD,OAAO,MAAgC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAC7D,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAkB,EAAE,GAAW;QACpD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAE1C,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACjD,aAAa,EAAE,UAAU;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAC7D,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,uDAAuD;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,mDAAmD;QACnD,0DAA0D;QAC1D,+BAA+B;QAC/B,OAAO,CAAC,IAAI,CACV,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;gBAChE,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,uDAAuD;QACzD,CAAC;IACH,CAAC;CACF"}
@@ -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
@@ -155,12 +155,41 @@ export function defineConfig(config) {
155
155
  apiUrl: env.AGENTSHIELD_API_URL || 'https://kya.vouched.id',
156
156
  apiKey: env.AGENTSHIELD_API_KEY,
157
157
  projectId: env.AGENTSHIELD_PROJECT_ID,
158
- cacheTtl: 300000, // 5 minutes
158
+ /**
159
+ * Cache TTL for tool protection configuration.
160
+ *
161
+ * Default: 300000ms (5 minutes)
162
+ *
163
+ * Environment variable: TOOL_PROTECTION_CACHE_TTL
164
+ *
165
+ * Recommendations:
166
+ * - Production: 300000ms (5 min) - Good balance between performance and freshness
167
+ * - Development: 60000ms (1 min) - Faster feedback during testing
168
+ * - Debugging: 0ms (no cache) - Immediate updates, but degrades performance
169
+ *
170
+ * Note: Even with cache enabled, the AgentShield dashboard automatically
171
+ * triggers cache invalidation via POST /admin/clear-cache when you update
172
+ * tool protection settings. This means changes take effect within seconds
173
+ * rather than waiting for the full cache TTL.
174
+ *
175
+ * Valid range: 0 to 3600000ms (0 to 1 hour)
176
+ */
177
+ cacheTtl: (() => {
178
+ const ttl = env.TOOL_PROTECTION_CACHE_TTL
179
+ ? parseInt(env.TOOL_PROTECTION_CACHE_TTL, 10)
180
+ : 300000; // 5 minutes default
181
+ // Validate range: 0 to 1 hour
182
+ if (isNaN(ttl) || ttl < 0 || ttl > 3600000) {
183
+ console.warn(`Invalid TOOL_PROTECTION_CACHE_TTL: ${env.TOOL_PROTECTION_CACHE_TTL}. ` +
184
+ `Must be between 0 and 3600000 (1 hour). Using default 300000ms (5 min).`);
185
+ return 300000;
186
+ }
187
+ return ttl;
188
+ })(),
159
189
  },
160
190
  // Fallback config (used if API is unavailable)
161
- fallback: {
162
- toolProtections: {}
163
- },
191
+ // Type is ToolProtectionMap (Record<string, ToolProtection>), not wrapped
192
+ fallback: {},
164
193
  debug: baseConfig.environment === 'development',
165
194
  } : undefined),
166
195
  // Admin API configuration
@@ -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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"}
@@ -1,13 +1,41 @@
1
1
  /**
2
2
  * Environment Mapping Helpers
3
3
  *
4
- * Utilities for mapping prefixed KV bindings to standard CloudflareEnv format
4
+ * Utilities for mapping prefixed KV bindings to standard CloudflareEnv format.
5
+ *
6
+ * These utilities ensure consistent KV binding access across all components,
7
+ * supporting both prefixed (e.g., `_17429_NONCE_CACHE`) and non-prefixed (e.g., `NONCE_CACHE`) formats.
8
+ *
9
+ * @module @kya-os/mcp-i-cloudflare/helpers/env-mapper
5
10
  */
6
11
  import type { CloudflareEnv } from "../types";
7
12
  import type { PrefixedCloudflareEnv } from "../agent";
13
+ /**
14
+ * Detect environment prefix by checking for prefixed KV bindings
15
+ *
16
+ * Checks common KV binding names to determine if a prefix is being used.
17
+ * Returns the prefix (without underscore) if found, undefined otherwise.
18
+ *
19
+ * @param env - Environment object to check
20
+ * @returns Detected prefix (e.g., "_17429" → "17429") or undefined
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const env = { _17429_NONCE_CACHE: kvNamespace };
25
+ * const prefix = detectEnvPrefix(env); // Returns "17429"
26
+ * ```
27
+ */
28
+ export declare function detectEnvPrefix(env: any): string | undefined;
8
29
  /**
9
30
  * Map prefixed KV bindings to standard CloudflareEnv format
10
31
  *
32
+ * Explicitly maps prefixed KV bindings (e.g., `MYAPP_NONCE_CACHE`) to standard names
33
+ * (e.g., `NONCE_CACHE`). Use this when you know the prefix ahead of time.
34
+ *
35
+ * @param env - Environment object with prefixed KV bindings
36
+ * @param prefix - Prefix to use (e.g., "MYAPP" or "_17429")
37
+ * @returns Normalized CloudflareEnv with standard KV binding names
38
+ *
11
39
  * @example
12
40
  * ```typescript
13
41
  * const env = {
@@ -20,4 +48,35 @@ import type { PrefixedCloudflareEnv } from "../agent";
20
48
  * ```
21
49
  */
22
50
  export declare function mapPrefixedEnv(env: PrefixedCloudflareEnv, prefix: string): CloudflareEnv;
51
+ /**
52
+ * Normalize Cloudflare environment to standard CloudflareEnv format
53
+ *
54
+ * Automatically handles both prefixed and non-prefixed KV bindings:
55
+ * - If `prefix` is provided, uses explicit prefix mapping
56
+ * - If `prefix` is not provided, attempts auto-detection
57
+ * - Falls back to direct access if no prefix detected
58
+ *
59
+ * This is the recommended function for normalizing environments before use.
60
+ * All components should use this to ensure consistent KV binding access.
61
+ *
62
+ * @param env - Environment object (may have prefixed or non-prefixed KV bindings)
63
+ * @param prefix - Optional explicit prefix (e.g., "MYAPP" or "_17429")
64
+ * @returns Normalized CloudflareEnv with standard KV binding names
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * // With explicit prefix
69
+ * const env1 = { MYAPP_NONCE_CACHE: kvNamespace };
70
+ * const normalized1 = normalizeCloudflareEnv(env1, "MYAPP");
71
+ *
72
+ * // With auto-detection
73
+ * const env2 = { _17429_NONCE_CACHE: kvNamespace };
74
+ * const normalized2 = normalizeCloudflareEnv(env2); // Auto-detects "_17429"
75
+ *
76
+ * // Without prefix (direct access)
77
+ * const env3 = { NONCE_CACHE: kvNamespace };
78
+ * const normalized3 = normalizeCloudflareEnv(env3); // Uses direct access
79
+ * ```
80
+ */
81
+ export declare function normalizeCloudflareEnv(env: any, prefix?: string): CloudflareEnv;
23
82
  //# sourceMappingURL=env-mapper.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"env-mapper.d.ts","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAatD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAsB5D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,qBAAqB,EAC1B,MAAM,EAAE,MAAM,GACb,aAAa,CA+Bf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,EACR,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAgCf"}