import type { ModelConnectivityResult } from "../../shared/api"; import { Icon } from "../../shared/ui/Icon"; import { TooltipTrigger } from "../../shared/ui/TooltipTrigger"; import { informationOutlineIcon } from "../../shared/ui/icons"; import styles from "./CursorModelTestResult.module.scss"; export type CursorModelTestState = | { status: "success"; result: ModelConnectivityResult } | { status: "error"; error: string } | { status: "cancelled" }; export function CursorModelTestResult({ state, testing = false }: { state?: CursorModelTestState; testing?: boolean }) { if (testing) return
{t("测试中…")}
; if (!state) return
{t("未测试")}
; if (state.status === "cancelled") return
{t("测试已取消")}
; const success = state.status === "success"; const summary = success ? t("速度:{speed} tokens/s", { speed: formatSpeed(state.result.tokens_per_second) }) : t("错误:{error}", { error: state.error }); const detail = success ? t("速度 {speed} tokens/s · 首字 {firstText} ms · 总耗时 {duration} ms · 输出 {tokens} tokens{estimated} · 返回:{output}", { speed: formatSpeed(state.result.tokens_per_second), firstText: state.result.first_valid_response_ms ?? "--", duration: state.result.duration_ms, tokens: state.result.output_tokens, estimated: state.result.tokens_estimated ? t("(估算)") : "", output: state.result.output || "--", }) : t("测试失败:{error}", { error: state.error }); return
{summary}
; } function formatSpeed(value: number) { return Number.isFinite(value) ? value.toFixed(1) : "0.0"; }