@roj-ai/debug 0.1.3 → 0.1.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/dist/components/debug/DebugContext.d.ts +1 -0
- package/dist/components/debug/DebugContext.d.ts.map +1 -0
- package/dist/components/debug/DebugContext.js +9 -0
- package/dist/components/debug/DebugContext.js.map +1 -0
- package/dist/components/debug/DebugNavigation.d.ts +1 -0
- package/dist/components/debug/DebugNavigation.d.ts.map +1 -0
- package/dist/components/debug/DebugNavigation.js +36 -0
- package/dist/components/debug/DebugNavigation.js.map +1 -0
- package/dist/components/debug/DebugShell.d.ts +1 -0
- package/dist/components/debug/DebugShell.d.ts.map +1 -0
- package/dist/components/debug/DebugShell.js +103 -0
- package/dist/components/debug/DebugShell.js.map +1 -0
- package/dist/components/debug/LLMCallDetail.d.ts +1 -0
- package/dist/components/debug/LLMCallDetail.d.ts.map +1 -0
- package/dist/components/debug/LLMCallDetail.js +204 -0
- package/dist/components/debug/LLMCallDetail.js.map +1 -0
- package/dist/components/debug/TimelineDetailInspector.d.ts +1 -0
- package/dist/components/debug/TimelineDetailInspector.d.ts.map +1 -0
- package/dist/components/debug/TimelineDetailInspector.js +48 -0
- package/dist/components/debug/TimelineDetailInspector.js.map +1 -0
- package/dist/components/debug/communication/CommunicationDiagram.d.ts +1 -0
- package/dist/components/debug/communication/CommunicationDiagram.d.ts.map +1 -0
- package/dist/components/debug/communication/CommunicationDiagram.js +67 -0
- package/dist/components/debug/communication/CommunicationDiagram.js.map +1 -0
- package/dist/components/debug/communication/DiagramHeader.d.ts +1 -0
- package/dist/components/debug/communication/DiagramHeader.d.ts.map +1 -0
- package/dist/components/debug/communication/DiagramHeader.js +44 -0
- package/dist/components/debug/communication/DiagramHeader.js.map +1 -0
- package/dist/components/debug/communication/ParticipantLane.d.ts +1 -0
- package/dist/components/debug/communication/ParticipantLane.d.ts.map +1 -0
- package/dist/components/debug/communication/ParticipantLane.js +10 -0
- package/dist/components/debug/communication/ParticipantLane.js.map +1 -0
- package/dist/components/debug/communication/TimeAxis.d.ts +1 -0
- package/dist/components/debug/communication/TimeAxis.d.ts.map +1 -0
- package/dist/components/debug/communication/TimeAxis.js +49 -0
- package/dist/components/debug/communication/TimeAxis.js.map +1 -0
- package/dist/components/debug/communication/elements/IdleGap.d.ts +1 -0
- package/dist/components/debug/communication/elements/IdleGap.d.ts.map +1 -0
- package/dist/components/debug/communication/elements/IdleGap.js +12 -0
- package/dist/components/debug/communication/elements/IdleGap.js.map +1 -0
- package/dist/components/debug/communication/elements/LLMBlock.d.ts +1 -0
- package/dist/components/debug/communication/elements/LLMBlock.d.ts.map +1 -0
- package/dist/components/debug/communication/elements/LLMBlock.js +30 -0
- package/dist/components/debug/communication/elements/LLMBlock.js.map +1 -0
- package/dist/components/debug/communication/elements/MessageArrow.d.ts +1 -0
- package/dist/components/debug/communication/elements/MessageArrow.d.ts.map +1 -0
- package/dist/components/debug/communication/elements/MessageArrow.js +34 -0
- package/dist/components/debug/communication/elements/MessageArrow.js.map +1 -0
- package/dist/components/debug/communication/elements/ToolBlock.d.ts +1 -0
- package/dist/components/debug/communication/elements/ToolBlock.d.ts.map +1 -0
- package/dist/components/debug/communication/elements/ToolBlock.js +27 -0
- package/dist/components/debug/communication/elements/ToolBlock.js.map +1 -0
- package/dist/components/debug/communication/hooks/useDiagramData.d.ts +1 -0
- package/dist/components/debug/communication/hooks/useDiagramData.d.ts.map +1 -0
- package/dist/components/debug/communication/hooks/useDiagramData.js +252 -0
- package/dist/components/debug/communication/hooks/useDiagramData.js.map +1 -0
- package/dist/components/debug/communication/hooks/useTimeCompression.d.ts +1 -0
- package/dist/components/debug/communication/hooks/useTimeCompression.d.ts.map +1 -0
- package/dist/components/debug/communication/hooks/useTimeCompression.js +109 -0
- package/dist/components/debug/communication/hooks/useTimeCompression.js.map +1 -0
- package/dist/components/debug/communication/hooks/useZoomPan.d.ts +1 -0
- package/dist/components/debug/communication/hooks/useZoomPan.d.ts.map +1 -0
- package/dist/components/debug/communication/hooks/useZoomPan.js +75 -0
- package/dist/components/debug/communication/hooks/useZoomPan.js.map +1 -0
- package/dist/components/debug/communication/popovers/ElementPopover.d.ts +1 -0
- package/dist/components/debug/communication/popovers/ElementPopover.d.ts.map +1 -0
- package/dist/components/debug/communication/popovers/ElementPopover.js +39 -0
- package/dist/components/debug/communication/popovers/ElementPopover.js.map +1 -0
- package/dist/components/debug/communication/types.d.ts +1 -0
- package/dist/components/debug/communication/types.d.ts.map +1 -0
- package/dist/components/debug/communication/types.js +52 -0
- package/dist/components/debug/communication/types.js.map +1 -0
- package/dist/components/debug/index.d.ts +1 -0
- package/dist/components/debug/index.d.ts.map +1 -0
- package/dist/components/debug/index.js +18 -0
- package/dist/components/debug/index.js.map +1 -0
- package/dist/components/debug/pages/AgentDetailPage.d.ts +1 -0
- package/dist/components/debug/pages/AgentDetailPage.d.ts.map +1 -0
- package/dist/components/debug/pages/AgentDetailPage.js +365 -0
- package/dist/components/debug/pages/AgentDetailPage.js.map +1 -0
- package/dist/components/debug/pages/AgentsPage.d.ts +1 -0
- package/dist/components/debug/pages/AgentsPage.d.ts.map +1 -0
- package/dist/components/debug/pages/AgentsPage.js +111 -0
- package/dist/components/debug/pages/AgentsPage.js.map +1 -0
- package/dist/components/debug/pages/CommunicationPage.d.ts +1 -0
- package/dist/components/debug/pages/CommunicationPage.d.ts.map +1 -0
- package/dist/components/debug/pages/CommunicationPage.js +19 -0
- package/dist/components/debug/pages/CommunicationPage.js.map +1 -0
- package/dist/components/debug/pages/DashboardPage.d.ts +1 -0
- package/dist/components/debug/pages/DashboardPage.d.ts.map +1 -0
- package/dist/components/debug/pages/DashboardPage.js +430 -0
- package/dist/components/debug/pages/DashboardPage.js.map +1 -0
- package/dist/components/debug/pages/EventsPage.d.ts +1 -0
- package/dist/components/debug/pages/EventsPage.d.ts.map +1 -0
- package/dist/components/debug/pages/EventsPage.js +137 -0
- package/dist/components/debug/pages/EventsPage.js.map +1 -0
- package/dist/components/debug/pages/FilesPage.d.ts +1 -0
- package/dist/components/debug/pages/FilesPage.d.ts.map +1 -0
- package/dist/components/debug/pages/FilesPage.js +187 -0
- package/dist/components/debug/pages/FilesPage.js.map +1 -0
- package/dist/components/debug/pages/LLMCallPage.d.ts +1 -0
- package/dist/components/debug/pages/LLMCallPage.d.ts.map +1 -0
- package/dist/components/debug/pages/LLMCallPage.js +12 -0
- package/dist/components/debug/pages/LLMCallPage.js.map +1 -0
- package/dist/components/debug/pages/LLMCallsPage.d.ts +1 -0
- package/dist/components/debug/pages/LLMCallsPage.d.ts.map +1 -0
- package/dist/components/debug/pages/LLMCallsPage.js +200 -0
- package/dist/components/debug/pages/LLMCallsPage.js.map +1 -0
- package/dist/components/debug/pages/LogsPage.d.ts +1 -0
- package/dist/components/debug/pages/LogsPage.d.ts.map +1 -0
- package/dist/components/debug/pages/LogsPage.js +107 -0
- package/dist/components/debug/pages/LogsPage.js.map +1 -0
- package/dist/components/debug/pages/MailboxPage.d.ts +1 -0
- package/dist/components/debug/pages/MailboxPage.d.ts.map +1 -0
- package/dist/components/debug/pages/MailboxPage.js +60 -0
- package/dist/components/debug/pages/MailboxPage.js.map +1 -0
- package/dist/components/debug/pages/ServicesPage.d.ts +1 -0
- package/dist/components/debug/pages/ServicesPage.d.ts.map +1 -0
- package/dist/components/debug/pages/ServicesPage.js +91 -0
- package/dist/components/debug/pages/ServicesPage.js.map +1 -0
- package/dist/components/debug/pages/TimelinePage.d.ts +1 -0
- package/dist/components/debug/pages/TimelinePage.d.ts.map +1 -0
- package/dist/components/debug/pages/TimelinePage.js +101 -0
- package/dist/components/debug/pages/TimelinePage.js.map +1 -0
- package/dist/components/debug/pages/UserChatPage.d.ts +1 -0
- package/dist/components/debug/pages/UserChatPage.d.ts.map +1 -0
- package/dist/components/debug/pages/UserChatPage.js +56 -0
- package/dist/components/debug/pages/UserChatPage.js.map +1 -0
- package/dist/components/debug/pages/index.d.ts +1 -0
- package/dist/components/debug/pages/index.d.ts.map +1 -0
- package/dist/components/debug/pages/index.js +14 -0
- package/dist/components/debug/pages/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/domain-utils.d.ts +1 -0
- package/dist/lib/domain-utils.d.ts.map +1 -0
- package/dist/lib/domain-utils.js +11 -0
- package/dist/lib/domain-utils.js.map +1 -0
- package/dist/providers/EventPollingProvider.d.ts +1 -0
- package/dist/providers/EventPollingProvider.d.ts.map +1 -0
- package/dist/providers/EventPollingProvider.js +49 -0
- package/dist/providers/EventPollingProvider.js.map +1 -0
- package/dist/stores/event-store.d.ts +1 -0
- package/dist/stores/event-store.d.ts.map +1 -0
- package/dist/stores/event-store.js +341 -0
- package/dist/stores/event-store.js.map +1 -0
- package/dist/utils/format.d.ts +1 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +11 -0
- package/dist/utils/format.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsPage.js","sourceRoot":"","sources":["../../../../src/components/debug/pages/AgentsPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommunicationPage.d.ts","sourceRoot":"","sources":["../../../../src/components/debug/pages/CommunicationPage.tsx"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,4CAoFhC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useAgentTree, useEvents, useEventStore } from '../../../stores/event-store';
|
|
3
|
+
import { CommunicationDiagram } from '../communication/CommunicationDiagram';
|
|
4
|
+
import { useDiagramData } from '../communication/hooks/useDiagramData';
|
|
5
|
+
export function CommunicationPage() {
|
|
6
|
+
// Get events and agents from event store (already loaded by DebugLayout)
|
|
7
|
+
const events = useEvents();
|
|
8
|
+
const agents = useAgentTree();
|
|
9
|
+
const isLoading = useEventStore((s) => s.isLoading);
|
|
10
|
+
const error = useEventStore((s) => s.error);
|
|
11
|
+
const diagramData = useDiagramData({ events, agents });
|
|
12
|
+
// Calculate stats
|
|
13
|
+
const messageCount = diagramData.messages.length;
|
|
14
|
+
const llmCount = diagramData.llmBlocks.length;
|
|
15
|
+
const toolCount = diagramData.toolBlocks.length;
|
|
16
|
+
const participantCount = diagramData.participants.length - 1; // Exclude user
|
|
17
|
+
return (_jsxs("div", { className: "h-full flex flex-col gap-3", children: [_jsxs("div", { className: "flex items-center gap-5 text-sm shrink-0", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-slate-400", children: "Agents:" }), _jsx("span", { className: "font-semibold text-slate-700", children: participantCount })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-blue-400" }), _jsx("span", { className: "text-slate-400", children: "Messages:" }), _jsx("span", { className: "font-semibold text-slate-700", children: messageCount })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-violet-400" }), _jsx("span", { className: "text-slate-400", children: "LLM:" }), _jsx("span", { className: "font-semibold text-slate-700", children: llmCount })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-teal-400" }), _jsx("span", { className: "text-slate-400", children: "Tools:" }), _jsx("span", { className: "font-semibold text-slate-700", children: toolCount })] }), isLoading && events.length > 0 && _jsx("span", { className: "text-slate-300 text-xs ml-auto", children: "Updating..." })] }), error && (_jsx("div", { className: "text-red-600 text-sm shrink-0 bg-red-50 border border-red-100 rounded-md px-3 py-2", children: error })), isLoading && events.length === 0 && (_jsx("div", { className: "flex-1 flex items-center justify-center", children: _jsxs("div", { className: "text-center", children: [_jsx("div", { className: "w-6 h-6 border-2 border-slate-200 border-t-violet-500 rounded-full animate-spin mx-auto mb-2" }), _jsx("div", { className: "text-sm text-slate-400", children: "Loading diagram..." })] }) })), !isLoading && events.length === 0 && (_jsx("div", { className: "flex-1 flex items-center justify-center", children: _jsxs("div", { className: "text-center", children: [_jsx("svg", { className: "w-10 h-10 text-slate-200 mx-auto mb-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z" }) }), _jsx("div", { className: "text-sm text-slate-500 font-medium", children: "No activity yet" }), _jsx("div", { className: "text-xs text-slate-400 mt-0.5", children: "Send a message to start" })] }) })), events.length > 0 && (_jsx("div", { className: "flex-1 bg-white rounded-md border border-slate-200 overflow-hidden min-h-0", children: _jsx(CommunicationDiagram, { data: diagramData }) }))] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=CommunicationPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommunicationPage.js","sourceRoot":"","sources":["../../../../src/components/debug/pages/CommunicationPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../../src/components/debug/pages/DashboardPage.tsx"],"names":[],"mappings":"AAcA,wBAAgB,aAAa,4CAia5B"}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { AgentId } from "@roj-ai/shared";
|
|
3
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { api, unwrap } from "@roj-ai/client";
|
|
5
|
+
import { useEventStore, useMetrics, useSessionInfo, useTimeline, } from "../../../stores/event-store";
|
|
6
|
+
import { formatDuration } from "../../../utils/format";
|
|
7
|
+
import { useDebugNavigate } from "../DebugNavigation";
|
|
8
|
+
import { TimelineDetailInspector } from "../TimelineDetailInspector";
|
|
9
|
+
export function DashboardPage() {
|
|
10
|
+
const sessionInfo = useSessionInfo();
|
|
11
|
+
const agentDetailProjection = useEventStore((s) => s.agentDetailProjectionState);
|
|
12
|
+
const metrics = useMetrics();
|
|
13
|
+
const timeline = useTimeline();
|
|
14
|
+
const debugNavigate = useDebugNavigate();
|
|
15
|
+
const failedLLMCalls = useMemo(() => timeline.filter((item) => item.type === "llm" && item.status === "error"), [timeline]);
|
|
16
|
+
const failedToolCalls = useMemo(() => timeline.filter((item) => item.type === "tool" && item.status === "error"), [timeline]);
|
|
17
|
+
const agents = useMemo(() => Array.from(agentDetailProjection.agents.values()), [agentDetailProjection]);
|
|
18
|
+
const agentNameById = useMemo(() => {
|
|
19
|
+
const map = new Map();
|
|
20
|
+
for (const agent of agents)
|
|
21
|
+
map.set(agent.id, agent.definitionName);
|
|
22
|
+
return map;
|
|
23
|
+
}, [agents]);
|
|
24
|
+
const pausedAgents = useMemo(() => agents.filter((a) => a.status === "paused"), [agents]);
|
|
25
|
+
if (!sessionInfo.id) {
|
|
26
|
+
return _jsx("div", { className: "text-gray-400 text-sm", children: "Loading session data..." });
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs("div", { className: "space-y-4", children: [pausedAgents.length > 0 && (_jsx("div", { className: "bg-red-50 border border-red-200 rounded-2xl p-4 space-y-2", children: pausedAgents.map((agent) => (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-red-500 shrink-0" }), _jsxs("span", { className: "text-sm font-semibold text-red-700 flex-1", children: [agent.definitionName, _jsxs("span", { className: "font-normal text-red-500 ml-1.5", children: ["paused", agent.pauseMessage
|
|
29
|
+
? `: ${agent.pauseMessage}`
|
|
30
|
+
: ` (${agent.pauseReason})`] })] }), _jsx(ResumeAgentButton, { sessionId: sessionInfo.id, agentId: agent.id })] }, agent.id))) })), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-5 gap-4", children: [_jsxs("div", { className: "lg:col-span-2 bg-white rounded-3xl shadow-soft p-5", children: [_jsxs("div", { className: "flex items-center gap-3 mb-4", children: [_jsx("div", { className: "w-9 h-9 rounded-xl bg-accent-lime flex items-center justify-center shrink-0", children: _jsx("svg", { className: "w-4 h-4 text-gray-900", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M13 10V3L4 14h7v7l9-11h-7z" }) }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("div", { className: "font-bold text-gray-900", children: sessionInfo.presetId }), _jsx("div", { className: "text-[11px] text-gray-400 font-mono truncate", children: sessionInfo.id })] }), _jsx(StatusBadge, { status: sessionInfo.status })] }), _jsxs("div", { className: "grid grid-cols-2 gap-x-5 gap-y-2.5", children: [sessionInfo.createdAt !== null && (_jsx(ConfigItem, { label: "Started", value: new Date(sessionInfo.createdAt).toLocaleString() })), sessionInfo.closedAt ? (_jsx(ConfigItem, { label: "Closed", value: new Date(sessionInfo.closedAt).toLocaleString() })) : (_jsx("div", {})), _jsx(ConfigItem, { label: "Duration", value: formatDuration(metrics.durationMs) }), sessionInfo.workspaceDir && (_jsx(ConfigItem, { label: "Workspace", value: sessionInfo.workspaceDir, mono: true }))] })] }), _jsxs("div", { className: "lg:col-span-3 bg-white rounded-3xl shadow-soft p-5", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-900 mb-4", children: "Overview" }), _jsxs("div", { className: "grid grid-cols-3 gap-x-5 gap-y-4", children: [_jsx(MetricItem, { label: "Total Tokens", value: metrics.totalTokens.toLocaleString(), sub: `${metrics.promptTokens.toLocaleString()} / ${metrics.completionTokens.toLocaleString()}` }), _jsx(MetricItem, { label: "Cost", value: metrics.totalCost !== undefined && metrics.totalCost > 0
|
|
31
|
+
? `$${metrics.totalCost.toFixed(4)}`
|
|
32
|
+
: "$0.00", accent: true }), _jsx(MetricItem, { label: "LLM Calls", value: metrics.llmCalls.toString(), error: failedLLMCalls.length > 0
|
|
33
|
+
? `${failedLLMCalls.length} failed`
|
|
34
|
+
: undefined }), _jsx(MetricItem, { label: "Tool Calls", value: metrics.toolCalls.toString(), error: failedToolCalls.length > 0
|
|
35
|
+
? `${failedToolCalls.length} failed`
|
|
36
|
+
: undefined }), _jsx(MetricItem, { label: "Agents", value: metrics.agentCount.toString() }), _jsx(MetricItem, { label: "Duration", value: formatDuration(metrics.durationMs) })] }), Object.keys(metrics.byProvider).length > 0 && (_jsxs("div", { className: "mt-4 pt-3 border-t border-gray-100", children: [_jsx("div", { className: "text-[10px] font-medium uppercase tracking-wider text-gray-400 mb-2", children: "By Provider" }), _jsx("div", { className: "space-y-1.5", children: Object.entries(metrics.byProvider).map(([name, p]) => (_jsxs("div", { className: "flex items-center gap-3 text-xs", children: [_jsx("span", { className: "font-medium text-gray-700 w-20", children: name }), _jsxs("span", { className: "text-gray-500 tabular-nums", children: [p.llmCalls, " calls"] }), _jsxs("span", { className: "text-gray-500 tabular-nums", children: [p.totalTokens.toLocaleString(), " tok"] }), p.totalCost > 0 && (_jsxs("span", { className: "text-green-600 tabular-nums", children: ["$", p.totalCost.toFixed(4)] }))] }, name))) })] }))] })] }), timeline.length > 0 && _jsx(ActivityTimeline, { timeline: timeline }), _jsx(LLMCostByAgent, { agentNameById: agentNameById }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-4", children: [_jsxs("div", { className: "bg-white rounded-3xl shadow-soft p-5", children: [_jsxs("div", { className: "flex items-center justify-between mb-3", children: [_jsxs("div", { className: "flex items-center gap-2.5", children: [_jsx("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" }) }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Spawned Agents" })] }), _jsx("span", { className: "text-[11px] bg-gray-100 text-gray-500 px-2 py-0.5 rounded-full font-medium tabular-nums", children: agents.length })] }), agents.length === 0 ? (_jsx("div", { className: "text-gray-400 text-sm py-6 text-center", children: "No agents spawned" })) : (_jsx("div", { className: "space-y-1.5", children: agents.map((agent) => (_jsxs("button", { onClick: () => debugNavigate(`agents/${agent.id}`), className: "w-full bg-gray-50 rounded-xl px-3 py-2.5 flex items-center gap-2.5 hover:bg-gray-100 transition-colors text-left", children: [_jsx("div", { className: "w-7 h-7 rounded-lg bg-white flex items-center justify-center shadow-card shrink-0", children: _jsx("svg", { className: "w-3.5 h-3.5 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" }) }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("div", { className: "font-medium text-sm text-gray-900 leading-tight", children: agent.definitionName }), _jsx("div", { className: "text-[10px] text-gray-400 font-mono", children: agent.id.slice(0, 12) })] }), _jsx(AgentStatusBadge, { status: agent.status }), _jsx("svg", { className: "w-3.5 h-3.5 text-gray-300 shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })] }, agent.id))) }))] }), _jsxs("div", { className: "bg-white rounded-3xl shadow-soft p-5", children: [_jsxs("div", { className: "flex items-center gap-2.5 mb-3", children: [_jsx("svg", { className: "w-4 h-4 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" }) }), _jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Status" })] }), failedLLMCalls.length === 0 && failedToolCalls.length === 0 ? (_jsxs("div", { className: "bg-accent-lime/15 rounded-xl py-6 flex flex-col items-center gap-2", children: [_jsx("div", { className: "w-10 h-10 rounded-full bg-accent-lime flex items-center justify-center", children: _jsx("svg", { className: "w-5 h-5 text-gray-900", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }) }), _jsx("div", { className: "text-sm font-semibold text-gray-900", children: "All operations healthy" }), _jsx("div", { className: "text-[11px] text-gray-500", children: "No failures detected" })] })) : (_jsxs("div", { className: "space-y-3", children: [failedLLMCalls.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-red-500" }), _jsxs("span", { className: "text-[11px] font-semibold text-gray-600", children: ["Failed LLM Calls (", failedLLMCalls.length, ")"] })] }), _jsx("div", { className: "space-y-1", children: failedLLMCalls.map((call) => (_jsxs("button", { onClick: () => debugNavigate(`llm-calls/${call.llmCallId ?? call.id}`), className: "w-full text-left bg-red-50 rounded-lg px-3 py-2 hover:bg-red-100 transition-colors", children: [_jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [_jsx("span", { className: "text-gray-400", children: new Date(call.startedAt).toLocaleTimeString() }), _jsx("span", { className: "font-mono font-medium text-gray-700", children: call.agentName }), call.model && (_jsx("span", { className: "text-gray-400", children: call.model }))] }), call.error && (_jsx("div", { className: "text-[11px] text-red-600 mt-0.5 truncate", children: call.error }))] }, call.id))) })] })), failedToolCalls.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-1.5 mb-1.5", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-red-500" }), _jsxs("span", { className: "text-[11px] font-semibold text-gray-600", children: ["Failed Tool Calls (", failedToolCalls.length, ")"] })] }), _jsx("div", { className: "space-y-1", children: failedToolCalls.map((call) => (_jsxs("div", { className: "bg-red-50 rounded-lg px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-2 text-[11px]", children: [_jsx("span", { className: "text-gray-400", children: new Date(call.startedAt).toLocaleTimeString() }), _jsx("span", { className: "font-mono font-medium text-gray-700", children: call.agentName }), _jsx("span", { className: "font-medium text-gray-600", children: call.toolName })] }), call.error && (_jsx("div", { className: "text-[11px] text-red-600 mt-0.5 truncate", children: call.error }))] }, call.id))) })] }))] }))] })] })] }));
|
|
37
|
+
}
|
|
38
|
+
function ConfigItem({ label, value, mono, }) {
|
|
39
|
+
return (_jsxs("div", { children: [_jsx("div", { className: "text-[10px] text-gray-400 uppercase tracking-wider font-medium", children: label }), _jsx("div", { className: `text-gray-700 truncate ${mono ? "font-mono text-[11px]" : "text-sm"}`, title: value, children: value })] }));
|
|
40
|
+
}
|
|
41
|
+
function MetricItem({ label, value, sub, error, accent, }) {
|
|
42
|
+
return (_jsxs("div", { children: [_jsx("div", { className: "text-[10px] font-medium uppercase tracking-wider text-gray-400 mb-0.5", children: label }), _jsx("div", { className: `text-xl font-bold tabular-nums tracking-tight ${accent ? "text-green-600" : "text-gray-900"}`, children: value }), sub && (_jsx("div", { className: "text-[10px] text-gray-400 tabular-nums mt-0.5", children: sub })), error && (_jsx("div", { className: "text-[10px] text-red-500 font-medium mt-0.5", children: error }))] }));
|
|
43
|
+
}
|
|
44
|
+
function StatusBadge({ status }) {
|
|
45
|
+
return status === "active" ? (_jsxs("div", { className: "flex items-center gap-1.5 bg-accent-lime/30 px-2.5 py-1 rounded-full", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-green-500 animate-pulse" }), _jsx("span", { className: "text-[11px] font-semibold text-gray-700", children: "Active" })] })) : (_jsxs("div", { className: "flex items-center gap-1.5 bg-gray-100 px-2.5 py-1 rounded-full", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-gray-400" }), _jsx("span", { className: "text-[11px] font-semibold text-gray-500", children: "Closed" })] }));
|
|
46
|
+
}
|
|
47
|
+
function AgentStatusBadge({ status }) {
|
|
48
|
+
const styles = {
|
|
49
|
+
pending: "bg-gray-100 text-gray-600",
|
|
50
|
+
inferring: "bg-accent-lime/30 text-gray-700",
|
|
51
|
+
tool_exec: "bg-accent-peri/30 text-gray-700",
|
|
52
|
+
errored: "bg-red-100 text-red-700",
|
|
53
|
+
done: "bg-green-100 text-green-700",
|
|
54
|
+
};
|
|
55
|
+
return (_jsx("span", { className: `text-[10px] px-2 py-0.5 rounded-full font-semibold ${styles[status] ?? "bg-gray-100 text-gray-600"}`, children: status }));
|
|
56
|
+
}
|
|
57
|
+
function formatTokens(n) {
|
|
58
|
+
if (n >= 1000000)
|
|
59
|
+
return `${(n / 1000000).toFixed(1)}M`;
|
|
60
|
+
if (n >= 1000)
|
|
61
|
+
return `${(n / 1000).toFixed(1)}k`;
|
|
62
|
+
return n.toString();
|
|
63
|
+
}
|
|
64
|
+
function ratioColor(ratio) {
|
|
65
|
+
if (ratio >= 0.7)
|
|
66
|
+
return "text-green-600";
|
|
67
|
+
if (ratio >= 0.4)
|
|
68
|
+
return "text-amber-600";
|
|
69
|
+
return "text-red-600";
|
|
70
|
+
}
|
|
71
|
+
function LLMCostByAgent({ agentNameById, }) {
|
|
72
|
+
const debugNavigate = useDebugNavigate();
|
|
73
|
+
const timeline = useTimeline();
|
|
74
|
+
const { rows, totals } = useMemo(() => {
|
|
75
|
+
const llmItems = timeline.filter((it) => it.type === "llm");
|
|
76
|
+
const byAgent = new Map();
|
|
77
|
+
let totalCost = 0;
|
|
78
|
+
let totalUncachedPrompt = 0;
|
|
79
|
+
let totalCached = 0;
|
|
80
|
+
let totalCacheWrite = 0;
|
|
81
|
+
let totalCompletion = 0;
|
|
82
|
+
let totalCalls = 0;
|
|
83
|
+
let totalErrors = 0;
|
|
84
|
+
for (const item of llmItems) {
|
|
85
|
+
const isError = item.status === "error";
|
|
86
|
+
let row = byAgent.get(item.agentId);
|
|
87
|
+
if (!row) {
|
|
88
|
+
row = {
|
|
89
|
+
agentId: item.agentId,
|
|
90
|
+
agentName: agentNameById.get(item.agentId) ?? item.agentId,
|
|
91
|
+
calls: 0,
|
|
92
|
+
errors: 0,
|
|
93
|
+
cost: 0,
|
|
94
|
+
uncachedPromptTokens: 0,
|
|
95
|
+
cachedTokens: 0,
|
|
96
|
+
cacheWriteTokens: 0,
|
|
97
|
+
completionTokens: 0,
|
|
98
|
+
};
|
|
99
|
+
byAgent.set(item.agentId, row);
|
|
100
|
+
}
|
|
101
|
+
row.calls += 1;
|
|
102
|
+
totalCalls += 1;
|
|
103
|
+
if (isError) {
|
|
104
|
+
row.errors += 1;
|
|
105
|
+
totalErrors += 1;
|
|
106
|
+
}
|
|
107
|
+
// promptTokens (= Anthropic input_tokens) is TOTAL input including cached/cache-write.
|
|
108
|
+
// Uncached = total - cached - cache_write.
|
|
109
|
+
const totalInput = item.promptTokens ?? 0;
|
|
110
|
+
const cached = item.cachedTokens ?? 0;
|
|
111
|
+
const cacheWrite = item.cacheWriteTokens ?? 0;
|
|
112
|
+
const uncached = totalInput - cached - cacheWrite;
|
|
113
|
+
row.cost += item.cost ?? 0;
|
|
114
|
+
row.uncachedPromptTokens += uncached;
|
|
115
|
+
row.cachedTokens += cached;
|
|
116
|
+
row.cacheWriteTokens += cacheWrite;
|
|
117
|
+
row.completionTokens += item.completionTokens ?? 0;
|
|
118
|
+
totalCost += item.cost ?? 0;
|
|
119
|
+
totalUncachedPrompt += uncached;
|
|
120
|
+
totalCached += cached;
|
|
121
|
+
totalCacheWrite += cacheWrite;
|
|
122
|
+
totalCompletion += item.completionTokens ?? 0;
|
|
123
|
+
}
|
|
124
|
+
const sorted = Array.from(byAgent.values()).sort((a, b) => b.cost - a.cost);
|
|
125
|
+
// Cache ratio: cached / total input (= uncached + cached + cacheWrite)
|
|
126
|
+
const totalInputAll = totalUncachedPrompt + totalCached + totalCacheWrite;
|
|
127
|
+
const cacheRatio = totalInputAll > 0 ? totalCached / totalInputAll : 0;
|
|
128
|
+
return {
|
|
129
|
+
rows: sorted,
|
|
130
|
+
totals: {
|
|
131
|
+
calls: totalCalls,
|
|
132
|
+
errors: totalErrors,
|
|
133
|
+
cost: totalCost,
|
|
134
|
+
uncachedPromptTokens: totalUncachedPrompt,
|
|
135
|
+
cachedTokens: totalCached,
|
|
136
|
+
cacheWriteTokens: totalCacheWrite,
|
|
137
|
+
completionTokens: totalCompletion,
|
|
138
|
+
cacheRatio,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}, [timeline, agentNameById]);
|
|
142
|
+
if (rows.length === 0) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const maxCost = Math.max(...rows.map((r) => r.cost), 0.0001);
|
|
146
|
+
return (_jsxs("div", { className: "bg-white rounded-3xl shadow-soft p-5", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "LLM Cost & Cache by Agent" }), _jsx("div", { className: "text-[10px] text-gray-400 mt-0.5", children: "Cache ratio = cached / (cached + uncached input). Low ratio means the prompt cache isn't being reused effectively." })] }), _jsxs("div", { className: "flex items-center gap-5", children: [_jsx(SummaryStat, { label: "Total Cost", value: `$${totals.cost.toFixed(4)}`, accent: true }), _jsx(SummaryStat, { label: "Cache Hit Ratio", value: `${(totals.cacheRatio * 100).toFixed(1)}%`, valueClass: ratioColor(totals.cacheRatio) }), _jsx(SummaryStat, { label: "Uncached Input", value: formatTokens(totals.uncachedPromptTokens) }), _jsx(SummaryStat, { label: "Cached Read", value: formatTokens(totals.cachedTokens) }), _jsx(SummaryStat, { label: "Cache Write", value: formatTokens(totals.cacheWriteTokens) }), _jsx(SummaryStat, { label: "Completion", value: formatTokens(totals.completionTokens) })] })] }), _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full text-xs", children: [_jsx("thead", { children: _jsxs("tr", { className: "text-[10px] font-medium uppercase tracking-wider text-gray-400 border-b border-gray-100", children: [_jsx("th", { className: "text-left py-2 pl-1 font-medium", children: "Agent" }), _jsx("th", { className: "text-right py-2 font-medium", children: "Calls" }), _jsx("th", { className: "text-right py-2 font-medium", children: "Cost" }), _jsx("th", { className: "py-2 pl-4 pr-2 font-medium", style: { width: "34%" }, children: "Cost share" }), _jsx("th", { className: "text-right py-2 font-medium", children: "Uncached In" }), _jsx("th", { className: "text-right py-2 font-medium", children: "Cached" }), _jsx("th", { className: "text-right py-2 font-medium", children: "Cache Write" }), _jsx("th", { className: "text-right py-2 font-medium", children: "Out" }), _jsx("th", { className: "text-right py-2 pr-1 font-medium", children: "Cache %" })] }) }), _jsx("tbody", { children: rows.map((r) => {
|
|
147
|
+
const inputTotal = r.uncachedPromptTokens + r.cachedTokens + r.cacheWriteTokens;
|
|
148
|
+
const cacheRatio = inputTotal > 0 ? r.cachedTokens / inputTotal : 0;
|
|
149
|
+
const costPct = (r.cost / maxCost) * 100;
|
|
150
|
+
return (_jsxs("tr", { className: "border-b border-gray-50 hover:bg-gray-50 cursor-pointer", onClick: () => debugNavigate(`agents/${r.agentId}`), children: [_jsxs("td", { className: "py-2 pl-1", children: [_jsx("div", { className: "font-medium text-gray-900", children: r.agentName }), _jsx("div", { className: "text-[10px] text-gray-400 font-mono", children: r.agentId.slice(0, 12) })] }), _jsxs("td", { className: "text-right py-2 tabular-nums text-gray-700", children: [r.calls, r.errors > 0 && (_jsxs("span", { className: "text-red-500 ml-1", children: ["(", r.errors, "!)"] }))] }), _jsxs("td", { className: "text-right py-2 tabular-nums font-semibold text-green-700", children: ["$", r.cost.toFixed(4)] }), _jsx("td", { className: "py-2 pl-4 pr-2", children: _jsx("div", { className: "h-2 bg-gray-100 rounded-full overflow-hidden", children: _jsx("div", { className: "h-full bg-green-500 rounded-full", style: { width: `${costPct}%` } }) }) }), _jsx("td", { className: "text-right py-2 tabular-nums text-gray-700", children: formatTokens(r.uncachedPromptTokens) }), _jsx("td", { className: "text-right py-2 tabular-nums text-gray-500", children: formatTokens(r.cachedTokens) }), _jsx("td", { className: "text-right py-2 tabular-nums text-gray-500", children: formatTokens(r.cacheWriteTokens) }), _jsx("td", { className: "text-right py-2 tabular-nums text-gray-500", children: formatTokens(r.completionTokens) }), _jsxs("td", { className: `text-right py-2 pr-1 tabular-nums font-semibold ${ratioColor(cacheRatio)}`, children: [(cacheRatio * 100).toFixed(0), "%"] })] }, r.agentId));
|
|
151
|
+
}) })] }) })] }));
|
|
152
|
+
}
|
|
153
|
+
function SummaryStat({ label, value, accent, valueClass, }) {
|
|
154
|
+
return (_jsxs("div", { className: "text-right", children: [_jsx("div", { className: "text-[9px] font-medium uppercase tracking-wider text-gray-400", children: label }), _jsx("div", { className: `text-sm font-bold tabular-nums ${valueClass ?? (accent ? "text-green-600" : "text-gray-900")}`, children: value })] }));
|
|
155
|
+
}
|
|
156
|
+
function ResumeAgentButton({ sessionId, agentId, }) {
|
|
157
|
+
const [resuming, setResuming] = useState(false);
|
|
158
|
+
const handleResume = useCallback(async (e) => {
|
|
159
|
+
e.stopPropagation();
|
|
160
|
+
setResuming(true);
|
|
161
|
+
try {
|
|
162
|
+
unwrap(await api.call("agents.resume", {
|
|
163
|
+
sessionId,
|
|
164
|
+
agentId: AgentId(agentId),
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Error is visible via state change (or lack thereof)
|
|
169
|
+
}
|
|
170
|
+
finally {
|
|
171
|
+
setResuming(false);
|
|
172
|
+
}
|
|
173
|
+
}, [sessionId, agentId]);
|
|
174
|
+
return (_jsx("button", { type: "button", onClick: handleResume, disabled: resuming, className: "text-[11px] font-semibold text-white bg-red-600 hover:bg-red-700 px-2.5 py-1 rounded-lg disabled:opacity-50 disabled:cursor-not-allowed transition-colors shrink-0 cursor-pointer", children: resuming ? "Resuming..." : "Resume" }));
|
|
175
|
+
}
|
|
176
|
+
function formatChartTime(ts, rangeMs) {
|
|
177
|
+
const d = new Date(ts);
|
|
178
|
+
const hh = d.getHours().toString().padStart(2, "0");
|
|
179
|
+
const mm = d.getMinutes().toString().padStart(2, "0");
|
|
180
|
+
const ss = d.getSeconds().toString().padStart(2, "0");
|
|
181
|
+
if (rangeMs < 120000)
|
|
182
|
+
return `${mm}:${ss}`;
|
|
183
|
+
return `${hh}:${mm}:${ss}`;
|
|
184
|
+
}
|
|
185
|
+
const MAX_LANES = 8;
|
|
186
|
+
/** Group nearby narrow items into clusters for fan-marker rendering */
|
|
187
|
+
function groupNarrowItems(narrowItems, minDist = 10) {
|
|
188
|
+
const clusters = [];
|
|
189
|
+
for (const item of narrowItems) {
|
|
190
|
+
const existing = clusters.find((c) => Math.abs(c.centerX - item.x) < minDist);
|
|
191
|
+
if (existing) {
|
|
192
|
+
existing.sumX += item.x;
|
|
193
|
+
existing.items.push(item);
|
|
194
|
+
existing.centerX = existing.sumX / existing.items.length;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
clusters.push({ centerX: item.x, items: [item], sumX: item.x });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return clusters;
|
|
201
|
+
}
|
|
202
|
+
function dotColor(item) {
|
|
203
|
+
if (item.isError)
|
|
204
|
+
return "#EF4444";
|
|
205
|
+
return item.type === "llm" ? "#7CA3F0" : "#84CC16";
|
|
206
|
+
}
|
|
207
|
+
function ActivityTimeline({ timeline }) {
|
|
208
|
+
const sessionId = useEventStore((s) => s.sessionInfoState.id ?? "");
|
|
209
|
+
const items = timeline.filter((it) => it.type !== "compaction");
|
|
210
|
+
const hasItems = items.length > 0;
|
|
211
|
+
// Time range
|
|
212
|
+
const allTimes = items.flatMap((it) => [
|
|
213
|
+
it.startedAt,
|
|
214
|
+
...(it.completedAt ? [it.completedAt] : []),
|
|
215
|
+
]);
|
|
216
|
+
const minTime = Math.min(...allTimes);
|
|
217
|
+
const maxTime = Math.max(...allTimes);
|
|
218
|
+
const timeRange = Math.max(maxTime - minTime, 1000);
|
|
219
|
+
// Group by agent, sorted by first appearance
|
|
220
|
+
const agentMap = new Map();
|
|
221
|
+
for (const item of items) {
|
|
222
|
+
const list = agentMap.get(item.agentName) ?? [];
|
|
223
|
+
list.push(item);
|
|
224
|
+
agentMap.set(item.agentName, list);
|
|
225
|
+
}
|
|
226
|
+
const allAgents = [...agentMap.entries()].sort((a, b) => Math.min(...a[1].map((i) => i.startedAt)) -
|
|
227
|
+
Math.min(...b[1].map((i) => i.startedAt)));
|
|
228
|
+
const displayAgents = allAgents.slice(0, MAX_LANES);
|
|
229
|
+
const hiddenCount = allAgents.length - displayAgents.length;
|
|
230
|
+
// Layout constants
|
|
231
|
+
const leftMargin = 64;
|
|
232
|
+
const rightMargin = 6;
|
|
233
|
+
const laneHeight = 12;
|
|
234
|
+
const chartWidth = 900;
|
|
235
|
+
const bottomMargin = 10;
|
|
236
|
+
const contentWidth = chartWidth - leftMargin - rightMargin;
|
|
237
|
+
const minBarWidth = 5;
|
|
238
|
+
const timeToX = (t) => leftMargin + ((t - minTime) / timeRange) * contentWidth;
|
|
239
|
+
// Pre-compute which items are narrow (too small to see as bars) per lane
|
|
240
|
+
const laneNarrowItems = displayAgents.map(([, agentItems]) => {
|
|
241
|
+
const narrow = [];
|
|
242
|
+
for (const item of agentItems) {
|
|
243
|
+
const x1 = timeToX(item.startedAt);
|
|
244
|
+
const x2 = timeToX(item.completedAt ?? maxTime);
|
|
245
|
+
const w = x2 - x1;
|
|
246
|
+
if (w < minBarWidth) {
|
|
247
|
+
narrow.push({
|
|
248
|
+
x: x1,
|
|
249
|
+
type: item.type,
|
|
250
|
+
isError: item.status === "error",
|
|
251
|
+
source: item,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return narrow;
|
|
256
|
+
});
|
|
257
|
+
const hasNarrowItems = laneNarrowItems.some((n) => n.length > 0);
|
|
258
|
+
const laneGap = hasNarrowItems ? 8 : 2;
|
|
259
|
+
const topMargin = hasNarrowItems ? 8 : 0;
|
|
260
|
+
const lanesHeight = topMargin +
|
|
261
|
+
displayAgents.length * laneHeight +
|
|
262
|
+
Math.max(0, displayAgents.length - 1) * laneGap;
|
|
263
|
+
const totalHeight = lanesHeight + bottomMargin;
|
|
264
|
+
const getLaneY = (index) => topMargin + index * (laneHeight + laneGap);
|
|
265
|
+
// Time labels (~5)
|
|
266
|
+
const labelCount = 5;
|
|
267
|
+
const timeLabels = Array.from({ length: labelCount }, (_, i) => {
|
|
268
|
+
const t = minTime + (i / (labelCount - 1)) * timeRange;
|
|
269
|
+
return { x: timeToX(t), label: formatChartTime(t, timeRange) };
|
|
270
|
+
});
|
|
271
|
+
// Fan marker geometry
|
|
272
|
+
const stemHeight = 5;
|
|
273
|
+
const dotRadius = 1.5;
|
|
274
|
+
const dotSpacing = 4;
|
|
275
|
+
const minDotGap = dotRadius * 2 + 1;
|
|
276
|
+
// Stats
|
|
277
|
+
const llmItems = items.filter((it) => it.type === "llm" && it.durationMs !== undefined);
|
|
278
|
+
const toolItems = items.filter((it) => it.type === "tool" && it.durationMs !== undefined);
|
|
279
|
+
const avgLlmMs = llmItems.length > 0
|
|
280
|
+
? llmItems.reduce((s, it) => s + (it.durationMs ?? 0), 0) /
|
|
281
|
+
llmItems.length
|
|
282
|
+
: 0;
|
|
283
|
+
const totalLlmMs = llmItems.reduce((s, it) => s + (it.durationMs ?? 0), 0);
|
|
284
|
+
const totalToolMs = toolItems.reduce((s, it) => s + (it.durationMs ?? 0), 0);
|
|
285
|
+
const totalMs = totalLlmMs + totalToolMs;
|
|
286
|
+
const llmPercent = totalMs > 0 ? Math.round((totalLlmMs / totalMs) * 100) : 0;
|
|
287
|
+
const completedItems = items.filter((it) => it.durationMs !== undefined);
|
|
288
|
+
const longest = completedItems.length > 0
|
|
289
|
+
? completedItems.reduce((max, it) => (it.durationMs ?? 0) > (max.durationMs ?? 0) ? it : max)
|
|
290
|
+
: null;
|
|
291
|
+
// Hover popover state
|
|
292
|
+
const containerRef = useRef(null);
|
|
293
|
+
const debugNavigate = useDebugNavigate();
|
|
294
|
+
const hideTimer = useRef(null);
|
|
295
|
+
const [tooltip, setTooltip] = useState(null);
|
|
296
|
+
const [modalItem, setModalItem] = useState(null);
|
|
297
|
+
const showTooltip = useCallback((item, e) => {
|
|
298
|
+
if (hideTimer.current)
|
|
299
|
+
clearTimeout(hideTimer.current);
|
|
300
|
+
const rect = containerRef.current?.getBoundingClientRect();
|
|
301
|
+
if (!rect)
|
|
302
|
+
return;
|
|
303
|
+
setTooltip({ item, x: e.clientX - rect.left, y: e.clientY - rect.top });
|
|
304
|
+
}, []);
|
|
305
|
+
const scheduleHide = useCallback(() => {
|
|
306
|
+
hideTimer.current = setTimeout(() => setTooltip(null), 150);
|
|
307
|
+
}, []);
|
|
308
|
+
const cancelHide = useCallback(() => {
|
|
309
|
+
if (hideTimer.current)
|
|
310
|
+
clearTimeout(hideTimer.current);
|
|
311
|
+
}, []);
|
|
312
|
+
if (!hasItems)
|
|
313
|
+
return null;
|
|
314
|
+
return (_jsxs("div", { className: "bg-white rounded-3xl shadow-soft p-5", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-900 mb-2", children: "Activity Timeline" }), _jsxs("div", { ref: containerRef, className: "relative", children: [_jsxs("svg", { viewBox: `0 0 ${chartWidth} ${totalHeight}`, className: "w-full", preserveAspectRatio: "xMidYMid meet", children: [timeLabels.map(({ x }, i) => (_jsx("line", { x1: x, y1: topMargin, x2: x, y2: lanesHeight, stroke: "#F3F4F6", strokeWidth: 0.5 }, `grid-${i}`))), displayAgents.map(([agentName, agentItems], laneIndex) => {
|
|
315
|
+
const y = getLaneY(laneIndex);
|
|
316
|
+
const narrowItems = laneNarrowItems[laneIndex];
|
|
317
|
+
const clusters = groupNarrowItems(narrowItems);
|
|
318
|
+
// Wide items render as bars, narrow items render as fan markers
|
|
319
|
+
const wideItems = agentItems.filter((item) => {
|
|
320
|
+
const x1 = timeToX(item.startedAt);
|
|
321
|
+
const x2 = timeToX(item.completedAt ?? maxTime);
|
|
322
|
+
return x2 - x1 >= minBarWidth;
|
|
323
|
+
});
|
|
324
|
+
return (_jsxs("g", { children: [_jsx("text", { x: leftMargin - 4, y: y + laneHeight / 2 + 2, textAnchor: "end", fill: "#6B7280", fontSize: 5, fontFamily: "ui-monospace, monospace", children: agentName.length > 12
|
|
325
|
+
? agentName.slice(0, 12) + "\u2026"
|
|
326
|
+
: agentName }), _jsx("rect", { x: leftMargin, y: y, width: contentWidth, height: laneHeight, fill: "#F4F5F7", rx: 1 }), wideItems.map((item) => {
|
|
327
|
+
const x1 = timeToX(item.startedAt);
|
|
328
|
+
const x2 = timeToX(item.completedAt ?? maxTime);
|
|
329
|
+
const w = x2 - x1;
|
|
330
|
+
const isRunning = item.status === "running";
|
|
331
|
+
const isError = item.status === "error";
|
|
332
|
+
return (_jsx("rect", { x: x1, y: y + 2, width: w, height: laneHeight - 4, fill: isError
|
|
333
|
+
? "#EF4444"
|
|
334
|
+
: item.type === "llm"
|
|
335
|
+
? "#7CA3F0"
|
|
336
|
+
: "#84CC16", rx: 1, opacity: isRunning ? 0.4 : 1, strokeDasharray: isRunning ? "3 2" : undefined, stroke: isRunning ? "#6B7280" : "none", strokeWidth: isRunning ? 0.5 : 0, style: { cursor: "pointer" }, onMouseEnter: (e) => showTooltip(item, e), onMouseLeave: scheduleHide, onClick: () => setModalItem(item) }, item.id));
|
|
337
|
+
}), (() => {
|
|
338
|
+
if (clusters.length === 0)
|
|
339
|
+
return null;
|
|
340
|
+
// Collect all dots across all clusters
|
|
341
|
+
const allDots = [];
|
|
342
|
+
const ticks = [];
|
|
343
|
+
for (const cluster of clusters) {
|
|
344
|
+
const bx = cluster.centerX;
|
|
345
|
+
const hasErr = cluster.items.some((it) => it.isError);
|
|
346
|
+
ticks.push({ x: bx, hasError: hasErr });
|
|
347
|
+
const fw = Math.max(0, cluster.items.length - 1) * dotSpacing;
|
|
348
|
+
const sc = hasErr ? "#EF4444" : "#9CA3AF";
|
|
349
|
+
for (let i = 0; i < cluster.items.length; i++) {
|
|
350
|
+
allDots.push({
|
|
351
|
+
x: bx - fw / 2 + i * dotSpacing,
|
|
352
|
+
color: dotColor(cluster.items[i]),
|
|
353
|
+
clusterX: bx,
|
|
354
|
+
stemColor: sc,
|
|
355
|
+
source: cluster.items[i].source,
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
// Sort by x, resolve overlaps, then clamp with backward pass
|
|
360
|
+
allDots.sort((a, b) => a.x - b.x);
|
|
361
|
+
const xMin = leftMargin + dotRadius;
|
|
362
|
+
const xMax = leftMargin + contentWidth - dotRadius;
|
|
363
|
+
// Forward pass: push right to resolve overlaps
|
|
364
|
+
for (let i = 1; i < allDots.length; i++) {
|
|
365
|
+
if (allDots[i].x - allDots[i - 1].x < minDotGap) {
|
|
366
|
+
allDots[i] = {
|
|
367
|
+
...allDots[i],
|
|
368
|
+
x: allDots[i - 1].x + minDotGap,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
// Clamp rightmost, then backward pass to spread left
|
|
373
|
+
if (allDots.length > 0 &&
|
|
374
|
+
allDots[allDots.length - 1].x > xMax) {
|
|
375
|
+
allDots[allDots.length - 1] = {
|
|
376
|
+
...allDots[allDots.length - 1],
|
|
377
|
+
x: xMax,
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
for (let i = allDots.length - 2; i >= 0; i--) {
|
|
381
|
+
if (allDots[i + 1].x - allDots[i].x < minDotGap) {
|
|
382
|
+
allDots[i] = {
|
|
383
|
+
...allDots[i],
|
|
384
|
+
x: allDots[i + 1].x - minDotGap,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// Clamp leftmost
|
|
389
|
+
if (allDots.length > 0 && allDots[0].x < xMin) {
|
|
390
|
+
allDots[0] = { ...allDots[0], x: xMin };
|
|
391
|
+
}
|
|
392
|
+
const dotY = y - stemHeight;
|
|
393
|
+
return (_jsxs(_Fragment, { children: [ticks.map((tick, ti) => (_jsx("line", { x1: tick.x, y1: y, x2: tick.x, y2: y + laneHeight, stroke: tick.hasError ? "#EF4444" : "#9CA3AF", strokeWidth: tick.hasError ? 1.5 : 1 }, `t-${ti}`))), allDots.map((dot, di) => (_jsxs("g", { style: { cursor: "pointer" }, onMouseEnter: (e) => showTooltip(dot.source, e), onMouseLeave: scheduleHide, onClick: () => setModalItem(dot.source), children: [_jsx("path", { d: `M ${dot.clusterX} ${y - 0.5} Q ${dot.clusterX} ${y - stemHeight * 0.4}, ${dot.x} ${dotY}`, fill: "none", stroke: dot.stemColor, strokeWidth: 0.5, opacity: 0.3 }), _jsx("circle", { cx: dot.x, cy: dotY, r: dotRadius + 3, fill: "transparent" }), _jsx("circle", { cx: dot.x, cy: dotY, r: dotRadius, fill: dot.color })] }, `fd-${di}`)))] }));
|
|
394
|
+
})()] }, agentName));
|
|
395
|
+
}), timeLabels.map(({ x, label }, i) => (_jsx("text", { x: x, y: totalHeight - 1, textAnchor: "middle", fill: "#9CA3AF", fontSize: 5, children: label }, `time-${i}`)))] }), tooltip && (_jsx("div", { className: "absolute z-50 bg-white rounded-xl shadow-lg border border-gray-100 py-2 px-2.5 text-[11px] pointer-events-auto", style: {
|
|
396
|
+
left: tooltip.x,
|
|
397
|
+
top: tooltip.y - 8,
|
|
398
|
+
transform: "translate(-50%, -100%)",
|
|
399
|
+
}, onMouseEnter: cancelHide, onMouseLeave: scheduleHide, children: _jsx(HoverTooltipContent, { item: tooltip.item, onViewDetail: () => {
|
|
400
|
+
setModalItem(tooltip.item);
|
|
401
|
+
setTooltip(null);
|
|
402
|
+
} }) }))] }), hiddenCount > 0 && (_jsxs("div", { className: "text-[10px] text-gray-400 mt-0.5 text-right", children: ["+", hiddenCount, " more agents"] })), _jsxs("div", { className: "flex items-center gap-4 mt-3 pt-2.5 border-t border-gray-100 text-[11px] text-gray-500", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("div", { className: "w-2 h-2 rounded-sm", style: { backgroundColor: "#7CA3F0" } }), _jsx("span", { children: "LLM" })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("div", { className: "w-2 h-2 rounded-sm", style: { backgroundColor: "#84CC16" } }), _jsx("span", { children: "Tool" })] }), _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("div", { className: "w-2 h-2 rounded-full", style: { backgroundColor: "#EF4444" } }), _jsx("span", { children: "Error" })] }), hasNarrowItems && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsxs("svg", { width: "8", height: "8", viewBox: "0 0 8 8", children: [_jsx("circle", { cx: "2", cy: "2", r: "1.5", fill: "#9CA3AF" }), _jsx("circle", { cx: "6", cy: "2", r: "1.5", fill: "#9CA3AF" }), _jsx("line", { x1: "4", y1: "7", x2: "2", y2: "3", stroke: "#9CA3AF", strokeWidth: "0.5" }), _jsx("line", { x1: "4", y1: "7", x2: "6", y2: "3", stroke: "#9CA3AF", strokeWidth: "0.5" })] }), _jsx("span", { children: "Clustered" })] })), completedItems.length > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "w-px h-3 bg-gray-200 ml-1" }), llmItems.length > 0 && (_jsxs("div", { children: [_jsx("span", { className: "text-gray-400", children: "Avg LLM " }), _jsx("span", { className: "font-semibold text-gray-700 tabular-nums", children: formatDuration(avgLlmMs) })] })), longest && (_jsxs("div", { children: [_jsx("span", { className: "text-gray-400", children: "Longest " }), _jsx("span", { className: "font-semibold text-gray-700 tabular-nums", children: formatDuration(longest.durationMs ?? 0) }), _jsx("span", { className: "text-gray-400 ml-1", children: longest.toolName ?? longest.model ?? "" })] })), totalMs > 0 && (_jsxs("div", { className: "flex items-center gap-1.5 ml-auto", children: [_jsxs("div", { className: "w-16 h-1.5 rounded-full bg-gray-200 overflow-hidden flex", children: [_jsx("div", { className: "h-full", style: {
|
|
403
|
+
width: `${llmPercent}%`,
|
|
404
|
+
backgroundColor: "#7CA3F0",
|
|
405
|
+
} }), _jsx("div", { className: "h-full", style: {
|
|
406
|
+
width: `${100 - llmPercent}%`,
|
|
407
|
+
backgroundColor: "#84CC16",
|
|
408
|
+
} })] }), _jsxs("span", { className: "text-gray-400 tabular-nums", children: [llmPercent, "%"] })] }))] }))] }), modalItem && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/30", onClick: () => setModalItem(null), children: _jsxs("div", { className: "bg-white rounded-2xl shadow-lg w-full max-w-2xl max-h-[80vh] flex flex-col mx-4", onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "flex items-center justify-between px-5 py-3 border-b border-gray-100 shrink-0", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-900", children: "Detail Inspector" }), _jsx("button", { type: "button", onClick: () => setModalItem(null), className: "text-gray-400 hover:text-gray-600 cursor-pointer", children: _jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })] }), _jsx("div", { className: "flex-1 overflow-auto p-5", children: _jsx(TimelineDetailInspector, { sessionId: sessionId, item: modalItem, onNavigate: (path) => {
|
|
409
|
+
debugNavigate(path);
|
|
410
|
+
setModalItem(null);
|
|
411
|
+
} }) })] }) }))] }));
|
|
412
|
+
}
|
|
413
|
+
function HoverTooltipContent({ item, onViewDetail, }) {
|
|
414
|
+
const isLLM = item.type === "llm";
|
|
415
|
+
const statusColor = item.status === "error"
|
|
416
|
+
? "text-red-600"
|
|
417
|
+
: item.status === "running"
|
|
418
|
+
? "text-amber-500"
|
|
419
|
+
: "text-green-600";
|
|
420
|
+
return (_jsxs("div", { className: "min-w-36", children: [_jsxs("div", { className: "flex items-center gap-1.5 mb-1", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full", style: {
|
|
421
|
+
backgroundColor: item.status === "error"
|
|
422
|
+
? "#EF4444"
|
|
423
|
+
: isLLM
|
|
424
|
+
? "#7CA3F0"
|
|
425
|
+
: "#84CC16",
|
|
426
|
+
} }), _jsx("span", { className: "font-semibold text-gray-900", children: isLLM
|
|
427
|
+
? (item.model?.split("/").pop() ?? "LLM")
|
|
428
|
+
: (item.toolName ?? "Tool") }), _jsx("span", { className: `ml-auto text-[10px] ${statusColor}`, children: item.status })] }), _jsxs("div", { className: "text-gray-400 space-y-0.5", children: [_jsx("div", { children: _jsx("span", { className: "text-gray-700 font-mono", children: item.agentName }) }), item.durationMs !== undefined && (_jsxs("div", { children: [_jsx("span", { className: "text-gray-700 font-semibold tabular-nums", children: formatDuration(item.durationMs) }), isLLM && item.cost !== undefined && item.cost > 0 && (_jsxs("span", { className: "text-green-600 ml-2", children: ["$", item.cost.toFixed(4)] }))] })), item.error && (_jsx("div", { className: "text-red-500 truncate max-w-48", title: item.error, children: item.error }))] }), _jsx("button", { type: "button", onClick: onViewDetail, className: "mt-1.5 pt-1.5 border-t border-gray-100 w-full text-left text-accent-peri hover:underline font-medium cursor-pointer", children: "View details \u2192" })] }));
|
|
429
|
+
}
|
|
430
|
+
//# sourceMappingURL=DashboardPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DashboardPage.js","sourceRoot":"","sources":["../../../../src/components/debug/pages/DashboardPage.tsx"],"names":[],"mappings":"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"}
|