@kya-os/mcp-i-core 1.0.0

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 (38) hide show
  1. package/README.md +302 -0
  2. package/dist/did/resolver.d.ts +92 -0
  3. package/dist/did/resolver.d.ts.map +1 -0
  4. package/dist/did/resolver.js +203 -0
  5. package/dist/did/resolver.js.map +1 -0
  6. package/dist/index.d.ts +12 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +26 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/proof/proof-engine.d.ts +89 -0
  11. package/dist/proof/proof-engine.d.ts.map +1 -0
  12. package/dist/proof/proof-engine.js +249 -0
  13. package/dist/proof/proof-engine.js.map +1 -0
  14. package/dist/providers/base.d.ts +76 -0
  15. package/dist/providers/base.d.ts.map +1 -0
  16. package/dist/providers/base.js +43 -0
  17. package/dist/providers/base.js.map +1 -0
  18. package/dist/providers/memory.d.ts +42 -0
  19. package/dist/providers/memory.d.ts.map +1 -0
  20. package/dist/providers/memory.js +117 -0
  21. package/dist/providers/memory.js.map +1 -0
  22. package/dist/runtime/base-v2.d.ts +117 -0
  23. package/dist/runtime/base-v2.d.ts.map +1 -0
  24. package/dist/runtime/base-v2.js +328 -0
  25. package/dist/runtime/base-v2.js.map +1 -0
  26. package/dist/runtime/base.d.ts +97 -0
  27. package/dist/runtime/base.d.ts.map +1 -0
  28. package/dist/runtime/base.js +316 -0
  29. package/dist/runtime/base.js.map +1 -0
  30. package/dist/types/providers.d.ts +142 -0
  31. package/dist/types/providers.d.ts.map +1 -0
  32. package/dist/types/providers.js +43 -0
  33. package/dist/types/providers.js.map +1 -0
  34. package/dist/verification/interfaces.d.ts +125 -0
  35. package/dist/verification/interfaces.d.ts.map +1 -0
  36. package/dist/verification/interfaces.js +101 -0
  37. package/dist/verification/interfaces.js.map +1 -0
  38. package/package.json +59 -0
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ /**
3
+ * MCPIRuntimeBase - Provider-based runtime
4
+ *
5
+ * Core runtime that accepts providers for all platform-specific operations.
6
+ * This enables the same runtime logic to work across Node.js, Cloudflare Workers,
7
+ * and other platforms.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MCPIRuntimeBase = void 0;
11
+ class MCPIRuntimeBase {
12
+ crypto;
13
+ clock;
14
+ fetch;
15
+ storage;
16
+ nonceCache;
17
+ identity;
18
+ config;
19
+ cachedIdentity;
20
+ sessions = new Map();
21
+ constructor(config) {
22
+ this.config = config;
23
+ this.crypto = config.cryptoProvider;
24
+ this.clock = config.clockProvider;
25
+ this.fetch = config.fetchProvider;
26
+ this.storage = config.storageProvider;
27
+ this.nonceCache = config.nonceCacheProvider;
28
+ this.identity = config.identityProvider;
29
+ }
30
+ /**
31
+ * Initialize the runtime
32
+ */
33
+ async initialize() {
34
+ // Load or generate identity
35
+ this.cachedIdentity = await this.identity.getIdentity();
36
+ // Initialize nonce cache if it has an initialize method
37
+ if ('initialize' in this.nonceCache && typeof this.nonceCache.initialize === 'function') {
38
+ await this.nonceCache.initialize();
39
+ }
40
+ // Log initialization if audit is enabled
41
+ if (this.config.audit?.enabled) {
42
+ this.logAudit('runtime_initialized', {
43
+ did: this.cachedIdentity.did,
44
+ environment: this.config.environment || 'development'
45
+ });
46
+ }
47
+ }
48
+ /**
49
+ * Get the current agent identity
50
+ */
51
+ async getIdentity() {
52
+ if (!this.cachedIdentity) {
53
+ this.cachedIdentity = await this.identity.getIdentity();
54
+ }
55
+ return this.cachedIdentity;
56
+ }
57
+ /**
58
+ * Handle handshake request
59
+ */
60
+ async handleHandshake(request) {
61
+ const identity = await this.getIdentity();
62
+ const timestamp = this.clock.now();
63
+ const sessionId = await this.generateSessionId();
64
+ // Create session
65
+ const session = {
66
+ id: sessionId,
67
+ clientDid: request.clientDid,
68
+ agentDid: identity.did,
69
+ createdAt: timestamp,
70
+ expiresAt: this.clock.calculateExpiry((this.config.sessionTtlMinutes || 30) * 60)
71
+ };
72
+ this.sessions.set(sessionId, session);
73
+ // Create handshake response
74
+ const response = {
75
+ sessionId,
76
+ agentDid: identity.did,
77
+ timestamp,
78
+ capabilities: ['identity', 'proof', 'audit']
79
+ };
80
+ // Sign the response
81
+ const signature = await this.signData(response);
82
+ return {
83
+ ...response,
84
+ signature
85
+ };
86
+ }
87
+ /**
88
+ * Process tool call with automatic proof generation
89
+ */
90
+ async processToolCall(toolName, args, handler, session) {
91
+ // Execute the tool
92
+ const result = await handler(args);
93
+ // Create proof
94
+ const proof = await this.createProof(result, session);
95
+ // Log if audit is enabled
96
+ if (this.config.audit?.enabled) {
97
+ this.logAudit('tool_executed', {
98
+ tool: toolName,
99
+ sessionId: session?.id,
100
+ timestamp: this.clock.now()
101
+ });
102
+ }
103
+ return {
104
+ result,
105
+ proof
106
+ };
107
+ }
108
+ /**
109
+ * Create cryptographic proof for data
110
+ */
111
+ async createProof(data, session) {
112
+ const identity = await this.getIdentity();
113
+ const timestamp = this.clock.now();
114
+ const nonce = await this.generateNonce();
115
+ // Add nonce to cache to prevent replay
116
+ await this.nonceCache.add(nonce, this.clock.calculateExpiry(300) // 5 minute expiry
117
+ );
118
+ const proofData = {
119
+ data,
120
+ timestamp,
121
+ nonce,
122
+ did: identity.did,
123
+ sessionId: session?.id
124
+ };
125
+ const signature = await this.signData(proofData);
126
+ return {
127
+ timestamp,
128
+ nonce,
129
+ did: identity.did,
130
+ signature,
131
+ algorithm: 'Ed25519'
132
+ };
133
+ }
134
+ /**
135
+ * Verify a proof
136
+ */
137
+ async verifyProof(data, proof) {
138
+ try {
139
+ // Check nonce hasn't been used
140
+ if (await this.nonceCache.has(proof.nonce)) {
141
+ return false;
142
+ }
143
+ // Check timestamp is within skew
144
+ if (!this.clock.isWithinSkew(proof.timestamp, this.config.timestampSkewSeconds || 120)) {
145
+ return false;
146
+ }
147
+ // Resolve DID to get public key
148
+ const didDoc = await this.fetch.resolveDID(proof.did);
149
+ const publicKey = this.extractPublicKey(didDoc);
150
+ // Verify signature
151
+ const proofData = {
152
+ data,
153
+ timestamp: proof.timestamp,
154
+ nonce: proof.nonce,
155
+ did: proof.did,
156
+ sessionId: proof.sessionId
157
+ };
158
+ const dataBytes = new TextEncoder().encode(JSON.stringify(proofData));
159
+ const signatureBytes = this.base64ToBytes(proof.signature);
160
+ return await this.crypto.verify(dataBytes, signatureBytes, publicKey);
161
+ }
162
+ catch (error) {
163
+ console.error('Proof verification failed:', error);
164
+ return false;
165
+ }
166
+ }
167
+ /**
168
+ * Get current session
169
+ */
170
+ async getCurrentSession() {
171
+ // Find non-expired session
172
+ for (const [id, session] of this.sessions) {
173
+ if (!this.clock.hasExpired(session.expiresAt)) {
174
+ return session;
175
+ }
176
+ }
177
+ return null;
178
+ }
179
+ /**
180
+ * Create well-known handler for identity verification
181
+ */
182
+ createWellKnownHandler(config) {
183
+ return async (path) => {
184
+ const identity = await this.getIdentity();
185
+ if (path === '/.well-known/did.json') {
186
+ return this.createDIDDocument(identity);
187
+ }
188
+ if (path === '/.well-known/mcp-identity') {
189
+ return {
190
+ did: identity.did,
191
+ publicKey: identity.publicKey,
192
+ serviceName: config?.serviceName || 'MCP-I Service',
193
+ serviceEndpoint: config?.serviceEndpoint || 'https://example.com',
194
+ timestamp: this.clock.now()
195
+ };
196
+ }
197
+ return null;
198
+ };
199
+ }
200
+ /**
201
+ * Create debug endpoint (development only)
202
+ */
203
+ createDebugEndpoint() {
204
+ if (this.config.environment === 'production') {
205
+ return null;
206
+ }
207
+ return async () => {
208
+ const identity = await this.getIdentity();
209
+ const session = await this.getCurrentSession();
210
+ return {
211
+ identity: {
212
+ did: identity.did,
213
+ publicKey: identity.publicKey
214
+ },
215
+ session,
216
+ config: {
217
+ environment: this.config.environment,
218
+ timestampSkewSeconds: this.config.timestampSkewSeconds,
219
+ sessionTtlMinutes: this.config.sessionTtlMinutes
220
+ },
221
+ timestamp: this.clock.now()
222
+ };
223
+ };
224
+ }
225
+ /**
226
+ * Get audit logger
227
+ */
228
+ getAuditLogger() {
229
+ return {
230
+ log: (event, data) => this.logAudit(event, data)
231
+ };
232
+ }
233
+ /**
234
+ * Rotate keys
235
+ */
236
+ async rotateKeys() {
237
+ const newIdentity = await this.identity.rotateKeys();
238
+ this.cachedIdentity = newIdentity;
239
+ if (this.config.audit?.enabled) {
240
+ this.logAudit('keys_rotated', {
241
+ oldDid: this.cachedIdentity?.did,
242
+ newDid: newIdentity.did,
243
+ timestamp: this.clock.now()
244
+ });
245
+ }
246
+ return newIdentity;
247
+ }
248
+ // Helper methods
249
+ async signData(data) {
250
+ const identity = await this.getIdentity();
251
+ const dataBytes = new TextEncoder().encode(JSON.stringify(data));
252
+ const signature = await this.crypto.sign(dataBytes, identity.privateKey);
253
+ return this.bytesToBase64(signature);
254
+ }
255
+ async generateNonce() {
256
+ const bytes = await this.crypto.randomBytes(32);
257
+ return this.bytesToBase64(bytes);
258
+ }
259
+ async generateSessionId() {
260
+ const bytes = await this.crypto.randomBytes(16);
261
+ return this.bytesToHex(bytes);
262
+ }
263
+ logAudit(event, data) {
264
+ if (!this.config.audit?.enabled)
265
+ return;
266
+ const record = {
267
+ event,
268
+ data: this.config.audit.includePayloads ? data : undefined,
269
+ timestamp: this.clock.now(),
270
+ timestampFormatted: this.clock.format(this.clock.now())
271
+ };
272
+ const logLine = JSON.stringify(record);
273
+ if (this.config.audit.logFunction) {
274
+ this.config.audit.logFunction(logLine);
275
+ }
276
+ else {
277
+ console.log('[AUDIT]', logLine);
278
+ }
279
+ }
280
+ createDIDDocument(identity) {
281
+ return {
282
+ '@context': ['https://www.w3.org/ns/did/v1'],
283
+ id: identity.did,
284
+ verificationMethod: [{
285
+ id: `${identity.did}#key-1`,
286
+ type: 'Ed25519VerificationKey2020',
287
+ controller: identity.did,
288
+ publicKeyBase64: identity.publicKey
289
+ }],
290
+ authentication: [`${identity.did}#key-1`],
291
+ assertionMethod: [`${identity.did}#key-1`]
292
+ };
293
+ }
294
+ extractPublicKey(didDoc) {
295
+ const method = didDoc.verificationMethod?.[0];
296
+ if (method?.publicKeyBase64) {
297
+ return method.publicKeyBase64;
298
+ }
299
+ if (method?.publicKeyMultibase) {
300
+ // Convert multibase to base64
301
+ return method.publicKeyMultibase; // Simplified
302
+ }
303
+ throw new Error('Public key not found in DID document');
304
+ }
305
+ bytesToBase64(bytes) {
306
+ return Buffer.from(bytes).toString('base64');
307
+ }
308
+ base64ToBytes(base64) {
309
+ return new Uint8Array(Buffer.from(base64, 'base64'));
310
+ }
311
+ bytesToHex(bytes) {
312
+ return Buffer.from(bytes).toString('hex');
313
+ }
314
+ }
315
+ exports.MCPIRuntimeBase = MCPIRuntimeBase;
316
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Provider interfaces for platform-specific implementations
3
+ */
4
+ import { AgentIdentity } from "@kya-os/contracts/handshake";
5
+ /**
6
+ * Abstract crypto provider for platform-specific crypto operations
7
+ */
8
+ export declare abstract class CryptoProvider {
9
+ /**
10
+ * Sign data with Ed25519 private key
11
+ */
12
+ abstract sign(data: Uint8Array, privateKey: string): Promise<Uint8Array>;
13
+ /**
14
+ * Verify signature with Ed25519 public key
15
+ */
16
+ abstract verify(data: Uint8Array, signature: Uint8Array, publicKey: string): Promise<boolean>;
17
+ /**
18
+ * Generate Ed25519 key pair
19
+ */
20
+ abstract generateKeyPair(): Promise<{
21
+ privateKey: string;
22
+ publicKey: string;
23
+ }>;
24
+ /**
25
+ * Create SHA-256 hash
26
+ */
27
+ abstract hash(data: Uint8Array): Promise<Uint8Array>;
28
+ }
29
+ /**
30
+ * Abstract identity provider for platform-specific identity storage
31
+ */
32
+ export declare abstract class IdentityProvider {
33
+ /**
34
+ * Load agent identity from storage
35
+ */
36
+ abstract loadIdentity(): Promise<AgentIdentity | null>;
37
+ /**
38
+ * Store agent identity
39
+ */
40
+ abstract storeIdentity(identity: AgentIdentity): Promise<void>;
41
+ /**
42
+ * Check if identity exists
43
+ */
44
+ abstract hasIdentity(): Promise<boolean>;
45
+ /**
46
+ * Delete identity
47
+ */
48
+ abstract deleteIdentity(): Promise<void>;
49
+ }
50
+ /**
51
+ * Abstract storage provider for general key-value storage
52
+ */
53
+ export declare abstract class StorageProvider {
54
+ /**
55
+ * Get value by key
56
+ */
57
+ abstract get(key: string): Promise<string | null>;
58
+ /**
59
+ * Set value with optional TTL
60
+ */
61
+ abstract set(key: string, value: string, ttl?: number): Promise<void>;
62
+ /**
63
+ * Delete value by key
64
+ */
65
+ abstract delete(key: string): Promise<void>;
66
+ /**
67
+ * Check if key exists
68
+ */
69
+ abstract has(key: string): Promise<boolean>;
70
+ }
71
+ /**
72
+ * Nonce cache provider for replay attack prevention
73
+ */
74
+ export declare abstract class NonceCacheProvider {
75
+ /**
76
+ * Get nonce prefix for namespacing
77
+ */
78
+ abstract getNoncePrefix(): string;
79
+ /**
80
+ * Get default TTL in seconds
81
+ */
82
+ abstract getDefaultTTL(): number;
83
+ /**
84
+ * Check if nonce exists
85
+ */
86
+ abstract has(nonce: string): Promise<boolean>;
87
+ /**
88
+ * Add nonce with TTL in seconds
89
+ */
90
+ abstract add(nonce: string, ttl: number): Promise<void>;
91
+ /**
92
+ * Clean expired nonces (optional)
93
+ */
94
+ abstract cleanup?(): Promise<void>;
95
+ }
96
+ /**
97
+ * Clock provider for time-based operations
98
+ */
99
+ export declare abstract class ClockProvider {
100
+ /**
101
+ * Get current timestamp in milliseconds
102
+ */
103
+ abstract now(): number;
104
+ /**
105
+ * Check if a timestamp is within acceptable skew
106
+ */
107
+ abstract isWithinSkew(timestamp: number, skewSeconds: number): boolean;
108
+ /**
109
+ * Check if something has expired
110
+ */
111
+ abstract hasExpired(expiresAt: number): boolean;
112
+ /**
113
+ * Calculate expiration timestamp
114
+ */
115
+ abstract calculateExpiry(ttlSeconds: number): number;
116
+ }
117
+ /**
118
+ * Fetch provider for network operations
119
+ */
120
+ export declare abstract class FetchProvider {
121
+ /**
122
+ * Resolve a DID document
123
+ */
124
+ abstract resolveDID(did: string): Promise<any>;
125
+ /**
126
+ * Fetch status list for credentials
127
+ */
128
+ abstract fetchStatusList(url: string): Promise<any>;
129
+ /**
130
+ * Fetch delegation chain
131
+ */
132
+ abstract fetchDelegationChain(id: string): Promise<any[]>;
133
+ /**
134
+ * Get edge verification data (compact blob for offline verification)
135
+ */
136
+ abstract getEdgeVerificationData(id: string): Promise<any>;
137
+ /**
138
+ * Generic HTTP fetch
139
+ */
140
+ abstract fetch(url: string, options?: any): Promise<Response>;
141
+ }
142
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/types/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /**
3
+ * Provider interfaces for platform-specific implementations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FetchProvider = exports.ClockProvider = exports.NonceCacheProvider = exports.StorageProvider = exports.IdentityProvider = exports.CryptoProvider = void 0;
7
+ /**
8
+ * Abstract crypto provider for platform-specific crypto operations
9
+ */
10
+ class CryptoProvider {
11
+ }
12
+ exports.CryptoProvider = CryptoProvider;
13
+ /**
14
+ * Abstract identity provider for platform-specific identity storage
15
+ */
16
+ class IdentityProvider {
17
+ }
18
+ exports.IdentityProvider = IdentityProvider;
19
+ /**
20
+ * Abstract storage provider for general key-value storage
21
+ */
22
+ class StorageProvider {
23
+ }
24
+ exports.StorageProvider = StorageProvider;
25
+ /**
26
+ * Nonce cache provider for replay attack prevention
27
+ */
28
+ class NonceCacheProvider {
29
+ }
30
+ exports.NonceCacheProvider = NonceCacheProvider;
31
+ /**
32
+ * Clock provider for time-based operations
33
+ */
34
+ class ClockProvider {
35
+ }
36
+ exports.ClockProvider = ClockProvider;
37
+ /**
38
+ * Fetch provider for network operations
39
+ */
40
+ class FetchProvider {
41
+ }
42
+ exports.FetchProvider = FetchProvider;
43
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/types/providers.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAIH;;GAEG;AACH,MAAsB,cAAc;CAoBnC;AApBD,wCAoBC;AAED;;GAEG;AACH,MAAsB,gBAAgB;CAoBrC;AApBD,4CAoBC;AAED;;GAEG;AACH,MAAsB,eAAe;CAoBpC;AApBD,0CAoBC;AAED;;GAEG;AACH,MAAsB,kBAAkB;CAyBvC;AAzBD,gDAyBC;AAED;;GAEG;AACH,MAAsB,aAAa;CAoBlC;AApBD,sCAoBC;AAED;;GAEG;AACH,MAAsB,aAAa;CAyBlC;AAzBD,sCAyBC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Credential and Delegation verification interfaces
3
+ */
4
+ import { ProofEngine } from "../proof/proof-engine";
5
+ import { FetchProvider, ClockProvider } from "../types/providers";
6
+ /**
7
+ * Credential status
8
+ */
9
+ export interface CredentialStatus {
10
+ revoked: boolean;
11
+ suspended?: boolean;
12
+ statusListIndex?: number;
13
+ statusListCredential?: string;
14
+ checkedAt: number;
15
+ }
16
+ /**
17
+ * Delegation chain entry
18
+ */
19
+ export interface DelegationEntry {
20
+ id: string;
21
+ delegator: string;
22
+ delegate: string;
23
+ scope: string[];
24
+ constraints?: any;
25
+ credentialId?: string;
26
+ parentId?: string;
27
+ depth: number;
28
+ createdAt: number;
29
+ expiresAt?: number;
30
+ }
31
+ /**
32
+ * Verification options
33
+ */
34
+ export interface VerificationOptions {
35
+ verifyCredential?: boolean;
36
+ checkRevocation?: boolean;
37
+ maxChainDepth?: number;
38
+ allowExpired?: boolean;
39
+ }
40
+ /**
41
+ * Verification result
42
+ */
43
+ export interface VerificationResult {
44
+ valid: boolean;
45
+ errors?: string[];
46
+ warnings?: string[];
47
+ credentialStatus?: CredentialStatus;
48
+ delegationChain?: DelegationEntry[];
49
+ }
50
+ /**
51
+ * Credential verifier interface
52
+ */
53
+ export declare abstract class CredentialVerifier {
54
+ protected proofEngine: ProofEngine;
55
+ protected fetchProvider: FetchProvider;
56
+ protected clockProvider: ClockProvider;
57
+ constructor(proofEngine: ProofEngine, fetchProvider: FetchProvider, clockProvider: ClockProvider);
58
+ /**
59
+ * Verify a verifiable credential
60
+ */
61
+ abstract verifyCredential(credential: any, options?: VerificationOptions): Promise<VerificationResult>;
62
+ /**
63
+ * Check credential status (revocation, suspension)
64
+ */
65
+ abstract checkCredentialStatus(credentialId: string): Promise<CredentialStatus>;
66
+ /**
67
+ * Stage-1 verification (status/expiry - no network)
68
+ */
69
+ abstract verifyOffline(credential: any): Promise<VerificationResult>;
70
+ /**
71
+ * Stage-2 verification (signature + credential - may use network)
72
+ */
73
+ abstract verifyOnline(credential: any, options?: VerificationOptions): Promise<VerificationResult>;
74
+ }
75
+ /**
76
+ * Delegation registry interface
77
+ */
78
+ export declare abstract class DelegationRegistry {
79
+ protected fetchProvider: FetchProvider;
80
+ protected clockProvider: ClockProvider;
81
+ constructor(fetchProvider: FetchProvider, clockProvider: ClockProvider);
82
+ /**
83
+ * Verify delegation with optional credential verification
84
+ */
85
+ abstract verifyDelegation(delegationId: string, options?: VerificationOptions): Promise<VerificationResult>;
86
+ /**
87
+ * Get delegation chain
88
+ */
89
+ abstract getDelegationChain(delegationId: string): Promise<DelegationEntry[]>;
90
+ /**
91
+ * Check if any link in chain is revoked
92
+ */
93
+ abstract checkChainRevocation(chain: DelegationEntry[]): Promise<boolean>;
94
+ /**
95
+ * Validate chain depth
96
+ */
97
+ abstract validateChainDepth(chain: DelegationEntry[], maxDepth: number): boolean;
98
+ /**
99
+ * Register new delegation
100
+ */
101
+ abstract registerDelegation(delegation: DelegationEntry): Promise<string>;
102
+ /**
103
+ * Revoke delegation (and all descendants)
104
+ */
105
+ abstract revokeDelegation(delegationId: string): Promise<void>;
106
+ }
107
+ /**
108
+ * Progressive verification helper
109
+ */
110
+ export declare class ProgressiveVerifier {
111
+ private credentialVerifier;
112
+ private delegationRegistry;
113
+ constructor(credentialVerifier: CredentialVerifier, delegationRegistry: DelegationRegistry);
114
+ /**
115
+ * Perform progressive verification
116
+ * Stage-1: Offline checks (expiry, basic validation)
117
+ * Stage-2: Online checks (signature, credential, revocation)
118
+ */
119
+ verifyProgressive(data: any, options?: VerificationOptions): Promise<VerificationResult>;
120
+ /**
121
+ * Get edge verification data for offline verification
122
+ */
123
+ getEdgeVerificationData(id: string): Promise<any>;
124
+ }
125
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/verification/interfaces.ts"],"names":[],"mappings":"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"}