@kya-os/mcp-i-core 1.0.0 → 1.1.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +33 -0
  2. package/dist/__tests__/utils/mock-providers.d.ts +102 -0
  3. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -0
  4. package/dist/__tests__/utils/mock-providers.js +270 -0
  5. package/dist/__tests__/utils/mock-providers.js.map +1 -0
  6. package/dist/cache/tool-protection-cache.d.ts +73 -0
  7. package/dist/cache/tool-protection-cache.d.ts.map +1 -0
  8. package/dist/cache/tool-protection-cache.js +83 -0
  9. package/dist/cache/tool-protection-cache.js.map +1 -0
  10. package/dist/compliance/index.d.ts +8 -0
  11. package/dist/compliance/index.d.ts.map +1 -0
  12. package/dist/compliance/index.js +24 -0
  13. package/dist/compliance/index.js.map +1 -0
  14. package/dist/compliance/schema-registry.d.ts +50 -0
  15. package/dist/compliance/schema-registry.d.ts.map +1 -0
  16. package/dist/compliance/schema-registry.js +438 -0
  17. package/dist/compliance/schema-registry.js.map +1 -0
  18. package/dist/compliance/schema-verifier-v2.d.ts +110 -0
  19. package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
  20. package/dist/compliance/schema-verifier-v2.js +510 -0
  21. package/dist/compliance/schema-verifier-v2.js.map +1 -0
  22. package/dist/compliance/schema-verifier.d.ts +110 -0
  23. package/dist/compliance/schema-verifier.d.ts.map +1 -0
  24. package/dist/compliance/schema-verifier.js +518 -0
  25. package/dist/compliance/schema-verifier.js.map +1 -0
  26. package/dist/delegation/bitstring.d.ts +139 -0
  27. package/dist/delegation/bitstring.d.ts.map +1 -0
  28. package/dist/delegation/bitstring.js +213 -0
  29. package/dist/delegation/bitstring.js.map +1 -0
  30. package/dist/delegation/cascading-revocation.d.ts +162 -0
  31. package/dist/delegation/cascading-revocation.d.ts.map +1 -0
  32. package/dist/delegation/cascading-revocation.js +263 -0
  33. package/dist/delegation/cascading-revocation.js.map +1 -0
  34. package/dist/delegation/delegation-graph.d.ts +178 -0
  35. package/dist/delegation/delegation-graph.d.ts.map +1 -0
  36. package/dist/delegation/delegation-graph.js +209 -0
  37. package/dist/delegation/delegation-graph.js.map +1 -0
  38. package/dist/delegation/index.d.ts +14 -0
  39. package/dist/delegation/index.d.ts.map +1 -0
  40. package/dist/delegation/index.js +30 -0
  41. package/dist/delegation/index.js.map +1 -0
  42. package/dist/delegation/statuslist-manager.d.ts +148 -0
  43. package/dist/delegation/statuslist-manager.d.ts.map +1 -0
  44. package/dist/delegation/statuslist-manager.js +221 -0
  45. package/dist/delegation/statuslist-manager.js.map +1 -0
  46. package/dist/delegation/storage/index.d.ts +9 -0
  47. package/dist/delegation/storage/index.d.ts.map +1 -0
  48. package/dist/delegation/storage/index.js +25 -0
  49. package/dist/delegation/storage/index.js.map +1 -0
  50. package/dist/delegation/storage/memory-graph-storage.d.ts +70 -0
  51. package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -0
  52. package/dist/delegation/storage/memory-graph-storage.js +149 -0
  53. package/dist/delegation/storage/memory-graph-storage.js.map +1 -0
  54. package/dist/delegation/storage/memory-statuslist-storage.d.ts +49 -0
  55. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -0
  56. package/dist/delegation/storage/memory-statuslist-storage.js +67 -0
  57. package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -0
  58. package/dist/delegation/utils.d.ts +19 -0
  59. package/dist/delegation/utils.d.ts.map +1 -0
  60. package/dist/delegation/utils.js +48 -0
  61. package/dist/delegation/utils.js.map +1 -0
  62. package/dist/delegation/vc-issuer.d.ts +135 -0
  63. package/dist/delegation/vc-issuer.d.ts.map +1 -0
  64. package/dist/delegation/vc-issuer.js +140 -0
  65. package/dist/delegation/vc-issuer.js.map +1 -0
  66. package/dist/delegation/vc-verifier.d.ts +213 -0
  67. package/dist/delegation/vc-verifier.d.ts.map +1 -0
  68. package/dist/delegation/vc-verifier.js +354 -0
  69. package/dist/delegation/vc-verifier.js.map +1 -0
  70. package/dist/index.d.ts +16 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +64 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/providers/base.d.ts +1 -1
  75. package/dist/providers/base.d.ts.map +1 -1
  76. package/dist/providers/memory.js +2 -2
  77. package/dist/providers/memory.js.map +1 -1
  78. package/dist/runtime/base.d.ts +23 -0
  79. package/dist/runtime/base.d.ts.map +1 -1
  80. package/dist/runtime/base.js +135 -12
  81. package/dist/runtime/base.js.map +1 -1
  82. package/dist/services/tool-protection.service.d.ts +55 -0
  83. package/dist/services/tool-protection.service.d.ts.map +1 -0
  84. package/dist/services/tool-protection.service.js +158 -0
  85. package/dist/services/tool-protection.service.js.map +1 -0
  86. package/dist/types/tool-protection.d.ts +103 -0
  87. package/dist/types/tool-protection.d.ts.map +1 -0
  88. package/dist/types/tool-protection.js +41 -0
  89. package/dist/types/tool-protection.js.map +1 -0
  90. package/dist/utils/cors.d.ts +44 -0
  91. package/dist/utils/cors.d.ts.map +1 -0
  92. package/dist/utils/cors.js +71 -0
  93. package/dist/utils/cors.js.map +1 -0
  94. package/dist/utils/index.d.ts +5 -0
  95. package/dist/utils/index.d.ts.map +1 -0
  96. package/dist/utils/index.js +21 -0
  97. package/dist/utils/index.js.map +1 -0
  98. package/package.json +11 -6
