@kya-os/mcp-i-core 1.1.10 → 1.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
- package/dist/__tests__/utils/mock-providers.js +16 -4
- package/dist/__tests__/utils/mock-providers.js.map +1 -1
- package/dist/cache/tool-protection-cache.d.ts.map +1 -1
- package/dist/cache/tool-protection-cache.js +4 -0
- package/dist/cache/tool-protection-cache.js.map +1 -1
- package/dist/compliance/schema-verifier-v2.d.ts +110 -0
- package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
- package/dist/compliance/schema-verifier-v2.js +510 -0
- package/dist/compliance/schema-verifier-v2.js.map +1 -0
- package/dist/config/remote-config.d.ts +69 -0
- package/dist/config/remote-config.d.ts.map +1 -0
- package/dist/config/remote-config.js +107 -0
- package/dist/config/remote-config.js.map +1 -0
- package/dist/config.d.ts +182 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +145 -0
- package/dist/config.js.map +1 -0
- package/dist/did/resolver.d.ts +92 -0
- package/dist/did/resolver.d.ts.map +1 -0
- package/dist/did/resolver.js +203 -0
- package/dist/did/resolver.js.map +1 -0
- package/dist/identity/user-did-manager.d.ts +106 -0
- package/dist/identity/user-did-manager.d.ts.map +1 -0
- package/dist/identity/user-did-manager.js +190 -0
- package/dist/identity/user-did-manager.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/proof/proof-engine.d.ts +89 -0
- package/dist/proof/proof-engine.d.ts.map +1 -0
- package/dist/proof/proof-engine.js +249 -0
- package/dist/proof/proof-engine.js.map +1 -0
- package/dist/runtime/base-v2.d.ts +117 -0
- package/dist/runtime/base-v2.d.ts.map +1 -0
- package/dist/runtime/base-v2.js +328 -0
- package/dist/runtime/base-v2.js.map +1 -0
- package/dist/runtime/base.d.ts +26 -31
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +206 -69
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/tool-protection.service.d.ts.map +1 -1
- package/dist/services/tool-protection.service.js +60 -11
- package/dist/services/tool-protection.service.js.map +1 -1
- package/dist/types/providers.d.ts +142 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +43 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/types/tool-protection.d.ts +22 -22
- package/dist/types/tool-protection.d.ts.map +1 -1
- package/dist/types/tool-protection.js +12 -5
- package/dist/types/tool-protection.js.map +1 -1
- package/dist/verification/interfaces.d.ts +125 -0
- package/dist/verification/interfaces.d.ts.map +1 -0
- package/dist/verification/interfaces.js +101 -0
- package/dist/verification/interfaces.js.map +1 -0
- package/package.json +10 -3
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Remote Configuration Fetching
|
|
4
|
+
*
|
|
5
|
+
* Service for fetching configuration from remote APIs (AgentShield dashboard)
|
|
6
|
+
* with caching support for performance optimization.
|
|
7
|
+
*
|
|
8
|
+
* @module @kya-os/mcp-i-core/config/remote-config
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.fetchRemoteConfig = fetchRemoteConfig;
|
|
12
|
+
const agentshield_api_1 = require("@kya-os/contracts/agentshield-api");
|
|
13
|
+
/**
|
|
14
|
+
* Fetch configuration from remote API (AgentShield dashboard)
|
|
15
|
+
*
|
|
16
|
+
* Attempts to fetch configuration from the AgentShield API with caching support.
|
|
17
|
+
* Falls back gracefully if remote fetch fails.
|
|
18
|
+
*
|
|
19
|
+
* @param options - Remote config options
|
|
20
|
+
* @param cache - Optional cache implementation
|
|
21
|
+
* @returns Configuration object or null if fetch fails
|
|
22
|
+
*/
|
|
23
|
+
async function fetchRemoteConfig(options, cache) {
|
|
24
|
+
const { apiUrl, apiKey, projectId, agentDid, cacheTtl = 300000, fetchProvider } = options;
|
|
25
|
+
// Generate cache key
|
|
26
|
+
const cacheKey = projectId
|
|
27
|
+
? `config:project:${projectId}`
|
|
28
|
+
: agentDid
|
|
29
|
+
? `config:agent:${agentDid}`
|
|
30
|
+
: null;
|
|
31
|
+
// Try cache first
|
|
32
|
+
if (cache && cacheKey) {
|
|
33
|
+
try {
|
|
34
|
+
const cached = await cache.get(cacheKey);
|
|
35
|
+
if (cached) {
|
|
36
|
+
try {
|
|
37
|
+
const parsed = JSON.parse(cached);
|
|
38
|
+
if (parsed.expiresAt > Date.now()) {
|
|
39
|
+
return parsed.config;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Invalid cache entry, continue to fetch
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
// Cache read failed, continue to fetch
|
|
49
|
+
console.warn('[RemoteConfig] Cache read failed:', error);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Fetch from API
|
|
53
|
+
try {
|
|
54
|
+
// Build API URL
|
|
55
|
+
let url;
|
|
56
|
+
if (projectId) {
|
|
57
|
+
// Use project-scoped endpoint (preferred)
|
|
58
|
+
url = `${apiUrl}${agentshield_api_1.AGENTSHIELD_ENDPOINTS.CONFIG(projectId)}`;
|
|
59
|
+
}
|
|
60
|
+
else if (agentDid) {
|
|
61
|
+
// Use agent-scoped endpoint
|
|
62
|
+
url = `${apiUrl}/api/v1/bouncer/config?agent_did=${encodeURIComponent(agentDid)}`;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.warn('[RemoteConfig] Neither projectId nor agentDid provided');
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
const response = await fetchProvider(url, {
|
|
69
|
+
headers: {
|
|
70
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
71
|
+
'Content-Type': 'application/json'
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
console.warn(`[RemoteConfig] API returned ${response.status}: ${response.statusText}`);
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
const data = await response.json();
|
|
79
|
+
// Extract config from API response
|
|
80
|
+
// API response format: { success: boolean, data: { config: MCPIConfig } }
|
|
81
|
+
const responseData = data;
|
|
82
|
+
const config = responseData.config || responseData.data?.config || (responseData.success ? responseData.data : null);
|
|
83
|
+
if (!config) {
|
|
84
|
+
console.warn('[RemoteConfig] No config found in API response');
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
// Cache the result
|
|
88
|
+
if (cache && cacheKey) {
|
|
89
|
+
try {
|
|
90
|
+
await cache.set(cacheKey, JSON.stringify({
|
|
91
|
+
config,
|
|
92
|
+
expiresAt: Date.now() + cacheTtl
|
|
93
|
+
}), cacheTtl);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
// Cache write failed, but we got the config so continue
|
|
97
|
+
console.warn('[RemoteConfig] Cache write failed:', error);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return config;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.warn('[RemoteConfig] Failed to fetch config:', error);
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=remote-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-config.js","sourceRoot":"","sources":["../../src/config/remote-config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAuEH,8CA8FC;AAlKD,uEAA0E;AA0D1E;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAA4B,EAC5B,KAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE1F,qBAAqB;IACrB,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,kBAAkB,SAAS,EAAE;QAC/B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,gBAAgB,QAAQ,EAAE;YAC5B,CAAC,CAAC,IAAI,CAAC;IAET,kBAAkB;IAClB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA8C,CAAC;oBAC/E,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;wBAClC,OAAO,MAAM,CAAC,MAAM,CAAC;oBACvB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,yCAAyC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uCAAuC;YACvC,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC;QACH,gBAAgB;QAChB,IAAI,GAAW,CAAC;QAChB,IAAI,SAAS,EAAE,CAAC;YACd,0CAA0C;YAC1C,GAAG,GAAG,GAAG,MAAM,GAAG,uCAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,4BAA4B;YAC5B,GAAG,GAAG,GAAG,MAAM,oCAAoC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE;YACxC,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,EAAE;gBACnC,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,+BAA+B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,mCAAmC;QACnC,0EAA0E;QAC1E,MAAM,YAAY,GAAG,IAAkF,CAAC;QACxG,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAyB,CAAC,CAAC,CAAC,IAAI,CAAsB,CAAC;QAE/J,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,GAAG,CACb,QAAQ,EACR,IAAI,CAAC,SAAS,CAAC;oBACb,MAAM;oBACN,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;iBACjC,CAAC,EACF,QAAQ,CACT,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wDAAwD;gBACxD,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,MAAoB,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-based Runtime Configuration
|
|
3
|
+
*
|
|
4
|
+
* Core configuration for MCP-I runtime using the provider pattern.
|
|
5
|
+
* This is the foundation for all platform-specific implementations.
|
|
6
|
+
*
|
|
7
|
+
* @module @kya-os/mcp-i-core/config
|
|
8
|
+
*/
|
|
9
|
+
import type { MCPIBaseConfig, RuntimeIdentityConfig, ProofingConfig, DelegationConfig, ToolProtectionSourceConfig } from '@kya-os/contracts/config';
|
|
10
|
+
import type { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider } from './providers/base';
|
|
11
|
+
import type { ToolProtectionService } from './services/tool-protection.service';
|
|
12
|
+
/**
|
|
13
|
+
* Provider-based runtime configuration
|
|
14
|
+
*
|
|
15
|
+
* This configuration is used internally by MCPIRuntimeBase and provides
|
|
16
|
+
* the foundation for all platform-specific implementations. It uses the
|
|
17
|
+
* provider pattern for platform abstraction, allowing different implementations
|
|
18
|
+
* for Node.js, Cloudflare Workers, and other environments.
|
|
19
|
+
*/
|
|
20
|
+
export interface ProviderRuntimeConfig extends MCPIBaseConfig {
|
|
21
|
+
/**
|
|
22
|
+
* Cryptographic operations provider
|
|
23
|
+
* Handles signing, verification, and key generation
|
|
24
|
+
*/
|
|
25
|
+
cryptoProvider: CryptoProvider;
|
|
26
|
+
/**
|
|
27
|
+
* Time operations provider
|
|
28
|
+
* Provides current time and timestamp generation
|
|
29
|
+
*/
|
|
30
|
+
clockProvider: ClockProvider;
|
|
31
|
+
/**
|
|
32
|
+
* HTTP fetch operations provider
|
|
33
|
+
* Handles external API calls
|
|
34
|
+
*/
|
|
35
|
+
fetchProvider: FetchProvider;
|
|
36
|
+
/**
|
|
37
|
+
* Storage operations provider
|
|
38
|
+
* Handles persistent data storage
|
|
39
|
+
*/
|
|
40
|
+
storageProvider: StorageProvider;
|
|
41
|
+
/**
|
|
42
|
+
* Nonce cache provider
|
|
43
|
+
* Handles replay prevention
|
|
44
|
+
*/
|
|
45
|
+
nonceCacheProvider: NonceCacheProvider;
|
|
46
|
+
/**
|
|
47
|
+
* Identity management provider
|
|
48
|
+
* Handles agent identity and DID operations
|
|
49
|
+
*/
|
|
50
|
+
identityProvider: IdentityProvider;
|
|
51
|
+
/**
|
|
52
|
+
* Session configuration
|
|
53
|
+
* Controls session handling and timeouts
|
|
54
|
+
*/
|
|
55
|
+
session?: {
|
|
56
|
+
/**
|
|
57
|
+
* Allowed timestamp skew in seconds
|
|
58
|
+
* @default 120
|
|
59
|
+
*/
|
|
60
|
+
timestampSkewSeconds?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Session TTL in minutes
|
|
63
|
+
* @default 30
|
|
64
|
+
*/
|
|
65
|
+
ttlMinutes?: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Identity configuration (optional)
|
|
69
|
+
* When provided, enables identity features
|
|
70
|
+
*/
|
|
71
|
+
identity?: RuntimeIdentityConfig;
|
|
72
|
+
/**
|
|
73
|
+
* Proofing configuration (optional)
|
|
74
|
+
* When provided, enables proof generation
|
|
75
|
+
*/
|
|
76
|
+
proofing?: ProofingConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Delegation configuration (optional)
|
|
79
|
+
* When provided, enables delegation verification
|
|
80
|
+
*/
|
|
81
|
+
delegation?: DelegationConfig;
|
|
82
|
+
/**
|
|
83
|
+
* Tool protection service (optional)
|
|
84
|
+
* When provided, enables runtime tool protection
|
|
85
|
+
* Note: This is different from tool registry which is compile-time
|
|
86
|
+
*/
|
|
87
|
+
toolProtectionService?: ToolProtectionService;
|
|
88
|
+
/**
|
|
89
|
+
* Tool protection source configuration (optional)
|
|
90
|
+
* Alternative to toolProtectionService for configuration-based setup
|
|
91
|
+
*/
|
|
92
|
+
toolProtection?: ToolProtectionSourceConfig;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Builder for provider runtime configuration
|
|
96
|
+
* Helps create valid configurations with proper defaults
|
|
97
|
+
*/
|
|
98
|
+
export declare class ProviderRuntimeConfigBuilder {
|
|
99
|
+
private config;
|
|
100
|
+
/**
|
|
101
|
+
* Set the providers (required)
|
|
102
|
+
*/
|
|
103
|
+
withProviders(providers: {
|
|
104
|
+
cryptoProvider: CryptoProvider;
|
|
105
|
+
clockProvider: ClockProvider;
|
|
106
|
+
fetchProvider: FetchProvider;
|
|
107
|
+
storageProvider: StorageProvider;
|
|
108
|
+
nonceCacheProvider: NonceCacheProvider;
|
|
109
|
+
identityProvider: IdentityProvider;
|
|
110
|
+
}): this;
|
|
111
|
+
/**
|
|
112
|
+
* Set the environment
|
|
113
|
+
*/
|
|
114
|
+
withEnvironment(env: 'development' | 'production'): this;
|
|
115
|
+
/**
|
|
116
|
+
* Configure session handling
|
|
117
|
+
*/
|
|
118
|
+
withSession(session: {
|
|
119
|
+
timestampSkewSeconds?: number;
|
|
120
|
+
ttlMinutes?: number;
|
|
121
|
+
}): this;
|
|
122
|
+
/**
|
|
123
|
+
* Enable identity features
|
|
124
|
+
*/
|
|
125
|
+
withIdentity(identity: RuntimeIdentityConfig): this;
|
|
126
|
+
/**
|
|
127
|
+
* Enable proofing features
|
|
128
|
+
*/
|
|
129
|
+
withProofing(proofing: ProofingConfig): this;
|
|
130
|
+
/**
|
|
131
|
+
* Enable delegation features
|
|
132
|
+
*/
|
|
133
|
+
withDelegation(delegation: DelegationConfig): this;
|
|
134
|
+
/**
|
|
135
|
+
* Set tool protection service
|
|
136
|
+
*/
|
|
137
|
+
withToolProtectionService(service: ToolProtectionService): this;
|
|
138
|
+
/**
|
|
139
|
+
* Set tool protection configuration
|
|
140
|
+
*/
|
|
141
|
+
withToolProtection(config: ToolProtectionSourceConfig): this;
|
|
142
|
+
/**
|
|
143
|
+
* Enable audit features
|
|
144
|
+
*/
|
|
145
|
+
withAudit(audit: {
|
|
146
|
+
enabled: boolean;
|
|
147
|
+
includeProofHashes?: boolean;
|
|
148
|
+
}): this;
|
|
149
|
+
/**
|
|
150
|
+
* Enable well-known endpoints
|
|
151
|
+
*/
|
|
152
|
+
withWellKnown(wellKnown: {
|
|
153
|
+
enabled: boolean;
|
|
154
|
+
serviceName?: string;
|
|
155
|
+
}): this;
|
|
156
|
+
/**
|
|
157
|
+
* Build the configuration
|
|
158
|
+
* Validates that all required providers are set
|
|
159
|
+
*/
|
|
160
|
+
build(): ProviderRuntimeConfig;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Re-export base types for convenience
|
|
164
|
+
*/
|
|
165
|
+
export type { MCPIBaseConfig, RuntimeIdentityConfig as BaseIdentityConfig, ProofingConfig, DelegationConfig, ToolProtectionSourceConfig } from '@kya-os/contracts/config';
|
|
166
|
+
/**
|
|
167
|
+
* Re-export remote config utilities
|
|
168
|
+
*/
|
|
169
|
+
export { fetchRemoteConfig, type RemoteConfigOptions, type RemoteConfigCache } from './config/remote-config';
|
|
170
|
+
/**
|
|
171
|
+
* Create a provider runtime configuration
|
|
172
|
+
* Convenience function for creating configurations
|
|
173
|
+
*/
|
|
174
|
+
export declare function createProviderRuntimeConfig(providers: {
|
|
175
|
+
cryptoProvider: CryptoProvider;
|
|
176
|
+
clockProvider: ClockProvider;
|
|
177
|
+
fetchProvider: FetchProvider;
|
|
178
|
+
storageProvider: StorageProvider;
|
|
179
|
+
nonceCacheProvider: NonceCacheProvider;
|
|
180
|
+
identityProvider: IdentityProvider;
|
|
181
|
+
}, options?: Partial<Omit<ProviderRuntimeConfig, keyof typeof providers>>): ProviderRuntimeConfig;
|
|
182
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC;IAE/B;;;OAGG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAE9B;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF;;;OAGG;IACH,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAE9C;;;OAGG;IACH,cAAc,CAAC,EAAE,0BAA0B,CAAC;CAC7C;AAED;;;GAGG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAEZ;IAEF;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B,aAAa,EAAE,aAAa,CAAC;QAC7B,aAAa,EAAE,aAAa,CAAC;QAC7B,eAAe,EAAE,eAAe,CAAC;QACjC,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,gBAAgB,EAAE,gBAAgB,CAAC;KACpC,GAAG,IAAI;IAKR;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI;IAKxD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE;QACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,IAAI;IAKR;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAKnD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAK5C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAKlD;;OAEG;IACH,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAK/D;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI;IAK5D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,IAAI;IAKR;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE;QACvB,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI;IAKR;;;OAGG;IACH,KAAK,IAAI,qBAAqB;CA0B/B;AAED;;GAEG;AACH,YAAY,EACV,cAAc,EACd,qBAAqB,IAAI,kBAAkB,EAC3C,cAAc,EACd,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE;IACT,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,EACD,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,OAAO,SAAS,CAAC,CAAC,GACrE,qBAAqB,CAcvB"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Provider-based Runtime Configuration
|
|
4
|
+
*
|
|
5
|
+
* Core configuration for MCP-I runtime using the provider pattern.
|
|
6
|
+
* This is the foundation for all platform-specific implementations.
|
|
7
|
+
*
|
|
8
|
+
* @module @kya-os/mcp-i-core/config
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.fetchRemoteConfig = exports.ProviderRuntimeConfigBuilder = void 0;
|
|
12
|
+
exports.createProviderRuntimeConfig = createProviderRuntimeConfig;
|
|
13
|
+
/**
|
|
14
|
+
* Builder for provider runtime configuration
|
|
15
|
+
* Helps create valid configurations with proper defaults
|
|
16
|
+
*/
|
|
17
|
+
class ProviderRuntimeConfigBuilder {
|
|
18
|
+
config = {
|
|
19
|
+
environment: 'development'
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Set the providers (required)
|
|
23
|
+
*/
|
|
24
|
+
withProviders(providers) {
|
|
25
|
+
Object.assign(this.config, providers);
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Set the environment
|
|
30
|
+
*/
|
|
31
|
+
withEnvironment(env) {
|
|
32
|
+
this.config.environment = env;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Configure session handling
|
|
37
|
+
*/
|
|
38
|
+
withSession(session) {
|
|
39
|
+
this.config.session = session;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Enable identity features
|
|
44
|
+
*/
|
|
45
|
+
withIdentity(identity) {
|
|
46
|
+
this.config.identity = identity;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Enable proofing features
|
|
51
|
+
*/
|
|
52
|
+
withProofing(proofing) {
|
|
53
|
+
this.config.proofing = proofing;
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Enable delegation features
|
|
58
|
+
*/
|
|
59
|
+
withDelegation(delegation) {
|
|
60
|
+
this.config.delegation = delegation;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Set tool protection service
|
|
65
|
+
*/
|
|
66
|
+
withToolProtectionService(service) {
|
|
67
|
+
this.config.toolProtectionService = service;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Set tool protection configuration
|
|
72
|
+
*/
|
|
73
|
+
withToolProtection(config) {
|
|
74
|
+
this.config.toolProtection = config;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Enable audit features
|
|
79
|
+
*/
|
|
80
|
+
withAudit(audit) {
|
|
81
|
+
this.config.audit = audit;
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Enable well-known endpoints
|
|
86
|
+
*/
|
|
87
|
+
withWellKnown(wellKnown) {
|
|
88
|
+
this.config.wellKnown = wellKnown;
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build the configuration
|
|
93
|
+
* Validates that all required providers are set
|
|
94
|
+
*/
|
|
95
|
+
build() {
|
|
96
|
+
const required = [
|
|
97
|
+
'cryptoProvider',
|
|
98
|
+
'clockProvider',
|
|
99
|
+
'fetchProvider',
|
|
100
|
+
'storageProvider',
|
|
101
|
+
'nonceCacheProvider',
|
|
102
|
+
'identityProvider'
|
|
103
|
+
];
|
|
104
|
+
for (const field of required) {
|
|
105
|
+
if (!(field in this.config)) {
|
|
106
|
+
throw new Error(`Missing required provider: ${field}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Apply defaults
|
|
110
|
+
return {
|
|
111
|
+
environment: 'development',
|
|
112
|
+
session: {
|
|
113
|
+
timestampSkewSeconds: 120,
|
|
114
|
+
ttlMinutes: 30
|
|
115
|
+
},
|
|
116
|
+
...this.config
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.ProviderRuntimeConfigBuilder = ProviderRuntimeConfigBuilder;
|
|
121
|
+
/**
|
|
122
|
+
* Re-export remote config utilities
|
|
123
|
+
*/
|
|
124
|
+
var remote_config_1 = require("./config/remote-config");
|
|
125
|
+
Object.defineProperty(exports, "fetchRemoteConfig", { enumerable: true, get: function () { return remote_config_1.fetchRemoteConfig; } });
|
|
126
|
+
/**
|
|
127
|
+
* Create a provider runtime configuration
|
|
128
|
+
* Convenience function for creating configurations
|
|
129
|
+
*/
|
|
130
|
+
function createProviderRuntimeConfig(providers, options) {
|
|
131
|
+
return new ProviderRuntimeConfigBuilder()
|
|
132
|
+
.withProviders(providers)
|
|
133
|
+
.withEnvironment(options?.environment || 'development')
|
|
134
|
+
.withSession(options?.session || {})
|
|
135
|
+
.withIdentity(options?.identity || { enabled: false, environment: 'development' })
|
|
136
|
+
.withProofing(options?.proofing || { enabled: false })
|
|
137
|
+
.withDelegation(options?.delegation || {
|
|
138
|
+
enabled: false,
|
|
139
|
+
verifier: { type: 'memory' }
|
|
140
|
+
})
|
|
141
|
+
.withAudit(options?.audit || { enabled: false })
|
|
142
|
+
.withWellKnown(options?.wellKnown || { enabled: true })
|
|
143
|
+
.build();
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DID Resolver plugin system
|
|
3
|
+
* Supports did:key and did:web out of the box, extensible for other methods
|
|
4
|
+
*/
|
|
5
|
+
import { FetchProvider } from "../types/providers";
|
|
6
|
+
/**
|
|
7
|
+
* DID Document structure
|
|
8
|
+
*/
|
|
9
|
+
export interface DIDDocument {
|
|
10
|
+
'@context': string[];
|
|
11
|
+
id: string;
|
|
12
|
+
verificationMethod?: VerificationMethod[];
|
|
13
|
+
authentication?: (string | VerificationMethod)[];
|
|
14
|
+
assertionMethod?: (string | VerificationMethod)[];
|
|
15
|
+
keyAgreement?: (string | VerificationMethod)[];
|
|
16
|
+
capabilityInvocation?: (string | VerificationMethod)[];
|
|
17
|
+
capabilityDelegation?: (string | VerificationMethod)[];
|
|
18
|
+
}
|
|
19
|
+
export interface VerificationMethod {
|
|
20
|
+
id: string;
|
|
21
|
+
type: string;
|
|
22
|
+
controller: string;
|
|
23
|
+
publicKeyBase58?: string;
|
|
24
|
+
publicKeyJwk?: any;
|
|
25
|
+
publicKeyMultibase?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* DID resolver interface
|
|
29
|
+
*/
|
|
30
|
+
export interface DIDResolver {
|
|
31
|
+
/**
|
|
32
|
+
* Check if this resolver can handle the given DID method
|
|
33
|
+
*/
|
|
34
|
+
canResolve(did: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve a DID to its document
|
|
37
|
+
*/
|
|
38
|
+
resolve(did: string): Promise<DIDDocument>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* did:key resolver (built-in)
|
|
42
|
+
*/
|
|
43
|
+
export declare class DIDKeyResolver implements DIDResolver {
|
|
44
|
+
canResolve(did: string): boolean;
|
|
45
|
+
resolve(did: string): Promise<DIDDocument>;
|
|
46
|
+
private decodeMultibase;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* did:web resolver (built-in)
|
|
50
|
+
*/
|
|
51
|
+
export declare class DIDWebResolver implements DIDResolver {
|
|
52
|
+
private fetchProvider;
|
|
53
|
+
constructor(fetchProvider: FetchProvider);
|
|
54
|
+
canResolve(did: string): boolean;
|
|
55
|
+
resolve(did: string): Promise<DIDDocument>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Universal DID resolver with plugin support
|
|
59
|
+
*/
|
|
60
|
+
export declare class UniversalDIDResolver {
|
|
61
|
+
private resolvers;
|
|
62
|
+
constructor(fetchProvider?: FetchProvider);
|
|
63
|
+
/**
|
|
64
|
+
* Register a DID resolver
|
|
65
|
+
*/
|
|
66
|
+
registerResolver(resolver: DIDResolver): void;
|
|
67
|
+
/**
|
|
68
|
+
* Resolve a DID using the appropriate resolver
|
|
69
|
+
*/
|
|
70
|
+
resolve(did: string): Promise<DIDDocument>;
|
|
71
|
+
/**
|
|
72
|
+
* Extract public key from DID document
|
|
73
|
+
*/
|
|
74
|
+
getPublicKey(did: string, keyId?: string): Promise<string>;
|
|
75
|
+
private decodePublicKey;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Lean DID resolver for edge environments
|
|
79
|
+
*/
|
|
80
|
+
export declare class EdgeDIDResolver extends UniversalDIDResolver {
|
|
81
|
+
private cache;
|
|
82
|
+
constructor(cache?: Map<string, DIDDocument>);
|
|
83
|
+
/**
|
|
84
|
+
* Resolve with caching
|
|
85
|
+
*/
|
|
86
|
+
resolve(did: string): Promise<DIDDocument>;
|
|
87
|
+
/**
|
|
88
|
+
* Pre-populate cache for known DIDs
|
|
89
|
+
*/
|
|
90
|
+
preloadCache(documents: DIDDocument[]): void;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/did/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACjD,eAAe,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC/C,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IACvD,oBAAoB,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAoChD,OAAO,CAAC,eAAe;CAYxB;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IACpC,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CA2BjD;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAAqB;gBAE1B,aAAa,CAAC,EAAE,aAAa;IASzC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAI7C;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAWhD;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChE,OAAO,CAAC,eAAe;CAUxB;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,oBAAoB;IAC3C,OAAO,CAAC,KAAK;gBAAL,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAa;IAI/D;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBhD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI;CAK7C"}
|