@tonyclaw/agent-inspector 3.0.3 → 3.0.5
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-CufpM7_P.js → CompareDrawer-Co-35_Xw.js} +1 -1
- package/.output/public/assets/ProxyViewerContainer-DPv1rBo7.js +106 -0
- package/.output/public/assets/{ReplayDialog-ClDmxv57.js → ReplayDialog-DghbvKdy.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-DcuIghmp.js → RequestAnatomy-CRXE5v8X.js} +1 -1
- package/.output/public/assets/{ResponseView-C7Tl47j3.js → ResponseView-CzxoQRjp.js} +2 -2
- package/.output/public/assets/{StreamingChunkSequence-DBK_R540.js → StreamingChunkSequence-DnFyF_Hr.js} +1 -1
- package/.output/public/assets/{_sessionId-D8Ke-EcI.js → _sessionId-DHRhWzKe.js} +1 -1
- package/.output/public/assets/index-D8cruW0P.css +1 -0
- package/.output/public/assets/index-DZyTpd2w.js +1 -0
- package/.output/public/assets/{index-CpWH7b2O.js → index-Dl1oki9E.js} +1 -1
- package/.output/public/assets/{json-viewer-BEifdKM_.js → json-viewer-B84f7oiG.js} +1 -1
- package/.output/public/assets/{main-DDfExS3_.js → main-DViDnJ9X.js} +2 -2
- package/.output/server/_libs/lucide-react.mjs +2 -2
- package/.output/server/{_sessionId-Di7z893V.mjs → _sessionId-C43vEAWe.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-ABv-8FMB.mjs → CompareDrawer-DOL6q0jD.mjs} +2 -2
- package/.output/server/_ssr/{ProxyViewerContainer-CGX-1aUr.mjs → ProxyViewerContainer-S9izw3ND.mjs} +572 -272
- package/.output/server/_ssr/{ReplayDialog-DD31ftzG.mjs → ReplayDialog-tqthwJh0.mjs} +3 -3
- package/.output/server/_ssr/{RequestAnatomy-54kNHAjH.mjs → RequestAnatomy-CgWDjFPR.mjs} +2 -2
- package/.output/server/_ssr/{ResponseView-CRnibtlX.mjs → ResponseView-Dk8Op622.mjs} +2 -2
- package/.output/server/_ssr/{StreamingChunkSequence-Cb5WGfMm.mjs → StreamingChunkSequence-AlS7PK8f.mjs} +2 -2
- package/.output/server/_ssr/{index-BJ-8DomR.mjs → index-BGwvMN2M.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-DB5188I7.mjs → json-viewer-CKHkh5U3.mjs} +2 -2
- package/.output/server/_ssr/{router-BKf70uDr.mjs → router-BJMaHkr1.mjs} +9 -9
- package/.output/server/{_tanstack-start-manifest_v-DUuf3Rgf.mjs → _tanstack-start-manifest_v-C_HvRzgP.mjs} +1 -1
- package/.output/server/index.mjs +66 -66
- package/package.json +1 -1
- package/src/components/ProxyViewer.tsx +92 -25
- package/src/components/ProxyViewerContainer.tsx +154 -55
- package/src/components/providers/ProviderCard.tsx +413 -230
- package/src/components/proxy-viewer/ConversationGroup.tsx +1 -1
- package/src/components/proxy-viewer/ConversationHeader.tsx +4 -5
- package/src/lib/stopReason.ts +4 -0
- package/.output/public/assets/ProxyViewerContainer-Dppr2zGE.js +0 -106
- package/.output/public/assets/index-BskTYcAH.css +0 -1
- package/.output/public/assets/index-DRHfTEM5.js +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-S9izw3ND.mjs";
|
|
3
|
+
import { ResponseView } from "./ResponseView-Dk8Op622.mjs";
|
|
4
|
+
import { C as CapturedLogSchema } from "./router-BJMaHkr1.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
7
7
|
import { af as RotateCcw, ar as Braces, as 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-S9izw3ND.mjs";
|
|
3
|
+
import "./router-BJMaHkr1.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { I as Info, a as ChevronDown, h 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 LazyJsonViewer, F as safeJsonValue } from "./ProxyViewerContainer-
|
|
3
|
-
import { s as safeGetOwnProperty } from "./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 LazyJsonViewer, F as safeJsonValue } from "./ProxyViewerContainer-S9izw3ND.mjs";
|
|
3
|
+
import { s as safeGetOwnProperty } from "./router-BJMaHkr1.mjs";
|
|
4
4
|
import "../_libs/jszip.mjs";
|
|
5
5
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
6
6
|
import { Z as Zap, T as TriangleAlert, at as CircleStop, O as Brain, a as ChevronDown, h as ChevronRight, r 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 LazyJsonViewer } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { m as TooltipProvider, n as Tooltip, o as TooltipTrigger, B as Badge, p as TooltipContent, E as LazyJsonViewer } from "./ProxyViewerContainer-S9izw3ND.mjs";
|
|
3
|
+
import "./router-BJMaHkr1.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { a as ChevronDown, h as ChevronRight, L 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-S9izw3ND.mjs";
|
|
2
2
|
import "../_libs/react.mjs";
|
|
3
|
-
import "./router-
|
|
3
|
+
import "./router-BJMaHkr1.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-C_HvRzgP.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-BJMaHkr1.mjs").then((n) => n.N);
|
|
780
780
|
const startEntry = await import("./start-HYkvq4Ni.mjs");
|
|
781
781
|
return { startEntry, routerEntry };
|
|
782
782
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { G as parseJsonText, c as cn, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { G as parseJsonText, c as cn, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-S9izw3ND.mjs";
|
|
3
|
+
import "./router-BJMaHkr1.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { b as Check, e as Copy, a as ChevronDown, h as ChevronRight, ac as ChevronsDown } from "../_libs/lucide-react.mjs";
|
|
@@ -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%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";
|
|
68
|
-
const appCss = "/assets/index-
|
|
68
|
+
const appCss = "/assets/index-D8cruW0P.css";
|
|
69
69
|
const Route$D = 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-BGwvMN2M.mjs");
|
|
112
112
|
const Route$C = 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-C43vEAWe.mjs");
|
|
155
155
|
const Route$B = createFileRoute("/session/$sessionId")({
|
|
156
156
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
157
157
|
parseParams: (params) => ({
|
|
@@ -9136,7 +9136,7 @@ const Route$w = createFileRoute("/api/models")({
|
|
|
9136
9136
|
}
|
|
9137
9137
|
}
|
|
9138
9138
|
});
|
|
9139
|
-
const version = "3.0.
|
|
9139
|
+
const version = "3.0.5";
|
|
9140
9140
|
const packageJson = {
|
|
9141
9141
|
version
|
|
9142
9142
|
};
|
|
@@ -17328,11 +17328,11 @@ export {
|
|
|
17328
17328
|
DeleteInspectorGroupResponseSchema as q,
|
|
17329
17329
|
providerHasContextMetadata as r,
|
|
17330
17330
|
safeGetOwnProperty as s,
|
|
17331
|
-
|
|
17332
|
-
|
|
17333
|
-
|
|
17334
|
-
|
|
17335
|
-
|
|
17331
|
+
maskApiKey as t,
|
|
17332
|
+
PATH_V1_MESSAGES as u,
|
|
17333
|
+
PATH_V1_CHAT_COMPLETIONS as v,
|
|
17334
|
+
PATH_V1_RESPONSES as w,
|
|
17335
|
+
findProviderModelMetadata as x,
|
|
17336
17336
|
previewUpstreamUrl as y,
|
|
17337
17337
|
createPendingProviderTestResults as z
|
|
17338
17338
|
};
|
|
@@ -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/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/alerts", "/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-DViDnJ9X.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-DZyTpd2w.js", "/assets/ProxyViewerContainer-DPv1rBo7.js"] }, "/api/alerts": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.ts", "children": ["/api/alerts/summary"] }, "/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/import", "/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-DHRhWzKe.js", "/assets/ProxyViewerContainer-DPv1rBo7.js"] }, "/api/alerts/summary": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.summary.ts" }, "/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/body", "/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.import.ts" }, "/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/body": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.body.ts" }, "/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-DViDnJ9X.js" });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|
package/.output/server/index.mjs
CHANGED
|
@@ -38,114 +38,114 @@ const assets = {
|
|
|
38
38
|
"/assets/alibaba-TTwafVwX.svg": {
|
|
39
39
|
"type": "image/svg+xml",
|
|
40
40
|
"etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
|
|
41
|
-
"mtime": "2026-07-
|
|
41
|
+
"mtime": "2026-07-07T02:41:58.780Z",
|
|
42
42
|
"size": 5915,
|
|
43
43
|
"path": "../public/assets/alibaba-TTwafVwX.svg"
|
|
44
44
|
},
|
|
45
|
-
"/assets/
|
|
45
|
+
"/assets/CompareDrawer-Co-35_Xw.js": {
|
|
46
46
|
"type": "text/javascript; charset=utf-8",
|
|
47
|
-
"etag": '"
|
|
48
|
-
"mtime": "2026-07-
|
|
49
|
-
"size": 116,
|
|
50
|
-
"path": "../public/assets/index-DRHfTEM5.js"
|
|
51
|
-
},
|
|
52
|
-
"/assets/CompareDrawer-CufpM7_P.js": {
|
|
53
|
-
"type": "text/javascript; charset=utf-8",
|
|
54
|
-
"etag": '"4bbf-em8bNnyNj0hLG9FAPAh3pm1NamQ"',
|
|
55
|
-
"mtime": "2026-07-07T01:44:02.395Z",
|
|
47
|
+
"etag": '"4bbf-YKHEwgAH6ZGoyw9OUZ/p9d8Cc/M"',
|
|
48
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
56
49
|
"size": 19391,
|
|
57
|
-
"path": "../public/assets/CompareDrawer-
|
|
50
|
+
"path": "../public/assets/CompareDrawer-Co-35_Xw.js"
|
|
58
51
|
},
|
|
59
|
-
"/assets/
|
|
52
|
+
"/assets/index-DZyTpd2w.js": {
|
|
60
53
|
"type": "text/javascript; charset=utf-8",
|
|
61
|
-
"etag": '"
|
|
62
|
-
"mtime": "2026-07-
|
|
63
|
-
"size":
|
|
64
|
-
"path": "../public/assets/
|
|
54
|
+
"etag": '"74-CRX5c/lNSq8LblJqtg+V92AgFnM"',
|
|
55
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
56
|
+
"size": 116,
|
|
57
|
+
"path": "../public/assets/index-DZyTpd2w.js"
|
|
58
|
+
},
|
|
59
|
+
"/assets/index-D8cruW0P.css": {
|
|
60
|
+
"type": "text/css; charset=utf-8",
|
|
61
|
+
"etag": '"21e6f-lvL4gsFa2y5tcKqWPn949G7cffc"',
|
|
62
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
63
|
+
"size": 138863,
|
|
64
|
+
"path": "../public/assets/index-D8cruW0P.css"
|
|
65
65
|
},
|
|
66
66
|
"/assets/minimax-BPMzvuL-.jpeg": {
|
|
67
67
|
"type": "image/jpeg",
|
|
68
68
|
"etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
|
|
69
|
-
"mtime": "2026-07-
|
|
69
|
+
"mtime": "2026-07-07T02:41:58.780Z",
|
|
70
70
|
"size": 6918,
|
|
71
71
|
"path": "../public/assets/minimax-BPMzvuL-.jpeg"
|
|
72
72
|
},
|
|
73
|
-
"/assets/index-
|
|
73
|
+
"/assets/index-Dl1oki9E.js": {
|
|
74
74
|
"type": "text/javascript; charset=utf-8",
|
|
75
|
-
"etag": '"1cd2c-
|
|
76
|
-
"mtime": "2026-07-
|
|
75
|
+
"etag": '"1cd2c-GPuO3UuCdHJ7WLd/rnHEuWwjzVo"',
|
|
76
|
+
"mtime": "2026-07-07T02:41:58.782Z",
|
|
77
77
|
"size": 118060,
|
|
78
|
-
"path": "../public/assets/index-
|
|
78
|
+
"path": "../public/assets/index-Dl1oki9E.js"
|
|
79
79
|
},
|
|
80
|
-
"/assets/
|
|
80
|
+
"/assets/json-viewer-B84f7oiG.js": {
|
|
81
81
|
"type": "text/javascript; charset=utf-8",
|
|
82
|
-
"etag": '"
|
|
83
|
-
"mtime": "2026-07-
|
|
84
|
-
"size":
|
|
85
|
-
"path": "../public/assets/
|
|
82
|
+
"etag": '"1ae6-4Ti/a+pOCW/TozoxBvtqBzUOBAI"',
|
|
83
|
+
"mtime": "2026-07-07T02:41:58.782Z",
|
|
84
|
+
"size": 6886,
|
|
85
|
+
"path": "../public/assets/json-viewer-B84f7oiG.js"
|
|
86
86
|
},
|
|
87
|
-
"/assets/
|
|
88
|
-
"type": "text/
|
|
89
|
-
"etag": '"
|
|
90
|
-
"mtime": "2026-07-
|
|
91
|
-
"size":
|
|
92
|
-
"path": "../public/assets/
|
|
87
|
+
"/assets/main-DViDnJ9X.js": {
|
|
88
|
+
"type": "text/javascript; charset=utf-8",
|
|
89
|
+
"etag": '"512fd-tv9uDZ2p5i5kt50721fWNR4gGCo"',
|
|
90
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
91
|
+
"size": 332541,
|
|
92
|
+
"path": "../public/assets/main-DViDnJ9X.js"
|
|
93
93
|
},
|
|
94
|
-
"/assets/
|
|
94
|
+
"/assets/ReplayDialog-DghbvKdy.js": {
|
|
95
95
|
"type": "text/javascript; charset=utf-8",
|
|
96
|
-
"etag": '"
|
|
97
|
-
"mtime": "2026-07-
|
|
96
|
+
"etag": '"31d6-qN1mIRhSWINaI/XQJq3BavBrwLc"',
|
|
97
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
98
|
+
"size": 12758,
|
|
99
|
+
"path": "../public/assets/ReplayDialog-DghbvKdy.js"
|
|
100
|
+
},
|
|
101
|
+
"/assets/RequestAnatomy-CRXE5v8X.js": {
|
|
102
|
+
"type": "text/javascript; charset=utf-8",
|
|
103
|
+
"etag": '"43f2-gLtyuWz9JF98AfI+TxbA7pMfrn0"',
|
|
104
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
98
105
|
"size": 17394,
|
|
99
|
-
"path": "../public/assets/RequestAnatomy-
|
|
106
|
+
"path": "../public/assets/RequestAnatomy-CRXE5v8X.js"
|
|
100
107
|
},
|
|
101
|
-
"/assets/ResponseView-
|
|
108
|
+
"/assets/ResponseView-CzxoQRjp.js": {
|
|
102
109
|
"type": "text/javascript; charset=utf-8",
|
|
103
|
-
"etag": '"47fa-
|
|
104
|
-
"mtime": "2026-07-
|
|
110
|
+
"etag": '"47fa-mroeg0oa12/LKyDMyWHFljt81Ow"',
|
|
111
|
+
"mtime": "2026-07-07T02:41:58.782Z",
|
|
105
112
|
"size": 18426,
|
|
106
|
-
"path": "../public/assets/ResponseView-
|
|
113
|
+
"path": "../public/assets/ResponseView-CzxoQRjp.js"
|
|
107
114
|
},
|
|
108
|
-
"/assets/StreamingChunkSequence-
|
|
115
|
+
"/assets/StreamingChunkSequence-DnFyF_Hr.js": {
|
|
109
116
|
"type": "text/javascript; charset=utf-8",
|
|
110
|
-
"etag": '"dd6
|
|
111
|
-
"mtime": "2026-07-
|
|
117
|
+
"etag": '"dd6-7siyfImS4fklaVyOlyeHiEjEpCQ"',
|
|
118
|
+
"mtime": "2026-07-07T02:41:58.782Z",
|
|
112
119
|
"size": 3542,
|
|
113
|
-
"path": "../public/assets/StreamingChunkSequence-
|
|
120
|
+
"path": "../public/assets/StreamingChunkSequence-DnFyF_Hr.js"
|
|
121
|
+
},
|
|
122
|
+
"/assets/_sessionId-DHRhWzKe.js": {
|
|
123
|
+
"type": "text/javascript; charset=utf-8",
|
|
124
|
+
"etag": '"36c-bnsN2jT/xjUgKLfZr/ketsobX+Y"',
|
|
125
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
126
|
+
"size": 876,
|
|
127
|
+
"path": "../public/assets/_sessionId-DHRhWzKe.js"
|
|
114
128
|
},
|
|
115
129
|
"/assets/zhipuai-BPNAnxo-.svg": {
|
|
116
130
|
"type": "image/svg+xml",
|
|
117
131
|
"etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
|
|
118
|
-
"mtime": "2026-07-
|
|
132
|
+
"mtime": "2026-07-07T02:41:58.780Z",
|
|
119
133
|
"size": 11256,
|
|
120
134
|
"path": "../public/assets/zhipuai-BPNAnxo-.svg"
|
|
121
135
|
},
|
|
122
|
-
"/assets/_sessionId-D8Ke-EcI.js": {
|
|
123
|
-
"type": "text/javascript; charset=utf-8",
|
|
124
|
-
"etag": '"36c-bhrib21DhX/XQPRM4CpLNweOg+A"',
|
|
125
|
-
"mtime": "2026-07-07T01:44:02.395Z",
|
|
126
|
-
"size": 876,
|
|
127
|
-
"path": "../public/assets/_sessionId-D8Ke-EcI.js"
|
|
128
|
-
},
|
|
129
|
-
"/assets/main-DDfExS3_.js": {
|
|
130
|
-
"type": "text/javascript; charset=utf-8",
|
|
131
|
-
"etag": '"512fd-0ATXdrVxw9X+97bDd2uILfeMEAs"',
|
|
132
|
-
"mtime": "2026-07-07T01:44:02.395Z",
|
|
133
|
-
"size": 332541,
|
|
134
|
-
"path": "../public/assets/main-DDfExS3_.js"
|
|
135
|
-
},
|
|
136
136
|
"/assets/qwen-CONDcHqt.png": {
|
|
137
137
|
"type": "image/png",
|
|
138
138
|
"etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
|
|
139
|
-
"mtime": "2026-07-
|
|
139
|
+
"mtime": "2026-07-07T02:41:58.781Z",
|
|
140
140
|
"size": 357059,
|
|
141
141
|
"path": "../public/assets/qwen-CONDcHqt.png"
|
|
142
142
|
},
|
|
143
|
-
"/assets/ProxyViewerContainer-
|
|
143
|
+
"/assets/ProxyViewerContainer-DPv1rBo7.js": {
|
|
144
144
|
"type": "text/javascript; charset=utf-8",
|
|
145
|
-
"etag": '"
|
|
146
|
-
"mtime": "2026-07-
|
|
147
|
-
"size":
|
|
148
|
-
"path": "../public/assets/ProxyViewerContainer-
|
|
145
|
+
"etag": '"b1960-XH9ZWBRpPK1liwdc4WXdgmJqJdI"',
|
|
146
|
+
"mtime": "2026-07-07T02:41:58.782Z",
|
|
147
|
+
"size": 727392,
|
|
148
|
+
"path": "../public/assets/ProxyViewerContainer-DPv1rBo7.js"
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
function readAsset(id) {
|
package/package.json
CHANGED
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
Gauge,
|
|
28
28
|
Flag,
|
|
29
29
|
Plus,
|
|
30
|
+
RefreshCw,
|
|
30
31
|
Search,
|
|
31
32
|
Siren,
|
|
32
33
|
Timer,
|
|
@@ -1661,6 +1662,8 @@ export type ProxyViewerProps = {
|
|
|
1661
1662
|
onSessionChange: (session: string) => void;
|
|
1662
1663
|
onModelChange: (model: string) => void;
|
|
1663
1664
|
onClearAll: () => void;
|
|
1665
|
+
/** Reload the selected/pinned session from stored logs without requiring a page refresh. */
|
|
1666
|
+
onReloadSession?: () => void;
|
|
1664
1667
|
/** Clear only the logs whose ids are passed. Called by the per-group
|
|
1665
1668
|
* Clear button on each conversation header. */
|
|
1666
1669
|
onClearGroup: (ids: number[]) => void;
|
|
@@ -1698,6 +1701,7 @@ export function ProxyViewer({
|
|
|
1698
1701
|
onSessionChange,
|
|
1699
1702
|
onModelChange,
|
|
1700
1703
|
onClearAll,
|
|
1704
|
+
onReloadSession,
|
|
1701
1705
|
onClearGroup,
|
|
1702
1706
|
onNotify,
|
|
1703
1707
|
onImportLogs,
|
|
@@ -1835,6 +1839,8 @@ export function ProxyViewer({
|
|
|
1835
1839
|
const comparisonPredecessors = useMemo(() => buildValidPredecessors(groups), [groups]);
|
|
1836
1840
|
const exportActionVisibility = getExportActionVisibility(captureMode, logs.length);
|
|
1837
1841
|
const isPinnedSessionPage = pinnedSessionId !== undefined;
|
|
1842
|
+
const canClearCurrentView = logs.length > 0;
|
|
1843
|
+
const reloadSessionLabel = logs.length === 0 ? "Load" : "Reload";
|
|
1838
1844
|
const sessionInputValue = selectedSession === "__all__" ? "" : selectedSession;
|
|
1839
1845
|
const sessionSelectValue =
|
|
1840
1846
|
selectedSession === "__all__" || sessions.includes(selectedSession)
|
|
@@ -1881,14 +1887,15 @@ export function ProxyViewer({
|
|
|
1881
1887
|
|
|
1882
1888
|
return (
|
|
1883
1889
|
<div className="bg-background min-h-screen w-full text-foreground">
|
|
1884
|
-
<div className="grid min-h-screen w-full grid-cols-1 lg:grid-cols-[
|
|
1885
|
-
<aside className="bg-background/95 border-b border-white/[0.045] lg:sticky lg:top-0 lg:h-screen lg:overflow-y-auto lg:border-b-0 lg:border-
|
|
1890
|
+
<div className="grid min-h-screen w-full grid-cols-1 lg:grid-cols-[minmax(0,1fr)_340px] xl:grid-cols-[minmax(0,1fr)_360px]">
|
|
1891
|
+
<aside className="bg-background/95 order-1 border-b border-white/[0.045] lg:sticky lg:top-0 lg:order-2 lg:h-screen lg:overflow-y-auto lg:border-b-0 lg:border-l lg:border-white/[0.055]">
|
|
1886
1892
|
<div className="space-y-4 p-4">
|
|
1887
1893
|
<BrandHeader compact={true} crabEntrancePhase={crabEntrancePhase} />
|
|
1888
1894
|
|
|
1889
1895
|
<SidebarPanel label="Session">
|
|
1890
|
-
<div className="grid grid-cols-
|
|
1896
|
+
<div className="grid grid-cols-2 gap-2">
|
|
1891
1897
|
<SidebarMetric label="Requests" value={logs.length} />
|
|
1898
|
+
<SidebarMetric label="Sessions" value={sessions.length} />
|
|
1892
1899
|
<SidebarMetric
|
|
1893
1900
|
label="Input"
|
|
1894
1901
|
value={formatTokens(hasSessionContext ? sessionContextTotalIn : totalIn)}
|
|
@@ -1898,6 +1905,33 @@ export function ProxyViewer({
|
|
|
1898
1905
|
value={formatTokens(hasSessionContext ? sessionContextTotalOut : totalOut)}
|
|
1899
1906
|
/>
|
|
1900
1907
|
</div>
|
|
1908
|
+
<div className="mt-2 grid grid-cols-2 gap-2">
|
|
1909
|
+
{onReloadSession !== undefined && (
|
|
1910
|
+
<button
|
|
1911
|
+
type="button"
|
|
1912
|
+
onClick={onReloadSession}
|
|
1913
|
+
disabled={isLoading}
|
|
1914
|
+
className="bg-white/[0.035] hover:bg-white/[0.065] inline-flex h-8 min-w-0 items-center justify-center gap-1.5 rounded-md px-2 text-xs text-muted-foreground shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)] transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
1915
|
+
title="Load stored logs for this session"
|
|
1916
|
+
>
|
|
1917
|
+
<RefreshCw className={cn("size-3.5", isLoading && "animate-spin")} />
|
|
1918
|
+
<span>{reloadSessionLabel}</span>
|
|
1919
|
+
</button>
|
|
1920
|
+
)}
|
|
1921
|
+
<button
|
|
1922
|
+
type="button"
|
|
1923
|
+
onClick={onClearAll}
|
|
1924
|
+
disabled={!canClearCurrentView}
|
|
1925
|
+
className={cn(
|
|
1926
|
+
"bg-white/[0.035] hover:bg-white/[0.065] inline-flex h-8 min-w-0 items-center justify-center gap-1.5 rounded-md px-2 text-xs text-muted-foreground shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)] transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
1927
|
+
onReloadSession === undefined && "col-span-2",
|
|
1928
|
+
)}
|
|
1929
|
+
title="Clear the current view. Stored logs remain reloadable."
|
|
1930
|
+
>
|
|
1931
|
+
<Trash2 className="size-3.5" />
|
|
1932
|
+
<span>Clear view</span>
|
|
1933
|
+
</button>
|
|
1934
|
+
</div>
|
|
1901
1935
|
</SidebarPanel>
|
|
1902
1936
|
|
|
1903
1937
|
<SidebarPanel label="Workspace">
|
|
@@ -1997,7 +2031,7 @@ export function ProxyViewer({
|
|
|
1997
2031
|
</div>
|
|
1998
2032
|
</aside>
|
|
1999
2033
|
|
|
2000
|
-
<main className="min-w-0">
|
|
2034
|
+
<main className="order-2 min-w-0 lg:order-1">
|
|
2001
2035
|
<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">
|
|
2002
2036
|
<div className="flex flex-wrap items-center gap-2">
|
|
2003
2037
|
<div className="min-w-[180px] flex-1">
|
|
@@ -2073,14 +2107,27 @@ export function ProxyViewer({
|
|
|
2073
2107
|
)}
|
|
2074
2108
|
</button>
|
|
2075
2109
|
)}
|
|
2110
|
+
{onReloadSession !== undefined && (
|
|
2111
|
+
<button
|
|
2112
|
+
type="button"
|
|
2113
|
+
onClick={onReloadSession}
|
|
2114
|
+
disabled={isLoading}
|
|
2115
|
+
className="bg-white/[0.035] hover:bg-white/[0.065] inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-xs text-muted-foreground shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)] transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
2116
|
+
title="Reload this session from stored logs"
|
|
2117
|
+
>
|
|
2118
|
+
<RefreshCw className={cn("size-3.5", isLoading && "animate-spin")} />
|
|
2119
|
+
<span>{reloadSessionLabel}</span>
|
|
2120
|
+
</button>
|
|
2121
|
+
)}
|
|
2076
2122
|
<button
|
|
2077
2123
|
type="button"
|
|
2078
2124
|
onClick={onClearAll}
|
|
2079
|
-
|
|
2080
|
-
|
|
2125
|
+
disabled={!canClearCurrentView}
|
|
2126
|
+
className="bg-white/[0.035] hover:bg-white/[0.065] inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-xs text-muted-foreground shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)] transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
2127
|
+
title="Clear the current view. Stored logs remain reloadable."
|
|
2081
2128
|
>
|
|
2082
2129
|
<Trash2 className="size-3.5" />
|
|
2083
|
-
<span>Clear</span>
|
|
2130
|
+
<span>Clear view</span>
|
|
2084
2131
|
</button>
|
|
2085
2132
|
</div>
|
|
2086
2133
|
<LogPaginationBar logs={logs} pagination={pagination} embedded={true} />
|
|
@@ -2108,7 +2155,7 @@ export function ProxyViewer({
|
|
|
2108
2155
|
<div className="py-16 text-center text-muted-foreground">
|
|
2109
2156
|
<div className="bg-white/[0.035] shadow-[inset_0_1px_0_rgba(255,255,255,0.045),0_18px_52px_rgba(0,0,0,0.18)] mx-auto max-w-xl space-y-4 rounded-[8px] px-4 py-8">
|
|
2110
2157
|
<p className="text-sm font-medium">
|
|
2111
|
-
{isLoading ? "Loading session data..." : "
|
|
2158
|
+
{isLoading ? "Loading session data..." : "No logs loaded for this session"}
|
|
2112
2159
|
</p>
|
|
2113
2160
|
<p className="inline-block max-w-full rounded bg-muted px-3 py-1 font-mono text-xs break-all">
|
|
2114
2161
|
{truncateSessionId(selectedSession)}
|
|
@@ -2119,29 +2166,49 @@ export function ProxyViewer({
|
|
|
2119
2166
|
</div>
|
|
2120
2167
|
)}
|
|
2121
2168
|
{!isLoading && (
|
|
2122
|
-
<
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2169
|
+
<div className="flex flex-col items-center gap-3 text-xs">
|
|
2170
|
+
<p>Stored logs may still be available.</p>
|
|
2171
|
+
<div className="flex flex-wrap items-center justify-center gap-2">
|
|
2172
|
+
{onReloadSession !== undefined && (
|
|
2173
|
+
<button
|
|
2174
|
+
type="button"
|
|
2175
|
+
onClick={onReloadSession}
|
|
2176
|
+
className="bg-white/[0.045] hover:bg-white/[0.075] inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-xs text-muted-foreground shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)] transition-colors hover:text-foreground"
|
|
2177
|
+
>
|
|
2178
|
+
<RefreshCw className="size-3.5" />
|
|
2179
|
+
<span>Load session</span>
|
|
2180
|
+
</button>
|
|
2181
|
+
)}
|
|
2182
|
+
{hideSessionFilter ? (
|
|
2183
|
+
<a
|
|
2184
|
+
href="/"
|
|
2185
|
+
className="inline-flex h-8 items-center rounded-md px-3 text-xs text-muted-foreground underline transition-colors hover:text-foreground"
|
|
2186
|
+
>
|
|
2187
|
+
Back to all sessions
|
|
2188
|
+
</a>
|
|
2189
|
+
) : (
|
|
2190
|
+
<button
|
|
2191
|
+
type="button"
|
|
2192
|
+
onClick={() => onSessionChange("__all__")}
|
|
2193
|
+
className="inline-flex h-8 items-center rounded-md px-3 text-xs text-muted-foreground underline transition-colors hover:text-foreground"
|
|
2194
|
+
>
|
|
2195
|
+
Show all sessions
|
|
2196
|
+
</button>
|
|
2197
|
+
)}
|
|
2198
|
+
</div>
|
|
2199
|
+
</div>
|
|
2138
2200
|
)}
|
|
2139
2201
|
</div>
|
|
2140
2202
|
</div>
|
|
2141
2203
|
) : (
|
|
2142
2204
|
<div className="py-16 text-center text-muted-foreground">
|
|
2143
2205
|
<div className="bg-white/[0.035] shadow-[inset_0_1px_0_rgba(255,255,255,0.045),0_18px_52px_rgba(0,0,0,0.18)] mx-auto max-w-2xl space-y-4 rounded-[8px] px-4 py-8">
|
|
2144
|
-
<p className="text-sm">No
|
|
2206
|
+
<p className="text-sm">No logs loaded in the current view.</p>
|
|
2207
|
+
{sessions.length > 0 && (
|
|
2208
|
+
<p className="mx-auto max-w-xl text-xs leading-relaxed text-muted-foreground">
|
|
2209
|
+
Pick a session from the filter panel to load stored logs on demand.
|
|
2210
|
+
</p>
|
|
2211
|
+
)}
|
|
2145
2212
|
<div className="flex flex-col items-center gap-2">
|
|
2146
2213
|
<CopyableCommand command="ANTHROPIC_BASE_URL=http://localhost:9527/proxy <your-tool>" />
|
|
2147
2214
|
<CopyableCommand command="OPENAI_BASE_URL=http://localhost:9527/proxy <your-tool>" />
|