@kya-os/mcp-i-core 1.1.9 → 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 (34) 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/config/remote-config.d.ts +69 -0
  8. package/dist/config/remote-config.d.ts.map +1 -0
  9. package/dist/config/remote-config.js +107 -0
  10. package/dist/config/remote-config.js.map +1 -0
  11. package/dist/config.d.ts +182 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +145 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/identity/user-did-manager.d.ts +106 -0
  16. package/dist/identity/user-did-manager.d.ts.map +1 -0
  17. package/dist/identity/user-did-manager.js +190 -0
  18. package/dist/identity/user-did-manager.js.map +1 -0
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/runtime/base.d.ts +26 -30
  24. package/dist/runtime/base.d.ts.map +1 -1
  25. package/dist/runtime/base.js +202 -66
  26. package/dist/runtime/base.js.map +1 -1
  27. package/dist/services/tool-protection.service.d.ts.map +1 -1
  28. package/dist/services/tool-protection.service.js +60 -11
  29. package/dist/services/tool-protection.service.js.map +1 -1
  30. package/dist/types/tool-protection.d.ts +22 -22
  31. package/dist/types/tool-protection.d.ts.map +1 -1
  32. package/dist/types/tool-protection.js +12 -5
  33. package/dist/types/tool-protection.js.map +1 -1
  34. package/package.json +10 -3
@@ -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"}
@@ -5,32 +5,9 @@
5
5
  * This enables the same runtime logic to work across Node.js, Cloudflare Workers,
6
6
  * and other platforms.
7
7
  */
8
- import { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, AgentIdentity } from '../providers/base';
9
- import type { ToolProtectionService } from '../services/tool-protection.service.js';
10
- export interface MCPIRuntimeConfig {
11
- cryptoProvider: CryptoProvider;
12
- clockProvider: ClockProvider;
13
- fetchProvider: FetchProvider;
14
- storageProvider: StorageProvider;
15
- nonceCacheProvider: NonceCacheProvider;
16
- identityProvider: IdentityProvider;
17
- environment?: 'development' | 'production';
18
- timestampSkewSeconds?: number;
19
- sessionTtlMinutes?: number;
20
- audit?: {
21
- enabled: boolean;
22
- logFunction?: (record: string) => void;
23
- includePayloads?: boolean;
24
- };
25
- wellKnown?: {
26
- enabled: boolean;
27
- serviceName?: string;
28
- serviceEndpoint?: string;
29
- };
30
- showVerifyLink?: boolean;
31
- identityBadge?: boolean;
32
- toolProtectionService?: ToolProtectionService;
33
- }
8
+ import { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, AgentIdentity } from "../providers/base";
9
+ import type { MCPIdentity, WellKnownConfig, WellKnownResponse } from "@kya-os/contracts/well-known";
10
+ import type { ProviderRuntimeConfig } from "../config";
34
11
  export declare class MCPIRuntimeBase {
35
12
  protected crypto: CryptoProvider;
36
13
  protected clock: ClockProvider;
@@ -38,11 +15,13 @@ export declare class MCPIRuntimeBase {
38
15
  protected storage: StorageProvider;
39
16
  protected nonceCache: NonceCacheProvider;
40
17
  protected identity: IdentityProvider;
41
- protected config: MCPIRuntimeConfig;
18
+ protected config: ProviderRuntimeConfig;
42
19
  private cachedIdentity?;
43
20
  private sessions;
44
21
  private lastProof?;
45
- constructor(config: MCPIRuntimeConfig);
22
+ private userDidManager?;
23
+ private interceptedCalls;
24
+ constructor(config: ProviderRuntimeConfig);
46
25
  /**
47
26
  * Initialize the runtime
48
27
  */
@@ -65,11 +44,28 @@ export declare class MCPIRuntimeBase {
65
44
  * @param session - Session context (expected fields: id, audience, nonce?, delegationToken?, consentProof?)
66
45
  */
67
46
  processToolCall(toolName: string, args: any, handler: (args: any) => Promise<any>, session?: any): Promise<any>;
47
+ /**
48
+ * Resume a tool call after authorization
49
+ *
50
+ * @param resumeToken - Token from DelegationRequiredError
51
+ * @param handler - Tool execution handler
52
+ * @param delegationToken - Delegation token from authorization
53
+ * @returns Tool execution result
54
+ */
55
+ resumeToolCall(resumeToken: string, handler: (args: any) => Promise<any>, delegationToken?: string): Promise<any>;
56
+ /**
57
+ * Generate a resume token for intercepted tool call
58
+ */
59
+ private generateResumeToken;
60
+ /**
61
+ * Clean up expired intercepted calls
62
+ */
63
+ private cleanupExpiredInterceptedCalls;
68
64
  /**
69
65
  * Build consent URL for delegation flow
70
66
  * Override this method in subclasses to customize the consent URL
71
67
  */
72
- protected buildConsentUrl(toolName: string, scopes: string[], session?: any): string;
68
+ protected buildConsentUrl(toolName: string, scopes: string[], session?: any, resumeToken?: string): string;
73
69
  /**
74
70
  * Issue a new nonce and register it in the cache
75
71
  * Use this to get a nonce for the session context before calling processToolCall
@@ -94,7 +90,7 @@ export declare class MCPIRuntimeBase {
94
90
  /**
95
91
  * Create well-known handler for identity verification
96
92
  */
97
- createWellKnownHandler(config?: any): any;
93
+ createWellKnownHandler(config?: WellKnownConfig): (path: string) => Promise<WellKnownResponse | MCPIdentity | null>;
98
94
  /**
99
95
  * Create debug endpoint (development only)
100
96
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}