@mcp-use/inspector 20.0.0-beta.0 → 20.0.0-beta.1
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/cdn/{ChatTab-5ya_YTFV.js → ChatTab-D8uwCHAf.js} +2 -2
- package/dist/cdn/{ConnectionSettingsForm-iwNW86ZU.js → ConnectionSettingsForm-BNS6bOMD.js} +1 -1
- package/dist/cdn/{ConnectionSettingsTab-CeK83dxn.js → ConnectionSettingsTab-B97gPPJW.js} +1 -1
- package/dist/cdn/{OAuthCallback-BxuOVgdb.js → OAuthCallback-k3oeLtIC.js} +1 -1
- package/dist/cdn/{ResourcesTab-BczUMFil.js → ResourcesTab-KfamsM6-.js} +3 -3
- package/dist/cdn/{SamplingTab-6u5s845G.js → SamplingTab-vcufuK24.js} +1 -1
- package/dist/cdn/{ToolsTab-CUhwP4rZ.js → ToolsTab-DRjcZnpu.js} +3 -3
- package/dist/cdn/{ViewPreview-CxJc1Kht.js → ViewPreview-B_onhcUB.js} +2 -2
- package/dist/cdn/{WidgetWrapper-BJJtLqMb.js → WidgetWrapper-D29YDxIu.js} +1 -1
- package/dist/cdn/inspector.js +116 -109
- package/dist/cdn/{react-yUi9mVK4.js → react-BxO-uEDZ.js} +32 -26
- package/dist/cdn/{useViewHostProps-C7vjco2m.js → useViewHostProps-Dr6W2ooF.js} +1 -1
- package/dist/cli.js +116 -14
- package/dist/server/asset-urls.d.ts +14 -0
- package/dist/server/asset-urls.d.ts.map +1 -0
- package/dist/server/asset-urls.js +13 -0
- package/dist/server/cdn-shell.d.ts +3 -3
- package/dist/server/cdn-shell.d.ts.map +1 -1
- package/dist/server/cdn-shell.js +5 -3
- package/dist/server/{chunk-J67FVPHF.js → chunk-IXYK6ZOY.js} +1 -1
- package/dist/server/{chunk-ESODOPDD.js → chunk-J4FNYLBF.js} +4 -0
- package/dist/server/chunk-KBVKS4J5.js +53 -0
- package/dist/server/chunk-M5TZA42I.js +54 -0
- package/dist/server/{chunk-TPHRVELX.js → chunk-VDUV6LR6.js} +16 -9
- package/dist/server/{chunk-THQ67TSE.js → chunk-Y2GBQOQW.js} +1 -1
- package/dist/server/cli.js +6 -4
- package/dist/server/favicon-static.d.ts.map +1 -1
- package/dist/server/favicon-static.js +1 -1
- package/dist/server/index.js +7 -5
- package/dist/server/middleware.js +7 -5
- package/dist/server/static-assets.d.ts +5 -0
- package/dist/server/static-assets.d.ts.map +1 -0
- package/dist/server/static-assets.js +9 -0
- package/dist/server/version.js +1 -1
- package/dist/web/assets/{ChatTab-CiAqtqhj.js → ChatTab-Cy8eyFYI.js} +3 -3
- package/dist/web/assets/{ConnectionSettingsTab-CTh6MFKE.js → ConnectionSettingsTab-sDZGaUJn.js} +1 -1
- package/dist/web/assets/{ElicitationTab-B3Eg0_Jm.js → ElicitationTab-wDKgU1qL.js} +1 -1
- package/dist/web/assets/{ManufactOAuthCallback-B-tdkUA2.js → ManufactOAuthCallback-DCLbW-mz.js} +1 -1
- package/dist/web/assets/{NotificationsTab-BgLjxuos.js → NotificationsTab-JevzvJTg.js} +1 -1
- package/dist/web/assets/{OAuthCallback-Bp-jLoQs.js → OAuthCallback-BjcRxLh5.js} +1 -1
- package/dist/web/assets/{PromptsTab-CA-SZs43.js → PromptsTab-DsQVOjKH.js} +1 -1
- package/dist/web/assets/{ResourcesTab-DdMIW_af.js → ResourcesTab-Bw8_p6M1.js} +1 -1
- package/dist/web/assets/{SamplingTab-DjyDG01W.js → SamplingTab-BrcF1zJF.js} +1 -1
- package/dist/web/assets/{ServerMetadataTab-Q4PlqP_B.js → ServerMetadataTab-Bydeh1Po.js} +1 -1
- package/dist/web/assets/{ToolsTab-BHk8GCmd.js → ToolsTab-DJWF7Q_x.js} +1 -1
- package/dist/web/assets/{ViewPreview-DWtmwzCb.js → ViewPreview-jgeU7bY9.js} +1 -1
- package/dist/web/assets/{WidgetWrapper-B43lqbld.js → WidgetWrapper-B_vJU9uF.js} +1 -1
- package/dist/web/assets/{checkbox-_GzEPQic.js → checkbox-BA-XURSj.js} +1 -1
- package/dist/web/assets/{chunk-BO2N2NFS-BdIeB5Lr.js → chunk-BO2N2NFS-CGbd3eLY.js} +4 -4
- package/dist/web/assets/{dist-DQjEDTKs.js → dist-BcAQZluc.js} +3 -3
- package/dist/web/assets/{highlighted-body-OFNGDK62-Dp3e1QHL.js → highlighted-body-OFNGDK62-BBJFbIMp.js} +1 -1
- package/dist/web/assets/{index-Bbn-6QR2.js → index-D2UxaT9v.js} +3 -3
- package/dist/web/assets/mermaid-GHXKKRXX-B4MKVODA.js +1 -0
- package/dist/web/assets/{pdf-C3cfS_Ha.js → pdf-CuwKm9zO.js} +1 -1
- package/dist/web/assets/{shared-Dfwy7nyg.js → shared-DQE60Op-.js} +1 -1
- package/dist/web/assets/{sheet-CRPrEqAa.js → sheet-7TIkLdpr.js} +1 -1
- package/dist/web/assets/{tabs-subtle-Dxgism9f.js → tabs-subtle-AkJZvdxS.js} +1 -1
- package/dist/web/assets/{useConfig-b1f_iVFH.js → useConfig-Qglo4xs1.js} +1 -1
- package/dist/web/assets/{useMCPPrompts-CPskz9af.js → useMCPPrompts-USLYc1I4.js} +1 -1
- package/dist/web/assets/{useViewHostProps-BgsQ2yYl.js → useViewHostProps-DXAD1g7g.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +5 -5
- package/dist/web/assets/mermaid-GHXKKRXX-yq1lkD3x.js +0 -1
|
@@ -3536,32 +3536,38 @@ function sa(e) {
|
|
|
3536
3536
|
};
|
|
3537
3537
|
}
|
|
3538
3538
|
function ca(e) {
|
|
3539
|
-
let t = null, n = Date.now(), r = e.healthCheckIntervalMs ?? 1e4,
|
|
3539
|
+
let t = null, n = Date.now(), r = !1, i = e.healthCheckIntervalMs ?? 1e4, a = e.healthCheckTimeoutMs ?? 3e4;
|
|
3540
3540
|
return t = setInterval(async () => {
|
|
3541
|
-
if (!
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3541
|
+
if (!r) {
|
|
3542
|
+
if (!e.isMountedRef.current || e.stateRef.current !== "ready") {
|
|
3543
|
+
t &&= (clearInterval(t), null);
|
|
3544
|
+
return;
|
|
3545
|
+
}
|
|
3546
|
+
try {
|
|
3547
|
+
let i = e.gatewayUrl || e.url;
|
|
3548
|
+
if (!i) return;
|
|
3549
|
+
let a = e.getAuthHeaders ? await e.getAuthHeaders() : {}, o = await fetch(i, {
|
|
3550
|
+
method: "HEAD",
|
|
3551
|
+
headers: {
|
|
3552
|
+
...e.allHeaders,
|
|
3553
|
+
...a
|
|
3554
|
+
},
|
|
3555
|
+
signal: AbortSignal.timeout(5e3)
|
|
3556
|
+
});
|
|
3557
|
+
if (o.status === 405 || o.status === 404) {
|
|
3558
|
+
r = !0, n = Date.now(), t &&= (clearInterval(t), null);
|
|
3559
|
+
return;
|
|
3560
|
+
}
|
|
3561
|
+
if (o.ok || o.status < 500) n = Date.now();
|
|
3562
|
+
else throw Error(`Server returned ${o.status}`);
|
|
3563
|
+
} catch {
|
|
3564
|
+
let r = Date.now() - n;
|
|
3565
|
+
r > a && (e.addLog("warn", `Connection appears to be broken (no response for ${Math.round(r / 1e3)}s), attempting to reconnect...`), t &&= (clearInterval(t), null), e.autoReconnectRef.current && e.isMountedRef.current && (e.setState("discovering"), e.addLog("info", "Auto-reconnecting to MCP server..."), setTimeout(() => {
|
|
3566
|
+
e.isMountedRef.current && e.stateRef.current === "discovering" && e.connect();
|
|
3567
|
+
}, typeof e.autoReconnectRef.current == "number" ? e.autoReconnectRef.current : e.defaultReconnectDelay)));
|
|
3568
|
+
}
|
|
3563
3569
|
}
|
|
3564
|
-
},
|
|
3570
|
+
}, i), () => {
|
|
3565
3571
|
t &&= (clearInterval(t), null);
|
|
3566
3572
|
};
|
|
3567
3573
|
}
|
|
@@ -4879,8 +4885,8 @@ function Na({ children: e, mcpServers: t, defaultCallbackUrl: n, defaultOAuthPro
|
|
|
4879
4885
|
h,
|
|
4880
4886
|
ae,
|
|
4881
4887
|
o
|
|
4882
|
-
]);
|
|
4883
|
-
return /* @__PURE__ */ M.createElement(Aa.Provider, { value: N }, e, I.map((e) => /* @__PURE__ */ M.createElement(Ma, {
|
|
4888
|
+
]), oe = typeof window < "u" && /\/oauth\/callback\/?$/.test(window.location.pathname);
|
|
4889
|
+
return /* @__PURE__ */ M.createElement(Aa.Provider, { value: N }, e, !oe && I.map((e) => /* @__PURE__ */ M.createElement(Ma, {
|
|
4884
4890
|
key: `${e.id}-v${ee[e.id] ?? 0}`,
|
|
4885
4891
|
id: e.id,
|
|
4886
4892
|
options: e.options,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { s as e, t } from "./react-BIs9pQ3H.js";
|
|
2
|
-
import { d as n } from "./react-
|
|
2
|
+
import { d as n } from "./react-BxO-uEDZ.js";
|
|
3
3
|
import { i as r, r as i, s as a, t as o } from "./WidgetDebugContext-D4usL_MA.js";
|
|
4
4
|
//#region src/client/console-log-bus.ts
|
|
5
5
|
var s = /* @__PURE__ */ e(t(), 1), c = new class {
|
package/dist/cli.js
CHANGED
|
@@ -7,6 +7,53 @@ import { cors as cors2 } from "hono/cors";
|
|
|
7
7
|
import { logger as logger2 } from "hono/logger";
|
|
8
8
|
import open from "open";
|
|
9
9
|
|
|
10
|
+
// src/server/asset-urls.ts
|
|
11
|
+
var JSDELIVR_INSPECTOR_TAG = "beta";
|
|
12
|
+
var DEFAULT_REMOTE_ASSETS_URL = `https://cdn.jsdelivr.net/npm/@mcp-use/inspector@${JSDELIVR_INSPECTOR_TAG}/dist/cdn/inspector.js`;
|
|
13
|
+
function inspectorStylesUrl(assetsUrl) {
|
|
14
|
+
return assetsUrl.replace(/\.js(?=$|[?#])/, ".css");
|
|
15
|
+
}
|
|
16
|
+
function resolveInspectorAssetUrls(inspectorMode2, basePath) {
|
|
17
|
+
const envUrl = process.env.INSPECTOR_ASSETS_URL ?? process.env.MCP_USE_INSPECTOR_ASSETS_URL;
|
|
18
|
+
if (envUrl) {
|
|
19
|
+
return {
|
|
20
|
+
jsUrl: envUrl,
|
|
21
|
+
cssUrl: inspectorStylesUrl(envUrl),
|
|
22
|
+
useLocal: false
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const legacyBase = process.env.INSPECTOR_CDN_BASE;
|
|
26
|
+
if (legacyBase) {
|
|
27
|
+
const base = legacyBase.replace(/\/$/, "");
|
|
28
|
+
if (/\.js(?:$|[?#])/.test(base)) {
|
|
29
|
+
return {
|
|
30
|
+
jsUrl: base,
|
|
31
|
+
cssUrl: inspectorStylesUrl(base),
|
|
32
|
+
useLocal: false
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
jsUrl: `${base}/inspector.js`,
|
|
37
|
+
cssUrl: `${base}/inspector.css`,
|
|
38
|
+
useLocal: false
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (inspectorMode2 === "standalone") {
|
|
42
|
+
const prefix = basePath;
|
|
43
|
+
return {
|
|
44
|
+
jsUrl: `${prefix}/dist/cdn/inspector.js`,
|
|
45
|
+
cssUrl: `${prefix}/dist/cdn/inspector.css`,
|
|
46
|
+
useLocal: true
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const jsUrl = DEFAULT_REMOTE_ASSETS_URL;
|
|
50
|
+
return {
|
|
51
|
+
jsUrl,
|
|
52
|
+
cssUrl: inspectorStylesUrl(jsUrl),
|
|
53
|
+
useLocal: false
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
10
57
|
// src/server/favicon-links.ts
|
|
11
58
|
var FAVICON_CACHE_VERSION = "4";
|
|
12
59
|
var INSPECTOR_FAVICON_ASSETS = [
|
|
@@ -39,8 +86,12 @@ var CONTENT_TYPES = {
|
|
|
39
86
|
function resolveFaviconDir() {
|
|
40
87
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
41
88
|
for (const dir of [
|
|
89
|
+
path.resolve(here, "cdn"),
|
|
90
|
+
// dist/cli.js (bundled)
|
|
42
91
|
path.resolve(here, "../cdn"),
|
|
92
|
+
// dist/server/*.js
|
|
43
93
|
path.resolve(here, "../../public")
|
|
94
|
+
// src/server/*.ts (dev)
|
|
44
95
|
]) {
|
|
45
96
|
if (existsSync(path.join(dir, "favicon-black.svg"))) {
|
|
46
97
|
return dir;
|
|
@@ -69,6 +120,56 @@ function registerInspectorFaviconStatic(app2, basePath = "") {
|
|
|
69
120
|
}
|
|
70
121
|
}
|
|
71
122
|
|
|
123
|
+
// src/server/static-assets.ts
|
|
124
|
+
import { existsSync as existsSync2, readFileSync as readFileSync2 } from "fs";
|
|
125
|
+
import path2 from "path";
|
|
126
|
+
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
127
|
+
var CONTENT_TYPES2 = {
|
|
128
|
+
".js": "application/javascript",
|
|
129
|
+
".css": "text/css",
|
|
130
|
+
".svg": "image/svg+xml",
|
|
131
|
+
".png": "image/png",
|
|
132
|
+
".ico": "image/x-icon",
|
|
133
|
+
".webmanifest": "application/manifest+json"
|
|
134
|
+
};
|
|
135
|
+
function resolveDistCdnDir() {
|
|
136
|
+
const here = path2.dirname(fileURLToPath2(import.meta.url));
|
|
137
|
+
for (const dir of [
|
|
138
|
+
path2.resolve(here, "cdn"),
|
|
139
|
+
// dist/cli.js (bundled)
|
|
140
|
+
path2.resolve(here, "../cdn")
|
|
141
|
+
// dist/server/*.js
|
|
142
|
+
]) {
|
|
143
|
+
if (existsSync2(path2.join(dir, "inspector.js"))) {
|
|
144
|
+
return dir;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
throw new Error(
|
|
148
|
+
"Inspector bundle not found (expected dist/cdn/inspector.js)"
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
function registerInspectorStaticAssets(app2, basePath = "") {
|
|
152
|
+
const cdnDir = resolveDistCdnDir();
|
|
153
|
+
const mountPath = `${basePath}/dist/cdn`;
|
|
154
|
+
app2.get(`${mountPath}/*`, (c) => {
|
|
155
|
+
const subPath = c.req.path.slice(mountPath.length);
|
|
156
|
+
const relative = subPath.startsWith("/") ? subPath.slice(1) : subPath;
|
|
157
|
+
if (!relative || relative.includes("..")) {
|
|
158
|
+
return c.notFound();
|
|
159
|
+
}
|
|
160
|
+
const file = path2.resolve(cdnDir, relative);
|
|
161
|
+
const root = cdnDir.endsWith(path2.sep) ? cdnDir : `${cdnDir}${path2.sep}`;
|
|
162
|
+
if (!file.startsWith(root) || !existsSync2(file)) {
|
|
163
|
+
return c.notFound();
|
|
164
|
+
}
|
|
165
|
+
const ext = path2.extname(file);
|
|
166
|
+
return c.body(readFileSync2(file), 200, {
|
|
167
|
+
"Content-Type": CONTENT_TYPES2[ext] ?? "application/octet-stream",
|
|
168
|
+
"Cache-Control": "public, max-age=3600"
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
72
173
|
// package.json
|
|
73
174
|
var package_default = {
|
|
74
175
|
name: "@mcp-use/inspector",
|
|
@@ -130,7 +231,7 @@ var package_default = {
|
|
|
130
231
|
"build:server": "tsup 'src/server/**/*.ts' --format esm --out-dir dist/server && tsc -p tsconfig.server.json --emitDeclarationOnly --declaration",
|
|
131
232
|
"build:cli": "tsup src/server/cli.ts --format esm --out-dir dist/",
|
|
132
233
|
prepublishOnly: "pnpm --filter @mcp-use/client build && pnpm build",
|
|
133
|
-
start: "node dist/
|
|
234
|
+
start: "node dist/cli.js --port 3000",
|
|
134
235
|
preview: "vite preview",
|
|
135
236
|
"type-check": "tsc --noEmit",
|
|
136
237
|
lint: "eslint .",
|
|
@@ -230,15 +331,12 @@ function getInspectorVersion() {
|
|
|
230
331
|
|
|
231
332
|
// src/server/cdn-shell.ts
|
|
232
333
|
var INSPECTOR_VERSION = getInspectorVersion();
|
|
233
|
-
var CDN_BASE = process.env.INSPECTOR_CDN_BASE ?? "https://inspector-cdn.mcp-use.com";
|
|
234
|
-
var CDN_JS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.js`;
|
|
235
|
-
var CDN_CSS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.css`;
|
|
236
334
|
var OAUTH_POPUP_CLOSED_HTML = `<!doctype html>
|
|
237
335
|
<html lang="en"><head><meta charset="utf-8"><title>Signed in</title><meta name="robots" content="noindex"><style>html,body{margin:0;height:100%;display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#4b5563;background:#fff}</style></head>
|
|
238
336
|
<body><div>Signed in. You can close this window.</div>
|
|
239
337
|
<script>try{if(window.opener&&!window.opener.closed)window.opener.postMessage({type:"manufact:oauth-complete"},"*")}catch(e){}try{window.close()}catch(e){}</script>
|
|
240
338
|
</body></html>`;
|
|
241
|
-
function generateCdnShellHtml(config, basePath
|
|
339
|
+
function generateCdnShellHtml(config, basePath, assets) {
|
|
242
340
|
const scripts = [];
|
|
243
341
|
if (config?.basePath !== void 0) {
|
|
244
342
|
scripts.push(
|
|
@@ -283,7 +381,7 @@ function generateCdnShellHtml(config, basePath = "") {
|
|
|
283
381
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
284
382
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
285
383
|
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet" />
|
|
286
|
-
<link rel="stylesheet" href="${
|
|
384
|
+
<link rel="stylesheet" href="${assets.cssUrl}" />
|
|
287
385
|
<title>Inspector | mcp-use</title>
|
|
288
386
|
<meta name="description" content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser." />
|
|
289
387
|
<script>window.__INSPECTOR_VERSION__ = ${JSON.stringify(INSPECTOR_VERSION)};</script>
|
|
@@ -304,11 +402,12 @@ function generateCdnShellHtml(config, basePath = "") {
|
|
|
304
402
|
}
|
|
305
403
|
</script>
|
|
306
404
|
<div id="root"></div>
|
|
307
|
-
<script type="module" src="${
|
|
405
|
+
<script type="module" src="${assets.jsUrl}"></script>
|
|
308
406
|
</body>
|
|
309
407
|
</html>`;
|
|
310
408
|
}
|
|
311
409
|
function registerInspectorCdnShell(app2, config, basePath = "") {
|
|
410
|
+
const assets = resolveInspectorAssetUrls(config?.inspectorMode, basePath);
|
|
312
411
|
const p = (suffix) => `${basePath}${suffix}`;
|
|
313
412
|
const effectiveConfig = {
|
|
314
413
|
...config,
|
|
@@ -316,7 +415,7 @@ function registerInspectorCdnShell(app2, config, basePath = "") {
|
|
|
316
415
|
proxyUrl: config?.proxyUrl !== void 0 ? config.proxyUrl : p("/inspector/api/proxy"),
|
|
317
416
|
disableTelemetry: config?.disableTelemetry ?? process.env.MCP_USE_ANONYMIZED_TELEMETRY === "false"
|
|
318
417
|
};
|
|
319
|
-
const serveShell = (c) => c.html(generateCdnShellHtml(effectiveConfig, basePath));
|
|
418
|
+
const serveShell = (c) => c.html(generateCdnShellHtml(effectiveConfig, basePath, assets));
|
|
320
419
|
registerInspectorFaviconStatic(app2, basePath);
|
|
321
420
|
app2.get(
|
|
322
421
|
p("/inspector/oauth-popup-closed.html"),
|
|
@@ -343,6 +442,9 @@ function registerInspectorCdnShell(app2, config, basePath = "") {
|
|
|
343
442
|
return c.redirect(`${p("/inspector")}${url.search}`);
|
|
344
443
|
});
|
|
345
444
|
}
|
|
445
|
+
if (assets.useLocal) {
|
|
446
|
+
registerInspectorStaticAssets(app2, basePath);
|
|
447
|
+
}
|
|
346
448
|
}
|
|
347
449
|
|
|
348
450
|
// src/server/proxy/mcp-proxy.ts
|
|
@@ -645,18 +747,18 @@ function classifyMetadataTarget(serverUrl, target, binding) {
|
|
|
645
747
|
return void 0;
|
|
646
748
|
}
|
|
647
749
|
function protectedResourceMetadataUrls(serverUrl) {
|
|
648
|
-
const
|
|
750
|
+
const path3 = serverUrl.pathname === "/" ? "" : serverUrl.pathname;
|
|
649
751
|
return [
|
|
650
|
-
new URL(`/.well-known/oauth-protected-resource${
|
|
752
|
+
new URL(`/.well-known/oauth-protected-resource${path3}`, serverUrl.origin),
|
|
651
753
|
new URL("/.well-known/oauth-protected-resource", serverUrl.origin)
|
|
652
754
|
];
|
|
653
755
|
}
|
|
654
756
|
function authorizationServerMetadataUrls(issuer) {
|
|
655
|
-
const
|
|
757
|
+
const path3 = issuer.pathname === "/" ? "" : issuer.pathname;
|
|
656
758
|
return [
|
|
657
|
-
new URL(`/.well-known/oauth-authorization-server${
|
|
658
|
-
new URL(`/.well-known/openid-configuration${
|
|
659
|
-
new URL(`${
|
|
759
|
+
new URL(`/.well-known/oauth-authorization-server${path3}`, issuer.origin),
|
|
760
|
+
new URL(`/.well-known/openid-configuration${path3}`, issuer.origin),
|
|
761
|
+
new URL(`${path3 || ""}/.well-known/openid-configuration`, issuer.origin)
|
|
660
762
|
];
|
|
661
763
|
}
|
|
662
764
|
async function bindProtectedResource(metadata, serverUrl, binding, allowLoopback) {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** How the inspector is being served (telemetry + hosted UI behavior). */
|
|
2
|
+
export type InspectorMode = "standalone" | "embedded" | "cloud";
|
|
3
|
+
/** npm dist-tag for remote inspector bundles (matches mcp-use server). */
|
|
4
|
+
export declare const JSDELIVR_INSPECTOR_TAG = "beta";
|
|
5
|
+
export declare const DEFAULT_REMOTE_ASSETS_URL = "https://cdn.jsdelivr.net/npm/@mcp-use/inspector@beta/dist/cdn/inspector.js";
|
|
6
|
+
/** Derive the stylesheet URL from a bundle script URL. */
|
|
7
|
+
export declare function inspectorStylesUrl(assetsUrl: string): string;
|
|
8
|
+
export type InspectorAssetUrls = {
|
|
9
|
+
jsUrl: string;
|
|
10
|
+
cssUrl: string;
|
|
11
|
+
useLocal: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare function resolveInspectorAssetUrls(inspectorMode: InspectorMode | undefined, basePath: string): InspectorAssetUrls;
|
|
14
|
+
//# sourceMappingURL=asset-urls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-urls.d.ts","sourceRoot":"","sources":["../../src/server/asset-urls.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAE7C,eAAO,MAAM,yBAAyB,+EAAoG,CAAC;AAE3I,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,GACf,kBAAkB,CA6CpB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_REMOTE_ASSETS_URL,
|
|
3
|
+
JSDELIVR_INSPECTOR_TAG,
|
|
4
|
+
inspectorStylesUrl,
|
|
5
|
+
resolveInspectorAssetUrls
|
|
6
|
+
} from "./chunk-KBVKS4J5.js";
|
|
7
|
+
import "./chunk-PKBMQBKP.js";
|
|
8
|
+
export {
|
|
9
|
+
DEFAULT_REMOTE_ASSETS_URL,
|
|
10
|
+
JSDELIVR_INSPECTOR_TAG,
|
|
11
|
+
inspectorStylesUrl,
|
|
12
|
+
resolveInspectorAssetUrls
|
|
13
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Hono } from "hono";
|
|
2
|
-
|
|
3
|
-
export type InspectorMode
|
|
2
|
+
import { type InspectorMode } from "./asset-urls.js";
|
|
3
|
+
export type { InspectorMode } from "./asset-urls.js";
|
|
4
4
|
export type CdnShellConfig = {
|
|
5
5
|
basePath?: string;
|
|
6
6
|
devMode?: boolean;
|
|
@@ -12,7 +12,7 @@ export type CdnShellConfig = {
|
|
|
12
12
|
disableTelemetry?: boolean;
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
|
-
* Serve the inspector UI
|
|
15
|
+
* Serve the inspector UI at `${basePath}/inspector`.
|
|
16
16
|
*/
|
|
17
17
|
export declare function registerInspectorCdnShell(app: Hono, config?: CdnShellConfig, basePath?: string): void;
|
|
18
18
|
//# sourceMappingURL=cdn-shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn-shell.d.ts","sourceRoot":"","sources":["../../src/server/cdn-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cdn-shell.d.ts","sourceRoot":"","sources":["../../src/server/cdn-shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAA6B,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQhF,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAoFF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,EACT,MAAM,CAAC,EAAE,cAAc,EACvB,QAAQ,GAAE,MAAW,QAmDtB"}
|
package/dist/server/cdn-shell.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerInspectorCdnShell
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-VDUV6LR6.js";
|
|
4
|
+
import "./chunk-M5TZA42I.js";
|
|
5
|
+
import "./chunk-Y2GBQOQW.js";
|
|
6
|
+
import "./chunk-KBVKS4J5.js";
|
|
7
|
+
import "./chunk-J4FNYLBF.js";
|
|
6
8
|
import "./chunk-WFT4JHYI.js";
|
|
7
9
|
import "./chunk-PKBMQBKP.js";
|
|
8
10
|
export {
|
|
@@ -15,8 +15,12 @@ var CONTENT_TYPES = {
|
|
|
15
15
|
function resolveFaviconDir() {
|
|
16
16
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
17
17
|
for (const dir of [
|
|
18
|
+
path.resolve(here, "cdn"),
|
|
19
|
+
// dist/cli.js (bundled)
|
|
18
20
|
path.resolve(here, "../cdn"),
|
|
21
|
+
// dist/server/*.js
|
|
19
22
|
path.resolve(here, "../../public")
|
|
23
|
+
// src/server/*.ts (dev)
|
|
20
24
|
]) {
|
|
21
25
|
if (existsSync(path.join(dir, "favicon-black.svg"))) {
|
|
22
26
|
return dir;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// src/server/asset-urls.ts
|
|
2
|
+
var JSDELIVR_INSPECTOR_TAG = "beta";
|
|
3
|
+
var DEFAULT_REMOTE_ASSETS_URL = `https://cdn.jsdelivr.net/npm/@mcp-use/inspector@${JSDELIVR_INSPECTOR_TAG}/dist/cdn/inspector.js`;
|
|
4
|
+
function inspectorStylesUrl(assetsUrl) {
|
|
5
|
+
return assetsUrl.replace(/\.js(?=$|[?#])/, ".css");
|
|
6
|
+
}
|
|
7
|
+
function resolveInspectorAssetUrls(inspectorMode, basePath) {
|
|
8
|
+
const envUrl = process.env.INSPECTOR_ASSETS_URL ?? process.env.MCP_USE_INSPECTOR_ASSETS_URL;
|
|
9
|
+
if (envUrl) {
|
|
10
|
+
return {
|
|
11
|
+
jsUrl: envUrl,
|
|
12
|
+
cssUrl: inspectorStylesUrl(envUrl),
|
|
13
|
+
useLocal: false
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const legacyBase = process.env.INSPECTOR_CDN_BASE;
|
|
17
|
+
if (legacyBase) {
|
|
18
|
+
const base = legacyBase.replace(/\/$/, "");
|
|
19
|
+
if (/\.js(?:$|[?#])/.test(base)) {
|
|
20
|
+
return {
|
|
21
|
+
jsUrl: base,
|
|
22
|
+
cssUrl: inspectorStylesUrl(base),
|
|
23
|
+
useLocal: false
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
jsUrl: `${base}/inspector.js`,
|
|
28
|
+
cssUrl: `${base}/inspector.css`,
|
|
29
|
+
useLocal: false
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
if (inspectorMode === "standalone") {
|
|
33
|
+
const prefix = basePath;
|
|
34
|
+
return {
|
|
35
|
+
jsUrl: `${prefix}/dist/cdn/inspector.js`,
|
|
36
|
+
cssUrl: `${prefix}/dist/cdn/inspector.css`,
|
|
37
|
+
useLocal: true
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const jsUrl = DEFAULT_REMOTE_ASSETS_URL;
|
|
41
|
+
return {
|
|
42
|
+
jsUrl,
|
|
43
|
+
cssUrl: inspectorStylesUrl(jsUrl),
|
|
44
|
+
useLocal: false
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export {
|
|
49
|
+
JSDELIVR_INSPECTOR_TAG,
|
|
50
|
+
DEFAULT_REMOTE_ASSETS_URL,
|
|
51
|
+
inspectorStylesUrl,
|
|
52
|
+
resolveInspectorAssetUrls
|
|
53
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// src/server/static-assets.ts
|
|
2
|
+
import { existsSync, readFileSync } from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
var CONTENT_TYPES = {
|
|
6
|
+
".js": "application/javascript",
|
|
7
|
+
".css": "text/css",
|
|
8
|
+
".svg": "image/svg+xml",
|
|
9
|
+
".png": "image/png",
|
|
10
|
+
".ico": "image/x-icon",
|
|
11
|
+
".webmanifest": "application/manifest+json"
|
|
12
|
+
};
|
|
13
|
+
function resolveDistCdnDir() {
|
|
14
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
for (const dir of [
|
|
16
|
+
path.resolve(here, "cdn"),
|
|
17
|
+
// dist/cli.js (bundled)
|
|
18
|
+
path.resolve(here, "../cdn")
|
|
19
|
+
// dist/server/*.js
|
|
20
|
+
]) {
|
|
21
|
+
if (existsSync(path.join(dir, "inspector.js"))) {
|
|
22
|
+
return dir;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
throw new Error(
|
|
26
|
+
"Inspector bundle not found (expected dist/cdn/inspector.js)"
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
function registerInspectorStaticAssets(app, basePath = "") {
|
|
30
|
+
const cdnDir = resolveDistCdnDir();
|
|
31
|
+
const mountPath = `${basePath}/dist/cdn`;
|
|
32
|
+
app.get(`${mountPath}/*`, (c) => {
|
|
33
|
+
const subPath = c.req.path.slice(mountPath.length);
|
|
34
|
+
const relative = subPath.startsWith("/") ? subPath.slice(1) : subPath;
|
|
35
|
+
if (!relative || relative.includes("..")) {
|
|
36
|
+
return c.notFound();
|
|
37
|
+
}
|
|
38
|
+
const file = path.resolve(cdnDir, relative);
|
|
39
|
+
const root = cdnDir.endsWith(path.sep) ? cdnDir : `${cdnDir}${path.sep}`;
|
|
40
|
+
if (!file.startsWith(root) || !existsSync(file)) {
|
|
41
|
+
return c.notFound();
|
|
42
|
+
}
|
|
43
|
+
const ext = path.extname(file);
|
|
44
|
+
return c.body(readFileSync(file), 200, {
|
|
45
|
+
"Content-Type": CONTENT_TYPES[ext] ?? "application/octet-stream",
|
|
46
|
+
"Cache-Control": "public, max-age=3600"
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export {
|
|
52
|
+
resolveDistCdnDir,
|
|
53
|
+
registerInspectorStaticAssets
|
|
54
|
+
};
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
registerInspectorStaticAssets
|
|
3
|
+
} from "./chunk-M5TZA42I.js";
|
|
1
4
|
import {
|
|
2
5
|
getInspectorVersion
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Y2GBQOQW.js";
|
|
7
|
+
import {
|
|
8
|
+
resolveInspectorAssetUrls
|
|
9
|
+
} from "./chunk-KBVKS4J5.js";
|
|
4
10
|
import {
|
|
5
11
|
registerInspectorFaviconStatic
|
|
6
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-J4FNYLBF.js";
|
|
7
13
|
import {
|
|
8
14
|
renderInspectorFaviconLinks
|
|
9
15
|
} from "./chunk-WFT4JHYI.js";
|
|
10
16
|
|
|
11
17
|
// src/server/cdn-shell.ts
|
|
12
18
|
var INSPECTOR_VERSION = getInspectorVersion();
|
|
13
|
-
var CDN_BASE = process.env.INSPECTOR_CDN_BASE ?? "https://inspector-cdn.mcp-use.com";
|
|
14
|
-
var CDN_JS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.js`;
|
|
15
|
-
var CDN_CSS_URL = `${CDN_BASE}/inspector@${INSPECTOR_VERSION}.css`;
|
|
16
19
|
var OAUTH_POPUP_CLOSED_HTML = `<!doctype html>
|
|
17
20
|
<html lang="en"><head><meta charset="utf-8"><title>Signed in</title><meta name="robots" content="noindex"><style>html,body{margin:0;height:100%;display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#4b5563;background:#fff}</style></head>
|
|
18
21
|
<body><div>Signed in. You can close this window.</div>
|
|
19
22
|
<script>try{if(window.opener&&!window.opener.closed)window.opener.postMessage({type:"manufact:oauth-complete"},"*")}catch(e){}try{window.close()}catch(e){}</script>
|
|
20
23
|
</body></html>`;
|
|
21
|
-
function generateCdnShellHtml(config, basePath
|
|
24
|
+
function generateCdnShellHtml(config, basePath, assets) {
|
|
22
25
|
const scripts = [];
|
|
23
26
|
if (config?.basePath !== void 0) {
|
|
24
27
|
scripts.push(
|
|
@@ -63,7 +66,7 @@ function generateCdnShellHtml(config, basePath = "") {
|
|
|
63
66
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
64
67
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
65
68
|
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet" />
|
|
66
|
-
<link rel="stylesheet" href="${
|
|
69
|
+
<link rel="stylesheet" href="${assets.cssUrl}" />
|
|
67
70
|
<title>Inspector | mcp-use</title>
|
|
68
71
|
<meta name="description" content="Free, open-source MCP Inspector by mcp-use. Connect to any MCP server, test tools, prompts, and resources, inspect RPC logs, and debug MCP apps \u2014 all in your browser." />
|
|
69
72
|
<script>window.__INSPECTOR_VERSION__ = ${JSON.stringify(INSPECTOR_VERSION)};</script>
|
|
@@ -84,11 +87,12 @@ function generateCdnShellHtml(config, basePath = "") {
|
|
|
84
87
|
}
|
|
85
88
|
</script>
|
|
86
89
|
<div id="root"></div>
|
|
87
|
-
<script type="module" src="${
|
|
90
|
+
<script type="module" src="${assets.jsUrl}"></script>
|
|
88
91
|
</body>
|
|
89
92
|
</html>`;
|
|
90
93
|
}
|
|
91
94
|
function registerInspectorCdnShell(app, config, basePath = "") {
|
|
95
|
+
const assets = resolveInspectorAssetUrls(config?.inspectorMode, basePath);
|
|
92
96
|
const p = (suffix) => `${basePath}${suffix}`;
|
|
93
97
|
const effectiveConfig = {
|
|
94
98
|
...config,
|
|
@@ -96,7 +100,7 @@ function registerInspectorCdnShell(app, config, basePath = "") {
|
|
|
96
100
|
proxyUrl: config?.proxyUrl !== void 0 ? config.proxyUrl : p("/inspector/api/proxy"),
|
|
97
101
|
disableTelemetry: config?.disableTelemetry ?? process.env.MCP_USE_ANONYMIZED_TELEMETRY === "false"
|
|
98
102
|
};
|
|
99
|
-
const serveShell = (c) => c.html(generateCdnShellHtml(effectiveConfig, basePath));
|
|
103
|
+
const serveShell = (c) => c.html(generateCdnShellHtml(effectiveConfig, basePath, assets));
|
|
100
104
|
registerInspectorFaviconStatic(app, basePath);
|
|
101
105
|
app.get(
|
|
102
106
|
p("/inspector/oauth-popup-closed.html"),
|
|
@@ -123,6 +127,9 @@ function registerInspectorCdnShell(app, config, basePath = "") {
|
|
|
123
127
|
return c.redirect(`${p("/inspector")}${url.search}`);
|
|
124
128
|
});
|
|
125
129
|
}
|
|
130
|
+
if (assets.useLocal) {
|
|
131
|
+
registerInspectorStaticAssets(app, basePath);
|
|
132
|
+
}
|
|
126
133
|
}
|
|
127
134
|
|
|
128
135
|
export {
|
|
@@ -59,7 +59,7 @@ var package_default = {
|
|
|
59
59
|
"build:server": "tsup 'src/server/**/*.ts' --format esm --out-dir dist/server && tsc -p tsconfig.server.json --emitDeclarationOnly --declaration",
|
|
60
60
|
"build:cli": "tsup src/server/cli.ts --format esm --out-dir dist/",
|
|
61
61
|
prepublishOnly: "pnpm --filter @mcp-use/client build && pnpm build",
|
|
62
|
-
start: "node dist/
|
|
62
|
+
start: "node dist/cli.js --port 3000",
|
|
63
63
|
preview: "vite preview",
|
|
64
64
|
"type-check": "tsc --noEmit",
|
|
65
65
|
lint: "eslint .",
|
package/dist/server/cli.js
CHANGED
|
@@ -5,18 +5,20 @@ import {
|
|
|
5
5
|
} from "./chunk-KD7K27XK.js";
|
|
6
6
|
import {
|
|
7
7
|
registerInspectorCdnShell
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VDUV6LR6.js";
|
|
9
|
+
import "./chunk-M5TZA42I.js";
|
|
9
10
|
import {
|
|
10
11
|
getInspectorVersion
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-WFT4JHYI.js";
|
|
12
|
+
} from "./chunk-Y2GBQOQW.js";
|
|
13
|
+
import "./chunk-KBVKS4J5.js";
|
|
14
14
|
import {
|
|
15
15
|
registerInspectorProxyRoutes
|
|
16
16
|
} from "./chunk-5B3SXGZP.js";
|
|
17
17
|
import "./chunk-IKTZUWSX.js";
|
|
18
18
|
import "./chunk-6XWDZEFF.js";
|
|
19
19
|
import "./chunk-K2F2AJOI.js";
|
|
20
|
+
import "./chunk-J4FNYLBF.js";
|
|
21
|
+
import "./chunk-WFT4JHYI.js";
|
|
20
22
|
import "./chunk-PKBMQBKP.js";
|
|
21
23
|
|
|
22
24
|
// src/server/cli.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favicon-static.d.ts","sourceRoot":"","sources":["../../src/server/favicon-static.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"favicon-static.d.ts","sourceRoot":"","sources":["../../src/server/favicon-static.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA0BjC,uEAAuE;AACvE,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,IAAI,EACT,QAAQ,GAAE,MAAW,QAmBtB"}
|
package/dist/server/index.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
mountInspector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IXYK6ZOY.js";
|
|
4
4
|
import {
|
|
5
5
|
registerInspectorCdnShell
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-VDUV6LR6.js";
|
|
7
|
+
import "./chunk-M5TZA42I.js";
|
|
8
|
+
import "./chunk-Y2GBQOQW.js";
|
|
9
|
+
import "./chunk-KBVKS4J5.js";
|
|
10
10
|
import {
|
|
11
11
|
registerInspectorProxyRoutes
|
|
12
12
|
} from "./chunk-5B3SXGZP.js";
|
|
13
13
|
import "./chunk-IKTZUWSX.js";
|
|
14
14
|
import "./chunk-6XWDZEFF.js";
|
|
15
15
|
import "./chunk-K2F2AJOI.js";
|
|
16
|
+
import "./chunk-J4FNYLBF.js";
|
|
17
|
+
import "./chunk-WFT4JHYI.js";
|
|
16
18
|
import "./chunk-PKBMQBKP.js";
|
|
17
19
|
export {
|
|
18
20
|
mountInspector,
|