"use client"; import { useState, useEffect } from "react"; import { CLI_TOOLS } from "@/shared/constants/cliTools"; import { getModelsByProviderId, PROVIDER_ID_TO_ALIAS } from "@/shared/constants/models"; import { MitmServerCard, MitmToolCard } from "@/app/(dashboard)/dashboard/cli-tools/components"; const MITM_TOOL_IDS = ["antigravity", "copilot"]; export default function MitmPageClient() { const [connections, setConnections] = useState([]); const [apiKeys, setApiKeys] = useState([]); const [cloudEnabled, setCloudEnabled] = useState(false); const [expandedTool, setExpandedTool] = useState(null); const [mitmStatus, setMitmStatus] = useState({ running: false, certExists: false, dnsStatus: {}, certCoversTools: {}, hasCachedPassword: false }); useEffect(() => { fetchConnections(); fetchApiKeys(); fetchCloudSettings(); }, []); const fetchConnections = async () => { try { const res = await fetch("/api/providers"); if (res.ok) { const data = await res.json(); setConnections(data.connections || []); } } catch { /* ignore */ } }; const fetchApiKeys = async () => { try { const res = await fetch("/api/keys"); if (res.ok) { const data = await res.json(); setApiKeys(data.keys || []); } } catch { /* ignore */ } }; const fetchCloudSettings = async () => { try { const res = await fetch("/api/settings"); if (res.ok) { const data = await res.json(); setCloudEnabled(data.cloudEnabled || false); } } catch { /* ignore */ } }; const getActiveProviders = () => connections.filter(c => c.isActive !== false); const hasActiveProviders = () => { const active = getActiveProviders(); return active.some(conn => getModelsByProviderId(conn.provider).length > 0); }; const mitmTools = Object.entries(CLI_TOOLS).filter(([id]) => MITM_TOOL_IDS.includes(id)); return (