@tonyclaw/agent-inspector 3.0.9 → 3.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{CompareDrawer-CJKL4LMm.js → CompareDrawer-gb4FHIDP.js} +1 -1
  3. package/.output/public/assets/ProxyViewerContainer-yqasBIbY.js +106 -0
  4. package/.output/public/assets/{ReplayDialog-BYanl-a_.js → ReplayDialog-uXfMIorn.js} +1 -1
  5. package/.output/public/assets/{RequestAnatomy-DvPz1jqE.js → RequestAnatomy-NqGFn7lk.js} +1 -1
  6. package/.output/public/assets/{ResponseView-sZnxp9GN.js → ResponseView-BWSWdjPl.js} +2 -2
  7. package/.output/public/assets/{StreamingChunkSequence-G-tiYiBd.js → StreamingChunkSequence-qeCLglzr.js} +1 -1
  8. package/.output/public/assets/{_sessionId-_hDcsmXq.js → _sessionId-COT-xg31.js} +1 -1
  9. package/.output/public/assets/index-BIgsQvaF.css +1 -0
  10. package/.output/public/assets/{index-SuOSQb2_.js → index-CKVD6xzC.js} +1 -1
  11. package/.output/public/assets/index-swjqFLcG.js +1 -0
  12. package/.output/public/assets/{json-viewer-yQdhgjaw.js → json-viewer-ux5usy0f.js} +1 -1
  13. package/.output/public/assets/{main-CgjcDxjR.js → main-BM5Sp2nO.js} +2 -2
  14. package/.output/server/_libs/lucide-react.mjs +2 -2
  15. package/.output/server/{_sessionId-BGISf2En.mjs → _sessionId-8D0eTdRJ.mjs} +2 -2
  16. package/.output/server/_ssr/{CompareDrawer-s-UF9gW3.mjs → CompareDrawer-Hcs0aQWl.mjs} +3 -3
  17. package/.output/server/_ssr/{ProxyViewerContainer-C0Sbz9ED.mjs → ProxyViewerContainer-D2CkbvcS.mjs} +185 -246
  18. package/.output/server/_ssr/{ReplayDialog-DvS8gvJr.mjs → ReplayDialog-O2R9y9xD.mjs} +3 -3
  19. package/.output/server/_ssr/{RequestAnatomy-BwhWglJL.mjs → RequestAnatomy-DkvrjK-3.mjs} +2 -2
  20. package/.output/server/_ssr/{ResponseView-wBVreqQf.mjs → ResponseView-CPcMs3Um.mjs} +2 -2
  21. package/.output/server/_ssr/{StreamingChunkSequence-Dr6eg-MJ.mjs → StreamingChunkSequence-FlBdqDP3.mjs} +2 -2
  22. package/.output/server/_ssr/{index-B98Wia1X.mjs → index-ChG0L62e.mjs} +2 -2
  23. package/.output/server/_ssr/index.mjs +2 -2
  24. package/.output/server/_ssr/{json-viewer-D7L8y0FH.mjs → json-viewer-Bb1g2nec.mjs} +2 -2
  25. package/.output/server/_ssr/{router-g9mo0nWT.mjs → router-840N-dk9.mjs} +21 -12
  26. package/.output/server/{_tanstack-start-manifest_v-CbGc-o50.mjs → _tanstack-start-manifest_v-Qi0D1Tl0.mjs} +1 -1
  27. package/.output/server/index.mjs +70 -70
  28. package/package.json +1 -1
  29. package/src/components/ProxyViewerContainer.tsx +10 -2
  30. package/src/components/providers/ProviderCard.tsx +98 -136
  31. package/src/components/providers/ProvidersPanel.tsx +61 -106
  32. package/src/components/providers/SettingsDialog.tsx +17 -22
  33. package/src/components/proxy-viewer/LogEntryHeader.tsx +17 -43
  34. package/src/components/ui/tooltip.tsx +1 -1
  35. package/src/routes/api/logs.ts +14 -5
  36. package/.output/public/assets/ProxyViewerContainer-DBUy29O-.js +0 -106
  37. package/.output/public/assets/index-DAPAWsAd.js +0 -1
  38. package/.output/public/assets/index-DspnLqUW.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-C0Sbz9ED.mjs";
