# === USAGE APP COMMANDS === # # API usage data fetching and cost analysis (deduced costs from token usage) .PHONY: fetch-usage-full fetch-usage-day fetch-metadata regenerate-usage fetch-usage-full: ## Fetch full usage data (Aug 28 - today, daily breakdown) @echo "Fetching usage data from Aug 28 to today..." @mkdir -p $(OUTPUT_DIR)/usage uv run python -m src.usage.cost_analyzer \ --start 2025-08-28 \ --end 2025-10-25 \ --time-grouping day \ --format json \ --output $(OUTPUT_DIR)/usage/costs.json \ --debug @echo "✅ Cost data fetched!" @echo " JSON: $(OUTPUT_DIR)/usage/costs.json" fetch-usage-day: ## Fetch usage data for a specific day (prompts for date) @echo "Fetch usage data for a specific day" @echo "" @read -p "Enter date (YYYY-MM-DD): " DAY; \ if [ -z "$$DAY" ]; then \ echo "❌ Error: No date provided!"; \ exit 1; \ fi; \ echo ""; \ echo "Fetching raw usage data for $$DAY..."; \ mkdir -p $(OUTPUT_DIR)/usage/raw; \ uv run python -m src.usage.cost_analyzer \ --start $$DAY \ --end $$DAY \ --time-grouping day \ --debug; \ echo "✅ Raw cost data fetched for $$DAY!"; \ echo ""; \ $(MAKE) regenerate-usage fetch-metadata: ## Fetch only users, API keys, and workspaces metadata @echo "Fetching metadata (users, API keys, workspaces)..." @mkdir -p $(OUTPUT_DIR)/usage/raw uv run python -m src.usage.fetch_metadata @echo "✅ Metadata fetched!" @echo "" @echo "To regenerate costs.json with updated metadata, run:" @echo " make regenerate-usage" regenerate-usage: ## Regenerate costs.json from raw data (no API call) @echo "Regenerating costs.json from raw JSON files..." @if [ ! -d $(OUTPUT_DIR)/usage/raw ]; then \ echo "❌ Error: $(OUTPUT_DIR)/usage/raw directory not found!"; \ echo " Run 'make fetch-usage-full' first to fetch the data."; \ exit 1; \ fi @uv run python -m src.usage.rebuild_costs_from_raw \ --time-grouping day \ --output $(OUTPUT_DIR)/usage/costs.json @echo "✅ costs.json regenerated!"