AgentEvalTool/frontend/web/src/api/stats.ts
sinohqb eca7ccebe2 refactor(api): api.ts 拆分为 10 个域模块(Phase 4.22)
909 行的单文件 api.ts 按域拆为 10 个模块 + 共享 client;barrel
保持 import from '../api' 不变,调用点零改动。

- api/client.ts:axios 实例 + 拦截器 + authToken + setOnUnauthorized
  (唯一住处)。
- 10 个域模块:auth / targets / scenarios / modelConfigs / runs /
  reports / stats / campaigns / intelligentEvals / files,每个
  自包含类型声明与 API 方法。
- api/index.ts:barrel 再导出,调用点 import 路径全部不变。
- 原 api.ts 中的 Blob 导出仪式已在 Commit 4 下沉至
  utils/download.ts,本 commit 仅做拆分与搬运。
2026-08-24 05:53:45 +08:00

35 lines
833 B
TypeScript

import api from './client'
import type { Run, RunTrigger } from './runs'
export interface ScenarioStat {
scenario_id: string
scenario_name: string
run_count: number
avg_pass_rate: number | null
last_run_at: string | null
}
export interface DashboardStats {
targets_count: number
scenarios_count: number
runs_count: number
model_configs_count: number
today_runs: number
running_count: number
overall_pass_rate: number | null
trigger_breakdown: Partial<Record<RunTrigger, number>>
scenario_stats: ScenarioStat[]
recent_runs: Run[]
}
export interface TrendPoint {
date: string
pass_rate: number
run_count: number
}
export const statsApi = {
dashboard: () => api.get<DashboardStats>('/stats/dashboard'),
trend: (days?: number) => api.get<TrendPoint[]>('/stats/trend', { params: { days } }),
}