Skip to content

code: costs.ts is a god module — 1118 lines, 14 fetch endpoints, 13 interfaces #449

@kokevidaurre

Description

@kokevidaurre

Problem

src/lib/costs.ts (1118 lines) mixes cost calculation, bridge API client, quota management, npm stats, Claude Code capacity detection, ROI metrics, and rate limiting into a single file. It exports 13 interfaces and 10+ functions spanning unrelated domains.

Measurements

  • 1118 lines total
  • 14 fetch/fetchWithTimeout calls to different API endpoints
  • 13 exported interfaces (CostSummary, BridgeStats, QuotaInfo, RateLimits, Insights, NpmStats, ClaudeCodeCapacity, ROIMetrics, etc.)
  • Legacy _MODEL_PRICING table duplicates providers.ts pricing

Location

src/lib/costs.ts

Suggested Fix

Split into focused modules:

  • costs.tsCostSummary, fetchCostSummary, calcCost, formatCostBar (~150 lines)
  • bridge-client.tsBridgeStats, fetchBridgeStats, fetchWithTimeout, bridge URL config
  • quota.tsQuotaInfo, RateLimits, fetchQuotaInfo, fetchRateLimits
  • insights.tsInsights, TaskMetrics, ToolMetrics, QualityMetrics, fetchInsights
  • roi.tsROIMetrics, SquadCostProjection, calculateROIMetrics, calculateSquadCostProjections

Remove legacy _MODEL_PRICING (already marked as deprecated in favor of providers.ts).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions