@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.
- package/README.md +132 -255
- package/dist/adapter.js.map +1 -1
- package/dist/agent.d.ts +88 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +157 -0
- package/dist/agent.js.map +1 -0
- package/dist/app.d.ts +52 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +115 -0
- package/dist/app.js.map +1 -0
- package/dist/config.d.ts +26 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +83 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +32 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +32 -0
- package/dist/constants.js.map +1 -0
- package/dist/helpers/env-mapper.d.ts +23 -0
- package/dist/helpers/env-mapper.d.ts.map +1 -0
- package/dist/helpers/env-mapper.js +39 -0
- package/dist/helpers/env-mapper.js.map +1 -0
- package/dist/index.d.ts +28 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +51 -37
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +3 -2
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts +58 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +125 -0
- package/dist/server.js.map +1 -0
- package/dist/services/admin.service.d.ts +22 -0
- package/dist/services/admin.service.d.ts.map +1 -0
- package/dist/services/admin.service.js +151 -0
- package/dist/services/admin.service.js.map +1 -0
- package/dist/services/consent.service.d.ts +25 -0
- package/dist/services/consent.service.d.ts.map +1 -0
- package/dist/services/consent.service.js +48 -0
- package/dist/services/consent.service.js.map +1 -0
- package/dist/services/delegation.service.d.ts +33 -0
- package/dist/services/delegation.service.d.ts.map +1 -0
- package/dist/services/delegation.service.js +168 -0
- package/dist/services/delegation.service.js.map +1 -0
- package/dist/services/proof.service.d.ts +32 -0
- package/dist/services/proof.service.d.ts.map +1 -0
- package/dist/services/proof.service.js +95 -0
- package/dist/services/proof.service.js.map +1 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- 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
|
package/dist/app.js.map
ADDED
|
@@ -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
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
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"}
|