@@ -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;
@@ -18,6 +19,7 @@ class MCPIRuntimeBase {
18
19
  config;
19
20
  cachedIdentity;
20
21
  sessions = new Map();
22
+ lastProof;
21
23
  constructor(config) {
22
24
  this.config = config;
23
25
  this.crypto = config.cryptoProvider;
@@ -66,6 +68,7 @@ class MCPIRuntimeBase {
66
68
  id: sessionId,
67
69
  clientDid: request.clientDid,
68
70
  agentDid: identity.did,
71
+ audience: request.audience,
69
72
  createdAt: timestamp,
70
73
  expiresAt: this.clock.calculateExpiry((this.config.sessionTtlMinutes || 30) * 60)
71
74
  };
@@ -86,12 +89,58 @@ class MCPIRuntimeBase {
86
89
  }
87
90
  /**
88
91
  * Process tool call with automatic proof generation
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?)
89
98
  */
90
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
+ }
91
138
  // Execute the tool
92
139
  const result = await handler(args);
93
140
  // Create proof
94
141
  const proof = await this.createProof(result, session);
142
+ // Store proof for out-of-band retrieval
143
+ this.lastProof = proof;
95
144
  // Log if audit is enabled
96
145
  if (this.config.audit?.enabled) {
97
146
  this.logAudit('tool_executed', {
@@ -100,10 +149,31 @@ class MCPIRuntimeBase {
100
149
  timestamp: this.clock.now()
101
150
  });
102
151
  }
103
- return {
104
- result,
105
- proof
106
- };
152
+ // Return clean result only (no proof in LLM context)
153
+ return result;
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
+ }
168
+ /**
169
+ * Issue a new nonce and register it in the cache
170
+ * Use this to get a nonce for the session context before calling processToolCall
171
+ */
172
+ async issueNonce(sessionId) {
173
+ const nonce = await this.generateNonce();
174
+ await this.nonceCache.add(nonce, this.clock.calculateExpiry(300) // 5 minute expiry
175
+ );
176
+ return nonce;
107
177
  }
108
178
  /**
109
179
  * Create cryptographic proof for data
@@ -111,16 +181,24 @@ class MCPIRuntimeBase {
111
181
  async createProof(data, session) {
112
182
  const identity = await this.getIdentity();
113
183
  const timestamp = this.clock.now();
114
- const nonce = await this.generateNonce();
115
- // Add nonce to cache to prevent replay
116
- await this.nonceCache.add(nonce, this.clock.calculateExpiry(300) // 5 minute expiry
117
- );
184
+ // Use nonce from session if provided, otherwise generate new one
185
+ let nonce;
186
+ if (session?.nonce) {
187
+ nonce = session.nonce;
188
+ }
189
+ else {
190
+ nonce = await this.generateNonce();
191
+ // Add nonce to cache to prevent replay
192
+ await this.nonceCache.add(nonce, this.clock.calculateExpiry(300) // 5 minute expiry
193
+ );
194
+ }
118
195
  const proofData = {
119
196
  data,
120
197
  timestamp,
121
198
  nonce,
122
199
  did: identity.did,
123
- sessionId: session?.id
200
+ sessionId: session?.id,
201
+ audience: session?.audience
124
202
  };
125
203
  const signature = await this.signData(proofData);
126
204
  return {
@@ -128,7 +206,9 @@ class MCPIRuntimeBase {
128
206
  nonce,
129
207
  did: identity.did,
130
208
  signature,
131
- algorithm: 'Ed25519'
209
+ algorithm: 'Ed25519',
210
+ sessionId: session?.id,
211
+ audience: session?.audience
132
212
  };
133
213
  }
134
214
  /**
@@ -176,6 +256,12 @@ class MCPIRuntimeBase {
176
256
  }
177
257
  return null;
178
258
  }
259
+ /**
260
+ * Get the last generated proof for out-of-band transport
261
+ */
262
+ getLastProof() {
263
+ return this.lastProof;
264
+ }
179
265
  /**
180
266
  * Create well-known handler for identity verification
181
267
  */
@@ -183,7 +269,41 @@ class MCPIRuntimeBase {
183
269
  return async (path) => {
184
270
  const identity = await this.getIdentity();
185
271
  if (path === '/.well-known/did.json') {
186
- return this.createDIDDocument(identity);
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
+ };
187
307
  }
188
308
  if (path === '/.well-known/mcp-identity') {
189
309
  return {
@@ -234,11 +354,12 @@ class MCPIRuntimeBase {
234
354
  * Rotate keys
235
355
  */
236
356
  async rotateKeys() {
357
+ const oldDid = this.cachedIdentity?.did;
237
358
  const newIdentity = await this.identity.rotateKeys();
238
359
  this.cachedIdentity = newIdentity;
239
360
  if (this.config.audit?.enabled) {
240
361
  this.logAudit('keys_rotated', {
241
- oldDid: this.cachedIdentity?.did,
362
+ oldDid: oldDid,
242
363
  newDid: newIdentity.did,
243
364
  timestamp: this.clock.now()
244
365
  });
@@ -285,6 +406,8 @@ class MCPIRuntimeBase {
285
406
  id: `${identity.did}#key-1`,
286
407
  type: 'Ed25519VerificationKey2020',
287
408
  controller: identity.did,
409
+ // Using base64 for cross-platform compatibility (Cloudflare Workers)
410
+ // W3C DID spec supports both base64 and multibase formats
288
411
  publicKeyBase64: identity.publicKey
289
412
  }],
290
413
  authentication: [`${identity.did}#key-1`],
@@ -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"}