@kya-os/mcp-i-core 1.0.0 → 1.1.1-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +33 -0
  2. package/dist/__tests__/utils/mock-providers.d.ts +102 -0
  3. package/dist/__tests__/utils/mock-providers.d.ts.map +1 -0
  4. package/dist/__tests__/utils/mock-providers.js +270 -0
  5. package/dist/__tests__/utils/mock-providers.js.map +1 -0
  6. package/dist/cache/tool-protection-cache.d.ts +73 -0
  7. package/dist/cache/tool-protection-cache.d.ts.map +1 -0
  8. package/dist/cache/tool-protection-cache.js +83 -0
  9. package/dist/cache/tool-protection-cache.js.map +1 -0
  10. package/dist/compliance/index.d.ts +8 -0
  11. package/dist/compliance/index.d.ts.map +1 -0
  12. package/dist/compliance/index.js +24 -0
  13. package/dist/compliance/index.js.map +1 -0
  14. package/dist/compliance/schema-registry.d.ts +50 -0
  15. package/dist/compliance/schema-registry.d.ts.map +1 -0
  16. package/dist/compliance/schema-registry.js +438 -0
  17. package/dist/compliance/schema-registry.js.map +1 -0
  18. package/dist/compliance/schema-verifier-v2.d.ts +110 -0
  19. package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
  20. package/dist/compliance/schema-verifier-v2.js +510 -0
  21. package/dist/compliance/schema-verifier-v2.js.map +1 -0
  22. package/dist/compliance/schema-verifier.d.ts +110 -0
  23. package/dist/compliance/schema-verifier.d.ts.map +1 -0
  24. package/dist/compliance/schema-verifier.js +518 -0
  25. package/dist/compliance/schema-verifier.js.map +1 -0
  26. package/dist/delegation/bitstring.d.ts +139 -0
  27. package/dist/delegation/bitstring.d.ts.map +1 -0
  28. package/dist/delegation/bitstring.js +213 -0
  29. package/dist/delegation/bitstring.js.map +1 -0
  30. package/dist/delegation/cascading-revocation.d.ts +162 -0
  31. package/dist/delegation/cascading-revocation.d.ts.map +1 -0
  32. package/dist/delegation/cascading-revocation.js +263 -0
  33. package/dist/delegation/cascading-revocation.js.map +1 -0
  34. package/dist/delegation/delegation-graph.d.ts +178 -0
  35. package/dist/delegation/delegation-graph.d.ts.map +1 -0
  36. package/dist/delegation/delegation-graph.js +209 -0
  37. package/dist/delegation/delegation-graph.js.map +1 -0
  38. package/dist/delegation/index.d.ts +14 -0
  39. package/dist/delegation/index.d.ts.map +1 -0
  40. package/dist/delegation/index.js +30 -0
  41. package/dist/delegation/index.js.map +1 -0
  42. package/dist/delegation/statuslist-manager.d.ts +148 -0
  43. package/dist/delegation/statuslist-manager.d.ts.map +1 -0
  44. package/dist/delegation/statuslist-manager.js +221 -0
  45. package/dist/delegation/statuslist-manager.js.map +1 -0
  46. package/dist/delegation/storage/index.d.ts +9 -0
  47. package/dist/delegation/storage/index.d.ts.map +1 -0
  48. package/dist/delegation/storage/index.js +25 -0
  49. package/dist/delegation/storage/index.js.map +1 -0
  50. package/dist/delegation/storage/memory-graph-storage.d.ts +70 -0
  51. package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -0
  52. package/dist/delegation/storage/memory-graph-storage.js +149 -0
  53. package/dist/delegation/storage/memory-graph-storage.js.map +1 -0
  54. package/dist/delegation/storage/memory-statuslist-storage.d.ts +49 -0
  55. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -0
  56. package/dist/delegation/storage/memory-statuslist-storage.js +67 -0
  57. package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -0
  58. package/dist/delegation/utils.d.ts +19 -0
  59. package/dist/delegation/utils.d.ts.map +1 -0
  60. package/dist/delegation/utils.js +48 -0
  61. package/dist/delegation/utils.js.map +1 -0
  62. package/dist/delegation/vc-issuer.d.ts +135 -0
  63. package/dist/delegation/vc-issuer.d.ts.map +1 -0
  64. package/dist/delegation/vc-issuer.js +140 -0
  65. package/dist/delegation/vc-issuer.js.map +1 -0
  66. package/dist/delegation/vc-verifier.d.ts +213 -0
  67. package/dist/delegation/vc-verifier.d.ts.map +1 -0
  68. package/dist/delegation/vc-verifier.js +354 -0
  69. package/dist/delegation/vc-verifier.js.map +1 -0
  70. package/dist/index.d.ts +16 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +64 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/providers/base.d.ts +1 -1
  75. package/dist/providers/base.d.ts.map +1 -1
  76. package/dist/providers/memory.js +2 -2
  77. package/dist/providers/memory.js.map +1 -1
  78. package/dist/runtime/base.d.ts +23 -0
  79. package/dist/runtime/base.d.ts.map +1 -1
  80. package/dist/runtime/base.js +135 -12
  81. package/dist/runtime/base.js.map +1 -1
  82. package/dist/services/tool-protection.service.d.ts +55 -0
  83. package/dist/services/tool-protection.service.d.ts.map +1 -0
  84. package/dist/services/tool-protection.service.js +158 -0
  85. package/dist/services/tool-protection.service.js.map +1 -0
  86. package/dist/types/tool-protection.d.ts +103 -0
  87. package/dist/types/tool-protection.d.ts.map +1 -0
  88. package/dist/types/tool-protection.js +41 -0
  89. package/dist/types/tool-protection.js.map +1 -0
  90. package/dist/utils/cors.d.ts +44 -0
  91. package/dist/utils/cors.d.ts.map +1 -0
  92. package/dist/utils/cors.js +71 -0
  93. package/dist/utils/cors.js.map +1 -0
  94. package/dist/utils/index.d.ts +5 -0
  95. package/dist/utils/index.d.ts.map +1 -0
  96. package/dist/utils/index.js +21 -0
  97. package/dist/utils/index.js.map +1 -0
  98. package/package.json +11 -6
