@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.
Files changed (58) hide show
  1. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
  2. package/dist/__tests__/utils/mock-providers.js +16 -4
  3. package/dist/__tests__/utils/mock-providers.js.map +1 -1
  4. package/dist/cache/tool-protection-cache.d.ts.map +1 -1
  5. package/dist/cache/tool-protection-cache.js +4 -0
  6. package/dist/cache/tool-protection-cache.js.map +1 -1
  7. package/dist/compliance/schema-verifier-v2.d.ts +110 -0
  8. package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
  9. package/dist/compliance/schema-verifier-v2.js +510 -0
  10. package/dist/compliance/schema-verifier-v2.js.map +1 -0
  11. package/dist/config/remote-config.d.ts +69 -0
  12. package/dist/config/remote-config.d.ts.map +1 -0
  13. package/dist/config/remote-config.js +107 -0
  14. package/dist/config/remote-config.js.map +1 -0
  15. package/dist/config.d.ts +182 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +145 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/did/resolver.d.ts +92 -0
  20. package/dist/did/resolver.d.ts.map +1 -0
  21. package/dist/did/resolver.js +203 -0
  22. package/dist/did/resolver.js.map +1 -0
  23. package/dist/identity/user-did-manager.d.ts +106 -0
  24. package/dist/identity/user-did-manager.d.ts.map +1 -0
  25. package/dist/identity/user-did-manager.js +190 -0
  26. package/dist/identity/user-did-manager.js.map +1 -0
  27. package/dist/index.d.ts +2 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/proof/proof-engine.d.ts +89 -0
  32. package/dist/proof/proof-engine.d.ts.map +1 -0
  33. package/dist/proof/proof-engine.js +249 -0
  34. package/dist/proof/proof-engine.js.map +1 -0
  35. package/dist/runtime/base-v2.d.ts +117 -0
  36. package/dist/runtime/base-v2.d.ts.map +1 -0
  37. package/dist/runtime/base-v2.js +328 -0
  38. package/dist/runtime/base-v2.js.map +1 -0
  39. package/dist/runtime/base.d.ts +26 -31
  40. package/dist/runtime/base.d.ts.map +1 -1
  41. package/dist/runtime/base.js +206 -69
  42. package/dist/runtime/base.js.map +1 -1
  43. package/dist/services/tool-protection.service.d.ts.map +1 -1
  44. package/dist/services/tool-protection.service.js +60 -11
  45. package/dist/services/tool-protection.service.js.map +1 -1
  46. package/dist/types/providers.d.ts +142 -0
  47. package/dist/types/providers.d.ts.map +1 -0
  48. package/dist/types/providers.js +43 -0
  49. package/dist/types/providers.js.map +1 -0
  50. package/dist/types/tool-protection.d.ts +22 -22
  51. package/dist/types/tool-protection.d.ts.map +1 -1
  52. package/dist/types/tool-protection.js +12 -5
  53. package/dist/types/tool-protection.js.map +1 -1
  54. package/dist/verification/interfaces.d.ts +125 -0
  55. package/dist/verification/interfaces.d.ts.map +1 -0
  56. package/dist/verification/interfaces.js +101 -0
  57. package/dist/verification/interfaces.js.map +1 -0
  58. package/package.json +10 -3
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ /**
3
+ * DID Resolver plugin system
4
+ * Supports did:key and did:web out of the box, extensible for other methods
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.EdgeDIDResolver = exports.UniversalDIDResolver = exports.DIDWebResolver = exports.DIDKeyResolver = void 0;
8
+ /**
9
+ * did:key resolver (built-in)
10
+ */
11
+ class DIDKeyResolver {
12
+ canResolve(did) {
13
+ return did.startsWith('did:key:');
14
+ }
15
+ async resolve(did) {
16
+ // Extract the multibase key
17
+ const multibaseKey = did.substring('did:key:'.length);
18
+ // Decode multibase (z-base58)
19
+ const keyBytes = this.decodeMultibase(multibaseKey);
20
+ // Extract codec and key material
21
+ const codec = keyBytes[0] << 8 | keyBytes[1];
22
+ const publicKey = keyBytes.slice(2);
23
+ // Ed25519 codec is 0xed01
24
+ if (codec !== 0xed01) {
25
+ throw new Error(`Unsupported key type: ${codec.toString(16)}`);
26
+ }
27
+ // Create DID document
28
+ return {
29
+ '@context': [
30
+ 'https://www.w3.org/ns/did/v1',
31
+ 'https://w3id.org/security/suites/ed25519-2020/v1'
32
+ ],
33
+ id: did,
34
+ verificationMethod: [{
35
+ id: `${did}#${multibaseKey}`,
36
+ type: 'Ed25519VerificationKey2020',
37
+ controller: did,
38
+ publicKeyMultibase: multibaseKey
39
+ }],
40
+ authentication: [`${did}#${multibaseKey}`],
41
+ assertionMethod: [`${did}#${multibaseKey}`],
42
+ capabilityInvocation: [`${did}#${multibaseKey}`],
43
+ capabilityDelegation: [`${did}#${multibaseKey}`]
44
+ };
45
+ }
46
+ decodeMultibase(multibase) {
47
+ // Remove 'z' prefix (z-base58)
48
+ if (!multibase.startsWith('z')) {
49
+ throw new Error('Invalid multibase encoding');
50
+ }
51
+ // Base58 decode (simplified - in production use a proper library)
52
+ const base58 = multibase.substring(1);
53
+ // This is a simplified implementation
54
+ // In production, use a proper base58 decoding library
55
+ return Buffer.from(base58, 'base64'); // Placeholder
56
+ }
57
+ }
58
+ exports.DIDKeyResolver = DIDKeyResolver;
59
+ /**
60
+ * did:web resolver (built-in)
61
+ */
62
+ class DIDWebResolver {
63
+ fetchProvider;
64
+ constructor(fetchProvider) {
65
+ this.fetchProvider = fetchProvider;
66
+ }
67
+ canResolve(did) {
68
+ return did.startsWith('did:web:');
69
+ }
70
+ async resolve(did) {
71
+ // Extract domain and path from DID
72
+ const parts = did.substring('did:web:'.length).split(':');
73
+ const domain = parts[0];
74
+ const path = parts.slice(1).join('/');
75
+ // Construct URL
76
+ const url = path
77
+ ? `https://${domain}/${path}/did.json`
78
+ : `https://${domain}/.well-known/did.json`;
79
+ // Fetch DID document
80
+ const response = await this.fetchProvider.fetch(url);
81
+ if (!response.ok) {
82
+ throw new Error(`Failed to resolve ${did}: ${response.statusText}`);
83
+ }
84
+ const document = await response.json();
85
+ // Validate document
86
+ if (!document['@context'] || document.id !== did) {
87
+ throw new Error('Invalid DID document');
88
+ }
89
+ return document;
90
+ }
91
+ }
92
+ exports.DIDWebResolver = DIDWebResolver;
93
+ /**
94
+ * Universal DID resolver with plugin support
95
+ */
96
+ class UniversalDIDResolver {
97
+ resolvers = [];
98
+ constructor(fetchProvider) {
99
+ // Register built-in resolvers
100
+ this.registerResolver(new DIDKeyResolver());
101
+ if (fetchProvider) {
102
+ this.registerResolver(new DIDWebResolver(fetchProvider));
103
+ }
104
+ }
105
+ /**
106
+ * Register a DID resolver
107
+ */
108
+ registerResolver(resolver) {
109
+ this.resolvers.push(resolver);
110
+ }
111
+ /**
112
+ * Resolve a DID using the appropriate resolver
113
+ */
114
+ async resolve(did) {
115
+ // Find appropriate resolver
116
+ const resolver = this.resolvers.find(r => r.canResolve(did));
117
+ if (!resolver) {
118
+ throw new Error(`No resolver available for DID method: ${did.split(':')[1]}`);
119
+ }
120
+ return resolver.resolve(did);
121
+ }
122
+ /**
123
+ * Extract public key from DID document
124
+ */
125
+ async getPublicKey(did, keyId) {
126
+ const document = await this.resolve(did);
127
+ // Find verification method
128
+ let method;
129
+ if (keyId) {
130
+ method = document.verificationMethod?.find(m => m.id === keyId);
131
+ }
132
+ else {
133
+ // Use first verification method
134
+ method = document.verificationMethod?.[0];
135
+ }
136
+ if (!method) {
137
+ throw new Error(`No verification method found for ${did}`);
138
+ }
139
+ // Extract public key
140
+ if (method.publicKeyMultibase) {
141
+ // Decode multibase key
142
+ return this.decodePublicKey(method.publicKeyMultibase);
143
+ }
144
+ else if (method.publicKeyBase58) {
145
+ // Decode base58 key
146
+ return Buffer.from(method.publicKeyBase58, 'base64').toString('base64');
147
+ }
148
+ else if (method.publicKeyJwk) {
149
+ // Extract from JWK
150
+ return Buffer.from(method.publicKeyJwk.x, 'base64url').toString('base64');
151
+ }
152
+ throw new Error('No supported public key format found');
153
+ }
154
+ decodePublicKey(multibase) {
155
+ // Simplified - extract Ed25519 public key from multibase
156
+ // In production, use proper multibase/multicodec decoding
157
+ if (multibase.startsWith('z')) {
158
+ // z-base58 encoded
159
+ // This is a placeholder - use proper decoding
160
+ return Buffer.from(multibase.substring(1), 'base64').toString('base64');
161
+ }
162
+ throw new Error('Unsupported multibase encoding');
163
+ }
164
+ }
165
+ exports.UniversalDIDResolver = UniversalDIDResolver;
166
+ /**
167
+ * Lean DID resolver for edge environments
168
+ */
169
+ class EdgeDIDResolver extends UniversalDIDResolver {
170
+ cache;
171
+ constructor(cache = new Map()) {
172
+ super(); // Only register did:key (no network needed)
173
+ this.cache = cache;
174
+ }
175
+ /**
176
+ * Resolve with caching
177
+ */
178
+ async resolve(did) {
179
+ // Check cache first
180
+ if (this.cache.has(did)) {
181
+ return this.cache.get(did);
182
+ }
183
+ // Resolve and cache
184
+ const document = await super.resolve(did);
185
+ this.cache.set(did, document);
186
+ // Limit cache size
187
+ if (this.cache.size > 100) {
188
+ const firstKey = this.cache.keys().next().value;
189
+ this.cache.delete(firstKey);
190
+ }
191
+ return document;
192
+ }
193
+ /**
194
+ * Pre-populate cache for known DIDs
195
+ */
196
+ preloadCache(documents) {
197
+ for (const doc of documents) {
198
+ this.cache.set(doc.id, doc);
199
+ }
200
+ }
201
+ }
202
+ exports.EdgeDIDResolver = EdgeDIDResolver;
203
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/did/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * User DID Manager
3
+ *
4
+ * Handles ephemeral user DID generation for MCP-I sessions.
5
+ * Generates did:key DIDs for users when they join a chat session.
6
+ *
7
+ * This enables tracking which client/user initiated tool calls without
8
+ * requiring user registration or persistent identity.
9
+ */
10
+ import { CryptoProvider } from '../providers/base';
11
+ /**
12
+ * User DID storage interface
13
+ */
14
+ export interface UserDidStorage {
15
+ /**
16
+ * Get user DID for a session
17
+ */
18
+ get(sessionId: string): Promise<string | null>;
19
+ /**
20
+ * Store user DID for a session
21
+ */
22
+ set(sessionId: string, did: string, ttl?: number): Promise<void>;
23
+ /**
24
+ * Delete user DID for a session
25
+ */
26
+ delete(sessionId: string): Promise<void>;
27
+ }
28
+ /**
29
+ * User DID Manager configuration
30
+ */
31
+ export interface UserDidManagerConfig {
32
+ /**
33
+ * Storage provider for user DIDs (optional)
34
+ * If not provided, user DIDs are ephemeral (not persisted)
35
+ */
36
+ storage?: UserDidStorage;
37
+ /**
38
+ * Crypto provider for DID generation
39
+ */
40
+ crypto: CryptoProvider;
41
+ /**
42
+ * Generate did:web format instead of did:key (requires additional setup)
43
+ */
44
+ useDidWeb?: boolean;
45
+ /**
46
+ * Base URL for did:web (required if useDidWeb is true)
47
+ */
48
+ didWebBaseUrl?: string;
49
+ }
50
+ /**
51
+ * User DID Manager
52
+ *
53
+ * Generates and manages user DIDs for MCP-I sessions.
54
+ * Supports both ephemeral (did:key) and persistent (did:web) formats.
55
+ */
56
+ export declare class UserDidManager {
57
+ private config;
58
+ private sessionDidCache;
59
+ constructor(config: UserDidManagerConfig);
60
+ /**
61
+ * Generate or retrieve user DID for a session
62
+ *
63
+ * If a user DID already exists for the session, it is returned.
64
+ * Otherwise, a new ephemeral did:key is generated.
65
+ *
66
+ * @param sessionId - MCP session ID
67
+ * @returns User DID (did:key format)
68
+ */
69
+ getOrCreateUserDid(sessionId: string): Promise<string>;
70
+ /**
71
+ * Generate a new ephemeral user DID
72
+ *
73
+ * Uses did:key format by default for simplicity.
74
+ * did:web can be used if configured, but requires additional setup.
75
+ */
76
+ private generateUserDid;
77
+ /**
78
+ * Generate did:key from Ed25519 public key bytes
79
+ * Following spec: https://w3c-ccg.github.io/did-method-key/
80
+ *
81
+ * Format: did:key:z<multibase-base58btc(<multicodec-ed25519-pub><publicKey>)>
82
+ */
83
+ private generateDidKeyFromPublicKey;
84
+ /**
85
+ * Base58 encode (Bitcoin alphabet)
86
+ * Simple implementation for did:key generation
87
+ */
88
+ private base58Encode;
89
+ /**
90
+ * Convert base64 string to Uint8Array
91
+ */
92
+ private base64ToBytes;
93
+ /**
94
+ * Get user DID for a session without creating one
95
+ */
96
+ getUserDid(sessionId: string): Promise<string | null>;
97
+ /**
98
+ * Clear user DID for a session
99
+ */
100
+ clearUserDid(sessionId: string): Promise<void>;
101
+ /**
102
+ * Clear all cached user DIDs (useful for testing)
103
+ */
104
+ clearCache(): void;
105
+ }
106
+ //# sourceMappingURL=user-did-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-did-manager.d.ts","sourceRoot":"","sources":["../../src/identity/user-did-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAA6B;gBAExC,MAAM,EAAE,oBAAoB;IAIxC;;;;;;;;OAQG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuC5D;;;;;OAKG;YACW,eAAe;IAkB7B;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAiBnC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAwBpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB3D;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapD;;OAEG;IACH,UAAU,IAAI,IAAI;CAGnB"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /**
3
+ * User DID Manager
4
+ *
5
+ * Handles ephemeral user DID generation for MCP-I sessions.
6
+ * Generates did:key DIDs for users when they join a chat session.
7
+ *
8
+ * This enables tracking which client/user initiated tool calls without
9
+ * requiring user registration or persistent identity.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserDidManager = void 0;
13
+ /**
14
+ * User DID Manager
15
+ *
16
+ * Generates and manages user DIDs for MCP-I sessions.
17
+ * Supports both ephemeral (did:key) and persistent (did:web) formats.
18
+ */
19
+ class UserDidManager {
20
+ config;
21
+ sessionDidCache = new Map();
22
+ constructor(config) {
23
+ this.config = config;
24
+ }
25
+ /**
26
+ * Generate or retrieve user DID for a session
27
+ *
28
+ * If a user DID already exists for the session, it is returned.
29
+ * Otherwise, a new ephemeral did:key is generated.
30
+ *
31
+ * @param sessionId - MCP session ID
32
+ * @returns User DID (did:key format)
33
+ */
34
+ async getOrCreateUserDid(sessionId) {
35
+ // Check cache first
36
+ if (this.sessionDidCache.has(sessionId)) {
37
+ return this.sessionDidCache.get(sessionId);
38
+ }
39
+ // Check storage if available
40
+ if (this.config.storage) {
41
+ try {
42
+ const storedDid = await this.config.storage.get(sessionId);
43
+ if (storedDid) {
44
+ this.sessionDidCache.set(sessionId, storedDid);
45
+ return storedDid;
46
+ }
47
+ }
48
+ catch (error) {
49
+ // Log but continue - will generate new DID
50
+ console.warn('[UserDidManager] Storage.get failed, generating new DID:', error);
51
+ }
52
+ }
53
+ // Generate new user DID
54
+ const userDid = await this.generateUserDid();
55
+ // Cache it
56
+ this.sessionDidCache.set(sessionId, userDid);
57
+ // Store it if storage is available
58
+ if (this.config.storage) {
59
+ try {
60
+ await this.config.storage.set(sessionId, userDid, 1800); // 30 minutes TTL
61
+ }
62
+ catch (error) {
63
+ // Log but continue - DID is cached and will be returned
64
+ console.warn('[UserDidManager] Storage.set failed, continuing with cached DID:', error);
65
+ }
66
+ }
67
+ return userDid;
68
+ }
69
+ /**
70
+ * Generate a new ephemeral user DID
71
+ *
72
+ * Uses did:key format by default for simplicity.
73
+ * did:web can be used if configured, but requires additional setup.
74
+ */
75
+ async generateUserDid() {
76
+ if (this.config.useDidWeb && this.config.didWebBaseUrl) {
77
+ // Generate did:web (requires web server setup)
78
+ // For now, fall back to did:key
79
+ // TODO: Implement did:web generation if needed
80
+ console.warn('[UserDidManager] did:web not yet implemented, using did:key');
81
+ }
82
+ // Generate Ed25519 keypair for user DID
83
+ const keyPair = await this.config.crypto.generateKeyPair();
84
+ // Extract public key bytes (32 bytes for Ed25519)
85
+ const publicKeyBytes = this.base64ToBytes(keyPair.publicKey);
86
+ // Generate did:key from public key
87
+ return this.generateDidKeyFromPublicKey(publicKeyBytes);
88
+ }
89
+ /**
90
+ * Generate did:key from Ed25519 public key bytes
91
+ * Following spec: https://w3c-ccg.github.io/did-method-key/
92
+ *
93
+ * Format: did:key:z<multibase-base58btc(<multicodec-ed25519-pub><publicKey>)>
94
+ */
95
+ generateDidKeyFromPublicKey(publicKeyBytes) {
96
+ // Ed25519 multicodec prefix (0xed 0x01)
97
+ const multicodecPrefix = new Uint8Array([0xed, 0x01]);
98
+ // Combine prefix + public key
99
+ const multicodecKey = new Uint8Array(multicodecPrefix.length + publicKeyBytes.length);
100
+ multicodecKey.set(multicodecPrefix);
101
+ multicodecKey.set(publicKeyBytes, multicodecPrefix.length);
102
+ // Base58 encode (using a simple implementation)
103
+ // Note: For production, consider using base-x library
104
+ const base58Encoded = this.base58Encode(multicodecKey);
105
+ // Add multibase prefix 'z' for base58-btc
106
+ return `did:key:z${base58Encoded}`;
107
+ }
108
+ /**
109
+ * Base58 encode (Bitcoin alphabet)
110
+ * Simple implementation for did:key generation
111
+ */
112
+ base58Encode(bytes) {
113
+ const alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
114
+ let num = BigInt(0);
115
+ // Convert bytes to big integer
116
+ for (let i = 0; i < bytes.length; i++) {
117
+ num = num * BigInt(256) + BigInt(bytes[i]);
118
+ }
119
+ // Convert to base58
120
+ let result = '';
121
+ while (num > 0) {
122
+ result = alphabet[Number(num % BigInt(58))] + result;
123
+ num = num / BigInt(58);
124
+ }
125
+ // Add leading zeros
126
+ for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {
127
+ result = '1' + result;
128
+ }
129
+ return result;
130
+ }
131
+ /**
132
+ * Convert base64 string to Uint8Array
133
+ */
134
+ base64ToBytes(base64) {
135
+ if (typeof Buffer !== 'undefined') {
136
+ // Node.js environment
137
+ return new Uint8Array(Buffer.from(base64, 'base64'));
138
+ }
139
+ else {
140
+ // Browser/Workers environment
141
+ const binaryString = atob(base64);
142
+ const bytes = new Uint8Array(binaryString.length);
143
+ for (let i = 0; i < binaryString.length; i++) {
144
+ bytes[i] = binaryString.charCodeAt(i);
145
+ }
146
+ return bytes;
147
+ }
148
+ }
149
+ /**
150
+ * Get user DID for a session without creating one
151
+ */
152
+ async getUserDid(sessionId) {
153
+ // Check cache
154
+ if (this.sessionDidCache.has(sessionId)) {
155
+ return this.sessionDidCache.get(sessionId);
156
+ }
157
+ // Check storage
158
+ if (this.config.storage) {
159
+ const storedDid = await this.config.storage.get(sessionId);
160
+ if (storedDid) {
161
+ this.sessionDidCache.set(sessionId, storedDid);
162
+ return storedDid;
163
+ }
164
+ }
165
+ return null;
166
+ }
167
+ /**
168
+ * Clear user DID for a session
169
+ */
170
+ async clearUserDid(sessionId) {
171
+ this.sessionDidCache.delete(sessionId);
172
+ if (this.config.storage) {
173
+ try {
174
+ await this.config.storage.delete(sessionId);
175
+ }
176
+ catch (error) {
177
+ // Log but continue - cache is already cleared
178
+ console.warn('[UserDidManager] Storage.delete failed, continuing:', error);
179
+ }
180
+ }
181
+ }
182
+ /**
183
+ * Clear all cached user DIDs (useful for testing)
184
+ */
185
+ clearCache() {
186
+ this.sessionDidCache.clear();
187
+ }
188
+ }
189
+ exports.UserDidManager = UserDidManager;
190
+ //# sourceMappingURL=user-did-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-did-manager.js","sourceRoot":"","sources":["../../src/identity/user-did-manager.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  export { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, type AgentIdentity } from './providers/base';
8
8
  export { MemoryStorageProvider, MemoryNonceCacheProvider, MemoryIdentityProvider } from './providers/memory';
