@vinkius-core/mcp-fusion 1.11.0 → 2.0.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/dist/prompt/CursorCodec.d.ts +4 -2
- package/dist/prompt/CursorCodec.d.ts.map +1 -1
- package/dist/prompt/CursorCodec.js +55 -11
- package/dist/prompt/CursorCodec.js.map +1 -1
- package/package.json +5 -18
- package/CHANGELOG.md +0 -616
- package/LICENSE +0 -190
- package/README.md +0 -341
- package/llms.txt +0 -593
|
@@ -17,14 +17,16 @@ export interface CursorCodecOptions {
|
|
|
17
17
|
/**
|
|
18
18
|
* Stateless Cryptographic Cursor for pagination using Web Crypto API.
|
|
19
19
|
*
|
|
20
|
-
* Works in Node >=
|
|
20
|
+
* Works in Node >= 16, Deno, Bun, and Cloudflare Workers.
|
|
21
21
|
*/
|
|
22
22
|
export declare class CursorCodec {
|
|
23
23
|
private readonly _mode;
|
|
24
|
-
private
|
|
24
|
+
private _secretBytes;
|
|
25
|
+
private readonly _providedSecret;
|
|
25
26
|
private _hmacKey?;
|
|
26
27
|
private _aesKey?;
|
|
27
28
|
constructor(options?: CursorCodecOptions);
|
|
29
|
+
private ensureSecret;
|
|
28
30
|
private getHmacKey;
|
|
29
31
|
private getAesKey;
|
|
30
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorCodec.d.ts","sourceRoot":"","sources":["../../src/prompt/CursorCodec.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"CursorCodec.d.ts","sourceRoot":"","sources":["../../src/prompt/CursorCodec.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAyDD;;;;GAIG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,CAAY;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAY;gBAEhB,OAAO,CAAC,EAAE,kBAAkB;YAe1B,YAAY;YAOZ,UAAU;YAeV,SAAS;IAevB;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BrD;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAsDnE"}
|
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazily resolves the Web Crypto API.
|
|
3
|
+
* Works in Node >= 16 (via node:crypto.webcrypto), Node >= 19 (globalThis.crypto),
|
|
4
|
+
* Deno, Bun, and Cloudflare Workers.
|
|
5
|
+
*/
|
|
6
|
+
let _resolvedCrypto;
|
|
7
|
+
async function getCrypto() {
|
|
8
|
+
if (_resolvedCrypto)
|
|
9
|
+
return _resolvedCrypto;
|
|
10
|
+
// globalThis.crypto.subtle is available in Node >= 19, Deno, Bun, CF Workers
|
|
11
|
+
if (typeof globalThis.crypto !== 'undefined' && globalThis.crypto.subtle) {
|
|
12
|
+
_resolvedCrypto = globalThis.crypto;
|
|
13
|
+
return _resolvedCrypto;
|
|
14
|
+
}
|
|
15
|
+
// Node.js 16-18 fallback — webcrypto available via node:crypto module
|
|
16
|
+
// Variable indirection prevents TypeScript from resolving the module statically (no @types/node)
|
|
17
|
+
try {
|
|
18
|
+
const mod = 'node:' + 'crypto';
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
20
|
+
const nodeCrypto = (await import(mod)).webcrypto;
|
|
21
|
+
if (nodeCrypto?.subtle) {
|
|
22
|
+
_resolvedCrypto = nodeCrypto;
|
|
23
|
+
return _resolvedCrypto;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch { /* not in Node */ }
|
|
27
|
+
throw new Error('CursorCodec requires the Web Crypto API. ' +
|
|
28
|
+
'Ensure globalThis.crypto.subtle is available or use Node >= 16.');
|
|
29
|
+
}
|
|
1
30
|
function base64UrlEncode(buffer) {
|
|
2
31
|
const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
|
|
3
32
|
let binary = '';
|
|
@@ -21,15 +50,17 @@ function base64UrlDecode(base64) {
|
|
|
21
50
|
/**
|
|
22
51
|
* Stateless Cryptographic Cursor for pagination using Web Crypto API.
|
|
23
52
|
*
|
|
24
|
-
* Works in Node >=
|
|
53
|
+
* Works in Node >= 16, Deno, Bun, and Cloudflare Workers.
|
|
25
54
|
*/
|
|
26
55
|
export class CursorCodec {
|
|
27
56
|
_mode;
|
|
28
57
|
_secretBytes;
|
|
58
|
+
_providedSecret;
|
|
29
59
|
_hmacKey;
|
|
30
60
|
_aesKey;
|
|
31
61
|
constructor(options) {
|
|
32
62
|
this._mode = options?.mode ?? 'signed';
|
|
63
|
+
this._providedSecret = options?.secret;
|
|
33
64
|
if (options?.secret) {
|
|
34
65
|
const encoder = new TextEncoder();
|
|
35
66
|
const buf = encoder.encode(options.secret);
|
|
@@ -38,19 +69,28 @@ export class CursorCodec {
|
|
|
38
69
|
}
|
|
39
70
|
this._secretBytes = buf;
|
|
40
71
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
72
|
+
// When no secret provided, _secretBytes is deferred to first use (async)
|
|
73
|
+
}
|
|
74
|
+
async ensureSecret() {
|
|
75
|
+
if (this._secretBytes)
|
|
76
|
+
return this._secretBytes;
|
|
77
|
+
const crypto = await getCrypto();
|
|
78
|
+
this._secretBytes = crypto.getRandomValues(new Uint8Array(32));
|
|
79
|
+
return this._secretBytes;
|
|
44
80
|
}
|
|
45
81
|
async getHmacKey() {
|
|
46
82
|
if (!this._hmacKey) {
|
|
47
|
-
|
|
83
|
+
const secret = await this.ensureSecret();
|
|
84
|
+
const crypto = await getCrypto();
|
|
85
|
+
this._hmacKey = await crypto.subtle.importKey('raw', secret, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign', 'verify']);
|
|
48
86
|
}
|
|
49
87
|
return this._hmacKey;
|
|
50
88
|
}
|
|
51
89
|
async getAesKey() {
|
|
52
90
|
if (!this._aesKey) {
|
|
53
|
-
|
|
91
|
+
const secret = await this.ensureSecret();
|
|
92
|
+
const crypto = await getCrypto();
|
|
93
|
+
this._aesKey = await crypto.subtle.importKey('raw', secret, 'AES-GCM', false, ['encrypt', 'decrypt']);
|
|
54
94
|
}
|
|
55
95
|
return this._aesKey;
|
|
56
96
|
}
|
|
@@ -62,15 +102,17 @@ export class CursorCodec {
|
|
|
62
102
|
const dataBuffer = new TextEncoder().encode(data);
|
|
63
103
|
if (this._mode === 'encrypted') {
|
|
64
104
|
const aesKey = await this.getAesKey();
|
|
65
|
-
const
|
|
66
|
-
const
|
|
105
|
+
const crypto = await getCrypto();
|
|
106
|
+
const iv = crypto.getRandomValues(new Uint8Array(12));
|
|
107
|
+
const encryptedBuf = await crypto.subtle.encrypt({ name: 'AES-GCM', iv: iv }, aesKey, dataBuffer);
|
|
67
108
|
// Web Crypto AES-GCM appends the 16-byte auth tag at the end of the ciphertext
|
|
68
109
|
return `${base64UrlEncode(iv)}.${base64UrlEncode(encryptedBuf)}`;
|
|
69
110
|
}
|
|
70
111
|
else {
|
|
71
112
|
// Signed HMAC
|
|
72
113
|
const hmacKey = await this.getHmacKey();
|
|
73
|
-
const
|
|
114
|
+
const cryptoApi = await getCrypto();
|
|
115
|
+
const signatureBuf = await cryptoApi.subtle.sign('HMAC', hmacKey, dataBuffer);
|
|
74
116
|
return `${base64UrlEncode(dataBuffer)}.${base64UrlEncode(signatureBuf)}`;
|
|
75
117
|
}
|
|
76
118
|
}
|
|
@@ -90,7 +132,8 @@ export class CursorCodec {
|
|
|
90
132
|
const iv = base64UrlDecode(ivStr);
|
|
91
133
|
const encrypted = base64UrlDecode(encryptedStr);
|
|
92
134
|
const aesKey = await this.getAesKey();
|
|
93
|
-
const
|
|
135
|
+
const cryptoApi = await getCrypto();
|
|
136
|
+
const decryptedBuf = await cryptoApi.subtle.decrypt({ name: 'AES-GCM', iv: iv }, aesKey, encrypted);
|
|
94
137
|
const decrypted = new TextDecoder().decode(decryptedBuf);
|
|
95
138
|
return JSON.parse(decrypted);
|
|
96
139
|
}
|
|
@@ -105,7 +148,8 @@ export class CursorCodec {
|
|
|
105
148
|
const dataBuffer = base64UrlDecode(dataB64);
|
|
106
149
|
const signatureBuf = base64UrlDecode(signatureB64);
|
|
107
150
|
const hmacKey = await this.getHmacKey();
|
|
108
|
-
const
|
|
151
|
+
const cryptoApi2 = await getCrypto();
|
|
152
|
+
const isValid = await cryptoApi2.subtle.verify('HMAC', hmacKey, signatureBuf, dataBuffer);
|
|
109
153
|
if (!isValid)
|
|
110
154
|
return undefined;
|
|
111
155
|
const decrypted = new TextDecoder().decode(dataBuffer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorCodec.js","sourceRoot":"","sources":["../../src/prompt/CursorCodec.ts"],"names":[],"mappings":"AAmBA,SAAS,eAAe,CAAC,MAAgC;IACrD,MAAM,KAAK,GAAG,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;SACd,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACnC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACH,KAAK,CAAa;
|
|
1
|
+
{"version":3,"file":"CursorCodec.js","sourceRoot":"","sources":["../../src/prompt/CursorCodec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vinkius-core/mcp-fusion",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "MVA (Model-View-Agent) framework for the Model Context Protocol. Structured perception packages with Presenters, cognitive guardrails, self-healing errors, action consolidation, and tRPC-style type safety — so AI agents perceive and act on your data deterministically.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,10 +21,7 @@
|
|
|
21
21
|
"lint:fix": "eslint src/ --fix",
|
|
22
22
|
"test": "vitest run",
|
|
23
23
|
"test:coverage": "vitest run --coverage",
|
|
24
|
-
"prepublishOnly": "npm run build"
|
|
25
|
-
"docs:dev": "vitepress dev docs",
|
|
26
|
-
"docs:build": "vitepress build docs",
|
|
27
|
-
"docs:preview": "vitepress preview docs"
|
|
24
|
+
"prepublishOnly": "npm run build"
|
|
28
25
|
},
|
|
29
26
|
"keywords": [
|
|
30
27
|
"mcp",
|
|
@@ -47,7 +44,8 @@
|
|
|
47
44
|
"author": "Vinkius Labs",
|
|
48
45
|
"repository": {
|
|
49
46
|
"type": "git",
|
|
50
|
-
"url": "git+https://github.com/vinkius-labs/mcp-fusion.git"
|
|
47
|
+
"url": "git+https://github.com/vinkius-labs/mcp-fusion.git",
|
|
48
|
+
"directory": "packages/core"
|
|
51
49
|
},
|
|
52
50
|
"bugs": {
|
|
53
51
|
"url": "https://github.com/vinkius-labs/mcp-fusion/issues"
|
|
@@ -57,8 +55,7 @@
|
|
|
57
55
|
"dist",
|
|
58
56
|
"README.md",
|
|
59
57
|
"CHANGELOG.md",
|
|
60
|
-
"LICENSE"
|
|
61
|
-
"llms.txt"
|
|
58
|
+
"LICENSE"
|
|
62
59
|
],
|
|
63
60
|
"engines": {
|
|
64
61
|
"node": ">=18.0.0"
|
|
@@ -74,15 +71,5 @@
|
|
|
74
71
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
75
72
|
"zod": "^3.25.1 || ^4.0.0"
|
|
76
73
|
},
|
|
77
|
-
"devDependencies": {
|
|
78
|
-
"@eslint/js": "^10.0.1",
|
|
79
|
-
"@vitest/coverage-v8": "^3.2.4",
|
|
80
|
-
"eslint": "^10.0.1",
|
|
81
|
-
"typescript": "^5.7.3",
|
|
82
|
-
"typescript-eslint": "^8.56.0",
|
|
83
|
-
"vitepress": "^1.6.4",
|
|
84
|
-
"vitest": "^3.0.5",
|
|
85
|
-
"vue": "^3.5.28"
|
|
86
|
-
},
|
|
87
74
|
"license": "Apache-2.0"
|
|
88
75
|
}
|