@@ -0,0 +1,44 @@
1
+ /**
2
+ * CORS Header Utilities
3
+ *
4
+ * Centralized CORS header management for MCP-I services.
5
+ * Includes Vary: Origin for cache optimization when origin scoping is implemented.
6
+ */
7
+ /**
8
+ * Type-safe CORS headers
9
+ * Compatible with Response headers and HeadersInit
10
+ */
11
+ export type CORSHeaders = Record<string, string>;
12
+ /**
13
+ * Standard CORS headers for well-known endpoints (.well-known/*)
14
+ * Includes Vary: Origin for future cache optimization when origin scoping is added
15
+ */
16
+ export declare const WELL_KNOWN_CORS_HEADERS: CORSHeaders;
17
+ /**
18
+ * CORS headers for MCP protocol responses
19
+ * Includes exposed headers for session management
20
+ */
21
+ export declare const MCP_CORS_HEADERS: CORSHeaders;
22
+ /**
23
+ * CORS preflight headers for OPTIONS requests
24
+ * Comprehensive header allowlist for MCP protocol
25
+ */
26
+ export declare const PREFLIGHT_CORS_HEADERS: CORSHeaders;
27
+ /**
28
+ * CORS headers for OAuth endpoints
29
+ * Includes additional headers required for OAuth 2.0 flows
30
+ */
31
+ export declare const OAUTH_CORS_HEADERS: CORSHeaders;
32
+ /**
33
+ * Merge CORS headers with existing headers
34
+ * Ensures CORS headers take precedence
35
+ */
36
+ export declare function mergeCORSHeaders(existingHeaders: Record<string, string>, corsHeaders?: CORSHeaders): Record<string, string>;
37
+ /**
38
+ * Apply CORS headers to an Express Response object
39
+ * For use with Express middleware
40
+ */
41
+ export declare function applyCORSHeaders(res: {
42
+ setHeader: (name: string, value: string) => void;
43
+ }, corsHeaders?: CORSHeaders): void;
44
+ //# sourceMappingURL=cors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../src/utils/cors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAGrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAKpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAMhC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,WAAW,GAAE,WAAqC,GACjD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE;IAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,EACzD,WAAW,GAAE,WAA8B,GAC1C,IAAI,CAMN"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * CORS Header Utilities
4
+ *
5
+ * Centralized CORS header management for MCP-I services.
6
+ * Includes Vary: Origin for cache optimization when origin scoping is implemented.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OAUTH_CORS_HEADERS = exports.PREFLIGHT_CORS_HEADERS = exports.MCP_CORS_HEADERS = exports.WELL_KNOWN_CORS_HEADERS = void 0;
10
+ exports.mergeCORSHeaders = mergeCORSHeaders;
11
+ exports.applyCORSHeaders = applyCORSHeaders;
12
+ /**
13
+ * Standard CORS headers for well-known endpoints (.well-known/*)
14
+ * Includes Vary: Origin for future cache optimization when origin scoping is added
15
+ */
16
+ exports.WELL_KNOWN_CORS_HEADERS = {
17
+ 'Access-Control-Allow-Origin': '*',
18
+ 'Vary': 'Origin'
19
+ };
20
+ /**
21
+ * CORS headers for MCP protocol responses
22
+ * Includes exposed headers for session management
23
+ */
24
+ exports.MCP_CORS_HEADERS = {
25
+ 'Access-Control-Allow-Origin': '*',
26
+ 'Access-Control-Expose-Headers': 'mcp-session-id',
27
+ 'Vary': 'Origin'
28
+ };
29
+ /**
30
+ * CORS preflight headers for OPTIONS requests
31
+ * Comprehensive header allowlist for MCP protocol
32
+ */
33
+ exports.PREFLIGHT_CORS_HEADERS = {
34
+ 'Access-Control-Allow-Origin': '*',
35
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
36
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization, mcp-session-id, mcp-protocol-version',
37
+ 'Vary': 'Origin'
38
+ };
39
+ /**
40
+ * CORS headers for OAuth endpoints
41
+ * Includes additional headers required for OAuth 2.0 flows
42
+ */
43
+ exports.OAUTH_CORS_HEADERS = {
44
+ 'Access-Control-Allow-Origin': '*',
45
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
46
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization, Accept, mcp-protocol-version',
47
+ 'Access-Control-Expose-Headers': 'Content-Type',
48
+ 'Vary': 'Origin'
49
+ };
50
+ /**
51
+ * Merge CORS headers with existing headers
52
+ * Ensures CORS headers take precedence
53
+ */
54
+ function mergeCORSHeaders(existingHeaders, corsHeaders = exports.WELL_KNOWN_CORS_HEADERS) {
55
+ return {
56
+ ...existingHeaders,
57
+ ...corsHeaders
58
+ };
59
+ }
60
+ /**
61
+ * Apply CORS headers to an Express Response object
62
+ * For use with Express middleware
63
+ */
64
+ function applyCORSHeaders(res, corsHeaders = exports.MCP_CORS_HEADERS) {
65
+ Object.entries(corsHeaders).forEach(([key, value]) => {
66
+ if (value !== undefined) {
67
+ res.setHeader(key, value);
68
+ }
69
+ });
70
+ }
71
+ //# sourceMappingURL=cors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cors.js","sourceRoot":"","sources":["../../src/utils/cors.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsDH,4CAQC;AAMD,4CASC;AArED;;;GAGG;AACU,QAAA,uBAAuB,GAAgB;IAClD,6BAA6B,EAAE,GAAG;IAClC,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;GAGG;AACU,QAAA,gBAAgB,GAAgB;IAC3C,6BAA6B,EAAE,GAAG;IAClC,+BAA+B,EAAE,gBAAgB;IACjD,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;GAGG;AACU,QAAA,sBAAsB,GAAgB;IACjD,6BAA6B,EAAE,GAAG;IAClC,8BAA8B,EAAE,oBAAoB;IACpD,8BAA8B,EAAE,mEAAmE;IACnG,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;GAGG;AACU,QAAA,kBAAkB,GAAgB;IAC7C,6BAA6B,EAAE,GAAG;IAClC,8BAA8B,EAAE,oBAAoB;IACpD,8BAA8B,EAAE,2DAA2D;IAC3F,+BAA+B,EAAE,cAAc;IAC/C,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,eAAuC,EACvC,cAA2B,+BAAuB;IAElD,OAAO;QACL,GAAG,eAAe;QAClB,GAAG,WAAW;KACf,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,GAAyD,EACzD,cAA2B,wBAAgB;IAE3C,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Utility exports
3
+ */
4
+ export * from './cors';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Utility exports
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./cors"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,yCAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/mcp-i-core",
3
- "version": "1.0.0",
3
+ "version": "1.1.1-canary.0",
4
4
  "description": "Core provider-based architecture for MCP-I framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,9 +19,12 @@
