@mcp-use/inspector 0.6.1 → 0.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/cli.js +295 -19
- package/dist/client/assets/__vite-browser-external-CHS79mP1.js +8 -0
- package/dist/client/assets/browser-BdCJ_qyB.js +38211 -0
- package/dist/client/assets/chunk-VL2OQCWN-CxD8xDNw.js +6475 -0
- package/dist/client/assets/display-YIYC6WJE-B6ZSv77R.js +44742 -0
- package/dist/client/assets/embeddings-DlCMB9po.js +21 -0
- package/dist/client/assets/index-B0NYybvW.js +5371 -0
- package/dist/client/assets/index-CKXUnlZB.js +94617 -0
- package/dist/client/assets/index-Cb09SlUY.js +17535 -0
- package/dist/client/assets/index-CsP5AdwX.js +10699 -0
- package/dist/client/assets/index-DX0TIfSM.js +102 -0
- package/dist/client/assets/index-Q_pqNaNk.js +1780 -0
- package/dist/client/assets/index-kVFYovMy.css +5752 -0
- package/dist/client/assets/path-QsnVvLoj.js +62 -0
- package/dist/client/assets/transport-wrapper-browser-ChPHVnHg.js +165 -0
- package/dist/client/assets/winston-qgF6niUt.js +12326 -0
- package/dist/client/index.html +3 -3
- package/dist/server/{chunk-37X7HLUV.js → chunk-3T2VCYG6.js} +87 -13
- package/dist/server/chunk-CVECQ7BJ.js +78 -0
- package/dist/server/{chunk-555LGZ3I.js → chunk-FS77NTZN.js} +133 -10
- package/dist/server/chunk-PKBMQBKP.js +7 -0
- package/dist/server/{chunk-WYBXXYSP.js → chunk-RRPLH7DL.js} +1 -1
- package/dist/server/{chunk-PYGYQT2G.js → chunk-S7NOZBMG.js} +3 -3
- package/dist/server/{chunk-DGUMOD7P.js → chunk-ZONLXYBO.js} +92 -10
- package/dist/server/cli.js +6 -4
- package/dist/server/index.js +7 -5
- package/dist/server/middleware.js +7 -5
- package/dist/server/rpc-log-bus.d.ts +17 -0
- package/dist/server/rpc-log-bus.d.ts.map +1 -0
- package/dist/server/rpc-log-bus.js +7 -0
- package/dist/server/server.js +6 -4
- package/dist/server/shared-routes.d.ts.map +1 -1
- package/dist/server/shared-routes.js +4 -2
- package/dist/server/shared-static.js +3 -2
- package/dist/server/shared-utils-browser.d.ts +2 -1
- package/dist/server/shared-utils-browser.d.ts.map +1 -1
- package/dist/server/shared-utils-browser.js +2 -1
- package/dist/server/shared-utils.d.ts +4 -1
- package/dist/server/shared-utils.d.ts.map +1 -1
- package/dist/server/shared-utils.js +2 -1
- package/dist/server/transport-wrapper.d.ts +6 -0
- package/dist/server/transport-wrapper.d.ts.map +1 -0
- package/dist/server/transport-wrapper.js +68 -0
- package/dist/server/utils.js +1 -0
- package/package.json +12 -3
- package/dist/client/assets/__vite-browser-external-DFygW7-s.js +0 -1
- package/dist/client/assets/chunk-VL2OQCWN-iRVOQjqe.js +0 -8
- package/dist/client/assets/display-LIYVTGEU-D2dm8q2H.js +0 -30
- package/dist/client/assets/embeddings-Dcyp0Vlp.js +0 -1
- package/dist/client/assets/index-6zrNEwtM.js +0 -4
- package/dist/client/assets/index-CAnbiFOL.css +0 -1
- package/dist/client/assets/index-CB1s6Wr6.js +0 -146
- package/dist/client/assets/index-CoMldIFv.js +0 -2
- package/dist/client/assets/index-DRz5BQNA.js +0 -1
- package/dist/client/assets/index-DUf1336L.js +0 -1559
- package/dist/client/assets/index-DmIKR5St.js +0 -1
- package/dist/client/assets/index-DpUpZFq2.js +0 -25
- package/dist/client/assets/index-DzegZXPW.js +0 -40
- package/dist/client/assets/langfuse-C4HKZ3NL-vCtAvQQV.js +0 -564
- package/dist/client/assets/path-C9FudP8b.js +0 -1
- package/dist/client/assets/winston-BVJ8PyEn.js +0 -37
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
function join(...paths) {
|
|
2
|
+
return paths.filter(Boolean).join("/").replace(/\/+/g, "/").replace(/\/$/, "");
|
|
3
|
+
}
|
|
4
|
+
function resolve(...paths) {
|
|
5
|
+
return join(...paths);
|
|
6
|
+
}
|
|
7
|
+
function dirname(filepath) {
|
|
8
|
+
const parts = filepath.split("/");
|
|
9
|
+
parts.pop();
|
|
10
|
+
return parts.join("/") || "/";
|
|
11
|
+
}
|
|
12
|
+
function basename(filepath, ext) {
|
|
13
|
+
const parts = filepath.split("/");
|
|
14
|
+
let name = parts[parts.length - 1] || "";
|
|
15
|
+
if (ext && name.endsWith(ext)) {
|
|
16
|
+
name = name.slice(0, -ext.length);
|
|
17
|
+
}
|
|
18
|
+
return name;
|
|
19
|
+
}
|
|
20
|
+
function extname(filepath) {
|
|
21
|
+
const name = basename(filepath);
|
|
22
|
+
const index = name.lastIndexOf(".");
|
|
23
|
+
return index > 0 ? name.slice(index) : "";
|
|
24
|
+
}
|
|
25
|
+
function normalize(filepath) {
|
|
26
|
+
return filepath.replace(/\/+/g, "/");
|
|
27
|
+
}
|
|
28
|
+
function isAbsolute(filepath) {
|
|
29
|
+
return filepath.startsWith("/");
|
|
30
|
+
}
|
|
31
|
+
const sep = "/";
|
|
32
|
+
const delimiter = ":";
|
|
33
|
+
const path = {
|
|
34
|
+
join,
|
|
35
|
+
resolve,
|
|
36
|
+
dirname,
|
|
37
|
+
basename,
|
|
38
|
+
extname,
|
|
39
|
+
normalize,
|
|
40
|
+
isAbsolute,
|
|
41
|
+
sep,
|
|
42
|
+
delimiter
|
|
43
|
+
};
|
|
44
|
+
const path$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
45
|
+
__proto__: null,
|
|
46
|
+
basename,
|
|
47
|
+
default: path,
|
|
48
|
+
delimiter,
|
|
49
|
+
dirname,
|
|
50
|
+
extname,
|
|
51
|
+
isAbsolute,
|
|
52
|
+
join,
|
|
53
|
+
normalize,
|
|
54
|
+
resolve,
|
|
55
|
+
sep
|
|
56
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
57
|
+
export {
|
|
58
|
+
dirname as d,
|
|
59
|
+
isAbsolute as i,
|
|
60
|
+
join as j,
|
|
61
|
+
path$1 as p
|
|
62
|
+
};
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
class SimpleEventEmitter {
|
|
2
|
+
listeners = /* @__PURE__ */ new Map();
|
|
3
|
+
on(event, listener) {
|
|
4
|
+
if (!this.listeners.has(event)) {
|
|
5
|
+
this.listeners.set(event, /* @__PURE__ */ new Set());
|
|
6
|
+
}
|
|
7
|
+
this.listeners.get(event).add(listener);
|
|
8
|
+
}
|
|
9
|
+
off(event, listener) {
|
|
10
|
+
this.listeners.get(event)?.delete(listener);
|
|
11
|
+
}
|
|
12
|
+
emit(event, ...args) {
|
|
13
|
+
this.listeners.get(event)?.forEach((listener) => {
|
|
14
|
+
try {
|
|
15
|
+
listener(...args);
|
|
16
|
+
} catch (e) {
|
|
17
|
+
console.error("Error in event listener:", e);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class RpcLogBus {
|
|
23
|
+
emitter = new SimpleEventEmitter();
|
|
24
|
+
bufferByServer = /* @__PURE__ */ new Map();
|
|
25
|
+
publish(event) {
|
|
26
|
+
const buffer = this.bufferByServer.get(event.serverId) ?? [];
|
|
27
|
+
buffer.push(event);
|
|
28
|
+
if (buffer.length > 1e3) {
|
|
29
|
+
buffer.shift();
|
|
30
|
+
}
|
|
31
|
+
this.bufferByServer.set(event.serverId, buffer);
|
|
32
|
+
this.emitter.emit("event", event);
|
|
33
|
+
}
|
|
34
|
+
subscribe(serverIds, listener) {
|
|
35
|
+
const filter = new Set(serverIds);
|
|
36
|
+
const handler = (event) => {
|
|
37
|
+
if (filter.size === 0 || filter.has(event.serverId)) listener(event);
|
|
38
|
+
};
|
|
39
|
+
this.emitter.on("event", handler);
|
|
40
|
+
return () => this.emitter.off("event", handler);
|
|
41
|
+
}
|
|
42
|
+
getBuffer(serverIds, limit) {
|
|
43
|
+
const filter = new Set(serverIds);
|
|
44
|
+
const all = [];
|
|
45
|
+
for (const [serverId, buf] of this.bufferByServer.entries()) {
|
|
46
|
+
if (filter.size > 0 && !filter.has(serverId)) continue;
|
|
47
|
+
all.push(...buf);
|
|
48
|
+
}
|
|
49
|
+
all.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
|
|
50
|
+
if (limit === 0) return [];
|
|
51
|
+
if (!Number.isFinite(limit) || limit < 0) return all;
|
|
52
|
+
return all.slice(0, limit);
|
|
53
|
+
}
|
|
54
|
+
clear(serverIds) {
|
|
55
|
+
if (serverIds && serverIds.length > 0) {
|
|
56
|
+
const filter = new Set(serverIds);
|
|
57
|
+
for (const serverId of filter) {
|
|
58
|
+
this.bufferByServer.delete(serverId);
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
this.bufferByServer.clear();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const rpcLogBus = new RpcLogBus();
|
|
66
|
+
const browserRpcLogBus = {
|
|
67
|
+
publish: async (event) => {
|
|
68
|
+
console.log("[RPC Log Bus Browser] Publishing event:", {
|
|
69
|
+
serverId: event.serverId,
|
|
70
|
+
direction: event.direction,
|
|
71
|
+
method: event.message?.method || "unknown"
|
|
72
|
+
});
|
|
73
|
+
try {
|
|
74
|
+
rpcLogBus.publish(event);
|
|
75
|
+
console.log("[RPC Log Bus Browser] Published to local bus");
|
|
76
|
+
} catch (e) {
|
|
77
|
+
console.error("[RPC Log Bus Browser] Failed to publish to local bus:", e);
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
console.log("[RPC Log Bus Browser] Sending to server...");
|
|
81
|
+
const response = await fetch("/inspector/api/rpc/log", {
|
|
82
|
+
method: "POST",
|
|
83
|
+
headers: {
|
|
84
|
+
"Content-Type": "application/json"
|
|
85
|
+
},
|
|
86
|
+
body: JSON.stringify(event)
|
|
87
|
+
});
|
|
88
|
+
if (!response.ok) {
|
|
89
|
+
console.warn(
|
|
90
|
+
"[RPC Log Bus Browser] Server returned non-OK status:",
|
|
91
|
+
response.status
|
|
92
|
+
);
|
|
93
|
+
} else {
|
|
94
|
+
console.log("[RPC Log Bus Browser] Sent to server successfully");
|
|
95
|
+
}
|
|
96
|
+
} catch (err) {
|
|
97
|
+
console.warn(
|
|
98
|
+
"[RPC Log Bus Browser] Failed to send event to server:",
|
|
99
|
+
err
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
subscribe: rpcLogBus.subscribe.bind(rpcLogBus),
|
|
104
|
+
getBuffer: rpcLogBus.getBuffer.bind(rpcLogBus),
|
|
105
|
+
clear: rpcLogBus.clear.bind(rpcLogBus)
|
|
106
|
+
};
|
|
107
|
+
function wrapTransportForLogging(transport, serverId) {
|
|
108
|
+
console.log("[RPC Logger] Wrapping transport for server:", serverId);
|
|
109
|
+
class LoggingTransport {
|
|
110
|
+
constructor(inner) {
|
|
111
|
+
this.inner = inner;
|
|
112
|
+
this.inner.onmessage = (message, extra) => {
|
|
113
|
+
browserRpcLogBus.publish({
|
|
114
|
+
serverId,
|
|
115
|
+
direction: "receive",
|
|
116
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
117
|
+
message
|
|
118
|
+
}).catch((err) => {
|
|
119
|
+
console.warn("[RPC Logger] Failed to publish receive event:", err);
|
|
120
|
+
});
|
|
121
|
+
this.onmessage?.(message, extra);
|
|
122
|
+
};
|
|
123
|
+
this.inner.onclose = () => {
|
|
124
|
+
this.onclose?.();
|
|
125
|
+
};
|
|
126
|
+
this.inner.onerror = (error) => {
|
|
127
|
+
this.onerror?.(error);
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
onclose;
|
|
131
|
+
onerror;
|
|
132
|
+
onmessage;
|
|
133
|
+
async start() {
|
|
134
|
+
if (typeof this.inner.start === "function") {
|
|
135
|
+
await this.inner.start();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
async send(message, options) {
|
|
139
|
+
browserRpcLogBus.publish({
|
|
140
|
+
serverId,
|
|
141
|
+
direction: "send",
|
|
142
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
143
|
+
message
|
|
144
|
+
}).catch((err) => {
|
|
145
|
+
console.warn("[RPC Logger] Failed to publish send event:", err);
|
|
146
|
+
});
|
|
147
|
+
await this.inner.send(message, options);
|
|
148
|
+
}
|
|
149
|
+
async close() {
|
|
150
|
+
await this.inner.close();
|
|
151
|
+
}
|
|
152
|
+
get sessionId() {
|
|
153
|
+
return this.inner.sessionId;
|
|
154
|
+
}
|
|
155
|
+
setProtocolVersion(version) {
|
|
156
|
+
if (typeof this.inner.setProtocolVersion === "function") {
|
|
157
|
+
this.inner.setProtocolVersion(version);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return new LoggingTransport(transport);
|
|
162
|
+
}
|
|
163
|
+
export {
|
|
164
|
+
wrapTransportForLogging
|
|
165
|
+
};
|