@kya-os/mcp-i-core 1.1.0 → 1.1.1-canary.1
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/dist/__tests__/utils/mock-providers.d.ts +102 -0
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -0
- package/dist/__tests__/utils/mock-providers.js +270 -0
- package/dist/__tests__/utils/mock-providers.js.map +1 -0
- package/dist/cache/tool-protection-cache.d.ts +73 -0
- package/dist/cache/tool-protection-cache.d.ts.map +1 -0
- package/dist/cache/tool-protection-cache.js +83 -0
- package/dist/cache/tool-protection-cache.js.map +1 -0
- package/dist/compliance/index.d.ts +8 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +24 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/schema-registry.d.ts +50 -0
- package/dist/compliance/schema-registry.d.ts.map +1 -0
- package/dist/compliance/schema-registry.js +438 -0
- package/dist/compliance/schema-registry.js.map +1 -0
- package/dist/compliance/schema-verifier-v2.d.ts +110 -0
- package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
- package/dist/compliance/schema-verifier-v2.js +510 -0
- package/dist/compliance/schema-verifier-v2.js.map +1 -0
- package/dist/compliance/schema-verifier.d.ts +110 -0
- package/dist/compliance/schema-verifier.d.ts.map +1 -0
- package/dist/compliance/schema-verifier.js +518 -0
- package/dist/compliance/schema-verifier.js.map +1 -0
- package/dist/delegation/bitstring.d.ts +139 -0
- package/dist/delegation/bitstring.d.ts.map +1 -0
- package/dist/delegation/bitstring.js +213 -0
- package/dist/delegation/bitstring.js.map +1 -0
- package/dist/delegation/cascading-revocation.d.ts +162 -0
- package/dist/delegation/cascading-revocation.d.ts.map +1 -0
- package/dist/delegation/cascading-revocation.js +263 -0
- package/dist/delegation/cascading-revocation.js.map +1 -0
- package/dist/delegation/delegation-graph.d.ts +178 -0
- package/dist/delegation/delegation-graph.d.ts.map +1 -0
- package/dist/delegation/delegation-graph.js +209 -0
- package/dist/delegation/delegation-graph.js.map +1 -0
- package/dist/delegation/index.d.ts +14 -0
- package/dist/delegation/index.d.ts.map +1 -0
- package/dist/delegation/index.js +30 -0
- package/dist/delegation/index.js.map +1 -0
- package/dist/delegation/statuslist-manager.d.ts +148 -0
- package/dist/delegation/statuslist-manager.d.ts.map +1 -0
- package/dist/delegation/statuslist-manager.js +221 -0
- package/dist/delegation/statuslist-manager.js.map +1 -0
- package/dist/delegation/storage/index.d.ts +9 -0
- package/dist/delegation/storage/index.d.ts.map +1 -0
- package/dist/delegation/storage/index.js +25 -0
- package/dist/delegation/storage/index.js.map +1 -0
- package/dist/delegation/storage/memory-graph-storage.d.ts +70 -0
- package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -0
- package/dist/delegation/storage/memory-graph-storage.js +149 -0
- package/dist/delegation/storage/memory-graph-storage.js.map +1 -0
- package/dist/delegation/storage/memory-statuslist-storage.d.ts +49 -0
- package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -0
- package/dist/delegation/storage/memory-statuslist-storage.js +67 -0
- package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -0
- package/dist/delegation/utils.d.ts +19 -0
- package/dist/delegation/utils.d.ts.map +1 -0
- package/dist/delegation/utils.js +48 -0
- package/dist/delegation/utils.js.map +1 -0
- package/dist/delegation/vc-issuer.d.ts +135 -0
- package/dist/delegation/vc-issuer.d.ts.map +1 -0
- package/dist/delegation/vc-issuer.js +140 -0
- package/dist/delegation/vc-issuer.js.map +1 -0
- package/dist/delegation/vc-verifier.d.ts +213 -0
- package/dist/delegation/vc-verifier.d.ts.map +1 -0
- package/dist/delegation/vc-verifier.js +354 -0
- package/dist/delegation/vc-verifier.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/base.d.ts +1 -1
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/memory.js +2 -2
- package/dist/providers/memory.js.map +1 -1
- package/dist/runtime/base.d.ts +12 -0
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +96 -2
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/tool-protection.service.d.ts +55 -0
- package/dist/services/tool-protection.service.d.ts.map +1 -0
- package/dist/services/tool-protection.service.js +158 -0
- package/dist/services/tool-protection.service.js.map +1 -0
- package/dist/types/tool-protection.d.ts +103 -0
- package/dist/types/tool-protection.d.ts.map +1 -0
- package/dist/types/tool-protection.js +41 -0
- package/dist/types/tool-protection.js.map +1 -0
- package/dist/utils/cors.d.ts +44 -0
- package/dist/utils/cors.d.ts.map +1 -0
- package/dist/utils/cors.js +71 -0
- package/dist/utils/cors.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +9 -6
package/dist/runtime/base.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.MCPIRuntimeBase = void 0;
|
|
11
|
+
const tool_protection_js_1 = require("../types/tool-protection.js");
|
|
11
12
|
class MCPIRuntimeBase {
|
|
12
13
|
crypto;
|
|
13
14
|
clock;
|
|
@@ -89,8 +90,51 @@ class MCPIRuntimeBase {
|
|
|
89
90
|
/**
|
|
90
91
|
* Process tool call with automatic proof generation
|
|
91
92
|
* Returns clean result only - proof is stored for out-of-band retrieval
|
|
93
|
+
*
|
|
94
|
+
* @param toolName - Name of the tool being called
|
|
95
|
+
* @param args - Tool arguments
|
|
96
|
+
* @param handler - Tool execution handler
|
|
97
|
+
* @param session - Session context (expected fields: id, audience, nonce?, delegationToken?, consentProof?)
|
|
92
98
|
*/
|
|
93
99
|
async processToolCall(toolName, args, handler, session) {
|
|
100
|
+
// Check tool protection (delegation requirement)
|
|
101
|
+
if (this.config.toolProtectionService) {
|
|
102
|
+
// Get agent identity to check protection
|
|
103
|
+
const identity = await this.getIdentity();
|
|
104
|
+
if (this.config.audit?.enabled) {
|
|
105
|
+
console.log('[MCP-I] Checking tool protection:', {
|
|
106
|
+
tool: toolName,
|
|
107
|
+
agentDid: identity.did.slice(0, 20) + '...',
|
|
108
|
+
hasDelegation: !!(session?.delegationToken || session?.consentProof),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const protection = await this.config.toolProtectionService.checkToolProtection(toolName, identity.did);
|
|
112
|
+
if (protection) {
|
|
113
|
+
// Tool requires delegation
|
|
114
|
+
const hasDelegation = session?.delegationToken || session?.consentProof;
|
|
115
|
+
if (!hasDelegation) {
|
|
116
|
+
// No delegation provided - throw error with consent URL
|
|
117
|
+
const consentUrl = this.buildConsentUrl(toolName, protection.requiredScopes, session);
|
|
118
|
+
if (this.config.audit?.enabled) {
|
|
119
|
+
console.warn('[MCP-I] BLOCKED: Tool requires delegation but none provided', {
|
|
120
|
+
tool: toolName,
|
|
121
|
+
requiredScopes: protection.requiredScopes,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
throw new tool_protection_js_1.DelegationRequiredError(toolName, protection.requiredScopes, consentUrl);
|
|
125
|
+
}
|
|
126
|
+
// Delegation provided - verify it (placeholder for future implementation)
|
|
127
|
+
// TODO: Implement delegation token verification
|
|
128
|
+
if (this.config.audit?.enabled) {
|
|
129
|
+
console.log('[MCP-I] Tool protection check passed (delegation provided)');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
if (this.config.audit?.enabled) {
|
|
134
|
+
console.log('[MCP-I] Tool protection check passed (no delegation required)');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
94
138
|
// Execute the tool
|
|
95
139
|
const result = await handler(args);
|
|
96
140
|
// Create proof
|
|
@@ -108,6 +152,19 @@ class MCPIRuntimeBase {
|
|
|
108
152
|
// Return clean result only (no proof in LLM context)
|
|
109
153
|
return result;
|
|
110
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Build consent URL for delegation flow
|
|
157
|
+
* Override this method in subclasses to customize the consent URL
|
|
158
|
+
*/
|
|
159
|
+
buildConsentUrl(toolName, scopes, session) {
|
|
160
|
+
// Default implementation - override in subclasses
|
|
161
|
+
const params = new URLSearchParams({
|
|
162
|
+
tool: toolName,
|
|
163
|
+
scopes: scopes.join(','),
|
|
164
|
+
sessionId: session?.id || '',
|
|
165
|
+
});
|
|
166
|
+
return `https://agentshield.kya.xyz/consent?${params.toString()}`;
|
|
167
|
+
}
|
|
111
168
|
/**
|
|
112
169
|
* Issue a new nonce and register it in the cache
|
|
113
170
|
* Use this to get a nonce for the session context before calling processToolCall
|
|
@@ -212,7 +269,41 @@ class MCPIRuntimeBase {
|
|
|
212
269
|
return async (path) => {
|
|
213
270
|
const identity = await this.getIdentity();
|
|
214
271
|
if (path === '/.well-known/did.json') {
|
|
215
|
-
|
|
272
|
+
const didDocument = this.createDIDDocument(identity);
|
|
273
|
+
return {
|
|
274
|
+
status: 200,
|
|
275
|
+
headers: {
|
|
276
|
+
'Content-Type': 'application/did+json',
|
|
277
|
+
'Cache-Control': this.config.environment === 'production'
|
|
278
|
+
? 'public, max-age=300'
|
|
279
|
+
: 'no-store'
|
|
280
|
+
},
|
|
281
|
+
body: JSON.stringify(didDocument, null, 2)
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
if (path === '/.well-known/agent.json') {
|
|
285
|
+
const agentDocument = {
|
|
286
|
+
id: identity.did,
|
|
287
|
+
capabilities: {
|
|
288
|
+
'mcp-i': ['handshake', 'signing', 'verification']
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
if (config?.serviceName || config?.serviceEndpoint) {
|
|
292
|
+
agentDocument.metadata = {
|
|
293
|
+
...(config?.serviceName && { name: config.serviceName }),
|
|
294
|
+
...(config?.serviceEndpoint && { serviceEndpoint: config.serviceEndpoint })
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
status: 200,
|
|
299
|
+
headers: {
|
|
300
|
+
'Content-Type': 'application/json',
|
|
301
|
+
'Cache-Control': this.config.environment === 'production'
|
|
302
|
+
? 'public, max-age=300'
|
|
303
|
+
: 'no-store'
|
|
304
|
+
},
|
|
305
|
+
body: JSON.stringify(agentDocument, null, 2)
|
|
306
|
+
};
|
|
216
307
|
}
|
|
217
308
|
if (path === '/.well-known/mcp-identity') {
|
|
218
309
|
return {
|
|
@@ -263,11 +354,12 @@ class MCPIRuntimeBase {
|
|
|
263
354
|
* Rotate keys
|
|
264
355
|
*/
|
|
265
356
|
async rotateKeys() {
|
|
357
|
+
const oldDid = this.cachedIdentity?.did;
|
|
266
358
|
const newIdentity = await this.identity.rotateKeys();
|
|
267
359
|
this.cachedIdentity = newIdentity;
|
|
268
360
|
if (this.config.audit?.enabled) {
|
|
269
361
|
this.logAudit('keys_rotated', {
|
|
270
|
-
oldDid:
|
|
362
|
+
oldDid: oldDid,
|
|
271
363
|
newDid: newIdentity.did,
|
|
272
364
|
timestamp: this.clock.now()
|
|
273
365
|
});
|
|
@@ -314,6 +406,8 @@ class MCPIRuntimeBase {
|
|
|
314
406
|
id: `${identity.did}#key-1`,
|
|
315
407
|
type: 'Ed25519VerificationKey2020',
|
|
316
408
|
controller: identity.did,
|
|
409
|
+
// Using base64 for cross-platform compatibility (Cloudflare Workers)
|
|
410
|
+
// W3C DID spec supports both base64 and multibase formats
|
|
317
411
|
publicKeyBase64: identity.publicKey
|
|
318
412
|
}],
|
|
319
413
|
authentication: [`${identity.did}#key-1`],
|
package/dist/runtime/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolProtectionService - Fetches and caches tool protection configurations
|
|
3
|
+
*
|
|
4
|
+
* This service:
|
|
5
|
+
* 1. Fetches tool protection config from AgentShield API
|
|
6
|
+
* 2. Caches responses to reduce API calls
|
|
7
|
+
* 3. Falls back to local config if API unavailable
|
|
8
|
+
* 4. Provides delegation checking logic
|
|
9
|
+
*
|
|
10
|
+
* @package @kya-os/mcp-i-core
|
|
11
|
+
*/
|
|
12
|
+
import type { ToolProtection, ToolProtectionConfig, ToolProtectionServiceConfig } from '../types/tool-protection.js';
|
|
13
|
+
import type { ToolProtectionCache } from '../cache/tool-protection-cache.js';
|
|
14
|
+
/**
|
|
15
|
+
* Service for fetching and checking tool protection configurations
|
|
16
|
+
*/
|
|
17
|
+
export declare class ToolProtectionService {
|
|
18
|
+
private config;
|
|
19
|
+
private cache;
|
|
20
|
+
constructor(config: ToolProtectionServiceConfig, cache: ToolProtectionCache);
|
|
21
|
+
/**
|
|
22
|
+
* Get tool protection configuration for the agent
|
|
23
|
+
*
|
|
24
|
+
* Flow:
|
|
25
|
+
* 1. Check cache
|
|
26
|
+
* 2. If cache miss, fetch from API
|
|
27
|
+
* 3. If API fails, use fallback config
|
|
28
|
+
* 4. Cache successful API responses
|
|
29
|
+
*
|
|
30
|
+
* @param agentDid DID of the agent to fetch config for
|
|
31
|
+
*/
|
|
32
|
+
getToolProtectionConfig(agentDid: string): Promise<ToolProtectionConfig>;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a tool requires delegation
|
|
35
|
+
*
|
|
36
|
+
* @param toolName Name of the tool to check
|
|
37
|
+
* @param agentDid DID of the agent executing the tool
|
|
38
|
+
* @returns Tool protection config or null if no protection required
|
|
39
|
+
*/
|
|
40
|
+
checkToolProtection(toolName: string, agentDid: string): Promise<ToolProtection | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Fetch tool protection config from AgentShield API
|
|
43
|
+
* Calls /api/v1/bouncer/config?agent_did={agentDid}
|
|
44
|
+
*
|
|
45
|
+
* @param agentDid DID of the agent to fetch config for
|
|
46
|
+
*/
|
|
47
|
+
private fetchFromApi;
|
|
48
|
+
/**
|
|
49
|
+
* Clear the cache for a specific agent (useful for testing or manual refresh)
|
|
50
|
+
*
|
|
51
|
+
* @param agentDid DID of the agent to clear cache for
|
|
52
|
+
*/
|
|
53
|
+
clearCache(agentDid: string): Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tool-protection.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-protection.service.d.ts","sourceRoot":"","sources":["../../src/services/tool-protection.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAE5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAsB7E;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAsB;gBAGjC,MAAM,EAAE,2BAA2B,EACnC,KAAK,EAAE,mBAAmB;IAM5B;;;;;;;;;;OAUG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgF9E;;;;;;OAMG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAW7F;;;;;OAKG;YACW,YAAY;IA+B1B;;;;OAIG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIlD"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ToolProtectionService - Fetches and caches tool protection configurations
|
|
4
|
+
*
|
|
5
|
+
* This service:
|
|
6
|
+
* 1. Fetches tool protection config from AgentShield API
|
|
7
|
+
* 2. Caches responses to reduce API calls
|
|
8
|
+
* 3. Falls back to local config if API unavailable
|
|
9
|
+
* 4. Provides delegation checking logic
|
|
10
|
+
*
|
|
11
|
+
* @package @kya-os/mcp-i-core
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ToolProtectionService = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* Service for fetching and checking tool protection configurations
|
|
17
|
+
*/
|
|
18
|
+
class ToolProtectionService {
|
|
19
|
+
config;
|
|
20
|
+
cache;
|
|
21
|
+
constructor(config, cache) {
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.cache = cache;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get tool protection configuration for the agent
|
|
27
|
+
*
|
|
28
|
+
* Flow:
|
|
29
|
+
* 1. Check cache
|
|
30
|
+
* 2. If cache miss, fetch from API
|
|
31
|
+
* 3. If API fails, use fallback config
|
|
32
|
+
* 4. Cache successful API responses
|
|
33
|
+
*
|
|
34
|
+
* @param agentDid DID of the agent to fetch config for
|
|
35
|
+
*/
|
|
36
|
+
async getToolProtectionConfig(agentDid) {
|
|
37
|
+
const cacheKey = `tool-protection:${agentDid}`;
|
|
38
|
+
// 1. Check cache
|
|
39
|
+
const cached = await this.cache.get(cacheKey);
|
|
40
|
+
if (cached) {
|
|
41
|
+
if (this.config.debug) {
|
|
42
|
+
console.log('[ToolProtectionService] Cache hit', { agentDid: agentDid.slice(0, 20) + '...' });
|
|
43
|
+
}
|
|
44
|
+
return cached;
|
|
45
|
+
}
|
|
46
|
+
if (this.config.debug) {
|
|
47
|
+
console.log('[ToolProtectionService] Cache miss, fetching from API', {
|
|
48
|
+
agentDid: agentDid.slice(0, 20) + '...',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// 2. Fetch from API
|
|
52
|
+
try {
|
|
53
|
+
const response = await this.fetchFromApi(agentDid);
|
|
54
|
+
// Transform API response format to internal format
|
|
55
|
+
// API returns: { data: { tools: { greet: { scopes: [...], requiresDelegation: true } } } }
|
|
56
|
+
// We need: { toolProtections: { greet: { requiredScopes: [...], requiresDelegation: true } } }
|
|
57
|
+
const toolProtections = {};
|
|
58
|
+
if (response.data.tools) {
|
|
59
|
+
for (const [toolName, toolConfig] of Object.entries(response.data.tools)) {
|
|
60
|
+
toolProtections[toolName] = {
|
|
61
|
+
requiresDelegation: toolConfig.requiresDelegation ?? false,
|
|
62
|
+
requiredScopes: toolConfig.scopes || [],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const config = { toolProtections };
|
|
67
|
+
// 3. Cache the response
|
|
68
|
+
const ttl = this.config.cacheTtl ?? 300000; // Default 5 minutes
|
|
69
|
+
await this.cache.set(cacheKey, config, ttl);
|
|
70
|
+
if (this.config.debug) {
|
|
71
|
+
console.log('[ToolProtectionService] API fetch successful, cached', {
|
|
72
|
+
agentDid: agentDid.slice(0, 20) + '...',
|
|
73
|
+
toolCount: Object.keys(toolProtections).length,
|
|
74
|
+
ttl,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return config;
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (this.config.debug) {
|
|
81
|
+
console.error('[ToolProtectionService] API fetch failed', {
|
|
82
|
+
agentDid: agentDid.slice(0, 20) + '...',
|
|
83
|
+
error: error instanceof Error ? error.message : String(error),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// 4. Fallback to local config
|
|
87
|
+
if (this.config.fallbackConfig) {
|
|
88
|
+
if (this.config.debug) {
|
|
89
|
+
console.log('[ToolProtectionService] Using fallback config', {
|
|
90
|
+
agentDid: agentDid.slice(0, 20) + '...',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return this.config.fallbackConfig;
|
|
94
|
+
}
|
|
95
|
+
// 5. No fallback available - return empty config (allow all tools)
|
|
96
|
+
if (this.config.debug) {
|
|
97
|
+
console.warn('[ToolProtectionService] No fallback config, allowing all tools', {
|
|
98
|
+
agentDid: agentDid.slice(0, 20) + '...',
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return { toolProtections: {} };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check if a tool requires delegation
|
|
106
|
+
*
|
|
107
|
+
* @param toolName Name of the tool to check
|
|
108
|
+
* @param agentDid DID of the agent executing the tool
|
|
109
|
+
* @returns Tool protection config or null if no protection required
|
|
110
|
+
*/
|
|
111
|
+
async checkToolProtection(toolName, agentDid) {
|
|
112
|
+
const config = await this.getToolProtectionConfig(agentDid);
|
|
113
|
+
const protection = config.toolProtections[toolName];
|
|
114
|
+
if (!protection || !protection.requiresDelegation) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return protection;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Fetch tool protection config from AgentShield API
|
|
121
|
+
* Calls /api/v1/bouncer/config?agent_did={agentDid}
|
|
122
|
+
*
|
|
123
|
+
* @param agentDid DID of the agent to fetch config for
|
|
124
|
+
*/
|
|
125
|
+
async fetchFromApi(agentDid) {
|
|
126
|
+
const url = `${this.config.apiUrl}/api/v1/bouncer/config?agent_did=${encodeURIComponent(agentDid)}`;
|
|
127
|
+
if (this.config.debug) {
|
|
128
|
+
console.log('[ToolProtectionService] Fetching from API:', url);
|
|
129
|
+
}
|
|
130
|
+
const response = await fetch(url, {
|
|
131
|
+
method: 'GET',
|
|
132
|
+
headers: {
|
|
133
|
+
'Content-Type': 'application/json',
|
|
134
|
+
'Authorization': `Bearer ${this.config.apiKey}`,
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
if (!response.ok) {
|
|
138
|
+
const errorText = await response.text().catch(() => 'Unknown error');
|
|
139
|
+
throw new Error(`Failed to fetch bouncer config: ${response.status} ${response.statusText} - ${errorText}`);
|
|
140
|
+
}
|
|
141
|
+
const data = (await response.json());
|
|
142
|
+
if (!data.success) {
|
|
143
|
+
throw new Error('API returned success: false');
|
|
144
|
+
}
|
|
145
|
+
return data;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Clear the cache for a specific agent (useful for testing or manual refresh)
|
|
149
|
+
*
|
|
150
|
+
* @param agentDid DID of the agent to clear cache for
|
|
151
|
+
*/
|
|
152
|
+
async clearCache(agentDid) {
|
|
153
|
+
const cacheKey = `tool-protection:${agentDid}`;
|
|
154
|
+
await this.cache.delete(cacheKey);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.ToolProtectionService = ToolProtectionService;
|
|
158
|
+
//# sourceMappingURL=tool-protection.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-protection.service.js","sourceRoot":"","sources":["../../src/services/tool-protection.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Protection Types
|
|
3
|
+
*
|
|
4
|
+
* Shared type definitions for tool protection and delegation enforcement.
|
|
5
|
+
* These types are used across all MCP-I packages to ensure consistency.
|
|
6
|
+
*
|
|
7
|
+
* @package @kya-os/mcp-i-core
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Tool protection configuration for a single tool
|
|
12
|
+
*/
|
|
13
|
+
export interface ToolProtection {
|
|
14
|
+
/**
|
|
15
|
+
* Whether this tool requires delegation (user authorization) to execute
|
|
16
|
+
*/
|
|
17
|
+
requiresDelegation: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Required scopes for executing this tool
|
|
20
|
+
* Format: "resource:action" (e.g., ["greet:execute", "user:read"])
|
|
21
|
+
*/
|
|
22
|
+
requiredScopes: string[];
|
|
23
|
+
/**
|
|
24
|
+
* Risk level of the tool (optional, used for UI display)
|
|
25
|
+
*/
|
|
26
|
+
riskLevel?: 'low' | 'medium' | 'high' | 'critical';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Complete tool protection configuration for a project
|
|
30
|
+
*/
|
|
31
|
+
export interface ToolProtectionConfig {
|
|
32
|
+
/**
|
|
33
|
+
* Map of tool names to their protection settings
|
|
34
|
+
*/
|
|
35
|
+
toolProtections: Record<string, ToolProtection>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Configuration for the ToolProtectionService
|
|
39
|
+
*/
|
|
40
|
+
export interface ToolProtectionServiceConfig {
|
|
41
|
+
/**
|
|
42
|
+
* AgentShield API base URL
|
|
43
|
+
* @example "https://kya.vouched.id"
|
|
44
|
+
*/
|
|
45
|
+
apiUrl: string;
|
|
46
|
+
/**
|
|
47
|
+
* AgentShield API key for authentication
|
|
48
|
+
* @example "sk_..."
|
|
49
|
+
*/
|
|
50
|
+
apiKey: string;
|
|
51
|
+
/**
|
|
52
|
+
* Project ID (optional, used for backward compatibility)
|
|
53
|
+
* The service now fetches config by agent DID instead
|
|
54
|
+
* @deprecated Use agent DID from runtime identity
|
|
55
|
+
* @example "mcp-i-ieu0ro"
|
|
56
|
+
*/
|
|
57
|
+
projectId?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Cache TTL in milliseconds
|
|
60
|
+
* @default 300000 (5 minutes)
|
|
61
|
+
*/
|
|
62
|
+
cacheTtl?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Fallback configuration to use if API is unavailable
|
|
65
|
+
* @optional
|
|
66
|
+
*/
|
|
67
|
+
fallbackConfig?: ToolProtectionConfig;
|
|
68
|
+
/**
|
|
69
|
+
* Enable debug logging
|
|
70
|
+
* @default false
|
|
71
|
+
*/
|
|
72
|
+
debug?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* API response from /api/v1/bouncer/projects/{projectId}/tool-protections
|
|
76
|
+
*/
|
|
77
|
+
export interface ToolProtectionApiResponse {
|
|
78
|
+
success: boolean;
|
|
79
|
+
data: {
|
|
80
|
+
toolProtections: Record<string, ToolProtection>;
|
|
81
|
+
};
|
|
82
|
+
metadata: {
|
|
83
|
+
timestamp: string;
|
|
84
|
+
cachedUntil: string;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Error thrown when a tool requires delegation but none is provided
|
|
89
|
+
*/
|
|
90
|
+
export declare class DelegationRequiredError extends Error {
|
|
91
|
+
toolName: string;
|
|
92
|
+
requiredScopes: string[];
|
|
93
|
+
consentUrl?: string | undefined;
|
|
94
|
+
constructor(toolName: string, requiredScopes: string[], consentUrl?: string | undefined);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Error thrown when the tool protection service fails
|
|
98
|
+
*/
|
|
99
|
+
export declare class ToolProtectionServiceError extends Error {
|
|
100
|
+
cause?: Error | undefined;
|
|
101
|
+
constructor(message: string, cause?: Error | undefined);
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=tool-protection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-protection.d.ts","sourceRoot":"","sources":["../../src/types/tool-protection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;KACjD,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAEvC,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM,EAAE;IACxB,UAAU,CAAC,EAAE,MAAM;gBAFnB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EAAE,EACxB,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACf,KAAK,CAAC,EAAE,KAAK;gBAArC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,KAAK,YAAA;CAIlD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tool Protection Types
|
|
4
|
+
*
|
|
5
|
+
* Shared type definitions for tool protection and delegation enforcement.
|
|
6
|
+
* These types are used across all MCP-I packages to ensure consistency.
|
|
7
|
+
*
|
|
8
|
+
* @package @kya-os/mcp-i-core
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ToolProtectionServiceError = exports.DelegationRequiredError = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* Error thrown when a tool requires delegation but none is provided
|
|
15
|
+
*/
|
|
16
|
+
class DelegationRequiredError extends Error {
|
|
17
|
+
toolName;
|
|
18
|
+
requiredScopes;
|
|
19
|
+
consentUrl;
|
|
20
|
+
constructor(toolName, requiredScopes, consentUrl) {
|
|
21
|
+
super(`Delegation required for tool "${toolName}"`);
|
|
22
|
+
this.toolName = toolName;
|
|
23
|
+
this.requiredScopes = requiredScopes;
|
|
24
|
+
this.consentUrl = consentUrl;
|
|
25
|
+
this.name = 'DelegationRequiredError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.DelegationRequiredError = DelegationRequiredError;
|
|
29
|
+
/**
|
|
30
|
+
* Error thrown when the tool protection service fails
|
|
31
|
+
*/
|
|
32
|
+
class ToolProtectionServiceError extends Error {
|
|
33
|
+
cause;
|
|
34
|
+
constructor(message, cause) {
|
|
35
|
+
super(message);
|
|
36
|
+
this.cause = cause;
|
|
37
|
+
this.name = 'ToolProtectionServiceError';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.ToolProtectionServiceError = ToolProtectionServiceError;
|
|
41
|
+
//# sourceMappingURL=tool-protection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-protection.js","sourceRoot":"","sources":["../../src/types/tool-protection.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA0FH;;GAEG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAEvC;IACA;IACA;IAHT,YACS,QAAgB,EAChB,cAAwB,EACxB,UAAmB;QAE1B,KAAK,CAAC,iCAAiC,QAAQ,GAAG,CAAC,CAAC;QAJ7C,aAAQ,GAAR,QAAQ,CAAQ;QAChB,mBAAc,GAAd,cAAc,CAAU;QACxB,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AATD,0DASC;AAED;;GAEG;AACH,MAAa,0BAA2B,SAAQ,KAAK;IACf;IAApC,YAAY,OAAe,EAAS,KAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,UAAK,GAAL,KAAK,CAAQ;QAE/C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AALD,gEAKC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS Header Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized CORS header management for MCP-I services.
|
|
5
|
+
* Includes Vary: Origin for cache optimization when origin scoping is implemented.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Type-safe CORS headers
|
|
9
|
+
* Compatible with Response headers and HeadersInit
|
|
10
|
+
*/
|
|
11
|
+
export type CORSHeaders = Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Standard CORS headers for well-known endpoints (.well-known/*)
|
|
14
|
+
* Includes Vary: Origin for future cache optimization when origin scoping is added
|
|
15
|
+
*/
|
|
16
|
+
export declare const WELL_KNOWN_CORS_HEADERS: CORSHeaders;
|
|
17
|
+
/**
|
|
18
|
+
* CORS headers for MCP protocol responses
|
|
19
|
+
* Includes exposed headers for session management
|
|
20
|
+
*/
|
|
21
|
+
export declare const MCP_CORS_HEADERS: CORSHeaders;
|
|
22
|
+
/**
|
|
23
|
+
* CORS preflight headers for OPTIONS requests
|
|
24
|
+
* Comprehensive header allowlist for MCP protocol
|
|
25
|
+
*/
|
|
26
|
+
export declare const PREFLIGHT_CORS_HEADERS: CORSHeaders;
|
|
27
|
+
/**
|
|
28
|
+
* CORS headers for OAuth endpoints
|
|
29
|
+
* Includes additional headers required for OAuth 2.0 flows
|
|
30
|
+
*/
|
|
31
|
+
export declare const OAUTH_CORS_HEADERS: CORSHeaders;
|
|
32
|
+
/**
|
|
33
|
+
* Merge CORS headers with existing headers
|
|
34
|
+
* Ensures CORS headers take precedence
|
|
35
|
+
*/
|
|
36
|
+
export declare function mergeCORSHeaders(existingHeaders: Record<string, string>, corsHeaders?: CORSHeaders): Record<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Apply CORS headers to an Express Response object
|
|
39
|
+
* For use with Express middleware
|
|
40
|
+
*/
|
|
41
|
+
export declare function applyCORSHeaders(res: {
|
|
42
|
+
setHeader: (name: string, value: string) => void;
|
|
43
|
+
}, corsHeaders?: CORSHeaders): void;
|
|
44
|
+
//# sourceMappingURL=cors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/utils/cors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAGrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAKpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAMhC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,WAAW,GAAE,WAAqC,GACjD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE;IAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EACzD,WAAW,GAAE,WAA8B,GAC1C,IAAI,CAMN"}
|