@tonyclaw/llm-inspector 1.19.0 → 1.19.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 +338 -102
- package/.output/nitro.json +1 -1
- package/.output/public/assets/{CompareDrawer-DwayZPPO.js → CompareDrawer-BzTsEelr.js} +1 -1
- package/.output/public/assets/{ProxyViewerContainer-iv3LVMEW.js → ProxyViewerContainer-BHm-n-_W.js} +9 -9
- package/.output/public/assets/{ReplayDialog-CaV1elYO.js → ReplayDialog-Dxxo80xO.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-CSfnjK7j.js → RequestAnatomy-D-swiaii.js} +1 -1
- package/.output/public/assets/{ResponseView-YkOL__xm.js → ResponseView-DvdH2bGk.js} +1 -1
- package/.output/public/assets/{StreamingChunkSequence-D_p6L-oB.js → StreamingChunkSequence-D_RzgyKq.js} +1 -1
- package/.output/public/assets/_sessionId-DdODJCYY.js +1 -0
- package/.output/public/assets/{index-DeJyypsp.css → index-Bqi9RAGS.css} +1 -1
- package/.output/public/assets/index-EvnsNPOK.js +1 -0
- package/.output/public/assets/{json-viewer-BB-9bqnP.js → json-viewer-DIHZbEId.js} +1 -1
- package/.output/public/assets/{main-COVN451W.js → main-Br2EjrqZ.js} +2 -2
- package/.output/server/{_sessionId-BJT5qIib.mjs → _sessionId-CPkCxTP8.mjs} +4 -3
- package/.output/server/_ssr/{CompareDrawer-DNGYdUXs.mjs → CompareDrawer-DKHgXC5-.mjs} +4 -4
- package/.output/server/_ssr/{ProxyViewerContainer-B-zDOLYE.mjs → ProxyViewerContainer-B41D-2Eo.mjs} +57 -9
- package/.output/server/_ssr/{ReplayDialog-DWeqMA4y.mjs → ReplayDialog-D2piRWb0.mjs} +5 -5
- package/.output/server/_ssr/{RequestAnatomy-TOsrMu9-.mjs → RequestAnatomy-Ce7QdQNP.mjs} +4 -3
- package/.output/server/_ssr/{ResponseView-BuqdPrzm.mjs → ResponseView-D50UPv-r.mjs} +5 -5
- package/.output/server/_ssr/{StreamingChunkSequence-DuzNZkqL.mjs → StreamingChunkSequence-CDlNFS3Z.mjs} +4 -4
- package/.output/server/_ssr/{index-1nCQUt3y.mjs → index-DhAQxjnZ.mjs} +4 -3
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-BL8xhHbi.mjs → json-viewer-BZRjG_f7.mjs} +4 -4
- package/.output/server/_ssr/{router-aCaUgVTW.mjs → router-yP98-Gq-.mjs} +126 -105
- package/.output/server/{_tanstack-start-manifest_v-cBRxvCjb.mjs → _tanstack-start-manifest_v-d4a4xlOi.mjs} +1 -1
- package/.output/server/index.mjs +64 -64
- package/README.md +22 -0
- package/package.json +3 -1
- package/src/cli/detect-tools.ts +1 -0
- package/src/cli/templates/skill-onboard.ts +204 -71
- package/src/cli.ts +164 -39
- package/src/components/ProxyViewerContainer.tsx +52 -0
- package/src/components/proxy-viewer/LogEntryHeader.tsx +1 -0
- package/src/proxy/logFinalizer.ts +7 -3
- package/src/proxy/sessionProcess.ts +14 -7
- package/src/proxy/sessionSupervisor.ts +3 -2
- package/src/proxy/socketTracker.ts +19 -7
- package/styles/globals.css +14 -7
- package/.output/public/assets/_sessionId-BgCVUC6R.js +0 -1
- package/.output/public/assets/index-CWA4S0FO.js +0 -1
package/.output/server/index.mjs
CHANGED
|
@@ -35,110 +35,110 @@ const headers = ((m) => function headersRouteRule(event) {
|
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
const assets = {
|
|
38
|
+
"/assets/index-EvnsNPOK.js": {
|
|
39
|
+
"type": "text/javascript; charset=utf-8",
|
|
40
|
+
"etag": '"74-Ttr2CWyviy8DiIX5gb9+i1f50ew"',
|
|
41
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
42
|
+
"size": 116,
|
|
43
|
+
"path": "../public/assets/index-EvnsNPOK.js"
|
|
44
|
+
},
|
|
38
45
|
"/assets/alibaba-TTwafVwX.svg": {
|
|
39
46
|
"type": "image/svg+xml",
|
|
40
47
|
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
41
|
-
"mtime": "2026-06-
|
|
48
|
+
"mtime": "2026-06-18T08:23:57.367Z",
|
|
42
49
|
"size": 5915,
|
|
43
50
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
51
|
},
|
|
45
|
-
"/assets/
|
|
46
|
-
"type": "text/
|
|
47
|
-
"etag": '"
|
|
48
|
-
"mtime": "2026-06-
|
|
49
|
-
"size":
|
|
50
|
-
"path": "../public/assets/
|
|
52
|
+
"/assets/index-Bqi9RAGS.css": {
|
|
53
|
+
"type": "text/css; charset=utf-8",
|
|
54
|
+
"etag": '"177a9-QMoW/GsYu1jERI0JyFHA9CiB/o0"',
|
|
55
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
56
|
+
"size": 96169,
|
|
57
|
+
"path": "../public/assets/index-Bqi9RAGS.css"
|
|
51
58
|
},
|
|
52
|
-
"/assets/
|
|
59
|
+
"/assets/CompareDrawer-BzTsEelr.js": {
|
|
53
60
|
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"
|
|
55
|
-
"mtime": "2026-06-
|
|
56
|
-
"size":
|
|
57
|
-
"path": "../public/assets/
|
|
61
|
+
"etag": '"4a1f-Qg1+Rt9EXNIgQdrNcwWDBW4GbSo"',
|
|
62
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
63
|
+
"size": 18975,
|
|
64
|
+
"path": "../public/assets/CompareDrawer-BzTsEelr.js"
|
|
58
65
|
},
|
|
59
66
|
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
60
67
|
"type": "image/jpeg",
|
|
61
68
|
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
62
|
-
"mtime": "2026-06-
|
|
69
|
+
"mtime": "2026-06-18T08:23:57.370Z",
|
|
63
70
|
"size": 6918,
|
|
64
71
|
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
65
72
|
},
|
|
66
|
-
"/assets/
|
|
67
|
-
"type": "text/
|
|
68
|
-
"etag": '"
|
|
69
|
-
"mtime": "2026-06-
|
|
70
|
-
"size":
|
|
71
|
-
"path": "../public/assets/
|
|
73
|
+
"/assets/main-Br2EjrqZ.js": {
|
|
74
|
+
"type": "text/javascript; charset=utf-8",
|
|
75
|
+
"etag": '"50a37-vmFQ+AWLZBZB2He0hGozNaRNVJI"',
|
|
76
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
77
|
+
"size": 330295,
|
|
78
|
+
"path": "../public/assets/main-Br2EjrqZ.js"
|
|
72
79
|
},
|
|
73
|
-
"/assets/json-viewer-
|
|
80
|
+
"/assets/json-viewer-DIHZbEId.js": {
|
|
74
81
|
"type": "text/javascript; charset=utf-8",
|
|
75
|
-
"etag": '"1e651-
|
|
76
|
-
"mtime": "2026-06-
|
|
82
|
+
"etag": '"1e651-45Abi6ZVH/q1l0aOWq20PEO9Tcg"',
|
|
83
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
77
84
|
"size": 124497,
|
|
78
|
-
"path": "../public/assets/json-viewer-
|
|
85
|
+
"path": "../public/assets/json-viewer-DIHZbEId.js"
|
|
79
86
|
},
|
|
80
|
-
"/assets/
|
|
87
|
+
"/assets/RequestAnatomy-D-swiaii.js": {
|
|
81
88
|
"type": "text/javascript; charset=utf-8",
|
|
82
|
-
"etag": '"
|
|
83
|
-
"mtime": "2026-06-
|
|
84
|
-
"size":
|
|
85
|
-
"path": "../public/assets/
|
|
89
|
+
"etag": '"142a-gnEHcgfEHRgV0NMxY0iXIZHIAC0"',
|
|
90
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
91
|
+
"size": 5162,
|
|
92
|
+
"path": "../public/assets/RequestAnatomy-D-swiaii.js"
|
|
86
93
|
},
|
|
87
|
-
"/assets/ResponseView-
|
|
94
|
+
"/assets/ResponseView-DvdH2bGk.js": {
|
|
88
95
|
"type": "text/javascript; charset=utf-8",
|
|
89
|
-
"etag": '"6e91-
|
|
90
|
-
"mtime": "2026-06-
|
|
96
|
+
"etag": '"6e91-Q4HU85yuyXxRWZzw+CnDW/vnjAo"',
|
|
97
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
91
98
|
"size": 28305,
|
|
92
|
-
"path": "../public/assets/ResponseView-
|
|
99
|
+
"path": "../public/assets/ResponseView-DvdH2bGk.js"
|
|
100
|
+
},
|
|
101
|
+
"/assets/ReplayDialog-Dxxo80xO.js": {
|
|
102
|
+
"type": "text/javascript; charset=utf-8",
|
|
103
|
+
"etag": '"11c0-L7iZUpQjkDLpKkR+MgAZO1Q6ns8"',
|
|
104
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
105
|
+
"size": 4544,
|
|
106
|
+
"path": "../public/assets/ReplayDialog-Dxxo80xO.js"
|
|
107
|
+
},
|
|
108
|
+
"/assets/StreamingChunkSequence-D_RzgyKq.js": {
|
|
109
|
+
"type": "text/javascript; charset=utf-8",
|
|
110
|
+
"etag": '"d81-8i4/6r70kba84fXrnFFC/+/S8Sw"',
|
|
111
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
112
|
+
"size": 3457,
|
|
113
|
+
"path": "../public/assets/StreamingChunkSequence-D_RzgyKq.js"
|
|
93
114
|
},
|
|
94
115
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
95
116
|
"type": "image/svg+xml",
|
|
96
117
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
97
|
-
"mtime": "2026-06-
|
|
118
|
+
"mtime": "2026-06-18T08:23:57.370Z",
|
|
98
119
|
"size": 11256,
|
|
99
120
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
100
121
|
},
|
|
101
|
-
"/assets/
|
|
102
|
-
"type": "text/javascript; charset=utf-8",
|
|
103
|
-
"etag": '"142a-CwwpIZz2Gaf/JogYLj0DK/Poz8o"',
|
|
104
|
-
"mtime": "2026-06-17T12:54:11.907Z",
|
|
105
|
-
"size": 5162,
|
|
106
|
-
"path": "../public/assets/RequestAnatomy-CSfnjK7j.js"
|
|
107
|
-
},
|
|
108
|
-
"/assets/StreamingChunkSequence-D_p6L-oB.js": {
|
|
109
|
-
"type": "text/javascript; charset=utf-8",
|
|
110
|
-
"etag": '"d81-IO4bgOssZoDdAbKHYgyONSXgSw8"',
|
|
111
|
-
"mtime": "2026-06-17T12:54:11.907Z",
|
|
112
|
-
"size": 3457,
|
|
113
|
-
"path": "../public/assets/StreamingChunkSequence-D_p6L-oB.js"
|
|
114
|
-
},
|
|
115
|
-
"/assets/_sessionId-BgCVUC6R.js": {
|
|
122
|
+
"/assets/_sessionId-DdODJCYY.js": {
|
|
116
123
|
"type": "text/javascript; charset=utf-8",
|
|
117
|
-
"etag": '"d2-
|
|
118
|
-
"mtime": "2026-06-
|
|
124
|
+
"etag": '"d2-f13W0xvGzYOxgV34bdQslyMj4WE"',
|
|
125
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
119
126
|
"size": 210,
|
|
120
|
-
"path": "../public/assets/_sessionId-
|
|
121
|
-
},
|
|
122
|
-
"/assets/main-COVN451W.js": {
|
|
123
|
-
"type": "text/javascript; charset=utf-8",
|
|
124
|
-
"etag": '"50a37-YPT2eeRreT3u8eoQvC2l/pD2i/4"',
|
|
125
|
-
"mtime": "2026-06-17T12:54:11.907Z",
|
|
126
|
-
"size": 330295,
|
|
127
|
-
"path": "../public/assets/main-COVN451W.js"
|
|
127
|
+
"path": "../public/assets/_sessionId-DdODJCYY.js"
|
|
128
128
|
},
|
|
129
129
|
"/assets/qwen-CONDcHqt.png": {
|
|
130
130
|
"type": "image/png",
|
|
131
131
|
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
132
|
-
"mtime": "2026-06-
|
|
132
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
133
133
|
"size": 357059,
|
|
134
134
|
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
135
135
|
},
|
|
136
|
-
"/assets/ProxyViewerContainer-
|
|
136
|
+
"/assets/ProxyViewerContainer-BHm-n-_W.js": {
|
|
137
137
|
"type": "text/javascript; charset=utf-8",
|
|
138
|
-
"etag": '"
|
|
139
|
-
"mtime": "2026-06-
|
|
140
|
-
"size":
|
|
141
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
138
|
+
"etag": '"76fed-fJVWNR0ZLTxGc3xnZxX5o1sFXvc"',
|
|
139
|
+
"mtime": "2026-06-18T08:23:57.371Z",
|
|
140
|
+
"size": 487405,
|
|
141
|
+
"path": "../public/assets/ProxyViewerContainer-BHm-n-_W.js"
|
|
142
142
|
}
|
|
143
143
|
};
|
|
144
144
|
function readAsset(id) {
|
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
- **Web UI**:`http://localhost:25947`
|
|
19
19
|
- **Proxy**:`http://localhost:25947/proxy`
|
|
20
20
|
- **MCP Server**:`http://localhost:25947/api/mcp`
|
|
21
|
+
- **Chrome Companion**:`extensions/chrome`(通过 `chrome://extensions` 以 Load unpacked 方式加载)
|
|
21
22
|
|
|
22
23
|
## 核心能力
|
|
23
24
|
|
|
@@ -53,6 +54,8 @@ llm-inspector
|
|
|
53
54
|
```bash
|
|
54
55
|
llm-inspector --no-open
|
|
55
56
|
llm-inspector --port 3000
|
|
57
|
+
llm-inspector --background
|
|
58
|
+
llm-inspector --force-restart
|
|
56
59
|
llm-inspector --config-dir ./local-config
|
|
57
60
|
llm-inspector --providers '[{"name":"OpenAI","apiKey":"sk-...","models":["gpt-4o-mini"],"openaiBaseUrl":"https://api.openai.com/v1","authHeader":"bearer","createdAt":"2026-01-01T00:00:00.000Z","updatedAt":"2026-01-01T00:00:00.000Z","id":"demo"}]'
|
|
58
61
|
```
|
|
@@ -73,6 +76,23 @@ bun install
|
|
|
73
76
|
bun run dev
|
|
74
77
|
```
|
|
75
78
|
|
|
79
|
+
### Chrome Companion 扩展
|
|
80
|
+
|
|
81
|
+
仓库内提供了一个轻量 Chrome 侧边栏扩展,用来连接本机 llm-inspector、查看运行状态和最近请求,并快速打开 Dashboard 或复制代理命令。
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
extensions/chrome
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
启动方式:
|
|
88
|
+
|
|
89
|
+
1. 先运行 `llm-inspector` 或 `bun run dev`。
|
|
90
|
+
2. 打开 `chrome://extensions`。
|
|
91
|
+
3. 开启 **Developer mode**。
|
|
92
|
+
4. 点击 **Load unpacked**。
|
|
93
|
+
5. 选择 `extensions/chrome` 目录。
|
|
94
|
+
6. 点击扩展图标打开侧边栏。
|
|
95
|
+
|
|
76
96
|
## 配置 Provider
|
|
77
97
|
|
|
78
98
|
打开 Web UI,进入 **Settings** 添加 Provider:
|
|
@@ -315,6 +335,8 @@ ANTHROPIC_BASE_URL=http://localhost:25947/proxy claude
|
|
|
315
335
|
- [架构说明](docs/Architecture.md)
|
|
316
336
|
- [开发指南](docs/Development.md)
|
|
317
337
|
- [MCP Server](docs/MCP-Server.md)
|
|
338
|
+
- [CHANGELOG](CHANGELOG.md) — release notes
|
|
339
|
+
- [CONTRIBUTING](CONTRIBUTING.md) — how to land a change
|
|
318
340
|
|
|
319
341
|
## License
|
|
320
342
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonyclaw/llm-inspector",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "LLM API proxy inspector — captures and displays requests/responses from AI coding tools in a web UI",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,6 +40,8 @@
|
|
|
40
40
|
"lint": "eslint .",
|
|
41
41
|
"format": "biome format --write .",
|
|
42
42
|
"format:check": "biome format .",
|
|
43
|
+
"extension:zip": "node scripts/pack-chrome-extension.mjs",
|
|
44
|
+
"extension:release": "node scripts/release-chrome-extension.mjs",
|
|
43
45
|
"knip": "knip",
|
|
44
46
|
"check": "bun format && bun typecheck && bun lint",
|
|
45
47
|
"prepare": "husky",
|
package/src/cli/detect-tools.ts
CHANGED
|
@@ -47,6 +47,7 @@ function which(bin: string): string | null {
|
|
|
47
47
|
const out = execFileSync("where", [bin], {
|
|
48
48
|
encoding: "utf8",
|
|
49
49
|
timeout: 3000,
|
|
50
|
+
windowsHide: true,
|
|
50
51
|
stdio: ["ignore", "pipe", "ignore"],
|
|
51
52
|
});
|
|
52
53
|
const first = out.split(/\r?\n/).find((line) => line.trim().length > 0);
|