@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,328 @@
1
+ "use strict";
2
+ /**
3
+ * Base MCP-I Runtime V2 - Refactored with better separation of concerns
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPIRuntimeBaseV2 = void 0;
7
+ const interfaces_1 = require("../verification/interfaces");
8
+ const resolver_1 = require("../did/resolver");
9
+ /**
10
+ * Refactored MCP-I Runtime Base
11
+ * Accepts providers instead of implementing crypto directly
12
+ */
13
+ class MCPIRuntimeBaseV2 {
14
+ // Core providers
15
+ crypto;
16
+ identity;
17
+ storage;
18
+ nonceCache;
19
+ clock;
20
+ fetch;
21
+ // Advanced components
22
+ proofEngine;
23
+ didResolver;
24
+ credentialVerifier;
25
+ delegationRegistry;
26
+ progressiveVerifier;
27
+ // Configuration
28
+ config;
29
+ // Runtime state
30
+ cachedIdentity;
31
+ sessions = new Map();
32
+ constructor(config) {
33
+ this.config = config;
34
+ // Set core providers
35
+ this.crypto = config.cryptoProvider;
36
+ this.identity = config.identityProvider;
37
+ this.storage = config.storageProvider;
38
+ this.nonceCache = config.nonceCacheProvider;
39
+ this.clock = config.clockProvider;
40
+ this.fetch = config.fetchProvider;
41
+ // Initialize advanced components
42
+ this.proofEngine = config.proofEngine || new (require('../proof/proof-engine').DefaultProofEngine)(this.crypto);
43
+ this.didResolver = config.didResolver || new resolver_1.UniversalDIDResolver(this.fetch);
44
+ // Set optional verification components
45
+ this.credentialVerifier = config.credentialVerifier;
46
+ this.delegationRegistry = config.delegationRegistry;
47
+ // Create progressive verifier if both components available
48
+ if (this.credentialVerifier && this.delegationRegistry) {
49
+ this.progressiveVerifier = new interfaces_1.ProgressiveVerifier(this.credentialVerifier, this.delegationRegistry);
50
+ }
51
+ }
52
+ /**
53
+ * Initialize runtime (load or generate identity)
54
+ */
55
+ async initialize() {
56
+ // Try to load existing identity
57
+ this.cachedIdentity = await this.identity.loadIdentity() || undefined;
58
+ // Generate new identity if none exists
59
+ if (!this.cachedIdentity) {
60
+ await this.generateIdentity();
61
+ }
62
+ // Audit initialization
63
+ if (this.config.audit?.enabled) {
64
+ this.auditLog('runtime_initialized', {
65
+ did: this.cachedIdentity?.did,
66
+ timestamp: this.clock.now()
67
+ });
68
+ }
69
+ }
70
+ /**
71
+ * Get current agent identity
72
+ */
73
+ async getIdentity() {
74
+ if (!this.cachedIdentity) {
75
+ await this.initialize();
76
+ }
77
+ if (!this.cachedIdentity) {
78
+ throw new Error("Identity not initialized");
79
+ }
80
+ return this.cachedIdentity;
81
+ }
82
+ /**
83
+ * Generate new identity using crypto provider
84
+ */
85
+ async generateIdentity() {
86
+ const { privateKey, publicKey } = await this.crypto.generateKeyPair();
87
+ // Create DID from public key
88
+ const did = await this.createDID(publicKey);
89
+ const keyId = `${did}#key-1`;
90
+ const identity = {
91
+ did,
92
+ keyId,
93
+ privateKey,
94
+ publicKey,
95
+ createdAt: new Date(this.clock.now()).toISOString()
96
+ };
97
+ await this.identity.storeIdentity(identity);
98
+ this.cachedIdentity = identity;
99
+ // Audit identity generation
100
+ this.auditLog('identity_generated', { did, keyId });
101
+ }
102
+ /**
103
+ * Create DID from public key
104
+ */
105
+ async createDID(publicKey) {
106
+ // Default: did:key format
107
+ const keyBytes = Buffer.from(publicKey, 'base64');
108
+ const multicodec = Buffer.concat([
109
+ Buffer.from([0xed, 0x01]), // Ed25519 public key multicodec
110
+ keyBytes
111
+ ]);
112
+ const multibase = 'z' + multicodec.toString('base64url');
113
+ return `did:key:${multibase}`;
114
+ }
115
+ /**
116
+ * Handle handshake request with improved validation
117
+ */
118
+ async handleHandshake(request) {
119
+ const identity = await this.getIdentity();
120
+ // Validate timestamp using clock provider
121
+ if (!this.clock.isWithinSkew(request.timestamp, this.config.session?.timestampSkewSeconds || 120)) {
122
+ throw new Error("Timestamp outside acceptable window");
123
+ }
124
+ // Check nonce with prefix
125
+ const nonceKey = `${this.nonceCache.getNoncePrefix()}${request.nonce}`;
126
+ if (await this.nonceCache.has(nonceKey)) {
127
+ throw new Error("Nonce already used");
128
+ }
129
+ // Add nonce to cache with TTL
130
+ const ttl = this.nonceCache.getDefaultTTL();
131
+ await this.nonceCache.add(nonceKey, ttl);
132
+ // Create session
133
+ const sessionId = await this.generateSessionId();
134
+ const now = this.clock.now();
135
+ const session = {
136
+ sessionId,
137
+ agentDid: identity.did,
138
+ keyId: identity.keyId,
139
+ establishedAt: now,
140
+ lastActivityAt: now,
141
+ nonce: request.nonce,
142
+ clientInfo: request.clientInfo
143
+ };
144
+ this.sessions.set(sessionId, session);
145
+ // Audit handshake
146
+ this.auditLog('handshake_completed', {
147
+ sessionId,
148
+ clientInfo: request.clientInfo
149
+ });
150
+ return {
151
+ sessionId,
152
+ agentDid: identity.did,
153
+ keyId: identity.keyId,
154
+ timestamp: now,
155
+ capabilities: await this.getCapabilities()
156
+ };
157
+ }
158
+ /**
159
+ * Create proof using ProofEngine
160
+ */
161
+ async createProof(response, session, options) {
162
+ const identity = await this.getIdentity();
163
+ // Use configured proof format
164
+ const proofOptions = {
165
+ format: options?.format || this.config.proof?.defaultFormat || {
166
+ type: 'DetachedJWS',
167
+ algorithm: 'Ed25519'
168
+ },
169
+ canonicalize: options?.canonicalize ?? this.config.proof?.canonicalize ?? true,
170
+ includeMeta: options?.includeMeta ?? true
171
+ };
172
+ // Add session metadata
173
+ const dataWithMeta = {
174
+ ...response,
175
+ _meta: {
176
+ agentDid: identity.did,
177
+ keyId: identity.keyId,
178
+ sessionId: session.sessionId,
179
+ timestamp: this.clock.now(),
180
+ nonce: await this.generateNonce()
181
+ }
182
+ };
183
+ // Create proof using engine
184
+ const proof = await this.proofEngine.createProof(dataWithMeta, identity.privateKey, proofOptions);
185
+ // Audit proof creation
186
+ this.auditLog('proof_created', {
187
+ sessionId: session.sessionId,
188
+ format: proofOptions.format.type
189
+ });
190
+ return proof;
191
+ }
192
+ /**
193
+ * Verify proof with optional credential/delegation verification
194
+ */
195
+ async verifyProof(data, proof, options) {
196
+ // Extract public key if not provided
197
+ let publicKey = options?.publicKey;
198
+ if (!publicKey && data._meta?.agentDid) {
199
+ // Resolve DID to get public key
200
+ publicKey = await this.didResolver.getPublicKey(data._meta.agentDid, data._meta.keyId);
201
+ }
202
+ if (!publicKey) {
203
+ throw new Error('No public key available for verification');
204
+ }
205
+ // Verify proof using engine
206
+ const proofResult = await this.proofEngine.verifyProof(data, proof, publicKey, {
207
+ format: { type: 'DetachedJWS', algorithm: 'Ed25519' },
208
+ canonicalize: true
209
+ });
210
+ if (!proofResult.valid) {
211
+ return false;
212
+ }
213
+ // Progressive verification if enabled
214
+ if (this.progressiveVerifier && (options?.verifyCredential || options?.checkDelegation)) {
215
+ const verificationResult = await this.progressiveVerifier.verifyProgressive(data, {
216
+ verifyCredential: options.verifyCredential,
217
+ checkRevocation: true,
218
+ maxChainDepth: this.config.security?.maxDelegationDepth || 5
219
+ });
220
+ if (!verificationResult.valid) {
221
+ this.auditLog('verification_failed', {
222
+ errors: verificationResult.errors,
223
+ warnings: verificationResult.warnings
224
+ });
225
+ return false;
226
+ }
227
+ }
228
+ // Audit successful verification
229
+ this.auditLog('proof_verified', {
230
+ did: data._meta?.agentDid
231
+ });
232
+ return true;
233
+ }
234
+ /**
235
+ * Process tool call with automatic proof generation
236
+ */
237
+ async processToolCall(toolName, args, handler, session) {
238
+ // Check session validity
239
+ const sessionAge = this.clock.now() - session.establishedAt;
240
+ const maxAge = (this.config.session?.absoluteSessionLifetime || 86400) * 1000;
241
+ if (sessionAge > maxAge) {
242
+ throw new Error('Session expired');
243
+ }
244
+ // Update session activity
245
+ session.lastActivityAt = this.clock.now();
246
+ // Execute tool
247
+ const startTime = this.clock.now();
248
+ const result = await handler(args);
249
+ const executionTime = this.clock.now() - startTime;
250
+ // Create proof for response
251
+ const proofedResult = await this.createProof(result, session);
252
+ // Audit tool execution
253
+ this.auditLog('tool_executed', {
254
+ tool: toolName,
255
+ sessionId: session.sessionId,
256
+ executionTime,
257
+ hasProof: true
258
+ });
259
+ return proofedResult;
260
+ }
261
+ /**
262
+ * Get edge verification data for offline verification
263
+ */
264
+ async getEdgeVerificationData(id) {
265
+ if (!this.progressiveVerifier) {
266
+ throw new Error('Progressive verifier not configured');
267
+ }
268
+ return this.progressiveVerifier.getEdgeVerificationData(id);
269
+ }
270
+ /**
271
+ * Generate cryptographically secure session ID
272
+ */
273
+ async generateSessionId() {
274
+ // To be implemented by platform-specific runtime
275
+ throw new Error('generateSessionId must be implemented by platform runtime');
276
+ }
277
+ /**
278
+ * Generate cryptographically secure nonce
279
+ */
280
+ async generateNonce() {
281
+ // To be implemented by platform-specific runtime
282
+ throw new Error('generateNonce must be implemented by platform runtime');
283
+ }
284
+ /**
285
+ * Get runtime capabilities
286
+ */
287
+ async getCapabilities() {
288
+ const capabilities = ['tools', 'identity', 'proof', 'session'];
289
+ if (this.credentialVerifier) {
290
+ capabilities.push('credential-verification');
291
+ }
292
+ if (this.delegationRegistry) {
293
+ capabilities.push('delegation');
294
+ }
295
+ if (this.progressiveVerifier) {
296
+ capabilities.push('progressive-verification');
297
+ }
298
+ // Add supported proof formats
299
+ const formats = this.proofEngine.getSupportedFormats();
300
+ formats.forEach(f => {
301
+ capabilities.push(`proof:${f.type.toLowerCase()}`);
302
+ });
303
+ return capabilities;
304
+ }
305
+ /**
306
+ * Audit logging
307
+ */
308
+ auditLog(event, data) {
309
+ if (!this.config.audit?.enabled) {
310
+ return;
311
+ }
312
+ const record = {
313
+ timestamp: this.clock.now(),
314
+ event,
315
+ data: this.config.audit.includePayloads ? data : undefined,
316
+ did: this.cachedIdentity?.did
317
+ };
318
+ const logLine = JSON.stringify(record);
319
+ if (this.config.audit.logFunction) {
320
+ this.config.audit.logFunction(logLine);
321
+ }
322
+ else {
323
+ console.log('[AUDIT]', logLine);
324
+ }
325
+ }
326
+ }
327
+ exports.MCPIRuntimeBaseV2 = MCPIRuntimeBaseV2;
328
+ //# sourceMappingURL=base-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-v2.js","sourceRoot":"","sources":["../../src/runtime/base-v2.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAiBH,2DAAyG;AACzG,8CAAuD;AA0CvD;;;GAGG;AACH,MAAa,iBAAiB;IAC5B,iBAAiB;IACP,MAAM,CAAiB;IACvB,QAAQ,CAAmB;IAC3B,OAAO,CAAkB;IACzB,UAAU,CAAqB;IAC/B,KAAK,CAAgB;IACrB,KAAK,CAAgB;IAE/B,sBAAsB;IACZ,WAAW,CAAc;IACzB,WAAW,CAAuB;IAClC,kBAAkB,CAAsB;IACxC,kBAAkB,CAAsB;IACxC,mBAAmB,CAAuB;IAEpD,gBAAgB;IACN,MAAM,CAAsB;IAEtC,gBAAgB;IACR,cAAc,CAAiB;IAC/B,QAAQ,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE1D,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,qBAAqB;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QAElC,iCAAiC;QACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChH,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,+BAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE9E,uCAAuC;QACvC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAEpD,2DAA2D;QAC3D,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,gCAAmB,CAChD,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,kBAAkB,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,gCAAgC;QAChC,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC;QAEtE,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;gBACnC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG;gBAC7B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,gBAAgB;QAC9B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAEtE,6BAA6B;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,GAAG,GAAG,QAAQ,CAAC;QAE7B,MAAM,QAAQ,GAAkB;YAC9B,GAAG;YACH,KAAK;YACL,UAAU;YACV,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SACpD,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAE/B,4BAA4B;QAC5B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,SAAS,CAAC,SAAiB;QACzC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,gCAAgC;YAC3D,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,WAAW,SAAS,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,OAAyB;QAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAC1B,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,IAAI,GAAG,CACjD,EAAE,CAAC;YACF,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACvE,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,8BAA8B;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEzC,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAmB;YAC9B,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,GAAG;YACtB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,aAAa,EAAE,GAAG;YAClB,cAAc,EAAE,GAAG;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;YACnC,SAAS;YACT,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAEH,OAAO;YACL,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,GAAG;YACtB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;SAC3C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAa,EACb,OAAuB,EACvB,OAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,8BAA8B;QAC9B,MAAM,YAAY,GAAiB;YACjC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,IAAI;gBAC7D,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,SAAS;aACrB;YACD,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,IAAI,IAAI;YAC9E,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI;SAC1C,CAAC;QAEF,uBAAuB;QACvB,MAAM,YAAY,GAAG;YACnB,GAAG,QAAQ;YACX,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ,CAAC,GAAG;gBACtB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC3B,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;aAClC;SACF,CAAC;QAEF,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAC9C,YAAY,EACZ,QAAQ,CAAC,UAAU,EACnB,YAAY,CACb,CAAC;QAEF,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI;SACjC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,IAAS,EACT,KAAU,EACV,OAIC;QAED,qCAAqC;QACrC,IAAI,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;QAEnC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YACvC,gCAAgC;YAChC,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAC7C,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,IAAI,CAAC,KAAK,CAAC,KAAK,CACjB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CACpD,IAAI,EACJ,KAAK,EACL,SAAS,EACT;YACE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE;YACrD,YAAY,EAAE,IAAI;SACnB,CACF,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;YACxF,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CACzE,IAAI,EACJ;gBACE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,eAAe,EAAE,IAAI;gBACrB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,IAAI,CAAC;aAC7D,CACF,CAAC;YAEF,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE;oBACnC,MAAM,EAAE,kBAAkB,CAAC,MAAM;oBACjC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;iBACtC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YAC9B,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ;SAC1B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,IAAS,EACT,OAAoC,EACpC,OAAuB;QAEvB,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;QAE9E,IAAI,UAAU,GAAG,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,0BAA0B;QAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAE1C,eAAe;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEnD,4BAA4B;QAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9D,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC7B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,EAAU;QACtC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,iBAAiB;QAC/B,iDAAiD;QACjD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,aAAa;QAC3B,iDAAiD;QACjD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,eAAe;QAC7B,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE/D,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACvD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACO,QAAQ,CAAC,KAAa,EAAE,IAAU;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3B,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC1D,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG;SAC9B,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;CACF;AA7ZD,8CA6ZC"}
@@ -5,33 +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
- authorizationUrl?: string;
34
- }
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";
35
11
  export declare class MCPIRuntimeBase {
36
12
  protected crypto: CryptoProvider;
37
13
  protected clock: ClockProvider;
@@ -39,11 +15,13 @@ export declare class MCPIRuntimeBase {
39
15
  protected storage: StorageProvider;
40
16
  protected nonceCache: NonceCacheProvider;
41
17
  protected identity: IdentityProvider;
42
- protected config: MCPIRuntimeConfig;
18
+ protected config: ProviderRuntimeConfig;
43
19
  private cachedIdentity?;
44
20
  private sessions;
45
21
  private lastProof?;
46
- constructor(config: MCPIRuntimeConfig);
22
+ private userDidManager?;
23
+ private interceptedCalls;
24
+ constructor(config: ProviderRuntimeConfig);
47
25
  /**
48
26
  * Initialize the runtime
49
27
  */
@@ -66,11 +44,28 @@ export declare class MCPIRuntimeBase {
66
44
  * @param session - Session context (expected fields: id, audience, nonce?, delegationToken?, consentProof?)
67
45
  */
68
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;
69
64
  /**
70
65
  * Build consent URL for delegation flow
71
66
  * Override this method in subclasses to customize the consent URL
72
67
  */
73
- protected buildConsentUrl(toolName: string, scopes: string[], session?: any): string;
68
+ protected buildConsentUrl(toolName: string, scopes: string[], session?: any, resumeToken?: string): string;
74
69
  /**
75
70
  * Issue a new nonce and register it in the cache
76
71
  * Use this to get a nonce for the session context before calling processToolCall
@@ -95,7 +90,7 @@ export declare class MCPIRuntimeBase {
95
90
  /**
96
91
  * Create well-known handler for identity verification
97
92
  */
98
- createWellKnownHandler(config?: any): any;
93
+ createWellKnownHandler(config?: WellKnownConfig): (path: string) => Promise<WellKnownResponse | MCPIdentity | null>;
99
94
  /**
100
95
  * Create debug endpoint (development only)
101
96
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAGpF,MAAM,WAAW,iBAAiB;IAEhC,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;IAGnC,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACvC,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IAEF,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAK9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAC1B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC;IACnC,SAAS,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACrC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACpC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAC,CAAM;gBAEZ,MAAM,EAAE,iBAAiB;IAUrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBjC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAO3C;;OAEG;IACG,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAkCjD;;;;;;;;OAQG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACpC,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC;IAwEf;;;OAGG;IACH,SAAS,CAAC,eAAe,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE,GAAG,GACZ,MAAM;IAcT;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASpD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAuCzD;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C1D;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC;IAUvC;;OAEG;IACH,YAAY,IAAI,GAAG;IAInB;;OAEG;IACH,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG;IA2DzC;;OAEG;IACH,mBAAmB,IAAI,GAAG;IAyB1B;;OAEG;IACH,cAAc,IAAI,GAAG;IAMrB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;YAkB5B,QAAQ;YAYR,aAAa;YAKb,iBAAiB;IAK/B,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}