@mcp-use/client 2.0.2-canary.2 → 2.1.0-canary.4
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/.tsbuildinfo +1 -1
- package/dist/core/session.d.ts +12 -0
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/skills.d.ts +39 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/index-browser.js +49 -3
- package/dist/index-browser.js.map +1 -1
- package/dist/index.js +50 -4
- package/dist/index.js.map +1 -1
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +119 -10
- package/dist/react/index.js.map +1 -1
- package/dist/react/types.d.ts +8 -0
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/useMcp-operations.d.ts +5 -0
- package/dist/react/useMcp-operations.d.ts.map +1 -1
- package/dist/react/useMcp.d.ts.map +1 -1
- package/dist/react/view/ViewRenderer.d.ts.map +1 -1
- package/dist/sandbox.js +1 -1
- package/dist/sandbox.js.map +1 -1
- package/package.json +1 -1
package/dist/react/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
export type { UseMcpOptions, UseMcpResult, ReconnectionOptions, McpServer, McpServerConfig,
|
|
9
9
|
/** @deprecated Use McpServerConfig */
|
|
10
10
|
McpServerOptions, PersistedMcpServerConfig, McpNotification, PendingSamplingRequest, PendingElicitationRequest, } from "./types.js";
|
|
11
|
+
export type { Skill, SkillDirectoryEntry, SkillDirectoryReadResult, SkillGetResult, SkillResource, SkillsListResult, } from "../core/skills.js";
|
|
12
|
+
export { SKILLS_EXTENSION_ID } from "../core/skills.js";
|
|
11
13
|
export { pickPersistedServerConfig, toPersistedServerConfig } from "./types.js";
|
|
12
14
|
export { useMcp } from "./useMcp.js";
|
|
13
15
|
export { detectFavicon } from "../utils/favicon.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,eAAe;AACf,sCAAsC;AACtC,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EACL,GAAG,EACH,SAAS,EACT,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EACV,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACpB,IAAI,EACJ,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,sDAAsD;AACtD,MAAM,MAAM,4BAA4B,GAAG;IACzC,4BAA4B;IAC5B,MAAM,EAAE,wBAAwB,CAAC;IACjC,mCAAmC;IACnC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AACF,4DAA4D;AAC5D,YAAY,EAAE,4BAA4B,IAAI,oBAAoB,EAAE,CAAC;AACrE,2DAA2D;AAC3D,YAAY,EAAE,2BAA2B,IAAI,mBAAmB,EAAE,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,oCAAoC,GAC1C,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,eAAe;AACf,sCAAsC;AACtC,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,KAAK,EACL,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EACL,GAAG,EACH,SAAS,EACT,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EACV,cAAc,EACd,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACpB,IAAI,EACJ,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,sDAAsD;AACtD,MAAM,MAAM,4BAA4B,GAAG;IACzC,4BAA4B;IAC5B,MAAM,EAAE,wBAAwB,CAAC;IACjC,mCAAmC;IACnC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AACF,4DAA4D;AAC5D,YAAY,EAAE,4BAA4B,IAAI,oBAAoB,EAAE,CAAC;AACrE,2DAA2D;AAC3D,YAAY,EAAE,2BAA2B,IAAI,mBAAmB,EAAE,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,oCAAoC,GAC1C,MAAM,wBAAwB,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -251,6 +251,9 @@ var init_rpc_logger = __esm({
|
|
|
251
251
|
}
|
|
252
252
|
});
|
|
253
253
|
|
|
254
|
+
// src/core/skills.ts
|
|
255
|
+
var SKILLS_EXTENSION_ID = "io.modelcontextprotocol/skills";
|
|
256
|
+
|
|
254
257
|
// src/react/types.ts
|
|
255
258
|
var PERSISTED_SERVER_CONFIG_KEYS = [
|
|
256
259
|
"url",
|
|
@@ -444,7 +447,6 @@ function runAuthPopup({
|
|
|
444
447
|
import { useCallback as useCallback2, useEffect, useMemo, useRef, useState } from "react";
|
|
445
448
|
|
|
446
449
|
// src/transport/http.ts
|
|
447
|
-
init_logging();
|
|
448
450
|
import {
|
|
449
451
|
Client,
|
|
450
452
|
SdkError,
|
|
@@ -489,6 +491,9 @@ var DialectJsonSchemaValidator = class {
|
|
|
489
491
|
}
|
|
490
492
|
};
|
|
491
493
|
|
|
494
|
+
// src/transport/http.ts
|
|
495
|
+
init_logging();
|
|
496
|
+
|
|
492
497
|
// src/transport/base.ts
|
|
493
498
|
init_logging();
|
|
494
499
|
|
|
@@ -1291,7 +1296,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
1291
1296
|
is401Error = status === 401;
|
|
1292
1297
|
httpStatusCode = status;
|
|
1293
1298
|
if (status === 400 && streamableErr.message.includes("Missing session ID")) {
|
|
1294
|
-
fallbackReason = "Server requires session ID
|
|
1299
|
+
fallbackReason = "Server requires session ID";
|
|
1295
1300
|
logger.warn(`\u26A0\uFE0F ${fallbackReason}`);
|
|
1296
1301
|
} else if (status === 404 || status === 405) {
|
|
1297
1302
|
fallbackReason = `Server returned ${status} - server likely doesn't support streamable HTTP`;
|
|
@@ -1307,7 +1312,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
1307
1312
|
const errorMsg = err.message || "";
|
|
1308
1313
|
is401Error = detectUnauthorized(err) || errorStr.includes("401") || errorMsg.includes("Unauthorized");
|
|
1309
1314
|
if (errorStr.includes("Missing session ID") || errorStr.includes("Bad Request: Missing session ID") || errorMsg.includes("FastMCP session ID error")) {
|
|
1310
|
-
fallbackReason = "Server requires session ID
|
|
1315
|
+
fallbackReason = "Server requires session ID";
|
|
1311
1316
|
logger.warn(`\u26A0\uFE0F ${fallbackReason}`);
|
|
1312
1317
|
} else if (errorStr.includes("405 Method Not Allowed") || errorStr.includes("404 Not Found")) {
|
|
1313
1318
|
fallbackReason = "Server doesn't support streamable HTTP (405/404)";
|
|
@@ -1606,7 +1611,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
1606
1611
|
};
|
|
1607
1612
|
|
|
1608
1613
|
// src/utils/version.ts
|
|
1609
|
-
var VERSION = "2.0
|
|
1614
|
+
var VERSION = "2.1.0-canary.4";
|
|
1610
1615
|
function getPackageVersion() {
|
|
1611
1616
|
return VERSION;
|
|
1612
1617
|
}
|
|
@@ -3688,6 +3693,48 @@ var MCPConnection = class {
|
|
|
3688
3693
|
async request(method, params = null, options) {
|
|
3689
3694
|
return this.connector.request(method, params, options);
|
|
3690
3695
|
}
|
|
3696
|
+
/** List one page of skills advertised through the experimental extension. */
|
|
3697
|
+
async listSkills(cursor, options) {
|
|
3698
|
+
return await this.request(
|
|
3699
|
+
"skills/list",
|
|
3700
|
+
cursor === void 0 ? {} : { cursor },
|
|
3701
|
+
options
|
|
3702
|
+
);
|
|
3703
|
+
}
|
|
3704
|
+
/** List the complete skill catalog, following pagination defensively. */
|
|
3705
|
+
async listAllSkills(options) {
|
|
3706
|
+
const skills = [];
|
|
3707
|
+
const seenCursors = /* @__PURE__ */ new Set();
|
|
3708
|
+
let cursor;
|
|
3709
|
+
do {
|
|
3710
|
+
const page = await this.listSkills(cursor, options);
|
|
3711
|
+
skills.push(...Array.isArray(page.skills) ? page.skills : []);
|
|
3712
|
+
cursor = page.nextCursor;
|
|
3713
|
+
if (cursor !== void 0) {
|
|
3714
|
+
if (seenCursors.has(cursor)) {
|
|
3715
|
+
throw new Error("skills/list returned a repeated pagination cursor");
|
|
3716
|
+
}
|
|
3717
|
+
seenCursors.add(cursor);
|
|
3718
|
+
}
|
|
3719
|
+
} while (cursor !== void 0);
|
|
3720
|
+
return { skills };
|
|
3721
|
+
}
|
|
3722
|
+
/** Get one skill by its canonical `SKILL.md` URI. */
|
|
3723
|
+
async getSkill(uri, options) {
|
|
3724
|
+
return await this.request(
|
|
3725
|
+
"skills/get",
|
|
3726
|
+
{ uri },
|
|
3727
|
+
options
|
|
3728
|
+
);
|
|
3729
|
+
}
|
|
3730
|
+
/** Read one non-recursive skill directory. */
|
|
3731
|
+
async readResourceDirectory(uri, cursor, options) {
|
|
3732
|
+
return await this.request(
|
|
3733
|
+
"resources/directory/read",
|
|
3734
|
+
cursor === void 0 ? { uri } : { uri, cursor },
|
|
3735
|
+
options
|
|
3736
|
+
);
|
|
3737
|
+
}
|
|
3691
3738
|
};
|
|
3692
3739
|
|
|
3693
3740
|
// src/telemetry/client-telemetry.ts
|
|
@@ -4648,6 +4695,28 @@ function useMcpOperations(params) {
|
|
|
4648
4695
|
},
|
|
4649
4696
|
[params.addLog]
|
|
4650
4697
|
);
|
|
4698
|
+
const listSkills = useCallback(async () => {
|
|
4699
|
+
const connection = requireConnection(params, "list skills");
|
|
4700
|
+
params.addLog("info", "Listing skills");
|
|
4701
|
+
const result = await connection.listAllSkills();
|
|
4702
|
+
params.setSkills(result.skills);
|
|
4703
|
+
}, [params.addLog]);
|
|
4704
|
+
const getSkill = useCallback(
|
|
4705
|
+
async (uri) => {
|
|
4706
|
+
const connection = requireConnection(params, "get skill");
|
|
4707
|
+
params.addLog("info", `Getting skill: ${uri}`);
|
|
4708
|
+
return connection.getSkill(uri);
|
|
4709
|
+
},
|
|
4710
|
+
[params.addLog]
|
|
4711
|
+
);
|
|
4712
|
+
const readResourceDirectory = useCallback(
|
|
4713
|
+
async (uri, cursor) => {
|
|
4714
|
+
const connection = requireConnection(params, "read resource directory");
|
|
4715
|
+
params.addLog("info", `Reading resource directory: ${uri}`);
|
|
4716
|
+
return connection.readResourceDirectory(uri, cursor);
|
|
4717
|
+
},
|
|
4718
|
+
[params.addLog]
|
|
4719
|
+
);
|
|
4651
4720
|
const listPrompts = useCallback(async () => {
|
|
4652
4721
|
const connection = requireConnection(params, "list prompts");
|
|
4653
4722
|
params.addLog("info", "Listing prompts");
|
|
@@ -4683,6 +4752,17 @@ function useMcpOperations(params) {
|
|
|
4683
4752
|
params.addLog("warn", "Failed to refresh prompts:", error);
|
|
4684
4753
|
}
|
|
4685
4754
|
}, [params.addLog]);
|
|
4755
|
+
const refreshSkills = useCallback(async () => {
|
|
4756
|
+
if (params.stateRef.current !== "ready" || !params.connectionRef.current)
|
|
4757
|
+
return;
|
|
4758
|
+
try {
|
|
4759
|
+
const result = await params.connectionRef.current.listAllSkills();
|
|
4760
|
+
params.setSkills(result.skills);
|
|
4761
|
+
} catch (error) {
|
|
4762
|
+
params.setSkills([]);
|
|
4763
|
+
params.addLog("debug", "Skills are unavailable after refresh:", error);
|
|
4764
|
+
}
|
|
4765
|
+
}, [params.addLog]);
|
|
4686
4766
|
const refreshResourceTemplates = useCallback(async () => {
|
|
4687
4767
|
const connection = requireConnection(params, "refresh resource templates");
|
|
4688
4768
|
const result = await connection.listResourceTemplates();
|
|
@@ -4714,10 +4794,14 @@ function useMcpOperations(params) {
|
|
|
4714
4794
|
callTool,
|
|
4715
4795
|
listResources,
|
|
4716
4796
|
readResource,
|
|
4797
|
+
listSkills,
|
|
4798
|
+
getSkill,
|
|
4799
|
+
readResourceDirectory,
|
|
4717
4800
|
listPrompts,
|
|
4718
4801
|
refreshTools,
|
|
4719
4802
|
refreshResources,
|
|
4720
4803
|
refreshPrompts,
|
|
4804
|
+
refreshSkills,
|
|
4721
4805
|
refreshResourceTemplates,
|
|
4722
4806
|
refreshAll,
|
|
4723
4807
|
getPrompt,
|
|
@@ -4917,6 +5001,7 @@ function useMcp(options) {
|
|
|
4917
5001
|
const [resources, setResources] = useState([]);
|
|
4918
5002
|
const [resourceTemplates, setResourceTemplates] = useState([]);
|
|
4919
5003
|
const [prompts, setPrompts] = useState([]);
|
|
5004
|
+
const [skills, setSkills] = useState([]);
|
|
4920
5005
|
const [serverInfo, setServerInfo] = useState(
|
|
4921
5006
|
// Only use cached metadata if it has at least a name
|
|
4922
5007
|
options._initialServerInfo?.name ? options._initialServerInfo : void 0
|
|
@@ -5023,6 +5108,7 @@ function useMcp(options) {
|
|
|
5023
5108
|
setResources,
|
|
5024
5109
|
setResourceTemplates,
|
|
5025
5110
|
setPrompts,
|
|
5111
|
+
setSkills,
|
|
5026
5112
|
addLog
|
|
5027
5113
|
});
|
|
5028
5114
|
const disconnect = useCallback2(
|
|
@@ -5059,6 +5145,7 @@ function useMcp(options) {
|
|
|
5059
5145
|
setResources([]);
|
|
5060
5146
|
setResourceTemplates([]);
|
|
5061
5147
|
setPrompts([]);
|
|
5148
|
+
setSkills([]);
|
|
5062
5149
|
setError(void 0);
|
|
5063
5150
|
setAuthUrl(void 0);
|
|
5064
5151
|
setAuthTokens(void 0);
|
|
@@ -5171,6 +5258,7 @@ function useMcp(options) {
|
|
|
5171
5258
|
setResources([]);
|
|
5172
5259
|
setResourceTemplates([]);
|
|
5173
5260
|
setPrompts([]);
|
|
5261
|
+
setSkills([]);
|
|
5174
5262
|
setServerInfo(void 0);
|
|
5175
5263
|
setCapabilities(void 0);
|
|
5176
5264
|
setProtocolEra(void 0);
|
|
@@ -5300,7 +5388,13 @@ function useMcp(options) {
|
|
|
5300
5388
|
);
|
|
5301
5389
|
} else if (notification.method === "notifications/resources/list_changed") {
|
|
5302
5390
|
addLog("info", "Resources list changed, auto-refreshing...");
|
|
5303
|
-
|
|
5391
|
+
const clientInfoExtensions = mergedClientInfo.capabilities?.extensions;
|
|
5392
|
+
const optionExtensions = effectiveClientOptions?.capabilities?.extensions;
|
|
5393
|
+
const supportsSkills = optionExtensions?.[SKILLS_EXTENSION_ID] !== void 0 || clientInfoExtensions?.[SKILLS_EXTENSION_ID] !== void 0;
|
|
5394
|
+
Promise.all([
|
|
5395
|
+
connectionOperations.refreshResources(),
|
|
5396
|
+
...supportsSkills ? [connectionOperations.refreshSkills()] : []
|
|
5397
|
+
]).catch(
|
|
5304
5398
|
(err) => addLog("warn", "Auto-refresh resources failed:", err)
|
|
5305
5399
|
);
|
|
5306
5400
|
} else if (notification.method === "notifications/prompts/list_changed") {
|
|
@@ -5414,6 +5508,17 @@ function useMcp(options) {
|
|
|
5414
5508
|
setProtocolVersion(protocolVersion2);
|
|
5415
5509
|
setInstructions(instructions2);
|
|
5416
5510
|
setExtensions(extensions2);
|
|
5511
|
+
if (extensions2["io.modelcontextprotocol/skills"] !== void 0) {
|
|
5512
|
+
try {
|
|
5513
|
+
const result = await connection.listAllSkills();
|
|
5514
|
+
if (isMountedRef.current) setSkills(result.skills);
|
|
5515
|
+
} catch (error2) {
|
|
5516
|
+
addLog("warn", "Failed to load initial skills:", error2);
|
|
5517
|
+
if (isMountedRef.current) setSkills([]);
|
|
5518
|
+
}
|
|
5519
|
+
} else {
|
|
5520
|
+
setSkills([]);
|
|
5521
|
+
}
|
|
5417
5522
|
}
|
|
5418
5523
|
if (serverInfo2) {
|
|
5419
5524
|
addLog("debug", "Server info:", serverInfo2);
|
|
@@ -6073,6 +6178,7 @@ function useMcp(options) {
|
|
|
6073
6178
|
resources,
|
|
6074
6179
|
resourceTemplates,
|
|
6075
6180
|
prompts,
|
|
6181
|
+
skills,
|
|
6076
6182
|
serverInfo,
|
|
6077
6183
|
capabilities,
|
|
6078
6184
|
protocolEra,
|
|
@@ -7709,7 +7815,7 @@ var SANDBOX_PROXY_HTML = `<!doctype html>
|
|
|
7709
7815
|
const resourceSrc = resourceDomains.length > 0 ? ["data:", "blob:", ...resourceDomains].join(" ") : "data: blob:";
|
|
7710
7816
|
const frameSrc = frameDomains.length > 0 ? frameDomains.join(" ") : "'none'";
|
|
7711
7817
|
const baseUri = baseUriDomains.length > 0 ? baseUriDomains.join(" ") : "'none'";
|
|
7712
|
-
const scriptSrcParts = ["'unsafe-inline'", resourceSrc];
|
|
7818
|
+
const scriptSrcParts = ["'unsafe-inline'", "'unsafe-eval'", resourceSrc];
|
|
7713
7819
|
if (scriptDirectives.length > 0) scriptSrcParts.push(scriptDirectives.join(" "));
|
|
7714
7820
|
|
|
7715
7821
|
return [
|
|
@@ -8410,15 +8516,17 @@ function ViewRendererBase({
|
|
|
8410
8516
|
});
|
|
8411
8517
|
return;
|
|
8412
8518
|
}
|
|
8413
|
-
if (event.data?.type === "iframe-console-log"
|
|
8414
|
-
|
|
8519
|
+
if (event.data?.type === "iframe-console-log") {
|
|
8520
|
+
event.stopImmediatePropagation();
|
|
8521
|
+
onLogRef.current?.({
|
|
8415
8522
|
level: event.data.level ?? "log",
|
|
8416
8523
|
data: event.data.args
|
|
8417
8524
|
});
|
|
8525
|
+
return;
|
|
8418
8526
|
}
|
|
8419
8527
|
};
|
|
8420
|
-
window.addEventListener("message", handleMessage);
|
|
8421
|
-
return () => window.removeEventListener("message", handleMessage);
|
|
8528
|
+
window.addEventListener("message", handleMessage, true);
|
|
8529
|
+
return () => window.removeEventListener("message", handleMessage, true);
|
|
8422
8530
|
}, [sandboxOrigin, isBlobSandbox]);
|
|
8423
8531
|
useEffect5(() => {
|
|
8424
8532
|
if (!resolved || !activeSandboxUrl) return;
|
|
@@ -8866,6 +8974,7 @@ export {
|
|
|
8866
8974
|
LocalStorageProvider,
|
|
8867
8975
|
McpClientProvider,
|
|
8868
8976
|
MemoryStorageProvider,
|
|
8977
|
+
SKILLS_EXTENSION_ID,
|
|
8869
8978
|
Tel,
|
|
8870
8979
|
Telemetry,
|
|
8871
8980
|
ViewRenderer,
|