@tonyclaw/agent-inspector 3.0.41 → 3.0.43

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 (60) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/{CompareDrawer-D7CEZjaX.js → CompareDrawer-BAXxwTwT.js} +1 -1
  3. package/.output/public/assets/{InspectorPet-CZC5A3d3.js → InspectorPet-xYuGV4Qz.js} +167 -167
  4. package/.output/public/assets/ProxyViewerContainer-B6GZnUWi.js +126 -0
  5. package/.output/public/assets/{ReplayDialog-O7zJrccK.js → ReplayDialog-D73pyIg3.js} +1 -1
  6. package/.output/public/assets/{RequestAnatomy-DzJwNU_L.js → RequestAnatomy-CSDta_nu.js} +1 -1
  7. package/.output/public/assets/{ResponseView-NZExNRvM.js → ResponseView-C4aIUPby.js} +1 -1
  8. package/.output/public/assets/{StreamingChunkSequence-DXcrVPst.js → StreamingChunkSequence-D4xxosLx.js} +1 -1
  9. package/.output/public/assets/{_sessionId-BOAAnQhC.js → _sessionId-CZHbJyWO.js} +1 -1
  10. package/.output/public/assets/{_sessionId-B5lQVwmL.js → _sessionId-DvuNLzSE.js} +1 -1
  11. package/.output/public/assets/{index-BlSm4bqn.js → index-B17u7JMC.js} +16 -22
  12. package/.output/public/assets/index-BWjeqxbk.css +1 -0
  13. package/.output/public/assets/{index-DswDeL6m.js → index-C0g79BAs.js} +1 -1
  14. package/.output/public/assets/{index-zdDXZ8fd.js → index-CmEO8ykj.js} +1 -1
  15. package/.output/public/assets/{index-IpdII72q.js → index-DZ_wpqQM.js} +1 -1
  16. package/.output/public/assets/{json-viewer-C_vPvztu.js → json-viewer-CuWU-H6K.js} +1 -1
  17. package/.output/public/assets/{jszip.min-BLbXONM_.js → jszip.min-DPJI_UKW.js} +1 -1
  18. package/.output/server/{_sessionId-BDR3VoGL.mjs → _sessionId-CoFyeOti.mjs} +2 -2
  19. package/.output/server/{_sessionId-XMJZJjKn.mjs → _sessionId-Cun21KZF.mjs} +1 -1
  20. package/.output/server/_ssr/{CompareDrawer-Dc10NRP-.mjs → CompareDrawer-Bgc2TZh_.mjs} +2 -2
  21. package/.output/server/_ssr/{InspectorPet-bAbBl9xU.mjs → InspectorPet-DyK2ojeh.mjs} +20 -10
  22. package/.output/server/_ssr/{ProxyViewerContainer-C833zSld.mjs → ProxyViewerContainer-hvn6oVWD.mjs} +326 -235
  23. package/.output/server/_ssr/{ReplayDialog-irE6GkCe.mjs → ReplayDialog-KpnrGtZ-.mjs} +3 -3
  24. package/.output/server/_ssr/{RequestAnatomy-CCbfr4bA.mjs → RequestAnatomy-uCsfucn8.mjs} +2 -2
  25. package/.output/server/_ssr/{ResponseView-TE4dZ2zB.mjs → ResponseView-C8UPqoPO.mjs} +2 -2
  26. package/.output/server/_ssr/{StreamingChunkSequence-C3-k9wrY.mjs → StreamingChunkSequence-BP28I9sh.mjs} +2 -2
  27. package/.output/server/_ssr/{index-CQt9ZYRA.mjs → index-BVwVoQlZ.mjs} +1 -1
  28. package/.output/server/_ssr/{index-CORKk6yP.mjs → index-Du3YNDKx.mjs} +2 -2
  29. package/.output/server/_ssr/index.mjs +2 -2
  30. package/.output/server/_ssr/{json-viewer-CPCoU-8e.mjs → json-viewer-DrE0vtlB.mjs} +2 -2
  31. package/.output/server/_ssr/{router-CzPRr1HX.mjs → router-C6nWUZHK.mjs} +18 -24
  32. package/.output/server/{_tanstack-start-manifest_v-BRb947T9.mjs → _tanstack-start-manifest_v-rshlRaiN.mjs} +1 -1
  33. package/.output/server/index.mjs +96 -96
  34. package/package.json +9 -4
  35. package/scripts/generate-theme-scales.mjs +22 -0
  36. package/src/components/ProxyViewer.tsx +217 -103
  37. package/src/components/alerts/AlertsDialog.tsx +17 -17
  38. package/src/components/ecosystem/AgentLabDialog.tsx +11 -4
  39. package/src/components/groups/GroupsDialog.tsx +41 -26
  40. package/src/components/inspector-pet/InspectorPet.tsx +9 -9
  41. package/src/components/inspector-pet/inspectorPetLogic.ts +15 -1
  42. package/src/components/pi-agent/PiAgentPanel.tsx +12 -35
  43. package/src/components/pi-agent/piAgentChatLogic.ts +0 -24
  44. package/src/components/providers/ImportWizardDialog.tsx +1 -1
  45. package/src/components/providers/ProviderCard.tsx +4 -4
  46. package/src/components/providers/ProviderForm.tsx +11 -7
  47. package/src/components/providers/ProviderTestResultsView.tsx +15 -17
  48. package/src/components/providers/ProvidersPanel.tsx +1 -1
  49. package/src/components/providers/SettingsDialog.tsx +11 -7
  50. package/src/components/proxy-viewer/LogEntryHeader.tsx +2 -2
  51. package/src/components/proxy-viewer/TurnGroup.tsx +1 -1
  52. package/src/components/ui/icon-trigger.ts +1 -1
  53. package/src/lib/themeMode.ts +1 -5
  54. package/src/lib/uiScale.ts +8 -3
  55. package/src/routes/__root.tsx +5 -10
  56. package/styles/globals.css +35 -143
  57. package/styles/theme-scales.css +50 -0
  58. package/styles/themes.css +157 -0
  59. package/.output/public/assets/ProxyViewerContainer-DoCpLJM1.js +0 -126
  60. package/.output/public/assets/index-DKwrwHsI.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, f as fetchJsonWithTimeout, D as Dialog, b as DialogContent, c as DialogHeader, d as DialogTitle, T as Tabs, e as TabsList, h as TabsTrigger, i as TabsContent, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, m as TooltipContent, n as dispatchLogFocusRequest, A as ApiTimeoutError } from "./ProxyViewerContainer-C833zSld.mjs";
