@kya-os/mcp-i-core 1.3.10-canary.clientinfo.20251126124133 → 1.3.10

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 (64) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/__tests__/utils/mock-providers.d.ts +2 -1
  3. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -1
  4. package/dist/__tests__/utils/mock-providers.js.map +1 -1
  5. package/dist/config/remote-config.d.ts +51 -0
  6. package/dist/config/remote-config.d.ts.map +1 -1
  7. package/dist/config/remote-config.js +74 -0
  8. package/dist/config/remote-config.js.map +1 -1
  9. package/dist/config.d.ts +1 -1
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +4 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/delegation/did-key-resolver.d.ts +64 -0
  14. package/dist/delegation/did-key-resolver.d.ts.map +1 -0
  15. package/dist/delegation/did-key-resolver.js +159 -0
  16. package/dist/delegation/did-key-resolver.js.map +1 -0
  17. package/dist/delegation/utils.d.ts +76 -0
  18. package/dist/delegation/utils.d.ts.map +1 -1
  19. package/dist/delegation/utils.js +117 -0
  20. package/dist/delegation/utils.js.map +1 -1
  21. package/dist/identity/user-did-manager.d.ts +95 -12
  22. package/dist/identity/user-did-manager.d.ts.map +1 -1
  23. package/dist/identity/user-did-manager.js +107 -25
  24. package/dist/identity/user-did-manager.js.map +1 -1
  25. package/dist/index.d.ts +5 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +23 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/runtime/base.d.ts +25 -8
  30. package/dist/runtime/base.d.ts.map +1 -1
  31. package/dist/runtime/base.js +74 -21
  32. package/dist/runtime/base.js.map +1 -1
  33. package/dist/services/session-registration.service.d.ts.map +1 -1
  34. package/dist/services/session-registration.service.js +10 -90
  35. package/dist/services/session-registration.service.js.map +1 -1
  36. package/dist/services/tool-protection.service.d.ts +5 -2
  37. package/dist/services/tool-protection.service.d.ts.map +1 -1
  38. package/dist/services/tool-protection.service.js +72 -24
  39. package/dist/services/tool-protection.service.js.map +1 -1
  40. package/dist/utils/base58.d.ts +31 -0
  41. package/dist/utils/base58.d.ts.map +1 -0
  42. package/dist/utils/base58.js +103 -0
  43. package/dist/utils/base58.js.map +1 -0
  44. package/package.json +3 -3
  45. package/src/__tests__/identity/user-did-manager.test.ts +64 -45
  46. package/src/__tests__/integration/full-flow.test.ts +23 -10
  47. package/src/__tests__/runtime/base-extensions.test.ts +23 -21
  48. package/src/__tests__/runtime/proof-client-did.test.ts +19 -18
  49. package/src/__tests__/services/agentshield-integration.test.ts +10 -3
  50. package/src/__tests__/services/tool-protection-merged-config.test.ts +485 -0
  51. package/src/__tests__/services/tool-protection.service.test.ts +18 -11
  52. package/src/config/__tests__/merged-config.spec.ts +445 -0
  53. package/src/config/remote-config.ts +90 -0
  54. package/src/config.ts +3 -0
  55. package/src/delegation/__tests__/did-key-resolver.test.ts +265 -0
  56. package/src/delegation/did-key-resolver.ts +179 -0
  57. package/src/delegation/utils.ts +179 -0
  58. package/src/identity/user-did-manager.ts +185 -29
  59. package/src/index.ts +36 -1
  60. package/src/runtime/base.ts +84 -21
  61. package/src/services/session-registration.service.ts +26 -121
  62. package/src/services/tool-protection.service.ts +125 -56
  63. package/src/utils/base58.ts +109 -0
  64. package/coverage/coverage-final.json +0 -57
@@ -47,7 +47,7 @@
47
47
  * If tool not discovered:
48
48
  * - Tool won't appear in dashboard
49
49
  * - Protection settings can't be configured
50
- * - GET /tool-protections returns empty object
50
+ * - GET /config returns empty toolProtection.tools object
51
51
  *
52
52
  * DEBUGGING:
53
53
  * ----------
@@ -189,7 +189,7 @@ class ToolProtectionService {
189
189
  projectId: this.config.projectId || "none",
190
190
  apiUrl: this.config.apiUrl,
191
191
  endpoint: this.config.projectId
192
- ? `/api/v1/bouncer/projects/${this.config.projectId}/tool-protections`
192
+ ? `/api/v1/bouncer/projects/${this.config.projectId}/config`
193
193
  : `/api/v1/bouncer/config?agent_did=${agentDid}`,
194
194
  });
195
195
  }
@@ -203,20 +203,53 @@ class ToolProtectionService {
203
203
  projectId: this.config.projectId || "none",
204
204
  responseKeys: Object.keys(response),
205
205
  dataKeys: response.data ? Object.keys(response.data) : [],
206
+ rawConfig: response.data?.config || null,
207
+ rawConfigToolProtection: response.data?.config?.toolProtection || null,
206
208
  rawToolProtections: response.data?.toolProtections || null,
207
209
  rawTools: response.data?.tools || null,
208
210
  responseMetadata: response.metadata || null,
209
211
  });
210
212
  }
211
213
  // Transform API response format to internal format
212
- // Supports multiple response formats:
213
- // 1. New endpoint: { data: { toolProtections: { greet: { requiresDelegation: true, ... } } } }
214
- // 2. Old endpoint (array): { data: { tools: [{ name: "greet", requiresDelegation: true, ... }] } }
215
- // 3. Old endpoint (object): { data: { tools: { greet: { requiresDelegation: true, ... } } } }
214
+ // Supports multiple response formats (in priority order):
215
+ // 1. Merged config endpoint: { data: { config: { toolProtection: { tools: {...} } } } }
216
+ // 2. Legacy toolProtections: { data: { toolProtections: { greet: { requiresDelegation: true, ... } } } }
217
+ // 3. Old endpoint (array): { data: { tools: [{ name: "greet", requiresDelegation: true, ... }] } }
218
+ // 4. Old endpoint (object): { data: { tools: { greet: { requiresDelegation: true, ... } } } }
216
219
  const toolProtections = {};
