@tonyclaw/agent-inspector 2.1.21 → 2.1.23
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-Pii_cIqn.js → CompareDrawer-Cvgl_Jmi.js} +1 -1
- package/.output/public/assets/ProxyViewerContainer-CNLLZq37.js +106 -0
- package/.output/public/assets/{ReplayDialog-BqnYC8ze.js → ReplayDialog-DeEELx0X.js} +1 -1
- package/.output/public/assets/{RequestAnatomy-I8iBshz1.js → RequestAnatomy-CrLSqdiA.js} +1 -1
- package/.output/public/assets/ResponseView-CFIqDL5E.js +3 -0
- package/.output/public/assets/{StreamingChunkSequence-BrSx21IQ.js → StreamingChunkSequence-DSRjbgqb.js} +1 -1
- package/.output/public/assets/_sessionId-ZuH6-ZX5.js +1 -0
- package/.output/public/assets/index-B26q0-ch.js +1 -0
- package/.output/public/assets/{index-Dw-jXKKY.js → index-BZxLBVYd.js} +1 -1
- package/.output/public/assets/index-CxszCIFm.css +1 -0
- package/.output/public/assets/{json-viewer-D5mzV0oV.js → json-viewer-DERQNZRV.js} +1 -1
- package/.output/public/assets/{main-B7OIQMeA.js → main-BoshTI0W.js} +2 -2
- package/.output/server/_libs/lucide-react.mjs +42 -42
- package/.output/server/{_sessionId-DeU_JdSX.mjs → _sessionId-BYGtH1pK.mjs} +18 -3
- package/.output/server/_ssr/{CompareDrawer-DgDbG4oF.mjs → CompareDrawer-OchnKiac.mjs} +3 -3
- package/.output/server/_ssr/{ProxyViewerContainer-BOszhOJD.mjs → ProxyViewerContainer-C2lwYwDu.mjs} +2747 -2639
- package/.output/server/_ssr/{ReplayDialog-Cj4gWQv5.mjs → ReplayDialog-BYwaF14u.mjs} +4 -4
- package/.output/server/_ssr/{RequestAnatomy-CVzNAA03.mjs → RequestAnatomy-DTueiqT5.mjs} +2 -2
- package/.output/server/_ssr/{ResponseView-DLNpai6P.mjs → ResponseView-CqB9NKHB.mjs} +202 -55
- package/.output/server/_ssr/{StreamingChunkSequence-BiH8EEQB.mjs → StreamingChunkSequence-DENB9VUj.mjs} +2 -2
- package/.output/server/_ssr/{index-DaWXoUgf.mjs → index-BR3ea3Zb.mjs} +2 -2
- package/.output/server/_ssr/index.mjs +2 -2
- package/.output/server/_ssr/{json-viewer-CqqNYbmS.mjs → json-viewer-BU9ZUaHK.mjs} +3 -3
- package/.output/server/_ssr/{router-Di7D0Bcm.mjs → router-DT6BcrEg.mjs} +4 -4
- package/.output/server/{_tanstack-start-manifest_v-BR0YvW29.mjs → _tanstack-start-manifest_v-xQ1BRoZw.mjs} +1 -1
- package/.output/server/index.mjs +75 -75
- package/package.json +1 -1
- package/src/components/ProxyViewer.tsx +71 -15
- package/src/components/ProxyViewerContainer.tsx +1 -1
- package/src/components/proxy-viewer/ConversationGroupList.tsx +23 -7
- package/src/components/proxy-viewer/ConversationHeader.tsx +14 -7
- package/src/components/proxy-viewer/LogEntry.tsx +10 -0
- package/src/components/proxy-viewer/ResponseView.tsx +5 -1
- package/src/components/proxy-viewer/ToolTraceEvents.tsx +19 -31
- package/src/components/proxy-viewer/TurnGroup.tsx +21 -7
- package/src/components/proxy-viewer/formats/anthropic/ContentBlocks.tsx +37 -4
- package/src/components/proxy-viewer/formats/anthropic/ResponseView.tsx +17 -3
- package/src/components/proxy-viewer/formats/index.tsx +8 -3
- package/src/components/proxy-viewer/formats/openai/ResponseView.tsx +122 -16
- package/src/components/proxy-viewer/logFocus.ts +11 -3
- package/src/components/proxy-viewer/viewerState.ts +22 -7
- package/src/routes/session/$sessionId.tsx +27 -1
- package/.output/public/assets/ProxyViewerContainer-BxselkhN.js +0 -106
- package/.output/public/assets/ResponseView-wZzskUas.js +0 -3
- package/.output/public/assets/_sessionId-ByxbBMbE.js +0 -1
- package/.output/public/assets/index-BjzVMXJq.css +0 -1
- package/.output/public/assets/index-DRCRDo_E.js +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { u as useProviders, D as Dialog, d as DialogContent, e as DialogHeader, h as DialogTitle, T as Tabs, i as TabsList, j as TabsTrigger, k as TabsContent, l as Button, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, q as dispatchLogFocusRequest } from "./ProxyViewerContainer-
|
|
3
|
-
import { ResponseView } from "./ResponseView-
|
|
4
|
-
import { C as CapturedLogSchema } from "./router-
|
|
2
|
+
import { u as useProviders, D as Dialog, d as DialogContent, e as DialogHeader, h as DialogTitle, T as Tabs, i as TabsList, j as TabsTrigger, k as TabsContent, l as Button, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, q as dispatchLogFocusRequest } from "./ProxyViewerContainer-C2lwYwDu.mjs";
|
|
3
|
+
import { ResponseView } from "./ResponseView-CqB9NKHB.mjs";
|
|
4
|
+
import { C as CapturedLogSchema } from "./router-DT6BcrEg.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
7
|
-
import {
|
|
7
|
+
import { af as RotateCcw, ar as Braces, as as Minimize2 } from "../_libs/lucide-react.mjs";
|
|
8
8
|
import { d as object, n as number, a as array, c as boolean, b as string } from "../_libs/zod.mjs";
|
|
9
9
|
import "../_libs/swr.mjs";
|
|
10
10
|
import "../_libs/use-sync-external-store.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { u as useProviders, s as analyzeContextIntelligence, f as formatTokens, m as TooltipProvider, c as cn, n as Tooltip, o as TooltipTrigger, p as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, A as ANATOMY_ROLE_LABELS, t as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { u as useProviders, s as analyzeContextIntelligence, f as formatTokens, m as TooltipProvider, c as cn, n as Tooltip, o as TooltipTrigger, p as TooltipContent, S as SegmentBar, R as ROLE_COLOR_CLASSES, A as ANATOMY_ROLE_LABELS, t as formatContextWindowTokens, C as CONTEXT_USAGE_THRESHOLDS } from "./ProxyViewerContainer-C2lwYwDu.mjs";
|
|
3
|
+
import "./router-DT6BcrEg.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,9 +1,9 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { g as getLogFormatAdapter, f as formatTokens, c as cn, v as getStatusCategory, B as Badge, w as Collapsible, x as CollapsibleTrigger, y as CollapsibleContent, z as ScrollArea, E as LazyJsonViewer, F as safeJsonValue } from "./ProxyViewerContainer-
|
|
3
|
-
import { s as safeGetOwnProperty } from "./router-
|
|
2
|
+
import { g as getLogFormatAdapter, f as formatTokens, c as cn, v as getStatusCategory, B as Badge, w as Collapsible, x as CollapsibleTrigger, y as CollapsibleContent, z as ScrollArea, E as LazyJsonViewer, F as safeJsonValue } from "./ProxyViewerContainer-C2lwYwDu.mjs";
|
|
3
|
+
import { s as safeGetOwnProperty } from "./router-DT6BcrEg.mjs";
|
|
4
4
|
import "../_libs/jszip.mjs";
|
|
5
5
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
6
|
-
import { Z as Zap, T as TriangleAlert, at as CircleStop,
|
|
6
|
+
import { Z as Zap, T as TriangleAlert, at as CircleStop, O as Brain, a as ChevronDown, h as ChevronRight, r as Terminal } from "../_libs/lucide-react.mjs";
|
|
7
7
|
import { R as Root } from "../_libs/radix-ui__react-separator.mjs";
|
|
8
8
|
import "../_libs/swr.mjs";
|
|
9
9
|
import "../_libs/use-sync-external-store.mjs";
|
|
@@ -209,16 +209,38 @@ const ThinkingBlock = reactExports.memo(function ThinkingBlock2({
|
|
|
209
209
|
});
|
|
210
210
|
const ToolUseBlock = reactExports.memo(function ToolUseBlock2({
|
|
211
211
|
name,
|
|
212
|
-
input
|
|
212
|
+
input,
|
|
213
|
+
toolIndex,
|
|
214
|
+
toolFocus
|
|
213
215
|
}) {
|
|
214
216
|
const [open, setOpen] = reactExports.useState(false);
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
217
|
+
const triggerRef = reactExports.useRef(null);
|
|
218
|
+
const shouldFocus = toolFocus?.focusedToolIndex === toolIndex;
|
|
219
|
+
reactExports.useEffect(() => {
|
|
220
|
+
if (!shouldFocus || toolFocus === void 0 || toolFocus.toolFocusNonce <= 0) return void 0;
|
|
221
|
+
setOpen(true);
|
|
222
|
+
const timer = window.setTimeout(() => {
|
|
223
|
+
const trigger = triggerRef.current;
|
|
224
|
+
if (trigger === null) return;
|
|
225
|
+
trigger.scrollIntoView({ block: "center", behavior: "smooth" });
|
|
226
|
+
trigger.focus({ preventScroll: true });
|
|
227
|
+
}, 0);
|
|
228
|
+
return () => window.clearTimeout(timer);
|
|
229
|
+
}, [shouldFocus, toolFocus, toolFocus?.toolFocusNonce]);
|
|
230
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-sky-400/25 my-1", "data-response-tool-index": toolIndex, children: [
|
|
231
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
232
|
+
CollapsibleTrigger,
|
|
233
|
+
{
|
|
234
|
+
ref: triggerRef,
|
|
235
|
+
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 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
236
|
+
children: [
|
|
237
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-sky-400/70 shrink-0" }),
|
|
238
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-[10px] font-mono px-1.5 py-0 h-4", children: name }),
|
|
239
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1" }),
|
|
240
|
+
open ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-3 text-muted-foreground" })
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
),
|
|
222
244
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: open && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-3 pb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "max-h-[60vh]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
223
245
|
reactExports.Suspense,
|
|
224
246
|
{
|
|
@@ -229,7 +251,9 @@ const ToolUseBlock = reactExports.memo(function ToolUseBlock2({
|
|
|
229
251
|
] }) });
|
|
230
252
|
});
|
|
231
253
|
const ResponseContentBlockRenderer = reactExports.memo(function ResponseContentBlockRenderer2({
|
|
232
|
-
block
|
|
254
|
+
block,
|
|
255
|
+
toolIndex,
|
|
256
|
+
toolFocus
|
|
233
257
|
}) {
|
|
234
258
|
switch (block.type) {
|
|
235
259
|
case "text":
|
|
@@ -238,14 +262,24 @@ const ResponseContentBlockRenderer = reactExports.memo(function ResponseContentB
|
|
|
238
262
|
case "think":
|
|
239
263
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(ThinkingBlock, { thinking: block.thinking });
|
|
240
264
|
case "tool_use":
|
|
241
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
265
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
266
|
+
ToolUseBlock,
|
|
267
|
+
{
|
|
268
|
+
name: block.name,
|
|
269
|
+
input: block.input,
|
|
270
|
+
toolIndex: toolIndex ?? 0,
|
|
271
|
+
toolFocus
|
|
272
|
+
}
|
|
273
|
+
);
|
|
242
274
|
default:
|
|
243
275
|
return assertNever();
|
|
244
276
|
}
|
|
245
277
|
});
|
|
246
278
|
const StructuredResponseViewAnthropic = reactExports.memo(function StructuredResponseViewAnthropic2({
|
|
247
|
-
response
|
|
279
|
+
response,
|
|
280
|
+
toolFocus
|
|
248
281
|
}) {
|
|
282
|
+
let toolIndex = 0;
|
|
249
283
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-3", children: [
|
|
250
284
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
251
285
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "secondary", className: "text-[10px] px-1.5 py-0 h-5 font-mono", children: response.model }),
|
|
@@ -281,7 +315,19 @@ const StructuredResponseViewAnthropic = reactExports.memo(function StructuredRes
|
|
|
281
315
|
] }),
|
|
282
316
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Separator, { className: "opacity-50" }),
|
|
283
317
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
|
|
284
|
-
response.content.map((block, i) =>
|
|
318
|
+
response.content.map((block, i) => {
|
|
319
|
+
const currentToolIndex = block.type === "tool_use" ? toolIndex : void 0;
|
|
320
|
+
if (block.type === "tool_use") toolIndex += 1;
|
|
321
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
322
|
+
ResponseContentBlockRenderer,
|
|
323
|
+
{
|
|
324
|
+
block,
|
|
325
|
+
toolIndex: currentToolIndex,
|
|
326
|
+
toolFocus
|
|
327
|
+
},
|
|
328
|
+
i
|
|
329
|
+
);
|
|
330
|
+
}),
|
|
285
331
|
response.content.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground italic", children: "Empty response content" })
|
|
286
332
|
] })
|
|
287
333
|
] });
|
|
@@ -294,18 +340,89 @@ function parseToolArguments(raw) {
|
|
|
294
340
|
return null;
|
|
295
341
|
}
|
|
296
342
|
}
|
|
297
|
-
function
|
|
343
|
+
function useToolFocus({
|
|
344
|
+
toolIndex,
|
|
345
|
+
toolFocus,
|
|
346
|
+
setOpen
|
|
347
|
+
}) {
|
|
348
|
+
const triggerRef = reactExports.useRef(null);
|
|
349
|
+
const shouldFocus = toolFocus?.focusedToolIndex === toolIndex;
|
|
350
|
+
reactExports.useEffect(() => {
|
|
351
|
+
if (!shouldFocus || toolFocus === void 0 || toolFocus.toolFocusNonce <= 0) return void 0;
|
|
352
|
+
setOpen(true);
|
|
353
|
+
const timer = window.setTimeout(() => {
|
|
354
|
+
const trigger = triggerRef.current;
|
|
355
|
+
if (trigger === null) return;
|
|
356
|
+
trigger.scrollIntoView({ block: "center", behavior: "smooth" });
|
|
357
|
+
trigger.focus({ preventScroll: true });
|
|
358
|
+
}, 0);
|
|
359
|
+
return () => window.clearTimeout(timer);
|
|
360
|
+
}, [setOpen, shouldFocus, toolFocus, toolFocus?.toolFocusNonce]);
|
|
361
|
+
return triggerRef;
|
|
362
|
+
}
|
|
363
|
+
function OpenAIFunctionCallBlock({
|
|
364
|
+
name,
|
|
365
|
+
argumentsText,
|
|
366
|
+
toolIndex,
|
|
367
|
+
toolFocus
|
|
368
|
+
}) {
|
|
369
|
+
const blockRef = reactExports.useRef(null);
|
|
370
|
+
const shouldFocus = toolFocus?.focusedToolIndex === toolIndex;
|
|
371
|
+
reactExports.useEffect(() => {
|
|
372
|
+
if (!shouldFocus || toolFocus === void 0 || toolFocus.toolFocusNonce <= 0) return void 0;
|
|
373
|
+
const timer = window.setTimeout(() => {
|
|
374
|
+
const block = blockRef.current;
|
|
375
|
+
if (block === null) return;
|
|
376
|
+
block.scrollIntoView({ block: "center", behavior: "smooth" });
|
|
377
|
+
block.focus({ preventScroll: true });
|
|
378
|
+
}, 0);
|
|
379
|
+
return () => window.clearTimeout(timer);
|
|
380
|
+
}, [shouldFocus, toolFocus, toolFocus?.toolFocusNonce]);
|
|
381
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
382
|
+
"div",
|
|
383
|
+
{
|
|
384
|
+
ref: blockRef,
|
|
385
|
+
tabIndex: -1,
|
|
386
|
+
className: "border border-sky-400/20 rounded-md p-3 bg-muted/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
387
|
+
"data-response-tool-index": toolIndex,
|
|
388
|
+
children: [
|
|
389
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs text-sky-400/80 font-mono mb-1", children: "function_call" }),
|
|
390
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "font-mono text-xs", children: [
|
|
391
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-foreground/80", children: name }),
|
|
392
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-muted-foreground", children: [
|
|
393
|
+
"(",
|
|
394
|
+
argumentsText,
|
|
395
|
+
")"
|
|
396
|
+
] })
|
|
397
|
+
] })
|
|
398
|
+
]
|
|
399
|
+
}
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
function OpenAIToolCallBlock({
|
|
403
|
+
call,
|
|
404
|
+
toolIndex,
|
|
405
|
+
toolFocus
|
|
406
|
+
}) {
|
|
298
407
|
const [open, setOpen] = reactExports.useState(false);
|
|
299
408
|
const name = call.function.name ?? "(unnamed tool)";
|
|
300
409
|
const parsed = open ? parseToolArguments(call.function.arguments) : {};
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
410
|
+
const triggerRef = useToolFocus({ toolIndex, toolFocus, setOpen });
|
|
411
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-sky-400/25 my-1", "data-response-tool-index": toolIndex, children: [
|
|
412
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
413
|
+
CollapsibleTrigger,
|
|
414
|
+
{
|
|
415
|
+
ref: triggerRef,
|
|
416
|
+
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 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
417
|
+
children: [
|
|
418
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-sky-400/70 shrink-0" }),
|
|
419
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-[10px] font-mono px-1.5 py-0 h-4", children: name }),
|
|
420
|
+
call.id !== void 0 && call.id !== "" && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] font-mono text-muted-foreground/60 truncate", children: call.id }),
|
|
421
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1" }),
|
|
422
|
+
open ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-3 text-muted-foreground" })
|
|
423
|
+
]
|
|
424
|
+
}
|
|
425
|
+
),
|
|
309
426
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: open && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-3 pb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "max-h-[60vh]", children: parsed === null ? (
|
|
310
427
|
// JSON.parse failed — show the raw string so the user can
|
|
311
428
|
// still see what the model tried to call.
|
|
@@ -358,19 +475,31 @@ function extractResponsesFunctionCalls(response) {
|
|
|
358
475
|
}
|
|
359
476
|
return calls;
|
|
360
477
|
}
|
|
361
|
-
function ResponsesFunctionCallBlock({
|
|
478
|
+
function ResponsesFunctionCallBlock({
|
|
479
|
+
call,
|
|
480
|
+
toolIndex,
|
|
481
|
+
toolFocus
|
|
482
|
+
}) {
|
|
362
483
|
const [open, setOpen] = reactExports.useState(false);
|
|
363
484
|
const parsed = open ? parseToolArguments(call.argumentsText) : {};
|
|
364
485
|
const identity = call.callId ?? call.id;
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
486
|
+
const triggerRef = useToolFocus({ toolIndex, toolFocus, setOpen });
|
|
487
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(Collapsible, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "border-l-2 border-sky-400/25 my-1", "data-response-tool-index": toolIndex, children: [
|
|
488
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
489
|
+
CollapsibleTrigger,
|
|
490
|
+
{
|
|
491
|
+
ref: triggerRef,
|
|
492
|
+
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 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
493
|
+
children: [
|
|
494
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Terminal, { className: "size-3.5 text-sky-400/70 shrink-0" }),
|
|
495
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "outline", className: "text-[10px] font-mono px-1.5 py-0 h-4", children: call.name }),
|
|
496
|
+
identity !== null && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[10px] font-mono text-muted-foreground/60 truncate", children: identity }),
|
|
497
|
+
call.status !== null && /* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { variant: "secondary", className: "text-[10px] px-1.5 py-0 h-4 font-mono", children: call.status }),
|
|
498
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "flex-1" }),
|
|
499
|
+
open ? /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-3 text-muted-foreground" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronRight, { className: "size-3 text-muted-foreground" })
|
|
500
|
+
]
|
|
501
|
+
}
|
|
502
|
+
),
|
|
374
503
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleContent, { children: open && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "px-3 pb-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollArea, { className: "max-h-[60vh]", children: parsed === null ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { className: "font-mono text-xs whitespace-pre-wrap break-words text-rose-300/90", children: call.argumentsText }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
375
504
|
reactExports.Suspense,
|
|
376
505
|
{
|
|
@@ -381,7 +510,8 @@ function ResponsesFunctionCallBlock({ call }) {
|
|
|
381
510
|
] }) });
|
|
382
511
|
}
|
|
383
512
|
const OpenAIResponseView = reactExports.memo(function OpenAIResponseView2({
|
|
384
|
-
response
|
|
513
|
+
response,
|
|
514
|
+
toolFocus
|
|
385
515
|
}) {
|
|
386
516
|
const choice = response.choices[0];
|
|
387
517
|
const message = choice?.message;
|
|
@@ -424,25 +554,32 @@ const OpenAIResponseView = reactExports.memo(function OpenAIResponseView2({
|
|
|
424
554
|
})(),
|
|
425
555
|
toolCalls.map((call, i) => (
|
|
426
556
|
// biome-ignore lint/suspicious/noArrayIndexKey: tool_calls is the positionally stable list from the response
|
|
427
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
557
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
558
|
+
OpenAIToolCallBlock,
|
|
559
|
+
{
|
|
560
|
+
call,
|
|
561
|
+
toolIndex: i,
|
|
562
|
+
toolFocus
|
|
563
|
+
},
|
|
564
|
+
call.id ?? `tc-${i}`
|
|
565
|
+
)
|
|
428
566
|
)),
|
|
429
|
-
message?.function_call !== null && message?.function_call !== void 0 && /* @__PURE__ */ jsxRuntimeExports.
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
] })
|
|
439
|
-
] }),
|
|
567
|
+
message?.function_call !== null && message?.function_call !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
568
|
+
OpenAIFunctionCallBlock,
|
|
569
|
+
{
|
|
570
|
+
name: message.function_call.name,
|
|
571
|
+
argumentsText: message.function_call.arguments,
|
|
572
|
+
toolIndex: toolCalls.length,
|
|
573
|
+
toolFocus
|
|
574
|
+
}
|
|
575
|
+
),
|
|
440
576
|
(message?.content === null || message?.content === void 0 || message.content.length === 0) && (message?.reasoning_content === null || message?.reasoning_content === void 0 || message.reasoning_content.length === 0) && (message?.function_call === null || message?.function_call === void 0) && toolCalls.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground italic", children: "Empty response content" })
|
|
441
577
|
] })
|
|
442
578
|
] });
|
|
443
579
|
});
|
|
444
580
|
const OpenAIResponsesResponseView = reactExports.memo(function OpenAIResponsesResponseView2({
|
|
445
|
-
response
|
|
581
|
+
response,
|
|
582
|
+
toolFocus
|
|
446
583
|
}) {
|
|
447
584
|
const text = extractResponsesOutputText(response);
|
|
448
585
|
const calls = extractResponsesFunctionCalls(response);
|
|
@@ -478,7 +615,15 @@ const OpenAIResponsesResponseView = reactExports.memo(function OpenAIResponsesRe
|
|
|
478
615
|
text.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(AnswerMarkdown, { text }),
|
|
479
616
|
calls.map((call, i) => (
|
|
480
617
|
// biome-ignore lint/suspicious/noArrayIndexKey: response output order is stable
|
|
481
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
618
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
619
|
+
ResponsesFunctionCallBlock,
|
|
620
|
+
{
|
|
621
|
+
call,
|
|
622
|
+
toolIndex: i,
|
|
623
|
+
toolFocus
|
|
624
|
+
},
|
|
625
|
+
call.callId ?? call.id ?? `call-${i}`
|
|
626
|
+
)
|
|
482
627
|
)),
|
|
483
628
|
text.length === 0 && calls.length === 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-xs text-muted-foreground italic", children: "Empty response content" })
|
|
484
629
|
] })
|
|
@@ -496,15 +641,15 @@ function isOpenAIResponsesResponse(response) {
|
|
|
496
641
|
function isAnthropicResponse(response) {
|
|
497
642
|
return isRecord(response) && response.type === "message" && Array.isArray(response.content);
|
|
498
643
|
}
|
|
499
|
-
function formatViewFor(apiFormat, response) {
|
|
644
|
+
function formatViewFor(apiFormat, response, toolFocus) {
|
|
500
645
|
if (apiFormat === "openai" && isOpenAIResponse(response)) {
|
|
501
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(OpenAIResponseView, { response });
|
|
646
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(OpenAIResponseView, { response, toolFocus });
|
|
502
647
|
}
|
|
503
648
|
if (apiFormat === "openai" && isOpenAIResponsesResponse(response)) {
|
|
504
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(OpenAIResponsesResponseView, { response });
|
|
649
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(OpenAIResponsesResponseView, { response, toolFocus });
|
|
505
650
|
}
|
|
506
651
|
if (apiFormat === "anthropic" && isAnthropicResponse(response)) {
|
|
507
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(StructuredResponseViewAnthropic, { response });
|
|
652
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(StructuredResponseViewAnthropic, { response, toolFocus });
|
|
508
653
|
}
|
|
509
654
|
return null;
|
|
510
655
|
}
|
|
@@ -546,7 +691,9 @@ const ResponseView = reactExports.memo(function ResponseView2({
|
|
|
546
691
|
cacheCreationInputTokens,
|
|
547
692
|
cacheReadInputTokens,
|
|
548
693
|
apiFormat,
|
|
549
|
-
error
|
|
694
|
+
error,
|
|
695
|
+
focusedToolIndex = null,
|
|
696
|
+
toolFocusNonce = 0
|
|
550
697
|
}) {
|
|
551
698
|
const resolvedFormat = apiFormat ?? "unknown";
|
|
552
699
|
const parsed = reactExports.useMemo(
|
|
@@ -583,7 +730,7 @@ const ResponseView = reactExports.memo(function ResponseView2({
|
|
|
583
730
|
if (parsed !== null) {
|
|
584
731
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
|
|
585
732
|
/* @__PURE__ */ jsxRuntimeExports.jsx(StatusIndicator, { status: responseStatus }),
|
|
586
|
-
formatViewFor(resolvedFormat, parsed)
|
|
733
|
+
formatViewFor(resolvedFormat, parsed, { focusedToolIndex, toolFocusNonce })
|
|
587
734
|
] });
|
|
588
735
|
}
|
|
589
736
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-2", children: [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { m as TooltipProvider, n as Tooltip, o as TooltipTrigger, B as Badge, p as TooltipContent, E as LazyJsonViewer } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { m as TooltipProvider, n as Tooltip, o as TooltipTrigger, B as Badge, p as TooltipContent, E as LazyJsonViewer } from "./ProxyViewerContainer-C2lwYwDu.mjs";
|
|
3
|
+
import "./router-DT6BcrEg.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
6
|
import { a as ChevronDown, h as ChevronRight, L as LoaderCircle } from "../_libs/lucide-react.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { P as ProxyViewerContainer } from "./ProxyViewerContainer-
|
|
1
|
+
import { P as ProxyViewerContainer } from "./ProxyViewerContainer-C2lwYwDu.mjs";
|
|
2
2
|
import "../_libs/react.mjs";
|
|
3
|
-
import "./router-
|
|
3
|
+
import "./router-DT6BcrEg.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-xQ1BRoZw.mjs");
|
|
202
202
|
const startManifest = tsrStartManifest();
|
|
203
203
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
|
|
204
204
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -776,7 +776,7 @@ let entriesPromise;
|
|
|
776
776
|
let baseManifestPromise;
|
|
777
777
|
let cachedFinalManifestPromise;
|
|
778
778
|
async function loadEntries() {
|
|
779
|
-
const routerEntry = await import("./router-
|
|
779
|
+
const routerEntry = await import("./router-DT6BcrEg.mjs").then((n) => n.N);
|
|
780
780
|
const startEntry = await import("./start-HYkvq4Ni.mjs");
|
|
781
781
|
return { startEntry, routerEntry };
|
|
782
782
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { G as parseJsonText, c as cn, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-
|
|
3
|
-
import "./router-
|
|
2
|
+
import { G as parseJsonText, c as cn, m as TooltipProvider, n as Tooltip, o as TooltipTrigger, p as TooltipContent, b as copyTextToClipboard } from "./ProxyViewerContainer-C2lwYwDu.mjs";
|
|
3
|
+
import "./router-DT6BcrEg.mjs";
|
|
4
4
|
import "../_libs/modelcontextprotocol__server.mjs";
|
|
5
5
|
import "../_libs/jszip.mjs";
|
|
6
|
-
import { b as Check, e as Copy, a as ChevronDown, h as ChevronRight,
|
|
6
|
+
import { b as Check, e as Copy, a as ChevronDown, h as ChevronRight, ac as ChevronsDown } 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";
|
|
@@ -65,7 +65,7 @@ import "../_libs/immediate.mjs";
|
|
|
65
65
|
import "../_libs/setimmediate.mjs";
|
|
66
66
|
import "../_libs/pako.mjs";
|
|
67
67
|
const faviconSvg = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20role='img'%20aria-label='Agent%20Inspector'%3e%3cg%20fill='none'%20stroke='%23f59e0b'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20%3e%3cpath%20d='M5%2013%20C5%209%208%207%2012%207%20C16%207%2019%209%2019%2013%20C19%2016%2016%2018%2012%2018%20C8%2018%205%2016%205%2013%20Z'%20/%3e%3cpath%20d='M5%2011%20C3.5%209.5%201.5%2010%202%2012.5%20C2.5%2014%204%2013.5%205%2012.5'%20/%3e%3cpath%20d='M19%2011%20C20.5%209.5%2022.5%2010%2022%2012.5%20C21.5%2014%2020%2013.5%2019%2012.5'%20/%3e%3cline%20x1='10'%20y1='7'%20x2='9.5'%20y2='5'%20/%3e%3cline%20x1='14'%20y1='7'%20x2='14.5'%20y2='5'%20/%3e%3cline%20x1='6.5'%20y1='16'%20x2='4.5'%20y2='19.5'%20/%3e%3cline%20x1='9'%20y1='17.5'%20x2='8'%20y2='20.5'%20/%3e%3cline%20x1='15'%20y1='17.5'%20x2='16'%20y2='20.5'%20/%3e%3cline%20x1='17.5'%20y1='16'%20x2='19.5'%20y2='19.5'%20/%3e%3c/g%3e%3ccircle%20cx='9.5'%20cy='4.5'%20r='0.9'%20fill='%23f59e0b'%20/%3e%3ccircle%20cx='14.5'%20cy='4.5'%20r='0.9'%20fill='%23f59e0b'%20/%3e%3c/svg%3e";
|
|
68
|
-
const appCss = "/assets/index-
|
|
68
|
+
const appCss = "/assets/index-CxszCIFm.css";
|
|
69
69
|
const Route$D = createRootRoute({
|
|
70
70
|
head: () => ({
|
|
71
71
|
meta: [
|
|
@@ -108,7 +108,7 @@ function RootDocument({ children }) {
|
|
|
108
108
|
] })
|
|
109
109
|
] });
|
|
110
110
|
}
|
|
111
|
-
const $$splitComponentImporter$1 = () => import("./index-
|
|
111
|
+
const $$splitComponentImporter$1 = () => import("./index-BR3ea3Zb.mjs");
|
|
112
112
|
const Route$C = createFileRoute("/")({
|
|
113
113
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
114
114
|
});
|
|
@@ -151,7 +151,7 @@ function decodeSessionIdFromPath(encoded) {
|
|
|
151
151
|
function getSessionPath(sessionId) {
|
|
152
152
|
return `/session/${encodeSessionIdForPath(sessionId)}`;
|
|
153
153
|
}
|
|
154
|
-
const $$splitComponentImporter = () => import("../_sessionId-
|
|
154
|
+
const $$splitComponentImporter = () => import("../_sessionId-BYGtH1pK.mjs");
|
|
155
155
|
const Route$B = createFileRoute("/session/$sessionId")({
|
|
156
156
|
component: lazyRouteComponent($$splitComponentImporter, "component"),
|
|
157
157
|
parseParams: (params) => ({
|
|
@@ -9116,7 +9116,7 @@ const Route$w = createFileRoute("/api/models")({
|
|
|
9116
9116
|
}
|
|
9117
9117
|
}
|
|
9118
9118
|
});
|
|
9119
|
-
const version = "2.1.
|
|
9119
|
+
const version = "2.1.23";
|
|
9120
9120
|
const packageJson = {
|
|
9121
9121
|
version
|
|
9122
9122
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-
|
|
1
|
+
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/__root.tsx", "children": ["/", "/api/alerts", "/api/config", "/api/groups", "/api/health", "/api/logs", "/api/mcp", "/api/models", "/api/providers", "/api/runs", "/api/sessions", "/proxy/$", "/session/$sessionId", "/api/knowledge/candidates", "/api/knowledge/project-context", "/api/knowledge/search", "/api/knowledge/sessions/$sessionId/candidates"], "preloads": ["/assets/main-BoshTI0W.js"], "assets": [] }, "/": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/index.tsx", "assets": [], "preloads": ["/assets/index-B26q0-ch.js", "/assets/ProxyViewerContainer-CNLLZq37.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-ZuH6-ZX5.js", "/assets/ProxyViewerContainer-CNLLZq37.js"] }, "/api/alerts/summary": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/alerts.summary.ts" }, "/api/config/paths": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/config.paths.ts" }, "/api/groups/$groupId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.ts", "children": ["/api/groups/$groupId/evidence", "/api/groups/$groupId/sessions"] }, "/api/knowledge/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.ts", "children": ["/api/knowledge/candidates/$candidateId"] }, "/api/knowledge/project-context": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.project-context.ts" }, "/api/knowledge/search": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.search.ts" }, "/api/logs/$id": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.ts", "children": ["/api/logs/$id/body", "/api/logs/$id/chunks", "/api/logs/$id/replay"] }, "/api/logs/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.import.ts" }, "/api/logs/stream": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.stream.ts" }, "/api/providers/$providerId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.ts", "children": ["/api/providers/$providerId/model-metadata", "/api/providers/$providerId/test"] }, "/api/providers/export": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.export.ts" }, "/api/providers/import": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.import.ts" }, "/api/providers/scan": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.scan.ts" }, "/api/runs/$runId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.ts", "children": ["/api/runs/$runId/evidence"] }, "/api/groups/$groupId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.evidence.ts" }, "/api/groups/$groupId/sessions": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/groups.$groupId.sessions.ts" }, "/api/knowledge/candidates/$candidateId": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.ts", "children": ["/api/knowledge/candidates/$candidateId/promote"] }, "/api/logs/$id/body": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.body.ts" }, "/api/logs/$id/chunks": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.chunks.ts" }, "/api/logs/$id/replay": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/logs.$id.replay.ts" }, "/api/providers/$providerId/model-metadata": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.model-metadata.ts" }, "/api/providers/$providerId/test": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.ts", "children": ["/api/providers/$providerId/test/log"] }, "/api/runs/$runId/evidence": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/runs.$runId.evidence.ts" }, "/api/knowledge/candidates/$candidateId/promote": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.candidates.$candidateId.promote.ts" }, "/api/knowledge/sessions/$sessionId/candidates": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/knowledge.sessions.$sessionId.candidates.ts" }, "/api/providers/$providerId/test/log": { "filePath": "C:/Users/claw/workspace/agent-inspector/src/routes/api/providers.$providerId.test.log.ts" } }, "clientEntry": "/assets/main-BoshTI0W.js" });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|