@tonyclaw/agent-inspector 3.0.1 → 3.0.3
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-BgcAk1te.js → CompareDrawer-CufpM7_P.js} +1 -1
- package/.output/public/assets/{ProxyViewerContainer-7b_uwvT7.js → ProxyViewerContainer-Dppr2zGE.js} +26 -26
- package/.output/public/assets/{ReplayDialog-7Pvhjbjk.js → ReplayDialog-ClDmxv57.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-BX-UKYQg.js → RequestAnatomy-DcuIghmp.js} +1 -1
- package/.output/public/assets/{ResponseView-zFxGX8xH.js → ResponseView-C7Tl47j3.js} +2 -2
- package/.output/public/assets/{StreamingChunkSequence-DzXzVtBF.js → StreamingChunkSequence-DBK_R540.js} +1 -1
- package/.output/public/assets/{_sessionId-CmsUOEIS.js → _sessionId-D8Ke-EcI.js} +1 -1
- package/.output/public/assets/index-BskTYcAH.css +1 -0
- package/.output/public/assets/{index-DXR7RB48.js → index-CpWH7b2O.js} +1 -1
- package/.output/public/assets/index-DRHfTEM5.js +1 -0
- package/.output/public/assets/{json-viewer-CiMN_9sG.js → json-viewer-BEifdKM_.js} +1 -1
- package/.output/public/assets/{main-Ba9x64uY.js → main-DDfExS3_.js} +2 -2
- package/.output/server/{_sessionId-B8GZtC4P.mjs → _sessionId-Di7z893V.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-SBDtZDAp.mjs → CompareDrawer-ABv-8FMB.mjs} +2 -2
- package/.output/server/_ssr/{ProxyViewerContainer-B__2O0zh.mjs → ProxyViewerContainer-CGX-1aUr.mjs} +56 -103
- package/.output/server/_ssr/{ReplayDialog-D0u1VHz_.mjs → ReplayDialog-DD31ftzG.mjs} +3 -3
- package/.output/server/_ssr/{RequestAnatomy-ClvQ3RFh.mjs → RequestAnatomy-54kNHAjH.mjs} +2 -2
- package/.output/server/_ssr/{ResponseView-B4UAvUym.mjs → ResponseView-CRnibtlX.mjs} +2 -2
- package/.output/server/_ssr/{StreamingChunkSequence-D_aiGGzz.mjs → StreamingChunkSequence-Cb5WGfMm.mjs} +2 -2
- package/.output/server/_ssr/{index-DuWacKr6.mjs → index-BJ-8DomR.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-CmNMVinH.mjs → json-viewer-DB5188I7.mjs} +2 -2
- package/.output/server/_ssr/{router-BP46kVrE.mjs → router-BKf70uDr.mjs} +4 -4
- package/.output/server/{_tanstack-start-manifest_v-DltuTRfm.mjs → _tanstack-start-manifest_v-DUuf3Rgf.mjs} +1 -1
- package/.output/server/index.mjs +65 -65
- package/package.json +1 -1
- package/src/assets/IDE/claudecode-color.svg +1 -0
- package/src/assets/IDE/codex-color.svg +1 -0
- package/src/assets/IDE/opencode.svg +1 -0
- package/src/assets/IDE/xiaomimimo.svg +1 -0
- package/src/assets/logos/opencode.svg +4 -4
- package/src/components/ProxyViewerContainer.tsx +26 -31
- package/src/components/clients/ClientLogo.tsx +14 -52
- package/src/components/proxy-viewer/LogEntryHeader.tsx +1 -7
- package/.output/public/assets/index-MfTE52Ty.js +0 -1
- package/.output/public/assets/index-Tq5s9NV0.css +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:44:02.393Z",
|
|
42
42
|
"size": 5915,
|
|
43
43
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
44
|
},
|
|
45
|
-
"/assets/
|
|
45
|
+
"/assets/index-DRHfTEM5.js": {
|
|
46
46
|
"type": "text/javascript; charset=utf-8",
|
|
47
|
-
"etag": '"
|
|
48
|
-
"mtime": "2026-07-
|
|
49
|
-
"size":
|
|
50
|
-
"path": "../public/assets/
|
|
47
|
+
"etag": '"74-jyecrF7gPSmV9Dyyu+Pk06C0BLQ"',
|
|
48
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
49
|
+
"size": 116,
|
|
50
|
+
"path": "../public/assets/index-DRHfTEM5.js"
|
|
51
51
|
},
|
|
52
|
-
"/assets/
|
|
52
|
+
"/assets/CompareDrawer-CufpM7_P.js": {
|
|
53
53
|
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"
|
|
55
|
-
"mtime": "2026-07-
|
|
56
|
-
"size":
|
|
57
|
-
"path": "../public/assets/
|
|
54
|
+
"etag": '"4bbf-em8bNnyNj0hLG9FAPAh3pm1NamQ"',
|
|
55
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
56
|
+
"size": 19391,
|
|
57
|
+
"path": "../public/assets/CompareDrawer-CufpM7_P.js"
|
|
58
58
|
},
|
|
59
|
-
"/assets/json-viewer-
|
|
59
|
+
"/assets/json-viewer-BEifdKM_.js": {
|
|
60
60
|
"type": "text/javascript; charset=utf-8",
|
|
61
|
-
"etag": '"1ae6-
|
|
62
|
-
"mtime": "2026-07-
|
|
61
|
+
"etag": '"1ae6-hBRa+PN4SE41cHLcLLaiFotv3hw"',
|
|
62
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
63
63
|
"size": 6886,
|
|
64
|
-
"path": "../public/assets/json-viewer-
|
|
65
|
-
},
|
|
66
|
-
"/assets/index-Tq5s9NV0.css": {
|
|
67
|
-
"type": "text/css; charset=utf-8",
|
|
68
|
-
"etag": '"22408-MQKT02eqQudVEj/DozyiEJoTl6E"',
|
|
69
|
-
"mtime": "2026-07-07T00:47:56.086Z",
|
|
70
|
-
"size": 140296,
|
|
71
|
-
"path": "../public/assets/index-Tq5s9NV0.css"
|
|
64
|
+
"path": "../public/assets/json-viewer-BEifdKM_.js"
|
|
72
65
|
},
|
|
73
66
|
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
74
67
|
"type": "image/jpeg",
|
|
75
68
|
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
76
|
-
"mtime": "2026-07-
|
|
69
|
+
"mtime": "2026-07-07T01:44:02.393Z",
|
|
77
70
|
"size": 6918,
|
|
78
71
|
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
79
72
|
},
|
|
80
|
-
"/assets/index-
|
|
73
|
+
"/assets/index-CpWH7b2O.js": {
|
|
81
74
|
"type": "text/javascript; charset=utf-8",
|
|
82
|
-
"etag": '"
|
|
83
|
-
"mtime": "2026-07-
|
|
84
|
-
"size":
|
|
85
|
-
"path": "../public/assets/index-
|
|
75
|
+
"etag": '"1cd2c-aSuLfDqSevdOh9lCun2exVgUC8g"',
|
|
76
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
77
|
+
"size": 118060,
|
|
78
|
+
"path": "../public/assets/index-CpWH7b2O.js"
|
|
86
79
|
},
|
|
87
|
-
"/assets/ReplayDialog-
|
|
80
|
+
"/assets/ReplayDialog-ClDmxv57.js": {
|
|
88
81
|
"type": "text/javascript; charset=utf-8",
|
|
89
|
-
"etag": '"31d6-
|
|
90
|
-
"mtime": "2026-07-
|
|
82
|
+
"etag": '"31d6-1qLOktXViz+VBb0ZfFD90XKgcAg"',
|
|
83
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
91
84
|
"size": 12758,
|
|
92
|
-
"path": "../public/assets/ReplayDialog-
|
|
85
|
+
"path": "../public/assets/ReplayDialog-ClDmxv57.js"
|
|
93
86
|
},
|
|
94
|
-
"/assets/
|
|
87
|
+
"/assets/index-BskTYcAH.css": {
|
|
88
|
+
"type": "text/css; charset=utf-8",
|
|
89
|
+
"etag": '"21f46-4U6JUUNvf584Sc99yswqBqMf3z4"',
|
|
90
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
91
|
+
"size": 139078,
|
|
92
|
+
"path": "../public/assets/index-BskTYcAH.css"
|
|
93
|
+
},
|
|
94
|
+
"/assets/RequestAnatomy-DcuIghmp.js": {
|
|
95
95
|
"type": "text/javascript; charset=utf-8",
|
|
96
|
-
"etag": '"
|
|
97
|
-
"mtime": "2026-07-
|
|
98
|
-
"size":
|
|
99
|
-
"path": "../public/assets/
|
|
96
|
+
"etag": '"43f2-M8tZkzI/U1tJmMy7UUxJqYQZ0T0"',
|
|
97
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
98
|
+
"size": 17394,
|
|
99
|
+
"path": "../public/assets/RequestAnatomy-DcuIghmp.js"
|
|
100
|
+
},
|
|
101
|
+
"/assets/ResponseView-C7Tl47j3.js": {
|
|
102
|
+
"type": "text/javascript; charset=utf-8",
|
|
103
|
+
"etag": '"47fa-SmStPX5iOJs5uBOW3NqjjFXAHR0"',
|
|
104
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
105
|
+
"size": 18426,
|
|
106
|
+
"path": "../public/assets/ResponseView-C7Tl47j3.js"
|
|
100
107
|
},
|
|
101
|
-
"/assets/StreamingChunkSequence-
|
|
108
|
+
"/assets/StreamingChunkSequence-DBK_R540.js": {
|
|
102
109
|
"type": "text/javascript; charset=utf-8",
|
|
103
|
-
"etag": '"dd6
|
|
104
|
-
"mtime": "2026-07-
|
|
110
|
+
"etag": '"dd6-/eeU62I8t6P7rkzCj6gV8SwwUnU"',
|
|
111
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
105
112
|
"size": 3542,
|
|
106
|
-
"path": "../public/assets/StreamingChunkSequence-
|
|
113
|
+
"path": "../public/assets/StreamingChunkSequence-DBK_R540.js"
|
|
107
114
|
},
|
|
108
115
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
109
116
|
"type": "image/svg+xml",
|
|
110
117
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
111
|
-
"mtime": "2026-07-
|
|
118
|
+
"mtime": "2026-07-07T01:44:02.393Z",
|
|
112
119
|
"size": 11256,
|
|
113
120
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
114
121
|
},
|
|
115
|
-
"/assets/
|
|
122
|
+
"/assets/_sessionId-D8Ke-EcI.js": {
|
|
116
123
|
"type": "text/javascript; charset=utf-8",
|
|
117
|
-
"etag": '"
|
|
118
|
-
"mtime": "2026-07-
|
|
119
|
-
"size":
|
|
120
|
-
"path": "../public/assets/
|
|
121
|
-
},
|
|
122
|
-
"/assets/ResponseView-zFxGX8xH.js": {
|
|
123
|
-
"type": "text/javascript; charset=utf-8",
|
|
124
|
-
"etag": '"47fa-7HB1lxdpkTuo7BEzpS+JAr6zRjM"',
|
|
125
|
-
"mtime": "2026-07-07T00:47:56.086Z",
|
|
126
|
-
"size": 18426,
|
|
127
|
-
"path": "../public/assets/ResponseView-zFxGX8xH.js"
|
|
124
|
+
"etag": '"36c-bhrib21DhX/XQPRM4CpLNweOg+A"',
|
|
125
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
126
|
+
"size": 876,
|
|
127
|
+
"path": "../public/assets/_sessionId-D8Ke-EcI.js"
|
|
128
128
|
},
|
|
129
|
-
"/assets/
|
|
129
|
+
"/assets/main-DDfExS3_.js": {
|
|
130
130
|
"type": "text/javascript; charset=utf-8",
|
|
131
|
-
"etag": '"
|
|
132
|
-
"mtime": "2026-07-
|
|
133
|
-
"size":
|
|
134
|
-
"path": "../public/assets/
|
|
131
|
+
"etag": '"512fd-0ATXdrVxw9X+97bDd2uILfeMEAs"',
|
|
132
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
133
|
+
"size": 332541,
|
|
134
|
+
"path": "../public/assets/main-DDfExS3_.js"
|
|
135
135
|
},
|
|
136
136
|
"/assets/qwen-CONDcHqt.png": {
|
|
137
137
|
"type": "image/png",
|
|
138
138
|
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
139
|
-
"mtime": "2026-07-
|
|
139
|
+
"mtime": "2026-07-07T01:44:02.393Z",
|
|
140
140
|
"size": 357059,
|
|
141
141
|
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
142
142
|
},
|
|
143
|
-
"/assets/ProxyViewerContainer-
|
|
143
|
+
"/assets/ProxyViewerContainer-Dppr2zGE.js": {
|
|
144
144
|
"type": "text/javascript; charset=utf-8",
|
|
145
|
-
"etag": '"
|
|
146
|
-
"mtime": "2026-07-
|
|
147
|
-
"size":
|
|
148
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
145
|
+
"etag": '"b0044-77SZ4hiJB2hNWaQZFl4OePguEv0"',
|
|
146
|
+
"mtime": "2026-07-07T01:44:02.395Z",
|
|
147
|
+
"size": 720964,
|
|
148
|
+
"path": "../public/assets/ProxyViewerContainer-Dppr2zGE.js"
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
function readAsset(id) {
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Claude Code</title><path clip-rule="evenodd" d="M20.998 10.949H24v3.102h-3v3.028h-1.487V20H18v-2.921h-1.487V20H15v-2.921H9V20H7.488v-2.921H6V20H4.487v-2.921H3V14.05H0V10.95h3V5h17.998v5.949zM6 10.949h1.488V8.102H6v2.847zm10.51 0H18V8.102h-1.49v2.847z" fill="#D97757" fill-rule="evenodd"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>Codex</title><path d="M19.503 0H4.496A4.496 4.496 0 000 4.496v15.007A4.496 4.496 0 004.496 24h15.007A4.496 4.496 0 0024 19.503V4.496A4.496 4.496 0 0019.503 0z" fill="#fff"></path><path d="M9.064 3.344a4.578 4.578 0 012.285-.312c1 .115 1.891.54 2.673 1.275.01.01.024.017.037.021a.09.09 0 00.043 0 4.55 4.55 0 013.046.275l.047.022.116.057a4.581 4.581 0 012.188 2.399c.209.51.313 1.041.315 1.595a4.24 4.24 0 01-.134 1.223.123.123 0 00.03.115c.594.607.988 1.33 1.183 2.17.289 1.425-.007 2.71-.887 3.854l-.136.166a4.548 4.548 0 01-2.201 1.388.123.123 0 00-.081.076c-.191.551-.383 1.023-.74 1.494-.9 1.187-2.222 1.846-3.711 1.838-1.187-.006-2.239-.44-3.157-1.302a.107.107 0 00-.105-.024c-.388.125-.78.143-1.204.138a4.441 4.441 0 01-1.945-.466 4.544 4.544 0 01-1.61-1.335c-.152-.202-.303-.392-.414-.617a5.81 5.81 0 01-.37-.961 4.582 4.582 0 01-.014-2.298.124.124 0 00.006-.056.085.085 0 00-.027-.048 4.467 4.467 0 01-1.034-1.651 3.896 3.896 0 01-.251-1.192 5.189 5.189 0 01.141-1.6c.337-1.112.982-1.985 1.933-2.618.212-.141.413-.251.601-.33.215-.089.43-.164.646-.227a.098.098 0 00.065-.066 4.51 4.51 0 01.829-1.615 4.535 4.535 0 011.837-1.388zm3.482 10.565a.637.637 0 000 1.272h3.636a.637.637 0 100-1.272h-3.636zM8.462 9.23a.637.637 0 00-1.106.631l1.272 2.224-1.266 2.136a.636.636 0 101.095.649l1.454-2.455a.636.636 0 00.005-.64L8.462 9.23z" fill="url(#lobe-icons-codex-_R_0_)"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="lobe-icons-codex-_R_0_" x1="12" x2="12" y1="3" y2="21"><stop stop-color="#B1A7FF"></stop><stop offset=".5" stop-color="#7A9DFF"></stop><stop offset="1" stop-color="#3941FF"></stop></linearGradient></defs></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>opencode</title><path d="M16 6H8v12h8V6zm4 16H4V2h16v20z"></path></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg fill="currentColor" fill-rule="evenodd" height="1em" style="flex:none;line-height:1" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg"><title>XiaomiMiMo</title><path d="M.958 15.936a.459.459 0 01.459.44v2.729a.46.46 0 01-.918 0v-2.729a.459.459 0 01.459-.44zm4.814-2.035a.46.46 0 01.553.45v4.754a.458.458 0 11-.918 0V15.48L3.74 17.202a.462.462 0 01-.655.016.462.462 0 01-.065-.082L.628 14.67a.459.459 0 01.658-.637l2.124 2.187 2.127-2.188a.46.46 0 01.235-.13zm2.068.004a.46.46 0 01.458.445v4.755a.46.46 0 01-.458.458.459.459 0 01-.458-.458V14.35a.459.459 0 01.458-.445zm1.973 2.014a.46.46 0 01.46.457v2.729a.46.46 0 01-.784.324.46.46 0 01-.134-.324v-2.729a.46.46 0 01.458-.458zm.002-2.045a.458.458 0 01.328.157l2.127 2.19 2.125-2.19a.459.459 0 01.784.318v4.756a.46.46 0 01-.455.458.46.46 0 01-.458-.458V15.48l-1.667 1.723a.46.46 0 01-.65.008l-.005-.005c0-.002-.002-.002-.004-.003l-2.455-2.534a.46.46 0 01-.008-.667.461.461 0 01.338-.128zm6.797 1.206a.46.46 0 01.53.651A1.966 1.966 0 0019.81 18.4a.462.462 0 01.623.18.46.46 0 01-.181.624 2.863 2.863 0 01-1.38.353l-.142-.004a2.88 2.88 0 01-2.393-4.263.461.461 0 01.274-.21zm.864-.931a2.884 2.884 0 013.915 3.914.46.46 0 01-.402.24l-.057-.004a.458.458 0 01-.164-.055.46.46 0 01-.182-.622 1.967 1.967 0 00-2.669-2.67.459.459 0 11-.441-.803zM9.59 6.368c1.481 0 1.696 1.202 1.696 1.654v2.648h-.917v-.432c-.26.346-.792.535-1.36.535-.133 0-1.289-.03-1.384-1.136-.082-.932.675-1.61 2.053-1.61h.691c0-.563-.367-.886-.983-.886-.44.013-.864.174-1.2.458l-.36-.664c.484-.379 1.012-.567 1.764-.567zm4.427.1c1.263 0 2.082.97 2.083 2.15 0 1.181-.824 2.154-2.083 2.154-1.26 0-2.084-.972-2.084-2.152 0-1.18.82-2.153 2.084-2.153zm6.801.015c.68 0 1.202.465 1.197 1.548v2.642H21.1V8.29c0-.312-.002-.98-.63-.98s-.628.667-.628.838v2.524h-.89V8.148c0-.17-.001-.838-.63-.838-.628 0-.628.668-.628.98v2.383h-.917v-4.03h.917V7a1.22 1.22 0 01.947-.516c.398 0 .76.193.982.686a1.321 1.321 0 011.195-.686zm-18.093.872l1.457-1.772H5.32L3.311 8.07l2.14 2.602H4.24L2.725 8.796 1.21 10.672H0L2.138 8.07.13 5.583h1.138l1.458 1.772zm4.149 3.317h-.916V6.644h.916v4.028zm16.99 0h-.916V6.644h.916v4.028zM9.925 8.71c-1.055 0-1.359.412-1.326.742.032.329.324.537.757.537a1.013 1.013 0 001.014-.968l.002-.31h-.447zM14.018 7.3c-.663 0-1.184.487-1.184 1.32 0 .832.52 1.32 1.184 1.32.662 0 1.182-.49 1.182-1.32 0-.832-.52-1.32-1.182-1.32zM6.417 5.001a.568.568 0 01.587.582.588.588 0 01-1.175 0A.57.57 0 016.417 5zm16.991 0a.57.57 0 01.592.582.588.588 0 01-1.174 0 .57.57 0 01.357-.542.572.572 0 01.225-.04z"></path></svg>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<svg fill="currentColor" fillRule="evenodd" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<title>OpenCode</title>
|
|
3
|
-
<path d="M16 6H8v12h8V6zm4 16H4V2h16v20z"/>
|
|
4
|
-
</svg>
|
|
1
|
+
<svg fill="currentColor" fillRule="evenodd" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<title>OpenCode</title>
|
|
3
|
+
<path d="M16 6H8v12h8V6zm4 16H4V2h16v20z"/>
|
|
4
|
+
</svg>
|
|
@@ -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__");
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { JSX } from "react";
|
|
2
2
|
import { cn } from "../../lib/utils";
|
|
3
|
+
import ClaudeCodeLogoSvg from "../../assets/IDE/claudecode-color.svg";
|
|
4
|
+
import CodexLogoSvg from "../../assets/IDE/codex-color.svg";
|
|
5
|
+
import OpenCodeLogoSvg from "../../assets/IDE/opencode.svg";
|
|
6
|
+
import MiMoCodeLogoSvg from "../../assets/IDE/xiaomimimo.svg";
|
|
3
7
|
|
|
4
8
|
export type ClientApp = "codex" | "opencode" | "mimo-code" | "claude-code" | "unknown";
|
|
5
9
|
|
|
@@ -56,53 +60,12 @@ export function clientAppLabel(client: ClientApp): string | null {
|
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
62
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
fill="none"
|
|
66
|
-
stroke="currentColor"
|
|
67
|
-
strokeLinecap="round"
|
|
68
|
-
strokeWidth="2.2"
|
|
69
|
-
/>
|
|
70
|
-
</svg>
|
|
71
|
-
);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
function OpenCodeMark(): JSX.Element {
|
|
75
|
-
return (
|
|
76
|
-
<svg viewBox="0 0 24 24" className="size-full" aria-hidden="true">
|
|
77
|
-
<path d="M7 4h10v16H7z" fill="none" stroke="currentColor" strokeWidth="2.2" />
|
|
78
|
-
<path d="M10 8h4M10 12h4M10 16h2" stroke="currentColor" strokeLinecap="round" />
|
|
79
|
-
</svg>
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function MiMoCodeMark(): JSX.Element {
|
|
84
|
-
return (
|
|
85
|
-
<svg viewBox="0 0 24 24" className="size-full" aria-hidden="true">
|
|
86
|
-
<path
|
|
87
|
-
d="M5 18V6h3.2l3.8 6.1L15.8 6H19v12h-3V11.3l-3.1 5h-1.8L8 11.3V18z"
|
|
88
|
-
fill="currentColor"
|
|
89
|
-
/>
|
|
90
|
-
</svg>
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function ClaudeCodeMark(): JSX.Element {
|
|
95
|
-
return (
|
|
96
|
-
<svg viewBox="0 0 24 24" className="size-full" aria-hidden="true">
|
|
97
|
-
<path
|
|
98
|
-
fill="currentColor"
|
|
99
|
-
fillRule="evenodd"
|
|
100
|
-
clipRule="evenodd"
|
|
101
|
-
d="M21 10.95h3v3.1h-3v3.03h-1.49V20H18v-2.92h-1.49V20H15v-2.92H9V20H7.49v-2.92H6V20H4.49v-2.92H3v-3.03H0v-3.1h3V5h18v5.95zM6 10.95h1.49V8.1H6v2.85zm10.51 0H18V8.1h-1.49v2.85z"
|
|
102
|
-
/>
|
|
103
|
-
</svg>
|
|
104
|
-
);
|
|
105
|
-
}
|
|
63
|
+
const CLIENT_LOGOS: Record<Exclude<ClientApp, "unknown">, string> = {
|
|
64
|
+
codex: CodexLogoSvg,
|
|
65
|
+
opencode: OpenCodeLogoSvg,
|
|
66
|
+
"mimo-code": MiMoCodeLogoSvg,
|
|
67
|
+
"claude-code": ClaudeCodeLogoSvg,
|
|
68
|
+
};
|
|
106
69
|
|
|
107
70
|
export function ClientLogo({
|
|
108
71
|
client,
|
|
@@ -111,22 +74,21 @@ export function ClientLogo({
|
|
|
111
74
|
client: ClientApp;
|
|
112
75
|
className?: string;
|
|
113
76
|
}): JSX.Element | null {
|
|
77
|
+
if (client === "unknown") return null;
|
|
114
78
|
const label = clientAppLabel(client);
|
|
115
79
|
if (label === null) return null;
|
|
80
|
+
const logoSrc = CLIENT_LOGOS[client];
|
|
116
81
|
|
|
117
82
|
return (
|
|
118
83
|
<span
|
|
119
84
|
className={cn(
|
|
120
|
-
"border border-border bg-muted/40 inline-flex size-6 shrink-0 items-center justify-center rounded-md p-
|
|
85
|
+
"border border-border bg-muted/40 inline-flex size-6 shrink-0 items-center justify-center rounded-md p-0.5",
|
|
121
86
|
className,
|
|
122
87
|
)}
|
|
123
88
|
aria-label={label}
|
|
124
89
|
title={label}
|
|
125
90
|
>
|
|
126
|
-
{
|
|
127
|
-
{client === "opencode" && <OpenCodeMark />}
|
|
128
|
-
{client === "mimo-code" && <MiMoCodeMark />}
|
|
129
|
-
{client === "claude-code" && <ClaudeCodeMark />}
|
|
91
|
+
<img src={logoSrc} alt="" className="size-full object-contain" aria-hidden="true" />
|
|
130
92
|
</span>
|
|
131
93
|
);
|
|
132
94
|
}
|
|
@@ -44,24 +44,19 @@ const STATUS_CUE_CLASSES: Record<
|
|
|
44
44
|
StatusCategory,
|
|
45
45
|
{
|
|
46
46
|
frame: string;
|
|
47
|
-
dot: string;
|
|
48
47
|
}
|
|
49
48
|
> = {
|
|
50
49
|
success: {
|
|
51
50
|
frame: "border-cyan-200/15 bg-white/[0.04] text-slate-100",
|
|
52
|
-
dot: "bg-cyan-200/80 shadow-[0_0_14px_rgba(125,211,252,0.65)]",
|
|
53
51
|
},
|
|
54
52
|
client_error: {
|
|
55
53
|
frame: "border-amber-300/25 bg-amber-300/[0.08] text-amber-100",
|
|
56
|
-
dot: "bg-amber-200 shadow-[0_0_14px_rgba(252,211,77,0.8)]",
|
|
57
54
|
},
|
|
58
55
|
server_error: {
|
|
59
56
|
frame: "border-rose-300/25 bg-rose-300/[0.08] text-rose-100",
|
|
60
|
-
dot: "bg-rose-300 shadow-[0_0_14px_rgba(253,164,175,0.8)]",
|
|
61
57
|
},
|
|
62
58
|
pending: {
|
|
63
59
|
frame: "border-cyan-300/25 bg-cyan-300/[0.08] text-cyan-100",
|
|
64
|
-
dot: "bg-cyan-200 shadow-[0_0_14px_rgba(103,232,249,0.8)]",
|
|
65
60
|
},
|
|
66
61
|
};
|
|
67
62
|
|
|
@@ -247,11 +242,10 @@ export const LogEntryHeader = memo(function ({
|
|
|
247
242
|
{/* Request ID */}
|
|
248
243
|
<span
|
|
249
244
|
className={cn(
|
|
250
|
-
"inline-flex h-8 shrink-0 items-center
|
|
245
|
+
"inline-flex h-8 shrink-0 items-center rounded-md px-2 font-mono",
|
|
251
246
|
statusCue.frame,
|
|
252
247
|
)}
|
|
253
248
|
>
|
|
254
|
-
<span className={cn("size-1.5 rounded-full", statusCue.dot)} aria-hidden="true" />
|
|
255
249
|
<span className="text-xs font-semibold tabular-nums" title={`Log ID ${String(log.id)}`}>
|
|
256
250
|
#{displayNumber}
|
|
257
251
|
</span>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as o}from"./ProxyViewerContainer-7b_uwvT7.js";import"./main-Ba9x64uY.js";const r=o;export{r as component};
|