@tonyclaw/llm-inspector 1.17.0 → 1.17.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.
Files changed (22) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{CompareDrawer-C4fie5g5.js → CompareDrawer-BhXCLr7m.js} +1 -1
  3. package/.output/public/assets/{ReplayDialog-Dme5uOR9.js → ReplayDialog-CzRPSXwa.js} +1 -1
  4. package/.output/public/assets/{RequestAnatomy-ChBLDNFH.js → RequestAnatomy-lMQonao2.js} +1 -1
  5. package/.output/public/assets/{ResponseView-wGeqBzVU.js → ResponseView-Bt0vngo0.js} +1 -1
  6. package/.output/public/assets/{StreamingChunkSequence-zeJZQLqT.js → StreamingChunkSequence-Dq9XY2E9.js} +1 -1
  7. package/.output/public/assets/{index-DpbutOvo.js → index-B4nxi_tZ.js} +15 -15
  8. package/.output/public/assets/{json-viewer-BV-WUszW.js → json-viewer-C8ttTXtv.js} +1 -1
  9. package/.output/public/assets/{main-DRu10KNQ.js → main-Dgme52Fp.js} +1 -1
  10. package/.output/server/_ssr/{CompareDrawer-C4-CQL5w.mjs → CompareDrawer-D-Nj8wmx.mjs} +3 -3
  11. package/.output/server/_ssr/{ReplayDialog-BTb1Bam8.mjs → ReplayDialog-DcucC22E.mjs} +4 -4
  12. package/.output/server/_ssr/{RequestAnatomy-CZFV1IvL.mjs → RequestAnatomy-aL8GAcW2.mjs} +2 -2
  13. package/.output/server/_ssr/{ResponseView-CTZekh65.mjs → ResponseView-BHgpoGaF.mjs} +3 -3
  14. package/.output/server/_ssr/{StreamingChunkSequence-C38Ynabd.mjs → StreamingChunkSequence-DrT7StyS.mjs} +3 -3
  15. package/.output/server/_ssr/{index-Cnu-QzAy.mjs → index-nUG0H1oS.mjs} +15 -25
  16. package/.output/server/_ssr/index.mjs +2 -2
  17. package/.output/server/_ssr/{json-viewer-DROqpjS9.mjs → json-viewer-DLsDT0RE.mjs} +2 -2
  18. package/.output/server/_ssr/{router-pP4GCTQx.mjs → router-DG_jmXCF.mjs} +1 -1
  19. package/.output/server/{_tanstack-start-manifest_v-CphS4rZd.mjs → _tanstack-start-manifest_v-D0JtrQPv.mjs} +1 -1
  20. package/.output/server/index.mjs +49 -49
  21. package/package.json +1 -1
  22. package/src/components/proxy-viewer/LogEntryHeader.tsx +5 -18
