mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-25 13:45:03 +08:00
395783e22a
* feat(ui): add color prop support to ProviderIcon component * feat(health): add stream check core functionality Add new stream-based health check module to replace model_test: - Add stream_check command layer with single and batch provider checks - Add stream_check DAO layer for config and log persistence - Add stream_check service layer with retry mechanism and health status evaluation - Add frontend HealthStatusIndicator component - Add frontend useStreamCheck hook This provides more comprehensive health checking capabilities. * refactor(health): replace model_test with stream_check Replace model_test module with stream_check across the codebase: - Remove model_test command and service modules - Update command registry in lib.rs to use stream_check commands - Update module exports in commands/mod.rs and services/mod.rs - Remove frontend useModelTest hook - Update stream_check command implementation This refactoring provides clearer naming and better separation of concerns. * refactor(db): clean up unused database tables and optimize schema Remove deprecated and unused database tables: - Remove proxy_usage table (replaced by proxy_request_logs) - Remove usage_daily_stats table (aggregation done on-the-fly) - Rename model_test_logs to stream_check_logs with updated schema - Remove related DAO methods for proxy_usage - Update usage_stats service to use proxy_request_logs only - Refactor usage_script to work with new schema This simplifies the database schema and removes redundant data storage. * refactor(ui): update frontend components for stream check Update frontend components to use stream check API: - Refactor ModelTestConfigPanel to use stream check config - Update API layer to use stream_check commands - Add HealthStatus type and StreamCheckResult interface - Update ProviderList to use new health check integration - Update AutoFailoverConfigPanel with stream check references - Improve UI layout and configuration options This completes the frontend migration from model_test to stream_check. * feat(health): add configurable test models and reasoning effort support Enhance stream check service with configurable test models: - Add claude_model, codex_model, gemini_model to StreamCheckConfig - Support reasoning effort syntax (model@level or model#level) - Parse and apply reasoning_effort for OpenAI-compatible models - Remove hardcoded model names from check functions - Add unit tests for model parsing logic - Remove obsolete model_test source files This allows users to customize which models are used for health checks.
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import React from "react";
|
|
import { cn } from "@/lib/utils";
|
|
import type { HealthStatus } from "@/lib/api/model-test";
|
|
|
|
interface HealthStatusIndicatorProps {
|
|
status: HealthStatus;
|
|
responseTimeMs?: number;
|
|
className?: string;
|
|
}
|
|
|
|
const statusConfig = {
|
|
operational: {
|
|
color: "bg-emerald-500",
|
|
label: "正常",
|
|
textColor: "text-emerald-600 dark:text-emerald-400",
|
|
},
|
|
degraded: {
|
|
color: "bg-yellow-500",
|
|
label: "降级",
|
|
textColor: "text-yellow-600 dark:text-yellow-400",
|
|
},
|
|
failed: {
|
|
color: "bg-red-500",
|
|
label: "失败",
|
|
textColor: "text-red-600 dark:text-red-400",
|
|
},
|
|
};
|
|
|
|
export const HealthStatusIndicator: React.FC<HealthStatusIndicatorProps> = ({
|
|
status,
|
|
responseTimeMs,
|
|
className,
|
|
}) => {
|
|
const config = statusConfig[status];
|
|
|
|
return (
|
|
<div className={cn("flex items-center gap-2", className)}>
|
|
<div className={cn("w-2 h-2 rounded-full", config.color)} />
|
|
<span className={cn("text-xs font-medium", config.textColor)}>
|
|
{config.label}
|
|
{responseTimeMs !== undefined && ` (${responseTimeMs}ms)`}
|
|
</span>
|
|
</div>
|
|
);
|
|
};
|