19
19
  "scripts": {
20
20
  "build": "tsc",
21
21
  "dev": "tsc --watch",
22
- "test": "vitest",
23
22
  "lint": "eslint src/**/*.ts",
24
- "type-check": "tsc --noEmit"
23
+ "type-check": "tsc --noEmit",
24
+ "test": "vitest run",
25
+ "test:watch": "vitest",
26
+ "test:e2e": "vitest run src/__tests__/delegation-e2e.test.ts",
27
+ "audit:compliance": "tsx scripts/audit-compliance.ts"
25
28
  },
26
29
  "keywords": [
27
30
  "mcp-i",
@@ -32,16 +35,18 @@
32
35
  "core"
33
36
  ],
34
37
  "dependencies": {
35
- "@kya-os/contracts": "^1.2.0",
38
+ "@kya-os/contracts": "workspace:*",
36
39
  "@modelcontextprotocol/sdk": "^1.11.4"
37
40
  },
38
41
  "devDependencies": {
39
42
  "@types/node": "^20.0.0",
40
43
  "@typescript-eslint/eslint-plugin": "^6.0.0",
41
44
  "@typescript-eslint/parser": "^6.0.0",
45
+ "@vitest/coverage-v8": "^3.2.4",
42
46
  "eslint": "^8.0.0",
47
+ "tsx": "^4.7.0",
43
48
  "typescript": "^5.3.0",
44
- "vitest": "^1.0.0"
49
+ "vitest": "^3.2.4"
45
50
  },
46
51
  "engines": {
47
52
  "node": ">=20.0.0"
@@ -56,4 +61,4 @@
56
61
  "url": "https://github.com/modelcontextprotocol-identity/mcp-i/issues"
57
62
  },
58
63
  "homepage": "https://github.com/modelcontextprotocol-identity/mcp-i#readme"
59
- }
64
+ }