@kya-os/mcp-i-core 1.1.14-canary.1 → 1.2.1-canary.1
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.
- package/dist/__tests__/utils/mock-providers.d.ts +5 -3
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
- package/dist/__tests__/utils/mock-providers.js +23 -12
- package/dist/__tests__/utils/mock-providers.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/base.d.ts +18 -3
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +5 -1
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/memory.d.ts +2 -2
- package/dist/providers/memory.d.ts.map +1 -1
- package/dist/providers/memory.js +9 -5
- package/dist/providers/memory.js.map +1 -1
- package/dist/runtime/base.d.ts +26 -1
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +112 -7
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/access-control.service.d.ts +21 -0
- package/dist/services/access-control.service.d.ts.map +1 -1
- package/dist/services/access-control.service.js +333 -9
- package/dist/services/access-control.service.js.map +1 -1
- package/dist/services/proof-verifier.d.ts +1 -1
- package/dist/services/proof-verifier.d.ts.map +1 -1
- package/dist/services/proof-verifier.js +15 -14
- package/dist/services/proof-verifier.js.map +1 -1
- package/dist/services/storage.service.d.ts +116 -0
- package/dist/services/storage.service.d.ts.map +1 -0
- package/dist/services/storage.service.js +411 -0
- package/dist/services/storage.service.js.map +1 -0
- package/dist/utils/storage-keys.d.ts +1 -0
- package/dist/utils/storage-keys.d.ts.map +1 -1
- package/dist/utils/storage-keys.js.map +1 -1
- package/package.json +3 -3
- package/dist/compliance/schema-verifier-v2.d.ts +0 -110
- package/dist/compliance/schema-verifier-v2.d.ts.map +0 -1
- package/dist/compliance/schema-verifier-v2.js +0 -510
- package/dist/compliance/schema-verifier-v2.js.map +0 -1
- package/dist/did/resolver.d.ts +0 -92
- package/dist/did/resolver.d.ts.map +0 -1
- package/dist/did/resolver.js +0 -203
- package/dist/did/resolver.js.map +0 -1
- package/dist/proof/proof-engine.d.ts +0 -89
- package/dist/proof/proof-engine.d.ts.map +0 -1
- package/dist/proof/proof-engine.js +0 -249
- package/dist/proof/proof-engine.js.map +0 -1
- package/dist/runtime/base-v2.d.ts +0 -117
- package/dist/runtime/base-v2.d.ts.map +0 -1
- package/dist/runtime/base-v2.js +0 -328
- package/dist/runtime/base-v2.js.map +0 -1
- package/dist/types/providers.d.ts +0 -142
- package/dist/types/providers.d.ts.map +0 -1
- package/dist/types/providers.js +0 -43
- package/dist/types/providers.js.map +0 -1
- package/dist/verification/interfaces.d.ts +0 -125
- package/dist/verification/interfaces.d.ts.map +0 -1
- package/dist/verification/interfaces.js +0 -101
- package/dist/verification/interfaces.js.map +0 -1
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* These mock implementations allow controlled testing of the runtime
|
|
5
5
|
* and other components that depend on providers.
|
|
6
6
|
*/
|
|
7
|
+
import { vi } from 'vitest';
|
|
7
8
|
import { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, AgentIdentity } from '../../providers/base';
|
|
8
9
|
/**
|
|
9
10
|
* Mock Crypto Provider
|
|
@@ -37,13 +38,14 @@ export declare class MockFetchProvider extends FetchProvider {
|
|
|
37
38
|
private didDocuments;
|
|
38
39
|
private statusLists;
|
|
39
40
|
private delegationChains;
|
|
41
|
+
fetch: ReturnType<typeof vi.fn>;
|
|
42
|
+
constructor();
|
|
40
43
|
setDIDDocument(did: string, doc: any): void;
|
|
41
44
|
setStatusList(url: string, list: any): void;
|
|
42
45
|
setDelegationChain(id: string, chain: any[]): void;
|
|
43
46
|
resolveDID(did: string): Promise<any>;
|
|
44
47
|
fetchStatusList(url: string): Promise<any>;
|
|
45
48
|
fetchDelegationChain(id: string): Promise<any[]>;
|
|
46
|
-
fetch(url: string, options?: any): Promise<Response>;
|
|
47
49
|
}
|
|
48
50
|
/**
|
|
49
51
|
* Mock Storage Provider
|
|
@@ -66,8 +68,8 @@ export declare class MockNonceCacheProvider extends NonceCacheProvider {
|
|
|
66
68
|
destroyCalled: boolean;
|
|
67
69
|
private clock?;
|
|
68
70
|
setClock(clock: ClockProvider): void;
|
|
69
|
-
has(nonce: string): Promise<boolean>;
|
|
70
|
-
add(nonce: string,
|
|
71
|
+
has(nonce: string, agentDid?: string): Promise<boolean>;
|
|
72
|
+
add(nonce: string, ttlSeconds: number, agentDid?: string): Promise<void>;
|
|
71
73
|
cleanup(): Promise<void>;
|
|
72
74
|
destroy(): Promise<void>;
|
|
73
75
|
clear(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-providers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/mock-providers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IAC9C,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK/D,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpF,eAAe,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBrE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAK3C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAOvD;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhC,GAAG,IAAI,MAAM;IAIb,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAK7D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI3C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAGlC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,gBAAgB,CAAiC;
|
|
1
|
+
{"version":3,"file":"mock-providers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/mock-providers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IAC9C,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK/D,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMpF,eAAe,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBrE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAK3C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAOvD;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhC,GAAG,IAAI,MAAM;IAIb,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAK7D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI3C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAGlC;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,gBAAgB,CAAiC;IAClD,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;;IAevC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAI3C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAI3C,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAQrC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ1C,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAOvD;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,OAAO,CAAC,KAAK,CAAkC;IAEzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9C,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,OAAO,CAAC,MAAM,CAAkC;IACzC,aAAa,UAAS;IACtB,aAAa,UAAS;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAgB;IAE9B,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAI9B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcvD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,OAAO,CAAC,QAAQ,CAAC,CAAgB;IAC1B,gBAAgB,UAAS;IACzB,oBAAoB,UAAS;IACpC,OAAO,CAAC,WAAW,CAAK;gBAEZ,QAAQ,CAAC,EAAE,aAAa;IAK9B,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAerC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAepC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;CAG3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;EAmBlC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.MockIdentityProvider = exports.MockNonceCacheProvider = exports.MockStorageProvider = exports.MockFetchProvider = exports.MockClockProvider = exports.MockCryptoProvider = void 0;
|
|
10
10
|
exports.createMockProviders = createMockProviders;
|
|
11
|
+
const vitest_1 = require("vitest");
|
|
11
12
|
const base_1 = require("../../providers/base");
|
|
12
13
|
/**
|
|
13
14
|
* Mock Crypto Provider
|
|
@@ -88,6 +89,18 @@ class MockFetchProvider extends base_1.FetchProvider {
|
|
|
88
89
|
didDocuments = new Map();
|
|
89
90
|
statusLists = new Map();
|
|
90
91
|
delegationChains = new Map();
|
|
92
|
+
fetch;
|
|
93
|
+
constructor() {
|
|
94
|
+
super();
|
|
95
|
+
// Initialize fetch as a vi.fn() in constructor to ensure it's always mockable
|
|
96
|
+
this.fetch = vitest_1.vi.fn(async (url, options) => {
|
|
97
|
+
// Simple mock Response
|
|
98
|
+
return new Response(JSON.stringify({ url, options }), {
|
|
99
|
+
status: 200,
|
|
100
|
+
headers: { 'Content-Type': 'application/json' }
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
91
104
|
// Test helpers
|
|
92
105
|
setDIDDocument(did, doc) {
|
|
93
106
|
this.didDocuments.set(did, doc);
|
|
@@ -119,13 +132,6 @@ class MockFetchProvider extends base_1.FetchProvider {
|
|
|
119
132
|
}
|
|
120
133
|
return chain;
|
|
121
134
|
}
|
|
122
|
-
async fetch(url, options) {
|
|
123
|
-
// Simple mock Response
|
|
124
|
-
return new Response(JSON.stringify({ url, options }), {
|
|
125
|
-
status: 200,
|
|
126
|
-
headers: { 'Content-Type': 'application/json' }
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
135
|
}
|
|
130
136
|
exports.MockFetchProvider = MockFetchProvider;
|
|
131
137
|
/**
|
|
@@ -169,19 +175,24 @@ class MockNonceCacheProvider extends base_1.NonceCacheProvider {
|
|
|
169
175
|
setClock(clock) {
|
|
170
176
|
this.clock = clock;
|
|
171
177
|
}
|
|
172
|
-
async has(nonce) {
|
|
173
|
-
const
|
|
178
|
+
async has(nonce, agentDid) {
|
|
179
|
+
const key = agentDid ? `nonce:${agentDid}:${nonce}` : `nonce:${nonce}`;
|
|
180
|
+
const expiry = this.nonces.get(key);
|
|
174
181
|
if (!expiry)
|
|
175
182
|
return false;
|
|
176
183
|
const now = this.clock ? this.clock.now() : Date.now();
|
|
177
184
|
if (now > expiry) {
|
|
178
|
-
this.nonces.delete(
|
|
185
|
+
this.nonces.delete(key);
|
|
179
186
|
return false;
|
|
180
187
|
}
|
|
181
188
|
return true;
|
|
182
189
|
}
|
|
183
|
-
async add(nonce,
|
|
184
|
-
|
|
190
|
+
async add(nonce, ttlSeconds, agentDid) {
|
|
191
|
+
const key = agentDid ? `nonce:${agentDid}:${nonce}` : `nonce:${nonce}`;
|
|
192
|
+
// Convert TTL seconds to absolute expiration timestamp for storage
|
|
193
|
+
const now = this.clock ? this.clock.now() : Date.now();
|
|
194
|
+
const expiresAt = now + (ttlSeconds * 1000);
|
|
195
|
+
this.nonces.set(key, expiresAt);
|
|
185
196
|
}
|
|
186
197
|
async cleanup() {
|
|
187
198
|
this.cleanupCalled = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-providers.js","sourceRoot":"","sources":["../../../src/__tests__/utils/mock-providers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"mock-providers.js","sourceRoot":"","sources":["../../../src/__tests__/utils/mock-providers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
export { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, type AgentIdentity, } from "./providers/base";
|
|
8
8
|
export { MemoryStorageProvider, MemoryNonceCacheProvider, MemoryIdentityProvider, } from "./providers/memory";
|
|
9
9
|
export { MCPIRuntimeBase } from "./runtime/base";
|
|
10
|
+
export type { RuntimeWithAccessControl } from "./runtime/base";
|
|
10
11
|
export * from "./utils";
|
|
11
12
|
export { ToolProtectionService } from "./services/tool-protection.service";
|
|
12
13
|
export { CryptoService } from "./services/crypto.service";
|
|
@@ -15,6 +16,8 @@ export { ProofVerifier } from "./services/proof-verifier";
|
|
|
15
16
|
export type { ProofVerificationResult, ProofVerifierConfig, } from "./services/proof-verifier";
|
|
16
17
|
export { AccessControlApiService } from "./services/access-control.service";
|
|
17
18
|
export type { AccessControlApiServiceConfig, AccessControlApiServiceMetrics, } from "./services/access-control.service";
|
|
19
|
+
export { createStorageProviders, StorageKeyHelpers, migrateLegacyKeys, } from "./services/storage.service";
|
|
20
|
+
export type { StorageServiceConfig, StorageProviders, } from "./services/storage.service";
|
|
18
21
|
export { ProofVerificationError, PROOF_VERIFICATION_ERROR_CODES, createProofVerificationError, } from "./services/errors";
|
|
19
22
|
export type { ProofVerificationErrorCode } from "./services/errors";
|
|
20
23
|
export { ToolProtectionCache, InMemoryToolProtectionCache, NoOpToolProtectionCache, } from "./cache/tool-protection-cache";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
20
20
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.canonicalizeJSON = exports.getSchemaStats = exports.getCriticalSchemas = exports.getSchemaById = exports.getSchemasByCategory = exports.getAllSchemas = exports.SCHEMA_REGISTRY = exports.createSchemaVerifier = exports.SchemaVerifier = exports.MemoryDelegationGraphStorage = exports.MemoryStatusListStorage = exports.createCascadingRevocationManager = exports.CascadingRevocationManager = exports.createDelegationGraph = exports.DelegationGraphManager = exports.isIndexSet = exports.BitstringManager = exports.createStatusListManager = exports.StatusList2021Manager = exports.createDelegationVerifier = exports.DelegationCredentialVerifier = exports.createDelegationIssuer = exports.DelegationCredentialIssuer = exports.DelegationRequiredError = exports.NoOpToolProtectionCache = exports.InMemoryToolProtectionCache = exports.createProofVerificationError = exports.PROOF_VERIFICATION_ERROR_CODES = exports.ProofVerificationError = exports.AccessControlApiService = exports.ProofVerifier = exports.CryptoService = exports.ToolProtectionService = exports.MCPIRuntimeBase = exports.MemoryIdentityProvider = exports.MemoryNonceCacheProvider = exports.MemoryStorageProvider = exports.IdentityProvider = exports.NonceCacheProvider = exports.StorageProvider = exports.FetchProvider = exports.ClockProvider = exports.CryptoProvider = void 0;
|
|
23
|
+
exports.canonicalizeJSON = exports.getSchemaStats = exports.getCriticalSchemas = exports.getSchemaById = exports.getSchemasByCategory = exports.getAllSchemas = exports.SCHEMA_REGISTRY = exports.createSchemaVerifier = exports.SchemaVerifier = exports.MemoryDelegationGraphStorage = exports.MemoryStatusListStorage = exports.createCascadingRevocationManager = exports.CascadingRevocationManager = exports.createDelegationGraph = exports.DelegationGraphManager = exports.isIndexSet = exports.BitstringManager = exports.createStatusListManager = exports.StatusList2021Manager = exports.createDelegationVerifier = exports.DelegationCredentialVerifier = exports.createDelegationIssuer = exports.DelegationCredentialIssuer = exports.DelegationRequiredError = exports.NoOpToolProtectionCache = exports.InMemoryToolProtectionCache = exports.createProofVerificationError = exports.PROOF_VERIFICATION_ERROR_CODES = exports.ProofVerificationError = exports.migrateLegacyKeys = exports.StorageKeyHelpers = exports.createStorageProviders = exports.AccessControlApiService = exports.ProofVerifier = exports.CryptoService = exports.ToolProtectionService = exports.MCPIRuntimeBase = exports.MemoryIdentityProvider = exports.MemoryNonceCacheProvider = exports.MemoryStorageProvider = exports.IdentityProvider = exports.NonceCacheProvider = exports.StorageProvider = exports.FetchProvider = exports.ClockProvider = exports.CryptoProvider = void 0;
|
|
24
24
|
// Base providers
|
|
25
25
|
var base_1 = require("./providers/base");
|
|
26
26
|
Object.defineProperty(exports, "CryptoProvider", { enumerable: true, get: function () { return base_1.CryptoProvider; } });
|
|
@@ -51,6 +51,11 @@ Object.defineProperty(exports, "ProofVerifier", { enumerable: true, get: functio
|
|
|
51
51
|
// Access Control API Service (stub for Phase 3)
|
|
52
52
|
var access_control_service_1 = require("./services/access-control.service");
|
|
53
53
|
Object.defineProperty(exports, "AccessControlApiService", { enumerable: true, get: function () { return access_control_service_1.AccessControlApiService; } });
|
|
54
|
+
// Storage Service Factory
|
|
55
|
+
var storage_service_1 = require("./services/storage.service");
|
|
56
|
+
Object.defineProperty(exports, "createStorageProviders", { enumerable: true, get: function () { return storage_service_1.createStorageProviders; } });
|
|
57
|
+
Object.defineProperty(exports, "StorageKeyHelpers", { enumerable: true, get: function () { return storage_service_1.StorageKeyHelpers; } });
|
|
58
|
+
Object.defineProperty(exports, "migrateLegacyKeys", { enumerable: true, get: function () { return storage_service_1.migrateLegacyKeys; } });
|
|
54
59
|
// Proof Verification Errors
|
|
55
60
|
var errors_1 = require("./services/errors");
|
|
56
61
|
Object.defineProperty(exports, "ProofVerificationError", { enumerable: true, get: function () { return errors_1.ProofVerificationError; } });
|
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,uCAAiD;AAAxC,uGAAA,eAAe,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,uCAAiD;AAAxC,uGAAA,eAAe,OAAA;AAGxB,YAAY;AACZ,0CAAwB;AACxB,kBAAkB;AAClB,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAE9B,iBAAiB;AACjB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA;AAItB,yBAAyB;AACzB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA;AAOtB,gDAAgD;AAChD,4EAA4E;AAAnE,iIAAA,uBAAuB,OAAA;AAOhC,0BAA0B;AAC1B,8DAIoC;AAHlC,yHAAA,sBAAsB,OAAA;AACtB,oHAAA,iBAAiB,OAAA;AACjB,oHAAA,iBAAiB,OAAA;AAQnB,4BAA4B;AAC5B,4CAI2B;AAHzB,gHAAA,sBAAsB,OAAA;AACtB,wHAAA,8BAA8B,OAAA;AAC9B,sHAAA,4BAA4B,OAAA;AAK9B,uEAIuC;AAFrC,oIAAA,2BAA2B,OAAA;AAC3B,gIAAA,uBAAuB,OAAA;AASzB,2DAAkE;AAAzD,0HAAA,uBAAuB,OAAA;AAEhC,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,4FAAyF;AAAhF,oIAAA,uBAAuB,OAAA;AAEhC,kFAAyF;AAAhF,oIAAA,4BAA4B,OAAA;AAErC,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"}
|
package/dist/providers/base.d.ts
CHANGED
|
@@ -47,11 +47,26 @@ export declare abstract class StorageProvider {
|
|
|
47
47
|
abstract list(prefix?: string): Promise<string[]>;
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
* Nonce cache provider
|
|
50
|
+
* Nonce cache provider
|
|
51
|
+
* Handles replay prevention
|
|
52
|
+
*
|
|
53
|
+
* Nonces should be scoped per agent to prevent cross-agent replay attacks.
|
|
54
|
+
* When agentDid is provided, implementations should use agent-scoped keys.
|
|
51
55
|
*/
|
|
52
56
|
export declare abstract class NonceCacheProvider {
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Check if a nonce has been used
|
|
59
|
+
* @param nonce - The nonce to check
|
|
60
|
+
* @param agentDid - Optional agent DID for scoping (prevents cross-agent replay attacks)
|
|
61
|
+
*/
|
|
62
|
+
abstract has(nonce: string, agentDid?: string): Promise<boolean>;
|
|
63
|
+
/**
|
|
64
|
+
* Add a nonce to the cache
|
|
65
|
+
* @param nonce - The nonce to cache
|
|
66
|
+
* @param ttlSeconds - Time to live in seconds (callers now pass TTL, not absolute timestamp)
|
|
67
|
+
* @param agentDid - Optional agent DID for scoping (prevents cross-agent replay attacks)
|
|
68
|
+
*/
|
|
69
|
+
abstract add(nonce: string, ttlSeconds: number, agentDid?: string): Promise<void>;
|
|
55
70
|
abstract cleanup(): Promise<void>;
|
|
56
71
|
abstract destroy(): Promise<void>;
|
|
57
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,8BAAsB,cAAc;IAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IACxE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7F,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAC1D;AAED;;GAEG;AACH,8BAAsB,aAAa;IACjC,QAAQ,CAAC,GAAG,IAAI,MAAM;IACtB,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IACtE,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAC/C,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IACpD,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAC3C;AAED;;GAEG;AACH,8BAAsB,aAAa;IACjC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IACnD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAC9D;AAED;;GAEG;AACH,8BAAsB,eAAe;IACnC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvD,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAClD;AAED
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/base.js
CHANGED
|
@@ -32,7 +32,11 @@ class StorageProvider {
|
|
|
32
32
|
}
|
|
33
33
|
exports.StorageProvider = StorageProvider;
|
|
34
34
|
/**
|
|
35
|
-
* Nonce cache provider
|
|
35
|
+
* Nonce cache provider
|
|
36
|
+
* Handles replay prevention
|
|
37
|
+
*
|
|
38
|
+
* Nonces should be scoped per agent to prevent cross-agent replay attacks.
|
|
39
|
+
* When agentDid is provided, implementations should use agent-scoped keys.
|
|
36
40
|
*/
|
|
37
41
|
class NonceCacheProvider {
|
|
38
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACH,MAAsB,cAAc;CAMnC;AAND,wCAMC;AAED;;GAEG;AACH,MAAsB,aAAa;CAMlC;AAND,sCAMC;AAED;;GAEG;AACH,MAAsB,aAAa;CAKlC;AALD,sCAKC;AAED;;GAEG;AACH,MAAsB,eAAe;CAMpC;AAND,0CAMC;AAED
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;GAEG;AACH,MAAsB,cAAc;CAMnC;AAND,wCAMC;AAED;;GAEG;AACH,MAAsB,aAAa;CAMlC;AAND,sCAMC;AAED;;GAEG;AACH,MAAsB,aAAa;CAKlC;AALD,sCAKC;AAED;;GAEG;AACH,MAAsB,eAAe;CAMpC;AAND,0CAMC;AAED;;;;;;GAMG;AACH,MAAsB,kBAAkB;CAkBvC;AAlBD,gDAkBC;AAeD,MAAsB,gBAAgB;CAKrC;AALD,4CAKC"}
|
|
@@ -20,8 +20,8 @@ export declare class MemoryStorageProvider extends StorageProvider {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare class MemoryNonceCacheProvider extends NonceCacheProvider {
|
|
22
22
|
private nonces;
|
|
23
|
-
has(nonce: string): Promise<boolean>;
|
|
24
|
-
add(nonce: string,
|
|
23
|
+
has(nonce: string, agentDid?: string): Promise<boolean>;
|
|
24
|
+
add(nonce: string, ttlSeconds: number, agentDid?: string): Promise<void>;
|
|
25
25
|
cleanup(): Promise<void>;
|
|
26
26
|
destroy(): Promise<void>;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,KAAK,CAAkC;IAEzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAO/C;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,OAAO,CAAC,MAAM,CAAkC;IAE1C,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACd,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,KAAK,CAAkC;IAEzC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAO/C;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,OAAO,CAAC,MAAM,CAAkC;IAE1C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAavD,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC1D,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAM;gBAEhB,cAAc,CAAC,EAAE,GAAG;IAK1B,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAOrC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAKpC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAIvB,gBAAgB;IAkB9B,OAAO,CAAC,wBAAwB;CAOjC"}
|
package/dist/providers/memory.js
CHANGED
|
@@ -38,18 +38,22 @@ exports.MemoryStorageProvider = MemoryStorageProvider;
|
|
|
38
38
|
*/
|
|
39
39
|
class MemoryNonceCacheProvider extends base_1.NonceCacheProvider {
|
|
40
40
|
nonces = new Map();
|
|
41
|
-
async has(nonce) {
|
|
42
|
-
const
|
|
41
|
+
async has(nonce, agentDid) {
|
|
42
|
+
const key = agentDid ? `nonce:${agentDid}:${nonce}` : `nonce:${nonce}`;
|
|
43
|
+
const expiry = this.nonces.get(key);
|
|
43
44
|
if (!expiry)
|
|
44
45
|
return false;
|
|
45
46
|
if (Date.now() > expiry) {
|
|
46
|
-
this.nonces.delete(
|
|
47
|
+
this.nonces.delete(key);
|
|
47
48
|
return false;
|
|
48
49
|
}
|
|
49
50
|
return true;
|
|
50
51
|
}
|
|
51
|
-
async add(nonce,
|
|
52
|
-
|
|
52
|
+
async add(nonce, ttlSeconds, agentDid) {
|
|
53
|
+
const key = agentDid ? `nonce:${agentDid}:${nonce}` : `nonce:${nonce}`;
|
|
54
|
+
// Convert TTL seconds to absolute expiration timestamp for storage
|
|
55
|
+
const expiresAt = Date.now() + (ttlSeconds * 1000);
|
|
56
|
+
this.nonces.set(key, expiresAt);
|
|
53
57
|
}
|
|
54
58
|
async cleanup() {
|
|
55
59
|
const now = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iCAKgB;AAEhB;;GAEG;AACH,MAAa,qBAAsB,SAAQ,sBAAe;IAChD,KAAK,GAAwB,IAAI,GAAG,EAAE,CAAC;IAE/C,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA1BD,sDA0BC;AAED;;GAEG;AACH,MAAa,wBAAyB,SAAQ,yBAAkB;IACtD,MAAM,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEhD,KAAK,CAAC,GAAG,CAAC,KAAa;
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/base.d.ts
CHANGED
|
@@ -7,8 +7,16 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, AgentIdentity } from "../providers/base";
|
|
9
9
|
import { type Ed25519JWK } from "../services/crypto.service.js";
|
|
10
|
+
import { ProofVerifier } from "../services/proof-verifier.js";
|
|
10
11
|
import type { MCPIdentity, WellKnownConfig, WellKnownResponse } from "@kya-os/contracts/well-known";
|
|
11
12
|
import type { ProviderRuntimeConfig } from "../config";
|
|
13
|
+
/**
|
|
14
|
+
* Interface for runtime instances that have AccessControlApiService available
|
|
15
|
+
* This allows type-safe access to the access control service without using `as any`
|
|
16
|
+
*/
|
|
17
|
+
export interface RuntimeWithAccessControl {
|
|
18
|
+
accessControlService?: import("../services/access-control.service.js").AccessControlApiService;
|
|
19
|
+
}
|
|
12
20
|
export declare class MCPIRuntimeBase {
|
|
13
21
|
protected crypto: CryptoProvider;
|
|
14
22
|
protected clock: ClockProvider;
|
|
@@ -23,6 +31,7 @@ export declare class MCPIRuntimeBase {
|
|
|
23
31
|
private userDidManager?;
|
|
24
32
|
private interceptedCalls;
|
|
25
33
|
private cryptoService?;
|
|
34
|
+
protected proofVerifier?: ProofVerifier;
|
|
26
35
|
constructor(config: ProviderRuntimeConfig);
|
|
27
36
|
/**
|
|
28
37
|
* Initialize the runtime
|
|
@@ -93,8 +102,20 @@ export declare class MCPIRuntimeBase {
|
|
|
93
102
|
createProof(data: any, session?: any): Promise<any>;
|
|
94
103
|
/**
|
|
95
104
|
* Verify a proof
|
|
105
|
+
*
|
|
106
|
+
* Supports both old format (data, proof) and new DetachedProof format.
|
|
107
|
+
* When DetachedProof format is used, ProofVerifier is used if available.
|
|
108
|
+
*
|
|
109
|
+
* @param dataOrProof - Either raw data (old format) or DetachedProof (new format)
|
|
110
|
+
* @param proofOrSession - Either proof object (old format) or session context (new format)
|
|
111
|
+
* @returns true if proof is valid, false otherwise
|
|
96
112
|
*/
|
|
97
|
-
verifyProof(
|
|
113
|
+
verifyProof(dataOrProof: any, proofOrSession?: any): Promise<boolean>;
|
|
114
|
+
/**
|
|
115
|
+
* Legacy proof verification (backward compatibility)
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
private verifyProofLegacy;
|
|
98
119
|
/**
|
|
99
120
|
* Verify a JWS proof (full compact JWS format: header.payload.signature)
|
|
100
121
|
*
|
|
@@ -137,6 +158,10 @@ export declare class MCPIRuntimeBase {
|
|
|
137
158
|
private logAudit;
|
|
138
159
|
private createDIDDocument;
|
|
139
160
|
private extractPublicKey;
|
|
161
|
+
/**
|
|
162
|
+
* Extract public key JWK from DID document
|
|
163
|
+
*/
|
|
164
|
+
private extractPublicKeyJwk;
|
|
140
165
|
private bytesToBase64;
|
|
141
166
|
private base64ToBytes;
|
|
142
167
|
private bytesToHex;
|
|
@@ -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;AAE3B,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAGV,WAAW,EACX,eAAe,EACf,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAIvD,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,qBAAqB,CAAC;IACxC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAC,CAAM;IACxB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,aAAa,CAAC,CAAgB;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/base.js
CHANGED
|
@@ -25,6 +25,7 @@ class MCPIRuntimeBase {
|
|
|
25
25
|
userDidManager;
|
|
26
26
|
interceptedCalls = new Map(); // Store intercepted tool calls by resume token
|
|
27
27
|
cryptoService;
|
|
28
|
+
proofVerifier; // Optional ProofVerifier (injected by subclasses)
|
|
28
29
|
constructor(config) {
|
|
29
30
|
this.config = config;
|
|
30
31
|
this.crypto = config.cryptoProvider;
|
|
@@ -104,6 +105,15 @@ class MCPIRuntimeBase {
|
|
|
104
105
|
// Continue without user DID - not critical
|
|
105
106
|
}
|
|
106
107
|
}
|
|
108
|
+
// Extract client info if available
|
|
109
|
+
const clientInfo = request.clientInfo
|
|
110
|
+
? {
|
|
111
|
+
name: request.clientInfo.name || "unknown",
|
|
112
|
+
version: request.clientInfo.version,
|
|
113
|
+
platform: request.clientInfo.platform,
|
|
114
|
+
clientId: crypto.randomUUID(), // Generate unique instance ID
|
|
115
|
+
}
|
|
116
|
+
: undefined;
|
|
107
117
|
// Create session
|
|
108
118
|
const session = {
|
|
109
119
|
id: sessionId,
|
|
@@ -114,6 +124,7 @@ class MCPIRuntimeBase {
|
|
|
114
124
|
audience: request.audience,
|
|
115
125
|
createdAt: timestamp,
|
|
116
126
|
expiresAt: this.clock.calculateExpiry((this.config.session?.ttlMinutes || 30) * 60),
|
|
127
|
+
clientInfo, // NEW: Store client information
|
|
117
128
|
};
|
|
118
129
|
this.sessions.set(sessionId, session);
|
|
119
130
|
// Create handshake response
|
|
@@ -335,7 +346,11 @@ class MCPIRuntimeBase {
|
|
|
335
346
|
*/
|
|
336
347
|
async issueNonce(sessionId) {
|
|
337
348
|
const nonce = await this.generateNonce();
|
|
338
|
-
|
|
349
|
+
// Get session to extract agentDid for agent-scoped nonce caching
|
|
350
|
+
const session = this.sessions.get(sessionId);
|
|
351
|
+
const agentDid = session?.agentDid || (await this.getIdentity()).did;
|
|
352
|
+
await this.nonceCache.add(nonce, 300, // 5 minute expiry in seconds
|
|
353
|
+
agentDid // Agent-scoped nonce to prevent cross-agent replay attacks
|
|
339
354
|
);
|
|
340
355
|
return nonce;
|
|
341
356
|
}
|
|
@@ -352,8 +367,10 @@ class MCPIRuntimeBase {
|
|
|
352
367
|
}
|
|
353
368
|
else {
|
|
354
369
|
nonce = await this.generateNonce();
|
|
355
|
-
// Add nonce to cache to prevent replay
|
|
356
|
-
|
|
370
|
+
// Add nonce to cache to prevent replay (agent-scoped to prevent cross-agent replay attacks)
|
|
371
|
+
const agentDid = session?.agentDid || identity.did;
|
|
372
|
+
await this.nonceCache.add(nonce, 300, // 5 minute expiry in seconds
|
|
373
|
+
agentDid // Agent-scoped nonce to prevent cross-agent replay attacks
|
|
357
374
|
);
|
|
358
375
|
}
|
|
359
376
|
const proofData = {
|
|
@@ -377,11 +394,66 @@ class MCPIRuntimeBase {
|
|
|
377
394
|
}
|
|
378
395
|
/**
|
|
379
396
|
* Verify a proof
|
|
397
|
+
*
|
|
398
|
+
* Supports both old format (data, proof) and new DetachedProof format.
|
|
399
|
+
* When DetachedProof format is used, ProofVerifier is used if available.
|
|
400
|
+
*
|
|
401
|
+
* @param dataOrProof - Either raw data (old format) or DetachedProof (new format)
|
|
402
|
+
* @param proofOrSession - Either proof object (old format) or session context (new format)
|
|
403
|
+
* @returns true if proof is valid, false otherwise
|
|
380
404
|
*/
|
|
381
|
-
async verifyProof(
|
|
405
|
+
async verifyProof(dataOrProof, proofOrSession) {
|
|
406
|
+
// Check if first argument is DetachedProof format
|
|
407
|
+
if (dataOrProof &&
|
|
408
|
+
typeof dataOrProof === "object" &&
|
|
409
|
+
"jws" in dataOrProof &&
|
|
410
|
+
"meta" in dataOrProof) {
|
|
411
|
+
// New DetachedProof format
|
|
412
|
+
const detachedProof = dataOrProof;
|
|
413
|
+
const session = proofOrSession;
|
|
414
|
+
// Use ProofVerifier if available
|
|
415
|
+
if (this.proofVerifier) {
|
|
416
|
+
try {
|
|
417
|
+
// Resolve DID to get public key
|
|
418
|
+
const didDoc = await this.fetch.resolveDID(detachedProof.meta.did);
|
|
419
|
+
const publicKeyJwk = this.extractPublicKeyJwk(didDoc, detachedProof.meta.kid);
|
|
420
|
+
if (!publicKeyJwk) {
|
|
421
|
+
console.error("[MCPIRuntimeBase] Failed to extract public key JWK");
|
|
422
|
+
return false;
|
|
423
|
+
}
|
|
424
|
+
// Verify proof using ProofVerifier
|
|
425
|
+
const result = await this.proofVerifier.verifyProof(detachedProof, publicKeyJwk);
|
|
426
|
+
if (result.valid && session) {
|
|
427
|
+
// Store canonical payload in session for detached JWS consumers
|
|
428
|
+
const canonicalPayload = this.proofVerifier.buildCanonicalPayload(detachedProof.meta);
|
|
429
|
+
session.canonicalPayload = canonicalPayload;
|
|
430
|
+
}
|
|
431
|
+
return result.valid;
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
console.error("[MCPIRuntimeBase] Proof verification failed:", error);
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
// Fallback to old verification if ProofVerifier not available
|
|
440
|
+
console.warn("[MCPIRuntimeBase] ProofVerifier not available, using fallback verification");
|
|
441
|
+
return this.verifyProofLegacy(dataOrProof, proofOrSession);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
// Old format (data, proof)
|
|
446
|
+
return this.verifyProofLegacy(dataOrProof, proofOrSession);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Legacy proof verification (backward compatibility)
|
|
451
|
+
* @internal
|
|
452
|
+
*/
|
|
453
|
+
async verifyProofLegacy(data, proof) {
|
|
382
454
|
try {
|
|
383
|
-
// Check nonce hasn't been used
|
|
384
|
-
if (await this.nonceCache.has(proof.nonce)) {
|
|
455
|
+
// Check nonce hasn't been used (scoped to agent DID to prevent cross-agent replay attacks)
|
|
456
|
+
if (await this.nonceCache.has(proof.nonce, proof.did)) {
|
|
385
457
|
return false;
|
|
386
458
|
}
|
|
387
459
|
// Check timestamp is within skew
|
|
@@ -401,7 +473,14 @@ class MCPIRuntimeBase {
|
|
|
401
473
|
};
|
|
402
474
|
const dataBytes = new TextEncoder().encode(JSON.stringify(proofData));
|
|
403
475
|
const signatureBytes = this.base64ToBytes(proof.signature);
|
|
404
|
-
|
|
476
|
+
const isValid = await this.crypto.verify(dataBytes, signatureBytes, publicKey);
|
|
477
|
+
// If signature is valid, add nonce to cache to prevent replay (scoped to agent DID)
|
|
478
|
+
if (isValid) {
|
|
479
|
+
// Pass TTL in seconds, not absolute timestamp
|
|
480
|
+
const ttlSeconds = (this.config.session?.ttlMinutes || 30) * 60; // Convert minutes to seconds
|
|
481
|
+
await this.nonceCache.add(proof.nonce, ttlSeconds, proof.did);
|
|
482
|
+
}
|
|
483
|
+
return isValid;
|
|
405
484
|
}
|
|
406
485
|
catch (error) {
|
|
407
486
|
console.error("Proof verification failed:", error);
|
|
@@ -618,6 +697,32 @@ class MCPIRuntimeBase {
|
|
|
618
697
|
}
|
|
619
698
|
throw new Error("Public key not found in DID document");
|
|
620
699
|
}
|
|
700
|
+
/**
|
|
701
|
+
* Extract public key JWK from DID document
|
|
702
|
+
*/
|
|
703
|
+
extractPublicKeyJwk(didDoc, kid) {
|
|
704
|
+
// Try to find Ed25519 public key matching kid if provided
|
|
705
|
+
const verificationMethod = didDoc.verificationMethod?.find((vm) => {
|
|
706
|
+
const matchesType = vm.type === "Ed25519VerificationKey2020" ||
|
|
707
|
+
vm.type === "JsonWebKey2020";
|
|
708
|
+
const matchesKid = !kid || vm.id === kid || vm.id.endsWith(`#${kid}`);
|
|
709
|
+
return matchesType && matchesKid;
|
|
710
|
+
}) || didDoc.verificationMethod?.[0]; // Fallback to first method
|
|
711
|
+
if (verificationMethod?.publicKeyJwk) {
|
|
712
|
+
const jwk = verificationMethod.publicKeyJwk;
|
|
713
|
+
// Ensure it's Ed25519 format
|
|
714
|
+
if (jwk.kty === "OKP" && jwk.crv === "Ed25519") {
|
|
715
|
+
return jwk;
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
// Fallback: try to convert multibase to JWK (simplified)
|
|
719
|
+
if (verificationMethod?.publicKeyMultibase) {
|
|
720
|
+
// This is a simplified conversion - in production, use proper multibase decoding
|
|
721
|
+
console.warn("[MCPIRuntimeBase] Multibase to JWK conversion not fully implemented");
|
|
722
|
+
return null;
|
|
723
|
+
}
|
|
724
|
+
return null;
|
|
725
|
+
}
|
|
621
726
|
bytesToBase64(bytes) {
|
|
622
727
|
return Buffer.from(bytes).toString("base64");
|
|
623
728
|
}
|