@kya-os/mcp-i-core 1.1.13-canary.1 → 1.1.14-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 (41) hide show
  1. package/dist/index.d.ts +30 -22
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +15 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/runtime/base.d.ts +14 -0
  6. package/dist/runtime/base.d.ts.map +1 -1
  7. package/dist/runtime/base.js +46 -13
  8. package/dist/runtime/base.js.map +1 -1
  9. package/dist/services/access-control.service.d.ts +100 -0
  10. package/dist/services/access-control.service.d.ts.map +1 -0
  11. package/dist/services/access-control.service.js +134 -0
  12. package/dist/services/access-control.service.js.map +1 -0
  13. package/dist/services/crypto.service.d.ts +69 -0
  14. package/dist/services/crypto.service.d.ts.map +1 -0
  15. package/dist/services/crypto.service.js +225 -0
  16. package/dist/services/crypto.service.js.map +1 -0
  17. package/dist/services/errors.d.ts +49 -0
  18. package/dist/services/errors.d.ts.map +1 -0
  19. package/dist/services/errors.js +66 -0
  20. package/dist/services/errors.js.map +1 -0
  21. package/dist/services/index.d.ts +5 -0
  22. package/dist/services/index.d.ts.map +1 -0
  23. package/dist/services/index.js +8 -0
  24. package/dist/services/index.js.map +1 -0
  25. package/dist/services/proof-verifier.d.ts +98 -0
  26. package/dist/services/proof-verifier.d.ts.map +1 -0
  27. package/dist/services/proof-verifier.js +318 -0
  28. package/dist/services/proof-verifier.js.map +1 -0
  29. package/dist/utils/base64.d.ts +31 -0
  30. package/dist/utils/base64.d.ts.map +1 -0
  31. package/dist/utils/base64.js +138 -0
  32. package/dist/utils/base64.js.map +1 -0
  33. package/dist/utils/index.d.ts +3 -1
  34. package/dist/utils/index.d.ts.map +1 -1
  35. package/dist/utils/index.js +2 -0
  36. package/dist/utils/index.js.map +1 -1
  37. package/dist/utils/storage-keys.d.ts +119 -0
  38. package/dist/utils/storage-keys.d.ts.map +1 -0
  39. package/dist/utils/storage-keys.js +217 -0
  40. package/dist/utils/storage-keys.js.map +1 -0
  41. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-keys.d.ts","sourceRoot":"","sources":["../../src/utils/storage-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAEjB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEtD,iCAAiC;IACjC,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE;IACP,yEAAyE;IACzE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9E,GACL,OAAO,CAAC,eAAe,CAAC,CAsH1B;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY;IACvB,8CAA8C;;IAG9C,oDAAoD;;IAGpD,yDAAyD;;IAGzD,6CAA6C;;IAG7C,uDAAuD;;IAGvD,iDAAiD;;IAGjD,6CAA6C;;CAErC,CAAC"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /**
