@tonyclaw/agent-inspector 3.0.0 → 3.0.2
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/.output/cli.js +7 -1
- package/.output/nitro.json +1 -1
- package/.output/public/assets/{CompareDrawer-ZL1yvIH6.js → CompareDrawer-Dqpwaku6.js} +1 -1
- package/.output/public/assets/{ProxyViewerContainer-vhfV449d.js → ProxyViewerContainer-tu_yG20v.js} +26 -26
- package/.output/public/assets/{ReplayDialog-D-gDSuhe.js → ReplayDialog-eaMk-WFG.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-CVt2vHih.js → RequestAnatomy-DCnoqam_.js} +1 -1
- package/.output/public/assets/{ResponseView-zVdHc0mv.js → ResponseView-Q7HW0fAd.js} +2 -2
- package/.output/public/assets/{StreamingChunkSequence-DQFhpV_4.js → StreamingChunkSequence-K7qKD9VX.js} +1 -1
- package/.output/public/assets/{_sessionId-DeeeQcS9.js → _sessionId-CHwYmqKk.js} +1 -1
- package/.output/public/assets/index-CZnCJkDN.js +1 -0
- package/.output/public/assets/{index-_inxJ5Yi.js → index-EI9mxK7O.js} +1 -1
- package/.output/public/assets/{json-viewer-B9gYSlz7.js → json-viewer-Dbu2fh6-.js} +1 -1
- package/.output/public/assets/{main-Do_fjInc.js → main-CLNurSfs.js} +2 -2
- package/.output/server/{_sessionId-D1XraBbJ.mjs → _sessionId-1KajCUiB.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-Ot4EsLht.mjs → CompareDrawer-iM778CsC.mjs} +2 -2
- package/.output/server/_ssr/{ProxyViewerContainer-Cb4ZWwFC.mjs → ProxyViewerContainer-DzVBZMbn.mjs} +31 -37
- package/.output/server/_ssr/{ReplayDialog-B5m_dFdr.mjs → ReplayDialog-BxPm6uxq.mjs} +3 -3
- package/.output/server/_ssr/{RequestAnatomy-OUrXKyoI.mjs → RequestAnatomy-D5aE8Qas.mjs} +2 -2
- package/.output/server/_ssr/{ResponseView-DV1N1gQ8.mjs → ResponseView-D0mzqj7J.mjs} +2 -2
- package/.output/server/_ssr/{StreamingChunkSequence-CJl70SsF.mjs → StreamingChunkSequence-BbeKs1PZ.mjs} +2 -2
- package/.output/server/_ssr/{index-CztmjZ0i.mjs → index-BIrW_uL8.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-CO0sbce_.mjs → json-viewer-DVAdcOds.mjs} +2 -2
- package/.output/server/_ssr/{router-BxWKty_9.mjs → router-DtMA9SLr.mjs} +24 -4
- package/.output/server/{_tanstack-start-manifest_v-BvJ2LKGG.mjs → _tanstack-start-manifest_v-Rq5BNh_J.mjs} +1 -1
- package/.output/server/index.mjs +69 -69
- package/package.json +1 -1
- package/src/cli.ts +9 -1
- package/src/components/ProxyViewerContainer.tsx +26 -31
- package/src/proxy/sessionProcess.ts +22 -1
- package/.output/public/assets/index-BJvPLWvO.js +0 -1
package/.output/server/index.mjs
CHANGED
|
@@ -38,114 +38,114 @@ const assets = {
|
|
|
38
38
|
"/assets/alibaba-TTwafVwX.svg": {
|
|
39
39
|
"type": "image/svg+xml",
|
|
40
40
|
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
41
|
-
"mtime": "2026-07-
|
|
41
|
+
"mtime": "2026-07-07T01:08:49.703Z",
|
|
42
42
|
"size": 5915,
|
|
43
43
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
44
|
},
|
|
45
|
-
"/assets/CompareDrawer-ZL1yvIH6.js": {
|
|
46
|
-
"type": "text/javascript; charset=utf-8",
|
|
47
|
-
"etag": '"4bbf-CIi9MFvNx5XBmXT0nU0DPL42gd8"',
|
|
48
|
-
"mtime": "2026-07-07T00:31:07.942Z",
|
|
49
|
-
"size": 19391,
|
|
50
|
-
"path": "../public/assets/CompareDrawer-ZL1yvIH6.js"
|
|
51
|
-
},
|
|
52
|
-
"/assets/json-viewer-B9gYSlz7.js": {
|
|
53
|
-
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"1ae6-eUFnKJytY27s8aDs8Lo5QbvfXRw"',
|
|
55
|
-
"mtime": "2026-07-07T00:31:07.942Z",
|
|
56
|
-
"size": 6886,
|
|
57
|
-
"path": "../public/assets/json-viewer-B9gYSlz7.js"
|
|
58
|
-
},
|
|
59
45
|
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
60
46
|
"type": "image/jpeg",
|
|
61
47
|
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
62
|
-
"mtime": "2026-07-
|
|
48
|
+
"mtime": "2026-07-07T01:08:49.703Z",
|
|
63
49
|
"size": 6918,
|
|
64
50
|
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
65
51
|
},
|
|
66
|
-
"/assets/
|
|
52
|
+
"/assets/CompareDrawer-Dqpwaku6.js": {
|
|
67
53
|
"type": "text/javascript; charset=utf-8",
|
|
68
|
-
"etag": '"
|
|
69
|
-
"mtime": "2026-07-
|
|
54
|
+
"etag": '"4bbf-ZPntxP9PDr7AIoGdVZZXJYRM4HE"',
|
|
55
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
56
|
+
"size": 19391,
|
|
57
|
+
"path": "../public/assets/CompareDrawer-Dqpwaku6.js"
|
|
58
|
+
},
|
|
59
|
+
"/assets/index-EI9mxK7O.js": {
|
|
60
|
+
"type": "text/javascript; charset=utf-8",
|
|
61
|
+
"etag": '"1cd2c-19Vm1WJDNbK2EWsAi7Bxrn6rS2k"',
|
|
62
|
+
"mtime": "2026-07-07T01:08:49.706Z",
|
|
70
63
|
"size": 118060,
|
|
71
|
-
"path": "../public/assets/index-
|
|
64
|
+
"path": "../public/assets/index-EI9mxK7O.js"
|
|
72
65
|
},
|
|
73
|
-
"/assets/index-
|
|
66
|
+
"/assets/index-CZnCJkDN.js": {
|
|
74
67
|
"type": "text/javascript; charset=utf-8",
|
|
75
|
-
"etag": '"74-
|
|
76
|
-
"mtime": "2026-07-
|
|
68
|
+
"etag": '"74-UzXK8qp7BqgU02youM+REZzAtyE"',
|
|
69
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
77
70
|
"size": 116,
|
|
78
|
-
"path": "../public/assets/index-
|
|
71
|
+
"path": "../public/assets/index-CZnCJkDN.js"
|
|
72
|
+
},
|
|
73
|
+
"/assets/json-viewer-Dbu2fh6-.js": {
|
|
74
|
+
"type": "text/javascript; charset=utf-8",
|
|
75
|
+
"etag": '"1ae6-TrhZZ3eS6TP+barBIj9MbTMvsHs"',
|
|
76
|
+
"mtime": "2026-07-07T01:08:49.705Z",
|
|
77
|
+
"size": 6886,
|
|
78
|
+
"path": "../public/assets/json-viewer-Dbu2fh6-.js"
|
|
79
|
+
},
|
|
80
|
+
"/assets/main-CLNurSfs.js": {
|
|
81
|
+
"type": "text/javascript; charset=utf-8",
|
|
82
|
+
"etag": '"512fd-IxzZTYdmlPycsVhBCJBtoIeXuFg"',
|
|
83
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
84
|
+
"size": 332541,
|
|
85
|
+
"path": "../public/assets/main-CLNurSfs.js"
|
|
79
86
|
},
|
|
80
87
|
"/assets/index-Tq5s9NV0.css": {
|
|
81
88
|
"type": "text/css; charset=utf-8",
|
|
82
89
|
"etag": '"22408-MQKT02eqQudVEj/DozyiEJoTl6E"',
|
|
83
|
-
"mtime": "2026-07-
|
|
90
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
84
91
|
"size": 140296,
|
|
85
92
|
"path": "../public/assets/index-Tq5s9NV0.css"
|
|
86
93
|
},
|
|
87
|
-
"/assets/
|
|
94
|
+
"/assets/ReplayDialog-eaMk-WFG.js": {
|
|
88
95
|
"type": "text/javascript; charset=utf-8",
|
|
89
|
-
"etag": '"
|
|
90
|
-
"mtime": "2026-07-
|
|
96
|
+
"etag": '"31d6-itkTVP7cbdhyrrb/qFFjd/CAQXQ"',
|
|
97
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
98
|
+
"size": 12758,
|
|
99
|
+
"path": "../public/assets/ReplayDialog-eaMk-WFG.js"
|
|
100
|
+
},
|
|
101
|
+
"/assets/RequestAnatomy-DCnoqam_.js": {
|
|
102
|
+
"type": "text/javascript; charset=utf-8",
|
|
103
|
+
"etag": '"43f2-dBgBpSu/6XXhbX9gSNaf6TpOm+U"',
|
|
104
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
91
105
|
"size": 17394,
|
|
92
|
-
"path": "../public/assets/RequestAnatomy-
|
|
106
|
+
"path": "../public/assets/RequestAnatomy-DCnoqam_.js"
|
|
107
|
+
},
|
|
108
|
+
"/assets/qwen-CONDcHqt.png": {
|
|
109
|
+
"type": "image/png",
|
|
110
|
+
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
111
|
+
"mtime": "2026-07-07T01:08:49.703Z",
|
|
112
|
+
"size": 357059,
|
|
113
|
+
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
93
114
|
},
|
|
94
|
-
"/assets/StreamingChunkSequence-
|
|
115
|
+
"/assets/StreamingChunkSequence-K7qKD9VX.js": {
|
|
95
116
|
"type": "text/javascript; charset=utf-8",
|
|
96
|
-
"etag": '"dd6-
|
|
97
|
-
"mtime": "2026-07-
|
|
117
|
+
"etag": '"dd6-ODWFyg5pO+hUjPIjqkT9DJKpTW8"',
|
|
118
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
98
119
|
"size": 3542,
|
|
99
|
-
"path": "../public/assets/StreamingChunkSequence-
|
|
120
|
+
"path": "../public/assets/StreamingChunkSequence-K7qKD9VX.js"
|
|
100
121
|
},
|
|
101
122
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
102
123
|
"type": "image/svg+xml",
|
|
103
124
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
104
|
-
"mtime": "2026-07-
|
|
125
|
+
"mtime": "2026-07-07T01:08:49.703Z",
|
|
105
126
|
"size": 11256,
|
|
106
127
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
107
128
|
},
|
|
108
|
-
"/assets/
|
|
129
|
+
"/assets/ResponseView-Q7HW0fAd.js": {
|
|
109
130
|
"type": "text/javascript; charset=utf-8",
|
|
110
|
-
"etag": '"
|
|
111
|
-
"mtime": "2026-07-
|
|
112
|
-
"size": 876,
|
|
113
|
-
"path": "../public/assets/_sessionId-DeeeQcS9.js"
|
|
114
|
-
},
|
|
115
|
-
"/assets/ReplayDialog-D-gDSuhe.js": {
|
|
116
|
-
"type": "text/javascript; charset=utf-8",
|
|
117
|
-
"etag": '"31d6-7nPX+7CzElY2l3LTEI8tdhGnb9g"',
|
|
118
|
-
"mtime": "2026-07-07T00:31:07.942Z",
|
|
119
|
-
"size": 12758,
|
|
120
|
-
"path": "../public/assets/ReplayDialog-D-gDSuhe.js"
|
|
121
|
-
},
|
|
122
|
-
"/assets/ResponseView-zVdHc0mv.js": {
|
|
123
|
-
"type": "text/javascript; charset=utf-8",
|
|
124
|
-
"etag": '"47fa-My/gIfJNAY80sXwdo3igU0H0hlA"',
|
|
125
|
-
"mtime": "2026-07-07T00:31:07.942Z",
|
|
131
|
+
"etag": '"47fa-/Wc+ATNSNSBBRdaiY9vHnwKGJg4"',
|
|
132
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
126
133
|
"size": 18426,
|
|
127
|
-
"path": "../public/assets/ResponseView-
|
|
134
|
+
"path": "../public/assets/ResponseView-Q7HW0fAd.js"
|
|
128
135
|
},
|
|
129
|
-
"/assets/
|
|
136
|
+
"/assets/_sessionId-CHwYmqKk.js": {
|
|
130
137
|
"type": "text/javascript; charset=utf-8",
|
|
131
|
-
"etag": '"
|
|
132
|
-
"mtime": "2026-07-
|
|
133
|
-
"size":
|
|
134
|
-
"path": "../public/assets/
|
|
135
|
-
},
|
|
136
|
-
"/assets/qwen-CONDcHqt.png": {
|
|
137
|
-
"type": "image/png",
|
|
138
|
-
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
139
|
-
"mtime": "2026-07-07T00:31:07.942Z",
|
|
140
|
-
"size": 357059,
|
|
141
|
-
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
138
|
+
"etag": '"36c-DOWoQuaVbR9fu8b6L65Qv4ouNHs"',
|
|
139
|
+
"mtime": "2026-07-07T01:08:49.704Z",
|
|
140
|
+
"size": 876,
|
|
141
|
+
"path": "../public/assets/_sessionId-CHwYmqKk.js"
|
|
142
142
|
},
|
|
143
|
-
"/assets/ProxyViewerContainer-
|
|
143
|
+
"/assets/ProxyViewerContainer-tu_yG20v.js": {
|
|
144
144
|
"type": "text/javascript; charset=utf-8",
|
|
145
|
-
"etag": '"
|
|
146
|
-
"mtime": "2026-07-
|
|
147
|
-
"size":
|
|
148
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
145
|
+
"etag": '"aeea7-4wGPgiGZUhpr0jD/D7mkeiq0940"',
|
|
146
|
+
"mtime": "2026-07-07T01:08:49.706Z",
|
|
147
|
+
"size": 716455,
|
|
148
|
+
"path": "../public/assets/ProxyViewerContainer-tu_yG20v.js"
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
function readAsset(id) {
|
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -158,6 +158,10 @@ function openBrowser(targetUrl: string): void {
|
|
|
158
158
|
detached: true,
|
|
159
159
|
windowsHide: true,
|
|
160
160
|
});
|
|
161
|
+
browserProcess.once("error", () => {
|
|
162
|
+
// Opening a browser is best-effort. Minimal Linux/container images may not
|
|
163
|
+
// include xdg-open, and that should not make the CLI look unhealthy.
|
|
164
|
+
});
|
|
161
165
|
browserProcess.unref();
|
|
162
166
|
}
|
|
163
167
|
|
|
@@ -629,6 +633,10 @@ async function runStart(args: string[]): Promise<void> {
|
|
|
629
633
|
env: serverEnv,
|
|
630
634
|
windowsHide: background,
|
|
631
635
|
});
|
|
636
|
+
serverProcess.once("error", (err) => {
|
|
637
|
+
console.error(`Failed to start Agent Inspector runtime: ${err.message}`);
|
|
638
|
+
});
|
|
639
|
+
const serverExit = waitForProcessExit(serverProcess);
|
|
632
640
|
if (!background) {
|
|
633
641
|
pipeServerOutput(serverProcess, {
|
|
634
642
|
enableIdentityProxy,
|
|
@@ -708,7 +716,7 @@ async function runStart(args: string[]): Promise<void> {
|
|
|
708
716
|
}
|
|
709
717
|
}
|
|
710
718
|
|
|
711
|
-
process.exitCode = await
|
|
719
|
+
process.exitCode = await serverExit;
|
|
712
720
|
|
|
713
721
|
for (const proxy of identityProxies) {
|
|
714
722
|
await new Promise<void>((resolve) => proxy.server.close(() => resolve()));
|
|
@@ -113,7 +113,6 @@ export function filterLogs(
|
|
|
113
113
|
const DEBOUNCE_MS = 100;
|
|
114
114
|
const HASH_SCROLL_ATTEMPTS = 12;
|
|
115
115
|
const HASH_HIGHLIGHT_MS = 1800;
|
|
116
|
-
const MAX_CLIENT_LOGS = 500;
|
|
117
116
|
const SESSION_PAGE_LIMIT = 100;
|
|
118
117
|
|
|
119
118
|
function buildLogsStreamUrl(sessionId: string | undefined): string {
|
|
@@ -160,9 +159,19 @@ function buildLogIndex(logs: readonly CapturedLog[]): Map<number, number> {
|
|
|
160
159
|
return idx;
|
|
161
160
|
}
|
|
162
161
|
|
|
163
|
-
function
|
|
164
|
-
|
|
165
|
-
|
|
162
|
+
export function mergeLogsById(
|
|
163
|
+
previousLogs: readonly CapturedLog[],
|
|
164
|
+
incomingLogs: readonly CapturedLog[],
|
|
165
|
+
): CapturedLog[] {
|
|
166
|
+
if (incomingLogs.length === 0) return [...previousLogs];
|
|
167
|
+
const byId = new Map<number, CapturedLog>();
|
|
168
|
+
for (const log of previousLogs) {
|
|
169
|
+
byId.set(log.id, log);
|
|
170
|
+
}
|
|
171
|
+
for (const log of incomingLogs) {
|
|
172
|
+
byId.set(log.id, log);
|
|
173
|
+
}
|
|
174
|
+
return [...byId.values()].sort((left, right) => left.id - right.id);
|
|
166
175
|
}
|
|
167
176
|
|
|
168
177
|
export function ProxyViewerContainer({
|
|
@@ -227,25 +236,9 @@ export function ProxyViewerContainer({
|
|
|
227
236
|
|
|
228
237
|
startLogTransition(() => {
|
|
229
238
|
setAllLogs((prev) => {
|
|
230
|
-
const next =
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
if (indexedPosition !== undefined && next[indexedPosition]?.id === log.id) {
|
|
234
|
-
next[indexedPosition] = log;
|
|
235
|
-
continue;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
const existingPosition = next.findIndex((entry) => entry.id === log.id);
|
|
239
|
-
if (existingPosition >= 0) {
|
|
240
|
-
next[existingPosition] = log;
|
|
241
|
-
continue;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
next.push(log);
|
|
245
|
-
}
|
|
246
|
-
const trimmed = trimClientLogs(next);
|
|
247
|
-
logIndexRef.current = buildLogIndex(trimmed);
|
|
248
|
-
return trimmed;
|
|
239
|
+
const next = mergeLogsById(prev, updates);
|
|
240
|
+
logIndexRef.current = buildLogIndex(next);
|
|
241
|
+
return next;
|
|
249
242
|
});
|
|
250
243
|
});
|
|
251
244
|
}, [startLogTransition]);
|
|
@@ -288,9 +281,11 @@ export function ProxyViewerContainer({
|
|
|
288
281
|
}
|
|
289
282
|
pendingUpdatesRef.current = [];
|
|
290
283
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
284
|
+
setAllLogs((prev) => {
|
|
285
|
+
const nextLogs = mergeLogsById(prev, update.logs);
|
|
286
|
+
logIndexRef.current = buildLogIndex(nextLogs);
|
|
287
|
+
return nextLogs;
|
|
288
|
+
});
|
|
294
289
|
setStreamInitialized(true);
|
|
295
290
|
dismissToast();
|
|
296
291
|
} else if (update.type === "update") {
|
|
@@ -517,12 +512,12 @@ export function ProxyViewerContainer({
|
|
|
517
512
|
|
|
518
513
|
setAllLogs((prev) => {
|
|
519
514
|
const importedIds = new Set(result.logs.map((log) => log.id));
|
|
520
|
-
const next =
|
|
521
|
-
(
|
|
515
|
+
const next = mergeLogsById(
|
|
516
|
+
prev.filter((log) => !importedIds.has(log.id)),
|
|
517
|
+
result.logs,
|
|
522
518
|
);
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
return trimmed;
|
|
519
|
+
logIndexRef.current = buildLogIndex(next);
|
|
520
|
+
return next;
|
|
526
521
|
});
|
|
527
522
|
setSelectedSession(result.sessionId);
|
|
528
523
|
setSelectedModel("__all__");
|
|
@@ -14,6 +14,10 @@ type PendingJob = {
|
|
|
14
14
|
reject: (err: Error) => void;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
+
function errorMessage(err: unknown): string {
|
|
18
|
+
return err instanceof Error ? err.message : String(err);
|
|
19
|
+
}
|
|
20
|
+
|
|
17
21
|
function resolveSessionWorkerPath(): string {
|
|
18
22
|
return fileURLToPath(new URL("./sessionWorkerEntry.ts", import.meta.url));
|
|
19
23
|
}
|
|
@@ -95,7 +99,24 @@ export class SessionProcess {
|
|
|
95
99
|
const child = this.ensureRunning();
|
|
96
100
|
const id = String(++this.nextId);
|
|
97
101
|
this.pending.set(id, { resolve, reject });
|
|
98
|
-
|
|
102
|
+
try {
|
|
103
|
+
child.send({ id, job }, (err) => {
|
|
104
|
+
if (err === null || err === undefined) return;
|
|
105
|
+
this.pending.delete(id);
|
|
106
|
+
reject(
|
|
107
|
+
new Error(
|
|
108
|
+
`Session process send failed for session=${this.sessionId}: ${errorMessage(err)}`,
|
|
109
|
+
),
|
|
110
|
+
);
|
|
111
|
+
});
|
|
112
|
+
} catch (err) {
|
|
113
|
+
this.pending.delete(id);
|
|
114
|
+
reject(
|
|
115
|
+
new Error(
|
|
116
|
+
`Session process send failed for session=${this.sessionId}: ${errorMessage(err)}`,
|
|
117
|
+
),
|
|
118
|
+
);
|
|
119
|
+
}
|
|
99
120
|
});
|
|
100
121
|
}
|
|
101
122
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as o}from"./ProxyViewerContainer-vhfV449d.js";import"./main-Do_fjInc.js";const r=o;export{r as component};
|