diff --git a/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js b/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js index b8c5c9e398..79d55dc552 100644 --- a/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js +++ b/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js @@ -28,11 +28,13 @@ export default function CLIToolsPageClient({ machineId }) { const [modelMappings, setModelMappings] = useState({}); const [cloudEnabled, setCloudEnabled] = useState(false); const [apiKeys, setApiKeys] = useState([]); + const [toolStatuses, setToolStatuses] = useState({}); useEffect(() => { fetchConnections(); loadCloudSettings(); fetchApiKeys(); + fetchToolStatuses(); }, []); const loadCloudSettings = async () => { @@ -59,6 +61,18 @@ export default function CLIToolsPageClient({ machineId }) { } }; + const fetchToolStatuses = async () => { + try { + const res = await fetch("/api/cli-tools/status"); + if (res.ok) { + const data = await res.json(); + setToolStatuses(data || {}); + } + } catch (error) { + console.log("Error fetching CLI tool statuses:", error); + } + }; + const fetchConnections = async () => { try { const res = await fetch("/api/providers"); @@ -152,6 +166,7 @@ export default function CLIToolsPageClient({ machineId }) { onToggle: () => setExpandedTool(expandedTool === toolId ? null : toolId), baseUrl: getBaseUrl(), apiKeys, + batchStatus: toolStatuses[toolId] || null, }; switch (toolId) { diff --git a/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js b/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js index d795c07d6c..edc188d015 100644 --- a/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +++ b/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js @@ -17,6 +17,7 @@ export default function ClaudeToolCard({ hasActiveProviders, apiKeys, cloudEnabled, + batchStatus, }) { const [claudeStatus, setClaudeStatus] = useState(null); const [checkingClaude, setCheckingClaude] = useState(false); @@ -49,6 +50,9 @@ export default function ClaudeToolCard({ const configStatus = getConfigStatus(); + // Use batch status as fallback when card hasn't been expanded yet + const effectiveConfigStatus = configStatus || batchStatus?.configStatus || null; + useEffect(() => { if (apiKeys?.length > 0 && !selectedApiKey) { setSelectedApiKey(apiKeys[0].key); @@ -269,17 +273,17 @@ export default function ClaudeToolCard({
- Budget limits and model pricing configuration -
-- {syncStep === "syncing" && "Syncing data to cloud..."} - {syncStep === "verifying" && "Verifying connection..."} +
+ {modalSuccess && "Cloud Proxy connected!"} + {!modalSuccess && syncStep === "syncing" && "Connecting to cloud..."} + {!modalSuccess && syncStep === "verifying" && "Verifying connection..."}
+ info + Click "Run Eval" to execute all cases against your LLM endpoint +
+ > )} -