@kya-os/mcp-i-core 1.2.3-canary.6 → 1.3.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/.claude/settings.local.json +9 -0
- package/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-test$colon$coverage.log +4514 -0
- package/.turbo/turbo-test.log +2973 -0
- package/COMPLIANCE_IMPROVEMENT_REPORT.md +483 -0
- package/Composer 3.md +615 -0
- package/GPT-5.md +1169 -0
- package/OPUS-plan.md +352 -0
- package/PHASE_3_AND_4.1_SUMMARY.md +585 -0
- package/PHASE_3_SUMMARY.md +317 -0
- package/PHASE_4.1.3_SUMMARY.md +428 -0
- package/PHASE_4.1_COMPLETE.md +525 -0
- package/PHASE_4_USER_DID_IDENTITY_LINKING_PLAN.md +1240 -0
- package/SCHEMA_COMPLIANCE_REPORT.md +275 -0
- package/TEST_PLAN.md +571 -0
- package/coverage/coverage-final.json +57 -0
- package/dist/__tests__/utils/mock-providers.d.ts +1 -2
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
- package/dist/__tests__/utils/mock-providers.js.map +1 -1
- package/dist/cache/oauth-config-cache.d.ts +69 -0
- package/dist/cache/oauth-config-cache.d.ts.map +1 -0
- package/dist/cache/oauth-config-cache.js +76 -0
- package/dist/cache/oauth-config-cache.js.map +1 -0
- package/dist/identity/idp-token-resolver.d.ts +53 -0
- package/dist/identity/idp-token-resolver.d.ts.map +1 -0
- package/dist/identity/idp-token-resolver.js +108 -0
- package/dist/identity/idp-token-resolver.js.map +1 -0
- package/dist/identity/idp-token-storage.interface.d.ts +42 -0
- package/dist/identity/idp-token-storage.interface.d.ts.map +1 -0
- package/dist/identity/idp-token-storage.interface.js +12 -0
- package/dist/identity/idp-token-storage.interface.js.map +1 -0
- package/dist/identity/user-did-manager.d.ts +39 -1
- package/dist/identity/user-did-manager.d.ts.map +1 -1
- package/dist/identity/user-did-manager.js +69 -3
- package/dist/identity/user-did-manager.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/audit-logger.d.ts +37 -0
- package/dist/runtime/audit-logger.d.ts.map +1 -0
- package/dist/runtime/audit-logger.js +9 -0
- package/dist/runtime/audit-logger.js.map +1 -0
- package/dist/runtime/base.d.ts +58 -2
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +266 -11
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/access-control.service.d.ts.map +1 -1
- package/dist/services/access-control.service.js +200 -35
- package/dist/services/access-control.service.js.map +1 -1
- package/dist/services/authorization/authorization-registry.d.ts +29 -0
- package/dist/services/authorization/authorization-registry.d.ts.map +1 -0
- package/dist/services/authorization/authorization-registry.js +57 -0
- package/dist/services/authorization/authorization-registry.js.map +1 -0
- package/dist/services/authorization/types.d.ts +53 -0
- package/dist/services/authorization/types.d.ts.map +1 -0
- package/dist/services/authorization/types.js +10 -0
- package/dist/services/authorization/types.js.map +1 -0
- package/dist/services/batch-delegation.service.d.ts +53 -0
- package/dist/services/batch-delegation.service.d.ts.map +1 -0
- package/dist/services/batch-delegation.service.js +95 -0
- package/dist/services/batch-delegation.service.js.map +1 -0
- package/dist/services/oauth-config.service.d.ts +53 -0
- package/dist/services/oauth-config.service.d.ts.map +1 -0
- package/dist/services/oauth-config.service.js +117 -0
- package/dist/services/oauth-config.service.js.map +1 -0
- package/dist/services/oauth-provider-registry.d.ts +77 -0
- package/dist/services/oauth-provider-registry.d.ts.map +1 -0
- package/dist/services/oauth-provider-registry.js +112 -0
- package/dist/services/oauth-provider-registry.js.map +1 -0
- package/dist/services/oauth-service.d.ts +77 -0
- package/dist/services/oauth-service.d.ts.map +1 -0
- package/dist/services/oauth-service.js +348 -0
- package/dist/services/oauth-service.js.map +1 -0
- package/dist/services/oauth-token-retrieval.service.d.ts +49 -0
- package/dist/services/oauth-token-retrieval.service.d.ts.map +1 -0
- package/dist/services/oauth-token-retrieval.service.js +150 -0
- package/dist/services/oauth-token-retrieval.service.js.map +1 -0
- package/dist/services/provider-resolver.d.ts +48 -0
- package/dist/services/provider-resolver.d.ts.map +1 -0
- package/dist/services/provider-resolver.js +120 -0
- package/dist/services/provider-resolver.js.map +1 -0
- package/dist/services/provider-validator.d.ts +55 -0
- package/dist/services/provider-validator.d.ts.map +1 -0
- package/dist/services/provider-validator.js +135 -0
- package/dist/services/provider-validator.js.map +1 -0
- package/dist/services/tool-context-builder.d.ts +57 -0
- package/dist/services/tool-context-builder.d.ts.map +1 -0
- package/dist/services/tool-context-builder.js +125 -0
- package/dist/services/tool-context-builder.js.map +1 -0
- package/dist/services/tool-protection.service.d.ts +87 -10
- package/dist/services/tool-protection.service.d.ts.map +1 -1
- package/dist/services/tool-protection.service.js +282 -112
- package/dist/services/tool-protection.service.js.map +1 -1
- package/dist/types/oauth-required-error.d.ts +40 -0
- package/dist/types/oauth-required-error.d.ts.map +1 -0
- package/dist/types/oauth-required-error.js +40 -0
- package/dist/types/oauth-required-error.js.map +1 -0
- package/dist/utils/did-helpers.d.ts +33 -0
- package/dist/utils/did-helpers.d.ts.map +1 -1
- package/dist/utils/did-helpers.js +40 -0
- package/dist/utils/did-helpers.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/docs/API_REFERENCE.md +1362 -0
- package/docs/COMPLIANCE_MATRIX.md +691 -0
- package/docs/STATUSLIST2021_GUIDE.md +696 -0
- package/docs/W3C_VC_DELEGATION_GUIDE.md +710 -0
- package/package.json +24 -50
- package/scripts/audit-compliance.ts +724 -0
- package/src/__tests__/cache/tool-protection-cache.test.ts +640 -0
- package/src/__tests__/config/provider-runtime-config.test.ts +309 -0
- package/src/__tests__/delegation-e2e.test.ts +690 -0
- package/src/__tests__/identity/user-did-manager.test.ts +213 -0
- package/src/__tests__/index.test.ts +56 -0
- package/src/__tests__/integration/full-flow.test.ts +776 -0
- package/src/__tests__/integration.test.ts +281 -0
- package/src/__tests__/providers/base.test.ts +173 -0
- package/src/__tests__/providers/memory.test.ts +319 -0
- package/src/__tests__/regression/phase2-regression.test.ts +427 -0
- package/src/__tests__/runtime/audit-logger.test.ts +154 -0
- package/src/__tests__/runtime/base-extensions.test.ts +593 -0
- package/src/__tests__/runtime/base.test.ts +869 -0
- package/src/__tests__/runtime/delegation-flow.test.ts +164 -0
- package/src/__tests__/runtime/proof-client-did.test.ts +375 -0
- package/src/__tests__/runtime/route-interception.test.ts +686 -0
- package/src/__tests__/runtime/tool-protection-enforcement.test.ts +908 -0
- package/src/__tests__/services/agentshield-integration.test.ts +784 -0
- package/src/__tests__/services/provider-resolver-edge-cases.test.ts +487 -0
- package/src/__tests__/services/tool-protection-oauth-provider.test.ts +480 -0
- package/src/__tests__/services/tool-protection.service.test.ts +1366 -0
- package/src/__tests__/utils/mock-providers.ts +340 -0
- package/src/cache/oauth-config-cache.d.ts +69 -0
- package/src/cache/oauth-config-cache.d.ts.map +1 -0
- package/src/cache/oauth-config-cache.js +71 -0
- package/src/cache/oauth-config-cache.js.map +1 -0
- package/src/cache/oauth-config-cache.ts +123 -0
- package/src/cache/tool-protection-cache.ts +171 -0
- package/src/compliance/EXAMPLE.md +412 -0
- package/src/compliance/__tests__/schema-verifier.test.ts +797 -0
- package/src/compliance/index.ts +8 -0
- package/src/compliance/schema-registry.ts +460 -0
- package/src/compliance/schema-verifier.ts +708 -0
- package/src/config/__tests__/remote-config.spec.ts +268 -0
- package/src/config/remote-config.ts +174 -0
- package/src/config.ts +309 -0
- package/src/delegation/__tests__/audience-validator.test.ts +112 -0
- package/src/delegation/__tests__/bitstring.test.ts +346 -0
- package/src/delegation/__tests__/cascading-revocation.test.ts +628 -0
- package/src/delegation/__tests__/delegation-graph.test.ts +584 -0
- package/src/delegation/__tests__/utils.test.ts +152 -0
- package/src/delegation/__tests__/vc-issuer.test.ts +442 -0
- package/src/delegation/__tests__/vc-verifier.test.ts +922 -0
- package/src/delegation/audience-validator.ts +52 -0
- package/src/delegation/bitstring.ts +278 -0
- package/src/delegation/cascading-revocation.ts +370 -0
- package/src/delegation/delegation-graph.ts +299 -0
- package/src/delegation/index.ts +14 -0
- package/src/delegation/statuslist-manager.ts +353 -0
- package/src/delegation/storage/__tests__/memory-graph-storage.test.ts +366 -0
- package/src/delegation/storage/__tests__/memory-statuslist-storage.test.ts +228 -0
- package/src/delegation/storage/index.ts +9 -0
- package/src/delegation/storage/memory-graph-storage.ts +178 -0
- package/src/delegation/storage/memory-statuslist-storage.ts +77 -0
- package/src/delegation/utils.ts +42 -0
- package/src/delegation/vc-issuer.ts +232 -0
- package/src/delegation/vc-verifier.ts +568 -0
- package/src/identity/idp-token-resolver.ts +147 -0
- package/src/identity/idp-token-storage.interface.ts +59 -0
- package/src/identity/user-did-manager.ts +370 -0
- package/src/index.ts +260 -0
- package/src/providers/base.d.ts +91 -0
- package/src/providers/base.d.ts.map +1 -0
- package/src/providers/base.js +38 -0
- package/src/providers/base.js.map +1 -0
- package/src/providers/base.ts +96 -0
- package/src/providers/memory.ts +142 -0
- package/src/runtime/audit-logger.ts +39 -0
- package/src/runtime/base.ts +1329 -0
- package/src/services/__tests__/access-control.integration.test.ts +443 -0
- package/src/services/__tests__/access-control.proof-response-validation.test.ts +578 -0
- package/src/services/__tests__/access-control.service.test.ts +970 -0
- package/src/services/__tests__/batch-delegation.service.test.ts +351 -0
- package/src/services/__tests__/crypto.service.test.ts +531 -0
- package/src/services/__tests__/oauth-provider-registry.test.ts +142 -0
- package/src/services/__tests__/proof-verifier.integration.test.ts +485 -0
- package/src/services/__tests__/proof-verifier.test.ts +489 -0
- package/src/services/__tests__/provider-resolution.integration.test.ts +198 -0
- package/src/services/__tests__/provider-resolver.test.ts +217 -0
- package/src/services/__tests__/storage.service.test.ts +358 -0
- package/src/services/access-control.service.ts +990 -0
- package/src/services/authorization/authorization-registry.ts +66 -0
- package/src/services/authorization/types.ts +71 -0
- package/src/services/batch-delegation.service.ts +137 -0
- package/src/services/crypto.service.ts +302 -0
- package/src/services/errors.ts +76 -0
- package/src/services/index.ts +9 -0
- package/src/services/oauth-config.service.d.ts +53 -0
- package/src/services/oauth-config.service.d.ts.map +1 -0
- package/src/services/oauth-config.service.js +113 -0
- package/src/services/oauth-config.service.js.map +1 -0
- package/src/services/oauth-config.service.ts +166 -0
- package/src/services/oauth-provider-registry.d.ts +57 -0
- package/src/services/oauth-provider-registry.d.ts.map +1 -0
- package/src/services/oauth-provider-registry.js +73 -0
- package/src/services/oauth-provider-registry.js.map +1 -0
- package/src/services/oauth-provider-registry.ts +123 -0
- package/src/services/oauth-service.ts +510 -0
- package/src/services/oauth-token-retrieval.service.ts +245 -0
- package/src/services/proof-verifier.ts +478 -0
- package/src/services/provider-resolver.d.ts +48 -0
- package/src/services/provider-resolver.d.ts.map +1 -0
- package/src/services/provider-resolver.js +106 -0
- package/src/services/provider-resolver.js.map +1 -0
- package/src/services/provider-resolver.ts +144 -0
- package/src/services/provider-validator.ts +170 -0
- package/src/services/storage.service.ts +566 -0
- package/src/services/tool-context-builder.ts +172 -0
- package/src/services/tool-protection.service.ts +958 -0
- package/src/types/oauth-required-error.ts +63 -0
- package/src/types/tool-protection.ts +155 -0
- package/src/utils/__tests__/did-helpers.test.ts +101 -0
- package/src/utils/base64.ts +148 -0
- package/src/utils/cors.ts +83 -0
- package/src/utils/did-helpers.ts +150 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/storage-keys.ts +278 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +56 -0
|
@@ -2,12 +2,80 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* ToolProtectionService - Fetches and caches tool protection configurations
|
|
4
4
|
*
|
|
5
|
-
* This service
|
|
5
|
+
* This service manages tool protection configuration from AgentShield API with
|
|
6
|
+
* efficient caching and automatic synchronization support.
|
|
7
|
+
*
|
|
8
|
+
* CORE FUNCTIONALITY:
|
|
9
|
+
* -------------------
|
|
6
10
|
* 1. Fetches tool protection config from AgentShield API
|
|
7
|
-
* 2. Caches responses
|
|
11
|
+
* 2. Caches responses with configurable TTL (default 5 minutes)
|
|
8
12
|
* 3. Falls back to local config if API unavailable
|
|
9
|
-
* 4. Provides delegation checking
|
|
13
|
+
* 4. Provides delegation requirement checking before tool execution
|
|
14
|
+
*
|
|
15
|
+
* SYNCHRONIZATION WITH AGENTSHIELD:
|
|
16
|
+
* ----------------------------------
|
|
17
|
+
* When you update tool protection settings in the AgentShield dashboard:
|
|
18
|
+
*
|
|
19
|
+
* 1. Dashboard sends PATCH /api/internal/bouncer/tools/{projectId}/{toolName}
|
|
20
|
+
* 2. AgentShield updates the database immediately (PostgreSQL JSONB column)
|
|
21
|
+
* 3. Dashboard sends POST /admin/clear-cache to this service (automatic)
|
|
22
|
+
* 4. This service clears the cached config from KV storage
|
|
23
|
+
* 5. Next tool call fetches fresh config from AgentShield API
|
|
24
|
+
* 6. New config is cached for the configured TTL period
|
|
25
|
+
*
|
|
26
|
+
* CACHE INVALIDATION:
|
|
27
|
+
* -------------------
|
|
28
|
+
* Cache is invalidated via POST /admin/clear-cache endpoint:
|
|
29
|
+
* - Triggered automatically by AgentShield dashboard when tool protection changes
|
|
30
|
+
* - Can be triggered manually for testing/debugging
|
|
31
|
+
* - Requires API key authentication for security
|
|
32
|
+
*
|
|
33
|
+
* If cache is NOT cleared:
|
|
34
|
+
* - Stale config is served until TTL expires (default 5 minutes)
|
|
35
|
+
* - Configure shorter TTL via TOOL_PROTECTION_CACHE_TTL env var for faster updates
|
|
36
|
+
* - Set to 0 for no cache (not recommended for production)
|
|
37
|
+
*
|
|
38
|
+
* TOOL DISCOVERY PREREQUISITE:
|
|
39
|
+
* ----------------------------
|
|
40
|
+
* IMPORTANT: Tools must be discovered before they can be protected!
|
|
41
|
+
*
|
|
42
|
+
* Discovery happens when:
|
|
43
|
+
* - Agent makes first tool call with proof submission
|
|
44
|
+
* - AgentShield extracts tool info from cryptographic proof
|
|
45
|
+
* - Tool is added to bouncerConfigs.discoveredTools in database
|
|
46
|
+
*
|
|
47
|
+
* If tool not discovered:
|
|
48
|
+
* - Tool won't appear in dashboard
|
|
49
|
+
* - Protection settings can't be configured
|
|
50
|
+
* - GET /tool-protections returns empty object
|
|
51
|
+
*
|
|
52
|
+
* DEBUGGING:
|
|
53
|
+
* ----------
|
|
54
|
+
* Enable debug logging with:
|
|
55
|
+
* toolProtection: { debug: true }
|
|
56
|
+
*
|
|
57
|
+
* Debug logs show:
|
|
58
|
+
* - Cache hits vs API fetches
|
|
59
|
+
* - Full API responses
|
|
60
|
+
* - Tool protection status for each tool
|
|
61
|
+
* - Cache TTL and expiration times
|
|
62
|
+
* - Source of config data (cache, api, or fallback)
|
|
63
|
+
*
|
|
64
|
+
* TROUBLESHOOTING:
|
|
65
|
+
* ----------------
|
|
66
|
+
* Problem: Dashboard shows protection but tool still executes
|
|
67
|
+
* Cause: Stale cache not invalidated
|
|
68
|
+
* Solution: POST /admin/clear-cache or wait for TTL expiration
|
|
69
|
+
*
|
|
70
|
+
* Problem: Empty toolProtections returned from API
|
|
71
|
+
* Cause: Tool not discovered yet (no proof submissions)
|
|
72
|
+
* Solution: Make at least one tool call to trigger discovery
|
|
73
|
+
*
|
|
74
|
+
* Problem: Updates take 5+ minutes to apply
|
|
75
|
+
* Cause: Long cache TTL and cache clear failed
|
|
76
|
+
* Solution: Configure MCP server URL in AgentShield for auto cache clear
|
|
10
77
|
*
|
|
78
|
+
* @see https://github.com/modelcontextprotocol-identity/agent-shield/docs/bouncer/tool-protection-sync.md
|
|
11
79
|
* @package @kya-os/mcp-i-core
|
|
12
80
|
*/
|
|
13
81
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -95,26 +163,51 @@ class ToolProtectionService {
|
|
|
95
163
|
// 1. Check cache
|
|
96
164
|
const cached = await this.cache.get(cacheKey);
|
|
97
165
|
if (cached) {
|
|
166
|
+
const ttl = this.config.cacheTtl ?? 300000;
|
|
167
|
+
const cachedUntil = new Date(Date.now() + ttl).toISOString();
|
|
98
168
|
if (this.config.debug) {
|
|
99
169
|
console.log("[ToolProtectionService] Cache hit", {
|
|
170
|
+
source: "cache",
|
|
100
171
|
cacheKey,
|
|
101
172
|
agentDid: agentDid.slice(0, 20) + "...",
|
|
102
173
|
projectId: this.config.projectId || "none",
|
|
103
174
|
toolCount: Object.keys(cached.toolProtections).length,
|
|
175
|
+
protectedTools: Object.entries(cached.toolProtections)
|
|
176
|
+
.filter(([_, config]) => config.requiresDelegation)
|
|
177
|
+
.map(([name]) => name),
|
|
178
|
+
cacheTtlMs: ttl,
|
|
179
|
+
cachedUntil,
|
|
104
180
|
});
|
|
105
181
|
}
|
|
106
182
|
return cached;
|
|
107
183
|
}
|
|
108
184
|
if (this.config.debug) {
|
|
109
185
|
console.log("[ToolProtectionService] Cache miss, fetching from API", {
|
|
186
|
+
source: "api-fetch-start",
|
|
110
187
|
cacheKey,
|
|
111
188
|
agentDid: agentDid.slice(0, 20) + "...",
|
|
112
189
|
projectId: this.config.projectId || "none",
|
|
190
|
+
apiUrl: this.config.apiUrl,
|
|
191
|
+
endpoint: this.config.projectId
|
|
192
|
+
? `/api/v1/bouncer/projects/${this.config.projectId}/tool-protections`
|
|
193
|
+
: `/api/v1/bouncer/config?agent_did=${agentDid}`,
|
|
113
194
|
});
|
|
114
195
|
}
|
|
115
|
-
// 3. Fetch from API
|
|
196
|
+
// 3. Fetch from API
|
|
116
197
|
try {
|
|
117
|
-
const response = await this.fetchFromApi(agentDid
|
|
198
|
+
const response = await this.fetchFromApi(agentDid);
|
|
199
|
+
if (this.config.debug) {
|
|
200
|
+
console.log("[ToolProtectionService] API response received", {
|
|
201
|
+
source: "api-fetch-complete",
|
|
202
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
203
|
+
projectId: this.config.projectId || "none",
|
|
204
|
+
responseKeys: Object.keys(response),
|
|
205
|
+
dataKeys: response.data ? Object.keys(response.data) : [],
|
|
206
|
+
rawToolProtections: response.data?.toolProtections || null,
|
|
207
|
+
rawTools: response.data?.tools || null,
|
|
208
|
+
responseMetadata: response.metadata || null,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
118
211
|
// Transform API response format to internal format
|
|
119
212
|
// Supports multiple response formats:
|
|
120
213
|
// 1. New endpoint: { data: { toolProtections: { greet: { requiresDelegation: true, ... } } } }
|
|
@@ -133,9 +226,18 @@ class ToolProtectionService {
|
|
|
133
226
|
toolConfig.required_scopes ??
|
|
134
227
|
toolConfig.scopes ??
|
|
135
228
|
[];
|
|
229
|
+
// NEW: Parse oauthProvider (camelCase and snake_case support)
|
|
230
|
+
const oauthProvider = toolConfig.oauthProvider ??
|
|
231
|
+
toolConfig.oauth_provider ??
|
|
232
|
+
undefined;
|
|
233
|
+
const riskLevel = toolConfig.riskLevel ??
|
|
234
|
+
toolConfig.risk_level ??
|
|
235
|
+
undefined;
|
|
136
236
|
toolProtections[toolName] = {
|
|
137
237
|
requiresDelegation,
|
|
138
238
|
requiredScopes,
|
|
239
|
+
...(oauthProvider && { oauthProvider }), // Only include if present
|
|
240
|
+
...(riskLevel && { riskLevel }), // Only include if present
|
|
139
241
|
};
|
|
140
242
|
}
|
|
141
243
|
}
|
|
@@ -159,9 +261,18 @@ class ToolProtectionService {
|
|
|
159
261
|
tool.required_scopes ??
|
|
160
262
|
tool.scopes ??
|
|
161
263
|
[];
|
|
264
|
+
// NEW: Parse oauthProvider
|
|
265
|
+
const oauthProvider = tool.oauthProvider ??
|
|
266
|
+
tool.oauth_provider ??
|
|
267
|
+
undefined;
|
|
268
|
+
const riskLevel = tool.riskLevel ??
|
|
269
|
+
tool.risk_level ??
|
|
270
|
+
undefined;
|
|
162
271
|
toolProtections[toolName] = {
|
|
163
272
|
requiresDelegation,
|
|
164
273
|
requiredScopes,
|
|
274
|
+
...(oauthProvider && { oauthProvider }),
|
|
275
|
+
...(riskLevel && { riskLevel }),
|
|
165
276
|
};
|
|
166
277
|
}
|
|
167
278
|
}
|
|
@@ -176,40 +287,85 @@ class ToolProtectionService {
|
|
|
176
287
|
toolConfig.required_scopes ??
|
|
177
288
|
toolConfig.scopes ??
|
|
178
289
|
[];
|
|
290
|
+
// NEW: Parse oauthProvider
|
|
291
|
+
const oauthProvider = toolConfig.oauthProvider ??
|
|
292
|
+
toolConfig.oauth_provider ??
|
|
293
|
+
undefined;
|
|
294
|
+
const riskLevel = toolConfig.riskLevel ??
|
|
295
|
+
toolConfig.risk_level ??
|
|
296
|
+
undefined;
|
|
179
297
|
toolProtections[toolName] = {
|
|
180
298
|
requiresDelegation,
|
|
181
299
|
requiredScopes,
|
|
300
|
+
...(oauthProvider && { oauthProvider }),
|
|
301
|
+
...(riskLevel && { riskLevel }),
|
|
182
302
|
};
|
|
183
303
|
}
|
|
184
304
|
}
|
|
185
305
|
}
|
|
186
|
-
|
|
306
|
+
// Merge with fallback config (local config takes priority over API)
|
|
307
|
+
// This allows users to override API responses with local configuration
|
|
308
|
+
// Note: Fallback config is also used when API fails, but here we merge even when API succeeds
|
|
309
|
+
const mergedToolProtections = { ...toolProtections };
|
|
310
|
+
if (this.config.fallbackConfig?.toolProtections) {
|
|
311
|
+
for (const [toolName, localConfig] of Object.entries(this.config.fallbackConfig.toolProtections)) {
|
|
312
|
+
// Skip if localConfig is empty or not a valid ToolProtection object
|
|
313
|
+
// This prevents empty objects from corrupting the merged config
|
|
314
|
+
if (!localConfig || typeof localConfig !== 'object' || Object.keys(localConfig).length === 0) {
|
|
315
|
+
if (this.config.debug) {
|
|
316
|
+
console.log("[ToolProtectionService] Skipping empty/invalid fallback config entry", { tool: toolName });
|
|
317
|
+
}
|
|
318
|
+
continue;
|
|
319
|
+
}
|
|
320
|
+
// Ensure requiredScopes exists (default to empty array if missing)
|
|
321
|
+
const validConfig = {
|
|
322
|
+
requiresDelegation: localConfig.requiresDelegation ?? false,
|
|
323
|
+
requiredScopes: localConfig.requiredScopes ?? [],
|
|
324
|
+
};
|
|
325
|
+
// Local config overrides API config for this tool
|
|
326
|
+
mergedToolProtections[toolName] = validConfig;
|
|
327
|
+
if (this.config.debug) {
|
|
328
|
+
console.log("[ToolProtectionService] Overriding API config with local config", {
|
|
329
|
+
tool: toolName,
|
|
330
|
+
localConfig: validConfig,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
const config = {
|
|
336
|
+
toolProtections: mergedToolProtections,
|
|
337
|
+
};
|
|
187
338
|
// 3. Cache the response
|
|
188
339
|
const ttl = this.config.cacheTtl ?? 300000; // Default 5 minutes
|
|
340
|
+
const cacheExpiration = new Date(Date.now() + ttl);
|
|
189
341
|
await this.cache.set(cacheKey, config, ttl);
|
|
190
342
|
// Always log tool count and protection status (critical for debugging)
|
|
191
|
-
console.log("[ToolProtectionService] Config loaded", {
|
|
192
|
-
|
|
193
|
-
|
|
343
|
+
console.log("[ToolProtectionService] Config loaded from API", {
|
|
344
|
+
source: "api",
|
|
345
|
+
toolCount: Object.keys(mergedToolProtections).length,
|
|
346
|
+
protectedTools: Object.entries(mergedToolProtections)
|
|
194
347
|
.filter(([_, config]) => config.requiresDelegation)
|
|
195
348
|
.map(([name]) => name),
|
|
196
349
|
agentDid: agentDid.slice(0, 20) + "...",
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
requiredScopes: config.requiredScopes,
|
|
201
|
-
})),
|
|
350
|
+
projectId: this.config.projectId || "none",
|
|
351
|
+
cacheTtlMs: ttl,
|
|
352
|
+
cacheExpiresAt: cacheExpiration.toISOString(),
|
|
202
353
|
});
|
|
203
354
|
if (this.config.debug) {
|
|
204
|
-
console.log("[ToolProtectionService] API fetch successful, cached", {
|
|
355
|
+
console.log("[ToolProtectionService] API fetch successful, config cached", {
|
|
356
|
+
source: "cache-write",
|
|
205
357
|
agentDid: agentDid.slice(0, 20) + "...",
|
|
206
358
|
cacheKey,
|
|
207
|
-
toolCount: Object.keys(
|
|
208
|
-
tools: Object.entries(
|
|
359
|
+
toolCount: Object.keys(mergedToolProtections).length,
|
|
360
|
+
tools: Object.entries(mergedToolProtections).map(([name, config]) => ({
|
|
209
361
|
name,
|
|
210
362
|
requiresDelegation: config.requiresDelegation,
|
|
363
|
+
scopeCount: (config.requiredScopes || []).length, // Safe access
|
|
211
364
|
})),
|
|
212
|
-
ttl,
|
|
365
|
+
ttlMs: ttl,
|
|
366
|
+
ttlMinutes: Math.round(ttl / 60000),
|
|
367
|
+
expiresAt: cacheExpiration.toISOString(),
|
|
368
|
+
expiresIn: `${Math.round(ttl / 1000)}s`,
|
|
213
369
|
});
|
|
214
370
|
}
|
|
215
371
|
return config;
|
|
@@ -341,9 +497,8 @@ class ToolProtectionService {
|
|
|
341
497
|
* Uses projectId endpoint if available (preferred, project-scoped), otherwise falls back to agent_did query param
|
|
342
498
|
*
|
|
343
499
|
* @param agentDid DID of the agent to fetch config for
|
|
344
|
-
* @param bypassCache If true, adds Cache-Control header to bypass AgentShield's cache
|
|
345
500
|
*/
|
|
346
|
-
async fetchFromApi(agentDid
|
|
501
|
+
async fetchFromApi(agentDid) {
|
|
347
502
|
// Prefer new project-scoped endpoint: /api/v1/bouncer/projects/{projectId}/tool-protections
|
|
348
503
|
// Falls back to old endpoint: /api/v1/bouncer/config?agent_did={did} for backward compatibility
|
|
349
504
|
let url;
|
|
@@ -395,12 +550,6 @@ class ToolProtectionService {
|
|
|
395
550
|
const headers = {
|
|
396
551
|
"Content-Type": "application/json",
|
|
397
552
|
};
|
|
398
|
-
// Add Cache-Control header to bypass AgentShield's cache if requested
|
|
399
|
-
// This is useful when cache is cleared and we want immediate fresh data
|
|
400
|
-
if (bypassCache) {
|
|
401
|
-
headers["Cache-Control"] = "no-cache, no-store, must-revalidate";
|
|
402
|
-
headers["Pragma"] = "no-cache";
|
|
403
|
-
}
|
|
404
553
|
if (useNewEndpoint) {
|
|
405
554
|
// ✅ New endpoint headers
|
|
406
555
|
headers["X-API-Key"] = this.config.apiKey;
|
|
@@ -425,22 +574,6 @@ class ToolProtectionService {
|
|
|
425
574
|
let data;
|
|
426
575
|
try {
|
|
427
576
|
data = (await response.json());
|
|
428
|
-
// Always log raw API response for troubleshooting (critical for debugging delegation issues)
|
|
429
|
-
console.log("[ToolProtectionService] Raw API response:", {
|
|
430
|
-
success: data.success,
|
|
431
|
-
hasData: !!data.data,
|
|
432
|
-
hasToolProtections: !!data.data?.toolProtections,
|
|
433
|
-
hasTools: !!data.data?.tools,
|
|
434
|
-
toolProtectionsKeys: data.data?.toolProtections
|
|
435
|
-
? Object.keys(data.data.toolProtections)
|
|
436
|
-
: [],
|
|
437
|
-
toolsType: data.data?.tools
|
|
438
|
-
? Array.isArray(data.data.tools)
|
|
439
|
-
? "array"
|
|
440
|
-
: "object"
|
|
441
|
-
: "none",
|
|
442
|
-
rawResponse: JSON.stringify(data).substring(0, 2000), // First 2000 chars for debugging
|
|
443
|
-
});
|
|
444
577
|
}
|
|
445
578
|
catch (jsonError) {
|
|
446
579
|
throw new Error(`Failed to parse API response: ${jsonError instanceof Error ? jsonError.message : String(jsonError)}`);
|
|
@@ -473,70 +606,39 @@ class ToolProtectionService {
|
|
|
473
606
|
await this.cache.delete(cacheKey);
|
|
474
607
|
}
|
|
475
608
|
/**
|
|
476
|
-
*
|
|
609
|
+
* Clear cache and immediately fetch fresh config from API
|
|
610
|
+
*
|
|
611
|
+
* This method is designed for Cloudflare Workers where KV has edge caching.
|
|
612
|
+
* After clearing the KV entry, it fetches fresh data from the API and writes
|
|
613
|
+
* it back to KV. This ensures:
|
|
614
|
+
* 1. The global KV entry is deleted
|
|
615
|
+
* 2. Fresh data is fetched from API
|
|
616
|
+
* 3. New data is written to KV (updating edge cache)
|
|
477
617
|
*
|
|
478
|
-
*
|
|
479
|
-
* with Cache-Control headers to bypass AgentShield's 5-minute cache.
|
|
618
|
+
* The next request from the same edge location will get the fresh data.
|
|
480
619
|
*
|
|
481
|
-
* @param agentDid DID of the agent
|
|
482
|
-
* @returns
|
|
620
|
+
* @param agentDid DID of the agent (used for cache key)
|
|
621
|
+
* @returns The fresh tool protection config from API
|
|
483
622
|
*/
|
|
484
|
-
async
|
|
485
|
-
// Clear local cache first
|
|
486
|
-
await this.clearCache(agentDid);
|
|
487
|
-
// Fetch fresh config with cache bypass
|
|
623
|
+
async clearAndRefresh(agentDid) {
|
|
488
624
|
const cacheKey = this.config.projectId
|
|
489
625
|
? `config:tool-protections:${this.config.projectId}`
|
|
490
626
|
: `agent:${agentDid}`;
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
const
|
|
506
|
-
toolConfig.requires_delegation ??
|
|
507
|
-
false;
|
|
508
|
-
const requiredScopes = toolConfig.requiredScopes ??
|
|
509
|
-
toolConfig.required_scopes ??
|
|
510
|
-
toolConfig.scopes ??
|
|
511
|
-
[];
|
|
512
|
-
toolProtections[toolName] = {
|
|
513
|
-
requiresDelegation,
|
|
514
|
-
requiredScopes,
|
|
515
|
-
};
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
else if (response.data.tools) {
|
|
519
|
-
// Old endpoint format: array or object
|
|
520
|
-
if (Array.isArray(response.data.tools)) {
|
|
521
|
-
for (const tool of response.data.tools) {
|
|
522
|
-
const toolName = tool.name;
|
|
523
|
-
if (!toolName)
|
|
524
|
-
continue;
|
|
525
|
-
const requiresDelegation = tool.requiresDelegation ??
|
|
526
|
-
tool.requires_delegation ??
|
|
527
|
-
false;
|
|
528
|
-
const requiredScopes = tool.requiredScopes ??
|
|
529
|
-
tool.required_scopes ??
|
|
530
|
-
tool.scopes ??
|
|
531
|
-
[];
|
|
532
|
-
toolProtections[toolName] = {
|
|
533
|
-
requiresDelegation,
|
|
534
|
-
requiredScopes,
|
|
535
|
-
};
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
else {
|
|
539
|
-
for (const [toolName, toolConfig] of Object.entries(response.data.tools)) {
|
|
627
|
+
console.log("[ToolProtectionService] clearAndRefresh starting", {
|
|
628
|
+
cacheKey,
|
|
629
|
+
projectId: this.config.projectId || "none",
|
|
630
|
+
agentDid: agentDid.slice(0, 20) + "...",
|
|
631
|
+
});
|
|
632
|
+
// 1. Delete the cache entry
|
|
633
|
+
await this.cache.delete(cacheKey);
|
|
634
|
+
console.log("[ToolProtectionService] Cache entry deleted", { cacheKey });
|
|
635
|
+
// 2. Fetch fresh config from API
|
|
636
|
+
try {
|
|
637
|
+
const response = await this.fetchFromApi(agentDid);
|
|
638
|
+
// Transform API response to internal format (same logic as getToolProtectionConfig)
|
|
639
|
+
const toolProtections = {};
|
|
640
|
+
if (response.data.toolProtections) {
|
|
641
|
+
for (const [toolName, toolConfig] of Object.entries(response.data.toolProtections)) {
|
|
540
642
|
const requiresDelegation = toolConfig.requiresDelegation ??
|
|
541
643
|
toolConfig.requires_delegation ??
|
|
542
644
|
false;
|
|
@@ -544,25 +646,93 @@ class ToolProtectionService {
|
|
|
544
646
|
toolConfig.required_scopes ??
|
|
545
647
|
toolConfig.scopes ??
|
|
546
648
|
[];
|
|
649
|
+
const oauthProvider = toolConfig.oauthProvider ??
|
|
650
|
+
toolConfig.oauth_provider ??
|
|
651
|
+
undefined;
|
|
652
|
+
const riskLevel = toolConfig.riskLevel ??
|
|
653
|
+
toolConfig.risk_level ??
|
|
654
|
+
undefined;
|
|
547
655
|
toolProtections[toolName] = {
|
|
548
656
|
requiresDelegation,
|
|
549
657
|
requiredScopes,
|
|
658
|
+
...(oauthProvider && { oauthProvider }),
|
|
659
|
+
...(riskLevel && { riskLevel }),
|
|
550
660
|
};
|
|
551
661
|
}
|
|
552
662
|
}
|
|
663
|
+
else if (response.data.tools) {
|
|
664
|
+
if (Array.isArray(response.data.tools)) {
|
|
665
|
+
for (const tool of response.data.tools) {
|
|
666
|
+
const toolName = tool.name;
|
|
667
|
+
if (!toolName)
|
|
668
|
+
continue;
|
|
669
|
+
const requiresDelegation = tool.requiresDelegation ?? tool.requires_delegation ?? false;
|
|
670
|
+
const requiredScopes = tool.requiredScopes ??
|
|
671
|
+
tool.required_scopes ??
|
|
672
|
+
tool.scopes ??
|
|
673
|
+
[];
|
|
674
|
+
const oauthProvider = tool.oauthProvider ?? tool.oauth_provider ?? undefined;
|
|
675
|
+
const riskLevel = tool.riskLevel ?? tool.risk_level ?? undefined;
|
|
676
|
+
toolProtections[toolName] = {
|
|
677
|
+
requiresDelegation,
|
|
678
|
+
requiredScopes,
|
|
679
|
+
...(oauthProvider && { oauthProvider }),
|
|
680
|
+
...(riskLevel && { riskLevel }),
|
|
681
|
+
};
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
else {
|
|
685
|
+
for (const [toolName, toolConfig] of Object.entries(response.data.tools)) {
|
|
686
|
+
const requiresDelegation = toolConfig.requiresDelegation ??
|
|
687
|
+
toolConfig.requires_delegation ??
|
|
688
|
+
false;
|
|
689
|
+
const requiredScopes = toolConfig.requiredScopes ??
|
|
690
|
+
toolConfig.required_scopes ??
|
|
691
|
+
toolConfig.scopes ??
|
|
692
|
+
[];
|
|
693
|
+
const oauthProvider = toolConfig.oauthProvider ??
|
|
694
|
+
toolConfig.oauth_provider ??
|
|
695
|
+
undefined;
|
|
696
|
+
const riskLevel = toolConfig.riskLevel ??
|
|
697
|
+
toolConfig.risk_level ??
|
|
698
|
+
undefined;
|
|
699
|
+
toolProtections[toolName] = {
|
|
700
|
+
requiresDelegation,
|
|
701
|
+
requiredScopes,
|
|
702
|
+
...(oauthProvider && { oauthProvider }),
|
|
703
|
+
...(riskLevel && { riskLevel }),
|
|
704
|
+
};
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
// Construct fresh config (ToolProtectionConfig type)
|
|
709
|
+
const freshConfig = {
|
|
710
|
+
toolProtections,
|
|
711
|
+
};
|
|
712
|
+
// 3. Write fresh config to cache
|
|
713
|
+
const ttl = this.config.cacheTtl ?? 300000;
|
|
714
|
+
await this.cache.set(cacheKey, freshConfig, ttl);
|
|
715
|
+
console.log("[ToolProtectionService] Fresh config fetched and cached", {
|
|
716
|
+
cacheKey,
|
|
717
|
+
toolCount: Object.keys(toolProtections).length,
|
|
718
|
+
protectedTools: Object.entries(toolProtections)
|
|
719
|
+
.filter(([_, cfg]) => cfg.requiresDelegation)
|
|
720
|
+
.map(([name]) => name),
|
|
721
|
+
source: "api",
|
|
722
|
+
});
|
|
723
|
+
return { config: freshConfig, cacheKey, source: 'api' };
|
|
724
|
+
}
|
|
725
|
+
catch (error) {
|
|
726
|
+
console.warn("[ToolProtectionService] API fetch failed during refresh, using fallback", {
|
|
727
|
+
error: error instanceof Error ? error.message : String(error),
|
|
728
|
+
cacheKey,
|
|
729
|
+
});
|
|
730
|
+
// Use fallback config if API fails
|
|
731
|
+
const fallbackConfig = this.config.fallbackConfig || {
|
|
732
|
+
toolProtections: {},
|
|
733
|
+
};
|
|
734
|
+
return { config: fallbackConfig, cacheKey, source: 'fallback' };
|
|
553
735
|
}
|
|
554
|
-
const config = { toolProtections };
|
|
555
|
-
// Cache the fresh config
|
|
556
|
-
const ttl = this.config.cacheTtl ?? 300000; // Default 5 minutes
|
|
557
|
-
await this.cache.set(cacheKey, config, ttl);
|
|
558
|
-
console.log("[ToolProtectionService] Cache refreshed successfully", {
|
|
559
|
-
toolCount: Object.keys(toolProtections).length,
|
|
560
|
-
protectedTools: Object.entries(toolProtections)
|
|
561
|
-
.filter(([_, config]) => config.requiresDelegation)
|
|
562
|
-
.map(([name]) => name),
|
|
563
|
-
agentDid: agentDid.slice(0, 20) + "...",
|
|
564
|
-
});
|
|
565
|
-
return config;
|
|
566
736
|
}
|
|
567
737
|
}
|
|
568
738
|
exports.ToolProtectionService = ToolProtectionService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-protection.service.js","sourceRoot":"","sources":["../../src/services/tool-protection.service.ts"],"names":[],"mappings":"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"}
|
|
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,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OAuth Required Error
|
|
3
|
+
*
|
|
4
|
+
* Error thrown when a tool requires an IDP token (OAuth) but none is available.
|
|
5
|
+
* This triggers the OAuth flow to obtain the necessary token.
|
|
6
|
+
*
|
|
7
|
+
* @package @kya-os/mcp-i-core
|
|
8
|
+
*/
|
|
9
|
+
export interface OAuthRequiredErrorOptions {
|
|
10
|
+
/** Name of the tool requiring OAuth */
|
|
11
|
+
toolName: string;
|
|
12
|
+
/** Required OAuth scopes */
|
|
13
|
+
requiredScopes: string[];
|
|
14
|
+
/** OAuth provider name (e.g., "github", "google") */
|
|
15
|
+
provider: string;
|
|
16
|
+
/** OAuth authorization URL */
|
|
17
|
+
oauthUrl: string;
|
|
18
|
+
/** Optional resume token for continuing after OAuth */
|
|
19
|
+
resumeToken?: string;
|
|
20
|
+
/** Optional user DID */
|
|
21
|
+
userDid?: string;
|
|
22
|
+
/** Optional session ID */
|
|
23
|
+
sessionId?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Error thrown when a tool requires OAuth but IDP token is not available
|
|
27
|
+
*
|
|
28
|
+
* This error should trigger the OAuth flow to obtain the necessary IDP token.
|
|
29
|
+
*/
|
|
30
|
+
export declare class OAuthRequiredError extends Error {
|
|
31
|
+
readonly toolName: string;
|
|
32
|
+
readonly requiredScopes: string[];
|
|
33
|
+
readonly provider: string;
|
|
34
|
+
readonly oauthUrl: string;
|
|
35
|
+
readonly resumeToken?: string;
|
|
36
|
+
readonly userDid?: string;
|
|
37
|
+
readonly sessionId?: string;
|
|
38
|
+
constructor(options: OAuthRequiredErrorOptions);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=oauth-required-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-required-error.d.ts","sourceRoot":"","sources":["../../src/types/oauth-required-error.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAEjB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,yBAAyB;CAe/C"}
|