@@ -1,4 +1,4 @@
1
- const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/__root.tsx", "children": ["/", "/api/config", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/sessions", "/proxy/$"], "preloads": ["/assets/main-DRu10KNQ.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-DpbutOvo.js"] }, "/api/config": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/config.ts", "children": ["/api/config/paths"] }, "/api/health": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/health.ts" }, "/api/logs": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.ts", "children": ["/api/logs/$id", "/api/logs/stream"] }, "/api/mcp": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/mcp.ts" }, "/api/models": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/models.ts" }, "/api/providers": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.ts", "children": ["/api/providers/$providerId", "/api/providers/export", "/api/providers/import", "/api/providers/scan"] }, "/api/sessions": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/sessions.ts" }, "/proxy/$": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/proxy/$.ts" }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/config.paths.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/test"] }, "/api/providers/export": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.export.ts" }, "/api/providers/import": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.import.ts" }, "/api/providers/scan": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.scan.ts" }, "/api/logs/$id/chunks": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.$id.chunks.ts" }, "/api/logs/$id/replay": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.$id.replay.ts" }, "/api/providers/$providerId/test": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/api/providers/$providerId/test/log": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.$providerId.test.log.ts" } }, "clientEntry": "/assets/main-DRu10KNQ.js" });
1
+ const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/__root.tsx", "children": ["/", "/api/config", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/sessions", "/proxy/$"], "preloads": ["/assets/main-Dgme52Fp.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-B4nxi_tZ.js"] }, "/api/config": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/config.ts", "children": ["/api/config/paths"] }, "/api/health": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/health.ts" }, "/api/logs": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.ts", "children": ["/api/logs/$id", "/api/logs/stream"] }, "/api/mcp": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/mcp.ts" }, "/api/models": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/models.ts" }, "/api/providers": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.ts", "children": ["/api/providers/$providerId", "/api/providers/export", "/api/providers/import", "/api/providers/scan"] }, "/api/sessions": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/sessions.ts" }, "/proxy/$": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/proxy/$.ts" }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/config.paths.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/test"] }, "/api/providers/export": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.export.ts" }, "/api/providers/import": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.import.ts" }, "/api/providers/scan": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.scan.ts" }, "/api/logs/$id/chunks": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.$id.chunks.ts" }, "/api/logs/$id/replay": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/logs.$id.replay.ts" }, "/api/providers/$providerId/test": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/api/providers/$providerId/test/log": { "filePath": "C:/Users/claw/workspace/llm-inspector/src/routes/api/providers.$providerId.test.log.ts" } }, "clientEntry": "/assets/main-Dgme52Fp.js" });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -38,91 +38,91 @@ const assets = {
38
38
  "/assets/alibaba-TTwafVwX.svg": {
39
39
  "type": "image/svg+xml",
40
40
  "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
41
- "mtime": "2026-06-16T13:43:26.730Z",
41
+ "mtime": "2026-06-16T13:55:29.091Z",
42
42
  "size": 5915,
43
43
  "path": "../public/assets/alibaba-TTwafVwX.svg"
44
44
  },
