@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,249 @@
1
+ "use strict";
2
+ /**
3
+ * ProofEngine abstraction for multiple proof formats
4
+ * Supports JWT-VC, Data Integrity (Ed25519Signature2020), and JWS
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.DefaultProofEngine = exports.ProofEngine = void 0;
8
+ /**
9
+ * Abstract proof engine for creating and verifying proofs
10
+ */
11
+ class ProofEngine {
12
+ crypto;
13
+ constructor(crypto) {
14
+ this.crypto = crypto;
15
+ }
16
+ }
17
+ exports.ProofEngine = ProofEngine;
18
+ /**
19
+ * Default proof engine implementation
20
+ */
21
+ class DefaultProofEngine extends ProofEngine {
22
+ /**
23
+ * Create a proof based on format
24
+ */
25
+ async createProof(data, privateKey, options) {
26
+ const canonical = options.canonicalize ? this.canonicalize(data) : JSON.stringify(data);
27
+ const dataBytes = new TextEncoder().encode(canonical);
28
+ switch (options.format.type) {
29
+ case 'DetachedJWS':
30
+ return this.createDetachedJWS(dataBytes, privateKey, options);
31
+ case 'DataIntegrity':
32
+ return this.createDataIntegrityProof(data, privateKey, options);
33
+ case 'JWT-VC':
34
+ return this.createJWTVC(data, privateKey, options);
35
+ default:
36
+ throw new Error(`Unsupported proof format: ${options.format.type}`);
37
+ }
38
+ }
39
+ /**
40
+ * Verify a proof based on format
41
+ */
42
+ async verifyProof(data, proof, publicKey, options) {
43
+ try {
44
+ switch (options.format.type) {
45
+ case 'DetachedJWS':
46
+ return this.verifyDetachedJWS(data, proof, publicKey, options);
47
+ case 'DataIntegrity':
48
+ return this.verifyDataIntegrityProof(data, proof, publicKey, options);
49
+ case 'JWT-VC':
50
+ return this.verifyJWTVC(proof, publicKey, options);
51
+ default:
52
+ return {
53
+ valid: false,
54
+ format: options.format,
55
+ errors: [`Unsupported proof format: ${options.format.type}`]
56
+ };
57
+ }
58
+ }
59
+ catch (error) {
60
+ return {
61
+ valid: false,
62
+ format: options.format,
63
+ errors: [error instanceof Error ? error.message : String(error)]
64
+ };
65
+ }
66
+ }
67
+ /**
68
+ * Create detached JWS proof
69
+ */
70
+ async createDetachedJWS(data, privateKey, options) {
71
+ // Create signature
72
+ const signature = await this.crypto.sign(data, privateKey);
73
+ // Create hash for reference
74
+ const hash = await this.crypto.hash(data);
75
+ return {
76
+ format: 'DetachedJWS',
77
+ signature: Buffer.from(signature).toString('base64url'),
78
+ hash: Buffer.from(hash).toString('base64'),
79
+ algorithm: options.format.algorithm || 'Ed25519'
80
+ };
81
+ }
82
+ /**
83
+ * Verify detached JWS proof
84
+ */
85
+ async verifyDetachedJWS(data, proof, publicKey, options) {
86
+ const canonical = options.canonicalize ? this.canonicalize(data) : JSON.stringify(data);
87
+ const dataBytes = new TextEncoder().encode(canonical);
88
+ // Verify hash matches
89
+ const hash = await this.crypto.hash(dataBytes);
90
+ const hashBase64 = Buffer.from(hash).toString('base64');
91
+ if (hashBase64 !== proof.hash) {
92
+ return {
93
+ valid: false,
94
+ format: options.format,
95
+ errors: ['Hash mismatch']
96
+ };
97
+ }
98
+ // Verify signature
99
+ const signatureBytes = Buffer.from(proof.signature, 'base64url');
100
+ const valid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
101
+ return {
102
+ valid,
103
+ format: options.format,
104
+ metadata: { hash: hashBase64 }
105
+ };
106
+ }
107
+ /**
108
+ * Create Data Integrity proof (Ed25519Signature2020)
109
+ */
110
+ async createDataIntegrityProof(data, privateKey, options) {
111
+ const proof = {
112
+ type: 'Ed25519Signature2020',
113
+ created: new Date().toISOString(),
114
+ verificationMethod: '', // Will be set by runtime
115
+ proofPurpose: 'assertionMethod'
116
+ };
117
+ // Canonicalize document + proof
118
+ const docWithProof = { ...data, proof };
119
+ const canonical = this.canonicalize(docWithProof);
120
+ const dataBytes = new TextEncoder().encode(canonical);
121
+ // Sign
122
+ const signature = await this.crypto.sign(dataBytes, privateKey);
123
+ return {
124
+ ...proof,
125
+ proofValue: Buffer.from(signature).toString('base64')
126
+ };
127
+ }
128
+ /**
129
+ * Verify Data Integrity proof
130
+ */
131
+ async verifyDataIntegrityProof(data, proof, publicKey, options) {
132
+ // Remove proofValue for verification
133
+ const { proofValue, ...proofWithoutValue } = proof;
134
+ const docWithProof = { ...data, proof: proofWithoutValue };
135
+ // Canonicalize
136
+ const canonical = this.canonicalize(docWithProof);
137
+ const dataBytes = new TextEncoder().encode(canonical);
138
+ // Verify signature
139
+ const signatureBytes = Buffer.from(proofValue, 'base64');
140
+ const valid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
141
+ return {
142
+ valid,
143
+ format: options.format,
144
+ metadata: {
145
+ created: proof.created,
146
+ type: proof.type
147
+ }
148
+ };
149
+ }
150
+ /**
151
+ * Create JWT-VC
152
+ */
153
+ async createJWTVC(data, privateKey, options) {
154
+ // Create JWT header
155
+ const header = {
156
+ alg: 'EdDSA',
157
+ typ: 'JWT'
158
+ };
159
+ // Create payload
160
+ const payload = {
161
+ vc: data,
162
+ iat: Math.floor(Date.now() / 1000),
163
+ exp: Math.floor(Date.now() / 1000) + 3600 // 1 hour
164
+ };
165
+ // Encode parts
166
+ const headerB64 = Buffer.from(JSON.stringify(header)).toString('base64url');
167
+ const payloadB64 = Buffer.from(JSON.stringify(payload)).toString('base64url');
168
+ // Sign
169
+ const message = `${headerB64}.${payloadB64}`;
170
+ const signature = await this.crypto.sign(new TextEncoder().encode(message), privateKey);
171
+ return `${message}.${Buffer.from(signature).toString('base64url')}`;
172
+ }
173
+ /**
174
+ * Verify JWT-VC
175
+ */
176
+ async verifyJWTVC(jwt, publicKey, options) {
177
+ const parts = jwt.split('.');
178
+ if (parts.length !== 3) {
179
+ return {
180
+ valid: false,
181
+ format: options.format,
182
+ errors: ['Invalid JWT format']
183
+ };
184
+ }
185
+ const [headerB64, payloadB64, signatureB64] = parts;
186
+ // Verify signature
187
+ const message = `${headerB64}.${payloadB64}`;
188
+ const signature = Buffer.from(signatureB64, 'base64url');
189
+ const valid = await this.crypto.verify(new TextEncoder().encode(message), signature, publicKey);
190
+ if (!valid) {
191
+ return {
192
+ valid: false,
193
+ format: options.format,
194
+ errors: ['Invalid signature']
195
+ };
196
+ }
197
+ // Decode and check expiry
198
+ const payload = JSON.parse(Buffer.from(payloadB64, 'base64url').toString());
199
+ const now = Math.floor(Date.now() / 1000);
200
+ if (payload.exp && payload.exp < now) {
201
+ return {
202
+ valid: false,
203
+ format: options.format,
204
+ errors: ['JWT expired']
205
+ };
206
+ }
207
+ return {
208
+ valid: true,
209
+ format: options.format,
210
+ metadata: payload
211
+ };
212
+ }
213
+ /**
214
+ * Canonicalize JSON (JCS - RFC 8785)
215
+ */
216
+ canonicalize(obj) {
217
+ if (obj === null)
218
+ return 'null';
219
+ if (typeof obj === 'boolean')
220
+ return obj.toString();
221
+ if (typeof obj === 'number')
222
+ return JSON.stringify(obj);
223
+ if (typeof obj === 'string')
224
+ return JSON.stringify(obj);
225
+ if (Array.isArray(obj)) {
226
+ return '[' + obj.map(item => this.canonicalize(item)).join(',') + ']';
227
+ }
228
+ if (typeof obj === 'object') {
229
+ const keys = Object.keys(obj).sort();
230
+ const pairs = keys.map(key => {
231
+ return JSON.stringify(key) + ':' + this.canonicalize(obj[key]);
232
+ });
233
+ return '{' + pairs.join(',') + '}';
234
+ }
235
+ throw new Error('Unsupported type for canonicalization');
236
+ }
237
+ /**
238
+ * Get supported formats
239
+ */
240
+ getSupportedFormats() {
241
+ return [
242
+ { type: 'DetachedJWS', algorithm: 'Ed25519' },
243
+ { type: 'DataIntegrity', algorithm: 'Ed25519Signature2020' },
244
+ { type: 'JWT-VC', algorithm: 'EdDSA' }
245
+ ];
246
+ }
247
+ }
248
+ exports.DefaultProofEngine = DefaultProofEngine;
249
+ //# sourceMappingURL=proof-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proof-engine.js","sourceRoot":"","sources":["../../src/proof/proof-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Base MCP-I Runtime V2 - Refactored with better separation of concerns
3
+ */
4
+ import { CryptoProvider, IdentityProvider, StorageProvider, NonceCacheProvider, ClockProvider, FetchProvider } from "../types/providers";
5
+ import { AgentIdentity, SessionContext, HandshakeRequest, HandshakeResponse } from "@kya-os/contracts/handshake";
6
+ import { ProofEngine, ProofFormat, ProofOptions } from "../proof/proof-engine";
7
+ import { CredentialVerifier, DelegationRegistry, ProgressiveVerifier } from "../verification/interfaces";
8
+ import { UniversalDIDResolver } from "../did/resolver";
9
+ export interface MCPIRuntimeConfigV2 {
10
+ cryptoProvider: CryptoProvider;
11
+ identityProvider: IdentityProvider;
12
+ storageProvider: StorageProvider;
13
+ nonceCacheProvider: NonceCacheProvider;
14
+ clockProvider: ClockProvider;
15
+ fetchProvider: FetchProvider;
16
+ proofEngine?: ProofEngine;
17
+ didResolver?: UniversalDIDResolver;
18
+ credentialVerifier?: CredentialVerifier;
19
+ delegationRegistry?: DelegationRegistry;
20
+ session?: {
21
+ timestampSkewSeconds?: number;
22
+ sessionTtlMinutes?: number;
23
+ absoluteSessionLifetime?: number;
24
+ };
25
+ audit?: {
26
+ enabled?: boolean;
27
+ includePayloads?: boolean;
28
+ logFunction?: (record: string) => void;
29
+ };
30
+ proof?: {
31
+ defaultFormat?: ProofFormat;
32
+ canonicalize?: boolean;
33
+ };
34
+ security?: {
35
+ requireCredentialVerification?: boolean;
36
+ maxDelegationDepth?: number;
37
+ allowExpiredCredentials?: boolean;
38
+ };
39
+ }
40
+ /**
41
+ * Refactored MCP-I Runtime Base
42
+ * Accepts providers instead of implementing crypto directly
43
+ */
44
+ export declare class MCPIRuntimeBaseV2 {
45
+ protected crypto: CryptoProvider;
46
+ protected identity: IdentityProvider;
47
+ protected storage: StorageProvider;
48
+ protected nonceCache: NonceCacheProvider;
49
+ protected clock: ClockProvider;
50
+ protected fetch: FetchProvider;
51
+ protected proofEngine: ProofEngine;
52
+ protected didResolver: UniversalDIDResolver;
53
+ protected credentialVerifier?: CredentialVerifier;
54
+ protected delegationRegistry?: DelegationRegistry;
55
+ protected progressiveVerifier?: ProgressiveVerifier;
56
+ protected config: MCPIRuntimeConfigV2;
57
+ private cachedIdentity?;
58
+ private sessions;
59
+ constructor(config: MCPIRuntimeConfigV2);
60
+ /**
61
+ * Initialize runtime (load or generate identity)
62
+ */
63
+ initialize(): Promise<void>;
64
+ /**
65
+ * Get current agent identity
66
+ */
67
+ getIdentity(): Promise<AgentIdentity>;
68
+ /**
69
+ * Generate new identity using crypto provider
70
+ */
71
+ protected generateIdentity(): Promise<void>;
72
+ /**
73
+ * Create DID from public key
74
+ */
75
+ protected createDID(publicKey: string): Promise<string>;
76
+ /**
77
+ * Handle handshake request with improved validation
78
+ */
79
+ handleHandshake(request: HandshakeRequest): Promise<HandshakeResponse>;
80
+ /**
81
+ * Create proof using ProofEngine
82
+ */
83
+ createProof(response: any, session: SessionContext, options?: Partial<ProofOptions>): Promise<any>;
84
+ /**
85
+ * Verify proof with optional credential/delegation verification
86
+ */
87
+ verifyProof(data: any, proof: any, options?: {
88
+ verifyCredential?: boolean;
89
+ checkDelegation?: boolean;
90
+ publicKey?: string;
91
+ }): Promise<boolean>;
92
+ /**
93
+ * Process tool call with automatic proof generation
94
+ */
95
+ processToolCall(toolName: string, args: any, handler: (args: any) => Promise<any>, session: SessionContext): Promise<any>;
96
+ /**
97
+ * Get edge verification data for offline verification
98
+ */
99
+ getEdgeVerificationData(id: string): Promise<any>;
100
+ /**
101
+ * Generate cryptographically secure session ID
102
+ */
103
+ protected generateSessionId(): Promise<string>;
104
+ /**
105
+ * Generate cryptographically secure nonce
106
+ */
107
+ protected generateNonce(): Promise<string>;
108
+ /**
109
+ * Get runtime capabilities
110
+ */
111
+ protected getCapabilities(): Promise<string[]>;
112
+ /**
113
+ * Audit logging
114
+ */
115
+ protected auditLog(event: string, data?: any): void;
116
+ }
117
+ //# sourceMappingURL=base-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-v2.d.ts","sourceRoot":"","sources":["../../src/runtime/base-v2.ts"],"names":[],"mappings":"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"}