3
- import { ResponseView } from "./ResponseView-wBVreqQf.mjs";
4
- import { C as CapturedLogSchema } from "./router-g9mo0nWT.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-D2CkbvcS.mjs";
3
+ import { ResponseView } from "./ResponseView-CPcMs3Um.mjs";
4
+ import { C as CapturedLogSchema } from "./router-840N-dk9.mjs";
5
5
  import "../_libs/jszip.mjs";
6
6
  import "../_libs/modelcontextprotocol__server.mjs";
7
7
  import { am as RotateCcw, ay as Braces, az 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, 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-C0Sbz9ED.mjs";
3
- import "./router-g9mo0nWT.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-D2CkbvcS.mjs";
3
+ import "./router-840N-dk9.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, 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-C0Sbz9ED.mjs";
3
- import { s as safeGetOwnProperty } from "./router-g9mo0nWT.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-D2CkbvcS.mjs";
3
+ import { s as safeGetOwnProperty } from "./router-840N-dk9.mjs";
4
4
  import "../_libs/jszip.mjs";
5
5
  import "../_libs/modelcontextprotocol__server.mjs";
6
6
  import { $ as Zap, T as TriangleAlert, aA as CircleStop, a1 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 { d as fetchJsonWithTimeout, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, B as Badge, q as TooltipContent, G as LazyJsonViewer } from "./ProxyViewerContainer-C0Sbz9ED.mjs";
3
- import { S as StreamingChunkSchema$1 } from "./router-g9mo0nWT.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-D2CkbvcS.mjs";
3
+ import { S as StreamingChunkSchema$1 } from "./router-840N-dk9.mjs";
4
4
  import "../_libs/jszip.mjs";
5
5
  import "../_libs/modelcontextprotocol__server.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-C0Sbz9ED.mjs";
1
+ import { P as ProxyViewerContainer } from "./ProxyViewerContainer-D2CkbvcS.mjs";
2
2
  import "../_libs/react.mjs";
3
- import "./router-g9mo0nWT.mjs";
3
+ import "./router-840N-dk9.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-CbGc-o50.mjs");
201
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-Qi0D1Tl0.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-g9mo0nWT.mjs").then((n) => n.N);
779
+ const routerEntry = await import("./router-840N-dk9.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 { I as parseJsonText, c as cn, n as TooltipProvider, o as Tooltip, p as TooltipTrigger, q as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-C0Sbz9ED.mjs";
3
- import "./router-g9mo0nWT.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-D2CkbvcS.mjs";
3
+ import "./router-840N-dk9.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, aj 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-DspnLqUW.css";
68
+ const appCss = "/assets/index-BIgsQvaF.css";
69
69
  const Route$K = 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-B98Wia1X.mjs");
111
+ const $$splitComponentImporter$1 = () => import("./index-ChG0L62e.mjs");
112
112
  const Route$J = 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-BGISf2En.mjs");
154
+ const $$splitComponentImporter = () => import("../_sessionId-8D0eTdRJ.mjs");
155
155
  const Route$I = createFileRoute("/session/$sessionId")({
156
156
  component: lazyRouteComponent($$splitComponentImporter, "component"),
157
157
  parseParams: (params) => ({
@@ -9156,7 +9156,7 @@ const Route$D = createFileRoute("/api/models")({
9156
9156
  }
9157
9157
  });
9158
9158
  const name = "@tonyclaw/agent-inspector";
9159
- const version = "3.0.9";
9159
+ const version = "3.0.11";
9160
9160
  const packageJson = {
9161
9161
  name,
9162
9162
  version
@@ -12361,8 +12361,8 @@ async function searchLogsPage(options) {
12361
12361
  scanned: scanPage.logs.length
12362
12362
  };
12363
12363
  }
12364
- const DeleteBodySchema = object({
12365
- ids: array(number().int().positive()).optional()
12364
+ const DeleteLogsBodySchema = object({
12365
+ ids: array(number().int().nonnegative()).optional()
12366
12366
  }).optional();
12367
12367
  function parseNonNegativeInt(value, fallback) {
12368
12368
  if (value === null) return fallback;
@@ -12456,7 +12456,7 @@ const Route$B = createFileRoute("/api/logs")({
12456
12456
  const raw = await request.text();
12457
12457
  if (raw !== "") {
12458
12458
  const parsed = JSON.parse(raw);
12459
- const result2 = DeleteBodySchema.safeParse(parsed);
12459
+ const result2 = DeleteLogsBodySchema.safeParse(parsed);
12460
12460
  if (!result2.success) {
12461
12461
  return Response.json(
12462
12462
  { error: "Invalid request body", details: result2.error.format() },
@@ -12468,7 +12468,16 @@ const Route$B = createFileRoute("/api/logs")({
12468
12468
  } catch {
12469
12469
  return Response.json({ error: "Invalid JSON body" }, { status: 400 });
12470
12470
  }
12471
- if (body?.ids !== void 0 && body.ids.length > 0) {
12471
+ if (body?.ids !== void 0) {
12472
+ if (body.ids.length === 0) {
12473
+ return Response.json({
12474
+ success: true,
12475
+ cleared: 0,
12476
+ logFilesRewritten: 0,
12477
+ chunkFilesDeleted: 0,
12478
+ sessionArchiveLogsDeleted: 0
12479
+ });
12480
+ }
12472
12481
  const result2 = await clearPersistedLogsByIds(body.ids);
12473
12482
  return Response.json({
12474
12483
  success: true,
@@ -17803,10 +17812,10 @@ export {
17803
17812
  providerHasContextMetadata as r,
17804
17813
  safeGetOwnProperty as s,
17805
17814
  maskApiKey as t,
17806
- PATH_V1_MESSAGES as u,
17807
- PATH_V1_CHAT_COMPLETIONS as v,
17808
- PATH_V1_RESPONSES as w,
17809
- findProviderModelMetadata as x,
17815
+ findProviderModelMetadata as u,
17816
+ PATH_V1_MESSAGES as v,
17817
+ PATH_V1_CHAT_COMPLETIONS as w,
17818
+ PATH_V1_RESPONSES as x,
17810
17819
  previewUpstreamUrl as y,
17811
17820
  createPendingProviderTestResults as z
17812
17821
  };
@@ -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/ecosystem/packages", "/api/ecosystem/tasks", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-CgjcDxjR.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-DAPAWsAd.js", "/assets/ProxyViewerContainer-DBUy29O-.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-_hDcsmXq.js", "/assets/ProxyViewerContainer-DBUy29O-.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/ecosystem/packages": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.ts", "children": ["/api/ecosystem/packages/$packageId/help", "/api/ecosystem/packages/$packageId/install", "/api/ecosystem/packages/$packageId/runner-presets", "/api/ecosystem/packages/$packageId/upgrade"] }, "/api/ecosystem/tasks": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.tasks.ts", "children": ["/api/ecosystem/tasks/$taskId"] }, "/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/ecosystem/tasks/$taskId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.tasks.$taskId.ts" }, "/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/ecosystem/packages/$packageId/help": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.help.ts" }, "/api/ecosystem/packages/$packageId/install": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.install.ts" }, "/api/ecosystem/packages/$packageId/runner-presets": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.runner-presets.ts" }, "/api/ecosystem/packages/$packageId/upgrade": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.upgrade.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-CgjcDxjR.js" });
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/ecosystem/packages", "/api/ecosystem/tasks", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-BM5Sp2nO.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-swjqFLcG.js", "/assets/ProxyViewerContainer-yqasBIbY.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-COT-xg31.js", "/assets/ProxyViewerContainer-yqasBIbY.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/ecosystem/packages": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.ts", "children": ["/api/ecosystem/packages/$packageId/help", "/api/ecosystem/packages/$packageId/install", "/api/ecosystem/packages/$packageId/runner-presets", "/api/ecosystem/packages/$packageId/upgrade"] }, "/api/ecosystem/tasks": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.tasks.ts", "children": ["/api/ecosystem/tasks/$taskId"] }, "/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/ecosystem/tasks/$taskId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.tasks.$taskId.ts" }, "/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/ecosystem/packages/$packageId/help": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.help.ts" }, "/api/ecosystem/packages/$packageId/install": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.install.ts" }, "/api/ecosystem/packages/$packageId/runner-presets": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.runner-presets.ts" }, "/api/ecosystem/packages/$packageId/upgrade": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/ecosystem.packages.$packageId.upgrade.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-BM5Sp2nO.js" });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -38,121 +38,121 @@ const assets = {
38
38
  "/assets/agent-inspector-58K1_MsC.ico": {
39
39
  "type": "image/vnd.microsoft.icon",
40
40
  "etag": '"38fa-ZD8kPABHYjPIkcH82FMY6iZM7fI"',
41
- "mtime": "2026-07-07T07:16:49.136Z",
41
+ "mtime": "2026-07-07T07:50:19.857Z",
42
42
  "size": 14586,
43
43
  "path": "../public/assets/agent-inspector-58K1_MsC.ico"
44
44
  },
45
45
  "/assets/alibaba-TTwafVwX.svg": {
46
46
  "type": "image/svg+xml",
47
47
  "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
48
- "mtime": "2026-07-07T07:16:49.136Z",
48
+ "mtime": "2026-07-07T07:50:19.858Z",
49
49
  "size": 5915,
50
50
  "path": "../public/assets/alibaba-TTwafVwX.svg"
51
51
  },
52
- "/assets/index-DAPAWsAd.js": {
52
+ "/assets/CompareDrawer-gb4FHIDP.js": {
53
53
  "type": "text/javascript; charset=utf-8",
54
- "etag": '"74-ZZKHhoKO+55DHAA498w0K6Lm4qw"',
55
- "mtime": "2026-07-07T07:16:49.140Z",
56
- "size": 116,
57
- "path": "../public/assets/index-DAPAWsAd.js"
54
+ "etag": '"4bc3-eqrfL9Q9JP0tDt+k+eOYpluTyN8"',
55
+ "mtime": "2026-07-07T07:50:19.860Z",
56
+ "size": 19395,
57
+ "path": "../public/assets/CompareDrawer-gb4FHIDP.js"
58
58
  },
59
- "/assets/json-viewer-yQdhgjaw.js": {
59
+ "/assets/index-swjqFLcG.js": {
60
60
  "type": "text/javascript; charset=utf-8",
61
- "etag": '"1ae6-/dOqzrafTSuVKqV2HeORzmyl5nQ"',
62
- "mtime": "2026-07-07T07:16:49.140Z",
63
- "size": 6886,
64
- "path": "../public/assets/json-viewer-yQdhgjaw.js"
61
+ "etag": '"74-XiVlg5akWKoKjEDfxD0Zn1DLRkc"',
62
+ "mtime": "2026-07-07T07:50:19.860Z",
63
+ "size": 116,
64
+ "path": "../public/assets/index-swjqFLcG.js"
65
65
  },
66
66
  "/assets/minimax-BPMzvuL-.jpeg": {
67
67
  "type": "image/jpeg",
68
68
  "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
69
- "mtime": "2026-07-07T07:16:49.137Z",
69
+ "mtime": "2026-07-07T07:50:19.858Z",
70
70
  "size": 6918,
71
71
  "path": "../public/assets/minimax-BPMzvuL-.jpeg"
72
72
  },
73
- "/assets/index-SuOSQb2_.js": {
73
+ "/assets/json-viewer-ux5usy0f.js": {
74
74
  "type": "text/javascript; charset=utf-8",
75
- "etag": '"1cd2c-fcz/7fAkC94L+5g/O/yTEJNwdLM"',
76
- "mtime": "2026-07-07T07:16:49.140Z",
77
- "size": 118060,
78
- "path": "../public/assets/index-SuOSQb2_.js"
79
- },
80
- "/assets/ReplayDialog-BYanl-a_.js": {
81
- "type": "text/javascript; charset=utf-8",
82
- "etag": '"3347-l7JyhtUv5PuwyRFuP/S2WhlW2vA"',
83
- "mtime": "2026-07-07T07:16:49.140Z",
84
- "size": 13127,
85
- "path": "../public/assets/ReplayDialog-BYanl-a_.js"
86
- },
87
- "/assets/CompareDrawer-CJKL4LMm.js": {
88
- "type": "text/javascript; charset=utf-8",
89
- "etag": '"4bc3-xmP76TYJVpRr+vvy+zLDrQtQciY"',
90
- "mtime": "2026-07-07T07:16:49.140Z",
91
- "size": 19395,
92
- "path": "../public/assets/CompareDrawer-CJKL4LMm.js"
75
+ "etag": '"1ae6-MeL6E3fgcyiRTKczXSD90ROSfxo"',
76
+ "mtime": "2026-07-07T07:50:19.860Z",
77
+ "size": 6886,
78
+ "path": "../public/assets/json-viewer-ux5usy0f.js"
93
79
  },
94
- "/assets/index-DspnLqUW.css": {
80
+ "/assets/index-BIgsQvaF.css": {
95
81
  "type": "text/css; charset=utf-8",
96
- "etag": '"23991-XuDW77lmswcy3Fj+3lAejKbHi7M"',
97
- "mtime": "2026-07-07T07:16:49.140Z",
98
- "size": 145809,
99
- "path": "../public/assets/index-DspnLqUW.css"
82
+ "etag": '"23c25-AyhoABstT65ludnAAzbIkqX0g+A"',
83
+ "mtime": "2026-07-07T07:50:19.860Z",
84
+ "size": 146469,
85
+ "path": "../public/assets/index-BIgsQvaF.css"
100
86
  },
101
- "/assets/main-CgjcDxjR.js": {
87
+ "/assets/main-BM5Sp2nO.js": {
102
88
  "type": "text/javascript; charset=utf-8",
103
- "etag": '"512fd-lIDKQ2kW3Kssu+XZYoU7FG3vr/o"',
104
- "mtime": "2026-07-07T07:16:49.140Z",
89
+ "etag": '"512fd-qP69R7UaicNJBO6p9n9mKdmzIMI"',
90
+ "mtime": "2026-07-07T07:50:19.860Z",
105
91
  "size": 332541,
106
- "path": "../public/assets/main-CgjcDxjR.js"
92
+ "path": "../public/assets/main-BM5Sp2nO.js"
93
+ },
94
+ "/assets/ReplayDialog-uXfMIorn.js": {
95
+ "type": "text/javascript; charset=utf-8",
96
+ "etag": '"3347-PTlC1dkBmqIsVj3Cn/2AePaVNgU"',
97
+ "mtime": "2026-07-07T07:50:19.860Z",
98
+ "size": 13127,
99
+ "path": "../public/assets/ReplayDialog-uXfMIorn.js"
107
100
  },
108
- "/assets/RequestAnatomy-DvPz1jqE.js": {
101
+ "/assets/RequestAnatomy-NqGFn7lk.js": {
109
102
  "type": "text/javascript; charset=utf-8",
110
- "etag": '"43f2-v0SNumN4LRV0ESTSVtpSLFvrw7U"',
111
- "mtime": "2026-07-07T07:16:49.140Z",
103
+ "etag": '"43f2-Jj2F59G/LI9vc6favFHhHkgdCiY"',
104
+ "mtime": "2026-07-07T07:50:19.860Z",
112
105
  "size": 17394,
113
- "path": "../public/assets/RequestAnatomy-DvPz1jqE.js"
106
+ "path": "../public/assets/RequestAnatomy-NqGFn7lk.js"
114
107
  },
115
- "/assets/ResponseView-sZnxp9GN.js": {
108
+ "/assets/ResponseView-BWSWdjPl.js": {
116
109
  "type": "text/javascript; charset=utf-8",
117
- "etag": '"47fc-UL48vL9KqYv1bfotBEGotFclCdc"',
118
- "mtime": "2026-07-07T07:16:49.140Z",
110
+ "etag": '"47fc-RCKAzKayS9tdKDjyl9CD+VtGsTw"',
111
+ "mtime": "2026-07-07T07:50:19.860Z",
119
112
  "size": 18428,
120
- "path": "../public/assets/ResponseView-sZnxp9GN.js"
113
+ "path": "../public/assets/ResponseView-BWSWdjPl.js"
114
+ },
115
+ "/assets/index-CKVD6xzC.js": {
116
+ "type": "text/javascript; charset=utf-8",
117
+ "etag": '"1cd2c-sj9H3+ujDdOiLWuATrkUBw8i9kA"',
118
+ "mtime": "2026-07-07T07:50:19.860Z",
119
+ "size": 118060,
120
+ "path": "../public/assets/index-CKVD6xzC.js"
121
121
  },
122
122
  "/assets/zhipuai-BPNAnxo-.svg": {
123
123
  "type": "image/svg+xml",
124
124
  "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
125
- "mtime": "2026-07-07T07:16:49.136Z",
125
+ "mtime": "2026-07-07T07:50:19.858Z",
126
126
  "size": 11256,
127
127
  "path": "../public/assets/zhipuai-BPNAnxo-.svg"
128
128
  },
129
- "/assets/StreamingChunkSequence-G-tiYiBd.js": {
130
- "type": "text/javascript; charset=utf-8",
131
- "etag": '"e95-tlk/fXLPRlYoIMbaCU9ocnm8KuQ"',
132
- "mtime": "2026-07-07T07:16:49.140Z",
133
- "size": 3733,
134
- "path": "../public/assets/StreamingChunkSequence-G-tiYiBd.js"
135
- },
136
- "/assets/_sessionId-_hDcsmXq.js": {
137
- "type": "text/javascript; charset=utf-8",
138
- "etag": '"36c-7689u/S8XCNOa1m8tQB02g3UHs8"',
139
- "mtime": "2026-07-07T07:16:49.140Z",
140
- "size": 876,
141
- "path": "../public/assets/_sessionId-_hDcsmXq.js"
142
- },
143
129
  "/assets/qwen-CONDcHqt.png": {
144
130
  "type": "image/png",
145
131
  "etag": '"572c3-cdJAPaHdOvFCGzuaQjagdgOu6XE"',
146
- "mtime": "2026-07-07T07:16:49.137Z",
132
+ "mtime": "2026-07-07T07:50:19.860Z",
147
133
  "size": 357059,
148
134
  "path": "../public/assets/qwen-CONDcHqt.png"
149
135
  },
150
- "/assets/ProxyViewerContainer-DBUy29O-.js": {
136
+ "/assets/StreamingChunkSequence-qeCLglzr.js": {
137
+ "type": "text/javascript; charset=utf-8",
138
+ "etag": '"e95-+2TvicHgnsQYxk6ddzxrM2gdvVg"',
139
+ "mtime": "2026-07-07T07:50:19.860Z",
140
+ "size": 3733,
141
+ "path": "../public/assets/StreamingChunkSequence-qeCLglzr.js"
142
+ },
143
+ "/assets/_sessionId-COT-xg31.js": {
144
+ "type": "text/javascript; charset=utf-8",
145
+ "etag": '"36c-hCeaUiPL00JWKX2z/ZQwJeddCyQ"',
146
+ "mtime": "2026-07-07T07:50:19.860Z",
147
+ "size": 876,
148
+ "path": "../public/assets/_sessionId-COT-xg31.js"
149
+ },
150
+ "/assets/ProxyViewerContainer-yqasBIbY.js": {
151
151
  "type": "text/javascript; charset=utf-8",
152
- "etag": '"b6d05-7MUF7Pf21pXPXLAoeJj+3yw5QQ4"',
153
- "mtime": "2026-07-07T07:16:49.140Z",
154
- "size": 748805,
155
- "path": "../public/assets/ProxyViewerContainer-DBUy29O-.js"
152
+ "etag": '"b658d-2eslteUPfZuDheE/07WYWaaJ9bw"',
153
+ "mtime": "2026-07-07T07:50:19.860Z",
154
+ "size": 746893,
155
+ "path": "../public/assets/ProxyViewerContainer-yqasBIbY.js"
156
156
  }
157
157
  };
158
158
  function readAsset(id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonyclaw/agent-inspector",
3
- "version": "3.0.9",
3
+ "version": "3.0.11",
4
4
  "type": "module",
5
5
  "description": "Agent observability and knowledge capture layer for AI coding tools.",
6
6
  "license": "MIT",
@@ -688,12 +688,20 @@ export function ProxyViewerContainer({
688
688
  const handleDeleteCurrentView = useCallback(
689
689
  async (ids: number[]): Promise<void> => {
690
690
  if (ids.length === 0) return;
691
- const idSet = new Set(ids);
691
+ const persistedIds = ids.filter((id) => Number.isInteger(id) && id >= 0);
692
+ if (persistedIds.length === 0) {
693
+ showToast({
694
+ message: "No persisted log records were found for this view.",
695
+ tone: "error",
696
+ });
697
+ return;
698
+ }
699
+ const idSet = new Set(persistedIds);
692
700
  const removed = allLogs.filter((log) => idSet.has(log.id));
693
701
  const result = await fetchJson("/api/logs", DeleteLogsResponseSchema, {
694
702
  method: "DELETE",
695
703
  headers: { "content-type": "application/json" },
696
- body: JSON.stringify({ ids }),
704
+ body: JSON.stringify({ ids: persistedIds }),
697
705
  });
698
706
 
699
707
  setAllLogs((prev) => {