@epam/ai-dial-mcp-apps 1.1.0-dev.467 → 1.1.0-dev.471
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/index.d.ts +0 -1
- package/index.d.ts.map +1 -1
- package/index.js +87 -88
- package/package.json +8 -11
- package/constants/mcp-protocol.d.ts +0 -17
- package/constants/mcp-protocol.d.ts.map +0 -1
- package/constants.js +0 -7
package/index.d.ts
CHANGED
|
@@ -4,5 +4,4 @@ export { useMcpAppResponseCache } from './hooks/useMcpAppResponseCache/useMcpApp
|
|
|
4
4
|
export type { McpDeploymentKind, McpAppToolDiscovery, McpAppToolRef, McpAppToolCallSeed, FetchMcpAppResourceHtml, CallMcpAppTool, CachedMcpAppResponse, McpAppResponseCache, McpAppHostAdapter, } from './models/mcp-apps';
|
|
5
5
|
export { McpAppInlinePreviewStatus } from './models/mcp-apps';
|
|
6
6
|
export { collectToolCallNames, findMcpAppForMessage, mcpAppCanvasKey, computeMcpAppSeedKey, resolveMcpAppToolCallSeed, resolveMcpAppToolResult, } from './utils/mcp-app';
|
|
7
|
-
export { MCP_CLIENT_INFO, MCP_PROTOCOL_VERSION, MCP_PROTOCOL_VERSION_HEADER, MCP_SESSION_ID_HEADER, } from './constants/mcp-protocol';
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
1
|
+
import { AttachmentContentType as e, McpAppCanvasRenderer as t } from "@epam/ai-dial-attachment-canvas";
|
|
2
|
+
import { DIAL_ICON_SIZE as n, DIAL_KIT_ICON_STROKE as r, ElementSize as i, GhostIconButton as a, Spinner as o } from "@epam/ai-dial-ui-kit";
|
|
3
|
+
import { IconAlertTriangle as s, IconArrowsMaximize as c, IconRefresh as l } from "@tabler/icons-react";
|
|
4
|
+
import { memo as u, useCallback as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
|
|
5
|
+
import { MessageRole as g } from "@epam/ai-dial-chat-shared";
|
|
6
|
+
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
8
7
|
//#region src/models/mcp-apps.ts
|
|
9
|
-
var
|
|
8
|
+
var y = /* @__PURE__ */ function(e) {
|
|
10
9
|
return e.Loading = "loading", e.Ready = "ready", e.Error = "error", e.Unavailable = "unavailable", e;
|
|
11
|
-
}({}),
|
|
10
|
+
}({}), b = (e) => {
|
|
12
11
|
try {
|
|
13
12
|
let t = JSON.parse(e);
|
|
14
13
|
return typeof t == "object" && t ? t : {};
|
|
15
14
|
} catch {
|
|
16
15
|
return {};
|
|
17
16
|
}
|
|
18
|
-
},
|
|
17
|
+
}, x = (e) => {
|
|
19
18
|
let t = /* @__PURE__ */ new Map();
|
|
20
19
|
for (let n of e?.tool_messages ?? []) {
|
|
21
20
|
for (let e of n.tool_calls ?? []) t.set(e.id, {
|
|
@@ -30,7 +29,7 @@ var C = /* @__PURE__ */ function(e) {
|
|
|
30
29
|
for (let n of e?.tool_execution_history ?? []) {
|
|
31
30
|
for (let e of n.tool_calls ?? []) t.set(e.id, {
|
|
32
31
|
name: e.function.name,
|
|
33
|
-
args:
|
|
32
|
+
args: b(e.function.arguments)
|
|
34
33
|
});
|
|
35
34
|
if (n.role === "tool" && n.tool_call_id) {
|
|
36
35
|
let e = t.get(n.tool_call_id);
|
|
@@ -38,18 +37,18 @@ var C = /* @__PURE__ */ function(e) {
|
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
return t;
|
|
41
|
-
},
|
|
40
|
+
}, S = (e) => {
|
|
42
41
|
let t = /* @__PURE__ */ new Set();
|
|
43
|
-
for (let n of e) for (let e of
|
|
42
|
+
for (let n of e) for (let e of x(n.custom_content?.state).values()) t.add(e.name);
|
|
44
43
|
return t;
|
|
45
|
-
},
|
|
46
|
-
if (t.length === 0 || e.role !==
|
|
47
|
-
let r = new Set([...
|
|
44
|
+
}, C = (e, t, n) => {
|
|
45
|
+
if (t.length === 0 || e.role !== g.Assistant) return;
|
|
46
|
+
let r = new Set([...x(e.custom_content?.state).values()].map((e) => e.name));
|
|
48
47
|
return t.find((e) => r.has(e.toolName)) || t.find((e) => e.discovery === "direct") || (n ? t[0] : void 0);
|
|
49
|
-
},
|
|
48
|
+
}, w = (e) => `${e}:mcp-app`, T = (e) => e == null ? void 0 : JSON.stringify(e.toolInput ?? null), E = (e, t) => {
|
|
50
49
|
let n = e.custom_content?.state;
|
|
51
50
|
if (!n) return;
|
|
52
|
-
let r = [...
|
|
51
|
+
let r = [...x(n).values()].reverse().find((e) => e.name === t);
|
|
53
52
|
if (r) return {
|
|
54
53
|
toolInput: r.args,
|
|
55
54
|
toolResult: r.result == null ? void 0 : { content: [{
|
|
@@ -57,144 +56,144 @@ var C = /* @__PURE__ */ function(e) {
|
|
|
57
56
|
text: r.result
|
|
58
57
|
}] }
|
|
59
58
|
};
|
|
60
|
-
},
|
|
59
|
+
}, D = async (e, t, n) => {
|
|
61
60
|
if (!(e.discovery === "direct" || t?.toolInput != null)) return t?.toolResult;
|
|
62
61
|
try {
|
|
63
62
|
return await n(e.toolsetId, e.mcpToolName, t?.toolInput ?? {}, e.kind);
|
|
64
63
|
} catch {
|
|
65
64
|
return t?.toolResult;
|
|
66
65
|
}
|
|
67
|
-
},
|
|
68
|
-
let { hostContext: s, sandboxUrl: c, fetchResourceHtml: l, callTool: u } = a, [
|
|
69
|
-
|
|
70
|
-
}, [
|
|
71
|
-
if (!(
|
|
72
|
-
let a =
|
|
73
|
-
let [
|
|
66
|
+
}, O = (t, n, r, i, a, o) => {
|
|
67
|
+
let { hostContext: s, sandboxUrl: c, fetchResourceHtml: l, callTool: u } = a, [p, m] = h(), [g, _] = h(), [v, b] = h(() => t == null || c == null ? y.Unavailable : y.Loading), [x, S] = h(0), C = d(() => {
|
|
68
|
+
r.invalidate(i), S((e) => e + 1);
|
|
69
|
+
}, [r, i]), w = d(async (e) => {
|
|
70
|
+
if (!(t == null || c == null)) try {
|
|
71
|
+
let a = T(n), { html: o, toolResult: s } = await r.getOrFetch(i, a, async () => {
|
|
72
|
+
let [e, r] = await Promise.all([l(t.toolsetId, t.resourceUri), D(t, n, u)]);
|
|
74
73
|
return {
|
|
75
|
-
html:
|
|
74
|
+
html: e,
|
|
76
75
|
toolResult: r
|
|
77
76
|
};
|
|
78
77
|
});
|
|
79
|
-
if (
|
|
80
|
-
|
|
78
|
+
if (e()) return;
|
|
79
|
+
m(o), _(s), b(y.Ready);
|
|
81
80
|
} catch {
|
|
82
|
-
|
|
81
|
+
e() || b(y.Error);
|
|
83
82
|
}
|
|
84
83
|
}, [
|
|
85
|
-
e,
|
|
86
84
|
t,
|
|
87
|
-
c,
|
|
88
85
|
n,
|
|
86
|
+
c,
|
|
89
87
|
r,
|
|
88
|
+
i,
|
|
90
89
|
l,
|
|
91
90
|
u
|
|
92
91
|
]);
|
|
93
|
-
|
|
94
|
-
if (
|
|
95
|
-
|
|
92
|
+
f(() => {
|
|
93
|
+
if (t == null || c == null) {
|
|
94
|
+
b(y.Unavailable);
|
|
96
95
|
return;
|
|
97
96
|
}
|
|
98
|
-
let
|
|
99
|
-
return
|
|
100
|
-
|
|
97
|
+
let e = !1;
|
|
98
|
+
return b(y.Loading), w(() => e), () => {
|
|
99
|
+
e = !0;
|
|
101
100
|
};
|
|
102
101
|
}, [
|
|
103
|
-
|
|
102
|
+
t,
|
|
104
103
|
c,
|
|
105
104
|
w,
|
|
106
|
-
|
|
105
|
+
x
|
|
107
106
|
]);
|
|
108
|
-
let
|
|
109
|
-
if (
|
|
110
|
-
return u(
|
|
111
|
-
}, [
|
|
112
|
-
return
|
|
113
|
-
status:
|
|
114
|
-
reload:
|
|
107
|
+
let E = d(async (e, n) => {
|
|
108
|
+
if (t == null) throw Error(`Tool call "${e}" failed: no matching MCP App`);
|
|
109
|
+
return u(t.toolsetId, e, n, t.kind);
|
|
110
|
+
}, [t, u]);
|
|
111
|
+
return v !== y.Ready || t == null || c == null || p == null ? {
|
|
112
|
+
status: v,
|
|
113
|
+
reload: C
|
|
115
114
|
} : {
|
|
116
|
-
status:
|
|
117
|
-
reload:
|
|
115
|
+
status: v,
|
|
116
|
+
reload: C,
|
|
118
117
|
content: {
|
|
119
|
-
type:
|
|
120
|
-
html:
|
|
118
|
+
type: e.McpApp,
|
|
119
|
+
html: p,
|
|
121
120
|
sandboxUrl: c,
|
|
122
|
-
toolInput:
|
|
123
|
-
toolResult:
|
|
121
|
+
toolInput: n?.toolInput,
|
|
122
|
+
toolResult: g,
|
|
124
123
|
hostContext: s,
|
|
125
|
-
onToolCall:
|
|
124
|
+
onToolCall: E,
|
|
126
125
|
onRequestDisplayMode: o
|
|
127
126
|
}
|
|
128
127
|
};
|
|
129
|
-
},
|
|
130
|
-
let { status:
|
|
131
|
-
return
|
|
128
|
+
}, k = u(({ match: e, toolCall: u, cache: f, cacheKey: p, hostAdapter: m, onExpand: h, expandAriaLabel: g, reloadAriaLabel: b, actionsGroupAriaLabel: x = "MCP app actions", loadErrorLabel: S }) => {
|
|
129
|
+
let { status: C, content: w, reload: T } = O(e, u, f, p, m, d((e) => e === "fullscreen" ? (h(), "fullscreen") : "inline", [h]));
|
|
130
|
+
return C === y.Unavailable ? null : /* @__PURE__ */ v("div", {
|
|
132
131
|
className: "bg-layer-2 flex w-full min-w-0 flex-col overflow-hidden rounded-xl border border-tertiary",
|
|
133
|
-
children: [/* @__PURE__ */
|
|
132
|
+
children: [/* @__PURE__ */ _("div", {
|
|
134
133
|
className: "flex min-h-10 items-center justify-end border-b border-tertiary px-4 py-2",
|
|
135
|
-
children: /* @__PURE__ */
|
|
134
|
+
children: /* @__PURE__ */ v("div", {
|
|
136
135
|
role: "toolbar",
|
|
137
|
-
"aria-label":
|
|
136
|
+
"aria-label": x,
|
|
138
137
|
className: "flex items-center gap-1",
|
|
139
|
-
children: [/* @__PURE__ */
|
|
140
|
-
icon: /* @__PURE__ */
|
|
141
|
-
size:
|
|
142
|
-
stroke:
|
|
138
|
+
children: [/* @__PURE__ */ _(a, {
|
|
139
|
+
icon: /* @__PURE__ */ _(l, {
|
|
140
|
+
size: n.SM,
|
|
141
|
+
stroke: r,
|
|
143
142
|
"aria-hidden": !0
|
|
144
143
|
}),
|
|
145
|
-
"aria-label":
|
|
146
|
-
size:
|
|
144
|
+
"aria-label": b,
|
|
145
|
+
size: i.Small,
|
|
147
146
|
onClick: T
|
|
148
|
-
}), /* @__PURE__ */
|
|
149
|
-
icon: /* @__PURE__ */
|
|
150
|
-
size:
|
|
151
|
-
stroke:
|
|
147
|
+
}), /* @__PURE__ */ _(a, {
|
|
148
|
+
icon: /* @__PURE__ */ _(c, {
|
|
149
|
+
size: n.SM,
|
|
150
|
+
stroke: r,
|
|
152
151
|
"aria-hidden": !0
|
|
153
152
|
}),
|
|
154
153
|
"aria-label": g,
|
|
155
|
-
size:
|
|
156
|
-
onClick:
|
|
154
|
+
size: i.Small,
|
|
155
|
+
onClick: h
|
|
157
156
|
})]
|
|
158
157
|
})
|
|
159
|
-
}), /* @__PURE__ */
|
|
158
|
+
}), /* @__PURE__ */ v("div", {
|
|
160
159
|
className: "relative min-h-[200px] w-full",
|
|
161
160
|
children: [
|
|
162
|
-
|
|
161
|
+
C === y.Loading && /* @__PURE__ */ _("div", {
|
|
163
162
|
className: "absolute inset-0 flex items-center justify-center",
|
|
164
|
-
children: /* @__PURE__ */
|
|
163
|
+
children: /* @__PURE__ */ _(o, {})
|
|
165
164
|
}),
|
|
166
|
-
|
|
165
|
+
C === y.Error && /* @__PURE__ */ v("div", {
|
|
167
166
|
className: "absolute inset-0 flex flex-col items-center justify-center gap-2 p-4",
|
|
168
|
-
children: [/* @__PURE__ */
|
|
167
|
+
children: [/* @__PURE__ */ _(s, {
|
|
169
168
|
size: 40,
|
|
170
|
-
stroke:
|
|
169
|
+
stroke: r,
|
|
171
170
|
"aria-hidden": !0,
|
|
172
171
|
className: "text-error"
|
|
173
|
-
}), /* @__PURE__ */
|
|
172
|
+
}), /* @__PURE__ */ _("p", {
|
|
174
173
|
role: "alert",
|
|
175
174
|
className: "dial-body-text text-center text-primary",
|
|
176
|
-
children:
|
|
175
|
+
children: S
|
|
177
176
|
})]
|
|
178
177
|
}),
|
|
179
|
-
|
|
178
|
+
C === y.Ready && w && /* @__PURE__ */ _(t, {
|
|
180
179
|
content: w,
|
|
181
|
-
errorLabel:
|
|
180
|
+
errorLabel: S
|
|
182
181
|
})
|
|
183
182
|
]
|
|
184
183
|
})]
|
|
185
184
|
});
|
|
186
|
-
}),
|
|
187
|
-
let t =
|
|
188
|
-
return
|
|
185
|
+
}), A = 900 * 1e3, j = (e) => {
|
|
186
|
+
let t = m(/* @__PURE__ */ new Map()), n = m(/* @__PURE__ */ new Map());
|
|
187
|
+
return p(() => {
|
|
189
188
|
let r = (t) => `${e}:${t}`, i = (e, t) => `${r(e)}::${t ?? ""}`, a = (e, n) => {
|
|
190
189
|
let i = t.current.get(r(e));
|
|
191
|
-
if (i != null && i.seedKey === n && !(Date.now() - i.cachedAt >
|
|
190
|
+
if (i != null && i.seedKey === n && !(Date.now() - i.cachedAt > A)) return {
|
|
192
191
|
html: i.html,
|
|
193
192
|
toolResult: i.toolResult
|
|
194
193
|
};
|
|
195
194
|
}, o = (e, n, i) => {
|
|
196
195
|
let a = Date.now();
|
|
197
|
-
for (let [e, n] of t.current) a - n.cachedAt >
|
|
196
|
+
for (let [e, n] of t.current) a - n.cachedAt > A && t.current.delete(e);
|
|
198
197
|
t.current.set(r(e), {
|
|
199
198
|
...n,
|
|
200
199
|
seedKey: i,
|
|
@@ -221,4 +220,4 @@ var C = /* @__PURE__ */ function(e) {
|
|
|
221
220
|
}, [e]);
|
|
222
221
|
};
|
|
223
222
|
//#endregion
|
|
224
|
-
export {
|
|
223
|
+
export { k as McpAppInlinePreview, y as McpAppInlinePreviewStatus, S as collectToolCallNames, T as computeMcpAppSeedKey, C as findMcpAppForMessage, w as mcpAppCanvasKey, E as resolveMcpAppToolCallSeed, D as resolveMcpAppToolResult, O as useMcpAppInlinePreview, j as useMcpAppResponseCache };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-mcp-apps",
|
|
3
3
|
"description": "Host-agnostic MCP Apps building blocks — tool-call/message matching, the response cache, and the inline preview hook/component shared by the full-width canvas and inline surfaces",
|
|
4
|
-
"version": "1.1.0-dev.
|
|
4
|
+
"version": "1.1.0-dev.471",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -13,20 +13,17 @@
|
|
|
13
13
|
"types": "./index.d.ts",
|
|
14
14
|
"import": "./index.js",
|
|
15
15
|
"default": "./index.js"
|
|
16
|
-
},
|
|
17
|
-
"./constants": {
|
|
18
|
-
"types": "./constants/mcp-protocol.d.ts",
|
|
19
|
-
"import": "./constants.js",
|
|
20
|
-
"default": "./constants.js"
|
|
21
16
|
}
|
|
22
17
|
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@tabler/icons-react": "^3.44.0",
|
|
20
|
+
"@mcp-ui/client": "^7.1.1",
|
|
21
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
22
|
+
"@epam/ai-dial-attachment-canvas": "1.1.0-dev.471"
|
|
23
|
+
},
|
|
23
24
|
"peerDependencies": {
|
|
24
|
-
"@epam/ai-dial-
|
|
25
|
-
"@epam/ai-dial-chat-shared": "1.1.0-dev.467",
|
|
25
|
+
"@epam/ai-dial-chat-shared": "1.1.0-dev.471",
|
|
26
26
|
"@epam/ai-dial-ui-kit": "^0.14.0-dev.15",
|
|
27
|
-
"@mcp-ui/client": "^7.1.1",
|
|
28
|
-
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
29
|
-
"@tabler/icons-react": "^3.44.0",
|
|
30
27
|
"react": "^19.0.0"
|
|
31
28
|
},
|
|
32
29
|
"repository": {
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** MCP protocol version advertised in the `initialize` handshake. */
|
|
2
|
-
export declare const MCP_PROTOCOL_VERSION = "2024-11-05";
|
|
3
|
-
/** Header the MCP Streamable HTTP transport uses to carry the session id. */
|
|
4
|
-
export declare const MCP_SESSION_ID_HEADER = "mcp-session-id";
|
|
5
|
-
/**
|
|
6
|
-
* Header carrying the protocol version the server negotiated in its
|
|
7
|
-
* `initialize` result. The MCP lifecycle requires it on every request that
|
|
8
|
-
* follows a completed handshake, so a server that supports several versions
|
|
9
|
-
* keeps answering in the one it agreed on.
|
|
10
|
-
*/
|
|
11
|
-
export declare const MCP_PROTOCOL_VERSION_HEADER = "mcp-protocol-version";
|
|
12
|
-
/** Client identity advertised in the `initialize` handshake. */
|
|
13
|
-
export declare const MCP_CLIENT_INFO: {
|
|
14
|
-
name: string;
|
|
15
|
-
version: string;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=mcp-protocol.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-protocol.d.ts","sourceRoot":"","sources":["../../src/constants/mcp-protocol.ts"],"names":[],"mappings":"AAOA,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD,6EAA6E;AAC7E,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAElE,gEAAgE;AAChE,eAAO,MAAM,eAAe;;;CAA6C,CAAC"}
|
package/constants.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
//#region src/constants/mcp-protocol.ts
|
|
2
|
-
var e = "2024-11-05", t = "mcp-session-id", n = "mcp-protocol-version", r = {
|
|
3
|
-
name: "ai-dial-chat",
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
};
|
|
6
|
-
//#endregion
|
|
7
|
-
export { r as MCP_CLIENT_INFO, e as MCP_PROTOCOL_VERSION, n as MCP_PROTOCOL_VERSION_HEADER, t as MCP_SESSION_ID_HEADER };
|