9
- export { MCPIRuntimeBase, type MCPIRuntimeConfig } from './runtime/base';
9
+ export { MCPIRuntimeBase } from './runtime/base';
10
10
  export * from './utils';
11
11
  export { ToolProtectionService } from './services/tool-protection.service';
12
12
  export { ToolProtectionCache, InMemoryToolProtectionCache, NoOpToolProtectionCache } from './cache/tool-protection-cache';
@@ -25,4 +25,5 @@ export { SCHEMA_REGISTRY, getAllSchemas, getSchemasByCategory, getSchemaById, ge
25
25
  export { canonicalizeJSON } from './delegation/utils';
26
26
  import type { HandshakeRequest, SessionContext, NonceCache, NonceCacheEntry, NonceCacheConfig, ProofMeta, DetachedProof, CanonicalHashes, AuditRecord } from '@kya-os/contracts';
27
27
  export type { HandshakeRequest, SessionContext, NonceCache, NonceCacheEntry, NonceCacheConfig, ProofMeta, DetachedProof, CanonicalHashes, AuditRecord };
28
+ export * from './config';
28
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,IAAI,0BAA0B,EACpD,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EACnC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,8BAA8B,EACpC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAChC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,uBAAuB,EACxB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACL,4BAA4B,EAC7B,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,OAAO,EACL,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,IAAI,0BAA0B,EACpD,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EACnC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,8BAA8B,EACpC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,0BAA0B,EAChC,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,uBAAuB,EACxB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACL,4BAA4B,EAC7B,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACZ,CAAC;AAGF,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -86,4 +86,6 @@ Object.defineProperty(exports, "getCriticalSchemas", { enumerable: true, get: fu
86
86
  Object.defineProperty(exports, "getSchemaStats", { enumerable: true, get: function () { return schema_registry_1.getSchemaStats; } });
87
87
  var utils_1 = require("./delegation/utils");
88
88
  Object.defineProperty(exports, "canonicalizeJSON", { enumerable: true, get: function () { return utils_1.canonicalizeJSON; } });
89
+ // Configuration types and utilities
90
+ __exportStar(require("./config"), exports);
89
91
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,yCAQ0B;AAPxB,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,qGAAA,aAAa,OAAA;AACb,uGAAA,eAAe,OAAA;AACf,0GAAA,kBAAkB,OAAA;AAClB,wGAAA,gBAAgB,OAAA;AAIlB,mBAAmB;AACnB,6CAI4B;AAH1B,+GAAA,qBAAqB,OAAA;AACrB,kHAAA,wBAAwB,OAAA;AACxB,gHAAA,sBAAsB,OAAA;AAGxB,UAAU;AACV,uCAGwB;AAFtB,uGAAA,eAAe,OAAA;AAIjB,YAAY;AACZ,0CAAwB;AACxB,kBAAkB;AAClB,8EAE4C;AAD1C,gIAAA,qBAAqB,OAAA;AAGvB,uEAIuC;AAFrC,oIAAA,2BAA2B,OAAA;AAC3B,gIAAA,uBAAuB,OAAA;AASzB,2DAEiC;AAD/B,0HAAA,uBAAuB,OAAA;AAGzB,4BAA4B;AAC5B,oDAMgC;AAL9B,uHAAA,0BAA0B,OAAA;AAC1B,mHAAA,sBAAsB,OAAA;AAMxB,wDAUkC;AAThC,2HAAA,4BAA4B,OAAA;AAC5B,uHAAA,wBAAwB,OAAA;AAU1B,iBAAiB;AACjB,sEAKyC;AAJvC,2HAAA,qBAAqB,OAAA;AACrB,6HAAA,uBAAuB,OAAA;AAKzB,oDAKgC;AAJ9B,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AAKZ,0CAA0C;AAC1C,kEAKuC;AAJrC,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AAKvB,0EAM2C;AALzC,kIAAA,0BAA0B,OAAA;AAC1B,wIAAA,gCAAgC,OAAA;AAMlC,qDAAqD;AACrD,4FAEwD;AADtD,oIAAA,uBAAuB,OAAA;AAGzB,kFAEmD;AADjD,oIAAA,4BAA4B,OAAA;AAG9B,8DAA8D;AAC9D,gEAOsC;AANpC,iHAAA,cAAc,OAAA;AACd,uHAAA,oBAAoB,OAAA;AAOtB,gEAOsC;AANpC,kHAAA,eAAe,OAAA;AACf,gHAAA,aAAa,OAAA;AACb,uHAAA,oBAAoB,OAAA;AACpB,gHAAA,aAAa,OAAA;AACb,qHAAA,kBAAkB,OAAA;AAClB,iHAAA,cAAc,OAAA;AAGhB,4CAAsD;AAA7C,yGAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,yCAQ0B;AAPxB,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,qGAAA,aAAa,OAAA;AACb,uGAAA,eAAe,OAAA;AACf,0GAAA,kBAAkB,OAAA;AAClB,wGAAA,gBAAgB,OAAA;AAIlB,mBAAmB;AACnB,6CAI4B;AAH1B,+GAAA,qBAAqB,OAAA;AACrB,kHAAA,wBAAwB,OAAA;AACxB,gHAAA,sBAAsB,OAAA;AAGxB,UAAU;AACV,uCAEwB;AADtB,uGAAA,eAAe,OAAA;AAGjB,YAAY;AACZ,0CAAwB;AACxB,kBAAkB;AAClB,8EAE4C;AAD1C,gIAAA,qBAAqB,OAAA;AAGvB,uEAIuC;AAFrC,oIAAA,2BAA2B,OAAA;AAC3B,gIAAA,uBAAuB,OAAA;AASzB,2DAEiC;AAD/B,0HAAA,uBAAuB,OAAA;AAGzB,4BAA4B;AAC5B,oDAMgC;AAL9B,uHAAA,0BAA0B,OAAA;AAC1B,mHAAA,sBAAsB,OAAA;AAMxB,wDAUkC;AAThC,2HAAA,4BAA4B,OAAA;AAC5B,uHAAA,wBAAwB,OAAA;AAU1B,iBAAiB;AACjB,sEAKyC;AAJvC,2HAAA,qBAAqB,OAAA;AACrB,6HAAA,uBAAuB,OAAA;AAKzB,oDAKgC;AAJ9B,6GAAA,gBAAgB,OAAA;AAChB,uGAAA,UAAU,OAAA;AAKZ,0CAA0C;AAC1C,kEAKuC;AAJrC,0HAAA,sBAAsB,OAAA;AACtB,yHAAA,qBAAqB,OAAA;AAKvB,0EAM2C;AALzC,kIAAA,0BAA0B,OAAA;AAC1B,wIAAA,gCAAgC,OAAA;AAMlC,qDAAqD;AACrD,4FAEwD;AADtD,oIAAA,uBAAuB,OAAA;AAGzB,kFAEmD;AADjD,oIAAA,4BAA4B,OAAA;AAG9B,8DAA8D;AAC9D,gEAOsC;AANpC,iHAAA,cAAc,OAAA;AACd,uHAAA,oBAAoB,OAAA;AAOtB,gEAOsC;AANpC,kHAAA,eAAe,OAAA;AACf,gHAAA,aAAa,OAAA;AACb,uHAAA,oBAAoB,OAAA;AACpB,gHAAA,aAAa,OAAA;AACb,qHAAA,kBAAkB,OAAA;AAClB,iHAAA,cAAc,OAAA;AAGhB,4CAAsD;AAA7C,yGAAA,gBAAgB,OAAA;AA4BzB,oCAAoC;AACpC,2CAAyB"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * ProofEngine abstraction for multiple proof formats
3
+ * Supports JWT-VC, Data Integrity (Ed25519Signature2020), and JWS
4
+ */
5
+ import { CryptoProvider } from "../types/providers";
6
+ export interface ProofFormat {
7
+ type: 'JWT-VC' | 'DataIntegrity' | 'JWS' | 'DetachedJWS';
8
+ algorithm: string;
9
+ }
10
+ export interface ProofOptions {
11
+ format: ProofFormat;
12
+ canonicalize?: boolean;
13
+ includeMeta?: boolean;
14
+ }
15
+ export interface VerificationResult {
16
+ valid: boolean;
17
+ format: ProofFormat;
18
+ errors?: string[];
19
+ metadata?: any;
20
+ }
21
+ /**
22
+ * Abstract proof engine for creating and verifying proofs
23
+ */
24
+ export declare abstract class ProofEngine {
25
+ protected crypto: CryptoProvider;
26
+ constructor(crypto: CryptoProvider);
27
+ /**
28
+ * Create a proof for data in the specified format
29
+ */
30
+ abstract createProof(data: any, privateKey: string, options: ProofOptions): Promise<any>;
31
+ /**
32
+ * Verify a proof
33
+ */
34
+ abstract verifyProof(data: any, proof: any, publicKey: string, options: ProofOptions): Promise<VerificationResult>;
35
+ /**
36
+ * Canonicalize data (JCS - RFC 8785)
37
+ */
38
+ abstract canonicalize(data: any): string;
39
+ /**
40
+ * Get supported proof formats
41
+ */
42
+ abstract getSupportedFormats(): ProofFormat[];
43
+ }
44
+ /**
45
+ * Default proof engine implementation
46
+ */
47
+ export declare class DefaultProofEngine extends ProofEngine {
48
+ /**
49
+ * Create a proof based on format
50
+ */
51
+ createProof(data: any, privateKey: string, options: ProofOptions): Promise<any>;
52
+ /**
53
+ * Verify a proof based on format
54
+ */
55
+ verifyProof(data: any, proof: any, publicKey: string, options: ProofOptions): Promise<VerificationResult>;
56
+ /**
57
+ * Create detached JWS proof
58
+ */
59
+ private createDetachedJWS;
60
+ /**
61
+ * Verify detached JWS proof
62
+ */
63
+ private verifyDetachedJWS;
64
+ /**
65
+ * Create Data Integrity proof (Ed25519Signature2020)
66
+ */
67
+ private createDataIntegrityProof;
68
+ /**
69
+ * Verify Data Integrity proof
70
+ */
71
+ private verifyDataIntegrityProof;
72
+ /**
73
+ * Create JWT-VC
74
+ */
75
+ private createJWTVC;
76
+ /**
77
+ * Verify JWT-VC
78
+ */
79
+ private verifyJWTVC;
80
+ /**
81
+ * Canonicalize JSON (JCS - RFC 8785)
82
+ */
83
+ canonicalize(obj: any): string;
84
+ /**
85
+ * Get supported formats
86
+ */
87
+ getSupportedFormats(): ProofFormat[];
88
+ }
89
+ //# sourceMappingURL=proof-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proof-engine.d.ts","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,eAAe,GAAG,KAAK,GAAG,aAAa,CAAC;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,8BAAsB,WAAW;IACnB,SAAS,CAAC,MAAM,EAAE,cAAc;gBAAtB,MAAM,EAAE,cAAc;IAE5C;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAExC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,IAAI,WAAW,EAAE;CAC9C;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,GAAG,CAAC;IAgBf;;OAEG;IACG,WAAW,CACf,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAyB9B;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;YACW,iBAAiB;IAgC/B;;OAEG;YACW,wBAAwB;IA0BtC;;OAEG;YACW,wBAAwB;IA4BtC;;OAEG;YACW,WAAW;IAgCzB;;OAEG;YACW,WAAW;IAoDzB;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAqB9B;;OAEG;IACH,mBAAmB,IAAI,WAAW,EAAE;CAOrC"}