@kya-os/mcp-i-cloudflare 1.5.10-canary.8 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -0
- package/dist/__tests__/e2e/test-config.d.ts +37 -0
- package/dist/__tests__/e2e/test-config.d.ts.map +1 -0
- package/dist/__tests__/e2e/test-config.js +62 -0
- package/dist/__tests__/e2e/test-config.js.map +1 -0
- package/dist/adapter.d.ts +44 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +712 -112
- package/dist/adapter.js.map +1 -1
- package/dist/agent.d.ts +103 -25
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +617 -40
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +0 -8
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +277 -119
- package/dist/app.js.map +1 -1
- package/dist/cache/kv-oauth-config-cache.d.ts +47 -0
- package/dist/cache/kv-oauth-config-cache.d.ts.map +1 -0
- package/dist/cache/kv-oauth-config-cache.js +82 -0
- package/dist/cache/kv-oauth-config-cache.js.map +1 -0
- package/dist/cache/kv-tool-protection-cache.d.ts +26 -1
- package/dist/cache/kv-tool-protection-cache.d.ts.map +1 -1
- package/dist/cache/kv-tool-protection-cache.js +19 -11
- package/dist/cache/kv-tool-protection-cache.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +39 -14
- package/dist/config.js.map +1 -1
- package/dist/helpers/env-mapper.d.ts +60 -1
- package/dist/helpers/env-mapper.d.ts.map +1 -1
- package/dist/helpers/env-mapper.js +136 -6
- package/dist/helpers/env-mapper.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime/audit-logger.d.ts +96 -0
- package/dist/runtime/audit-logger.d.ts.map +1 -0
- package/dist/runtime/audit-logger.js +276 -0
- package/dist/runtime/audit-logger.js.map +1 -0
- package/dist/runtime/oauth-handler.d.ts +5 -0
- package/dist/runtime/oauth-handler.d.ts.map +1 -1
- package/dist/runtime/oauth-handler.js +287 -35
- package/dist/runtime/oauth-handler.js.map +1 -1
- package/dist/runtime.d.ts +12 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +34 -4
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +133 -18
- package/dist/server.js.map +1 -1
- package/dist/services/admin.service.d.ts +1 -3
- package/dist/services/admin.service.d.ts.map +1 -1
- package/dist/services/admin.service.js +175 -146
- package/dist/services/admin.service.js.map +1 -1
- package/dist/services/consent-audit.service.d.ts +91 -0
- package/dist/services/consent-audit.service.d.ts.map +1 -0
- package/dist/services/consent-audit.service.js +243 -0
- package/dist/services/consent-audit.service.js.map +1 -0
- package/dist/services/consent-config.service.d.ts +2 -2
- package/dist/services/consent-config.service.d.ts.map +1 -1
- package/dist/services/consent-config.service.js +55 -28
- package/dist/services/consent-config.service.js.map +1 -1
- package/dist/services/consent-page-renderer.d.ts +14 -0
- package/dist/services/consent-page-renderer.d.ts.map +1 -1
- package/dist/services/consent-page-renderer.js +54 -27
- package/dist/services/consent-page-renderer.js.map +1 -1
- package/dist/services/consent.service.d.ts +93 -8
- package/dist/services/consent.service.d.ts.map +1 -1
- package/dist/services/consent.service.js +1817 -553
- package/dist/services/consent.service.js.map +1 -1
- package/dist/services/delegation.service.d.ts.map +1 -1
- package/dist/services/delegation.service.js +67 -29
- package/dist/services/delegation.service.js.map +1 -1
- package/dist/services/idp-token-storage.d.ts +68 -0
- package/dist/services/idp-token-storage.d.ts.map +1 -0
- package/dist/services/idp-token-storage.js +157 -0
- package/dist/services/idp-token-storage.js.map +1 -0
- package/dist/services/oauth-service.d.ts +66 -0
- package/dist/services/oauth-service.d.ts.map +1 -0
- package/dist/services/oauth-service.js +223 -0
- package/dist/services/oauth-service.js.map +1 -0
- package/dist/services/proof.service.d.ts +8 -6
- package/dist/services/proof.service.d.ts.map +1 -1
- package/dist/services/proof.service.js +131 -75
- package/dist/services/proof.service.js.map +1 -1
- package/dist/services/tool-context-builder.d.ts +55 -0
- package/dist/services/tool-context-builder.d.ts.map +1 -0
- package/dist/services/tool-context-builder.js +124 -0
- package/dist/services/tool-context-builder.js.map +1 -0
- package/dist/types/tool-context.d.ts +35 -0
- package/dist/types/tool-context.d.ts.map +1 -0
- package/dist/types/tool-context.js +13 -0
- package/dist/types/tool-context.js.map +1 -0
- package/dist/types.d.ts +31 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/oauth-service-registry.d.ts +65 -0
- package/dist/utils/oauth-service-registry.d.ts.map +1 -0
- package/dist/utils/oauth-service-registry.js +125 -0
- package/dist/utils/oauth-service-registry.js.map +1 -0
- package/package.json +27 -60
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare KV-based cache implementation for OAuth provider configurations
|
|
3
|
+
*
|
|
4
|
+
* Uses Cloudflare KV for distributed caching across Workers instances.
|
|
5
|
+
* Suitable for production Cloudflare Workers deployments.
|
|
6
|
+
*
|
|
7
|
+
* @package @kya-os/mcp-i-cloudflare
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* KV-based cache implementation for OAuth configs
|
|
11
|
+
*
|
|
12
|
+
* Storage format:
|
|
13
|
+
* - Key: `oauth-config:{projectId}`
|
|
14
|
+
* - Value: JSON stringified OAuthConfig
|
|
15
|
+
* - Metadata: expiration timestamp stored in KV metadata
|
|
16
|
+
*/
|
|
17
|
+
export class KVOAuthConfigCache {
|
|
18
|
+
kv;
|
|
19
|
+
keyPrefix;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.kv = config.kv;
|
|
22
|
+
this.keyPrefix = config.keyPrefix || "oauth-config:";
|
|
23
|
+
}
|
|
24
|
+
async get(key) {
|
|
25
|
+
const cacheKey = `${this.keyPrefix}${key}`;
|
|
26
|
+
try {
|
|
27
|
+
const cached = await this.kv.get(cacheKey, {
|
|
28
|
+
type: "json",
|
|
29
|
+
});
|
|
30
|
+
if (!cached) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
// KV automatically handles expiration via expirationTtl set during put()
|
|
34
|
+
// When type is "json", KV returns the parsed object
|
|
35
|
+
return cached;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.warn("[KVOAuthConfigCache] Failed to get cache entry", {
|
|
39
|
+
key: cacheKey,
|
|
40
|
+
error: error instanceof Error ? error.message : String(error),
|
|
41
|
+
});
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async set(key, value, ttl) {
|
|
46
|
+
const cacheKey = `${this.keyPrefix}${key}`;
|
|
47
|
+
try {
|
|
48
|
+
// Convert TTL from milliseconds to seconds (KV uses seconds)
|
|
49
|
+
const ttlSeconds = Math.floor(ttl / 1000);
|
|
50
|
+
await this.kv.put(cacheKey, JSON.stringify(value), {
|
|
51
|
+
expirationTtl: ttlSeconds,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.warn("[KVOAuthConfigCache] Failed to set cache entry", {
|
|
56
|
+
key: cacheKey,
|
|
57
|
+
error: error instanceof Error ? error.message : String(error),
|
|
58
|
+
});
|
|
59
|
+
// Don't throw - cache failures shouldn't break the app
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async clear() {
|
|
63
|
+
// KV doesn't support clearing all keys efficiently
|
|
64
|
+
// This would require listing all keys, which is expensive
|
|
65
|
+
// For now, we'll log a warning
|
|
66
|
+
console.warn("[KVOAuthConfigCache] clear() not supported for KV cache. Use delete() for specific keys.");
|
|
67
|
+
}
|
|
68
|
+
async delete(key) {
|
|
69
|
+
const cacheKey = `${this.keyPrefix}${key}`;
|
|
70
|
+
try {
|
|
71
|
+
await this.kv.delete(cacheKey);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.warn("[KVOAuthConfigCache] Failed to delete cache entry", {
|
|
75
|
+
key: cacheKey,
|
|
76
|
+
error: error instanceof Error ? error.message : String(error),
|
|
77
|
+
});
|
|
78
|
+
// Don't throw - cache failures shouldn't break the app
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=kv-oauth-config-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kv-oauth-config-cache.js","sourceRoot":"","sources":["../../src/cache/kv-oauth-config-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAkB;IACrB,EAAE,CAAkB;IACpB,SAAS,CAAS;IAE1B,YAAY,MAAgC;QAC1C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,eAAe,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE;gBACzC,IAAI,EAAE,MAAM;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,yEAAyE;YACzE,oDAAoD;YACpD,OAAO,MAAgC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAC7D,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAkB,EAAE,GAAW;QACpD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAE1C,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBACjD,aAAa,EAAE,UAAU;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE;gBAC7D,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,uDAAuD;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,mDAAmD;QACnD,0DAA0D;QAC1D,+BAA+B;QAC/B,OAAO,CAAC,IAAI,CACV,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mDAAmD,EAAE;gBAChE,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;YACH,uDAAuD;QACzD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -8,10 +8,16 @@
|
|
|
8
8
|
import type { ToolProtectionCache, ToolProtectionConfig } from '@kya-os/mcp-i-core';
|
|
9
9
|
/**
|
|
10
10
|
* CloudFlare KV namespace interface
|
|
11
|
+
*
|
|
12
|
+
* Note: `cacheTtl` is a Cloudflare KV-specific option that controls edge caching:
|
|
13
|
+
* - When not specified: KV uses edge caching (eventually consistent, ~60s stale window)
|
|
14
|
+
* - When set to 0 or low value: Bypasses edge cache, reads from global KV store
|
|
15
|
+
* - Useful for cache invalidation scenarios where fresh data is required
|
|
11
16
|
*/
|
|
12
17
|
export interface KVNamespace {
|
|
13
18
|
get(key: string, options?: {
|
|
14
19
|
type: 'json';
|
|
20
|
+
cacheTtl?: number;
|
|
15
21
|
}): Promise<any>;
|
|
16
22
|
put(key: string, value: string, options?: {
|
|
17
23
|
expirationTtl: number;
|
|
@@ -34,11 +40,30 @@ export interface KVNamespace {
|
|
|
34
40
|
* - JSON serialization/deserialization
|
|
35
41
|
* - Namespace prefix isolation
|
|
36
42
|
*/
|
|
43
|
+
/**
|
|
44
|
+
* Options for cache get operations
|
|
45
|
+
*/
|
|
46
|
+
export interface KVCacheGetOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Bypass Cloudflare KV edge cache and read directly from global store.
|
|
49
|
+
* Use this after cache invalidation to ensure fresh data.
|
|
50
|
+
*
|
|
51
|
+
* Note: This adds latency (~100ms) compared to edge-cached reads (~5ms)
|
|
52
|
+
*/
|
|
53
|
+
bypassEdgeCache?: boolean;
|
|
54
|
+
}
|
|
37
55
|
export declare class KVToolProtectionCache implements ToolProtectionCache {
|
|
38
56
|
private kv;
|
|
39
57
|
private prefix;
|
|
40
58
|
constructor(kv: KVNamespace, prefix?: string);
|
|
41
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Get a value from the cache
|
|
61
|
+
*
|
|
62
|
+
* @param key Cache key
|
|
63
|
+
* @param options Optional settings for cache retrieval
|
|
64
|
+
* @returns Cached config or null if not found/expired
|
|
65
|
+
*/
|
|
66
|
+
get(key: string, options?: KVCacheGetOptions): Promise<ToolProtectionConfig | null>;
|
|
42
67
|
set(key: string, value: ToolProtectionConfig, ttl: number): Promise<void>;
|
|
43
68
|
clear(): Promise<void>;
|
|
44
69
|
delete(key: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv-tool-protection-cache.d.ts","sourceRoot":"","sources":["../../src/cache/kv-tool-protection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B
|
|
1
|
+
{"version":3,"file":"kv-tool-protection-cache.d.ts","sourceRoot":"","sources":["../../src/cache/kv-tool-protection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;CACjF;AAED;;;;;;;;GAQG;AACH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,MAAM,CAAS;gBAEX,EAAE,EAAE,WAAW,EAAE,MAAM,GAAE,MAA2B;IAKhE;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAsCnF,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAoBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAetB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAazC"}
|
|
@@ -5,15 +5,6 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @package @kya-os/mcp-i-cloudflare
|
|
7
7
|
*/
|
|
8
|
-
/**
|
|
9
|
-
* CloudFlare KV cache adapter for tool protection configurations
|
|
10
|
-
*
|
|
11
|
-
* Features:
|
|
12
|
-
* - Distributed edge caching via CloudFlare KV
|
|
13
|
-
* - Automatic TTL expiration
|
|
14
|
-
* - JSON serialization/deserialization
|
|
15
|
-
* - Namespace prefix isolation
|
|
16
|
-
*/
|
|
17
8
|
export class KVToolProtectionCache {
|
|
18
9
|
kv;
|
|
19
10
|
prefix;
|
|
@@ -21,10 +12,27 @@ export class KVToolProtectionCache {
|
|
|
21
12
|
this.kv = kv;
|
|
22
13
|
this.prefix = prefix;
|
|
23
14
|
}
|
|
24
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Get a value from the cache
|
|
17
|
+
*
|
|
18
|
+
* @param key Cache key
|
|
19
|
+
* @param options Optional settings for cache retrieval
|
|
20
|
+
* @returns Cached config or null if not found/expired
|
|
21
|
+
*/
|
|
22
|
+
async get(key, options) {
|
|
25
23
|
const fullKey = this.prefix + key;
|
|
26
24
|
try {
|
|
27
|
-
|
|
25
|
+
// Build KV get options
|
|
26
|
+
// When bypassEdgeCache is true, use cacheTtl: 60 to minimize edge caching
|
|
27
|
+
// Note: cacheTtl of 0 is not allowed, minimum is 60 seconds
|
|
28
|
+
// But the key is that we're forcing a read that will update the edge cache
|
|
29
|
+
const kvOptions = { type: 'json' };
|
|
30
|
+
if (options?.bypassEdgeCache) {
|
|
31
|
+
// Use minimum cacheTtl to signal we want fresh data
|
|
32
|
+
// This doesn't completely bypass cache but ensures we get the latest
|
|
33
|
+
kvOptions.cacheTtl = 60;
|
|
34
|
+
}
|
|
35
|
+
const value = await this.kv.get(fullKey, kvOptions);
|
|
28
36
|
if (!value) {
|
|
29
37
|
return null;
|
|
30
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv-tool-protection-cache.js","sourceRoot":"","sources":["../../src/cache/kv-tool-protection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"kv-tool-protection-cache.js","sourceRoot":"","sources":["../../src/cache/kv-tool-protection-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -155,24 +155,49 @@ export function defineConfig(config) {
|
|
|
155
155
|
apiUrl: env.AGENTSHIELD_API_URL || 'https://kya.vouched.id',
|
|
156
156
|
apiKey: env.AGENTSHIELD_API_KEY,
|
|
157
157
|
projectId: env.AGENTSHIELD_PROJECT_ID,
|
|
158
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Cache TTL for tool protection configuration.
|
|
160
|
+
*
|
|
161
|
+
* Default: 300000ms (5 minutes)
|
|
162
|
+
*
|
|
163
|
+
* Environment variable: TOOL_PROTECTION_CACHE_TTL
|
|
164
|
+
*
|
|
165
|
+
* Recommendations:
|
|
166
|
+
* - Production: 300000ms (5 min) - Good balance between performance and freshness
|
|
167
|
+
* - Development: 60000ms (1 min) - Faster feedback during testing
|
|
168
|
+
* - Debugging: 0ms (no cache) - Immediate updates, but degrades performance
|
|
169
|
+
*
|
|
170
|
+
* Note: Even with cache enabled, the AgentShield dashboard automatically
|
|
171
|
+
* triggers cache invalidation via POST /admin/clear-cache when you update
|
|
172
|
+
* tool protection settings. This means changes take effect within seconds
|
|
173
|
+
* rather than waiting for the full cache TTL.
|
|
174
|
+
*
|
|
175
|
+
* Valid range: 0 to 3600000ms (0 to 1 hour)
|
|
176
|
+
*/
|
|
177
|
+
cacheTtl: (() => {
|
|
178
|
+
const ttl = env.TOOL_PROTECTION_CACHE_TTL
|
|
179
|
+
? parseInt(env.TOOL_PROTECTION_CACHE_TTL, 10)
|
|
180
|
+
: 300000; // 5 minutes default
|
|
181
|
+
// Validate range: 0 to 1 hour
|
|
182
|
+
if (isNaN(ttl) || ttl < 0 || ttl > 3600000) {
|
|
183
|
+
console.warn(`Invalid TOOL_PROTECTION_CACHE_TTL: ${env.TOOL_PROTECTION_CACHE_TTL}. ` +
|
|
184
|
+
`Must be between 0 and 3600000 (1 hour). Using default 300000ms (5 min).`);
|
|
185
|
+
return 300000;
|
|
186
|
+
}
|
|
187
|
+
return ttl;
|
|
188
|
+
})(),
|
|
159
189
|
},
|
|
160
190
|
// Fallback config (used if API is unavailable)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
},
|
|
191
|
+
// Type is ToolProtectionMap (Record<string, ToolProtection>), not wrapped
|
|
192
|
+
fallback: {},
|
|
164
193
|
debug: baseConfig.environment === 'development',
|
|
165
194
|
} : undefined),
|
|
166
|
-
// Admin API configuration
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
: (env.AGENTSHIELD_API_KEY ? {
|
|
173
|
-
enabled: true,
|
|
174
|
-
apiKey: env.ADMIN_API_KEY || env.AGENTSHIELD_API_KEY, // Use ADMIN_API_KEY if set, otherwise AGENTSHIELD_API_KEY
|
|
175
|
-
} : undefined),
|
|
195
|
+
// Admin API configuration
|
|
196
|
+
// Auto-enable admin endpoints when AGENTSHIELD_API_KEY is present (if not explicitly configured)
|
|
197
|
+
admin: config.admin || (env.AGENTSHIELD_API_KEY ? {
|
|
198
|
+
enabled: true,
|
|
199
|
+
apiKey: env.ADMIN_API_KEY || env.AGENTSHIELD_API_KEY,
|
|
200
|
+
} : undefined),
|
|
176
201
|
};
|
|
177
202
|
}
|
|
178
203
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Environment Mapping Helpers
|
|
3
3
|
*
|
|
4
|
-
* Utilities for mapping prefixed KV bindings to standard CloudflareEnv format
|
|
4
|
+
* Utilities for mapping prefixed KV bindings to standard CloudflareEnv format.
|
|
5
|
+
*
|
|
6
|
+
* These utilities ensure consistent KV binding access across all components,
|
|
7
|
+
* supporting both prefixed (e.g., `_17429_NONCE_CACHE`) and non-prefixed (e.g., `NONCE_CACHE`) formats.
|
|
8
|
+
*
|
|
9
|
+
* @module @kya-os/mcp-i-cloudflare/helpers/env-mapper
|
|
5
10
|
*/
|
|
6
11
|
import type { CloudflareEnv } from "../types";
|
|
7
12
|
import type { PrefixedCloudflareEnv } from "../agent";
|
|
13
|
+
/**
|
|
14
|
+
* Detect environment prefix by checking for prefixed KV bindings
|
|
15
|
+
*
|
|
16
|
+
* Checks common KV binding names to determine if a prefix is being used.
|
|
17
|
+
* Returns the prefix (without underscore) if found, undefined otherwise.
|
|
18
|
+
*
|
|
19
|
+
* @param env - Environment object to check
|
|
20
|
+
* @returns Detected prefix (e.g., "_17429" → "17429") or undefined
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const env = { _17429_NONCE_CACHE: kvNamespace };
|
|
25
|
+
* const prefix = detectEnvPrefix(env); // Returns "17429"
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectEnvPrefix(env: any): string | undefined;
|
|
8
29
|
/**
|
|
9
30
|
* Map prefixed KV bindings to standard CloudflareEnv format
|
|
10
31
|
*
|
|
32
|
+
* Explicitly maps prefixed KV bindings (e.g., `MYAPP_NONCE_CACHE`) to standard names
|
|
33
|
+
* (e.g., `NONCE_CACHE`). Use this when you know the prefix ahead of time.
|
|
34
|
+
*
|
|
35
|
+
* @param env - Environment object with prefixed KV bindings
|
|
36
|
+
* @param prefix - Prefix to use (e.g., "MYAPP" or "_17429")
|
|
37
|
+
* @returns Normalized CloudflareEnv with standard KV binding names
|
|
38
|
+
*
|
|
11
39
|
* @example
|
|
12
40
|
* ```typescript
|
|
13
41
|
* const env = {
|
|
@@ -20,4 +48,35 @@ import type { PrefixedCloudflareEnv } from "../agent";
|
|
|
20
48
|
* ```
|
|
21
49
|
*/
|
|
22
50
|
export declare function mapPrefixedEnv(env: PrefixedCloudflareEnv, prefix: string): CloudflareEnv;
|
|
51
|
+
/**
|
|
52
|
+
* Normalize Cloudflare environment to standard CloudflareEnv format
|
|
53
|
+
*
|
|
54
|
+
* Automatically handles both prefixed and non-prefixed KV bindings:
|
|
55
|
+
* - If `prefix` is provided, uses explicit prefix mapping
|
|
56
|
+
* - If `prefix` is not provided, attempts auto-detection
|
|
57
|
+
* - Falls back to direct access if no prefix detected
|
|
58
|
+
*
|
|
59
|
+
* This is the recommended function for normalizing environments before use.
|
|
60
|
+
* All components should use this to ensure consistent KV binding access.
|
|
61
|
+
*
|
|
62
|
+
* @param env - Environment object (may have prefixed or non-prefixed KV bindings)
|
|
63
|
+
* @param prefix - Optional explicit prefix (e.g., "MYAPP" or "_17429")
|
|
64
|
+
* @returns Normalized CloudflareEnv with standard KV binding names
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* // With explicit prefix
|
|
69
|
+
* const env1 = { MYAPP_NONCE_CACHE: kvNamespace };
|
|
70
|
+
* const normalized1 = normalizeCloudflareEnv(env1, "MYAPP");
|
|
71
|
+
*
|
|
72
|
+
* // With auto-detection
|
|
73
|
+
* const env2 = { _17429_NONCE_CACHE: kvNamespace };
|
|
74
|
+
* const normalized2 = normalizeCloudflareEnv(env2); // Auto-detects "_17429"
|
|
75
|
+
*
|
|
76
|
+
* // Without prefix (direct access)
|
|
77
|
+
* const env3 = { NONCE_CACHE: kvNamespace };
|
|
78
|
+
* const normalized3 = normalizeCloudflareEnv(env3); // Uses direct access
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function normalizeCloudflareEnv(env: any, prefix?: string): CloudflareEnv;
|
|
23
82
|
//# sourceMappingURL=env-mapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-mapper.d.ts","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env-mapper.d.ts","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAatD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAsB5D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,qBAAqB,EAC1B,MAAM,EAAE,MAAM,GACb,aAAa,CA+Bf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,EACR,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAgCf"}
|
|
@@ -1,11 +1,69 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Environment Mapping Helpers
|
|
3
3
|
*
|
|
4
|
-
* Utilities for mapping prefixed KV bindings to standard CloudflareEnv format
|
|
4
|
+
* Utilities for mapping prefixed KV bindings to standard CloudflareEnv format.
|
|
5
|
+
*
|
|
6
|
+
* These utilities ensure consistent KV binding access across all components,
|
|
7
|
+
* supporting both prefixed (e.g., `_17429_NONCE_CACHE`) and non-prefixed (e.g., `NONCE_CACHE`) formats.
|
|
8
|
+
*
|
|
9
|
+
* @module @kya-os/mcp-i-cloudflare/helpers/env-mapper
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Standard KV binding names that may be prefixed
|
|
13
|
+
*/
|
|
14
|
+
const KV_BINDING_NAMES = [
|
|
15
|
+
'NONCE_CACHE',
|
|
16
|
+
'PROOF_ARCHIVE',
|
|
17
|
+
'IDENTITY_STORAGE',
|
|
18
|
+
'DELEGATION_STORAGE',
|
|
19
|
+
'TOOL_PROTECTION_KV',
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Detect environment prefix by checking for prefixed KV bindings
|
|
23
|
+
*
|
|
24
|
+
* Checks common KV binding names to determine if a prefix is being used.
|
|
25
|
+
* Returns the prefix (without underscore) if found, undefined otherwise.
|
|
26
|
+
*
|
|
27
|
+
* @param env - Environment object to check
|
|
28
|
+
* @returns Detected prefix (e.g., "_17429" → "17429") or undefined
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const env = { _17429_NONCE_CACHE: kvNamespace };
|
|
33
|
+
* const prefix = detectEnvPrefix(env); // Returns "17429"
|
|
34
|
+
* ```
|
|
5
35
|
*/
|
|
36
|
+
export function detectEnvPrefix(env) {
|
|
37
|
+
if (!env || typeof env !== 'object') {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
// Check each KV binding name
|
|
41
|
+
for (const bindingName of KV_BINDING_NAMES) {
|
|
42
|
+
// Check for prefixed versions (e.g., _17429_NONCE_CACHE, MYAPP_NONCE_CACHE)
|
|
43
|
+
for (const key in env) {
|
|
44
|
+
if (typeof key === 'string' && key.endsWith(`_${bindingName}`)) {
|
|
45
|
+
// Extract prefix (everything before _NONCE_CACHE, etc.)
|
|
46
|
+
const prefix = key.slice(0, -(bindingName.length + 1));
|
|
47
|
+
if (prefix.length > 0) {
|
|
48
|
+
// Return prefix as-is (including leading underscore if present)
|
|
49
|
+
// The mapPrefixedEnv function handles both _17429 and 17429 formats
|
|
50
|
+
return prefix;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
6
57
|
/**
|
|
7
58
|
* Map prefixed KV bindings to standard CloudflareEnv format
|
|
8
59
|
*
|
|
60
|
+
* Explicitly maps prefixed KV bindings (e.g., `MYAPP_NONCE_CACHE`) to standard names
|
|
61
|
+
* (e.g., `NONCE_CACHE`). Use this when you know the prefix ahead of time.
|
|
62
|
+
*
|
|
63
|
+
* @param env - Environment object with prefixed KV bindings
|
|
64
|
+
* @param prefix - Prefix to use (e.g., "MYAPP" or "_17429")
|
|
65
|
+
* @returns Normalized CloudflareEnv with standard KV binding names
|
|
66
|
+
*
|
|
9
67
|
* @example
|
|
10
68
|
* ```typescript
|
|
11
69
|
* const env = {
|
|
@@ -18,13 +76,83 @@
|
|
|
18
76
|
* ```
|
|
19
77
|
*/
|
|
20
78
|
export function mapPrefixedEnv(env, prefix) {
|
|
79
|
+
// Handle prefix with or without leading underscore
|
|
80
|
+
// Try both formats: _PREFIX_KEY and PREFIX_KEY
|
|
21
81
|
const prefixUpper = prefix.toUpperCase();
|
|
82
|
+
const prefixWithUnderscore = prefixUpper.startsWith('_') ? prefixUpper : `_${prefixUpper}`;
|
|
83
|
+
const prefixWithoutUnderscore = prefixUpper.replace(/^_+/, '');
|
|
84
|
+
// Helper to get KV binding, trying both prefix formats
|
|
85
|
+
const getKV = (bindingName) => {
|
|
86
|
+
return (env[`${prefixWithUnderscore}_${bindingName}`] ||
|
|
87
|
+
env[`${prefixWithoutUnderscore}_${bindingName}`]);
|
|
88
|
+
};
|
|
89
|
+
return {
|
|
90
|
+
NONCE_CACHE: getKV('NONCE_CACHE'),
|
|
91
|
+
PROOF_ARCHIVE: getKV('PROOF_ARCHIVE'),
|
|
92
|
+
IDENTITY_STORAGE: getKV('IDENTITY_STORAGE'),
|
|
93
|
+
DELEGATION_STORAGE: getKV('DELEGATION_STORAGE'),
|
|
94
|
+
TOOL_PROTECTION_KV: getKV('TOOL_PROTECTION_KV'),
|
|
95
|
+
MCP_IDENTITY_PRIVATE_KEY: typeof env.MCP_IDENTITY_PRIVATE_KEY === 'string' ? env.MCP_IDENTITY_PRIVATE_KEY : undefined,
|
|
96
|
+
MCP_IDENTITY_PUBLIC_KEY: typeof env.MCP_IDENTITY_PUBLIC_KEY === 'string' ? env.MCP_IDENTITY_PUBLIC_KEY : undefined,
|
|
97
|
+
MCP_IDENTITY_AGENT_DID: typeof env.MCP_IDENTITY_AGENT_DID === 'string' ? env.MCP_IDENTITY_AGENT_DID : undefined,
|
|
98
|
+
AGENTSHIELD_API_URL: typeof env.AGENTSHIELD_API_URL === 'string' ? env.AGENTSHIELD_API_URL : undefined,
|
|
99
|
+
AGENTSHIELD_API_KEY: typeof env.AGENTSHIELD_API_KEY === 'string' ? env.AGENTSHIELD_API_KEY : undefined,
|
|
100
|
+
AGENTSHIELD_PROJECT_ID: typeof env.AGENTSHIELD_PROJECT_ID === 'string' ? env.AGENTSHIELD_PROJECT_ID : undefined,
|
|
101
|
+
MCPI_ENV: typeof env.MCPI_ENV === 'string' ? env.MCPI_ENV : undefined,
|
|
102
|
+
MCP_SERVER_URL: typeof env.MCP_SERVER_URL === 'string' ? env.MCP_SERVER_URL : undefined,
|
|
103
|
+
ENVIRONMENT: typeof env.ENVIRONMENT === 'string' ? env.ENVIRONMENT : undefined,
|
|
104
|
+
ADMIN_API_KEY: typeof env.ADMIN_API_KEY === 'string' ? env.ADMIN_API_KEY : undefined,
|
|
105
|
+
_durableObjectState: env._durableObjectState,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Normalize Cloudflare environment to standard CloudflareEnv format
|
|
110
|
+
*
|
|
111
|
+
* Automatically handles both prefixed and non-prefixed KV bindings:
|
|
112
|
+
* - If `prefix` is provided, uses explicit prefix mapping
|
|
113
|
+
* - If `prefix` is not provided, attempts auto-detection
|
|
114
|
+
* - Falls back to direct access if no prefix detected
|
|
115
|
+
*
|
|
116
|
+
* This is the recommended function for normalizing environments before use.
|
|
117
|
+
* All components should use this to ensure consistent KV binding access.
|
|
118
|
+
*
|
|
119
|
+
* @param env - Environment object (may have prefixed or non-prefixed KV bindings)
|
|
120
|
+
* @param prefix - Optional explicit prefix (e.g., "MYAPP" or "_17429")
|
|
121
|
+
* @returns Normalized CloudflareEnv with standard KV binding names
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* // With explicit prefix
|
|
126
|
+
* const env1 = { MYAPP_NONCE_CACHE: kvNamespace };
|
|
127
|
+
* const normalized1 = normalizeCloudflareEnv(env1, "MYAPP");
|
|
128
|
+
*
|
|
129
|
+
* // With auto-detection
|
|
130
|
+
* const env2 = { _17429_NONCE_CACHE: kvNamespace };
|
|
131
|
+
* const normalized2 = normalizeCloudflareEnv(env2); // Auto-detects "_17429"
|
|
132
|
+
*
|
|
133
|
+
* // Without prefix (direct access)
|
|
134
|
+
* const env3 = { NONCE_CACHE: kvNamespace };
|
|
135
|
+
* const normalized3 = normalizeCloudflareEnv(env3); // Uses direct access
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export function normalizeCloudflareEnv(env, prefix) {
|
|
139
|
+
// If explicit prefix provided, use it
|
|
140
|
+
if (prefix) {
|
|
141
|
+
return mapPrefixedEnv(env, prefix);
|
|
142
|
+
}
|
|
143
|
+
// Try auto-detection
|
|
144
|
+
const detectedPrefix = detectEnvPrefix(env);
|
|
145
|
+
if (detectedPrefix) {
|
|
146
|
+
return mapPrefixedEnv(env, detectedPrefix);
|
|
147
|
+
}
|
|
148
|
+
// Fall back to direct access (assumes standard naming)
|
|
149
|
+
// This handles non-prefixed environments
|
|
22
150
|
return {
|
|
23
|
-
NONCE_CACHE: env
|
|
24
|
-
PROOF_ARCHIVE: env
|
|
25
|
-
IDENTITY_STORAGE: env
|
|
26
|
-
DELEGATION_STORAGE: env
|
|
27
|
-
TOOL_PROTECTION_KV: env
|
|
151
|
+
NONCE_CACHE: env.NONCE_CACHE,
|
|
152
|
+
PROOF_ARCHIVE: env.PROOF_ARCHIVE,
|
|
153
|
+
IDENTITY_STORAGE: env.IDENTITY_STORAGE,
|
|
154
|
+
DELEGATION_STORAGE: env.DELEGATION_STORAGE,
|
|
155
|
+
TOOL_PROTECTION_KV: env.TOOL_PROTECTION_KV,
|
|
28
156
|
MCP_IDENTITY_PRIVATE_KEY: typeof env.MCP_IDENTITY_PRIVATE_KEY === 'string' ? env.MCP_IDENTITY_PRIVATE_KEY : undefined,
|
|
29
157
|
MCP_IDENTITY_PUBLIC_KEY: typeof env.MCP_IDENTITY_PUBLIC_KEY === 'string' ? env.MCP_IDENTITY_PUBLIC_KEY : undefined,
|
|
30
158
|
MCP_IDENTITY_AGENT_DID: typeof env.MCP_IDENTITY_AGENT_DID === 'string' ? env.MCP_IDENTITY_AGENT_DID : undefined,
|
|
@@ -34,6 +162,8 @@ export function mapPrefixedEnv(env, prefix) {
|
|
|
34
162
|
MCPI_ENV: typeof env.MCPI_ENV === 'string' ? env.MCPI_ENV : undefined,
|
|
35
163
|
MCP_SERVER_URL: typeof env.MCP_SERVER_URL === 'string' ? env.MCP_SERVER_URL : undefined,
|
|
36
164
|
ENVIRONMENT: typeof env.ENVIRONMENT === 'string' ? env.ENVIRONMENT : undefined,
|
|
165
|
+
ADMIN_API_KEY: typeof env.ADMIN_API_KEY === 'string' ? env.ADMIN_API_KEY : undefined,
|
|
166
|
+
_durableObjectState: env._durableObjectState,
|
|
37
167
|
};
|
|
38
168
|
}
|
|
39
169
|
//# sourceMappingURL=env-mapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-mapper.js","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env-mapper.js","sourceRoot":"","sources":["../../src/helpers/env-mapper.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,13 +23,15 @@ export { loadDay0Config, getDelegationFieldName, supportsFullDelegationFormat, h
|
|
|
23
23
|
export { CloudflareProofGenerator, type ProofMeta, type SessionContext, type ToolRequest, type ToolResponse, type ProofOptions, } from "./proof-generator";
|
|
24
24
|
export { CloudflareRuntime, type ToolCallContext } from "./runtime";
|
|
25
25
|
export { KVToolProtectionCache, type KVNamespace, } from "./cache/kv-tool-protection-cache";
|
|
26
|
+
export { KVOAuthConfigCache } from "./cache/kv-oauth-config-cache";
|
|
27
|
+
export type { KVOAuthConfigCacheConfig } from "./cache/kv-oauth-config-cache";
|
|
26
28
|
export { createOAuthCallbackHandler, extractDelegationToken, type HonoContext, type OAuthCallbackConfig, type OAuthSuccessData, type OAuthErrorData, type OAuthState, type TokenExchangeResponse, } from "./runtime/oauth-handler";
|
|
27
29
|
export type { AgentIdentity } from "@kya-os/mcp-i-core";
|
|
28
30
|
export { MCPICloudflareServer, type MCPICloudflareServerOptions, } from "./server";
|
|
29
31
|
export { AdminService } from "./services/admin.service";
|
|
30
|
-
export { MCPICloudflareAgent, type
|
|
32
|
+
export { MCPICloudflareAgent, type PrefixedCloudflareEnv } from "./agent";
|
|
31
33
|
export { createMCPIApp, type CreateMCPIAppOptions } from "./app";
|
|
32
|
-
export { mapPrefixedEnv } from "./helpers/env-mapper";
|
|
34
|
+
export { mapPrefixedEnv, normalizeCloudflareEnv, detectEnvPrefix, } from "./helpers/env-mapper";
|
|
33
35
|
export * from "./constants";
|
|
34
36
|
export { defineConfig } from "./config";
|
|
35
37
|
export type { CloudflareRuntimeConfig, CloudflareBuildConfig, CloudflareConfig, } from "./config";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|