@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.
- package/README.md +33 -0
- package/dist/__tests__/utils/mock-providers.d.ts +102 -0
- package/dist/__tests__/utils/mock-providers.d.ts.map +1 -0
- package/dist/__tests__/utils/mock-providers.js +270 -0
- package/dist/__tests__/utils/mock-providers.js.map +1 -0
- package/dist/cache/tool-protection-cache.d.ts +73 -0
- package/dist/cache/tool-protection-cache.d.ts.map +1 -0
- package/dist/cache/tool-protection-cache.js +83 -0
- package/dist/cache/tool-protection-cache.js.map +1 -0
- package/dist/compliance/index.d.ts +8 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +24 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/compliance/schema-registry.d.ts +50 -0
- package/dist/compliance/schema-registry.d.ts.map +1 -0
- package/dist/compliance/schema-registry.js +438 -0
- package/dist/compliance/schema-registry.js.map +1 -0
- package/dist/compliance/schema-verifier-v2.d.ts +110 -0
- package/dist/compliance/schema-verifier-v2.d.ts.map +1 -0
- package/dist/compliance/schema-verifier-v2.js +510 -0
- package/dist/compliance/schema-verifier-v2.js.map +1 -0
- package/dist/compliance/schema-verifier.d.ts +110 -0
- package/dist/compliance/schema-verifier.d.ts.map +1 -0
- package/dist/compliance/schema-verifier.js +518 -0
- package/dist/compliance/schema-verifier.js.map +1 -0
- package/dist/delegation/bitstring.d.ts +139 -0
- package/dist/delegation/bitstring.d.ts.map +1 -0
- package/dist/delegation/bitstring.js +213 -0
- package/dist/delegation/bitstring.js.map +1 -0
- package/dist/delegation/cascading-revocation.d.ts +162 -0
- package/dist/delegation/cascading-revocation.d.ts.map +1 -0
- package/dist/delegation/cascading-revocation.js +263 -0
- package/dist/delegation/cascading-revocation.js.map +1 -0
- package/dist/delegation/delegation-graph.d.ts +178 -0
- package/dist/delegation/delegation-graph.d.ts.map +1 -0
- package/dist/delegation/delegation-graph.js +209 -0
- package/dist/delegation/delegation-graph.js.map +1 -0
- package/dist/delegation/index.d.ts +14 -0
- package/dist/delegation/index.d.ts.map +1 -0
- package/dist/delegation/index.js +30 -0
- package/dist/delegation/index.js.map +1 -0
- package/dist/delegation/statuslist-manager.d.ts +148 -0
- package/dist/delegation/statuslist-manager.d.ts.map +1 -0
- package/dist/delegation/statuslist-manager.js +221 -0
- package/dist/delegation/statuslist-manager.js.map +1 -0
- package/dist/delegation/storage/index.d.ts +9 -0
- package/dist/delegation/storage/index.d.ts.map +1 -0
- package/dist/delegation/storage/index.js +25 -0
- package/dist/delegation/storage/index.js.map +1 -0
- package/dist/delegation/storage/memory-graph-storage.d.ts +70 -0
- package/dist/delegation/storage/memory-graph-storage.d.ts.map +1 -0
- package/dist/delegation/storage/memory-graph-storage.js +149 -0
- package/dist/delegation/storage/memory-graph-storage.js.map +1 -0
- package/dist/delegation/storage/memory-statuslist-storage.d.ts +49 -0
- package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +1 -0
- package/dist/delegation/storage/memory-statuslist-storage.js +67 -0
- package/dist/delegation/storage/memory-statuslist-storage.js.map +1 -0
- package/dist/delegation/utils.d.ts +19 -0
- package/dist/delegation/utils.d.ts.map +1 -0
- package/dist/delegation/utils.js +48 -0
- package/dist/delegation/utils.js.map +1 -0
- package/dist/delegation/vc-issuer.d.ts +135 -0
- package/dist/delegation/vc-issuer.d.ts.map +1 -0
- package/dist/delegation/vc-issuer.js +140 -0
- package/dist/delegation/vc-issuer.js.map +1 -0
- package/dist/delegation/vc-verifier.d.ts +213 -0
- package/dist/delegation/vc-verifier.d.ts.map +1 -0
- package/dist/delegation/vc-verifier.js +354 -0
- package/dist/delegation/vc-verifier.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/base.d.ts +1 -1
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/memory.js +2 -2
- package/dist/providers/memory.js.map +1 -1
- package/dist/runtime/base.d.ts +23 -0
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +135 -12
- package/dist/runtime/base.js.map +1 -1
- package/dist/services/tool-protection.service.d.ts +55 -0
- package/dist/services/tool-protection.service.d.ts.map +1 -0
- package/dist/services/tool-protection.service.js +158 -0
- package/dist/services/tool-protection.service.js.map +1 -0
- package/dist/types/tool-protection.d.ts +103 -0
- package/dist/types/tool-protection.d.ts.map +1 -0
- package/dist/types/tool-protection.js +41 -0
- package/dist/types/tool-protection.js.map +1 -0
- package/dist/utils/cors.d.ts +44 -0
- package/dist/utils/cors.d.ts.map +1 -0
- package/dist/utils/cors.js +71 -0
- package/dist/utils/cors.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- 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 @@
|
|
|
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.
|
|
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": "
|
|
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": "^
|
|
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
|
+
}
|