@tonyclaw/agent-inspector 2.0.43 → 2.1.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/.output/nitro.json +1 -1
- package/.output/public/assets/{CompareDrawer-CxM1gCfL.js → CompareDrawer-DkDpl_Sg.js} +1 -1
- package/.output/public/assets/ProxyViewerContainer-D_-e1qn7.js +117 -0
- package/.output/public/assets/{ReplayDialog-UseUkucS.js → ReplayDialog-CKqYfD0A.js} +1 -1
- package/.output/public/assets/RequestAnatomy-CQZl-YIx.js +1 -0
- package/.output/public/assets/ResponseView-DW9tFPi0.js +1 -0
- package/.output/public/assets/{StreamingChunkSequence-JSQEPeNS.js → StreamingChunkSequence-m8zKc3L1.js} +1 -1
- package/.output/public/assets/_sessionId-DyfzgUXv.js +1 -0
- package/.output/public/assets/index-B6bobhTz.js +1 -0
- package/.output/public/assets/index-CLQKZ5A5.css +1 -0
- package/.output/public/assets/{main-BpGVJcpB.js → main-BjXd3DR-.js} +2 -2
- package/.output/server/_libs/lucide-react.mjs +219 -178
- package/.output/server/{_sessionId-DGn-TENM.mjs → _sessionId-LjzdyWF4.mjs} +3 -3
- package/.output/server/_ssr/{CompareDrawer-CFElCSYY.mjs → CompareDrawer-YX2uOwh9.mjs} +4 -4
- package/.output/server/_ssr/{ProxyViewerContainer-B7SR9mrD.mjs → ProxyViewerContainer-BcKHl2E3.mjs} +1016 -582
- package/.output/server/_ssr/{ReplayDialog-DfKapj0k.mjs → ReplayDialog-B9AxvV2j.mjs} +5 -5
- package/.output/server/_ssr/{RequestAnatomy-CUxTCg31.mjs → RequestAnatomy-DxmUOcz8.mjs} +4 -4
- package/.output/server/_ssr/{ResponseView-BXY0w197.mjs → ResponseView-B73PHDQ0.mjs} +4 -4
- package/.output/server/_ssr/{StreamingChunkSequence-CzMnES9H.mjs → StreamingChunkSequence-Bkwxu5Ev.mjs} +4 -4
- package/.output/server/_ssr/{index-CVlT-REW.mjs → index-Dfl6uxit.mjs} +3 -3
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{router-B2d1LUx6.mjs → router-B5cpU5Hi.mjs} +458 -10
- package/.output/server/{_tanstack-start-manifest_v-Drpi28BM.mjs → _tanstack-start-manifest_v-CHhxRQY_.mjs} +1 -1
- package/.output/server/index.mjs +62 -62
- package/package.json +1 -1
- package/src/components/OnboardingBanner.tsx +60 -70
- package/src/components/ProxyViewer.tsx +838 -366
- package/src/components/ProxyViewerContainer.tsx +136 -5
- package/src/components/providers/SettingsDialog.tsx +0 -13
- package/src/components/proxy-viewer/LogEntry.tsx +198 -89
- package/src/components/proxy-viewer/LogEntryHeader.tsx +23 -13
- package/src/components/proxy-viewer/RequestToolsPanel.tsx +8 -8
- package/src/components/ui/crab-logo.tsx +0 -50
- package/src/components/ui/json-viewer.tsx +6 -0
- package/src/proxy/logIndex.ts +188 -1
- package/src/proxy/store.ts +405 -3
- package/src/routes/api/logs.ts +36 -0
- package/styles/globals.css +53 -8
- package/.output/public/assets/ProxyViewerContainer-TtRG-0E7.js +0 -117
- package/.output/public/assets/RequestAnatomy-aPxgEJ2L.js +0 -1
- package/.output/public/assets/ResponseView-DA-F4F97.js +0 -1
- package/.output/public/assets/_sessionId-BEXuCWq5.js +0 -1
- package/.output/public/assets/index-Bhsa_2xX.js +0 -1
- package/.output/public/assets/index-DOWlRJ0W.css +0 -1
package/.output/server/index.mjs
CHANGED
|
@@ -38,100 +38,100 @@ 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-03T04:20:32.534Z",
|
|
42
42
|
"size": 5915,
|
|
43
43
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
44
|
},
|
|
45
|
-
"/assets/
|
|
45
|
+
"/assets/index-B6bobhTz.js": {
|
|
46
46
|
"type": "text/javascript; charset=utf-8",
|
|
47
|
-
"etag": '"
|
|
48
|
-
"mtime": "2026-07-
|
|
47
|
+
"etag": '"74-+1X3vjH3iZhdgeocecr3fbGedq8"',
|
|
48
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
49
|
+
"size": 116,
|
|
50
|
+
"path": "../public/assets/index-B6bobhTz.js"
|
|
51
|
+
},
|
|
52
|
+
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
53
|
+
"type": "image/jpeg",
|
|
54
|
+
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
55
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
56
|
+
"size": 6918,
|
|
57
|
+
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
58
|
+
},
|
|
59
|
+
"/assets/CompareDrawer-DkDpl_Sg.js": {
|
|
60
|
+
"type": "text/javascript; charset=utf-8",
|
|
61
|
+
"etag": '"49e8-hvVJ7aJD7oXFBea9IwfqjSm1apc"',
|
|
62
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
49
63
|
"size": 18920,
|
|
50
|
-
"path": "../public/assets/CompareDrawer-
|
|
64
|
+
"path": "../public/assets/CompareDrawer-DkDpl_Sg.js"
|
|
51
65
|
},
|
|
52
|
-
"/assets/
|
|
66
|
+
"/assets/main-BjXd3DR-.js": {
|
|
53
67
|
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"
|
|
55
|
-
"mtime": "2026-07-
|
|
56
|
-
"size":
|
|
57
|
-
"path": "../public/assets/
|
|
68
|
+
"etag": '"517d9-0XuPT9UBPJLh8vCEqpVcVwbQy5I"',
|
|
69
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
70
|
+
"size": 333785,
|
|
71
|
+
"path": "../public/assets/main-BjXd3DR-.js"
|
|
58
72
|
},
|
|
59
|
-
"/assets/index-
|
|
73
|
+
"/assets/index-CLQKZ5A5.css": {
|
|
60
74
|
"type": "text/css; charset=utf-8",
|
|
61
|
-
"etag": '"
|
|
62
|
-
"mtime": "2026-07-
|
|
63
|
-
"size":
|
|
64
|
-
"path": "../public/assets/index-
|
|
75
|
+
"etag": '"1db95-AknbJdbUgLm9eLIEOShi7av67bM"',
|
|
76
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
77
|
+
"size": 121749,
|
|
78
|
+
"path": "../public/assets/index-CLQKZ5A5.css"
|
|
65
79
|
},
|
|
66
|
-
"/assets/ReplayDialog-
|
|
80
|
+
"/assets/ReplayDialog-CKqYfD0A.js": {
|
|
67
81
|
"type": "text/javascript; charset=utf-8",
|
|
68
|
-
"etag": '"318c-
|
|
69
|
-
"mtime": "2026-07-
|
|
82
|
+
"etag": '"318c-pGLvm5fYWk1NouTexVSxwQ1fq8k"',
|
|
83
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
70
84
|
"size": 12684,
|
|
71
|
-
"path": "../public/assets/ReplayDialog-
|
|
85
|
+
"path": "../public/assets/ReplayDialog-CKqYfD0A.js"
|
|
72
86
|
},
|
|
73
|
-
"/assets/
|
|
87
|
+
"/assets/ResponseView-DW9tFPi0.js": {
|
|
74
88
|
"type": "text/javascript; charset=utf-8",
|
|
75
|
-
"etag": '"
|
|
76
|
-
"mtime": "2026-07-
|
|
77
|
-
"size":
|
|
78
|
-
"path": "../public/assets/
|
|
89
|
+
"etag": '"30d2-iR9UDUNw3XfTxY+qGtP+c+TTo5c"',
|
|
90
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
91
|
+
"size": 12498,
|
|
92
|
+
"path": "../public/assets/ResponseView-DW9tFPi0.js"
|
|
79
93
|
},
|
|
80
|
-
"/assets/
|
|
94
|
+
"/assets/StreamingChunkSequence-m8zKc3L1.js": {
|
|
81
95
|
"type": "text/javascript; charset=utf-8",
|
|
82
|
-
"etag": '"
|
|
83
|
-
"mtime": "2026-07-
|
|
84
|
-
"size":
|
|
85
|
-
"path": "../public/assets/
|
|
86
|
-
},
|
|
87
|
-
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
88
|
-
"type": "image/jpeg",
|
|
89
|
-
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
90
|
-
"mtime": "2026-07-03T02:24:32.082Z",
|
|
91
|
-
"size": 6918,
|
|
92
|
-
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
96
|
+
"etag": '"d5c-g9AeqZjwudQVhYiVD5sLzzl0Q/A"',
|
|
97
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
98
|
+
"size": 3420,
|
|
99
|
+
"path": "../public/assets/StreamingChunkSequence-m8zKc3L1.js"
|
|
93
100
|
},
|
|
94
|
-
"/assets/
|
|
101
|
+
"/assets/_sessionId-DyfzgUXv.js": {
|
|
95
102
|
"type": "text/javascript; charset=utf-8",
|
|
96
|
-
"etag": '"
|
|
97
|
-
"mtime": "2026-07-
|
|
98
|
-
"size":
|
|
99
|
-
"path": "../public/assets/
|
|
103
|
+
"etag": '"d2-1xhPVWFjI6HtHDvlQU6oty4zEXw"',
|
|
104
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
105
|
+
"size": 210,
|
|
106
|
+
"path": "../public/assets/_sessionId-DyfzgUXv.js"
|
|
100
107
|
},
|
|
101
108
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
102
109
|
"type": "image/svg+xml",
|
|
103
110
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
104
|
-
"mtime": "2026-07-
|
|
111
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
105
112
|
"size": 11256,
|
|
106
113
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
107
114
|
},
|
|
108
|
-
"/assets/_sessionId-BEXuCWq5.js": {
|
|
109
|
-
"type": "text/javascript; charset=utf-8",
|
|
110
|
-
"etag": '"d2-exeT3w9Bi3c+xV7elTFmaQnyqhI"',
|
|
111
|
-
"mtime": "2026-07-03T02:24:32.084Z",
|
|
112
|
-
"size": 210,
|
|
113
|
-
"path": "../public/assets/_sessionId-BEXuCWq5.js"
|
|
114
|
-
},
|
|
115
|
-
"/assets/main-BpGVJcpB.js": {
|
|
116
|
-
"type": "text/javascript; charset=utf-8",
|
|
117
|
-
"etag": '"517d9-g8ehe8xaUgKICmE82dajQ3Rg1Aw"',
|
|
118
|
-
"mtime": "2026-07-03T02:24:32.084Z",
|
|
119
|
-
"size": 333785,
|
|
120
|
-
"path": "../public/assets/main-BpGVJcpB.js"
|
|
121
|
-
},
|
|
122
115
|
"/assets/qwen-CONDcHqt.png": {
|
|
123
116
|
"type": "image/png",
|
|
124
117
|
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
125
|
-
"mtime": "2026-07-
|
|
118
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
126
119
|
"size": 357059,
|
|
127
120
|
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
128
121
|
},
|
|
129
|
-
"/assets/
|
|
122
|
+
"/assets/RequestAnatomy-CQZl-YIx.js": {
|
|
123
|
+
"type": "text/javascript; charset=utf-8",
|
|
124
|
+
"etag": '"43f2-pSO7y3fZD84r9lwwLNtMX/Q5s2Y"',
|
|
125
|
+
"mtime": "2026-07-03T04:20:32.534Z",
|
|
126
|
+
"size": 17394,
|
|
127
|
+
"path": "../public/assets/RequestAnatomy-CQZl-YIx.js"
|
|
128
|
+
},
|
|
129
|
+
"/assets/ProxyViewerContainer-D_-e1qn7.js": {
|
|
130
130
|
"type": "text/javascript; charset=utf-8",
|
|
131
|
-
"etag": '"
|
|
132
|
-
"mtime": "2026-07-
|
|
133
|
-
"size":
|
|
134
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
131
|
+
"etag": '"bafec-oIaVBZ146ySipmtK5bj+qCWIByM"',
|
|
132
|
+
"mtime": "2026-07-03T04:20:32.536Z",
|
|
133
|
+
"size": 765932,
|
|
134
|
+
"path": "../public/assets/ProxyViewerContainer-D_-e1qn7.js"
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
function readAsset(id) {
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Check, X } from "lucide-react";
|
|
2
|
-
import type
|
|
1
|
+
import { Check, ChevronDown, Info, X } from "lucide-react";
|
|
2
|
+
import { useState, type JSX } from "react";
|
|
3
3
|
import { useOnboarding } from "../lib/useOnboarding";
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -7,85 +7,75 @@ import { useOnboarding } from "../lib/useOnboarding";
|
|
|
7
7
|
* dismissal through the server runtime config.
|
|
8
8
|
*/
|
|
9
9
|
export function OnboardingBanner(): JSX.Element | null {
|
|
10
|
-
const { hasSeenOnboarding,
|
|
10
|
+
const { hasSeenOnboarding, isLoading, markSeen } = useOnboarding();
|
|
11
|
+
const [expanded, setExpanded] = useState(false);
|
|
11
12
|
|
|
12
13
|
if (isLoading || hasSeenOnboarding) return null;
|
|
13
14
|
|
|
14
|
-
const
|
|
15
|
+
const detailClass = expanded ? "grid" : "hidden sm:grid";
|
|
15
16
|
|
|
16
17
|
return (
|
|
17
18
|
<div
|
|
18
19
|
role="note"
|
|
19
20
|
aria-label="Onboarding tip"
|
|
20
|
-
className="mx-4 mt-2 mb-1
|
|
21
|
+
className="mx-4 mt-2 mb-1 rounded-md border border-amber-500/30 bg-[#130d04] px-3 py-2 text-sm shadow-[0_12px_40px_rgba(0,0,0,0.16)]"
|
|
21
22
|
>
|
|
22
|
-
<div className="
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
<div className="flex items-start gap-3">
|
|
24
|
+
<Info className="mt-0.5 size-4 shrink-0 text-amber-300" aria-hidden="true" />
|
|
25
|
+
<div className="min-w-0 flex-1">
|
|
26
|
+
<div className="flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1">
|
|
27
|
+
<span className="font-medium text-amber-200">Inspector ready</span>
|
|
28
|
+
<span className="hidden truncate text-xs text-muted-foreground sm:inline">
|
|
29
|
+
Request, response, tool, timing, token, replay, and memory signals are active.
|
|
30
|
+
</span>
|
|
31
|
+
</div>
|
|
32
|
+
<div className="mt-1 text-xs leading-relaxed text-muted-foreground sm:hidden">
|
|
33
|
+
Core capture is active.
|
|
34
|
+
</div>
|
|
35
|
+
<div
|
|
36
|
+
className={`${detailClass} mt-2 gap-x-4 gap-y-1 text-xs leading-relaxed text-muted-foreground sm:grid-cols-2`}
|
|
37
|
+
>
|
|
38
|
+
<div>
|
|
39
|
+
<strong>Evidence</strong>: logs, sessions, groups, and MCP exports are available.
|
|
40
|
+
</div>
|
|
41
|
+
<div>
|
|
42
|
+
<strong>Network</strong>: replace <code>localhost</code> if containers differ.
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
27
45
|
</div>
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
<code>agent-inspector-onboard</code>.
|
|
61
|
-
</li>
|
|
62
|
-
<li>
|
|
63
|
-
<strong>Container networking</strong>: if the AI tool runs outside this Inspector
|
|
64
|
-
container or host, replace <code>localhost</code> with a reachable address.
|
|
65
|
-
</li>
|
|
66
|
-
</ol>
|
|
46
|
+
<button
|
|
47
|
+
type="button"
|
|
48
|
+
onClick={() => setExpanded((value) => !value)}
|
|
49
|
+
className="inline-flex h-8 shrink-0 items-center gap-1 rounded-md border border-amber-500/30 px-2 text-xs text-amber-200 transition-colors hover:bg-amber-500/10 sm:hidden"
|
|
50
|
+
aria-expanded={expanded}
|
|
51
|
+
aria-label={expanded ? "Hide onboarding details" : "Show onboarding details"}
|
|
52
|
+
>
|
|
53
|
+
<ChevronDown
|
|
54
|
+
className={`size-3.5 transition-transform ${expanded ? "rotate-180" : ""}`}
|
|
55
|
+
/>
|
|
56
|
+
</button>
|
|
57
|
+
<button
|
|
58
|
+
type="button"
|
|
59
|
+
onClick={() => {
|
|
60
|
+
void markSeen();
|
|
61
|
+
}}
|
|
62
|
+
className="hidden h-8 shrink-0 items-center gap-1.5 rounded-md border border-amber-500/40 px-3 text-xs text-amber-200 transition-colors hover:bg-amber-500/10 sm:inline-flex"
|
|
63
|
+
aria-label="Dismiss onboarding tip"
|
|
64
|
+
>
|
|
65
|
+
<Check className="size-3.5" />
|
|
66
|
+
Got it
|
|
67
|
+
</button>
|
|
68
|
+
<button
|
|
69
|
+
type="button"
|
|
70
|
+
onClick={() => {
|
|
71
|
+
void markSeen();
|
|
72
|
+
}}
|
|
73
|
+
className="-m-1 shrink-0 p-1 text-muted-foreground transition-colors hover:text-foreground"
|
|
74
|
+
aria-label="Dismiss"
|
|
75
|
+
>
|
|
76
|
+
<X className="size-3.5" />
|
|
77
|
+
</button>
|
|
67
78
|
</div>
|
|
68
|
-
<button
|
|
69
|
-
type="button"
|
|
70
|
-
onClick={() => {
|
|
71
|
-
void markSeen();
|
|
72
|
-
}}
|
|
73
|
-
className="inline-flex h-8 shrink-0 items-center gap-1.5 rounded-md border border-amber-500/40 px-3 text-xs text-amber-700 transition-colors hover:bg-amber-500/10 dark:text-amber-300"
|
|
74
|
-
aria-label="Dismiss onboarding tip"
|
|
75
|
-
>
|
|
76
|
-
<Check className="size-3.5" />
|
|
77
|
-
Got it
|
|
78
|
-
</button>
|
|
79
|
-
<button
|
|
80
|
-
type="button"
|
|
81
|
-
onClick={() => {
|
|
82
|
-
void markSeen();
|
|
83
|
-
}}
|
|
84
|
-
className="-m-1 shrink-0 p-1 text-muted-foreground transition-colors hover:text-foreground"
|
|
85
|
-
aria-label="Dismiss"
|
|
86
|
-
>
|
|
87
|
-
<X className="size-3.5" />
|
|
88
|
-
</button>
|
|
89
79
|
</div>
|
|
90
80
|
);
|
|
91
81
|
}
|