@tonyclaw/agent-inspector 2.1.0 → 2.1.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/nitro.json +1 -1
- package/.output/public/assets/{CompareDrawer-VDpcSNGM.js → CompareDrawer-BULPis8W.js} +1 -1
- package/.output/public/assets/ProxyViewerContainer-YxtP1xBj.js +117 -0
- package/.output/public/assets/{ReplayDialog-CoDgTzHR.js → ReplayDialog-3ln-D7OS.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-t3plgkPE.js → RequestAnatomy-D8d1xV8O.js} +1 -1
- package/.output/public/assets/{ResponseView-BYuKiNeG.js → ResponseView-CJijikn-.js} +1 -1
- package/.output/public/assets/{StreamingChunkSequence-DOdU38Is.js → StreamingChunkSequence-C-RCuOTp.js} +1 -1
- package/.output/public/assets/_sessionId-DGehOTux.js +1 -0
- package/.output/public/assets/index-B-MZ9lQM.css +1 -0
- package/.output/public/assets/index-DhsjXb_K.js +1 -0
- package/.output/public/assets/{main-DmzLt6ti.js → main-D3pBFhb_.js} +2 -2
- package/.output/server/{_sessionId-CCN1UoEf.mjs → _sessionId-BFMVfrw3.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-DkSY3vxP.mjs → CompareDrawer-CwNPZgc_.mjs} +2 -2
- package/.output/server/_ssr/{ProxyViewerContainer-OTh1V_Kh.mjs → ProxyViewerContainer-HpLc7F_J.mjs} +270 -240
- package/.output/server/_ssr/{ReplayDialog-DhI6yxrR.mjs → ReplayDialog-DBaFhSv6.mjs} +3 -3
- package/.output/server/_ssr/{RequestAnatomy-DN1SJVVL.mjs → RequestAnatomy-D0E0e2DT.mjs} +2 -2
- package/.output/server/_ssr/{ResponseView-DW-kpJL5.mjs → ResponseView-D2FFSRQ8.mjs} +2 -2
- package/.output/server/_ssr/{StreamingChunkSequence-BAE57Fae.mjs → StreamingChunkSequence-Cdu36-rL.mjs} +2 -2
- package/.output/server/_ssr/{index-C9ryJEna.mjs → index-CtBfmJYM.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{router-DIIJGyML.mjs → router-Dzx1sbAQ.mjs} +4 -4
- package/.output/server/{_tanstack-start-manifest_v-C_v9-E5d.mjs → _tanstack-start-manifest_v-VrssoWVE.mjs} +1 -1
- package/.output/server/index.mjs +68 -68
- package/package.json +1 -1
- package/src/components/OnboardingBanner.tsx +6 -22
- package/src/components/ProxyViewer.tsx +2 -36
- package/src/components/ProxyViewerContainer.tsx +1 -2
- package/src/components/providers/SettingsDialog.tsx +0 -13
- package/src/components/proxy-viewer/LogEntry.tsx +198 -89
- package/src/components/proxy-viewer/LogEntryHeader.tsx +11 -7
- package/src/components/proxy-viewer/RequestToolsPanel.tsx +8 -8
- package/src/components/ui/json-viewer.tsx +6 -0
- package/styles/globals.css +53 -8
- package/.output/public/assets/ProxyViewerContainer-fsXSjqtm.js +0 -117
- package/.output/public/assets/_sessionId-ew5QlyZ2.js +0 -1
- package/.output/public/assets/index-DFICWD6o.js +0 -1
- package/.output/public/assets/index-zLLCkAnF.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 Dialog, d as DialogContent, e as DialogHeader, h as DialogTitle, T as Tabs, i as TabsList, j as TabsTrigger, k as TabsContent, l as Button, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, q as dispatchLogFocusRequest } from "./ProxyViewerContainer-
|
|
3
|
-
import { ResponseView } from "./ResponseView-
|
|
4
|
-
import { C as CapturedLogSchema } from "./router-
|
|
2
|
+
import { u as useProviders, D as Dialog, d as DialogContent, e as DialogHeader, h as DialogTitle, T as Tabs, i as TabsList, j as TabsTrigger, k as TabsContent, l as Button, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, q as dispatchLogFocusRequest } from "./ProxyViewerContainer-HpLc7F_J.mjs";
|
|
3
|
+
import { ResponseView } from "./ResponseView-D2FFSRQ8.mjs";
|
|
4
|
+
import { C as CapturedLogSchema } from "./router-Dzx1sbAQ.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
7
7
|
import { a0 as RotateCcw, ak as Braces, al as Minimize2 } from "../_libs/lucide-react.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { u as useProviders, s as analyzeContextIntelligence, f as formatTokens, m as TooltipProvider, c as cn, n as Tooltip, o as TooltipTrigger, p as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, A as ANATOMY_ROLE_LABELS, t as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { u as useProviders, s as analyzeContextIntelligence, f as formatTokens, m as TooltipProvider, c as cn, n as Tooltip, o as TooltipTrigger, p as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, A as ANATOMY_ROLE_LABELS, t as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-HpLc7F_J.mjs";
|
|
3
|
+
import "./router-Dzx1sbAQ.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { I as Info, C as ChevronDown, f as ChevronRight } from "../_libs/lucide-react.mjs";
|
|
@@ -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, v as getStatusCategory, B as Badge, w as Collapsible, x as CollapsibleTrigger, y as CollapsibleContent, z as ScrollArea, E as JsonViewer, F as safeJsonValue } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { g as getLogFormatAdapter, f as formatTokens, c as cn, v as getStatusCategory, B as Badge, w as Collapsible, x as CollapsibleTrigger, y as CollapsibleContent, z as ScrollArea, E as JsonViewer, F as safeJsonValue } from "./ProxyViewerContainer-HpLc7F_J.mjs";
|
|
3
|
+
import "./router-Dzx1sbAQ.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { Z as Zap, r as TriangleAlert, am as CircleStop, B as Brain, C as ChevronDown, f as ChevronRight, m as Terminal } from "../_libs/lucide-react.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { m as TooltipProvider, n as Tooltip, o as TooltipTrigger, B as Badge, p as TooltipContent, E as JsonViewer } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { m as TooltipProvider, n as Tooltip, o as TooltipTrigger, B as Badge, p as TooltipContent, E as JsonViewer } from "./ProxyViewerContainer-HpLc7F_J.mjs";
|
|
3
|
+
import "./router-Dzx1sbAQ.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { C as ChevronDown, f as ChevronRight, i as LoaderCircle } from "../_libs/lucide-react.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { P as ProxyViewerContainer } from "./ProxyViewerContainer-
|
|
1
|
+
import { P as ProxyViewerContainer } from "./ProxyViewerContainer-HpLc7F_J.mjs";
|
|
2
2
|
import "../_libs/react.mjs";
|
|
3
|
-
import "./router-
|
|
3
|
+
import "./router-Dzx1sbAQ.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import "../_libs/swr.mjs";
|
|
@@ -198,7 +198,7 @@ function getResponse() {
|
|
|
198
198
|
return event.res;
|
|
199
199
|
}
|
|
200
200
|
async function getStartManifest(matchedRoutes) {
|
|
201
|
-
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-
|
|
201
|
+
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-VrssoWVE.mjs");
|
|
202
202
|
const startManifest = tsrStartManifest();
|
|
203
203
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
|
|
204
204
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -776,7 +776,7 @@ let entriesPromise;
|
|
|
776
776
|
let baseManifestPromise;
|
|
777
777
|
let cachedFinalManifestPromise;
|
|
778
778
|
async function loadEntries() {
|
|
779
|
-
const routerEntry = await import("./router-
|
|
779
|
+
const routerEntry = await import("./router-Dzx1sbAQ.mjs").then((n) => n.w);
|
|
780
780
|
const startEntry = await import("./start-HYkvq4Ni.mjs");
|
|
781
781
|
return { startEntry, routerEntry };
|
|
782
782
|
}
|
|
@@ -65,7 +65,7 @@ import "../_libs/immediate.mjs";
|
|
|
65
65
|
import "../_libs/setimmediate.mjs";
|
|
66
66
|
import "../_libs/pako.mjs";
|
|
67
67
|
const faviconSvg = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%20role='img'%20aria-label='Agent%20Inspector'%3e%3crect%20width='64'%20height='64'%20rx='14'%20fill='%23111827'%20/%3e%3cg%20fill='none'%20stroke='%23f59e0b'%20stroke-width='4.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20fill='%23f59e0b'%20d='M15%2036c0-11%207-18%2017-18s17%207%2017%2018c0%208-7%2013-17%2013s-17-5-17-13z'%20/%3e%3cpath%20d='M16%2031c-6-5-12-3-12%204%200%205%206%206%2011%202'%20/%3e%3cpath%20d='M48%2031c6-5%2012-3%2012%204%200%205-6%206-11%202'%20/%3e%3cpath%20d='M27%2019l-3-7'%20/%3e%3cpath%20d='M37%2019l3-7'%20/%3e%3cpath%20d='M19%2045l-6%209'%20/%3e%3cpath%20d='M27%2048l-3%209'%20/%3e%3cpath%20d='M37%2048l3%209'%20/%3e%3cpath%20d='M45%2045l6%209'%20/%3e%3c/g%3e%3cpath%20d='M14%2047l9-8%208%209c-5%203.5-12%203-17-1z'%20fill='%232f6b3f'%20opacity='.95'%20/%3e%3cpath%20d='M18%2046l5-5%205%206c-3%201.6-7%201.4-10-1z'%20fill='%236fb36f'%20opacity='.95'%20/%3e%3cpath%20d='M23%2041v10'%20fill='none'%20stroke='%23d6b45f'%20stroke-width='1.6'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='31'%20cy='48'%20r='1.8'%20fill='%23c2412d'%20/%3e%3cpath%20d='M24%2044l13-11%2014%2013c-8%205.8-18%205.3-27-2z'%20fill='%232f6b3f'%20opacity='.97'%20/%3e%3cpath%20d='M30%2043l7-7%209%209c-5%202.7-11%202.5-16-2z'%20fill='%236fb36f'%20opacity='.95'%20/%3e%3cpath%20d='M37%2036v14'%20fill='none'%20stroke='%23d6b45f'%20stroke-width='2'%20stroke-linecap='round'%20/%3e%3cpath%20d='M30%2043c5-2%2011-1.5%2016%202'%20fill='none'%20stroke='%239fca78'%20stroke-width='1.8'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='51'%20cy='46'%20r='2'%20fill='%23c2412d'%20/%3e%3cpath%20d='M40%2050l8-8%207%208c-4.2%203.2-10%203-15%200z'%20fill='%232f6b3f'%20opacity='.95'%20/%3e%3cpath%20d='M43%2049l5-5%204.5%205.5c-3%201.5-6%201.2-9.5-.5z'%20fill='%236fb36f'%20opacity='.95'%20/%3e%3cpath%20d='M48%2044v9'%20fill='none'%20stroke='%23d6b45f'%20stroke-width='1.5'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='55'%20cy='50'%20r='1.7'%20fill='%23c2412d'%20/%3e%3ccircle%20cx='24'%20cy='11'%20r='3.2'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='40'%20cy='11'%20r='3.2'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='25'%20cy='34'%20r='2.1'%20fill='%23111827'%20/%3e%3ccircle%20cx='39'%20cy='34'%20r='2.1'%20fill='%23111827'%20/%3e%3c/svg%3e";
|
|
68
|
-
const appCss = "/assets/index-
|
|
68
|
+
const appCss = "/assets/index-B-MZ9lQM.css";
|
|
69
69
|
const Route$z = createRootRoute({
|
|
70
70
|
head: () => ({
|
|
71
71
|
meta: [
|
|
@@ -108,7 +108,7 @@ function RootDocument({ children }) {
|
|
|
108
108
|
] })
|
|
109
109
|
] });
|
|
110
110
|
}
|
|
111
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
111
|
+
const $$splitComponentImporter$1 = () => import("./index-CtBfmJYM.mjs");
|
|
112
112
|
const Route$y = createFileRoute("/")({
|
|
113
113
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
114
114
|
});
|
|
@@ -151,7 +151,7 @@ function decodeSessionIdFromPath(encoded) {
|
|
|
151
151
|
function getSessionPath(sessionId) {
|
|
152
152
|
return `/session/${encodeSessionIdForPath(sessionId)}`;
|
|
153
153
|
}
|
|
154
|
-
const $$splitComponentImporter = () => import("../_sessionId-
|
|
154
|
+
const $$splitComponentImporter = () => import("../_sessionId-BFMVfrw3.mjs");
|
|
155
155
|
const Route$x = createFileRoute("/session/$sessionId")({
|
|
156
156
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
157
157
|
parseParams: (params) => ({
|
|
@@ -7338,7 +7338,7 @@ const Route$s = createFileRoute("/api/models")({
|
|
|
7338
7338
|
}
|
|
7339
7339
|
}
|
|
7340
7340
|
});
|
|
7341
|
-
const version = "2.1.
|
|
7341
|
+
const version = "2.1.2";
|
|
7342
7342
|
const packageJson = {
|
|
7343
7343
|
version
|
|
7344
7344
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-
|
|
1
|
+
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-D3pBFhb_.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-DhsjXb_K.js", "/assets/ProxyViewerContainer-YxtP1xBj.js"] }, "/api/config": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.ts", "children": ["/api/config/paths"] }, "/api/groups": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.ts", "children": ["/api/groups/$groupId"] }, "/api/health": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/health.ts" }, "/api/logs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.ts", "children": ["/api/logs/$id", "/api/logs/stream"] }, "/api/mcp": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/mcp.ts" }, "/api/models": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/models.ts" }, "/api/providers": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.ts", "children": ["/api/providers/$providerId", "/api/providers/export", "/api/providers/import", "/api/providers/scan"] }, "/api/runs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.ts", "children": ["/api/runs/$runId"] }, "/api/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/sessions.ts" }, "/proxy/$": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/proxy/$.ts" }, "/session/$sessionId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/session/$sessionId.tsx", "assets": [], "preloads": ["/assets/_sessionId-DGehOTux.js", "/assets/ProxyViewerContainer-YxtP1xBj.js"] }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.paths.ts" }, "/api/groups/$groupId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.ts", "children": ["/api/groups/$groupId/evidence", "/api/groups/$groupId/sessions"] }, "/api/knowledge/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.ts", "children": ["/api/knowledge/candidates/$candidateId"] }, "/api/knowledge/project-context": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.project-context.ts" }, "/api/knowledge/search": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.search.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/model-metadata", "/api/providers/$providerId/test"] }, "/api/providers/export": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.export.ts" }, "/api/providers/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.import.ts" }, "/api/providers/scan": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.scan.ts" }, "/api/runs/$runId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.ts", "children": ["/api/runs/$runId/evidence"] }, "/api/groups/$groupId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.evidence.ts" }, "/api/groups/$groupId/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.sessions.ts" }, "/api/knowledge/candidates/$candidateId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.ts", "children": ["/api/knowledge/candidates/$candidateId/promote"] }, "/api/logs/$id/chunks": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.chunks.ts" }, "/api/logs/$id/replay": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.replay.ts" }, "/api/providers/$providerId/model-metadata": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.model-metadata.ts" }, "/api/providers/$providerId/test": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/api/runs/$runId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.evidence.ts" }, "/api/knowledge/candidates/$candidateId/promote": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.promote.ts" }, "/api/knowledge/sessions/$sessionId/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.sessions.$sessionId.candidates.ts" }, "/api/providers/$providerId/test/log": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.log.ts" } }, "clientEntry": "/assets/main-D3pBFhb_.js" });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|
package/.output/server/index.mjs
CHANGED
|
@@ -35,103 +35,103 @@ const headers = ((m) => function headersRouteRule(event) {
|
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
const assets = {
|
|
38
|
-
"/assets/
|
|
39
|
-
"type": "image/svg+xml",
|
|
40
|
-
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
41
|
-
"mtime": "2026-07-03T03:56:33.507Z",
|
|
42
|
-
"size": 5915,
|
|
43
|
-
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
|
-
},
|
|
45
|
-
"/assets/index-DFICWD6o.js": {
|
|
38
|
+
"/assets/CompareDrawer-BULPis8W.js": {
|
|
46
39
|
"type": "text/javascript; charset=utf-8",
|
|
47
|
-
"etag": '"
|
|
48
|
-
"mtime": "2026-07-
|
|
49
|
-
"size": 116,
|
|
50
|
-
"path": "../public/assets/index-DFICWD6o.js"
|
|
51
|
-
},
|
|
52
|
-
"/assets/CompareDrawer-VDpcSNGM.js": {
|
|
53
|
-
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"49e8-ajy70W1rR+/Q1eJQ+qNs39tBVP4"',
|
|
55
|
-
"mtime": "2026-07-03T03:56:33.507Z",
|
|
40
|
+
"etag": '"49e8-VRPo0JDjTY4i12CzP7TKFUpWrhU"',
|
|
41
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
56
42
|
"size": 18920,
|
|
57
|
-
"path": "../public/assets/CompareDrawer-
|
|
43
|
+
"path": "../public/assets/CompareDrawer-BULPis8W.js"
|
|
58
44
|
},
|
|
59
|
-
"/assets/index-
|
|
45
|
+
"/assets/index-B-MZ9lQM.css": {
|
|
60
46
|
"type": "text/css; charset=utf-8",
|
|
61
|
-
"etag": '"
|
|
62
|
-
"mtime": "2026-07-
|
|
63
|
-
"size":
|
|
64
|
-
"path": "../public/assets/index-
|
|
47
|
+
"etag": '"1db72-92tzHaZ/ZR+6wYtaJ3rTnS8Fbd0"',
|
|
48
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
49
|
+
"size": 121714,
|
|
50
|
+
"path": "../public/assets/index-B-MZ9lQM.css"
|
|
65
51
|
},
|
|
66
|
-
"/assets/
|
|
67
|
-
"type": "image/
|
|
68
|
-
"etag": '"
|
|
69
|
-
"mtime": "2026-07-
|
|
70
|
-
"size":
|
|
71
|
-
"path": "../public/assets/
|
|
52
|
+
"/assets/alibaba-TTwafVwX.svg": {
|
|
53
|
+
"type": "image/svg+xml",
|
|
54
|
+
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
55
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
56
|
+
"size": 5915,
|
|
57
|
+
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
72
58
|
},
|
|
73
59
|
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
74
60
|
"type": "image/jpeg",
|
|
75
61
|
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
76
|
-
"mtime": "2026-07-
|
|
62
|
+
"mtime": "2026-07-03T04:36:34.361Z",
|
|
77
63
|
"size": 6918,
|
|
78
64
|
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
79
65
|
},
|
|
80
|
-
"/assets/
|
|
81
|
-
"type": "text/javascript; charset=utf-8",
|
|
82
|
-
"etag": '"318c-0twqpyojedLjGws3LUKh6O8+3nA"',
|
|
83
|
-
"mtime": "2026-07-03T03:56:33.508Z",
|
|
84
|
-
"size": 12684,
|
|
85
|
-
"path": "../public/assets/ReplayDialog-CoDgTzHR.js"
|
|
86
|
-
},
|
|
87
|
-
"/assets/ResponseView-BYuKiNeG.js": {
|
|
66
|
+
"/assets/RequestAnatomy-D8d1xV8O.js": {
|
|
88
67
|
"type": "text/javascript; charset=utf-8",
|
|
89
|
-
"etag": '"
|
|
90
|
-
"mtime": "2026-07-
|
|
91
|
-
"size":
|
|
92
|
-
"path": "../public/assets/
|
|
68
|
+
"etag": '"43f2-04Hwj4T4/Xod5OiVnj2IL8uvp6s"',
|
|
69
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
70
|
+
"size": 17394,
|
|
71
|
+
"path": "../public/assets/RequestAnatomy-D8d1xV8O.js"
|
|
93
72
|
},
|
|
94
|
-
"/assets/
|
|
73
|
+
"/assets/index-DhsjXb_K.js": {
|
|
95
74
|
"type": "text/javascript; charset=utf-8",
|
|
96
|
-
"etag": '"
|
|
97
|
-
"mtime": "2026-07-
|
|
98
|
-
"size":
|
|
99
|
-
"path": "../public/assets/
|
|
75
|
+
"etag": '"74-gJ+8unt7dHjt58uju2wwENgCQ9s"',
|
|
76
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
77
|
+
"size": 116,
|
|
78
|
+
"path": "../public/assets/index-DhsjXb_K.js"
|
|
100
79
|
},
|
|
101
|
-
"/assets/
|
|
80
|
+
"/assets/main-D3pBFhb_.js": {
|
|
102
81
|
"type": "text/javascript; charset=utf-8",
|
|
103
|
-
"etag": '"
|
|
104
|
-
"mtime": "2026-07-
|
|
105
|
-
"size":
|
|
106
|
-
"path": "../public/assets/
|
|
82
|
+
"etag": '"517d9-sSwH27aNsGv5k6JrEX4wB+imR2I"',
|
|
83
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
84
|
+
"size": 333785,
|
|
85
|
+
"path": "../public/assets/main-D3pBFhb_.js"
|
|
107
86
|
},
|
|
108
87
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
109
88
|
"type": "image/svg+xml",
|
|
110
89
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
111
|
-
"mtime": "2026-07-
|
|
90
|
+
"mtime": "2026-07-03T04:36:34.361Z",
|
|
112
91
|
"size": 11256,
|
|
113
92
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
114
93
|
},
|
|
115
|
-
"/assets/
|
|
94
|
+
"/assets/StreamingChunkSequence-C-RCuOTp.js": {
|
|
116
95
|
"type": "text/javascript; charset=utf-8",
|
|
117
|
-
"etag": '"
|
|
118
|
-
"mtime": "2026-07-
|
|
119
|
-
"size":
|
|
120
|
-
"path": "../public/assets/
|
|
96
|
+
"etag": '"d5c-wLsQFhijhbXBdhCV5VrfUQpTkXA"',
|
|
97
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
98
|
+
"size": 3420,
|
|
99
|
+
"path": "../public/assets/StreamingChunkSequence-C-RCuOTp.js"
|
|
121
100
|
},
|
|
122
|
-
"/assets/
|
|
101
|
+
"/assets/ResponseView-CJijikn-.js": {
|
|
123
102
|
"type": "text/javascript; charset=utf-8",
|
|
124
|
-
"etag": '"
|
|
125
|
-
"mtime": "2026-07-
|
|
126
|
-
"size":
|
|
127
|
-
"path": "../public/assets/
|
|
103
|
+
"etag": '"30d2-UQ2trhGzRVfbOVcDsw0MegNNT1U"',
|
|
104
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
105
|
+
"size": 12498,
|
|
106
|
+
"path": "../public/assets/ResponseView-CJijikn-.js"
|
|
107
|
+
},
|
|
108
|
+
"/assets/ReplayDialog-3ln-D7OS.js": {
|
|
109
|
+
"type": "text/javascript; charset=utf-8",
|
|
110
|
+
"etag": '"318c-e/P9pR0qpfIS364q4kyij4WXvbc"',
|
|
111
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
112
|
+
"size": 12684,
|
|
113
|
+
"path": "../public/assets/ReplayDialog-3ln-D7OS.js"
|
|
114
|
+
},
|
|
115
|
+
"/assets/_sessionId-DGehOTux.js": {
|
|
116
|
+
"type": "text/javascript; charset=utf-8",
|
|
117
|
+
"etag": '"d2-tgCR/EgYUO2FparSSMVR3POa/5o"',
|
|
118
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
119
|
+
"size": 210,
|
|
120
|
+
"path": "../public/assets/_sessionId-DGehOTux.js"
|
|
121
|
+
},
|
|
122
|
+
"/assets/qwen-CONDcHqt.png": {
|
|
123
|
+
"type": "image/png",
|
|
124
|
+
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
125
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
126
|
+
"size": 357059,
|
|
127
|
+
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
128
128
|
},
|
|
129
|
-
"/assets/ProxyViewerContainer-
|
|
129
|
+
"/assets/ProxyViewerContainer-YxtP1xBj.js": {
|
|
130
130
|
"type": "text/javascript; charset=utf-8",
|
|
131
|
-
"etag": '"
|
|
132
|
-
"mtime": "2026-07-
|
|
133
|
-
"size":
|
|
134
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
131
|
+
"etag": '"bafe3-4mylD57oarTKeI+eaF63Ba8W/Sc"',
|
|
132
|
+
"mtime": "2026-07-03T04:36:34.362Z",
|
|
133
|
+
"size": 765923,
|
|
134
|
+
"path": "../public/assets/ProxyViewerContainer-YxtP1xBj.js"
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
function readAsset(id) {
|
package/package.json
CHANGED
|
@@ -7,13 +7,11 @@ 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
11
|
const [expanded, setExpanded] = useState(false);
|
|
12
12
|
|
|
13
13
|
if (isLoading || hasSeenOnboarding) return null;
|
|
14
14
|
|
|
15
|
-
const isFullMode = captureMode === "full";
|
|
16
|
-
const modeLabel = isFullMode ? "Full" : "Simple";
|
|
17
15
|
const detailClass = expanded ? "grid" : "hidden sm:grid";
|
|
18
16
|
|
|
19
17
|
return (
|
|
@@ -27,35 +25,21 @@ export function OnboardingBanner(): JSX.Element | null {
|
|
|
27
25
|
<div className="min-w-0 flex-1">
|
|
28
26
|
<div className="flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1">
|
|
29
27
|
<span className="font-medium text-amber-200">Inspector ready</span>
|
|
30
|
-
<span className="rounded border border-amber-400/30 bg-amber-400/10 px-1.5 py-0.5 font-mono text-[10px] uppercase text-amber-100">
|
|
31
|
-
{modeLabel}
|
|
32
|
-
</span>
|
|
33
28
|
<span className="hidden truncate text-xs text-muted-foreground sm:inline">
|
|
34
|
-
|
|
35
|
-
? "Raw headers, raw response, and SSE chunks are being captured."
|
|
36
|
-
: "Request, response, tool, timing, token, replay, and memory signals are active."}
|
|
29
|
+
Request, response, tool, timing, token, replay, and memory signals are active.
|
|
37
30
|
</span>
|
|
38
31
|
</div>
|
|
39
32
|
<div className="mt-1 text-xs leading-relaxed text-muted-foreground sm:hidden">
|
|
40
|
-
|
|
41
|
-
? "Full diagnostics are active."
|
|
42
|
-
: "Core capture is active with lower overhead."}
|
|
33
|
+
Core capture is active.
|
|
43
34
|
</div>
|
|
44
35
|
<div
|
|
45
|
-
className={`${detailClass} mt-2 gap-x-4 gap-y-1 text-xs leading-relaxed text-muted-foreground sm:grid-cols-
|
|
36
|
+
className={`${detailClass} mt-2 gap-x-4 gap-y-1 text-xs leading-relaxed text-muted-foreground sm:grid-cols-2`}
|
|
46
37
|
>
|
|
47
38
|
<div>
|
|
48
|
-
<strong>
|
|
49
|
-
</div>
|
|
50
|
-
<div>
|
|
51
|
-
<strong>Diagnostics</strong>: use{" "}
|
|
52
|
-
<code>
|
|
53
|
-
{isFullMode ? "agent-inspector --mode simple" : "agent-inspector --mode full"}
|
|
54
|
-
</code>
|
|
55
|
-
.
|
|
39
|
+
<strong>Evidence</strong>: logs, sessions, groups, and MCP exports are available.
|
|
56
40
|
</div>
|
|
57
41
|
<div>
|
|
58
|
-
<strong>Network</strong>: replace <code>localhost</code>
|
|
42
|
+
<strong>Network</strong>: replace <code>localhost</code> if containers differ.
|
|
59
43
|
</div>
|
|
60
44
|
</div>
|
|
61
45
|
</div>
|
|
@@ -1254,7 +1254,6 @@ export type ProxyViewerProps = {
|
|
|
1254
1254
|
* Clear button on each conversation header. */
|
|
1255
1255
|
onClearGroup: (ids: number[]) => void;
|
|
1256
1256
|
viewMode: "simple" | "full";
|
|
1257
|
-
onViewModeChange: (mode: "simple" | "full") => void;
|
|
1258
1257
|
captureMode: CaptureMode;
|
|
1259
1258
|
/** Live strip-Claude-Code-billing-header flag, sourced once at the container. */
|
|
1260
1259
|
strip: boolean;
|
|
@@ -1287,7 +1286,6 @@ export function ProxyViewer({
|
|
|
1287
1286
|
onClearAll,
|
|
1288
1287
|
onClearGroup,
|
|
1289
1288
|
viewMode,
|
|
1290
|
-
onViewModeChange,
|
|
1291
1289
|
captureMode,
|
|
1292
1290
|
strip,
|
|
1293
1291
|
slowResponseThresholdSeconds,
|
|
@@ -1400,8 +1398,8 @@ export function ProxyViewer({
|
|
|
1400
1398
|
);
|
|
1401
1399
|
|
|
1402
1400
|
return (
|
|
1403
|
-
<div className="min-h-screen bg-[#070809] text-foreground">
|
|
1404
|
-
<div className="
|
|
1401
|
+
<div className="min-h-screen w-full bg-[#070809] text-foreground">
|
|
1402
|
+
<div className="grid min-h-screen w-full grid-cols-1 lg:grid-cols-[340px_minmax(0,1fr)] xl:grid-cols-[360px_minmax(0,1fr)]">
|
|
1405
1403
|
<aside className="border-b border-border bg-[#090a0c] lg:sticky lg:top-0 lg:h-screen lg:overflow-y-auto lg:border-b-0 lg:border-r">
|
|
1406
1404
|
<div className="space-y-4 p-4">
|
|
1407
1405
|
<BrandHeader compact={true} crabEntrancePhase={crabEntrancePhase} />
|
|
@@ -1492,38 +1490,6 @@ export function ProxyViewer({
|
|
|
1492
1490
|
))}
|
|
1493
1491
|
</SelectContent>
|
|
1494
1492
|
</Select>
|
|
1495
|
-
{captureMode === "full" ? (
|
|
1496
|
-
<div className="grid h-9 grid-cols-2 overflow-hidden rounded-md border border-border">
|
|
1497
|
-
<button
|
|
1498
|
-
type="button"
|
|
1499
|
-
onClick={() => onViewModeChange("simple")}
|
|
1500
|
-
className={cn(
|
|
1501
|
-
"text-xs transition-colors",
|
|
1502
|
-
viewMode === "simple"
|
|
1503
|
-
? "bg-muted text-foreground"
|
|
1504
|
-
: "text-muted-foreground hover:bg-muted/50",
|
|
1505
|
-
)}
|
|
1506
|
-
>
|
|
1507
|
-
Simple
|
|
1508
|
-
</button>
|
|
1509
|
-
<button
|
|
1510
|
-
type="button"
|
|
1511
|
-
onClick={() => onViewModeChange("full")}
|
|
1512
|
-
className={cn(
|
|
1513
|
-
"text-xs transition-colors",
|
|
1514
|
-
viewMode === "full"
|
|
1515
|
-
? "bg-muted text-foreground"
|
|
1516
|
-
: "text-muted-foreground hover:bg-muted/50",
|
|
1517
|
-
)}
|
|
1518
|
-
>
|
|
1519
|
-
Full
|
|
1520
|
-
</button>
|
|
1521
|
-
</div>
|
|
1522
|
-
) : (
|
|
1523
|
-
<div className="flex h-9 items-center rounded-md border border-border bg-muted px-3 text-xs text-foreground">
|
|
1524
|
-
Simple
|
|
1525
|
-
</div>
|
|
1526
|
-
)}
|
|
1527
1493
|
</div>
|
|
1528
1494
|
</div>
|
|
1529
1495
|
</aside>
|
|
@@ -184,7 +184,6 @@ export function ProxyViewerContainer({
|
|
|
184
184
|
const [allLogs, setAllLogs] = useState<CapturedLog[]>([]);
|
|
185
185
|
const [selectedSession, setSelectedSession] = useState(initialSessionId ?? "__all__");
|
|
186
186
|
const [selectedModel, setSelectedModel] = useState("__all__");
|
|
187
|
-
const [viewMode, setViewMode] = useState<"simple" | "full">("simple");
|
|
188
187
|
const [error, setError] = useState<string | null>(null);
|
|
189
188
|
const [streamInitialized, setStreamInitialized] = useState(initialSessionId === undefined);
|
|
190
189
|
const [logPage, setLogPage] = useState<LogCursorPage | null>(null);
|
|
@@ -491,6 +490,7 @@ export function ProxyViewerContainer({
|
|
|
491
490
|
// Read the strip config once at the container so the virtualized list does
|
|
492
491
|
// not need N independent SWR subscriptions per row.
|
|
493
492
|
const { strip, captureMode, slowResponseThresholdSeconds, timeDisplayFormat } = useStripConfig();
|
|
493
|
+
const viewMode = captureMode;
|
|
494
494
|
const loadOldestPage = useCallback(() => {
|
|
495
495
|
loadSessionPage({ kind: "oldest" });
|
|
496
496
|
}, [loadSessionPage]);
|
|
@@ -556,7 +556,6 @@ export function ProxyViewerContainer({
|
|
|
556
556
|
pagination={pagination}
|
|
557
557
|
sessionMemberships={sessionMemberships}
|
|
558
558
|
viewMode={viewMode}
|
|
559
|
-
onViewModeChange={setViewMode}
|
|
560
559
|
captureMode={captureMode}
|
|
561
560
|
strip={strip}
|
|
562
561
|
slowResponseThresholdSeconds={slowResponseThresholdSeconds}
|
|
@@ -530,7 +530,6 @@ function McpSettingsTab(): JSX.Element {
|
|
|
530
530
|
function ProxySettingsTab(): JSX.Element {
|
|
531
531
|
const {
|
|
532
532
|
strip,
|
|
533
|
-
captureMode,
|
|
534
533
|
slowResponseThresholdSeconds,
|
|
535
534
|
providerTestTimeoutSeconds,
|
|
536
535
|
timeDisplayFormat,
|
|
@@ -542,7 +541,6 @@ function ProxySettingsTab(): JSX.Element {
|
|
|
542
541
|
} = useStripConfig();
|
|
543
542
|
const [error, setError] = useState<string | null>(null);
|
|
544
543
|
const [pending, setPending] = useState(false);
|
|
545
|
-
const alternateCaptureMode = captureMode === "full" ? "simple" : "full";
|
|
546
544
|
|
|
547
545
|
const handleToggle = useCallback(
|
|
548
546
|
async (next: boolean) => {
|
|
@@ -606,17 +604,6 @@ function ProxySettingsTab(): JSX.Element {
|
|
|
606
604
|
|
|
607
605
|
return (
|
|
608
606
|
<div className="space-y-4">
|
|
609
|
-
<div className="space-y-1">
|
|
610
|
-
<h3 className="text-sm font-semibold">Capture mode</h3>
|
|
611
|
-
<p className="text-xs text-muted-foreground">
|
|
612
|
-
This process is running in <code>{captureMode}</code> mode. Restart with{" "}
|
|
613
|
-
<code>agent-inspector --mode {alternateCaptureMode}</code> to change it.
|
|
614
|
-
{captureMode === "simple"
|
|
615
|
-
? " Simple mode keeps replay, parsed requests, responses, timing, tools, and token usage while skipping raw headers, raw response retention, and detailed SSE chunk retention."
|
|
616
|
-
: " Full mode retains raw headers, raw responses, and SSE chunks for diagnostics; use simple mode for everyday lower-overhead capture."}
|
|
617
|
-
</p>
|
|
618
|
-
</div>
|
|
619
|
-
|
|
620
607
|
<div className="space-y-1">
|
|
621
608
|
<h3 className="text-sm font-semibold">Claude Code billing header</h3>
|
|
622
609
|
<p className="text-xs text-muted-foreground">
|