import type { MCPCostHistogramResponse, MCPHistogramResponse, MCPTopToolsResponse } from "@/lib/types/logs"; import { CHART_COLORS, CHART_HEADER_ACTIONS_CLASS, CHART_HEADER_CONTROLS_CLASS, CHART_HEADER_LEGEND_CLASS } from "../utils/chartUtils"; import { ChartCard } from "./charts/chartCard"; import { type ChartType, ChartTypeToggle } from "./charts/chartTypeToggle"; import { MCPCostChart } from "./charts/mcpCostChart"; import { MCPTopToolsChart } from "./charts/mcpTopToolsChart"; import { MCPVolumeChart } from "./charts/mcpVolumeChart"; export interface MCPTabProps { // Data mcpHistogramData: MCPHistogramResponse | null; mcpCostData: MCPCostHistogramResponse | null; mcpTopToolsData: MCPTopToolsResponse | null; // Loading states loadingMcpHistogram: boolean; loadingMcpCost: boolean; loadingMcpTopTools: boolean; // Time range startTime: number; endTime: number; // Chart types mcpVolumeChartType: ChartType; mcpCostChartType: ChartType; // Chart type toggle callbacks onMcpVolumeChartToggle: (type: ChartType) => void; onMcpCostChartToggle: (type: ChartType) => void; } export function MCPTab({ mcpHistogramData, mcpCostData, mcpTopToolsData, loadingMcpHistogram, loadingMcpCost, loadingMcpTopTools, startTime, endTime, mcpVolumeChartType, mcpCostChartType, onMcpVolumeChartToggle, onMcpCostChartToggle, }: MCPTabProps) { return (
{/* MCP Tool Calls Volume */}
Success Error
} > {/* MCP Cost */}
Cost
} >
{/* Top 10 MCP Tools */} ); }