217
- // Check for new endpoint format first (toolProtections)
218
- if (response.data.toolProtections) {
219
- // New endpoint format: object with tool names as keys
220
+ // Check for merged config format first (data.config.toolProtection.tools)
221
+ if (response.data.config?.toolProtection?.tools) {
222
+ // Merged config endpoint format: object with tool names as keys
223
+ if (this.config.debug) {
224
+ console.log("[ToolProtectionService] Using merged config format (data.config.toolProtection.tools)");
225
+ }
226
+ for (const [toolName, toolConfig] of Object.entries(response.data.config.toolProtection.tools)) {
227
+ const requiresDelegation = toolConfig.requiresDelegation ??
228
+ toolConfig.requires_delegation ??
229
+ false;
230
+ const requiredScopes = toolConfig.requiredScopes ??
231
+ toolConfig.required_scopes ??
232
+ toolConfig.scopes ??
233
+ [];
234
+ const oauthProvider = toolConfig.oauthProvider ??
235
+ toolConfig.oauth_provider ??
236
+ undefined;
237
+ const riskLevel = toolConfig.riskLevel ??
238
+ toolConfig.risk_level ??
239
+ undefined;
240
+ toolProtections[toolName] = {
241
+ requiresDelegation,
242
+ requiredScopes,
243
+ ...(oauthProvider && { oauthProvider }),
244
+ ...(riskLevel && { riskLevel }),
245
+ };
246
+ }
247
+ }
248
+ else if (response.data.toolProtections) {
249
+ // Legacy toolProtections format: object with tool names as keys
250
+ if (this.config.debug) {
251
+ console.log("[ToolProtectionService] Using legacy toolProtections format (data.toolProtections)");
252
+ }
220
253
  // Prefer camelCase over snake_case when both present
221
254
  for (const [toolName, toolConfig] of Object.entries(response.data.toolProtections)) {
222
255
  const requiresDelegation = toolConfig.requiresDelegation ??
@@ -494,24 +527,27 @@ class ToolProtectionService {
494
527
  }
495
528
  /**
496
529
  * Fetch tool protection config from AgentShield API
497
- * Uses projectId endpoint if available (preferred, project-scoped), otherwise falls back to agent_did query param
530
+ *
531
+ * Uses the merged /config endpoint which returns tool protections embedded
532
+ * at config.toolProtection.tools. Falls back to legacy formats for backward
533
+ * compatibility.
498
534
  *
499
535
  * @param agentDid DID of the agent to fetch config for
500
536
  * @param options Optional fetch options
501
537
  * @param options.bypassCDNCache When true, adds cache-busting to bypass CDN caches (used by clearAndRefresh)
502
538
  */
503
539
  async fetchFromApi(agentDid, options) {
504
- // Prefer new project-scoped endpoint: /api/v1/bouncer/projects/{projectId}/tool-protections
505
- // Falls back to old endpoint: /api/v1/bouncer/config?agent_did={did} for backward compatibility
540
+ // Use the merged /config endpoint which includes embedded tool protections
541
+ // This endpoint returns config.toolProtection.tools with all tool rules
506
542
  let url;
507
- let useNewEndpoint = false;
543
+ let useMergedEndpoint = false;
508
544
  if (this.config.projectId) {
509
- // ✅ NEW ENDPOINT: Project-scoped, returns toolProtections object
510
- url = `${this.config.apiUrl}/api/v1/bouncer/projects/${encodeURIComponent(this.config.projectId)}/tool-protections`;
511
- useNewEndpoint = true;
545
+ // ✅ MERGED CONFIG ENDPOINT: Returns config with embedded toolProtection.tools
546
+ url = `${this.config.apiUrl}/api/v1/bouncer/projects/${encodeURIComponent(this.config.projectId)}/config`;
547
+ useMergedEndpoint = true;
512
548
  }
513
549
  else {
514
- // ⚠️ OLD ENDPOINT: Agent-scoped, returns tools array (backward compatibility)
550
+ // ⚠️ LEGACY ENDPOINT: Agent-scoped, returns tools array (backward compatibility)
515
551
  url = `${this.config.apiUrl}/api/v1/bouncer/config?agent_did=${encodeURIComponent(agentDid)}`;
516
552
  }
517
553
  // Add cache-busting query param when bypassing CDN cache
@@ -535,9 +571,9 @@ class ToolProtectionService {
535
571
  const apiKeyLength = this.config.apiKey?.length || 0;
536
572
  if (this.config.debug) {
537
573
  console.log("[ToolProtectionService] Fetching from API:", url, {
538
- method: useNewEndpoint
539
- ? "projects/{projectId}/tool-protections (new)"
540
- : "config?agent_did (old)",
574
+ method: useMergedEndpoint
575
+ ? "projects/{projectId}/config (merged)"
576
+ : "config?agent_did (legacy)",
541
577
  projectId: this.config.projectId || "none",
542
578
  apiKeyPresent: !!this.config.apiKey,
543
579
  apiKeyLength,
@@ -555,19 +591,19 @@ class ToolProtectionService {
555
591
  }
556
592
  throw new Error(`ToolProtectionService: ${error}. Check AGENTSHIELD_API_KEY in .dev.vars or wrangler.toml [vars]`);
557
593
  }
558
- // Build headers - new endpoint uses X-API-Key, old endpoint uses Authorization Bearer
594
+ // Build headers - merged endpoint uses X-API-Key, legacy uses Authorization Bearer
559
595
  const headers = {
560
596
  "Content-Type": "application/json",
561
597
  };
562
- if (useNewEndpoint) {
563
- // ✅ New endpoint headers
598
+ if (useMergedEndpoint) {
599
+ // ✅ Merged config endpoint headers
564
600
  headers["X-API-Key"] = this.config.apiKey;
565
601
  if (this.config.projectId) {
566
602
  headers["X-Project-Id"] = this.config.projectId;
567
603
  }
568
604
  }
569
605
  else {
570
- // ⚠️ Old endpoint headers (backward compatibility)
606
+ // ⚠️ Legacy endpoint headers (backward compatibility)
571
607
  headers["Authorization"] = `Bearer ${this.config.apiKey}`;
572
608
  }
573
609
  // Add cache-control header when bypassing CDN cache
@@ -596,6 +632,18 @@ class ToolProtectionService {
596
632
  if (!data.success) {
597
633
  throw new Error("API returned success: false");
598
634
  }
635
+ // Transform merged config format to normalized format
636
+ // If response contains config.toolProtection.tools, extract them to data.toolProtections
637
+ if (useMergedEndpoint && data.data.config?.toolProtection?.tools) {
638
+ // Extract embedded tools to the standard toolProtections field
639
+ data.data.toolProtections = data.data.config.toolProtection.tools;
640
+ if (this.config.debug) {
641
+ console.log("[ToolProtectionService] Extracted tools from merged config", {
642
+ toolCount: Object.keys(data.data.toolProtections).length,
643
+ tools: Object.keys(data.data.toolProtections),
644
+ });
645
+ }
646
+ }
599
647
  return data;
600
648
  }
601
649
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tool-protection.service.js","sourceRoot":"","sources":["../../src/services/tool-protection.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-protection.service.js","sourceRoot":"","sources":["../../src/services/tool-protection.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Base58 Utilities (Bitcoin alphabet)
3
+ *
4
+ * Encoding and decoding utilities for Base58 (Bitcoin alphabet).
5
+ * Used for did:key multibase encoding (with 'z' prefix for base58btc).
6
+ *
7
+ * The Bitcoin alphabet excludes ambiguous characters (0, O, I, l).
8
+ */
9
+ /**
10
+ * Encode bytes to Base58 (Bitcoin alphabet)
11
+ *
12
+ * @param bytes - Bytes to encode
13
+ * @returns Base58-encoded string
14
+ */
15
+ export declare function base58Encode(bytes: Uint8Array): string;
16
+ /**
17
+ * Decode Base58 (Bitcoin alphabet) to bytes
18
+ *
19
+ * @param encoded - Base58-encoded string
20
+ * @returns Decoded bytes
21
+ * @throws Error if input contains invalid characters
22
+ */
23
+ export declare function base58Decode(encoded: string): Uint8Array;
24
+ /**
25
+ * Validate a Base58 string
26
+ *
27
+ * @param encoded - String to validate
28
+ * @returns true if valid Base58, false otherwise
29
+ */
30
+ export declare function isValidBase58(encoded: string): boolean;
31
+ //# sourceMappingURL=base58.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base58.d.ts","sourceRoot":"","sources":["../../src/utils/base58.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAsBtD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAoCxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUtD"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ /**
3
+ * Base58 Utilities (Bitcoin alphabet)
4
+ *
5
+ * Encoding and decoding utilities for Base58 (Bitcoin alphabet).
6
+ * Used for did:key multibase encoding (with 'z' prefix for base58btc).
7
+ *
8
+ * The Bitcoin alphabet excludes ambiguous characters (0, O, I, l).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.base58Encode = base58Encode;
12
+ exports.base58Decode = base58Decode;
13
+ exports.isValidBase58 = isValidBase58;
14
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
15
+ const ALPHABET_MAP = new Map();
16
+ // Build reverse lookup map
17
+ for (let i = 0; i < ALPHABET.length; i++) {
18
+ ALPHABET_MAP.set(ALPHABET[i], i);
19
+ }
20
+ /**
21
+ * Encode bytes to Base58 (Bitcoin alphabet)
22
+ *
23
+ * @param bytes - Bytes to encode
24
+ * @returns Base58-encoded string
25
+ */
26
+ function base58Encode(bytes) {
27
+ if (bytes.length === 0)
28
+ return '';
29
+ // Convert bytes to big integer
30
+ let num = BigInt(0);
31
+ for (let i = 0; i < bytes.length; i++) {
32
+ num = num * BigInt(256) + BigInt(bytes[i]);
33
+ }
34
+ // Convert to base58
35
+ let result = '';
36
+ while (num > 0) {
37
+ result = ALPHABET[Number(num % BigInt(58))] + result;
38
+ num = num / BigInt(58);
39
+ }
40
+ // Add leading zeros (encoded as '1' in base58)
41
+ for (let i = 0; i < bytes.length && bytes[i] === 0; i++) {
42
+ result = '1' + result;
43
+ }
44
+ return result;
45
+ }
46
+ /**
47
+ * Decode Base58 (Bitcoin alphabet) to bytes
48
+ *
49
+ * @param encoded - Base58-encoded string
50
+ * @returns Decoded bytes
51
+ * @throws Error if input contains invalid characters
52
+ */
53
+ function base58Decode(encoded) {
54
+ if (encoded.length === 0)
55
+ return new Uint8Array(0);
56
+ // Convert base58 to big integer
57
+ let num = BigInt(0);
58
+ for (const char of encoded) {
59
+ const value = ALPHABET_MAP.get(char);
60
+ if (value === undefined) {
61
+ throw new Error(`Invalid base58 character: ${char}`);
62
+ }
63
+ num = num * BigInt(58) + BigInt(value);
64
+ }
65
+ // Convert big integer to bytes
66
+ const bytes = [];
67
+ while (num > 0) {
68
+ bytes.unshift(Number(num % BigInt(256)));
69
+ num = num / BigInt(256);
70
+ }
71
+ // Count leading zeros in input (encoded as '1')
72
+ let leadingZeros = 0;
73
+ for (const char of encoded) {
74
+ if (char === '1') {
75
+ leadingZeros++;
76
+ }
77
+ else {
78
+ break;
79
+ }
80
+ }
81
+ // Prepend leading zero bytes
82
+ const result = new Uint8Array(leadingZeros + bytes.length);
83
+ // Leading zeros are already 0 in Uint8Array
84
+ result.set(bytes, leadingZeros);
85
+ return result;
86
+ }
87
+ /**
88
+ * Validate a Base58 string
89
+ *
90
+ * @param encoded - String to validate
91
+ * @returns true if valid Base58, false otherwise
92
+ */
93
+ function isValidBase58(encoded) {
94
+ if (encoded.length === 0)
95
+ return true;
96
+ for (const char of encoded) {
97
+ if (!ALPHABET_MAP.has(char)) {
98
+ return false;
99
+ }
100
+ }
101
+ return true;
102
+ }
103
+ //# sourceMappingURL=base58.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base58.js","sourceRoot":"","sources":["../../src/utils/base58.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAgBH,oCAsBC;AASD,oCAoCC;AAQD,sCAUC;AAnGD,MAAM,QAAQ,GAAG,4DAA4D,CAAC;AAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C,2BAA2B;AAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACzC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAiB;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,+BAA+B;IAC/B,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,oBAAoB;IACpB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACrD,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,+CAA+C;IAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAEnD,gCAAgC;IAChC,IAAI,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzC,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,gDAAgD;IAChD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,YAAY,EAAE,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3D,4CAA4C;IAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/mcp-i-core",
3
- "version": "1.3.10-canary.clientinfo.20251126124133",
3
+ "version": "1.3.10",
4
4
  "description": "Core runtime and types for MCP-I framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,10 +28,10 @@
28
28
  "prepublishOnly": "npm run build && node ../create-mcpi-app/scripts/validate-no-workspace.js"
29
29
  },
30
30
  "dependencies": {
31
- "@kya-os/contracts": "^1.6.1",
31
+ "@kya-os/contracts": "^1.6.4",
32
32
  "jose": "^5.6.3",
33
33
  "json-canonicalize": "^2.0.0",
34
- "zod": "^3.23.8"
34
+ "zod": "^3.25.76"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^20.14.9",
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * User DID Manager Tests
3
3
  *
4
- * Tests for ephemeral user DID generation and management.
4
+ * Phase 5: Anonymous Sessions Until OAuth
5
+ * Tests for user DID lookup and storage (no ephemeral generation).
5
6
  */
6
7
 
7
8
  import { describe, test, expect, beforeEach, vi } from 'vitest';
@@ -26,36 +27,37 @@ describe('UserDidManager', () => {
26
27
  });
27
28
  });
28
29
 
29
- describe('getOrCreateUserDid', () => {
30
- test('should generate new did:key for new session', async () => {
31
- const sessionId = 'session-123';
32
-
33
- // Mock generateKeyPair to return valid base64 keys
34
- const mockKeyPair = {
35
- privateKey: Buffer.from(new Uint8Array(32).fill(1)).toString('base64'),
36
- publicKey: Buffer.from(new Uint8Array(32).fill(2)).toString('base64'),
37
- };
38
- vi.spyOn(cryptoProvider, 'generateKeyPair').mockResolvedValue(mockKeyPair);
39
-
40
- const userDid = await manager.getOrCreateUserDid(sessionId);
30
+ describe('getOrCreateUserDid (Phase 5)', () => {
31
+ test('should return null for new session without existing DID', async () => {
32
+ const sessionId = 'session-123';
33
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(null);
41
34
 
42
- expect(userDid).toMatch(/^did:key:z/);
43
- expect(userDid.length).toBeGreaterThan(40);
44
- });
35
+ // Phase 5: No ephemeral DID generation - returns null for anonymous session
36
+ const userDid = await manager.getOrCreateUserDid(sessionId);
45
37
 
46
- test('should return same DID for same session', async () => {
38
+ expect(userDid).toBeNull();
39
+ });
40
+
41
+ test('should return same null for same session (cache hit)', async () => {
47
42
  const sessionId = 'session-123';
43
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(null);
44
+
48
45
  const did1 = await manager.getOrCreateUserDid(sessionId);
49
46
  const did2 = await manager.getOrCreateUserDid(sessionId);
50
47
 
51
- expect(did1).toBe(did2);
48
+ expect(did1).toBeNull();
49
+ expect(did2).toBeNull();
52
50
  });
53
51
 
54
- test('should return different DIDs for different sessions', async () => {
52
+ test('should return null for different sessions without OAuth', async () => {
53
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(null);
54
+
55
55
  const did1 = await manager.getOrCreateUserDid('session-1');
56
56
  const did2 = await manager.getOrCreateUserDid('session-2');
57
57
 
58
- expect(did1).not.toBe(did2);
58
+ // Phase 5: Both sessions are anonymous (null userDid)
59
+ expect(did1).toBeNull();
60
+ expect(did2).toBeNull();
59
61
  });
60
62
 
61
63
  test('should retrieve DID from storage if available', async () => {
@@ -69,33 +71,42 @@ describe('UserDidManager', () => {
69
71
  expect(storage.get).toHaveBeenCalledWith(sessionId);
70
72
  });
71
73
 
72
- test('should store new DID in storage', async () => {
74
+ test('should not call storage.set for new sessions (Phase 5)', async () => {
73
75
  const sessionId = 'session-123';
76
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(null);
77
+
78
+ // Phase 5: No DID generated, no storage write
74
79
  const did = await manager.getOrCreateUserDid(sessionId);
75
80
 
76
- expect(storage.set).toHaveBeenCalledWith(sessionId, did, 1800);
81
+ expect(did).toBeNull();
82
+ expect(storage.set).not.toHaveBeenCalled();
77
83
  });
78
84
 
79
- test('should use cache for subsequent calls', async () => {
85
+ test('should use cache for existing DID on subsequent calls', async () => {
80
86
  const sessionId = 'session-123';
87
+ const storedDid = 'did:key:zTestStoredDID';
88
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(storedDid);
89
+
81
90
  const did1 = await manager.getOrCreateUserDid(sessionId);
82
-
83
- // Clear storage mock to ensure cache is used
91
+
92
+ // Clear storage mock - next call should use cache
93
+ (storage.get as ReturnType<typeof vi.fn>).mockReset();
84
94
  (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(null);
85
-
95
+
86
96
  const did2 = await manager.getOrCreateUserDid(sessionId);
87
97
 
88
- expect(did1).toBe(did2);
89
- expect(storage.get).not.toHaveBeenCalledTimes(2); // Cache hit
98
+ expect(did1).toBe(storedDid);
99
+ expect(did2).toBe(storedDid); // Cache hit
90
100
  });
91
101
 
92
- test('should work without storage provider', async () => {
102
+ test('should return null without storage provider (Phase 5)', async () => {
93
103
  const ephemeralManager = new UserDidManager({
94
104
  crypto: cryptoProvider,
95
105
  });
96
106
 
107
+ // Phase 5: No storage, no OAuth → anonymous session (null)
97
108
  const did = await ephemeralManager.getOrCreateUserDid('session-123');
98
- expect(did).toMatch(/^did:key:z/);
109
+ expect(did).toBeNull();
99
110
  });
100
111
  });
101
112
 
@@ -158,16 +169,23 @@ describe('UserDidManager', () => {
158
169
  });
159
170
 
160
171
  describe('DID format validation', () => {
161
- test('should generate valid did:key format', async () => {
162
- const did = await manager.getOrCreateUserDid('session-123');
163
-
172
+ test('should return stored DID if it has valid did:key format', async () => {
173
+ const sessionId = 'session-123';
174
+ const validDid = 'did:key:z6MkhaXgBZDvotDUGnNPEFXjSNbMoRmbW2BgUjH9tmp1hQ1R';
175
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(validDid);
176
+
177
+ const did = await manager.getOrCreateUserDid(sessionId);
178
+
164
179
  // did:key format: did:key:z<base58-encoded-multicodec-key>
180
+ expect(did).not.toBeNull();
165
181
  expect(did).toMatch(/^did:key:z[1-9A-HJ-NP-Za-km-z]+$/);
166
182
  });
167
183
 
168
- test('should generate different DIDs each time generateUserDid is called', async () => {
169
- const dids = new Set<string>();
170
-
184
+ test('should return null for new sessions without OAuth (Phase 5)', async () => {
185
+ // Phase 5: getOrCreateUserDid returns null for new sessions without existing DID
186
+ // No ephemeral DID generation - sessions stay anonymous until OAuth
187
+ const dids = new Set<string | null>();
188
+
171
189
  for (let i = 0; i < 10; i++) {
172
190
  const manager = new UserDidManager({
173
191
  crypto: cryptoProvider,
@@ -176,28 +194,29 @@ describe('UserDidManager', () => {
176
194
  dids.add(did);
177
195
  }
178
196
 
179
- // All DIDs should be unique
180
- expect(dids.size).toBe(10);
197
+ // Phase 5: All DIDs should be null (no generation)
198
+ expect(dids.size).toBe(1);
199
+ expect(dids.has(null)).toBe(true);
181
200
  });
182
201
  });
183
202
 
184
203
  describe('error handling', () => {
185
- test('should handle storage.get errors gracefully', async () => {
204
+ test('should handle storage.get errors gracefully (Phase 5)', async () => {
186
205
  const sessionId = 'session-123';
187
206
  (storage.get as ReturnType<typeof vi.fn>).mockRejectedValue(new Error('Storage error'));
188
207
 
189
- // Should still generate DID despite storage error
208
+ // Phase 5: Returns null when storage errors occur (no ephemeral generation)
190
209
  const did = await manager.getOrCreateUserDid(sessionId);
191
- expect(did).toMatch(/^did:key:z/);
210
+ expect(did).toBeNull();
192
211
  });
193
212
 
194
- test('should handle storage.set errors gracefully', async () => {
213
+ test('should return null when no existing DID found (Phase 5)', async () => {
195
214
  const sessionId = 'session-123';
196
- (storage.set as ReturnType<typeof vi.fn>).mockRejectedValue(new Error('Storage error'));
215
+ (storage.get as ReturnType<typeof vi.fn>).mockResolvedValue(null);
197
216
 
198
- // Should still return DID despite storage error
217
+ // Phase 5: Returns null instead of generating ephemeral DID
199
218
  const did = await manager.getOrCreateUserDid(sessionId);
200
- expect(did).toMatch(/^did:key:z/);
219
+ expect(did).toBeNull();
201
220
  });
202
221
 
203
222
  test('should handle storage.delete errors gracefully', async () => {