3
+ * Storage Key Migration Utilities
4
+ *
5
+ * Provides utilities for migrating from old storage key formats to new composite formats.
6
+ * This supports Phase 3 Task 2 (StorageService) and Phase 4 (User DID identity linking).
7
+ *
8
+ * @package @kya-os/mcp-i-core
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.STORAGE_KEYS = void 0;
12
+ exports.legacyDelegationKey = legacyDelegationKey;
13
+ exports.compositeDelegationKey = compositeDelegationKey;
14
+ exports.sessionKey = sessionKey;
15
+ exports.userDidKey = userDidKey;
16
+ exports.oauthIdentityKey = oauthIdentityKey;
17
+ exports.verificationCacheKey = verificationCacheKey;
18
+ exports.nonceKey = nonceKey;
19
+ exports.migrateDelegationKeys = migrateDelegationKeys;
20
+ /**
21
+ * Legacy storage key format (agent-only, causes multi-tenant conflicts)
22
+ * Format: `agent:${agentDid}:delegation`
23
+ */
24
+ function legacyDelegationKey(agentDid) {
25
+ return `agent:${agentDid}:delegation`;
26
+ }
27
+ /**
28
+ * New composite storage key format (user+agent scoped, prevents conflicts)
29
+ * Format: `delegation:user:${userDid}:agent:${agentDid}:project:${projectId}`
30
+ *
31
+ * Note: projectId is optional for backward compatibility
32
+ */
33
+ function compositeDelegationKey(userDid, agentDid, projectId) {
34
+ if (projectId) {
35
+ return `delegation:user:${userDid}:agent:${agentDid}:project:${projectId}`;
36
+ }
37
+ return `delegation:user:${userDid}:agent:${agentDid}`;
38
+ }
39
+ /**
40
+ * Session cache key format
41
+ * Format: `session:${sessionId}`
42
+ */
43
+ function sessionKey(sessionId) {
44
+ return `session:${sessionId}`;
45
+ }
46
+ /**
47
+ * User DID storage key format
48
+ * Format: `userDid:oauth:${provider}:${subject}`
49
+ */
50
+ function userDidKey(provider, subject) {
51
+ return `userDid:oauth:${provider}:${subject}`;
52
+ }
53
+ /**
54
+ * OAuth identity mapping key format
55
+ * Format: `oauth:${provider}:${subject}`
56
+ */
57
+ function oauthIdentityKey(provider, subject) {
58
+ return `oauth:${provider}:${subject}`;
59
+ }
60
+ /**
61
+ * Verification cache key format
62
+ * Format: `verified:${tokenHash}`
63
+ */
64
+ function verificationCacheKey(tokenHash) {
65
+ return `verified:${tokenHash}`;
66
+ }
67
+ /**
68
+ * Nonce tracking key format
69
+ * Format: `nonce:${nonce}`
70
+ */
71
+ function nonceKey(nonce) {
72
+ return `nonce:${nonce}`;
73
+ }
74
+ /**
75
+ * Migrate delegation keys from legacy format to composite format
76
+ *
77
+ * This function:
78
+ * 1. Finds all legacy keys (`agent:${did}:delegation`)
79
+ * 2. Attempts to extract userDid from session data or OAuth mappings
80
+ * 3. Creates new composite keys (`delegation:user:${userDid}:agent:${agentDid}`)
81
+ * 4. Copies values to new keys
82
+ * 5. Optionally deletes old keys (dry-run mode available)
83
+ *
84
+ * @param storage - Storage provider instance
85
+ * @param options - Migration options
86
+ * @returns Migration result with statistics
87
+ */
88
+ async function migrateDelegationKeys(storage, options = {}) {
89
+ const result = {
90
+ migrated: 0,
91
+ failed: 0,
92
+ migrations: [],
93
+ errors: [],
94
+ };
95
+ try {
96
+ // Find all legacy delegation keys
97
+ const legacyKeys = await storage.list('agent:');
98
+ const delegationKeys = legacyKeys.filter((key) => key.match(/^agent:[^:]+:delegation$/));
99
+ console.log(`Found ${delegationKeys.length} legacy delegation keys to migrate`);
100
+ for (const oldKey of delegationKeys) {
101
+ try {
102
+ // Extract agentDid from key: `agent:${agentDid}:delegation`
103
+ const match = oldKey.match(/^agent:([^:]+):delegation$/);
104
+ if (!match) {
105
+ result.errors.push({
106
+ key: oldKey,
107
+ error: 'Invalid legacy key format',
108
+ });
109
+ result.failed++;
110
+ continue;
111
+ }
112
+ const agentDid = match[1];
113
+ // Get the value from old key
114
+ const value = await storage.get(oldKey);
115
+ if (!value) {
116
+ // Key exists but has no value - skip
117
+ continue;
118
+ }
119
+ // Try to resolve userDid
120
+ let userDid = null;
121
+ let sessionId = undefined;
122
+ // First, attempt to extract from session data to get both userDid and sessionId
123
+ const sessionKeys = await storage.list('session:');
124
+ for (const sessionKey of sessionKeys) {
125
+ const sessionData = await storage.get(sessionKey);
126
+ if (sessionData) {
127
+ try {
128
+ const parsed = JSON.parse(sessionData);
129
+ if (parsed.userDid && parsed.agentDid === agentDid) {
130
+ userDid = parsed.userDid;
131
+ // Extract sessionId from key: `session:${sessionId}`
132
+ const sessionMatch = sessionKey.match(/^session:(.+)$/);
133
+ if (sessionMatch) {
134
+ sessionId = sessionMatch[1];
135
+ }
136
+ break;
137
+ }
138
+ }
139
+ catch {
140
+ // Not JSON, skip
141
+ }
142
+ }
143
+ }
144
+ // If custom resolver provided, use it (with sessionId context if available)
145
+ if (options.resolveUserDid) {
146
+ const resolvedUserDid = await options.resolveUserDid(agentDid, sessionId);
147
+ // Use resolved userDid if available, otherwise fall back to extracted one
148
+ if (resolvedUserDid) {
149
+ userDid = resolvedUserDid;
150
+ }
151
+ }
152
+ if (!userDid) {
153
+ // Cannot migrate without userDid - skip for now
154
+ result.errors.push({
155
+ key: oldKey,
156
+ error: 'Cannot resolve userDid - skipping migration',
157
+ });
158
+ result.failed++;
159
+ continue;
160
+ }
161
+ // Create new composite key
162
+ const newKey = compositeDelegationKey(userDid, agentDid);
163
+ if (options.dryRun) {
164
+ // Just record what would be migrated
165
+ result.migrations.push({ oldKey, newKey });
166
+ result.migrated++;
167
+ }
168
+ else {
169
+ // Copy value to new key
170
+ await storage.set(newKey, value);
171
+ result.migrations.push({ oldKey, newKey });
172
+ result.migrated++;
173
+ // Optionally delete old key
174
+ if (options.deleteOldKeys) {
175
+ await storage.delete(oldKey);
176
+ }
177
+ }
178
+ }
179
+ catch (error) {
180
+ result.errors.push({
181
+ key: oldKey,
182
+ error: error instanceof Error ? error.message : String(error),
183
+ });
184
+ result.failed++;
185
+ }
186
+ }
187
+ }
188
+ catch (error) {
189
+ result.errors.push({
190
+ key: 'migration',
191
+ error: error instanceof Error ? error.message : String(error),
192
+ });
193
+ }
194
+ return result;
195
+ }
196
+ /**
197
+ * Storage key constants for consistent namespace management
198
+ *
199
+ * These match the Phase 4 storage key architecture.
200
+ */
201
+ exports.STORAGE_KEYS = {
202
+ /** User DID storage (persistent - 90 days) */
203
+ userDid: userDidKey,
204
+ /** OAuth identity mapping (persistent - 90 days) */
205
+ oauthIdentity: oauthIdentityKey,
206
+ /** User+Agent delegation tokens (persistent - 7 days) */
207
+ delegation: compositeDelegationKey,
208
+ /** Session cache (temporary - 30 minutes) */
209
+ session: sessionKey,
210
+ /** Legacy delegation format (deprecated - 24 hours) */
211
+ legacyDelegation: legacyDelegationKey,
212
+ /** Verification cache (temporary - 5 minutes) */
213
+ verificationCache: verificationCacheKey,
214
+ /** Nonce tracking (temporary - 5 minutes) */
215
+ nonce: nonceKey,
216
+ };
217
+ //# sourceMappingURL=storage-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-keys.js","sourceRoot":"","sources":["../../src/utils/storage-keys.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/mcp-i-core",
3
- "version": "1.1.13-canary.1",
3
+ "version": "1.1.14-canary.1",
4
4
  "description": "Core provider-based architecture for MCP-I framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -43,7 +43,8 @@
43
43
  ],
44
44
  "dependencies": {
45
45
  "@kya-os/contracts": "1.5.2-canary.0",
46
- "@modelcontextprotocol/sdk": "^1.11.4"
46
+ "@modelcontextprotocol/sdk": "^1.11.4",
47
+ "json-canonicalize": "^2.0.0"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/node": "^20.0.0",