@kya-os/mcp-i-core 1.1.0 → 1.1.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.
Files changed (97) hide show
  1. package/dist/__tests__/utils/mock-providers.d.ts +102 -0
  2. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -0
  3. package/dist/__tests__/utils/mock-providers.js +270 -0
  4. package/dist/__tests__/utils/mock-providers.js.map +1 -0
  5. package/dist/cache/tool-protection-cache.d.ts +73 -0
  6. package/dist/cache/tool-protection-cache.d.ts.map +1 -0
  7. package/dist/cache/tool-protection-cache.js +83 -0
  8. package/dist/cache/tool-protection-cache.js.map +1 -0
  9. package/dist/compliance/index.d.ts +8 -0
  10. package/dist/compliance/index.d.ts.map +1 -0
  11. package/dist/compliance/index.js +24 -0
  12. package/dist/compliance/index.js.map +1 -0
  13. package/dist/compliance/schema-registry.d.ts +50 -0
  14. package/dist/compliance/schema-registry.d.ts.map +1 -0
  15. package/dist/compliance/schema-registry.js +438 -0
  16. package/dist/compliance/schema-registry.js.map +1 -0
  17. package/dist/compliance/schema-verifier-v2.d.ts +110 -0
  18. package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
  19. package/dist/compliance/schema-verifier-v2.js +510 -0
  20. package/dist/compliance/schema-verifier-v2.js.map +1 -0
  21. package/dist/compliance/schema-verifier.d.ts +110 -0
  22. package/dist/compliance/schema-verifier.d.ts.map +1 -0
  23. package/dist/compliance/schema-verifier.js +518 -0
  24. package/dist/compliance/schema-verifier.js.map +1 -0
  25. package/dist/delegation/bitstring.d.ts +139 -0
  26. package/dist/delegation/bitstring.d.ts.map +1 -0
  27. package/dist/delegation/bitstring.js +213 -0
  28. package/dist/delegation/bitstring.js.map +1 -0
  29. package/dist/delegation/cascading-revocation.d.ts +162 -0
  30. package/dist/delegation/cascading-revocation.d.ts.map +1 -0
  31. package/dist/delegation/cascading-revocation.js +263 -0
  32. package/dist/delegation/cascading-revocation.js.map +1 -0
  33. package/dist/delegation/delegation-graph.d.ts +178 -0
  34. package/dist/delegation/delegation-graph.d.ts.map +1 -0
  35. package/dist/delegation/delegation-graph.js +209 -0
  36. package/dist/delegation/delegation-graph.js.map +1 -0
  37. package/dist/delegation/index.d.ts +14 -0
  38. package/dist/delegation/index.d.ts.map +1 -0
  39. package/dist/delegation/index.js +30 -0
  40. package/dist/delegation/index.js.map +1 -0
  41. package/dist/delegation/statuslist-manager.d.ts +148 -0
  42. package/dist/delegation/statuslist-manager.d.ts.map +1 -0
  43. package/dist/delegation/statuslist-manager.js +221 -0
  44. package/dist/delegation/statuslist-manager.js.map +1 -0
  45. package/dist/delegation/storage/index.d.ts +9 -0
  46. package/dist/delegation/storage/index.d.ts.map +1 -0
  47. package/dist/delegation/storage/index.js +25 -0
  48. package/dist/delegation/storage/index.js.map +1 -0
  49. package/dist/delegation/storage/memory-graph-storage.d.ts +70 -0
  50. package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -0
  51. package/dist/delegation/storage/memory-graph-storage.js +149 -0
  52. package/dist/delegation/storage/memory-graph-storage.js.map +1 -0
  53. package/dist/delegation/storage/memory-statuslist-storage.d.ts +49 -0
  54. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -0
  55. package/dist/delegation/storage/memory-statuslist-storage.js +67 -0
  56. package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -0
  57. package/dist/delegation/utils.d.ts +19 -0
  58. package/dist/delegation/utils.d.ts.map +1 -0
  59. package/dist/delegation/utils.js +48 -0
  60. package/dist/delegation/utils.js.map +1 -0
  61. package/dist/delegation/vc-issuer.d.ts +135 -0
  62. package/dist/delegation/vc-issuer.d.ts.map +1 -0
  63. package/dist/delegation/vc-issuer.js +140 -0
  64. package/dist/delegation/vc-issuer.js.map +1 -0
  65. package/dist/delegation/vc-verifier.d.ts +213 -0
  66. package/dist/delegation/vc-verifier.d.ts.map +1 -0
  67. package/dist/delegation/vc-verifier.js +354 -0
  68. package/dist/delegation/vc-verifier.js.map +1 -0
  69. package/dist/index.d.ts +16 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +64 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/providers/base.d.ts +1 -1
  74. package/dist/providers/base.d.ts.map +1 -1
  75. package/dist/providers/memory.js +2 -2
  76. package/dist/providers/memory.js.map +1 -1
  77. package/dist/runtime/base.d.ts +12 -0
  78. package/dist/runtime/base.d.ts.map +1 -1
  79. package/dist/runtime/base.js +96 -2
  80. package/dist/runtime/base.js.map +1 -1
  81. package/dist/services/tool-protection.service.d.ts +55 -0
  82. package/dist/services/tool-protection.service.d.ts.map +1 -0
  83. package/dist/services/tool-protection.service.js +158 -0
  84. package/dist/services/tool-protection.service.js.map +1 -0
  85. package/dist/types/tool-protection.d.ts +103 -0
  86. package/dist/types/tool-protection.d.ts.map +1 -0
  87. package/dist/types/tool-protection.js +41 -0
  88. package/dist/types/tool-protection.js.map +1 -0
  89. package/dist/utils/cors.d.ts +44 -0
  90. package/dist/utils/cors.d.ts.map +1 -0
  91. package/dist/utils/cors.js +71 -0
  92. package/dist/utils/cors.js.map +1 -0
  93. package/dist/utils/index.d.ts +5 -0
  94. package/dist/utils/index.d.ts.map +1 -0
  95. package/dist/utils/index.js +21 -0
  96. package/dist/utils/index.js.map +1 -0
  97. package/package.json +9 -6
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Mock Providers for Testing
3
+ *
4
+ * These mock implementations allow controlled testing of the runtime
5
+ * and other components that depend on providers.
6
+ */
7
+ import { CryptoProvider, ClockProvider, FetchProvider, StorageProvider, NonceCacheProvider, IdentityProvider, AgentIdentity } from '../../providers/base';
8
+ /**
9
+ * Mock Crypto Provider
10
+ */
11
+ export declare class MockCryptoProvider extends CryptoProvider {
12
+ sign(data: Uint8Array, privateKey: string): Promise<Uint8Array>;
13
+ verify(data: Uint8Array, signature: Uint8Array, publicKey: string): Promise<boolean>;
14
+ generateKeyPair(): Promise<{
15
+ privateKey: string;
16
+ publicKey: string;
17
+ }>;
18
+ hash(data: Uint8Array): Promise<Uint8Array>;
19
+ randomBytes(length: number): Promise<Uint8Array>;
20
+ }
21
+ /**
22
+ * Mock Clock Provider
23
+ */
24
+ export declare class MockClockProvider extends ClockProvider {
25
+ private currentTime;
26
+ setTime(timestamp: number): void;
27
+ now(): number;
28
+ isWithinSkew(timestamp: number, skewSeconds: number): boolean;
29
+ hasExpired(expiresAt: number): boolean;
30
+ calculateExpiry(ttlSeconds: number): number;
31
+ format(timestamp: number): string;
32
+ }
33
+ /**
34
+ * Mock Fetch Provider
35
+ */
36
+ export declare class MockFetchProvider extends FetchProvider {
37
+ private didDocuments;
38
+ private statusLists;
39
+ private delegationChains;
40
+ setDIDDocument(did: string, doc: any): void;
41
+ setStatusList(url: string, list: any): void;
42
+ setDelegationChain(id: string, chain: any[]): void;
43
+ resolveDID(did: string): Promise<any>;
44
+ fetchStatusList(url: string): Promise<any>;
45
+ fetchDelegationChain(id: string): Promise<any[]>;
46
+ fetch(url: string, options?: any): Promise<Response>;
47
+ }
48
+ /**
49
+ * Mock Storage Provider
50
+ */
51
+ export declare class MockStorageProvider extends StorageProvider {
52
+ private store;
53
+ get(key: string): Promise<string | null>;
54
+ set(key: string, value: string): Promise<void>;
55
+ delete(key: string): Promise<void>;
56
+ exists(key: string): Promise<boolean>;
57
+ list(prefix?: string): Promise<string[]>;
58
+ clear(): void;
59
+ }
60
+ /**
61
+ * Mock Nonce Cache Provider
62
+ */
63
+ export declare class MockNonceCacheProvider extends NonceCacheProvider {
64
+ private nonces;
65
+ cleanupCalled: boolean;
66
+ destroyCalled: boolean;
67
+ private clock?;
68
+ setClock(clock: ClockProvider): void;
69
+ has(nonce: string): Promise<boolean>;
70
+ add(nonce: string, expiresAt: number): Promise<void>;
71
+ cleanup(): Promise<void>;
72
+ destroy(): Promise<void>;
73
+ clear(): void;
74
+ size(): number;
75
+ }
76
+ /**
77
+ * Mock Identity Provider
78
+ */
79
+ export declare class MockIdentityProvider extends IdentityProvider {
80
+ private identity?;
81
+ rotateKeysCalled: boolean;
82
+ deleteIdentityCalled: boolean;
83
+ private rotateCount;
84
+ constructor(identity?: AgentIdentity);
85
+ getIdentity(): Promise<AgentIdentity>;
86
+ saveIdentity(identity: AgentIdentity): Promise<void>;
87
+ rotateKeys(): Promise<AgentIdentity>;
88
+ deleteIdentity(): Promise<void>;
89
+ setIdentity(identity: AgentIdentity): void;
90
+ }
91
+ /**
92
+ * Create a full set of mock providers for testing
93
+ */
94
+ export declare function createMockProviders(): {
95
+ cryptoProvider: MockCryptoProvider;
96
+ clockProvider: MockClockProvider;
97
+ fetchProvider: MockFetchProvider;
98
+ storageProvider: MockStorageProvider;
99
+ nonceCacheProvider: MockNonceCacheProvider;
100
+ identityProvider: MockIdentityProvider;
101
+ };
102
+ //# sourceMappingURL=mock-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-providers.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/mock-providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ /**
3
+ * Mock Providers for Testing
4
+ *
5
+ * These mock implementations allow controlled testing of the runtime
6
+ * and other components that depend on providers.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MockIdentityProvider = exports.MockNonceCacheProvider = exports.MockStorageProvider = exports.MockFetchProvider = exports.MockClockProvider = exports.MockCryptoProvider = void 0;
10
+ exports.createMockProviders = createMockProviders;
11
+ const base_1 = require("../../providers/base");
12
+ /**
13
+ * Mock Crypto Provider
14
+ */
15
+ class MockCryptoProvider extends base_1.CryptoProvider {
16
+ async sign(data, privateKey) {
17
+ // Simple mock signature
18
+ return new Uint8Array([1, 2, 3, 4, 5]);
19
+ }
20
+ async verify(data, signature, publicKey) {
21
+ // Simple verification - check signature matches expected pattern
22
+ // In real implementation, this would verify cryptographic signature
23
+ return signature.length === 5 && signature[0] === 1 && signature[1] === 2;
24
+ }
25
+ async generateKeyPair() {
26
+ // Generate unique keys for testing
27
+ const random = Math.random().toString(36).substring(7);
28
+ return {
29
+ privateKey: `mock-private-key-${random}`,
30
+ publicKey: `mock-public-key-${random}`
31
+ };
32
+ }
33
+ async hash(data) {
34
+ // Simple mock hash
35
+ return new Uint8Array([9, 8, 7, 6, 5]);
36
+ }
37
+ async randomBytes(length) {
38
+ const bytes = new Uint8Array(length);
39
+ for (let i = 0; i < length; i++) {
40
+ bytes[i] = Math.floor(Math.random() * 256);
41
+ }
42
+ return bytes;
43
+ }
44
+ }
45
+ exports.MockCryptoProvider = MockCryptoProvider;
46
+ /**
47
+ * Mock Clock Provider
48
+ */
49
+ class MockClockProvider extends base_1.ClockProvider {
50
+ currentTime = Date.now();
51
+ setTime(timestamp) {
52
+ this.currentTime = timestamp;
53
+ }
54
+ now() {
55
+ return this.currentTime;
56
+ }
57
+ isWithinSkew(timestamp, skewSeconds) {
58
+ const diff = Math.abs(this.currentTime - timestamp);
59
+ return diff <= skewSeconds * 1000;
60
+ }
61
+ hasExpired(expiresAt) {
62
+ return this.currentTime > expiresAt;
63
+ }
64
+ calculateExpiry(ttlSeconds) {
65
+ return this.currentTime + (ttlSeconds * 1000);
66
+ }
67
+ format(timestamp) {
68
+ return new Date(timestamp).toISOString();
69
+ }
70
+ }
71
+ exports.MockClockProvider = MockClockProvider;
72
+ /**
73
+ * Mock Fetch Provider
74
+ */
75
+ class MockFetchProvider extends base_1.FetchProvider {
76
+ didDocuments = new Map();
77
+ statusLists = new Map();
78
+ delegationChains = new Map();
79
+ // Test helpers
80
+ setDIDDocument(did, doc) {
81
+ this.didDocuments.set(did, doc);
82
+ }
83
+ setStatusList(url, list) {
84
+ this.statusLists.set(url, list);
85
+ }
86
+ setDelegationChain(id, chain) {
87
+ this.delegationChains.set(id, chain);
88
+ }
89
+ async resolveDID(did) {
90
+ const doc = this.didDocuments.get(did);
91
+ if (!doc) {
92
+ throw new Error(`DID ${did} not found`);
93
+ }
94
+ return doc;
95
+ }
96
+ async fetchStatusList(url) {
97
+ const list = this.statusLists.get(url);
98
+ if (!list) {
99
+ throw new Error(`Status list ${url} not found`);
100
+ }
101
+ return list;
102
+ }
103
+ async fetchDelegationChain(id) {
104
+ const chain = this.delegationChains.get(id);
105
+ if (!chain) {
106
+ throw new Error(`Delegation chain ${id} not found`);
107
+ }
108
+ return chain;
109
+ }
110
+ async fetch(url, options) {
111
+ // Simple mock Response
112
+ return new Response(JSON.stringify({ url, options }), {
113
+ status: 200,
114
+ headers: { 'Content-Type': 'application/json' }
115
+ });
116
+ }
117
+ }
118
+ exports.MockFetchProvider = MockFetchProvider;
119
+ /**
120
+ * Mock Storage Provider
121
+ */
122
+ class MockStorageProvider extends base_1.StorageProvider {
123
+ store = new Map();
124
+ async get(key) {
125
+ return this.store.get(key) || null;
126
+ }
127
+ async set(key, value) {
128
+ this.store.set(key, value);
129
+ }
130
+ async delete(key) {
131
+ this.store.delete(key);
132
+ }
133
+ async exists(key) {
134
+ return this.store.has(key);
135
+ }
136
+ async list(prefix) {
137
+ const keys = Array.from(this.store.keys());
138
+ if (prefix) {
139
+ return keys.filter(k => k.startsWith(prefix));
140
+ }
141
+ return keys;
142
+ }
143
+ // Test helper
144
+ clear() {
145
+ this.store.clear();
146
+ }
147
+ }
148
+ exports.MockStorageProvider = MockStorageProvider;
149
+ /**
150
+ * Mock Nonce Cache Provider
151
+ */
152
+ class MockNonceCacheProvider extends base_1.NonceCacheProvider {
153
+ nonces = new Map();
154
+ cleanupCalled = false;
155
+ destroyCalled = false;
156
+ clock;
157
+ setClock(clock) {
158
+ this.clock = clock;
159
+ }
160
+ async has(nonce) {
161
+ const expiry = this.nonces.get(nonce);
162
+ if (!expiry)
163
+ return false;
164
+ const now = this.clock ? this.clock.now() : Date.now();
165
+ if (now > expiry) {
166
+ this.nonces.delete(nonce);
167
+ return false;
168
+ }
169
+ return true;
170
+ }
171
+ async add(nonce, expiresAt) {
172
+ this.nonces.set(nonce, expiresAt);
173
+ }
174
+ async cleanup() {
175
+ this.cleanupCalled = true;
176
+ const now = this.clock ? this.clock.now() : Date.now();
177
+ for (const [nonce, expiry] of this.nonces) {
178
+ if (now > expiry) {
179
+ this.nonces.delete(nonce);
180
+ }
181
+ }
182
+ }
183
+ async destroy() {
184
+ this.destroyCalled = true;
185
+ this.nonces.clear();
186
+ }
187
+ // Test helper
188
+ clear() {
189
+ this.nonces.clear();
190
+ }
191
+ size() {
192
+ return this.nonces.size;
193
+ }
194
+ }
195
+ exports.MockNonceCacheProvider = MockNonceCacheProvider;
196
+ /**
197
+ * Mock Identity Provider
198
+ */
199
+ class MockIdentityProvider extends base_1.IdentityProvider {
200
+ identity;
201
+ rotateKeysCalled = false;
202
+ deleteIdentityCalled = false;
203
+ rotateCount = 0;
204
+ constructor(identity) {
205
+ super();
206
+ this.identity = identity;
207
+ }
208
+ async getIdentity() {
209
+ if (!this.identity) {
210
+ this.identity = {
211
+ did: 'did:key:zmock123',
212
+ kid: 'did:key:zmock123#key-1',
213
+ privateKey: 'mock-private-key',
214
+ publicKey: 'mock-public-key',
215
+ createdAt: new Date().toISOString(),
216
+ type: 'development',
217
+ metadata: { mock: true }
218
+ };
219
+ }
220
+ return this.identity;
221
+ }
222
+ async saveIdentity(identity) {
223
+ this.identity = identity;
224
+ }
225
+ async rotateKeys() {
226
+ this.rotateKeysCalled = true;
227
+ this.rotateCount++;
228
+ this.identity = {
229
+ did: `did:key:zmock456-${this.rotateCount}`,
230
+ kid: `did:key:zmock456-${this.rotateCount}#key-1`,
231
+ privateKey: `mock-private-key-rotated-${this.rotateCount}`,
232
+ publicKey: `mock-public-key-rotated-${this.rotateCount}`,
233
+ createdAt: new Date().toISOString(),
234
+ type: 'development',
235
+ metadata: { mock: true, rotated: true, rotateCount: this.rotateCount }
236
+ };
237
+ return this.identity;
238
+ }
239
+ async deleteIdentity() {
240
+ this.deleteIdentityCalled = true;
241
+ this.identity = undefined;
242
+ }
243
+ // Test helper
244
+ setIdentity(identity) {
245
+ this.identity = identity;
246
+ }
247
+ }
248
+ exports.MockIdentityProvider = MockIdentityProvider;
249
+ /**
250
+ * Create a full set of mock providers for testing
251
+ */
252
+ function createMockProviders() {
253
+ const cryptoProvider = new MockCryptoProvider();
254
+ const clockProvider = new MockClockProvider();
255
+ const fetchProvider = new MockFetchProvider();
256
+ const storageProvider = new MockStorageProvider();
257
+ const nonceCacheProvider = new MockNonceCacheProvider();
258
+ const identityProvider = new MockIdentityProvider();
259
+ // Connect nonce cache to clock for consistent time
260
+ nonceCacheProvider.setClock(clockProvider);
261
+ return {
262
+ cryptoProvider,
263
+ clockProvider,
264
+ fetchProvider,
265
+ storageProvider,
266
+ nonceCacheProvider,
267
+ identityProvider
268
+ };
269
+ }
270
+ //# sourceMappingURL=mock-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-providers.js","sourceRoot":"","sources":["../../../src/__tests__/utils/mock-providers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAiSH,kDAmBC;AAlTD,+CAQ8B;AAE9B;;GAEG;AACH,MAAa,kBAAmB,SAAQ,qBAAc;IACpD,KAAK,CAAC,IAAI,CAAC,IAAgB,EAAE,UAAkB;QAC7C,wBAAwB;QACxB,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAgB,EAAE,SAAqB,EAAE,SAAiB;QACrE,iEAAiE;QACjE,oEAAoE;QACpE,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,mCAAmC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO;YACL,UAAU,EAAE,oBAAoB,MAAM,EAAE;YACxC,SAAS,EAAE,mBAAmB,MAAM,EAAE;SACvC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAgB;QACzB,mBAAmB;QACnB,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAjCD,gDAiCC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,oBAAa;IAC1C,WAAW,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzC,OAAO,CAAC,SAAiB;QACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,WAAmB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;CACF;AA3BD,8CA2BC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,oBAAa;IAC1C,YAAY,GAAqB,IAAI,GAAG,EAAE,CAAC;IAC3C,WAAW,GAAqB,IAAI,GAAG,EAAE,CAAC;IAC1C,gBAAgB,GAAuB,IAAI,GAAG,EAAE,CAAC;IAEzD,eAAe;IACf,cAAc,CAAC,GAAW,EAAE,GAAQ;QAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,IAAS;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,KAAY;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,YAAY,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAa;QACpC,uBAAuB;QACvB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE;YACpD,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;IACL,CAAC;CACF;AAjDD,8CAiDC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,sBAAe;IAC9C,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;IAED,cAAc;IACd,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AA/BD,kDA+BC;AAED;;GAEG;AACH,MAAa,sBAAuB,SAAQ,yBAAkB;IACpD,MAAM,GAAwB,IAAI,GAAG,EAAE,CAAC;IACzC,aAAa,GAAG,KAAK,CAAC;IACtB,aAAa,GAAG,KAAK,CAAC;IACrB,KAAK,CAAiB;IAE9B,QAAQ,CAAC,KAAoB;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvD,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,SAAiB;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,cAAc;IACd,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAlDD,wDAkDC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,uBAAgB;IAChD,QAAQ,CAAiB;IAC1B,gBAAgB,GAAG,KAAK,CAAC;IACzB,oBAAoB,GAAG,KAAK,CAAC;IAC5B,WAAW,GAAG,CAAC,CAAC;IAExB,YAAY,QAAwB;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG;gBACd,GAAG,EAAE,kBAAkB;gBACvB,GAAG,EAAE,wBAAwB;gBAC7B,UAAU,EAAE,kBAAkB;gBAC9B,SAAS,EAAE,iBAAiB;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACzB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAuB;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,EAAE,oBAAoB,IAAI,CAAC,WAAW,EAAE;YAC3C,GAAG,EAAE,oBAAoB,IAAI,CAAC,WAAW,QAAQ;YACjD,UAAU,EAAE,4BAA4B,IAAI,CAAC,WAAW,EAAE;YAC1D,SAAS,EAAE,2BAA2B,IAAI,CAAC,WAAW,EAAE;YACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;SACvE,CAAC;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,cAAc;IACd,WAAW,CAAC,QAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAtDD,oDAsDC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,MAAM,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAClD,MAAM,kBAAkB,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACxD,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAEpD,mDAAmD;IACnD,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE3C,OAAO;QACL,cAAc;QACd,aAAa;QACb,aAAa;QACb,eAAe;QACf,kBAAkB;QAClB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Platform-agnostic cache interface for tool protection configurations
3
+ *
4
+ * This interface allows different runtime adapters to provide their own
5
+ * caching implementations (e.g., in-memory for Node.js, KV for CloudFlare)
6
+ *
7
+ * @package @kya-os/mcp-i-core
8
+ */
9
+ import type { ToolProtectionConfig } from '../types/tool-protection.js';
10
+ /**
11
+ * Cache interface for storing and retrieving tool protection configurations
12
+ */
13
+ export interface ToolProtectionCache {
14
+ /**
15
+ * Retrieve a cached tool protection configuration
16
+ * @param key Cache key (typically projectId)
17
+ * @returns Cached config or null if not found/expired
18
+ */
19
+ get(key: string): Promise<ToolProtectionConfig | null>;
20
+ /**
21
+ * Store a tool protection configuration in cache
22
+ * @param key Cache key (typically projectId)
23
+ * @param value Tool protection configuration to cache
24
+ * @param ttl Time-to-live in milliseconds
25
+ */
26
+ set(key: string, value: ToolProtectionConfig, ttl: number): Promise<void>;
27
+ /**
28
+ * Clear all cached entries
29
+ */
30
+ clear(): Promise<void>;
31
+ /**
32
+ * Remove a specific cache entry
33
+ * @param key Cache key to remove
34
+ */
35
+ delete(key: string): Promise<void>;
36
+ }
37
+ /**
38
+ * In-memory cache implementation
39
+ *
40
+ * Suitable for:
41
+ * - Node.js runtimes
42
+ * - Development/testing
43
+ * - Single-instance deployments
44
+ *
45
+ * NOT suitable for:
46
+ * - Multi-instance deployments (cache not shared)
47
+ * - Serverless environments (state not persisted)
48
+ */
49
+ export declare class InMemoryToolProtectionCache implements ToolProtectionCache {
50
+ private cache;
51
+ get(key: string): Promise<ToolProtectionConfig | null>;
52
+ set(key: string, value: ToolProtectionConfig, ttl: number): Promise<void>;
53
+ clear(): Promise<void>;
54
+ delete(key: string): Promise<void>;
55
+ /**
56
+ * Clean up expired entries (call periodically)
57
+ */
58
+ cleanup(): void;
59
+ }
60
+ /**
61
+ * No-op cache implementation (disables caching)
62
+ *
63
+ * Use when:
64
+ * - You want to disable caching entirely
65
+ * - Testing scenarios that require fresh data
66
+ */
67
+ export declare class NoOpToolProtectionCache implements ToolProtectionCache {
68
+ get(_key: string): Promise<ToolProtectionConfig | null>;
69
+ set(_key: string, _value: ToolProtectionConfig, _ttl: number): Promise<void>;
70
+ clear(): Promise<void>;
71
+ delete(_key: string): Promise<void>;
72
+ }
73
+ //# sourceMappingURL=tool-protection-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-protection-cache.d.ts","sourceRoot":"","sources":["../../src/cache/tool-protection-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,2BAA4B,YAAW,mBAAmB;IACrE,OAAO,CAAC,KAAK,CAGT;IAEE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAgBtD,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,oBAAoB,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAKV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB;AAED;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAC3D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAIvD,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,oBAAoB,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAIV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Platform-agnostic cache interface for tool protection configurations
4
+ *
5
+ * This interface allows different runtime adapters to provide their own
6
+ * caching implementations (e.g., in-memory for Node.js, KV for CloudFlare)
7
+ *
8
+ * @package @kya-os/mcp-i-core
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.NoOpToolProtectionCache = exports.InMemoryToolProtectionCache = void 0;
12
+ /**
13
+ * In-memory cache implementation
14
+ *
15
+ * Suitable for:
16
+ * - Node.js runtimes
17
+ * - Development/testing
18
+ * - Single-instance deployments
19
+ *
20
+ * NOT suitable for:
21
+ * - Multi-instance deployments (cache not shared)
22
+ * - Serverless environments (state not persisted)
23
+ */
24
+ class InMemoryToolProtectionCache {
25
+ cache = new Map();
26
+ async get(key) {
27
+ const entry = this.cache.get(key);
28
+ if (!entry) {
29
+ return null;
30
+ }
31
+ // Check if expired
32
+ if (Date.now() > entry.expiresAt) {
33
+ this.cache.delete(key);
34
+ return null;
35
+ }
36
+ return entry.value;
37
+ }
38
+ async set(key, value, ttl) {
39
+ const expiresAt = Date.now() + ttl;
40
+ this.cache.set(key, { value, expiresAt });
41
+ }
42
+ async clear() {
43
+ this.cache.clear();
44
+ }
45
+ async delete(key) {
46
+ this.cache.delete(key);
47
+ }
48
+ /**
49
+ * Clean up expired entries (call periodically)
50
+ */
51
+ cleanup() {
52
+ const now = Date.now();
53
+ for (const [key, entry] of this.cache.entries()) {
54
+ if (now > entry.expiresAt) {
55
+ this.cache.delete(key);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ exports.InMemoryToolProtectionCache = InMemoryToolProtectionCache;
61
+ /**
62
+ * No-op cache implementation (disables caching)
63
+ *
64
+ * Use when:
65
+ * - You want to disable caching entirely
66
+ * - Testing scenarios that require fresh data
67
+ */
68
+ class NoOpToolProtectionCache {
69
+ async get(_key) {
70
+ return null;
71
+ }
72
+ async set(_key, _value, _ttl) {
73
+ // No-op
74
+ }
75
+ async clear() {
76
+ // No-op
77
+ }
78
+ async delete(_key) {
79
+ // No-op
80
+ }
81
+ }
82
+ exports.NoOpToolProtectionCache = NoOpToolProtectionCache;
83
+ //# sourceMappingURL=tool-protection-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-protection-cache.js","sourceRoot":"","sources":["../../src/cache/tool-protection-cache.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAmCH;;;;;;;;;;;GAWG;AACH,MAAa,2BAA2B;IAC9B,KAAK,GAAG,IAAI,GAAG,EAGpB,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW,EACX,KAA2B,EAC3B,GAAW;QAEX,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlDD,kEAkDC;AAED;;;;;;GAMG;AACH,MAAa,uBAAuB;IAClC,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,MAA4B,EAC5B,IAAY;QAEZ,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,KAAK;QACT,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,QAAQ;IACV,CAAC;CACF;AApBD,0DAoBC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Schema Compliance Module
3
+ *
4
+ * Automated verification against canonical schemas from schemas.kya-os.ai
5
+ */
6
+ export * from './schema-verifier';
7
+ export * from './schema-registry';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Schema Compliance Module
4
+ *
5
+ * Automated verification against canonical schemas from schemas.kya-os.ai
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./schema-verifier"), exports);
23
+ __exportStar(require("./schema-registry"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,oDAAkC;AAClC,oDAAkC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Schema Registry
3
+ *
4
+ * Canonical list of all schemas from schemas.kya-os.ai
5
+ * Used for automated compliance verification.
6
+ *
7
+ * Auto-generated from https://schemas.kya-os.ai/schema-index.json
8
+ * Last updated: 2025-10-17
9
+ */
10
+ import type { SchemaMetadata } from './schema-verifier';
11
+ /**
12
+ * Complete registry of schemas from schemas.kya-os.ai
13
+ *
14
+ * As of 2025-10-17, there are 38 schemas covering:
15
+ * - W3C Verifiable Credentials
16
+ * - MCP-I Protocol (Handshake, Proof, Session)
17
+ * - Delegation System
18
+ * - Agent Registry
19
+ * - CLI & Runtime
20
+ * - TLKRC (Tool-Level Key Rotation)
21
+ */
22
+ export declare const SCHEMA_REGISTRY: SchemaMetadata[];
23
+ /**
24
+ * Get all schemas
25
+ */
26
+ export declare function getAllSchemas(): SchemaMetadata[];
27
+ /**
28
+ * Get schemas by category
29
+ */
30
+ export declare function getSchemasByCategory(category: string): SchemaMetadata[];
31
+ /**
32
+ * Get schema by ID
33
+ */
34
+ export declare function getSchemaById(id: string): SchemaMetadata | undefined;
35
+ /**
36
+ * Get critical schemas (must be 100% compliant)
37
+ *
38
+ * These are the core schemas that power the MCP-I protocol and must
39
+ * be fully compliant for the system to function correctly.
40
+ */
41
+ export declare function getCriticalSchemas(): SchemaMetadata[];
42
+ /**
43
+ * Get schema statistics
44
+ */
45
+ export declare function getSchemaStats(): {
46
+ total: number;
47
+ byCategory: Record<string, number>;
48
+ byVersion: Record<string, number>;
49
+ };
50
+ //# sourceMappingURL=schema-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-registry.d.ts","sourceRoot":"","sources":["../../src/compliance/schema-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,cAAc,EA+S3C,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,IAAI,cAAc,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAsDvE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAsBrD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAmBA"}