package bridge import ( "cursor/internal/appdata" "cursor/internal/historymetrics" ) // HomeMetricsSummary 定义首页展示的历史统计摘要。 type HomeMetricsSummary struct { ProviderCallsTotal int `json:"providerCallsTotal"` TurnsTotal int `json:"turnsTotal"` ValidTurnsTotal int `json:"validTurnsTotal"` InvalidTurnsTotal int `json:"invalidTurnsTotal"` RequestTokensTotal int64 `json:"requestTokensTotal"` PromptTokensTotal int64 `json:"promptTokensTotal"` CacheReadTokens int64 `json:"cacheReadTokens"` CacheWriteTokens int64 `json:"cacheWriteTokens"` CacheHitRate *float64 `json:"cacheHitRate"` } // MetricsService 定义首页统计相关的 Wails service。 type MetricsService struct{} // NewMetricsService 创建首页统计 service。 func NewMetricsService() *MetricsService { return &MetricsService{} } // GetHomeMetricsSummary 返回首页展示的全量历史统计摘要。 func (service *MetricsService) GetHomeMetricsSummary() (HomeMetricsSummary, error) { if err := appdata.EnsureAssistantHome(); err != nil { return HomeMetricsSummary{}, err } summary, err := historymetrics.LoadUsageSummary(appdata.UsageFilePath()) if err != nil { return HomeMetricsSummary{}, err } return HomeMetricsSummary{ ProviderCallsTotal: summary.ProviderCallsTotal, TurnsTotal: summary.TurnsTotal, ValidTurnsTotal: summary.ValidTurnsTotal, InvalidTurnsTotal: summary.InvalidTurnsTotal, RequestTokensTotal: summary.RequestTokensTotal, PromptTokensTotal: summary.PromptTokensTotal, CacheReadTokens: summary.CacheReadTokens, CacheWriteTokens: summary.CacheWriteTokens, CacheHitRate: summary.CacheHitRate, }, nil }