@vinkius-core/mcp-fusion 2.5.0 → 2.7.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/client/FusionClient.d.ts +122 -1
- package/dist/client/FusionClient.d.ts.map +1 -1
- package/dist/client/FusionClient.js +173 -11
- package/dist/client/FusionClient.js.map +1 -1
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/core/StandardSchema.d.ts +178 -0
- package/dist/core/StandardSchema.d.ts.map +1 -0
- package/dist/core/StandardSchema.js +166 -0
- package/dist/core/StandardSchema.js.map +1 -0
- package/dist/core/createGroup.d.ts +140 -0
- package/dist/core/createGroup.d.ts.map +1 -0
- package/dist/core/createGroup.js +133 -0
- package/dist/core/createGroup.js.map +1 -0
- package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -1
- package/dist/core/execution/ExecutionPipeline.js +6 -2
- package/dist/core/execution/ExecutionPipeline.js.map +1 -1
- package/dist/core/index.d.ts +7 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/initFusion.d.ts +201 -0
- package/dist/core/initFusion.d.ts.map +1 -0
- package/dist/core/initFusion.js +134 -0
- package/dist/core/initFusion.js.map +1 -0
- package/dist/core/response.d.ts +49 -2
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +27 -5
- package/dist/core/response.js.map +1 -1
- package/dist/index.d.ts +16 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/presenter/ZodDescriptionExtractor.d.ts +54 -0
- package/dist/presenter/ZodDescriptionExtractor.d.ts.map +1 -0
- package/dist/presenter/ZodDescriptionExtractor.js +131 -0
- package/dist/presenter/ZodDescriptionExtractor.js.map +1 -0
- package/dist/presenter/definePresenter.d.ts +172 -0
- package/dist/presenter/definePresenter.d.ts.map +1 -0
- package/dist/presenter/definePresenter.js +96 -0
- package/dist/presenter/definePresenter.js.map +1 -0
- package/dist/presenter/index.d.ts +3 -0
- package/dist/presenter/index.d.ts.map +1 -1
- package/dist/presenter/index.js +4 -0
- package/dist/presenter/index.js.map +1 -1
- package/dist/server/DevServer.d.ts +96 -0
- package/dist/server/DevServer.d.ts.map +1 -0
- package/dist/server/DevServer.js +187 -0
- package/dist/server/DevServer.js.map +1 -0
- package/dist/server/autoDiscover.d.ts +63 -0
- package/dist/server/autoDiscover.d.ts.map +1 -0
- package/dist/server/autoDiscover.js +157 -0
- package/dist/server/autoDiscover.js.map +1 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +4 -0
- package/dist/server/index.js.map +1 -1
- package/dist/state-sync/PolicyValidator.d.ts +36 -0
- package/dist/state-sync/PolicyValidator.d.ts.map +1 -1
- package/dist/state-sync/PolicyValidator.js +35 -0
- package/dist/state-sync/PolicyValidator.js.map +1 -1
- package/dist/state-sync/ResponseDecorator.d.ts.map +1 -1
- package/dist/state-sync/ResponseDecorator.js +2 -1
- package/dist/state-sync/ResponseDecorator.js.map +1 -1
- package/dist/state-sync/StateSyncLayer.d.ts +5 -4
- package/dist/state-sync/StateSyncLayer.d.ts.map +1 -1
- package/dist/state-sync/StateSyncLayer.js +35 -4
- package/dist/state-sync/StateSyncLayer.js.map +1 -1
- package/dist/state-sync/index.d.ts +3 -1
- package/dist/state-sync/index.d.ts.map +1 -1
- package/dist/state-sync/index.js +1 -0
- package/dist/state-sync/index.js.map +1 -1
- package/dist/state-sync/types.d.ts +62 -0
- package/dist/state-sync/types.d.ts.map +1 -1
- package/package.json +39 -2
|
@@ -42,6 +42,8 @@ import { resolveInvalidations } from './CausalEngine.js';
|
|
|
42
42
|
import { decorateResponse } from './ResponseDecorator.js';
|
|
43
43
|
export class StateSyncLayer {
|
|
44
44
|
_engine;
|
|
45
|
+
_onInvalidation;
|
|
46
|
+
_notificationSink;
|
|
45
47
|
/**
|
|
46
48
|
* Per-tool-name cache of decorated McpTool objects.
|
|
47
49
|
*
|
|
@@ -51,10 +53,9 @@ export class StateSyncLayer {
|
|
|
51
53
|
* on every `tools/list` request — which is the hottest path since
|
|
52
54
|
* it runs at the start of every LLM conversation.
|
|
53
55
|
*
|
|
54
|
-
* The cache key is the tool name
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* hit rate approaches 100%.
|
|
56
|
+
* The cache key is the tool name — tool definitions are immutable
|
|
57
|
+
* after registration, so the name alone is sufficient.
|
|
58
|
+
* Cache hit rate approaches 100%.
|
|
58
59
|
*/
|
|
59
60
|
_decoratedToolCache = new Map();
|
|
60
61
|
/**
|
|
@@ -69,6 +70,8 @@ export class StateSyncLayer {
|
|
|
69
70
|
*/
|
|
70
71
|
constructor(config) {
|
|
71
72
|
this._engine = new PolicyEngine(config.policies, config.defaults);
|
|
73
|
+
this._onInvalidation = config.onInvalidation;
|
|
74
|
+
this._notificationSink = config.notificationSink;
|
|
72
75
|
}
|
|
73
76
|
/**
|
|
74
77
|
* Decorate all tool descriptions with their resolved Cache-Control directives.
|
|
@@ -101,6 +104,34 @@ export class StateSyncLayer {
|
|
|
101
104
|
const policy = this._engine.resolve(toolName);
|
|
102
105
|
const invalidations = resolveInvalidations(policy, result.isError ?? false);
|
|
103
106
|
if (invalidations.length > 0) {
|
|
107
|
+
// Fire observability hook (sync, fire-and-forget)
|
|
108
|
+
if (this._onInvalidation) {
|
|
109
|
+
const event = {
|
|
110
|
+
causedBy: toolName,
|
|
111
|
+
patterns: invalidations,
|
|
112
|
+
timestamp: new Date().toISOString(),
|
|
113
|
+
};
|
|
114
|
+
try {
|
|
115
|
+
this._onInvalidation(event);
|
|
116
|
+
}
|
|
117
|
+
catch { /* observer must not break the pipeline */ }
|
|
118
|
+
}
|
|
119
|
+
// Emit protocol-level notifications (fire-and-forget, safe for async sinks)
|
|
120
|
+
if (this._notificationSink) {
|
|
121
|
+
for (const pattern of invalidations) {
|
|
122
|
+
const notification = {
|
|
123
|
+
method: 'notifications/resources/updated',
|
|
124
|
+
params: { uri: `fusion://stale/${pattern}` },
|
|
125
|
+
};
|
|
126
|
+
try {
|
|
127
|
+
const maybePromise = this._notificationSink(notification);
|
|
128
|
+
if (maybePromise instanceof Promise) {
|
|
129
|
+
maybePromise.catch(() => { });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch { /* swallow sync errors — best-effort */ }
|
|
133
|
+
}
|
|
134
|
+
}
|
|
104
135
|
return decorateResponse(result, invalidations, toolName);
|
|
105
136
|
}
|
|
106
137
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateSyncLayer.js","sourceRoot":"","sources":["../../src/state-sync/StateSyncLayer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAAwB,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,OAAO,cAAc;IACN,OAAO,CAAe;
|
|
1
|
+
{"version":3,"file":"StateSyncLayer.js","sourceRoot":"","sources":["../../src/state-sync/StateSyncLayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
* @module
|
|
19
19
|
*/
|
|
20
20
|
export { StateSyncLayer } from './StateSyncLayer.js';
|
|
21
|
-
export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, } from './types.js';
|
|
21
|
+
export type { CacheDirective, SyncPolicy, StateSyncConfig, ResolvedPolicy, InvalidationEvent, ResourceNotification, } from './types.js';
|
|
22
22
|
export { PolicyEngine } from './PolicyEngine.js';
|
|
23
23
|
export { matchGlob } from './GlobMatcher.js';
|
|
24
|
+
export { detectOverlaps } from './PolicyValidator.js';
|
|
25
|
+
export type { OverlapWarning } from './PolicyValidator.js';
|
|
24
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state-sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state-sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,YAAY,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/state-sync/index.js
CHANGED
|
@@ -22,4 +22,5 @@ export { StateSyncLayer } from './StateSyncLayer.js';
|
|
|
22
22
|
// ── Infrastructure (advanced usage) ──────────────────────
|
|
23
23
|
export { PolicyEngine } from './PolicyEngine.js';
|
|
24
24
|
export { matchGlob } from './GlobMatcher.js';
|
|
25
|
+
export { detectOverlaps } from './PolicyValidator.js';
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4DAA4D;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state-sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4DAA4D;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAYrD,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -96,6 +96,68 @@ export interface StateSyncConfig {
|
|
|
96
96
|
readonly defaults?: {
|
|
97
97
|
readonly cacheControl?: CacheDirective;
|
|
98
98
|
};
|
|
99
|
+
/**
|
|
100
|
+
* Observability hook invoked after each causal invalidation event.
|
|
101
|
+
*
|
|
102
|
+
* Use this to log, trace, or count invalidation events without
|
|
103
|
+
* coupling the state-sync engine to a specific observability backend.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* stateSync: {
|
|
108
|
+
* policies: [...],
|
|
109
|
+
* onInvalidation: (event) => {
|
|
110
|
+
* console.log(`[StateSync] ${event.causedBy} invalidated ${event.patterns.join(', ')}`);
|
|
111
|
+
* metrics.increment('statesync.invalidation', { tool: event.causedBy });
|
|
112
|
+
* },
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
readonly onInvalidation?: (event: InvalidationEvent) => void;
|
|
117
|
+
/**
|
|
118
|
+
* Protocol-level notification sink for MCP resource change events.
|
|
119
|
+
*
|
|
120
|
+
* When provided, causal invalidation also emits
|
|
121
|
+
* `notifications/resources/updated` MCP protocol messages
|
|
122
|
+
* in addition to the in-band XML signal.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* stateSync: {
|
|
127
|
+
* policies: [...],
|
|
128
|
+
* notificationSink: async (notification) => {
|
|
129
|
+
* await server.sendNotification(notification);
|
|
130
|
+
* },
|
|
131
|
+
* }
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
readonly notificationSink?: (notification: ResourceNotification) => void | Promise<void>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Event emitted when causal invalidation is triggered.
|
|
138
|
+
*
|
|
139
|
+
* @see {@link StateSyncConfig.onInvalidation}
|
|
140
|
+
*/
|
|
141
|
+
export interface InvalidationEvent {
|
|
142
|
+
/** The tool that caused the invalidation (fully qualified name). */
|
|
143
|
+
readonly causedBy: string;
|
|
144
|
+
/** Glob patterns that were invalidated. */
|
|
145
|
+
readonly patterns: readonly string[];
|
|
146
|
+
/** ISO-8601 timestamp of the event. */
|
|
147
|
+
readonly timestamp: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* MCP protocol notification for resource changes.
|
|
151
|
+
*
|
|
152
|
+
* Mirrors the `notifications/resources/updated` JSON-RPC message.
|
|
153
|
+
*
|
|
154
|
+
* @see {@link StateSyncConfig.notificationSink}
|
|
155
|
+
*/
|
|
156
|
+
export interface ResourceNotification {
|
|
157
|
+
readonly method: 'notifications/resources/updated';
|
|
158
|
+
readonly params: {
|
|
159
|
+
readonly uri: string;
|
|
160
|
+
};
|
|
99
161
|
}
|
|
100
162
|
/**
|
|
101
163
|
* Result of resolving a policy for a specific tool name.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state-sync/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAItD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,UAAU;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,eAAe;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAEzC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAChB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;KAC1C,CAAC;CACL;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state-sync/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAItD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,UAAU;IACvB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,gEAAgE;IAChE,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IAEvC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,eAAe;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IAEzC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAChB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;KAC1C,CAAC;IAEF;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAE7D;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5F;AAID;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE;QACb,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACxB,CAAC;CACL;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vinkius-core/mcp-fusion",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.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",
|
|
@@ -13,6 +13,38 @@
|
|
|
13
13
|
"./client": {
|
|
14
14
|
"import": "./dist/client/index.js",
|
|
15
15
|
"types": "./dist/client/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./ui": {
|
|
18
|
+
"import": "./dist/presenter/ui.js",
|
|
19
|
+
"types": "./dist/presenter/ui.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./presenter": {
|
|
22
|
+
"import": "./dist/presenter/index.js",
|
|
23
|
+
"types": "./dist/presenter/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./prompt": {
|
|
26
|
+
"import": "./dist/prompt/index.js",
|
|
27
|
+
"types": "./dist/prompt/index.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./state-sync": {
|
|
30
|
+
"import": "./dist/state-sync/index.js",
|
|
31
|
+
"types": "./dist/state-sync/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./observability": {
|
|
34
|
+
"import": "./dist/observability/index.js",
|
|
35
|
+
"types": "./dist/observability/index.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./dev": {
|
|
38
|
+
"import": "./dist/server/DevServer.js",
|
|
39
|
+
"types": "./dist/server/DevServer.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./schema": {
|
|
42
|
+
"import": "./dist/core/StandardSchema.js",
|
|
43
|
+
"types": "./dist/core/StandardSchema.d.ts"
|
|
44
|
+
},
|
|
45
|
+
"./testing": {
|
|
46
|
+
"import": "./dist/testing/MvaMetaSymbol.js",
|
|
47
|
+
"types": "./dist/testing/MvaMetaSymbol.d.ts"
|
|
16
48
|
}
|
|
17
49
|
},
|
|
18
50
|
"scripts": {
|
|
@@ -50,7 +82,7 @@
|
|
|
50
82
|
"bugs": {
|
|
51
83
|
"url": "https://github.com/vinkius-labs/mcp-fusion/issues"
|
|
52
84
|
},
|
|
53
|
-
"homepage": "https://
|
|
85
|
+
"homepage": "https://mcp-fusion.vinkius.com/",
|
|
54
86
|
"files": [
|
|
55
87
|
"dist",
|
|
56
88
|
"README.md",
|
|
@@ -71,5 +103,10 @@
|
|
|
71
103
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
72
104
|
"zod": "^3.25.1 || ^4.0.0"
|
|
73
105
|
},
|
|
106
|
+
"peerDependenciesMeta": {
|
|
107
|
+
"zod": {
|
|
108
|
+
"optional": true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
74
111
|
"license": "Apache-2.0"
|
|
75
112
|
}
|