3
- import { B as Button, C as CapturedLogSchema } from "./router-CzPRr1HX.mjs";
4
- import { ResponseView } from "./ResponseView-TE4dZ2zB.mjs";
2
+ import { u as useProviders, f as fetchJsonWithTimeout, D as Dialog, b as DialogContent, c as DialogHeader, d as DialogTitle, T as Tabs, e as TabsList, h as TabsTrigger, i as TabsContent, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, m as TooltipContent, n as dispatchLogFocusRequest, A as ApiTimeoutError } from "./ProxyViewerContainer-hvn6oVWD.mjs";
3
+ import { B as Button, C as CapturedLogSchema } from "./router-C6nWUZHK.mjs";
4
+ import { ResponseView } from "./ResponseView-C8UPqoPO.mjs";
5
5
  import "node:crypto";
6
6
  import "node:path";
7
7
  import "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { y as formatTokens, m as cn, Y as formatContextWindowTokens } from "./router-CzPRr1HX.mjs";
3
- import { u as useProviders, o as analyzeContextIntelligence, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, m as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, p as ANATOMY_ROLE_LABELS, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-C833zSld.mjs";
2
+ import { y as formatTokens, m as cn, Y as formatContextWindowTokens } from "./router-C6nWUZHK.mjs";
3
+ import { u as useProviders, o as analyzeContextIntelligence, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, m as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, p as ANATOMY_ROLE_LABELS, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-hvn6oVWD.mjs";
4
4
  import "node:crypto";
5
5
  import "node:path";
6
6
  import "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { y as formatTokens, m as cn, E as getStatusCategory, s as safeGetOwnProperty } from "./router-CzPRr1HX.mjs";
3
- import { g as getLogFormatAdapter, q as AnswerMarkdown, B as Badge, s as Collapsible, t as CollapsibleTrigger, v as CollapsibleContent, w as ScrollArea, x as LazyJsonViewer, y as safeJsonValue } from "./ProxyViewerContainer-C833zSld.mjs";
2
+ import { y as formatTokens, m as cn, E as getStatusCategory, s as safeGetOwnProperty } from "./router-C6nWUZHK.mjs";
3
+ import { g as getLogFormatAdapter, q as AnswerMarkdown, B as Badge, s as Collapsible, t as CollapsibleTrigger, v as CollapsibleContent, w as ScrollArea, x as LazyJsonViewer, y as safeJsonValue } from "./ProxyViewerContainer-hvn6oVWD.mjs";
4
4
  import "node:crypto";
5
5
  import "node:path";
6
6
  import "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { f as fetchJsonWithTimeout, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, B as Badge, m as TooltipContent, x as LazyJsonViewer } from "./ProxyViewerContainer-C833zSld.mjs";
3
- import { ah as StreamingChunkSchema$1 } from "./router-CzPRr1HX.mjs";
2
+ import { f as fetchJsonWithTimeout, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, B as Badge, m as TooltipContent, x as LazyJsonViewer } from "./ProxyViewerContainer-hvn6oVWD.mjs";
3
+ import { ah as StreamingChunkSchema$1 } from "./router-C6nWUZHK.mjs";
4
4
  import "node:crypto";
5
5
  import "node:path";
6
6
  import "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { S as SafeRouteError } from "./router-CzPRr1HX.mjs";
2
+ import { S as SafeRouteError } from "./router-C6nWUZHK.mjs";
3
3
  import "node:crypto";
4
4
  import "node:path";
5
5
  import "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { P as ProxyViewerContainer } from "./ProxyViewerContainer-C833zSld.mjs";
3
- import "./router-CzPRr1HX.mjs";
2
+ import { P as ProxyViewerContainer } from "./ProxyViewerContainer-hvn6oVWD.mjs";
3
+ import "./router-C6nWUZHK.mjs";
4
4
  import "node:crypto";
5
5
  import "node:path";
6
6
  import "node:fs";
@@ -85,7 +85,7 @@ function getResponse() {
85
85
  }
86
86
  var HEADERS = { TSS_SHELL: "X-TSS_SHELL" };
87
87
  async function getStartManifest(matchedRoutes) {
88
- const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-BRb947T9.mjs");
88
+ const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-rshlRaiN.mjs");
89
89
  const startManifest = tsrStartManifest();
90
90
  let routes = startManifest.routes;
91
91
  routes[rootRouteId];
@@ -1162,7 +1162,7 @@ var getBaseManifest = getProdBaseManifest;
1162
1162
  var createEarlyHintsForRequest = createEarlyHintsCollector;
1163
1163
  async function loadEntries() {
1164
1164
  const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
1165
- import("./router-CzPRr1HX.mjs").then((n) => n.ai),
1165
+ import("./router-C6nWUZHK.mjs").then((n) => n.ai),
1166
1166
  import("./start-HYkvq4Ni.mjs"),
1167
1167
  import("./empty-plugin-adapters-BFgPZ6_d.mjs")
1168
1168
  ]);
@@ -1,6 +1,6 @@
1
1
  import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
2
- import { m as cn, z as copyTextToClipboard } from "./router-CzPRr1HX.mjs";
3
- import { z as parseJsonText, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, m as TooltipContent } from "./ProxyViewerContainer-C833zSld.mjs";
2
+ import { m as cn, z as copyTextToClipboard } from "./router-C6nWUZHK.mjs";
3
+ import { z as parseJsonText, j as TooltipProvider, k as Tooltip, l as TooltipTrigger, m as TooltipContent } from "./ProxyViewerContainer-hvn6oVWD.mjs";
4
4
  import "node:crypto";
5
5
  import "node:path";
6
6
  import "node:fs";
@@ -447,7 +447,7 @@ function SafeRouteError({
447
447
  }
448
448
  );
449
449
  }
450
- const appCss = "/assets/index-DKwrwHsI.css";
450
+ const appCss = "/assets/index-BWjeqxbk.css";
451
451
  const CHUNK_LOAD_RELOAD_AT_KEY = "agent-inspector.chunkLoadReloadAt";
452
452
  const CHUNK_LOAD_RELOAD_WINDOW_MS = 15e3;
453
453
  const CHUNK_LOAD_FAILURE_PATTERNS = [
@@ -533,11 +533,7 @@ function normalizeThemeMode(value) {
533
533
  }
534
534
  function applyThemeMode(themeMode) {
535
535
  if (typeof document === "undefined") return;
536
- const root = document.documentElement;
537
- root.classList.toggle("dark", themeMode === "dark");
538
- root.classList.toggle("eye-care", themeMode === "eye-care");
539
- root.dataset.theme = themeMode;
540
- root.style.colorScheme = themeMode === "dark" ? "dark" : "light";
536
+ document.documentElement.dataset.theme = themeMode;
541
537
  }
542
538
  function readStoredThemeMode() {
543
539
  if (typeof window === "undefined") return "dark";
@@ -558,6 +554,7 @@ const UI_SCALE_STORAGE_KEY = "agent-inspector.uiScale";
558
554
  const UI_SCALE_AUTO_MAX_DPR = 1.25;
559
555
  const UI_SCALE_AUTO_MEDIUM_WIDTH = 2200;
560
556
  const UI_SCALE_AUTO_LARGE_WIDTH = 3e3;
557
+ const UI_SCALE_MINIMUM_COMPACT_FONT_SIZE = 12;
561
558
  function positiveFinite(value, fallback) {
562
559
  return Number.isFinite(value) && value > 0 ? value : fallback;
563
560
  }
@@ -600,6 +597,9 @@ function resolveUiScale(preference, environment) {
600
597
  function formatUiScale(scale) {
601
598
  return `${Math.round(scale * 100)}%`;
602
599
  }
600
+ function resolveCompactFontSize(baseSize, scale) {
601
+ return Math.max(UI_SCALE_MINIMUM_COMPACT_FONT_SIZE, baseSize * scale);
602
+ }
603
603
  function readUiScaleEnvironment() {
604
604
  if (typeof window === "undefined") {
605
605
  return { viewportWidth: 1280, screenWidth: 1280, devicePixelRatio: 1 };
@@ -619,9 +619,9 @@ function applyUiScalePreference(preference) {
619
619
  root.dataset.uiScaleResolved = String(Math.round(scale * 100));
620
620
  root.style.setProperty("--inspector-ui-scale", String(scale));
621
621
  root.style.setProperty("--inspector-root-font-size", `${String(16 * scale)}px`);
622
- root.style.setProperty("--inspector-font-9", `${String(9 * scale)}px`);
623
- root.style.setProperty("--inspector-font-10", `${String(10 * scale)}px`);
624
- root.style.setProperty("--inspector-font-11", `${String(11 * scale)}px`);
622
+ root.style.setProperty("--inspector-font-9", `${String(resolveCompactFontSize(9, scale))}px`);
623
+ root.style.setProperty("--inspector-font-10", `${String(resolveCompactFontSize(10, scale))}px`);
624
+ root.style.setProperty("--inspector-font-11", `${String(resolveCompactFontSize(11, scale))}px`);
625
625
  root.style.setProperty("--inspector-font-13", `${String(13 * scale)}px`);
626
626
  return scale;
627
627
  }
@@ -648,15 +648,9 @@ const themeModeBootstrapScript = `
648
648
  ? storedThemeMode
649
649
  : "dark";
650
650
  var root = document.documentElement;
651
- root.classList.toggle("dark", themeMode === "dark");
652
- root.classList.toggle("eye-care", themeMode === "eye-care");
653
651
  root.dataset.theme = themeMode;
654
- root.style.colorScheme = themeMode === "dark" ? "dark" : "light";
655
652
  } catch (error) {
656
- document.documentElement.classList.add("dark");
657
- document.documentElement.classList.remove("eye-care");
658
653
  document.documentElement.dataset.theme = "dark";
659
- document.documentElement.style.colorScheme = "dark";
660
654
  }
661
655
  })();
662
656
  `;
@@ -696,9 +690,9 @@ const uiScaleBootstrapScript = `
696
690
  root.dataset.uiScaleResolved = String(Math.round(resolvedUiScale * 100));
697
691
  root.style.setProperty("--inspector-ui-scale", String(resolvedUiScale));
698
692
  root.style.setProperty("--inspector-root-font-size", String(16 * resolvedUiScale) + "px");
699
- root.style.setProperty("--inspector-font-9", String(9 * resolvedUiScale) + "px");
700
- root.style.setProperty("--inspector-font-10", String(10 * resolvedUiScale) + "px");
701
- root.style.setProperty("--inspector-font-11", String(11 * resolvedUiScale) + "px");
693
+ root.style.setProperty("--inspector-font-9", String(Math.max(${String(UI_SCALE_MINIMUM_COMPACT_FONT_SIZE)}, 9 * resolvedUiScale)) + "px");
694
+ root.style.setProperty("--inspector-font-10", String(Math.max(${String(UI_SCALE_MINIMUM_COMPACT_FONT_SIZE)}, 10 * resolvedUiScale)) + "px");
695
+ root.style.setProperty("--inspector-font-11", String(Math.max(${String(UI_SCALE_MINIMUM_COMPACT_FONT_SIZE)}, 11 * resolvedUiScale)) + "px");
702
696
  root.style.setProperty("--inspector-font-13", String(13 * resolvedUiScale) + "px");
703
697
  } catch (error) {
704
698
  document.documentElement.dataset.uiScale = "auto";
@@ -755,7 +749,7 @@ function RootNotFoundComponent() {
755
749
  ] }) }) }) });
756
750
  }
757
751
  function RootDocument({ children }) {
758
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("html", { lang: "en", className: "dark", "data-theme": "dark", suppressHydrationWarning: true, children: [
752
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("html", { lang: "en", "data-theme": "dark", suppressHydrationWarning: true, children: [
759
753
  /* @__PURE__ */ jsxRuntimeExports.jsxs("head", { children: [
760
754
  /* @__PURE__ */ jsxRuntimeExports.jsx("script", { dangerouslySetInnerHTML: { __html: themeModeBootstrapScript } }),
761
755
  /* @__PURE__ */ jsxRuntimeExports.jsx("script", { dangerouslySetInnerHTML: { __html: uiScaleBootstrapScript } }),
@@ -6871,15 +6865,15 @@ const Route$M = createFileRoute("/livez")({
6871
6865
  }
6872
6866
  }
6873
6867
  });
6874
- const $$splitErrorComponentImporter$1 = () => import("./index-CQt9ZYRA.mjs");
6875
- const $$splitComponentImporter$1 = () => import("./index-CORKk6yP.mjs");
6868
+ const $$splitErrorComponentImporter$1 = () => import("./index-BVwVoQlZ.mjs");
6869
+ const $$splitComponentImporter$1 = () => import("./index-Du3YNDKx.mjs");
6876
6870
  const Route$L = createFileRoute("/")({
6877
6871
  ssr: false,
6878
6872
  component: lazyRouteComponent($$splitComponentImporter$1, "component"),
6879
6873
  errorComponent: lazyRouteComponent($$splitErrorComponentImporter$1, "errorComponent")
6880
6874
  });
6881
- const $$splitErrorComponentImporter = () => import("../_sessionId-XMJZJjKn.mjs");
6882
- const $$splitComponentImporter = () => import("../_sessionId-BDR3VoGL.mjs");
6875
+ const $$splitErrorComponentImporter = () => import("../_sessionId-Cun21KZF.mjs");
6876
+ const $$splitComponentImporter = () => import("../_sessionId-CoFyeOti.mjs");
6883
6877
  const Route$K = createFileRoute("/session/$sessionId")({
6884
6878
  ssr: false,
6885
6879
  component: lazyRouteComponent($$splitComponentImporter, "component"),
@@ -13315,7 +13309,7 @@ const Route$E = createFileRoute("/api/models")({
13315
13309
  }
13316
13310
  });
13317
13311
  const name = "@tonyclaw/agent-inspector";
13318
- const version = "3.0.41";
13312
+ const version = "3.0.43";
13319
13313
  const packageJson = {
13320
13314
  name,
13321
13315
  version
@@ -1,4 +1,4 @@
1
- const tsrStartManifest = () => ({ routes: { __root__: { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", children: ["/", "/livez", "/readyz", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/pi-agent", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/ecosystem/packages", "/api/ecosystem/tasks", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/ecosystem/recipes/$recipeId/run", "/api/knowledge/sessions/$sessionId/candidates"], preloads: ["/assets/index-BlSm4bqn.js"], scripts: [{ attrs: { type: "module", async: true, src: "/assets/index-BlSm4bqn.js" } }] }, "/": { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", children: void 0, preloads: ["/assets/index-IpdII72q.js", "/assets/index-DswDeL6m.js", "/assets/ProxyViewerContainer-DoCpLJM1.js"] }, "/session/$sessionId": { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/session/$sessionId.tsx", children: void 0, preloads: ["/assets/_sessionId-B5lQVwmL.js", "/assets/_sessionId-BOAAnQhC.js", "/assets/ProxyViewerContainer-DoCpLJM1.js"] } } });
1
+ const tsrStartManifest = () => ({ routes: { __root__: { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", children: ["/", "/livez", "/readyz", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/pi-agent", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/ecosystem/packages", "/api/ecosystem/tasks", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/ecosystem/recipes/$recipeId/run", "/api/knowledge/sessions/$sessionId/candidates"], preloads: ["/assets/index-B17u7JMC.js"], scripts: [{ attrs: { type: "module", async: true, src: "/assets/index-B17u7JMC.js" } }] }, "/": { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", children: void 0, preloads: ["/assets/index-DZ_wpqQM.js", "/assets/index-C0g79BAs.js", "/assets/ProxyViewerContainer-B6GZnUWi.js"] }, "/session/$sessionId": { filePath: "C:/Users/claw/workspace/agent-inspector/src/routes/session/$sessionId.tsx", children: void 0, preloads: ["/assets/_sessionId-DvuNLzSE.js", "/assets/_sessionId-CZHbJyWO.js", "/assets/ProxyViewerContainer-B6GZnUWi.js"] } } });
2
2
  export {
3
3
  tsrStartManifest
4
4
  };
@@ -17,152 +17,152 @@ const headers = ((m) => function headersRouteRule(event) {
17
17
  }
18
18
  });
19
19
  const assets = {
20
- "/assets/alibaba-TTwafVwX.svg": {
21
- "type": "image/svg+xml",
22
- "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
23
- "mtime": "2026-07-14T09:09:55.008Z",
24
- "size": 5915,
25
- "path": "../public/assets/alibaba-TTwafVwX.svg"
26
- },
27
20
  "/assets/agent-inspector-58K1_MsC.ico": {
28
21
  "type": "image/vnd.microsoft.icon",
29
22
  "etag": '"38fa-ZD8kPABHYjPIkcH82FMY6iZM7fI"',
30
- "mtime": "2026-07-14T09:09:55.008Z",
23
+ "mtime": "2026-07-15T02:45:04.523Z",
31
24
  "size": 14586,
32
25
  "path": "../public/assets/agent-inspector-58K1_MsC.ico"
33
26
  },
34
- "/assets/index-IpdII72q.js": {
27
+ "/assets/CompareDrawer-BAXxwTwT.js": {
35
28
  "type": "text/javascript; charset=utf-8",
36
- "etag": '"9f-ROa+tKlU20fKTa6ajAYX9BWtcNg"',
37
- "mtime": "2026-07-14T09:09:55.008Z",
38
- "size": 159,
39
- "path": "../public/assets/index-IpdII72q.js"
40
- },
41
- "/assets/CompareDrawer-D7CEZjaX.js": {
42
- "type": "text/javascript; charset=utf-8",
43
- "etag": '"502d-mOaOgaB+lDnlt0J3NLYBtyjTyBs"',
44
- "mtime": "2026-07-14T09:09:55.009Z",
29
+ "etag": '"502d-FLD4XAhWLLR+RAs+7cVnR8MbjnU"',
30
+ "mtime": "2026-07-15T02:45:04.525Z",
45
31
  "size": 20525,
46
- "path": "../public/assets/CompareDrawer-D7CEZjaX.js"
32
+ "path": "../public/assets/CompareDrawer-BAXxwTwT.js"
47
33
  },
48
- "/assets/index-DswDeL6m.js": {
34
+ "/assets/index-DZ_wpqQM.js": {
49
35
  "type": "text/javascript; charset=utf-8",
50
- "etag": '"265-QIIQCWstZG0v64G73003bimMTOs"',
51
- "mtime": "2026-07-14T09:09:55.008Z",
52
- "size": 613,
53
- "path": "../public/assets/index-DswDeL6m.js"
36
+ "etag": '"9f-3VvYNzl9ea1RoJEoX9KaSixnUd4"',
37
+ "mtime": "2026-07-15T02:45:04.525Z",
38
+ "size": 159,
39
+ "path": "../public/assets/index-DZ_wpqQM.js"
54
40
  },
55
- "/assets/index-zdDXZ8fd.js": {
56
- "type": "text/javascript; charset=utf-8",
57
- "etag": '"1cd2d-gp1RpTjgbqFvQScuC7PZr9bo4bM"',
58
- "mtime": "2026-07-14T09:09:55.009Z",
59
- "size": 118061,
60
- "path": "../public/assets/index-zdDXZ8fd.js"
41
+ "/assets/alibaba-TTwafVwX.svg": {
42
+ "type": "image/svg+xml",
43
+ "etag": '"171b-6dyV5K8QjiaY35sN9qNprh9zDIs"',
44
+ "mtime": "2026-07-15T02:45:04.525Z",
45
+ "size": 5915,
46
+ "path": "../public/assets/alibaba-TTwafVwX.svg"
61
47
  },
62
- "/assets/jszip.min-BLbXONM_.js": {
63
- "type": "text/javascript; charset=utf-8",
64
- "etag": '"17b79-zoKeYefce0HzZHNXhuPcr3vgDCM"',
65
- "mtime": "2026-07-14T09:09:55.009Z",
66
- "size": 97145,
67
- "path": "../public/assets/jszip.min-BLbXONM_.js"
48
+ "/assets/index-BWjeqxbk.css": {
49
+ "type": "text/css; charset=utf-8",
50
+ "etag": '"2b549-JABsgs2BeSJ6uz0npelVGBtdBzk"',
51
+ "mtime": "2026-07-15T02:45:04.525Z",
52
+ "size": 177481,
53
+ "path": "../public/assets/index-BWjeqxbk.css"
68
54
  },
69
- "/assets/json-viewer-C_vPvztu.js": {
55
+ "/assets/index-CmEO8ykj.js": {
70
56
  "type": "text/javascript; charset=utf-8",
71
- "etag": '"1ae2-apwROcziikJJseuiji/1lEoMj2Y"',
72
- "mtime": "2026-07-14T09:09:55.009Z",
73
- "size": 6882,
74
- "path": "../public/assets/json-viewer-C_vPvztu.js"
57
+ "etag": '"1cd2d-67i18P18qzyIK2xNC/8wd/8uaoA"',
58
+ "mtime": "2026-07-15T02:45:04.526Z",
59
+ "size": 118061,
60
+ "path": "../public/assets/index-CmEO8ykj.js"
75
61
  },
76
- "/assets/index-DKwrwHsI.css": {
77
- "type": "text/css; charset=utf-8",
78
- "etag": '"2b128-vfhUOjrhTuAxt1g6iWtE4D4FOLQ"',
79
- "mtime": "2026-07-14T09:09:55.008Z",
80
- "size": 176424,
81
- "path": "../public/assets/index-DKwrwHsI.css"
62
+ "/assets/index-C0g79BAs.js": {
63
+ "type": "text/javascript; charset=utf-8",
64
+ "etag": '"265-/QxyLY0C5068kDY9Qtqbn3DntIc"',
65
+ "mtime": "2026-07-15T02:45:04.525Z",
66
+ "size": 613,
67
+ "path": "../public/assets/index-C0g79BAs.js"
82
68
  },
83
69
  "/assets/minimax-BPMzvuL-.jpeg": {
84
70
  "type": "image/jpeg",
85
71
  "etag": '"1b06-IwivU89ko5UTMUM1/t7hn4sQK9A"',
86
- "mtime": "2026-07-14T09:09:55.008Z",
72
+ "mtime": "2026-07-15T02:45:04.525Z",
87
73
  "size": 6918,
88
74
  "path": "../public/assets/minimax-BPMzvuL-.jpeg"
89
75
  },
90
- "/assets/ReplayDialog-O7zJrccK.js": {
76
+ "/assets/index-B17u7JMC.js": {
91
77
  "type": "text/javascript; charset=utf-8",
92
- "etag": '"3294-BLh4mjYNksUFvaqnSg/cQrxN3yc"',
93
- "mtime": "2026-07-14T09:09:55.009Z",
94
- "size": 12948,
95
- "path": "../public/assets/ReplayDialog-O7zJrccK.js"
78
+ "etag": '"5c899-e5bKrXdnzaqPWls1MKh3IV/GaQw"',
79
+ "mtime": "2026-07-15T02:45:04.525Z",
80
+ "size": 379033,
81
+ "path": "../public/assets/index-B17u7JMC.js"
96
82
  },
97
- "/assets/ResponseView-NZExNRvM.js": {
83
+ "/assets/json-viewer-CuWU-H6K.js": {
98
84
  "type": "text/javascript; charset=utf-8",
99
- "etag": '"44d3-Vh4BOTp5gLciWgtEEAr7eLFe9YI"',
100
- "mtime": "2026-07-14T09:09:55.009Z",
101
- "size": 17619,
102
- "path": "../public/assets/ResponseView-NZExNRvM.js"
85
+ "etag": '"1ae2-o19BwHcX8b1Mr0awko38lVJwV9M"',
86
+ "mtime": "2026-07-15T02:45:04.526Z",
87
+ "size": 6882,
88
+ "path": "../public/assets/json-viewer-CuWU-H6K.js"
103
89
  },
104
- "/assets/index-BlSm4bqn.js": {
90
+ "/assets/ReplayDialog-D73pyIg3.js": {
105
91
  "type": "text/javascript; charset=utf-8",
106
- "etag": '"5ca1f-RUo1hUPcu8dp5ayWtUf042Ny9NA"',
107
- "mtime": "2026-07-14T09:09:55.008Z",
108
- "size": 379423,
109
- "path": "../public/assets/index-BlSm4bqn.js"
92
+ "etag": '"3294-juK1Ds9Q2hKSlMjKrwNu9h9NwxY"',
93
+ "mtime": "2026-07-15T02:45:04.526Z",
94
+ "size": 12948,
95
+ "path": "../public/assets/ReplayDialog-D73pyIg3.js"
110
96
  },
111
97
  "/assets/qwen-mMn3f5ul.webp": {
112
98
  "type": "image/webp",
113
99
  "etag": '"1b1a-Tw+b2ynhJQl9WztaK3ajSL85yaU"',
114
- "mtime": "2026-07-14T09:09:55.008Z",
100
+ "mtime": "2026-07-15T02:45:04.525Z",
115
101
  "size": 6938,
116
102
  "path": "../public/assets/qwen-mMn3f5ul.webp"
117
103
  },
118
- "/assets/RequestAnatomy-DzJwNU_L.js": {
119
- "type": "text/javascript; charset=utf-8",
120
- "etag": '"43f3-9DCXOGXlQ1wjmtSs9/voMFfkYYo"',
121
- "mtime": "2026-07-14T09:09:55.009Z",
122
- "size": 17395,
123
- "path": "../public/assets/RequestAnatomy-DzJwNU_L.js"
124
- },
125
- "/assets/StreamingChunkSequence-DXcrVPst.js": {
104
+ "/assets/ResponseView-C4aIUPby.js": {
126
105
  "type": "text/javascript; charset=utf-8",
127
- "etag": '"e96-+0e/QSQiDKFTUfGagNioUG2U0ss"',
128
- "mtime": "2026-07-14T09:09:55.009Z",
129
- "size": 3734,
130
- "path": "../public/assets/StreamingChunkSequence-DXcrVPst.js"
106
+ "etag": '"44d3-0bbB9O00SAArk9On7LnEuimq+04"',
107
+ "mtime": "2026-07-15T02:45:04.525Z",
108
+ "size": 17619,
109
+ "path": "../public/assets/ResponseView-C4aIUPby.js"
131
110
  },
132
111
  "/assets/zhipuai-BPNAnxo-.svg": {
133
112
  "type": "image/svg+xml",
134
113
  "etag": '"2bf8-hNaLCTi89nOFCsIIfWpP/jrfo0s"',
135
- "mtime": "2026-07-14T09:09:55.008Z",
114
+ "mtime": "2026-07-15T02:45:04.525Z",
136
115
  "size": 11256,
137
116
  "path": "../public/assets/zhipuai-BPNAnxo-.svg"
138
117
  },
139
- "/assets/_sessionId-BOAAnQhC.js": {
118
+ "/assets/StreamingChunkSequence-D4xxosLx.js": {
140
119
  "type": "text/javascript; charset=utf-8",
141
- "etag": '"36d-6TUCe9CyUXR5B6wNrCjcwfGfq24"',
142
- "mtime": "2026-07-14T09:09:55.009Z",
143
- "size": 877,
144
- "path": "../public/assets/_sessionId-BOAAnQhC.js"
120
+ "etag": '"e96-tiCLl91KGndnYpXEMF0NMCRh/N4"',
121
+ "mtime": "2026-07-15T02:45:04.526Z",
122
+ "size": 3734,
123
+ "path": "../public/assets/StreamingChunkSequence-D4xxosLx.js"
124
+ },
125
+ "/assets/jszip.min-DPJI_UKW.js": {
126
+ "type": "text/javascript; charset=utf-8",
127
+ "etag": '"17b79-fmz7KYJdH8cFl+/aT/Rrkb7OwXU"',
128
+ "mtime": "2026-07-15T02:45:04.525Z",
129
+ "size": 97145,
130
+ "path": "../public/assets/jszip.min-DPJI_UKW.js"
145
131
  },
146
- "/assets/_sessionId-B5lQVwmL.js": {
132
+ "/assets/_sessionId-DvuNLzSE.js": {
147
133
  "type": "text/javascript; charset=utf-8",
148
- "etag": '"a2-u2PEoyQGmrAdS8WrR2nkr/uu/w4"',
149
- "mtime": "2026-07-14T09:09:55.008Z",
134
+ "etag": '"a2-cYw3u7o3sY8S23GZBzGYUOlz7/8"',
135
+ "mtime": "2026-07-15T02:45:04.525Z",
150
136
  "size": 162,
151
- "path": "../public/assets/_sessionId-B5lQVwmL.js"
137
+ "path": "../public/assets/_sessionId-DvuNLzSE.js"
138
+ },
139
+ "/assets/RequestAnatomy-CSDta_nu.js": {
140
+ "type": "text/javascript; charset=utf-8",
141
+ "etag": '"43f3-tFawU51kflaTat+Pq72mOMp/ptc"',
142
+ "mtime": "2026-07-15T02:45:04.526Z",
143
+ "size": 17395,
144
+ "path": "../public/assets/RequestAnatomy-CSDta_nu.js"
145
+ },
146
+ "/assets/_sessionId-CZHbJyWO.js": {
147
+ "type": "text/javascript; charset=utf-8",
148
+ "etag": '"36d-oYtK/1Z5/pt9GbaVrA9KQwo+uMM"',
149
+ "mtime": "2026-07-15T02:45:04.525Z",
150
+ "size": 877,
151
+ "path": "../public/assets/_sessionId-CZHbJyWO.js"
152
152
  },
153
- "/assets/InspectorPet-CZC5A3d3.js": {
153
+ "/assets/InspectorPet-xYuGV4Qz.js": {
154
154
  "type": "text/javascript; charset=utf-8",
155
- "etag": '"818f0-rmnoEMQB3ZtkCZdif3cLkn294FI"',
156
- "mtime": "2026-07-14T09:09:55.009Z",
157
- "size": 530672,
158
- "path": "../public/assets/InspectorPet-CZC5A3d3.js"
155
+ "etag": '"81982-tqlNFdoBfi+6nzwE1pslZlHgIbs"',
156
+ "mtime": "2026-07-15T02:45:04.526Z",
157
+ "size": 530818,
158
+ "path": "../public/assets/InspectorPet-xYuGV4Qz.js"
159
159
  },
160
- "/assets/ProxyViewerContainer-DoCpLJM1.js": {
160
+ "/assets/ProxyViewerContainer-B6GZnUWi.js": {
161
161
  "type": "text/javascript; charset=utf-8",
162
- "etag": '"a5185-QhLM/DAazB98dgw0Wiz7jPoeS8Y"',
163
- "mtime": "2026-07-14T09:09:55.009Z",
164
- "size": 676229,
165
- "path": "../public/assets/ProxyViewerContainer-DoCpLJM1.js"
162
+ "etag": '"a5699-p8L/kE/qnyvv9SN5S7NYMgMzsEw"',
163
+ "mtime": "2026-07-15T02:45:04.526Z",
164
+ "size": 677529,
165
+ "path": "../public/assets/ProxyViewerContainer-B6GZnUWi.js"
166
166
  }
167
167
  };
168
168
  function readAsset(id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonyclaw/agent-inspector",
3
- "version": "3.0.41",
3
+ "version": "3.0.43",
4
4
  "type": "module",
5
5
  "description": "Agent observability and knowledge capture layer for AI coding tools.",
6
6
  "license": "MIT",
@@ -47,6 +47,7 @@
47
47
  "!src/routeTree.gen.ts",
48
48
  "scripts/setup-windows-runtime.mjs",
49
49
  "scripts/setup-agent-skills.mjs",
50
+ "scripts/generate-theme-scales.mjs",
50
51
  "styles",
51
52
  ".output",
52
53
  "!.output/*.exe"
@@ -67,17 +68,19 @@
67
68
  "check:bundle": "node scripts/check-client-bundle.mjs",
68
69
  "build:cli": "npx esbuild src/cli.ts --bundle --platform=node --target=node22 --format=esm --outfile=.output/cli.js",
69
70
  "build:mcp": "npx esbuild packages/agent-inspector-mcp/src/cli.ts --bundle --platform=node --target=node22 --format=esm --outfile=packages/agent-inspector-mcp/dist/cli.js",
71
+ "themes:generate": "node scripts/generate-theme-scales.mjs",
70
72
  "postinstall": "node scripts/setup-windows-runtime.mjs && node scripts/setup-agent-skills.mjs",
71
73
  "prepublishOnly": "npm run build",
72
- "typecheck": "tsc --noEmit",
73
- "lint": "eslint .",
74
+ "typecheck": "tsc --noEmit --incremental --tsBuildInfoFile .cache/tsconfig.tsbuildinfo",
75
+ "lint": "eslint . --cache --cache-location .cache/eslintcache",
74
76
  "format": "biome format --write .",
75
77
  "format:check": "biome format .",
78
+ "verify:fast": "bun scripts/run-static-checks.mjs --format && bun test:changed",
76
79
  "extension:zip": "node scripts/pack-chrome-extension.mjs",
77
80
  "extension:release": "node scripts/release-chrome-extension.mjs",
78
81
  "release": "node scripts/release.mjs",
79
82
  "knip": "knip",
80
- "check": "bun format && bun typecheck && bun lint",
83
+ "check": "bun scripts/run-static-checks.mjs --format",
81
84
  "prepare": "husky",
82
85
  "ladle": "ladle serve",
83
86
  "ladle:build": "ladle build"
@@ -114,6 +117,7 @@
114
117
  "@biomejs/biome": "^2.5.3",
115
118
  "@eslint/js": "^10.0.1",
116
119
  "@ladle/react": "^5.1.1",
120
+ "@radix-ui/colors": "^3.0.0",
117
121
  "@tailwindcss/vite": "^4.3.2",
118
122
  "@types/bun": "^1.3.14",
119
123
  "@types/react": "^19.2.17",
@@ -122,6 +126,7 @@
122
126
  "@typescript-eslint/eslint-plugin": "^8.64.0",
123
127
  "@typescript-eslint/parser": "^8.64.0",
124
128
  "@vitejs/plugin-react": "^5.2.0",
129
+ "colorjs.io": "^0.7.0",
125
130
  "esbuild": "^0.28.1",
126
131
  "eslint": "^9.39.5",
127
132
  "eslint-plugin-eslint-comments": "^3.2.0",
@@ -0,0 +1,22 @@
1
+ import { writeFile } from "node:fs/promises";
2
+ import { URL } from "node:url";
3
+ import { olive, sand, slateDark } from "@radix-ui/colors";
4
+
5
+ const themes = [
6
+ { selector: ":root,\n:root[data-theme=\"light\"]", scale: sand, source: "sand" },
7
+ { selector: ":root[data-theme=\"dark\"]", scale: slateDark, source: "slateDark" },
8
+ { selector: ":root[data-theme=\"eye-care\"]", scale: olive, source: "olive" },
9
+ ];
10
+
11
+ function renderTheme({ selector, scale, source }) {
12
+ const declarations = Object.values(scale)
13
+ .map((color, index) => ` --inspector-neutral-${String(index + 1)}: ${color};`)
14
+ .join("\n");
15
+ return `${selector} {\n /* @radix-ui/colors: ${source} */\n${declarations}\n}`;
16
+ }
17
+
18
+ const output = `/* Generated by bun run themes:generate. Do not edit directly. */\n\n${themes
19
+ .map(renderTheme)
20
+ .join("\n\n")}\n`;
21
+
22
+ await writeFile(new URL("../styles/theme-scales.css", import.meta.url), output, "utf8");