@tonyclaw/agent-inspector 3.0.21 → 3.0.23
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-BhQ8UZBt.js → CompareDrawer-CFedvZHU.js} +1 -1
- package/.output/public/assets/{ProxyViewerContainer-GpMPUmJQ.js → ProxyViewerContainer-BlCrBvdm.js} +11 -11
- package/.output/public/assets/{ReplayDialog-CqUvVWFk.js → ReplayDialog-X-fRSKAu.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-DU8c0Ysb.js → RequestAnatomy-S8qB5nVg.js} +1 -1
- package/.output/public/assets/{ResponseView-Ce2JAKBf.js → ResponseView-_rcOWSwJ.js} +2 -2
- package/.output/public/assets/{StreamingChunkSequence-DvMcBgID.js → StreamingChunkSequence-Bc15AVpN.js} +1 -1
- package/.output/public/assets/{_sessionId-BeinzuQZ.js → _sessionId-Cz-HW2Wf.js} +1 -1
- package/.output/public/assets/index-B_SIQ47i.css +1 -0
- package/.output/public/assets/{index-BMVjOrho.js → index-CEgwWY3E.js} +2 -2
- package/.output/public/assets/{index-DENY-gse.js → index-CXYBU0j8.js} +1 -1
- package/.output/public/assets/{index-Cu0STzXy.js → index-ClKXooQd.js} +1 -1
- package/.output/public/assets/{json-viewer-Bjmt-Mdw.js → json-viewer-QfU4qGdd.js} +1 -1
- package/.output/server/{_sessionId-DiAGJ75k.mjs → _sessionId-9FAmYZVf.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-DF4wc8NT.mjs → CompareDrawer-BLKjOzwD.mjs} +2 -2
- package/.output/server/_ssr/{ProxyViewerContainer-BupCsVk6.mjs → ProxyViewerContainer-Dcs2Mq8l.mjs} +68 -86
- package/.output/server/_ssr/{ReplayDialog-BIzO8gkO.mjs → ReplayDialog-oyiF4LIo.mjs} +3 -3
- package/.output/server/_ssr/{RequestAnatomy-DR7XdTUQ.mjs → RequestAnatomy-DkyQXSuj.mjs} +2 -2
- package/.output/server/_ssr/{ResponseView-DoadSJYH.mjs → ResponseView-3NTDEiDh.mjs} +2 -2
- package/.output/server/_ssr/{StreamingChunkSequence-KPnZNTpB.mjs → StreamingChunkSequence-DRq-5Bgn.mjs} +2 -2
- package/.output/server/_ssr/{index-uv5HMw8-.mjs → index-dtMiNUa1.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-JNF8ttGZ.mjs → json-viewer-BhUwicvp.mjs} +2 -2
- package/.output/server/_ssr/{router-07KkEFRt.mjs → router-DO0OntUK.mjs} +4 -4
- package/.output/server/{_tanstack-start-manifest_v-CLXgj2ke.mjs → _tanstack-start-manifest_v-DO5v3BHY.mjs} +1 -1
- package/.output/server/index.mjs +78 -78
- package/package.json +4 -1
- package/src/components/ProxyViewer.tsx +4 -4
- package/src/components/providers/ProviderCard.tsx +6 -21
- package/src/components/providers/ProvidersPanel.tsx +39 -43
- package/.output/public/assets/index-D2iiZaNM.css +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { u as useProviders, d as fetchJsonWithTimeout, D as Dialog, e as DialogContent, h as DialogHeader, i as DialogTitle, T as Tabs, j as TabsList, k as TabsTrigger, l as TabsContent, m as Button, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, s as dispatchLogFocusRequest, A as ApiTimeoutError } from "./ProxyViewerContainer-
|
|
3
|
-
import { ResponseView } from "./ResponseView-
|
|
4
|
-
import { C as CapturedLogSchema } from "./router-
|
|
2
|
+
import { u as useProviders, d as fetchJsonWithTimeout, D as Dialog, e as DialogContent, h as DialogHeader, i as DialogTitle, T as Tabs, j as TabsList, k as TabsTrigger, l as TabsContent, m as Button, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, s as dispatchLogFocusRequest, A as ApiTimeoutError } from "./ProxyViewerContainer-Dcs2Mq8l.mjs";
|
|
3
|
+
import { ResponseView } from "./ResponseView-3NTDEiDh.mjs";
|
|
4
|
+
import { C as CapturedLogSchema } from "./router-DO0OntUK.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import "node:fs";
|
|
7
7
|
import "node:buffer";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { u as useProviders, t as analyzeContextIntelligence, f as formatTokens, n as TooltipProvider, c as cn, o as Tooltip, p as TooltipTrigger, q as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, v as ANATOMY_ROLE_LABELS, w as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { u as useProviders, t as analyzeContextIntelligence, f as formatTokens, n as TooltipProvider, c as cn, o as Tooltip, p as TooltipTrigger, q as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, v as ANATOMY_ROLE_LABELS, w as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-Dcs2Mq8l.mjs";
|
|
3
|
+
import "./router-DO0OntUK.mjs";
|
|
4
4
|
import "node:fs";
|
|
5
5
|
import "node:buffer";
|
|
6
6
|
import "node:path";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { g as getLogFormatAdapter, f as formatTokens, c as cn, x as getStatusCategory, B as Badge, y as Collapsible, z as CollapsibleTrigger, E as CollapsibleContent, F as ScrollArea, G as LazyJsonViewer, H as safeJsonValue } from "./ProxyViewerContainer-
|
|
3
|
-
import { s as safeGetOwnProperty } from "./router-
|
|
2
|
+
import { g as getLogFormatAdapter, f as formatTokens, c as cn, x as getStatusCategory, B as Badge, y as Collapsible, z as CollapsibleTrigger, E as CollapsibleContent, F as ScrollArea, G as LazyJsonViewer, H as safeJsonValue } from "./ProxyViewerContainer-Dcs2Mq8l.mjs";
|
|
3
|
+
import { s as safeGetOwnProperty } from "./router-DO0OntUK.mjs";
|
|
4
4
|
import "../_libs/jszip.mjs";
|
|
5
5
|
import "node:fs";
|
|
6
6
|
import "node:buffer";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { d as fetchJsonWithTimeout, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, B as Badge, q as TooltipContent, G as LazyJsonViewer } from "./ProxyViewerContainer-
|
|
3
|
-
import { U as StreamingChunkSchema$1 } from "./router-
|
|
2
|
+
import { d as fetchJsonWithTimeout, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, B as Badge, q as TooltipContent, G as LazyJsonViewer } from "./ProxyViewerContainer-Dcs2Mq8l.mjs";
|
|
3
|
+
import { U as StreamingChunkSchema$1 } from "./router-DO0OntUK.mjs";
|
|
4
4
|
import "../_libs/jszip.mjs";
|
|
5
5
|
import "node:fs";
|
|
6
6
|
import "node:buffer";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { P as ProxyViewerContainer } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { P as ProxyViewerContainer } from "./ProxyViewerContainer-Dcs2Mq8l.mjs";
|
|
3
|
+
import "./router-DO0OntUK.mjs";
|
|
4
4
|
import "../_libs/jszip.mjs";
|
|
5
5
|
import "node:fs";
|
|
6
6
|
import "node:buffer";
|
|
@@ -85,7 +85,7 @@ function getResponse() {
|
|
|
85
85
|
}
|
|
86
86
|
var HEADERS = { TSS_SHELL: "X-TSS_SHELL" };
|
|
87
87
|
async function getStartManifest(matchedRoutes) {
|
|
88
|
-
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-
|
|
88
|
+
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-DO5v3BHY.mjs");
|
|
89
89
|
const startManifest = tsrStartManifest();
|
|
90
90
|
let routes = startManifest.routes;
|
|
91
91
|
routes[rootRouteId];
|
|
@@ -1162,7 +1162,7 @@ var getBaseManifest = getProdBaseManifest;
|
|
|
1162
1162
|
var createEarlyHintsForRequest = createEarlyHintsCollector;
|
|
1163
1163
|
async function loadEntries() {
|
|
1164
1164
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
1165
|
-
import("./router-
|
|
1165
|
+
import("./router-DO0OntUK.mjs").then((n) => n.V),
|
|
1166
1166
|
import("./start-HYkvq4Ni.mjs"),
|
|
1167
1167
|
import("./empty-plugin-adapters-BFgPZ6_d.mjs")
|
|
1168
1168
|
]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { I as parseJsonText, c as cn, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { I as parseJsonText, c as cn, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-Dcs2Mq8l.mjs";
|
|
3
|
+
import "./router-DO0OntUK.mjs";
|
|
4
4
|
import "node:fs";
|
|
5
5
|
import "node:buffer";
|
|
6
6
|
import "node:path";
|
|
@@ -64,7 +64,7 @@ import "../_libs/immediate.mjs";
|
|
|
64
64
|
import "../_libs/setimmediate.mjs";
|
|
65
65
|
import "../_libs/pako.mjs";
|
|
66
66
|
const faviconSvg = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20role='img'%20aria-label='Agent%20Inspector'%3e%3cg%20fill='none'%20stroke='%23f59e0b'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20%3e%3cpath%20d='M5%2013%20C5%209%208%207%2012%207%20C16%207%2019%209%2019%2013%20C19%2016%2016%2018%2012%2018%20C8%2018%205%2016%205%2013%20Z'%20/%3e%3cpath%20d='M5%2011%20C3.5%209.5%201.5%2010%202%2012.5%20C2.5%2014%204%2013.5%205%2012.5'%20/%3e%3cpath%20d='M19%2011%20C20.5%209.5%2022.5%2010%2022%2012.5%20C21.5%2014%2020%2013.5%2019%2012.5'%20/%3e%3cline%20x1='10'%20y1='7'%20x2='9.5'%20y2='5'%20/%3e%3cline%20x1='14'%20y1='7'%20x2='14.5'%20y2='5'%20/%3e%3cline%20x1='6.5'%20y1='16'%20x2='4.5'%20y2='19.5'%20/%3e%3cline%20x1='9'%20y1='17.5'%20x2='8'%20y2='20.5'%20/%3e%3cline%20x1='15'%20y1='17.5'%20x2='16'%20y2='20.5'%20/%3e%3cline%20x1='17.5'%20y1='16'%20x2='19.5'%20y2='19.5'%20/%3e%3c/g%3e%3ccircle%20cx='9.5'%20cy='4.5'%20r='0.9'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='14.5'%20cy='4.5'%20r='0.9'%20fill='%23f59e0b'%20/%3e%3c/svg%3e";
|
|
67
|
-
const appCss = "/assets/index-
|
|
67
|
+
const appCss = "/assets/index-B_SIQ47i.css";
|
|
68
68
|
const CHUNK_LOAD_RELOAD_AT_KEY = "agent-inspector.chunkLoadReloadAt";
|
|
69
69
|
const CHUNK_LOAD_RELOAD_WINDOW_MS = 15e3;
|
|
70
70
|
const CHUNK_LOAD_FAILURE_PATTERNS = [
|
|
@@ -176,7 +176,7 @@ function RootDocument({ children }) {
|
|
|
176
176
|
] })
|
|
177
177
|
] });
|
|
178
178
|
}
|
|
179
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
179
|
+
const $$splitComponentImporter$1 = () => import("./index-dtMiNUa1.mjs");
|
|
180
180
|
const Route$L = createFileRoute("/")({
|
|
181
181
|
ssr: false,
|
|
182
182
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
@@ -220,7 +220,7 @@ function decodeSessionIdFromPath(encoded) {
|
|
|
220
220
|
function getSessionPath(sessionId) {
|
|
221
221
|
return `/session/${encodeSessionIdForPath(sessionId)}`;
|
|
222
222
|
}
|
|
223
|
-
const $$splitComponentImporter = () => import("../_sessionId-
|
|
223
|
+
const $$splitComponentImporter = () => import("../_sessionId-9FAmYZVf.mjs");
|
|
224
224
|
const Route$K = createFileRoute("/session/$sessionId")({
|
|
225
225
|
ssr: false,
|
|
226
226
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
@@ -9786,7 +9786,7 @@ const Route$E = createFileRoute("/api/models")({
|
|
|
9786
9786
|
}
|
|
9787
9787
|
});
|
|
9788
9788
|
const name = "@tonyclaw/agent-inspector";
|
|
9789
|
-
const version = "3.0.
|
|
9789
|
+
const version = "3.0.23";
|
|
9790
9790
|
const packageJson = {
|
|
9791
9791
|
name,
|
|
9792
9792
|
version
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tsrStartManifest = () => ({ routes: { __root__: { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", children: ["/", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/pi-agent", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/ecosystem/packages", "/api/ecosystem/tasks", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/ecosystem/recipes/$recipeId/run", "/api/knowledge/sessions/$sessionId/candidates"], preloads: ["/assets/index-
|
|
1
|
+
const tsrStartManifest = () => ({ routes: { __root__: { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", children: ["/", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/pi-agent", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/ecosystem/packages", "/api/ecosystem/tasks", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/ecosystem/recipes/$recipeId/run", "/api/knowledge/sessions/$sessionId/candidates"], preloads: ["/assets/index-CEgwWY3E.js"], scripts: [{ attrs: { type: "module", async: true, src: "/assets/index-CEgwWY3E.js" } }] }, "/": { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", children: void 0, preloads: ["/assets/index-ClKXooQd.js", "/assets/ProxyViewerContainer-BlCrBvdm.js"] }, "/session/$sessionId": { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/session/$sessionId.tsx", children: void 0, preloads: ["/assets/_sessionId-Cz-HW2Wf.js", "/assets/ProxyViewerContainer-BlCrBvdm.js"] } } });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|
package/.output/server/index.mjs
CHANGED
|
@@ -17,124 +17,124 @@ const headers = ((m) => function headersRouteRule(event) {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
const assets = {
|
|
20
|
-
"/assets/
|
|
20
|
+
"/assets/agent-inspector-58K1_MsC.ico": {
|
|
21
|
+
"type": "image/vnd.microsoft.icon",
|
|
22
|
+
"etag": '"38fa-ZD8kPABHYjPIkcH82FMY6iZM7fI"',
|
|
23
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
24
|
+
"size": 14586,
|
|
25
|
+
"path": "../public/assets/agent-inspector-58K1_MsC.ico"
|
|
26
|
+
},
|
|
27
|
+
"/assets/CompareDrawer-CFedvZHU.js": {
|
|
21
28
|
"type": "text/javascript; charset=utf-8",
|
|
22
|
-
"etag": '"4bc4-
|
|
23
|
-
"mtime": "2026-07-
|
|
29
|
+
"etag": '"4bc4-0uRFG7DXyM57fhQh6r5uURKwVMM"',
|
|
30
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
24
31
|
"size": 19396,
|
|
25
|
-
"path": "../public/assets/CompareDrawer-
|
|
32
|
+
"path": "../public/assets/CompareDrawer-CFedvZHU.js"
|
|
33
|
+
},
|
|
34
|
+
"/assets/json-viewer-QfU4qGdd.js": {
|
|
35
|
+
"type": "text/javascript; charset=utf-8",
|
|
36
|
+
"etag": '"1ae7-rm5qDCVJwdUziWLyOD1vTnUAf4o"',
|
|
37
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
38
|
+
"size": 6887,
|
|
39
|
+
"path": "../public/assets/json-viewer-QfU4qGdd.js"
|
|
40
|
+
},
|
|
41
|
+
"/assets/index-B_SIQ47i.css": {
|
|
42
|
+
"type": "text/css; charset=utf-8",
|
|
43
|
+
"etag": '"25d54-asgl2zlLx2BQ5Ck4FZzSTvzd6h8"',
|
|
44
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
45
|
+
"size": 154964,
|
|
46
|
+
"path": "../public/assets/index-B_SIQ47i.css"
|
|
26
47
|
},
|
|
27
48
|
"/assets/alibaba-TTwafVwX.svg": {
|
|
28
49
|
"type": "image/svg+xml",
|
|
29
50
|
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
30
|
-
"mtime": "2026-07-
|
|
51
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
31
52
|
"size": 5915,
|
|
32
53
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
33
54
|
},
|
|
34
|
-
"/assets/
|
|
35
|
-
"type": "
|
|
36
|
-
"etag": '"
|
|
37
|
-
"mtime": "2026-07-
|
|
38
|
-
"size":
|
|
39
|
-
"path": "../public/assets/
|
|
55
|
+
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
56
|
+
"type": "image/jpeg",
|
|
57
|
+
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
58
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
59
|
+
"size": 6918,
|
|
60
|
+
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
40
61
|
},
|
|
41
|
-
"/assets/
|
|
62
|
+
"/assets/index-ClKXooQd.js": {
|
|
42
63
|
"type": "text/javascript; charset=utf-8",
|
|
43
|
-
"etag": '"
|
|
44
|
-
"mtime": "2026-07-
|
|
45
|
-
"size":
|
|
46
|
-
"path": "../public/assets/
|
|
47
|
-
},
|
|
48
|
-
"/assets/agent-inspector-58K1_MsC.ico": {
|
|
49
|
-
"type": "image/vnd.microsoft.icon",
|
|
50
|
-
"etag": '"38fa-ZD8kPABHYjPIkcH82FMY6iZM7fI"',
|
|
51
|
-
"mtime": "2026-07-09T07:33:08.149Z",
|
|
52
|
-
"size": 14586,
|
|
53
|
-
"path": "../public/assets/agent-inspector-58K1_MsC.ico"
|
|
54
|
-
},
|
|
55
|
-
"/assets/index-D2iiZaNM.css": {
|
|
56
|
-
"type": "text/css; charset=utf-8",
|
|
57
|
-
"etag": '"25cbf-gXyEinEYizYtkUYphvKg/JJAlXM"',
|
|
58
|
-
"mtime": "2026-07-09T07:33:08.149Z",
|
|
59
|
-
"size": 154815,
|
|
60
|
-
"path": "../public/assets/index-D2iiZaNM.css"
|
|
64
|
+
"etag": '"265-q1w0MASWxGEVkFrV/yvofPF1jk4"',
|
|
65
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
66
|
+
"size": 613,
|
|
67
|
+
"path": "../public/assets/index-ClKXooQd.js"
|
|
61
68
|
},
|
|
62
|
-
"/assets/index-
|
|
69
|
+
"/assets/index-CXYBU0j8.js": {
|
|
63
70
|
"type": "text/javascript; charset=utf-8",
|
|
64
|
-
"etag": '"1cd2d-
|
|
65
|
-
"mtime": "2026-07-
|
|
71
|
+
"etag": '"1cd2d-682q/pzvufhk92gQtQ+ah6WfCp8"',
|
|
72
|
+
"mtime": "2026-07-10T02:23:59.068Z",
|
|
66
73
|
"size": 118061,
|
|
67
|
-
"path": "../public/assets/index-
|
|
74
|
+
"path": "../public/assets/index-CXYBU0j8.js"
|
|
68
75
|
},
|
|
69
|
-
"/assets/
|
|
70
|
-
"type": "
|
|
71
|
-
"etag": '"
|
|
72
|
-
"mtime": "2026-07-
|
|
73
|
-
"size":
|
|
74
|
-
"path": "../public/assets/
|
|
76
|
+
"/assets/ReplayDialog-X-fRSKAu.js": {
|
|
77
|
+
"type": "text/javascript; charset=utf-8",
|
|
78
|
+
"etag": '"3348-TWp7gwHOM35elmUN9nnWrTowB+M"',
|
|
79
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
80
|
+
"size": 13128,
|
|
81
|
+
"path": "../public/assets/ReplayDialog-X-fRSKAu.js"
|
|
75
82
|
},
|
|
76
|
-
"/assets/RequestAnatomy-
|
|
83
|
+
"/assets/RequestAnatomy-S8qB5nVg.js": {
|
|
77
84
|
"type": "text/javascript; charset=utf-8",
|
|
78
|
-
"etag": '"43f3-
|
|
79
|
-
"mtime": "2026-07-
|
|
85
|
+
"etag": '"43f3-xXcWByTKIW8m/hkxBdCKfcVQz8I"',
|
|
86
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
80
87
|
"size": 17395,
|
|
81
|
-
"path": "../public/assets/RequestAnatomy-
|
|
88
|
+
"path": "../public/assets/RequestAnatomy-S8qB5nVg.js"
|
|
89
|
+
},
|
|
90
|
+
"/assets/index-CEgwWY3E.js": {
|
|
91
|
+
"type": "text/javascript; charset=utf-8",
|
|
92
|
+
"etag": '"5231f-BBAwxlxt2sMPQLHPwLTX62JwHW0"',
|
|
93
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
94
|
+
"size": 336671,
|
|
95
|
+
"path": "../public/assets/index-CEgwWY3E.js"
|
|
82
96
|
},
|
|
83
97
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
84
98
|
"type": "image/svg+xml",
|
|
85
99
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
86
|
-
"mtime": "2026-07-
|
|
100
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
87
101
|
"size": 11256,
|
|
88
102
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
89
103
|
},
|
|
90
|
-
"/assets/_sessionId-
|
|
104
|
+
"/assets/_sessionId-Cz-HW2Wf.js": {
|
|
91
105
|
"type": "text/javascript; charset=utf-8",
|
|
92
|
-
"etag": '"36d-
|
|
93
|
-
"mtime": "2026-07-
|
|
106
|
+
"etag": '"36d-iuvRB/342+DMxAamB22m6wRukjc"',
|
|
107
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
94
108
|
"size": 877,
|
|
95
|
-
"path": "../public/assets/_sessionId-
|
|
96
|
-
},
|
|
97
|
-
"/assets/StreamingChunkSequence-DvMcBgID.js": {
|
|
98
|
-
"type": "text/javascript; charset=utf-8",
|
|
99
|
-
"etag": '"e96-6BaPiEMr6EDDv+mO5wBLCpH1qYQ"',
|
|
100
|
-
"mtime": "2026-07-09T07:33:08.150Z",
|
|
101
|
-
"size": 3734,
|
|
102
|
-
"path": "../public/assets/StreamingChunkSequence-DvMcBgID.js"
|
|
109
|
+
"path": "../public/assets/_sessionId-Cz-HW2Wf.js"
|
|
103
110
|
},
|
|
104
|
-
"/assets/
|
|
111
|
+
"/assets/ResponseView-_rcOWSwJ.js": {
|
|
105
112
|
"type": "text/javascript; charset=utf-8",
|
|
106
|
-
"etag": '"
|
|
107
|
-
"mtime": "2026-07-
|
|
108
|
-
"size": 13128,
|
|
109
|
-
"path": "../public/assets/ReplayDialog-CqUvVWFk.js"
|
|
110
|
-
},
|
|
111
|
-
"/assets/ResponseView-Ce2JAKBf.js": {
|
|
112
|
-
"type": "text/javascript; charset=utf-8",
|
|
113
|
-
"etag": '"47fe-SBZtSFnLFU3zdUC9GzC5G68XDpI"',
|
|
114
|
-
"mtime": "2026-07-09T07:33:08.150Z",
|
|
113
|
+
"etag": '"47fe-E2O3S5UHMh9pNqFnLVvge02PFuc"',
|
|
114
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
115
115
|
"size": 18430,
|
|
116
|
-
"path": "../public/assets/ResponseView-
|
|
116
|
+
"path": "../public/assets/ResponseView-_rcOWSwJ.js"
|
|
117
117
|
},
|
|
118
|
-
"/assets/
|
|
118
|
+
"/assets/StreamingChunkSequence-Bc15AVpN.js": {
|
|
119
119
|
"type": "text/javascript; charset=utf-8",
|
|
120
|
-
"etag": '"
|
|
121
|
-
"mtime": "2026-07-
|
|
122
|
-
"size":
|
|
123
|
-
"path": "../public/assets/
|
|
120
|
+
"etag": '"e96-d+RCmS23VeqmkU3hADPu2YMDCrQ"',
|
|
121
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
122
|
+
"size": 3734,
|
|
123
|
+
"path": "../public/assets/StreamingChunkSequence-Bc15AVpN.js"
|
|
124
124
|
},
|
|
125
125
|
"/assets/qwen-CONDcHqt.png": {
|
|
126
126
|
"type": "image/png",
|
|
127
127
|
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
128
|
-
"mtime": "2026-07-
|
|
128
|
+
"mtime": "2026-07-10T02:23:59.067Z",
|
|
129
129
|
"size": 357059,
|
|
130
130
|
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
131
131
|
},
|
|
132
|
-
"/assets/ProxyViewerContainer-
|
|
132
|
+
"/assets/ProxyViewerContainer-BlCrBvdm.js": {
|
|
133
133
|
"type": "text/javascript; charset=utf-8",
|
|
134
|
-
"etag": '"
|
|
135
|
-
"mtime": "2026-07-
|
|
136
|
-
"size":
|
|
137
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
134
|
+
"etag": '"bd60a-dX5hHNyTs/ZzARE4nFb0gj1tzE0"',
|
|
135
|
+
"mtime": "2026-07-10T02:23:59.068Z",
|
|
136
|
+
"size": 775690,
|
|
137
|
+
"path": "../public/assets/ProxyViewerContainer-BlCrBvdm.js"
|
|
138
138
|
}
|
|
139
139
|
};
|
|
140
140
|
function readAsset(id) {
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tonyclaw/agent-inspector",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agent observability and knowledge capture layer for AI coding tools.",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=18.18.0"
|
|
9
|
+
},
|
|
7
10
|
"author": "TonyClaw",
|
|
8
11
|
"repository": {
|
|
9
12
|
"type": "git",
|
|
@@ -2328,7 +2328,7 @@ export function ProxyViewer({
|
|
|
2328
2328
|
: selectedSession;
|
|
2329
2329
|
|
|
2330
2330
|
return (
|
|
2331
|
-
<div className="bg-background min-h-screen w-full text-foreground">
|
|
2331
|
+
<div className="bg-background min-h-screen w-full text-foreground lg:h-screen lg:flex lg:flex-col lg:overflow-hidden">
|
|
2332
2332
|
<button
|
|
2333
2333
|
type="button"
|
|
2334
2334
|
onClick={toggleDetailsPanelCollapsed}
|
|
@@ -2349,14 +2349,14 @@ export function ProxyViewer({
|
|
|
2349
2349
|
{detailsPanelCollapsed && <FloatingInspectorLogo />}
|
|
2350
2350
|
<div
|
|
2351
2351
|
className={cn(
|
|
2352
|
-
"grid min-
|
|
2352
|
+
"grid w-full min-w-0 grid-cols-1 lg:min-h-0 lg:flex-1 lg:overflow-hidden",
|
|
2353
2353
|
detailsPanelCollapsed
|
|
2354
2354
|
? "lg:grid-cols-[minmax(0,1fr)]"
|
|
2355
2355
|
: "lg:grid-cols-[minmax(0,1fr)_340px] xl:grid-cols-[minmax(0,1fr)_360px]",
|
|
2356
2356
|
)}
|
|
2357
2357
|
>
|
|
2358
2358
|
{!detailsPanelCollapsed && (
|
|
2359
|
-
<aside className="bg-background/95 order-1 border-b border-white/[0.045] lg:
|
|
2359
|
+
<aside className="bg-background/95 order-1 border-b border-white/[0.045] lg:order-2 lg:h-full lg:overflow-y-auto lg:border-b-0 lg:border-l lg:border-white/[0.055] inspector-scrollbar">
|
|
2360
2360
|
<div className="space-y-4 p-4">
|
|
2361
2361
|
<BrandHeader
|
|
2362
2362
|
compact={true}
|
|
@@ -2485,7 +2485,7 @@ export function ProxyViewer({
|
|
|
2485
2485
|
</aside>
|
|
2486
2486
|
)}
|
|
2487
2487
|
|
|
2488
|
-
<main className="order-2 min-w-0 lg:order-1">
|
|
2488
|
+
<main className="order-2 min-w-0 lg:order-1 lg:h-full lg:overflow-y-auto inspector-scrollbar">
|
|
2489
2489
|
<div className="bg-background/95 shadow-[0_12px_36px_rgba(0,0,0,0.18),inset_0_-1px_0_rgba(255,255,255,0.045)] sticky top-0 z-30 px-4 py-3 lg:px-5">
|
|
2490
2490
|
<div className="flex flex-wrap items-center gap-2">
|
|
2491
2491
|
<div className="min-w-[180px] flex-1">
|
|
@@ -289,7 +289,6 @@ function ProviderCapabilitySummary({ provider }: { provider: ProviderConfig }):
|
|
|
289
289
|
|
|
290
290
|
return (
|
|
291
291
|
<div className="flex min-w-0 flex-wrap items-center gap-1.5 text-xs text-muted-foreground">
|
|
292
|
-
<span>Capabilities</span>
|
|
293
292
|
{hasAnthropic && <CapabilityChip label="Anthropic" enabled={true} />}
|
|
294
293
|
{hasChat && <CapabilityChip label="OpenAI Chat" enabled={true} />}
|
|
295
294
|
{hasResponses && <CapabilityChip label="OpenAI Responses" enabled={true} />}
|
|
@@ -448,14 +447,6 @@ function ModelChip({ provider, model }: { provider: ProviderConfig; model: strin
|
|
|
448
447
|
);
|
|
449
448
|
}
|
|
450
449
|
|
|
451
|
-
function modelResultsLabel(testResults: TestResults | undefined): string | null {
|
|
452
|
-
const models = testResults?.models;
|
|
453
|
-
if (models === undefined) return null;
|
|
454
|
-
const count = Object.keys(models).length;
|
|
455
|
-
if (count === 0) return null;
|
|
456
|
-
return `${count} model${count === 1 ? "" : "s"} tested`;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
450
|
function getErrorIcon(type: ErrorType): JSX.Element {
|
|
460
451
|
const iconProps = { className: "size-3", strokeWidth: 2 };
|
|
461
452
|
switch (type) {
|
|
@@ -662,7 +653,6 @@ export function ProviderCard({
|
|
|
662
653
|
provider.modelMetadataUrl !== undefined && provider.modelMetadataUrl.trim() !== "";
|
|
663
654
|
const metadataImportLabel = canRefreshMetadata ? "Refresh" : "Import defaults";
|
|
664
655
|
const isTestingValue = isTesting ?? false;
|
|
665
|
-
const testedModelsLabel = modelResultsLabel(testResults);
|
|
666
656
|
const providerSourceBadge =
|
|
667
657
|
provider.source === "company" ? (
|
|
668
658
|
<span className="shrink-0 rounded border border-cyan-300/20 bg-cyan-300/[0.08] px-1.5 py-0.5 text-xs text-cyan-100">
|
|
@@ -711,17 +701,12 @@ export function ProviderCard({
|
|
|
711
701
|
|
|
712
702
|
<div className="flex flex-col gap-2 text-xs text-muted-foreground sm:flex-row sm:items-center sm:justify-between">
|
|
713
703
|
<ProviderCapabilitySummary provider={provider} />
|
|
714
|
-
|
|
715
|
-
<span
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
<Clock className="size-3" />
|
|
721
|
-
{formatTimeAgo(testResults.testedAt)}
|
|
722
|
-
</span>
|
|
723
|
-
)}
|
|
724
|
-
</div>
|
|
704
|
+
{testResults?.testedAt !== undefined && (
|
|
705
|
+
<span className="inline-flex items-center gap-1">
|
|
706
|
+
<Clock className="size-3" />
|
|
707
|
+
{formatTimeAgo(testResults.testedAt)}
|
|
708
|
+
</span>
|
|
709
|
+
)}
|
|
725
710
|
</div>
|
|
726
711
|
|
|
727
712
|
{!hasContextMetadata && (
|
|
@@ -553,53 +553,49 @@ export function ProvidersPanel({
|
|
|
553
553
|
|
|
554
554
|
return (
|
|
555
555
|
<div className="space-y-4">
|
|
556
|
-
<div className="sticky top-0 z-10 flex items-center justify-
|
|
557
|
-
<
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
Add Provider
|
|
596
|
-
</Button>
|
|
597
|
-
</div>
|
|
556
|
+
<div className="sticky top-0 z-10 flex items-center justify-end gap-2 rounded-[8px] bg-background/95 px-1 py-1 backdrop-blur">
|
|
557
|
+
<Button
|
|
558
|
+
variant="outline"
|
|
559
|
+
size="sm"
|
|
560
|
+
onClick={() => handleExport(false)}
|
|
561
|
+
className="gap-1 hover:bg-muted"
|
|
562
|
+
>
|
|
563
|
+
<Download className="size-3" />
|
|
564
|
+
Export
|
|
565
|
+
</Button>
|
|
566
|
+
<Button
|
|
567
|
+
variant="outline"
|
|
568
|
+
size="sm"
|
|
569
|
+
onClick={handleImportClick}
|
|
570
|
+
className="gap-1 hover:bg-muted"
|
|
571
|
+
>
|
|
572
|
+
<Upload className="size-3" />
|
|
573
|
+
Import
|
|
574
|
+
</Button>
|
|
575
|
+
<input
|
|
576
|
+
type="file"
|
|
577
|
+
ref={fileInputRef}
|
|
578
|
+
accept=".json"
|
|
579
|
+
onChange={handleFileChange}
|
|
580
|
+
style={{ display: "none" }}
|
|
581
|
+
/>
|
|
582
|
+
<Button
|
|
583
|
+
variant="outline"
|
|
584
|
+
size="sm"
|
|
585
|
+
onClick={() => setShowImportWizard(true)}
|
|
586
|
+
className="gap-1"
|
|
587
|
+
>
|
|
588
|
+
<Scan className="size-3" />
|
|
589
|
+
Scan
|
|
590
|
+
</Button>
|
|
591
|
+
<Button onClick={() => setShowForm(true)} size="sm" className="gap-1">
|
|
592
|
+
<Plus className="size-4" />
|
|
593
|
+
Add Provider
|
|
594
|
+
</Button>
|
|
598
595
|
</div>
|
|
599
596
|
|
|
600
597
|
{configPath !== null && (
|
|
601
598
|
<div className="flex items-center gap-2 rounded-[8px] bg-muted/15 px-3 py-2 text-xs text-muted-foreground">
|
|
602
|
-
<span className="shrink-0">Config:</span>
|
|
603
599
|
<span className="font-mono truncate" title={configPath}>
|
|
604
600
|
{configPath}
|
|
605
601
|
</span>
|