usage-cli 0.33.8__tar.gz → 0.33.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {usage_cli-0.33.8/usage_cli.egg-info → usage_cli-0.33.9}/PKG-INFO +1 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/reporter.py +11 -2
- {usage_cli-0.33.8 → usage_cli-0.33.9}/i18n.json +177 -122
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/session_hooks.py +1 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/agy_quota_probe.py +54 -8
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/agy.py +9 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/prefs.py +1 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/pyproject.toml +1 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_agy_quota_probe.py +124 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_dispatch_ledger.py +8 -2
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_grok_loader.py +10 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_html_report_snapshot.py +8 -7
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar_agy.py +66 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar_prefs.py +4 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_panel_footer_layout.py +17 -2
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_quota_aware.py +121 -1
- usage_cli-0.33.9/tests/test_report_cold_read.py +224 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_report_daily_chart.py +4 -4
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_report_filter_js.py +24 -8
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_reporter_build_data.py +7 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_statusline_agy.py +13 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/html_report.py +58 -22
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/report_daily_chart.py +11 -9
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/report_filter.py +25 -10
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/report_ledger.py +16 -3
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/report_styles.py +43 -37
- {usage_cli-0.33.8 → usage_cli-0.33.9/usage_cli.egg-info}/PKG-INFO +1 -1
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_cli.egg-info/SOURCES.txt +1 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/pricing.py +5 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_quota_aware.py +50 -11
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_statusline_agy.py +3 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/LICENSE +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/README.md +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/THIRD_PARTY_NOTICES.md +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/agy.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/claude.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/codex.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/grok.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/muse.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/rate_limits.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/registry.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/adapters/types.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/aggregator.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/blocks.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/diagnoser.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/diagnosis_snapshot.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/dispatch_ledger.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/history_persist.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/insights.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/ledger_backfill.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/persona_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/subscription.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/analyzer/usage_snapshot.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/claude_pane.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/codex_hook_trust.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/login_item.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/setup_hook.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/installer/statusline_settings.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/_shared_cache_file.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/agy_disk_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/agy_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/cache_quarantine.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/chromium_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/claude_desktop.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/claude_paths.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/claude_usage.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/codex_disk_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/codex_events.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/codex_fork_replay.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/codex_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/codex_paths.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/disk_cache_common.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/disk_cache_lifecycle.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/grok_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/grok_quota_probe.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/history_disk_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/history_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/jsonl_limits.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/jsonl_utils.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/loaders/muse_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/main.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/actions.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/app.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/chrome.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/fsevents_watch.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/grok.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/manual_refresh.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/menu.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/new_badge.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/notify.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/popover.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/refresh.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/state.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/title.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/update.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/menubar/whats_new.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/base.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/catalog.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/dynamic_height.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/panel_scale.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/panel_window.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/panel_window_state.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/payload.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/web_panel.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/panels/window_drag.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/agy_window_keeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/burn_rate.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/codex_window_keeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/keeper_outcome.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/notifications.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/quota_snapshot.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/status_payload.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/usage_rate.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/quota/window_keeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/setup.cfg +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/setup_app.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_adapters_claude.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_adapters_codex.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_adapters_rate_limits.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_aggregator.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_agy_adapter.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_agy_disk_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_agy_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_agy_window_keeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_analyzer_blocks.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_analyzer_pipeline.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_app_version.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_burn_rate.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_cache_quarantine.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_check_upstream.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_chromium_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_claude_desktop.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_claude_pane.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_claude_paths.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_codex_consistency.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_codex_hook_trust.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_codex_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_codex_window_keeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_desktop_fresh_cache.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_desktop_quota_display.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_desktop_quota_review.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_diagnoser.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_disk_cache_shards.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_doctor.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_dynamic_height.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_fsevents_watch.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_grok_quota_probe.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_history_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_history_persist.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_hook_scripts_are_standalone.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_i18n_format_fallback.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_i18n_key_parity.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_i18n_packaged_path.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_insights.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_jsonl_utils.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_keeper_menu.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_keeper_outcome.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_ledger_backfill.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_login_item.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_main.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_manual_refresh.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar_grok.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar_notify.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar_state.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_menubar_update.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_muse_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_new_badge.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_packaged_resources.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_packaging.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_panel_scale.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_panel_window_state.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_panels.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_panels_lazy_import.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_persona_loader.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_pricing.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_project_resolver.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_quota_label.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_report_share_mask.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_service_status.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_session_resume.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_setup_app.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_setup_hook.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_setup_hook_coexistence.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_setup_hook_resume.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_setup_hook_terse.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_subprocess_utils.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_subscription.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_taskbar_menu.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_time_utils.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_tui.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_tui_sprite.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_ui_tables.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_update_checker.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_update_gate.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_update_release_notes.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_cli.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_client.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_diagnosis_snapshot.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_dir_sweeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_lang.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_logging.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_notifications.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_rate.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_snapshot.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_snapshot_replay.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_statusline.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_statusline_forwarder.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_statusline_grok.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_terse_mode.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_usage_terse_reminder.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_web_panel_payload.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_whats_new.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_wheel_packaging.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_win_login_item.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_window_keeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_windows_manifest.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tests/test_wintray.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tui/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tui/app.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/tui/sprite.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/report_charts.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/report_scripts.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/ui/tables.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/updates/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/updates/checker.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/updates/gate.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/updates/release_notes.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/updates/whats_new.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_app/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_app/cli.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_app/doctor.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_cli.egg-info/dependency_links.txt +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_cli.egg-info/entry_points.txt +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_cli.egg-info/requires.txt +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_cli.egg-info/top_level.txt +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/app_version.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/i18n.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/prefs.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/project_resolver.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/service_status.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/subprocess_utils.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/time_utils.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/usage_dir_sweeper.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/usage_lang.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_common/usage_logging.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_session_resume.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_statusline.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_statusline_forwarder.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_statusline_grok.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_terse_mode.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/usage_hooks/usage_terse_reminder.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/__init__.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/app.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/login_item.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/menu.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/prefs.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/quota_label.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/taskbar_menu.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/taskbar_obstacles.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/taskbar_overlay.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/watch.py +0 -0
- {usage_cli-0.33.8 → usage_cli-0.33.9}/wintray/whats_new.py +0 -0
|
@@ -43,7 +43,7 @@ _YEAR_WEEKS = 53
|
|
|
43
43
|
YEAR_CACHE_PATH = Path(os.path.expanduser("~/.usage/year_cache.json"))
|
|
44
44
|
YEAR_LEDGER_PATH = YEAR_CACHE_PATH.with_name("year_ledger.json")
|
|
45
45
|
YEAR_CACHE_TTL_SECONDS = 6 * 3600
|
|
46
|
-
_YEAR_CACHE_SCHEMA =
|
|
46
|
+
_YEAR_CACHE_SCHEMA = 6
|
|
47
47
|
_YEAR_LEDGER_SCHEMA = 1
|
|
48
48
|
_YEAR_LEDGER_TRIM_BUFFER_DAYS = 60
|
|
49
49
|
|
|
@@ -200,6 +200,7 @@ class ContributionReportData(TypedDict):
|
|
|
200
200
|
|
|
201
201
|
|
|
202
202
|
class WrappedReportData(TypedDict):
|
|
203
|
+
cost_recorded_from: NotRequired[str | None]
|
|
203
204
|
year_label: str
|
|
204
205
|
weeks: int
|
|
205
206
|
total_tokens: int
|
|
@@ -765,8 +766,16 @@ def _build_year_output_from_ledger(
|
|
|
765
766
|
"busiest_day": busiest_day,
|
|
766
767
|
}
|
|
767
768
|
wrapped: WrappedReportData = {
|
|
769
|
+
"cost_recorded_from": min(
|
|
770
|
+
(
|
|
771
|
+
key
|
|
772
|
+
for key, day in ledger["days"].items()
|
|
773
|
+
if grid_start <= date.fromisoformat(key) <= today and day["cost"] > 0
|
|
774
|
+
),
|
|
775
|
+
default=None,
|
|
776
|
+
),
|
|
768
777
|
"year_label": str(today.year),
|
|
769
|
-
"weeks":
|
|
778
|
+
"weeks": len(weeks),
|
|
770
779
|
"total_tokens": total_tokens,
|
|
771
780
|
"total_cost": _round_cost(total_cost),
|
|
772
781
|
"active_days": active_days,
|