45
- "/assets/CompareDrawer-C4fie5g5.js": {
45
+ "/assets/CompareDrawer-BhXCLr7m.js": {
46
46
  "type": "text/javascript; charset=utf-8",
47
- "etag": '"4a10-3djWuOwKSKXlQPoy4NHzqd2tggE"',
48
- "mtime": "2026-06-16T13:43:26.730Z",
47
+ "etag": '"4a10-YLpRKqytDE/DVrz+mZssMHopfG4"',
48
+ "mtime": "2026-06-16T13:55:29.091Z",
49
49
  "size": 18960,
50
- "path": "../public/assets/CompareDrawer-C4fie5g5.js"
50
+ "path": "../public/assets/CompareDrawer-BhXCLr7m.js"
51
51
  },
52
52
  "/assets/index-DoGvsnbA.css": {
53
53
  "type": "text/css; charset=utf-8",
54
54
  "etag": '"16d26-qw65JIM4oxztXa/jhWYD9PPuvfA"',
55
- "mtime": "2026-06-16T13:43:26.730Z",
55
+ "mtime": "2026-06-16T13:55:29.091Z",
56
56
  "size": 93478,
57
57
  "path": "../public/assets/index-DoGvsnbA.css"
58
58
  },
59
- "/assets/index-DpbutOvo.js": {
59
+ "/assets/json-viewer-C8ttTXtv.js": {
60
60
  "type": "text/javascript; charset=utf-8",
61
- "etag": '"744e2-P9RhN2wY9pxyu6b/wpeHlefe59k"',
62
- "mtime": "2026-06-16T13:43:26.731Z",
63
- "size": 476386,
64
- "path": "../public/assets/index-DpbutOvo.js"
65
- },
66
- "/assets/ReplayDialog-Dme5uOR9.js": {
67
- "type": "text/javascript; charset=utf-8",
68
- "etag": '"11b1-SKRfqUa9SY8yNi8IxWzCC6VvjQI"',
69
- "mtime": "2026-06-16T13:43:26.730Z",
70
- "size": 4529,
71
- "path": "../public/assets/ReplayDialog-Dme5uOR9.js"
72
- },
73
- "/assets/json-viewer-BV-WUszW.js": {
74
- "type": "text/javascript; charset=utf-8",
75
- "etag": '"1e60c-26TCWxphlokObc5HBPeY7NRlcXU"',
76
- "mtime": "2026-06-16T13:43:26.731Z",
61
+ "etag": '"1e60c-SeTWoRDshC9JNLsXxB+oZqqYa9Q"',
62
+ "mtime": "2026-06-16T13:55:29.091Z",
77
63
  "size": 124428,
78
- "path": "../public/assets/json-viewer-BV-WUszW.js"
79
- },
80
- "/assets/RequestAnatomy-ChBLDNFH.js": {
81
- "type": "text/javascript; charset=utf-8",
82
- "etag": '"141b-nxiiCAE0vs7SLaqcUISSgXq1IGo"',
83
- "mtime": "2026-06-16T13:43:26.730Z",
84
- "size": 5147,
85
- "path": "../public/assets/RequestAnatomy-ChBLDNFH.js"
64
+ "path": "../public/assets/json-viewer-C8ttTXtv.js"
86
65
  },
87
66
  "/assets/minimax-BPMzvuL-.jpeg": {
88
67
  "type": "image/jpeg",
89
68
  "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
90
- "mtime": "2026-06-16T13:43:26.730Z",
69
+ "mtime": "2026-06-16T13:55:29.091Z",
91
70
  "size": 6918,
92
71
  "path": "../public/assets/minimax-BPMzvuL-.jpeg"
93
72
  },
94
- "/assets/main-DRu10KNQ.js": {
73
+ "/assets/ResponseView-Bt0vngo0.js": {
95
74
  "type": "text/javascript; charset=utf-8",
96
- "etag": '"505ae-BP/aj8/2FZWooG/jXqGZEmVfl3E"',
97
- "mtime": "2026-06-16T13:43:26.730Z",
98
- "size": 329134,
99
- "path": "../public/assets/main-DRu10KNQ.js"
75
+ "etag": '"6e82-qyYOt0PCIhyWDXDEAIXQwFBrhZ4"',
76
+ "mtime": "2026-06-16T13:55:29.091Z",
77
+ "size": 28290,
78
+ "path": "../public/assets/ResponseView-Bt0vngo0.js"
100
79
  },
101
- "/assets/StreamingChunkSequence-zeJZQLqT.js": {
80
+ "/assets/ReplayDialog-CzRPSXwa.js": {
102
81
  "type": "text/javascript; charset=utf-8",
103
- "etag": '"d72-nuJyJopptXOHt0oPHw//D9VSW+k"',
104
- "mtime": "2026-06-16T13:43:26.731Z",
105
- "size": 3442,
106
- "path": "../public/assets/StreamingChunkSequence-zeJZQLqT.js"
82
+ "etag": '"11b1-B/HuE6bAKHy7tYViDlzZLxkMxYU"',
83
+ "mtime": "2026-06-16T13:55:29.091Z",
84
+ "size": 4529,
85
+ "path": "../public/assets/ReplayDialog-CzRPSXwa.js"
107
86
  },
108
- "/assets/ResponseView-wGeqBzVU.js": {
87
+ "/assets/RequestAnatomy-lMQonao2.js": {
109
88
  "type": "text/javascript; charset=utf-8",
110
- "etag": '"6e82-ZzZo1WT+DlE16b9M9AMC/410RcI"',
111
- "mtime": "2026-06-16T13:43:26.731Z",
112
- "size": 28290,
113
- "path": "../public/assets/ResponseView-wGeqBzVU.js"
89
+ "etag": '"141b-MRuvyBmDPVx58t88HF6lUTpd46k"',
90
+ "mtime": "2026-06-16T13:55:29.091Z",
91
+ "size": 5147,
92
+ "path": "../public/assets/RequestAnatomy-lMQonao2.js"
93
+ },
94
+ "/assets/StreamingChunkSequence-Dq9XY2E9.js": {
95
+ "type": "text/javascript; charset=utf-8",
96
+ "etag": '"d72-2j21Nk/nFpIRvqZLJEvSPNG4/bA"',
97
+ "mtime": "2026-06-16T13:55:29.091Z",
98
+ "size": 3442,
99
+ "path": "../public/assets/StreamingChunkSequence-Dq9XY2E9.js"
114
100
  },
115
101
  "/assets/zhipuai-BPNAnxo-.svg": {
116
102
  "type": "image/svg+xml",
117
103
  "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
118
- "mtime": "2026-06-16T13:43:26.730Z",
104
+ "mtime": "2026-06-16T13:55:29.091Z",
119
105
  "size": 11256,
120
106
  "path": "../public/assets/zhipuai-BPNAnxo-.svg"
121
107
  },
108
+ "/assets/index-B4nxi_tZ.js": {
109
+ "type": "text/javascript; charset=utf-8",
110
+ "etag": '"743d2-L+tnpvRJci6Om1zGffL+DMn8ebc"',
111
+ "mtime": "2026-06-16T13:55:29.091Z",
112
+ "size": 476114,
113
+ "path": "../public/assets/index-B4nxi_tZ.js"
114
+ },
115
+ "/assets/main-Dgme52Fp.js": {
116
+ "type": "text/javascript; charset=utf-8",
117
+ "etag": '"505ae-rOzjw777KA3OeVo1WNNZIYQ7M2g"',
118
+ "mtime": "2026-06-16T13:55:29.091Z",
119
+ "size": 329134,
120
+ "path": "../public/assets/main-Dgme52Fp.js"
121
+ },
122
122
  "/assets/qwen-CONDcHqt.png": {
123
123
  "type": "image/png",
124
124
  "etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
125
- "mtime": "2026-06-16T13:43:26.730Z",
125
+ "mtime": "2026-06-16T13:55:29.091Z",
126
126
  "size": 357059,
127
127
  "path": "../public/assets/qwen-CONDcHqt.png"
128
128
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonyclaw/llm-inspector",
3
- "version": "1.17.0",
3
+ "version": "1.17.1",
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",
@@ -41,14 +41,6 @@ function formatElapsed(ms: number): string {
41
41
  return `${(ms / 1000).toFixed(1)}s`;
42
42
  }
43
43
 
44
- function formatTimestamp(iso: string): string {
45
- const d = new Date(iso);
46
- const hh = String(d.getHours()).padStart(2, "0");
47
- const mm = String(d.getMinutes()).padStart(2, "0");
48
- const ss = String(d.getSeconds()).padStart(2, "0");
49
- return `${hh}:${mm}:${ss}`;
50
- }
51
-
52
44
  /**
53
45
  * Inline trend indicator: small arrow (green up / red down) plus the absolute
54
46
  * delta in compact form. Returns `null` when there is no trend to display.
@@ -153,16 +145,11 @@ export const LogEntryHeader = memo(function ({
153
145
  #{log.id}
154
146
  </span>
155
147
 
156
- {/* Timestamp */}
157
- <Tooltip>
158
- <TooltipTrigger asChild>
159
- <span className="flex items-center gap-1 text-muted-foreground text-xs shrink-0">
160
- <Clock className="size-3" />
161
- <span className="font-mono tabular-nums">{formatTimestamp(log.timestamp)}</span>
162
- </span>
163
- </TooltipTrigger>
164
- <TooltipContent>{log.timestamp}</TooltipContent>
165
- </Tooltip>
148
+ {/* Request start time */}
149
+ <span className="flex items-center gap-1 text-muted-foreground text-xs shrink-0">
150
+ <Clock className="size-3" />
151
+ <span className="font-mono tabular-nums">{log.timestamp}</span>
152
+ </span>
166
153
 
167
154
  {/* Model — logo icon only, model name in tooltip */}
168
155
  {log.model !== null && (