@tonyclaw/agent-inspector 2.0.2 → 2.0.4
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-Bp7_x-5N.js → CompareDrawer-BCH_fsLm.js} +1 -1
- package/.output/public/assets/ProxyViewerContainer-D85_UANk.js +101 -0
- package/.output/public/assets/{ReplayDialog-DFHCd0yx.js → ReplayDialog-DTeaHHit.js} +1 -1
- package/.output/public/assets/RequestAnatomy-DZ8grAih.js +1 -0
- package/.output/public/assets/ResponseView-Cldm6RCi.js +1 -0
- package/.output/public/assets/{StreamingChunkSequence-Bjs4Lqwn.js → StreamingChunkSequence-3x4p-yT7.js} +1 -1
- package/.output/public/assets/_sessionId-YqWFBu6d.js +1 -0
- package/.output/public/assets/index-BIw2H6jO.js +1 -0
- package/.output/public/assets/index-CobXD0yH.css +1 -0
- package/.output/public/assets/{json-viewer-6uV_YXws.js → json-viewer-BrzjD7qI.js} +1 -1
- package/.output/public/assets/{main-FSGUGtEL.js → main-mgxeUdZQ.js} +2 -2
- package/.output/server/_libs/lucide-react.mjs +8 -8
- package/.output/server/{_sessionId-_bf9vUww.mjs → _sessionId-C4xsxIWm.mjs} +2 -2
- package/.output/server/_ssr/{CompareDrawer-DIth2DQM.mjs → CompareDrawer-DuWEpqQ7.mjs} +4 -4
- package/.output/server/_ssr/{ProxyViewerContainer-249bTH-T.mjs → ProxyViewerContainer-Cckz5qKu.mjs} +519 -89
- package/.output/server/_ssr/{ReplayDialog-C1aGx0y1.mjs → ReplayDialog-BDRcr8E5.mjs} +4 -4
- package/.output/server/_ssr/{RequestAnatomy-D2bCiEJn.mjs → RequestAnatomy-BoO2_Ij0.mjs} +5 -5
- package/.output/server/_ssr/{ResponseView-DP6k4Xs_.mjs → ResponseView-DZiPBxvO.mjs} +21 -17
- package/.output/server/_ssr/{StreamingChunkSequence-HyXZV-b5.mjs → StreamingChunkSequence-D-be7KEL.mjs} +3 -3
- package/.output/server/_ssr/{index-Bt47f9pn.mjs → index-5RImHKfu.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-Co-YRwUP.mjs → json-viewer-aJhb93ZK.mjs} +2 -2
- package/.output/server/_ssr/{router-to_OJirX.mjs → router-Dgkv5nKP.mjs} +38 -99
- package/.output/server/{_tanstack-start-manifest_v-Bd-2YRWo.mjs → _tanstack-start-manifest_v-B8rrWXjr.mjs} +1 -1
- package/.output/server/index.mjs +63 -63
- package/README.md +5 -2
- package/package.json +1 -1
- package/src/components/ProxyViewer.tsx +25 -15
- package/src/components/ProxyViewerContainer.tsx +2 -1
- package/src/components/providers/SettingsDialog.tsx +45 -1
- package/src/components/proxy-viewer/AgentTraceSummary.tsx +276 -0
- package/src/components/proxy-viewer/AnswerMarkdown.tsx +16 -0
- package/src/components/proxy-viewer/ConversationGroup.tsx +18 -0
- package/src/components/proxy-viewer/ConversationHeader.tsx +6 -6
- package/src/components/proxy-viewer/LogEntry.tsx +5 -5
- package/src/components/proxy-viewer/LogEntryHeader.tsx +9 -14
- package/src/components/proxy-viewer/ResponseView.tsx +2 -6
- package/src/components/proxy-viewer/ToolTraceEvents.tsx +32 -0
- package/src/components/proxy-viewer/TurnGroup.tsx +15 -1
- package/src/components/proxy-viewer/anatomy/SegmentBar.tsx +2 -2
- package/src/components/proxy-viewer/formats/anthropic/ContentBlocks.tsx +6 -12
- package/src/components/proxy-viewer/formats/openai/ResponseView.tsx +10 -14
- package/src/components/proxy-viewer/viewerState.ts +177 -0
- package/src/lib/runtimeConfig.ts +6 -0
- package/src/lib/timeDisplay.ts +22 -0
- package/src/lib/useOnboarding.ts +2 -0
- package/src/lib/useStripConfig.ts +16 -0
- package/src/proxy/chunkStorage.ts +3 -4
- package/src/proxy/config.ts +3 -0
- package/src/proxy/logger.ts +8 -15
- package/src/proxy/store.ts +8 -16
- package/src/routes/api/config.ts +5 -1
- package/src/routes/api/providers.$providerId.test.log.ts +0 -79
- package/.output/public/assets/ProxyViewerContainer-USuxPy-K.js +0 -101
- package/.output/public/assets/RequestAnatomy-ehyrskxt.js +0 -1
- package/.output/public/assets/ResponseView-BNGyc8e_.js +0 -1
- package/.output/public/assets/_sessionId-D_SeK_qp.js +0 -1
- package/.output/public/assets/index-BGGOWR7A.js +0 -1
- package/.output/public/assets/index-CIL46Z2y.css +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { D as Dialog, b as DialogContent, d as DialogHeader, e as DialogTitle, T as Tabs, h as TabsList, i as TabsTrigger, j as TabsContent, k as TooltipProvider, l as Tooltip, m as TooltipTrigger, n as TooltipContent, o as Button } from "./ProxyViewerContainer-
|
|
3
|
-
import { ResponseView } from "./ResponseView-
|
|
4
|
-
import "./router-
|
|
2
|
+
import { D as Dialog, b as DialogContent, d as DialogHeader, e as DialogTitle, T as Tabs, h as TabsList, i as TabsTrigger, j as TabsContent, k as TooltipProvider, l as Tooltip, m as TooltipTrigger, n as TooltipContent, o as Button } from "./ProxyViewerContainer-Cckz5qKu.mjs";
|
|
3
|
+
import { ResponseView } from "./ResponseView-DZiPBxvO.mjs";
|
|
4
|
+
import "./router-Dgkv5nKP.mjs";
|
|
5
5
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
6
6
|
import "../_libs/jszip.mjs";
|
|
7
|
-
import "./json-viewer-
|
|
7
|
+
import "./json-viewer-aJhb93ZK.mjs";
|
|
8
8
|
import { s as RotateCcw } from "../_libs/lucide-react.mjs";
|
|
9
9
|
import { d as object, c as boolean, n as number, b as string } from "../_libs/zod.mjs";
|
|
10
10
|
import "../_libs/swr.mjs";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { k as TooltipProvider, f as formatTokens, c as cn, l as Tooltip, m as TooltipTrigger, n as TooltipContent } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { k as TooltipProvider, f as formatTokens, c as cn, l as Tooltip, m as TooltipTrigger, n as TooltipContent } from "./ProxyViewerContainer-Cckz5qKu.mjs";
|
|
3
|
+
import "./router-Dgkv5nKP.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { V as Info } from "../_libs/lucide-react.mjs";
|
|
7
7
|
import "../_libs/swr.mjs";
|
|
8
8
|
import "../_libs/use-sync-external-store.mjs";
|
|
9
9
|
import "../_libs/dequal.mjs";
|
|
@@ -116,14 +116,14 @@ const ROLE_COLOR_CLASSES = {
|
|
|
116
116
|
system: "bg-sky-500/70",
|
|
117
117
|
user: "bg-emerald-500/70",
|
|
118
118
|
assistant: "bg-violet-500/70",
|
|
119
|
-
tool: "bg-
|
|
119
|
+
tool: "bg-sky-400/55",
|
|
120
120
|
tools: "bg-slate-500/70"
|
|
121
121
|
};
|
|
122
122
|
const ROLE_FOCUS_RING = {
|
|
123
123
|
system: "focus-visible:ring-sky-300",
|
|
124
124
|
user: "focus-visible:ring-emerald-300",
|
|
125
125
|
assistant: "focus-visible:ring-violet-300",
|
|
126
|
-
tool: "focus-visible:ring-
|
|
126
|
+
tool: "focus-visible:ring-sky-300",
|
|
127
127
|
tools: "focus-visible:ring-slate-300"
|
|
128
128
|
};
|
|
129
129
|
const MAX_VISIBLE_SEGMENTS = 12;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { g as getLogFormatAdapter, f as formatTokens, c as cn, p as getStatusCategory, B as Badge, s as safeJsonValue } from "./ProxyViewerContainer-
|
|
3
|
-
import { JsonViewer } from "./json-viewer-
|
|
4
|
-
import "./router-
|
|
2
|
+
import { g as getLogFormatAdapter, f as formatTokens, c as cn, p as getStatusCategory, B as Badge, s as safeJsonValue } from "./ProxyViewerContainer-Cckz5qKu.mjs";
|
|
3
|
+
import { JsonViewer } from "./json-viewer-aJhb93ZK.mjs";
|
|
4
|
+
import "./router-Dgkv5nKP.mjs";
|
|
5
5
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
6
6
|
import "../_libs/jszip.mjs";
|
|
7
|
-
import { Z as Zap, i as TriangleAlert,
|
|
7
|
+
import { Z as Zap, i as TriangleAlert, Y as CircleStop, B as Brain, b as ChevronDown, f as ChevronRight, _ as Terminal } from "../_libs/lucide-react.mjs";
|
|
8
8
|
import { M as Markdown } from "../_libs/react-markdown.mjs";
|
|
9
9
|
import { R as Root } from "../_libs/radix-ui__react-separator.mjs";
|
|
10
10
|
import { R as Root$1, C as CollapsibleTrigger$1, a as CollapsibleContent$1 } from "../_libs/radix-ui__react-collapsible.mjs";
|
|
@@ -167,6 +167,10 @@ import "../_libs/inline-style-parser.mjs";
|
|
|
167
167
|
import "../_libs/hast-util-whitespace.mjs";
|
|
168
168
|
import "../_libs/estree-util-is-identifier-name.mjs";
|
|
169
169
|
import "../_libs/html-url-attributes.mjs";
|
|
170
|
+
const ANSWER_MARKDOWN_CLASS = "prose prose-sm dark:prose-invert max-w-none text-[13px] leading-[1.65] [&_pre]:bg-muted [&_pre]:text-foreground [&_code]:text-[0.8em] [&_p]:my-1 [&_p]:leading-[1.65] [&_ul]:my-1 [&_ol]:my-1 [&_li]:my-0.5 [&_li]:leading-[1.6]";
|
|
171
|
+
function AnswerMarkdown({ text }) {
|
|
172
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: ANSWER_MARKDOWN_CLASS, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Markdown, { children: text }) });
|
|
173
|
+
}
|
|
170
174
|
function Separator({
|
|
171
175
|
className,
|
|
172
176
|
orientation = "horizontal",
|
|
@@ -276,7 +280,7 @@ function SystemReminderBlock({ text }) {
|
|
|
276
280
|
open ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-3 text-muted-foreground" }),
|
|
277
281
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted-foreground text-xs italic select-none opacity-60", children: "[system-reminder]" })
|
|
278
282
|
] }),
|
|
279
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pl-4 pt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
283
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "pl-4 pt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(AnswerMarkdown, { text }) }) })
|
|
280
284
|
] });
|
|
281
285
|
}
|
|
282
286
|
const TextBlock = reactExports.memo(function TextBlock2({ text }) {
|
|
@@ -286,7 +290,7 @@ const TextBlock = reactExports.memo(function TextBlock2({ text }) {
|
|
|
286
290
|
const { thinking, remainingText } = extractThinkingFromContent(text);
|
|
287
291
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
|
|
288
292
|
thinking !== null && /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingBlock, { thinking }),
|
|
289
|
-
remainingText.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
293
|
+
remainingText.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(AnswerMarkdown, { text: remainingText }),
|
|
290
294
|
thinking === null && remainingText.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground italic", children: "Empty text block" })
|
|
291
295
|
] });
|
|
292
296
|
});
|
|
@@ -320,9 +324,9 @@ const ToolUseBlock = reactExports.memo(function ToolUseBlock2({
|
|
|
320
324
|
input
|
|
321
325
|
}) {
|
|
322
326
|
const [open, setOpen] = reactExports.useState(false);
|
|
323
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-
|
|
324
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "flex items-center gap-1.5 px-3 py-1 w-full text-left cursor-pointer hover:bg-
|
|
325
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-
|
|
327
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-sky-400/25 my-1", children: [
|
|
328
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "flex items-center gap-1.5 px-3 py-1 w-full text-left cursor-pointer hover:bg-sky-400/[0.04] transition-colors rounded-r-sm group", children: [
|
|
329
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-sky-400/70 shrink-0" }),
|
|
326
330
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-[10px] font-mono px-1.5 py-0 h-4", children: name }),
|
|
327
331
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1" }),
|
|
328
332
|
open ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-3 text-muted-foreground" })
|
|
@@ -400,9 +404,9 @@ function OpenAIToolCallBlock({ call }) {
|
|
|
400
404
|
const [open, setOpen] = reactExports.useState(false);
|
|
401
405
|
const name = call.function.name ?? "(unnamed tool)";
|
|
402
406
|
const parsed = parseToolArguments(call.function.arguments);
|
|
403
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-
|
|
404
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "flex items-center gap-1.5 px-3 py-1 w-full text-left cursor-pointer hover:bg-
|
|
405
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-
|
|
407
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-sky-400/25 my-1", children: [
|
|
408
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(CollapsibleTrigger, { className: "flex items-center gap-1.5 px-3 py-1 w-full text-left cursor-pointer hover:bg-sky-400/[0.04] transition-colors rounded-r-sm group", children: [
|
|
409
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-sky-400/70 shrink-0" }),
|
|
406
410
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-[10px] font-mono px-1.5 py-0 h-4", children: name }),
|
|
407
411
|
call.id !== void 0 && call.id !== "" && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] font-mono text-muted-foreground/60 truncate", children: call.id }),
|
|
408
412
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1" }),
|
|
@@ -454,17 +458,17 @@ const OpenAIResponseView = reactExports.memo(function OpenAIResponseView2({
|
|
|
454
458
|
const { thinking, remainingText } = extractThinkingFromContent(message.content);
|
|
455
459
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
|
|
456
460
|
thinking !== null && !hasReasoningField && /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingBlock, { thinking }),
|
|
457
|
-
remainingText.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
461
|
+
remainingText.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(AnswerMarkdown, { text: remainingText })
|
|
458
462
|
] });
|
|
459
463
|
})(),
|
|
460
464
|
toolCalls.map((call, i) => (
|
|
461
465
|
// biome-ignore lint/suspicious/noArrayIndexKey: tool_calls is the positionally stable list from the response
|
|
462
466
|
/* @__PURE__ */ jsxRuntimeExports.jsx(OpenAIToolCallBlock, { call }, call.id ?? `tc-${i}`)
|
|
463
467
|
)),
|
|
464
|
-
message?.function_call !== null && message?.function_call !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border border-
|
|
465
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs text-
|
|
468
|
+
message?.function_call !== null && message?.function_call !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border border-sky-400/20 rounded-md p-3 bg-muted/20", children: [
|
|
469
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs text-sky-400/80 font-mono mb-1", children: "function_call" }),
|
|
466
470
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "font-mono text-xs", children: [
|
|
467
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-
|
|
471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-foreground/80", children: message.function_call.name }),
|
|
468
472
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-muted-foreground", children: [
|
|
469
473
|
"(",
|
|
470
474
|
message.function_call.arguments,
|
|
@@ -521,7 +525,7 @@ function ErrorResponseView({ text }) {
|
|
|
521
525
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "rounded-md border border-red-500/30 bg-red-500/5 p-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "text-xs text-red-300 whitespace-pre-wrap font-mono leading-relaxed overflow-auto max-h-[60vh]", children: text }) });
|
|
522
526
|
}
|
|
523
527
|
function MarkdownFallbackView({ text }) {
|
|
524
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
528
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(AnswerMarkdown, { text });
|
|
525
529
|
}
|
|
526
530
|
const ResponseView = reactExports.memo(function ResponseView2({
|
|
527
531
|
responseText,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { k as TooltipProvider, l as Tooltip, m as TooltipTrigger, B as Badge, n as TooltipContent } from "./ProxyViewerContainer-
|
|
3
|
-
import { JsonViewer } from "./json-viewer-
|
|
4
|
-
import "./router-
|
|
2
|
+
import { k as TooltipProvider, l as Tooltip, m as TooltipTrigger, B as Badge, n as TooltipContent } from "./ProxyViewerContainer-Cckz5qKu.mjs";
|
|
3
|
+
import { JsonViewer } from "./json-viewer-aJhb93ZK.mjs";
|
|
4
|
+
import "./router-Dgkv5nKP.mjs";
|
|
5
5
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
6
6
|
import "../_libs/jszip.mjs";
|
|
7
7
|
import { b as ChevronDown, f 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-Cckz5qKu.mjs";
|
|
2
2
|
import "../_libs/react.mjs";
|
|
3
|
-
import "./router-
|
|
3
|
+
import "./router-Dgkv5nKP.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-B8rrWXjr.mjs");
|
|
202
202
|
const startManifest = tsrStartManifest();
|
|
203
203
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
|
|
204
204
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -767,7 +767,7 @@ let entriesPromise;
|
|
|
767
767
|
let baseManifestPromise;
|
|
768
768
|
let cachedFinalManifestPromise;
|
|
769
769
|
async function loadEntries() {
|
|
770
|
-
const routerEntry = await import("./router-
|
|
770
|
+
const routerEntry = await import("./router-Dgkv5nKP.mjs").then((n) => n.i);
|
|
771
771
|
const startEntry = await import("./start-HYkvq4Ni.mjs");
|
|
772
772
|
return { startEntry, routerEntry };
|
|
773
773
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { q as parseJsonText, c as cn, k as TooltipProvider, l as Tooltip, m as TooltipTrigger, n as TooltipContent } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { q as parseJsonText, c as cn, k as TooltipProvider, l as Tooltip, m as TooltipTrigger, n as TooltipContent } from "./ProxyViewerContainer-Cckz5qKu.mjs";
|
|
3
|
+
import "./router-Dgkv5nKP.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { C as Check, a as Copy, b as ChevronDown, f as ChevronRight, q as ChevronsDown } from "../_libs/lucide-react.mjs";
|
|
@@ -49,7 +49,7 @@ import "../_libs/mimic-function.mjs";
|
|
|
49
49
|
import "../_libs/semver.mjs";
|
|
50
50
|
import "../_libs/uint8array-extras.mjs";
|
|
51
51
|
const faviconSvg = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2064%2064'%20role='img'%20aria-label='Agent%20Inspector'%3e%3crect%20width='64'%20height='64'%20rx='14'%20fill='%23111827'%20/%3e%3cg%20fill='none'%20stroke='%23f59e0b'%20stroke-width='4.2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20fill='%23f59e0b'%20d='M15%2036c0-11%207-18%2017-18s17%207%2017%2018c0%208-7%2013-17%2013s-17-5-17-13z'%20/%3e%3cpath%20d='M16%2031c-6-5-12-3-12%204%200%205%206%206%2011%202'%20/%3e%3cpath%20d='M48%2031c6-5%2012-3%2012%204%200%205-6%206-11%202'%20/%3e%3cpath%20d='M27%2019l-3-7'%20/%3e%3cpath%20d='M37%2019l3-7'%20/%3e%3cpath%20d='M19%2045l-6%209'%20/%3e%3cpath%20d='M27%2048l-3%209'%20/%3e%3cpath%20d='M37%2048l3%209'%20/%3e%3cpath%20d='M45%2045l6%209'%20/%3e%3c/g%3e%3cpath%20d='M14%2047l9-8%208%209c-5%203.5-12%203-17-1z'%20fill='%232f6b3f'%20opacity='.95'%20/%3e%3cpath%20d='M18%2046l5-5%205%206c-3%201.6-7%201.4-10-1z'%20fill='%236fb36f'%20opacity='.95'%20/%3e%3cpath%20d='M23%2041v10'%20fill='none'%20stroke='%23d6b45f'%20stroke-width='1.6'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='31'%20cy='48'%20r='1.8'%20fill='%23c2412d'%20/%3e%3cpath%20d='M24%2044l13-11%2014%2013c-8%205.8-18%205.3-27-2z'%20fill='%232f6b3f'%20opacity='.97'%20/%3e%3cpath%20d='M30%2043l7-7%209%209c-5%202.7-11%202.5-16-2z'%20fill='%236fb36f'%20opacity='.95'%20/%3e%3cpath%20d='M37%2036v14'%20fill='none'%20stroke='%23d6b45f'%20stroke-width='2'%20stroke-linecap='round'%20/%3e%3cpath%20d='M30%2043c5-2%2011-1.5%2016%202'%20fill='none'%20stroke='%239fca78'%20stroke-width='1.8'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='51'%20cy='46'%20r='2'%20fill='%23c2412d'%20/%3e%3cpath%20d='M40%2050l8-8%207%208c-4.2%203.2-10%203-15%200z'%20fill='%232f6b3f'%20opacity='.95'%20/%3e%3cpath%20d='M43%2049l5-5%204.5%205.5c-3%201.5-6%201.2-9.5-.5z'%20fill='%236fb36f'%20opacity='.95'%20/%3e%3cpath%20d='M48%2044v9'%20fill='none'%20stroke='%23d6b45f'%20stroke-width='1.5'%20stroke-linecap='round'%20/%3e%3ccircle%20cx='55'%20cy='50'%20r='1.7'%20fill='%23c2412d'%20/%3e%3ccircle%20cx='24'%20cy='11'%20r='3.2'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='40'%20cy='11'%20r='3.2'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='25'%20cy='34'%20r='2.1'%20fill='%23111827'%20/%3e%3ccircle%20cx='39'%20cy='34'%20r='2.1'%20fill='%23111827'%20/%3e%3c/svg%3e";
|
|
52
|
-
const appCss = "/assets/index-
|
|
52
|
+
const appCss = "/assets/index-CobXD0yH.css";
|
|
53
53
|
const Route$q = createRootRoute({
|
|
54
54
|
head: () => ({
|
|
55
55
|
meta: [
|
|
@@ -76,7 +76,7 @@ function RootDocument({ children }) {
|
|
|
76
76
|
] })
|
|
77
77
|
] });
|
|
78
78
|
}
|
|
79
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
79
|
+
const $$splitComponentImporter$1 = () => import("./index-5RImHKfu.mjs");
|
|
80
80
|
const Route$p = createFileRoute("/")({
|
|
81
81
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
82
82
|
});
|
|
@@ -119,7 +119,7 @@ function decodeSessionIdFromPath(encoded) {
|
|
|
119
119
|
function getSessionPath(sessionId) {
|
|
120
120
|
return `/session/${encodeSessionIdForPath(sessionId)}`;
|
|
121
121
|
}
|
|
122
|
-
const $$splitComponentImporter = () => import("../_sessionId-
|
|
122
|
+
const $$splitComponentImporter = () => import("../_sessionId-C4xsxIWm.mjs");
|
|
123
123
|
const Route$o = createFileRoute("/session/$sessionId")({
|
|
124
124
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
125
125
|
parseParams: (params) => ({
|
|
@@ -155,18 +155,13 @@ function resolveDataDir(pathExists, env = process.env, platform = process.platfo
|
|
|
155
155
|
function hasExplicitDataDir() {
|
|
156
156
|
return process.env["AGENT_INSPECTOR_DATA_DIR"] !== void 0 && process.env["AGENT_INSPECTOR_DATA_DIR"] !== "" || process.env["AGENT_INSPECTOR_CONFIG_DIR"] !== void 0 && process.env["AGENT_INSPECTOR_CONFIG_DIR"] !== "";
|
|
157
157
|
}
|
|
158
|
-
const LOG_DIR_ENV = process.env["LOG_DIR"];
|
|
159
158
|
const RETENTION_DAYS = Number(process.env["LOG_RETENTION_DAYS"] ?? "7");
|
|
160
|
-
const LOG_FILE_ENV = process.env["AGENT_INSPECTOR_LOG_FILE"];
|
|
161
|
-
let resolvedLogDir = null;
|
|
162
159
|
function resolveLogDir() {
|
|
163
|
-
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
} else {
|
|
167
|
-
resolvedLogDir = path.join(getDataDir(), "logs");
|
|
160
|
+
const logDirEnv = process.env["LOG_DIR"];
|
|
161
|
+
if (logDirEnv !== void 0 && logDirEnv !== "") {
|
|
162
|
+
return path.isAbsolute(logDirEnv) ? logDirEnv : path.join(getDataDir(), logDirEnv);
|
|
168
163
|
}
|
|
169
|
-
return
|
|
164
|
+
return path.join(getDataDir(), "logs");
|
|
170
165
|
}
|
|
171
166
|
function getLogFilePath() {
|
|
172
167
|
const date = /* @__PURE__ */ new Date();
|
|
@@ -176,8 +171,9 @@ function getLogFilePath() {
|
|
|
176
171
|
return path.join(resolveLogDir(), `${yyyy}-${mm}-${dd}.jsonl`);
|
|
177
172
|
}
|
|
178
173
|
function getInspectorLogPath() {
|
|
179
|
-
|
|
180
|
-
|
|
174
|
+
const logFileEnv = process.env["AGENT_INSPECTOR_LOG_FILE"];
|
|
175
|
+
if (logFileEnv !== void 0 && logFileEnv !== "") {
|
|
176
|
+
return logFileEnv;
|
|
181
177
|
}
|
|
182
178
|
return path.join(getDataDir(), "logs", "inspector.log");
|
|
183
179
|
}
|
|
@@ -186,6 +182,7 @@ async function initLogger() {
|
|
|
186
182
|
const retentionMs = RETENTION_DAYS * 24 * 60 * 60 * 1e3;
|
|
187
183
|
const cutoff = Date.now() - retentionMs;
|
|
188
184
|
try {
|
|
185
|
+
await mkdir(dir, { recursive: true });
|
|
189
186
|
const entries = await readdir(dir);
|
|
190
187
|
for (const entry of entries) {
|
|
191
188
|
if (!entry.endsWith(".jsonl")) continue;
|
|
@@ -852,10 +849,10 @@ const StreamingChunksDataSchema = object({
|
|
|
852
849
|
chunks: array(StreamingChunkSchema),
|
|
853
850
|
truncated: boolean().optional()
|
|
854
851
|
});
|
|
855
|
-
const CHUNKS_DIR_ENV = process.env["CHUNKS_DIR"];
|
|
856
852
|
function getChunksDir() {
|
|
857
|
-
|
|
858
|
-
|
|
853
|
+
const chunksDirEnv = process.env["CHUNKS_DIR"];
|
|
854
|
+
if (chunksDirEnv !== void 0 && chunksDirEnv !== "") {
|
|
855
|
+
return isAbsolute(chunksDirEnv) ? chunksDirEnv : join(getDataDir(), chunksDirEnv);
|
|
859
856
|
}
|
|
860
857
|
return join(getDataDir(), "chunks");
|
|
861
858
|
}
|
|
@@ -1228,11 +1225,6 @@ function removeFromCache(id) {
|
|
|
1228
1225
|
}
|
|
1229
1226
|
async function addTestLogEntry(entry) {
|
|
1230
1227
|
const id = await getNextLogId();
|
|
1231
|
-
const index = await loadIndex();
|
|
1232
|
-
if (id > index.maxId) {
|
|
1233
|
-
index.maxId = id;
|
|
1234
|
-
await saveIndex(index);
|
|
1235
|
-
}
|
|
1236
1228
|
let streamingChunksPath = null;
|
|
1237
1229
|
if (entry.streamingChunks !== void 0 && entry.streamingChunks.chunks.length > 0) {
|
|
1238
1230
|
streamingChunksPath = writeChunks(
|
|
@@ -1251,6 +1243,9 @@ async function addTestLogEntry(entry) {
|
|
|
1251
1243
|
sessionId: session.id,
|
|
1252
1244
|
streamingChunksPath
|
|
1253
1245
|
};
|
|
1246
|
+
const logFile = getCurrentLogFile();
|
|
1247
|
+
appendLogEntry(log);
|
|
1248
|
+
await addToIndex(id, logFile, -1, -1);
|
|
1254
1249
|
addToCache(log);
|
|
1255
1250
|
observeSessionLog(log, session.source);
|
|
1256
1251
|
emitLogUpdate(log);
|
|
@@ -2639,10 +2634,13 @@ async function getClientInfo(request) {
|
|
|
2639
2634
|
}
|
|
2640
2635
|
const DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS = 10;
|
|
2641
2636
|
const MAX_SLOW_RESPONSE_THRESHOLD_SECONDS = 600;
|
|
2637
|
+
const DEFAULT_TIME_DISPLAY_FORMAT = "time";
|
|
2638
|
+
const TimeDisplayFormatSchema = _enum(["time", "full"]);
|
|
2642
2639
|
const RuntimeConfigSchema = object({
|
|
2643
2640
|
stripClaudeCodeBillingHeader: boolean(),
|
|
2644
2641
|
hasSeenOnboarding: boolean().default(false),
|
|
2645
|
-
slowResponseThresholdSeconds: number().int().min(0).max(MAX_SLOW_RESPONSE_THRESHOLD_SECONDS).default(DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS)
|
|
2642
|
+
slowResponseThresholdSeconds: number().int().min(0).max(MAX_SLOW_RESPONSE_THRESHOLD_SECONDS).default(DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS),
|
|
2643
|
+
timeDisplayFormat: TimeDisplayFormatSchema.default(DEFAULT_TIME_DISPLAY_FORMAT)
|
|
2646
2644
|
});
|
|
2647
2645
|
function getConfigFilePath() {
|
|
2648
2646
|
return join(getDataDir(), "config.json");
|
|
@@ -2675,13 +2673,15 @@ function resolveInitialConfig() {
|
|
|
2675
2673
|
return {
|
|
2676
2674
|
stripClaudeCodeBillingHeader: true,
|
|
2677
2675
|
hasSeenOnboarding: false,
|
|
2678
|
-
slowResponseThresholdSeconds: DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS
|
|
2676
|
+
slowResponseThresholdSeconds: DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS,
|
|
2677
|
+
timeDisplayFormat: DEFAULT_TIME_DISPLAY_FORMAT
|
|
2679
2678
|
};
|
|
2680
2679
|
}
|
|
2681
2680
|
return {
|
|
2682
2681
|
stripClaudeCodeBillingHeader: false,
|
|
2683
2682
|
hasSeenOnboarding: false,
|
|
2684
|
-
slowResponseThresholdSeconds: DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS
|
|
2683
|
+
slowResponseThresholdSeconds: DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS,
|
|
2684
|
+
timeDisplayFormat: DEFAULT_TIME_DISPLAY_FORMAT
|
|
2685
2685
|
};
|
|
2686
2686
|
}
|
|
2687
2687
|
function getConfig() {
|
|
@@ -4100,7 +4100,8 @@ const Route$h = createFileRoute("/api/health")({
|
|
|
4100
4100
|
const RuntimeConfigPatchSchema = object({
|
|
4101
4101
|
stripClaudeCodeBillingHeader: boolean().optional(),
|
|
4102
4102
|
hasSeenOnboarding: boolean().optional(),
|
|
4103
|
-
slowResponseThresholdSeconds: number().int().min(0).max(MAX_SLOW_RESPONSE_THRESHOLD_SECONDS).optional()
|
|
4103
|
+
slowResponseThresholdSeconds: number().int().min(0).max(MAX_SLOW_RESPONSE_THRESHOLD_SECONDS).optional(),
|
|
4104
|
+
timeDisplayFormat: TimeDisplayFormatSchema.optional()
|
|
4104
4105
|
}).strict().refine((v) => Object.keys(v).length > 0, {
|
|
4105
4106
|
message: "At least one field must be provided"
|
|
4106
4107
|
});
|
|
@@ -4729,7 +4730,7 @@ const RedactionMetadataSchema = object({
|
|
|
4729
4730
|
redacted: boolean(),
|
|
4730
4731
|
patterns: array(string())
|
|
4731
4732
|
});
|
|
4732
|
-
object({
|
|
4733
|
+
const KnowledgeCandidateSchema = object({
|
|
4733
4734
|
id: string(),
|
|
4734
4735
|
type: KnowledgeCandidateTypeSchema,
|
|
4735
4736
|
title: string(),
|
|
@@ -6097,30 +6098,6 @@ function createFailedProviderTestResults(message, type) {
|
|
|
6097
6098
|
function hasSuccessField(result) {
|
|
6098
6099
|
return Object.prototype.hasOwnProperty.call(result, "success");
|
|
6099
6100
|
}
|
|
6100
|
-
function createTestLogEntry(providerName, path2, body, upstreamUrl, result, isTest) {
|
|
6101
|
-
return {
|
|
6102
|
-
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6103
|
-
id: `test-${Date.now()}`,
|
|
6104
|
-
method: "POST",
|
|
6105
|
-
path: path2,
|
|
6106
|
-
model: isTest ? result.model : void 0,
|
|
6107
|
-
sessionId: null,
|
|
6108
|
-
rawRequestBody: body,
|
|
6109
|
-
responseStatus: result.success ? 200 : 500,
|
|
6110
|
-
responseText: result.rawResponse ?? JSON.stringify(result),
|
|
6111
|
-
inputTokens: result.inputTokens ?? null,
|
|
6112
|
-
outputTokens: result.outputTokens ?? null,
|
|
6113
|
-
elapsedMs: result.latencyMs ?? 0,
|
|
6114
|
-
streaming: result.streaming ?? false,
|
|
6115
|
-
userAgent: "provider-test",
|
|
6116
|
-
origin: null,
|
|
6117
|
-
upstreamUrl,
|
|
6118
|
-
error: result.success ? null : result.error?.message ?? String(result.error),
|
|
6119
|
-
isTest: true,
|
|
6120
|
-
providerName,
|
|
6121
|
-
headers: result.requestHeaders ?? {}
|
|
6122
|
-
};
|
|
6123
|
-
}
|
|
6124
6101
|
async function logModelResults(displayName, providerName, anthropicUrl, openaiUrl, modelResults) {
|
|
6125
6102
|
const usageModel = getModelUsageName(displayName, providerName);
|
|
6126
6103
|
if (anthropicUrl !== void 0) {
|
|
@@ -6130,7 +6107,6 @@ async function logModelResults(displayName, providerName, anthropicUrl, openaiUr
|
|
|
6130
6107
|
const nonStreamingResult = nsResult;
|
|
6131
6108
|
const streamingResult = sResult;
|
|
6132
6109
|
const requestBody = JSON.stringify(buildProviderTestRequestBody(usageModel, "non-streaming"));
|
|
6133
|
-
const upstreamUrl = `${anthropicUrl}/v1/messages`;
|
|
6134
6110
|
await addTestLogEntry({
|
|
6135
6111
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6136
6112
|
method: "POST",
|
|
@@ -6153,16 +6129,6 @@ async function logModelResults(displayName, providerName, anthropicUrl, openaiUr
|
|
|
6153
6129
|
providerName,
|
|
6154
6130
|
headers: nonStreamingResult.requestHeaders ?? {}
|
|
6155
6131
|
});
|
|
6156
|
-
appendLogEntry(
|
|
6157
|
-
createTestLogEntry(
|
|
6158
|
-
providerName,
|
|
6159
|
-
"/v1/messages",
|
|
6160
|
-
requestBody,
|
|
6161
|
-
upstreamUrl,
|
|
6162
|
-
nonStreamingResult,
|
|
6163
|
-
true
|
|
6164
|
-
)
|
|
6165
|
-
);
|
|
6166
6132
|
const streamingRequestBody = JSON.stringify(
|
|
6167
6133
|
buildProviderTestRequestBody(usageModel, "streaming")
|
|
6168
6134
|
);
|
|
@@ -6189,16 +6155,6 @@ async function logModelResults(displayName, providerName, anthropicUrl, openaiUr
|
|
|
6189
6155
|
providerName,
|
|
6190
6156
|
headers: streamingResult.requestHeaders ?? {}
|
|
6191
6157
|
});
|
|
6192
|
-
appendLogEntry(
|
|
6193
|
-
createTestLogEntry(
|
|
6194
|
-
providerName,
|
|
6195
|
-
"/v1/messages",
|
|
6196
|
-
streamingRequestBody,
|
|
6197
|
-
upstreamUrl,
|
|
6198
|
-
streamingResult,
|
|
6199
|
-
true
|
|
6200
|
-
)
|
|
6201
|
-
);
|
|
6202
6158
|
}
|
|
6203
6159
|
}
|
|
6204
6160
|
if (openaiUrl !== void 0) {
|
|
@@ -6208,7 +6164,6 @@ async function logModelResults(displayName, providerName, anthropicUrl, openaiUr
|
|
|
6208
6164
|
const nonStreamingResult = nsResult;
|
|
6209
6165
|
const streamingResult = sResult;
|
|
6210
6166
|
const requestBody = JSON.stringify(buildProviderTestRequestBody(usageModel, "non-streaming"));
|
|
6211
|
-
const upstreamUrl = `${openaiUrl}/v1/chat/completions`;
|
|
6212
6167
|
await addTestLogEntry({
|
|
6213
6168
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6214
6169
|
method: "POST",
|
|
@@ -6231,16 +6186,6 @@ async function logModelResults(displayName, providerName, anthropicUrl, openaiUr
|
|
|
6231
6186
|
providerName,
|
|
6232
6187
|
headers: nonStreamingResult.requestHeaders ?? {}
|
|
6233
6188
|
});
|
|
6234
|
-
appendLogEntry(
|
|
6235
|
-
createTestLogEntry(
|
|
6236
|
-
providerName,
|
|
6237
|
-
"/v1/chat/completions",
|
|
6238
|
-
requestBody,
|
|
6239
|
-
upstreamUrl,
|
|
6240
|
-
nonStreamingResult,
|
|
6241
|
-
true
|
|
6242
|
-
)
|
|
6243
|
-
);
|
|
6244
6189
|
const streamingRequestBody = JSON.stringify(
|
|
6245
6190
|
buildProviderTestRequestBody(usageModel, "streaming")
|
|
6246
6191
|
);
|
|
@@ -6267,16 +6212,6 @@ async function logModelResults(displayName, providerName, anthropicUrl, openaiUr
|
|
|
6267
6212
|
providerName,
|
|
6268
6213
|
headers: streamingResult.requestHeaders ?? {}
|
|
6269
6214
|
});
|
|
6270
|
-
appendLogEntry(
|
|
6271
|
-
createTestLogEntry(
|
|
6272
|
-
providerName,
|
|
6273
|
-
"/v1/chat/completions",
|
|
6274
|
-
streamingRequestBody,
|
|
6275
|
-
upstreamUrl,
|
|
6276
|
-
streamingResult,
|
|
6277
|
-
true
|
|
6278
|
-
)
|
|
6279
|
-
);
|
|
6280
6215
|
}
|
|
6281
6216
|
}
|
|
6282
6217
|
}
|
|
@@ -6640,17 +6575,21 @@ export {
|
|
|
6640
6575
|
AnthropicResponseSchema$1 as A,
|
|
6641
6576
|
CapturedLogSchema as C,
|
|
6642
6577
|
DEFAULT_SLOW_RESPONSE_THRESHOLD_SECONDS as D,
|
|
6578
|
+
KnowledgeCandidateSchema as K,
|
|
6643
6579
|
MAX_SLOW_RESPONSE_THRESHOLD_SECONDS as M,
|
|
6644
6580
|
OpenAIRequestSchema as O,
|
|
6645
6581
|
ProviderTestResultsSchema as P,
|
|
6646
6582
|
Route$o as R,
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6583
|
+
TimeDisplayFormatSchema as T,
|
|
6584
|
+
DEFAULT_TIME_DISPLAY_FORMAT as a,
|
|
6585
|
+
RuntimeConfigSchema as b,
|
|
6586
|
+
AnthropicRequestSchema as c,
|
|
6587
|
+
safeGetOwnProperty as d,
|
|
6588
|
+
createPendingProviderTestResults as e,
|
|
6589
|
+
createFailedProviderTestResults as f,
|
|
6653
6590
|
getSessionPath as g,
|
|
6591
|
+
ProviderConfigSchema as h,
|
|
6592
|
+
router as i,
|
|
6654
6593
|
parseOpenAIResponse as p,
|
|
6655
6594
|
requestFormatForPath as r,
|
|
6656
6595
|
stripClaudeCodeBillingHeader as s
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/config", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-
|
|
1
|
+
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/config", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-mgxeUdZQ.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-BIw2H6jO.js", "/assets/ProxyViewerContainer-D85_UANk.js"] }, "/api/config": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.ts", "children": ["/api/config/paths"] }, "/api/health": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/health.ts" }, "/api/logs": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.ts", "children": ["/api/logs/$id", "/api/logs/stream"] }, "/api/mcp": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/mcp.ts" }, "/api/models": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/models.ts" }, "/api/providers": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.ts", "children": ["/api/providers/$providerId", "/api/providers/export", "/api/providers/import", "/api/providers/scan"] }, "/api/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-YqWFBu6d.js", "/assets/ProxyViewerContainer-D85_UANk.js"] }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.paths.ts" }, "/api/knowledge/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.ts", "children": ["/api/knowledge/candidates/$candidateId/promote"] }, "/api/knowledge/project-context": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.project-context.ts" }, "/api/knowledge/search": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.search.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/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/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/test": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/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-mgxeUdZQ.js" });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|