codex-usage-tracking 0.12.0__tar.gz → 0.12.1__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.
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/.codex-plugin/plugin.json +1 -1
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/CHANGELOG.md +7 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/PKG-INFO +2 -2
- codex_usage_tracking-0.12.1/docs/architecture/decisions/0001-package-domain-boundaries.md +7 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/development.md +7 -7
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/maintainability-roadmap.md +93 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/one-dot-oh-readiness.md +8 -8
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/pyproject.toml +10 -10
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/benchmark_synthetic_history.py +5 -5
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/check_release.py +1 -1
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/install_local_plugin.py +5 -2
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/model_usage_drain.py +7 -4
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/__init__.py +2 -2
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/__main__.py +1 -1
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/allowance.py +9 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/__init__.py +19 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/__main__.py +10 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_config.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/config.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_dashboard.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/dashboard.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_diagnostics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/diagnostics.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/main.py +23 -23
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli}/mcp_server.py +13 -13
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_parser.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/parser.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_parser_diagnostics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/parser_diagnostics.py +1 -1
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli}/plugin_installer.py +1 -1
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/__init__.py +15 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/api.py +99 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/constants.py +7 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_loader.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/loader.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/reader.py +11 -76
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_serialized.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/serialized.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_summaries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/summaries.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_values.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/values.py +1 -1
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/__init__.py +1 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_cli.py +232 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_common.py +22 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_diagnostics.py +168 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_server.py +106 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contracts.py +26 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/projects.py +1 -1
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/dashboard/__init__.py +15 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/dashboard.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/dashboard/api.py +23 -23
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/dashboard_assets.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/dashboard/assets.py +1 -1
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/__init__.py +15 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/api.py +9 -9
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_fact_classifiers.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/fact_classifiers.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_facts.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/facts.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostics_mcp.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/mcp.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_reports.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/reports.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_analysis.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_concentration.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_payloads.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_report.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_report.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_rows.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_rows.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_source_logs.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_source_scan.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshots.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshots.py +16 -16
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/mcp_server.py +13 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/parser/__init__.py +15 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/parser/api.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser_jsonl_v1.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/parser/jsonl_v1.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser_jsonl_values.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/parser/jsonl_values.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/parser_state.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/parser/state.py +3 -3
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/plugin_installer.py +9 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/__init__.py +15 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/allowance.py +63 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/allowance.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/allowance_config.py +4 -207
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing}/allowance_rate_card.py +1 -1
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/allowance_usage.py +200 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/pricing.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/api.py +10 -10
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/pricing_config.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/config.py +1 -1
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing}/costing.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/pricing_openai.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/openai.py +3 -3
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports/__init__.py +15 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/reports.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports/api.py +19 -19
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/report_project_summary.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports/project_summary.py +3 -3
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports}/recommendations.py +1 -1
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports}/support.py +8 -8
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/__init__.py +22 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/api.py +133 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_call_detail.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/call_detail.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_call_lists.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/call_lists.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_context.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/context.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_context_settings.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/context_settings.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_dashboard_shell.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/dashboard_shell.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_diagnostic_facts.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/diagnostic_facts.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_diagnostic_routes.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/diagnostic_routes.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_diagnostic_snapshots.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/diagnostic_snapshots.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/handler.py +25 -120
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_live_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/live_queries.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_live_rows.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/live_rows.py +11 -8
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_open_investigator.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/open_investigator.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_recommendations.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/recommendations.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_request_guards.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/request_guards.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_responses.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/responses.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_status.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/status.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_summary.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/summary.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_threads.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/threads.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_usage_refresh.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/usage_refresh.py +4 -4
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/__init__.py +15 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/api.py +31 -31
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_connection.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/connection.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_dashboard_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/dashboard_queries.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_diagnostic_call_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/diagnostic_call_queries.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_diagnostic_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/diagnostic_queries.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_exports.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/exports.py +7 -7
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_refresh.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/refresh.py +8 -8
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_schema.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/schema.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_sources.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/sources.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_summary_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/summary_queries.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_thread_summaries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/thread_summaries.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_usage_api_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/usage_api_queries.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_usage_record_queries.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/usage_record_queries.py +6 -6
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/support.py +9 -0
- codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/__init__.py +1 -0
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_allowance_breakpoints.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +7 -7
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_allowance_fits.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/allowance_fits.py +7 -7
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_allowance_online.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/allowance_online.py +4 -4
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/boundary_delta.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta_core.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta_rows.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_delta_summary.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +7 -7
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_summary.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/boundary_summary.py +12 -12
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_capacity_specs.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/capacity_specs.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_error_diagnostics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/error_diagnostics.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_feature_history.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/feature_history.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_features.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/features.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_grace.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/grace.py +4 -4
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_history_state.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/history_state.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_model.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/model.py +31 -31
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_predictive.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/predictive.py +6 -6
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_predictive_specs.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/predictive_specs.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_proxy_fit.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/proxy_fit.py +9 -9
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_regime_labels.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/regime_labels.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_regime_segments.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/regime_segments.py +11 -11
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_regression.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/regression.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_reports.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/reports.py +12 -9
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_spans.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/spans.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_state_buckets.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/state_buckets.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_state_diagnostics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/state_diagnostics.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_summary_metrics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/summary_metrics.py +3 -3
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_time_series.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/time_series.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_token_components.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/token_components.py +5 -5
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_transition_gates.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/transition_gates.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_transition_metrics.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/transition_metrics.py +4 -4
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_utils.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/utils.py +1 -1
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_walk_forward.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/walk_forward.py +12 -12
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_walk_forward_rows.py → codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +22 -22
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/PKG-INFO +2 -2
- codex_usage_tracking-0.12.1/src/codex_usage_tracking.egg-info/SOURCES.txt +376 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/requires.txt +1 -1
- codex_usage_tracking-0.12.1/tests/__init__.py +1 -0
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_cli_lifecycle.py +3 -3
- codex_usage_tracking-0.12.1/tests/cli/test_cli_module_entrypoints.py +35 -0
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_cli_parser_diagnostics.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_cli_release.py +19 -19
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_mcp_integration.py +12 -13
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_mcp_launcher.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_plugin_installer.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_action_timing.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_evidence.py +8 -8
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_scan.py +3 -4
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_serialized.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_summaries.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_token_estimates.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_values.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_call_origin.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_formatting.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_i18n.py +11 -11
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_json_contracts.py +11 -11
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_privacy.py +7 -7
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_projects.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_redaction.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_schema.py +3 -3
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_threads.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_data.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_diagnostics_snapshots.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_live.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_payload.py +9 -9
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_pricing_snapshot.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_server.py +19 -19
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_state.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_status.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_fact_classifiers.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_reports.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshot_events.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshot_report.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshot_source_scan.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshots.py +12 -13
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/parser}/test_parser.py +3 -3
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/parser}/test_parser_inspect_log.py +2 -3
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/parser}/test_parser_state.py +3 -3
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/pricing}/test_allowance.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/pricing}/test_pricing.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/reports}/test_recommendations.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/reports}/test_support.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_call_detail.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_call_lists.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_context.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_context_settings.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_dashboard_shell.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_diagnostic_facts.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_diagnostic_refresh_auth.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_diagnostic_snapshots.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_live_queries.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_live_rows.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_open_investigator.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_recommendations.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_request_guards.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_responses.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_routes.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_status.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_summary.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_threads.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_usage_refresh.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_dashboard_mcp.py +13 -13
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_dashboard_queries.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_large_batches.py +3 -3
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_migrations.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_query_sql.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_sources.py +4 -5
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/tests/store_dashboard_helpers.py +3 -3
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_allowance_fits.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_boundary_delta.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_boundary_delta_summary.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_boundary_summary.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_error_diagnostics.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_feature_history.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_model.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_one_percent_capacity.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_predictive.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_regime_segments.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_regression.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_report_records.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_reports.py +9 -7
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_state_buckets.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_state_diagnostics.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_summary_metrics.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_thread_curves.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_token_components.py +2 -2
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_transition_gates.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_transition_metrics.py +1 -1
- {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_walk_forward.py +2 -2
- codex_usage_tracking-0.12.0/src/codex_usage_tracker/json_contracts.py +0 -515
- codex_usage_tracking-0.12.0/src/codex_usage_tracking.egg-info/SOURCES.txt +0 -348
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/.mcp.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/AGENTS.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/CONTRIBUTING.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/LICENSE +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/MANIFEST.in +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/README.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/SECURITY.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/assets/icon.svg +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/architecture-boundary-map.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/architecture.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-call-investigator-preview.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-call-investigator.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-calls-preview.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-calls.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-details.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-diagnostics.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-insights.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/ux/call-detail-panel.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/ux/insight-overview.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/ux/thread-investigation.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/call-drilldown-performance-checklist.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/cli-json-schemas.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/cli-reference.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/dashboard-guide.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/install.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/maintainability-scorecard.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/mcp.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/pricing-and-credits.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/privacy.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/ui-ux-improvement-plan.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/usage-drain-modeling.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/check_wemake_baseline.py +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/smoke_installed_package.py +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/setup.cfg +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/skills/codex-usage-tracker/SKILL.md +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/cli_output.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/output.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_action_timing.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/action_timing.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/context_token_estimates.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/token_estimates.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/api_payloads.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/call_origin.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/formatting.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/i18n.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/json_contract_validation.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/models.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/paths.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/redaction.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/schema.py +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/core}/threads.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/dashboard_pricing_snapshot.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_action_hints.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_constants.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostic_snapshot_events.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/diagnostics_types.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/types.py +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.12.0/src/codex_usage_tracker → codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing}/allowance_text.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/pricing_estimates.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/estimates.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/report_filters.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports/filters.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/report_recommendations.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_routes.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/routes.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/server_utils.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/utils.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_query_sql.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/query_sql.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_rows.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/rows.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/store_usage_timing.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/usage_timing.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_boundary_scopes.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_thread_curves.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
- /codex_usage_tracking-0.12.0/src/codex_usage_tracker/usage_drain_types.py → /codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/types.py +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
- {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.12.1 - 2026-06-29
|
|
6
|
+
|
|
7
|
+
- Ship the package-domain boundary refactor behind compatibility facades so existing CLI, imports, dashboard routes, JSON payloads, and MCP entrypoints keep working while the source tree is organized by responsibility.
|
|
8
|
+
- Add Tach domain configuration files, refreshed Agent Maintainer baselines, and package-boundary documentation for the new module layout.
|
|
9
|
+
- Restore `python -m codex_usage_tracker.cli` after the CLI package split and add regression coverage for both module entrypoints.
|
|
10
|
+
- Split allowance pricing helpers into smaller modules while preserving the public allowance facade.
|
|
11
|
+
|
|
5
12
|
## 0.12.0 - 2026-06-29
|
|
6
13
|
|
|
7
14
|
- Refactor CLI, dashboard server routing, SQLite store/query boundaries, context parsing, diagnostics, and usage-drain modeling into smaller modules with compatibility facades.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-usage-tracking
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.1
|
|
4
4
|
Summary: Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns.
|
|
5
5
|
Author: Douglas Monsky
|
|
6
6
|
License-Expression: MIT
|
|
@@ -28,7 +28,7 @@ License-File: LICENSE
|
|
|
28
28
|
Requires-Dist: mcp>=1.2.0
|
|
29
29
|
Requires-Dist: tiktoken>=0.13.0
|
|
30
30
|
Provides-Extra: dev
|
|
31
|
-
Requires-Dist: agent-maintainer[core]
|
|
31
|
+
Requires-Dist: agent-maintainer[core]>=0.1.0b1; python_version >= "3.11" and extra == "dev"
|
|
32
32
|
Requires-Dist: actionlint-py>=1.7.12.24; python_version >= "3.11" and extra == "dev"
|
|
33
33
|
Requires-Dist: build>=1.2; extra == "dev"
|
|
34
34
|
Requires-Dist: git-agent-ratchet>=1.3.0; python_version >= "3.11" and extra == "dev"
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Package Domain Boundaries
|
|
2
|
+
|
|
3
|
+
The package-domain refactor moves the previously flat `codex_usage_tracker` source tree into responsibility folders and switches Tach from one large root module list to per-domain `tach.domain.toml` files.
|
|
4
|
+
|
|
5
|
+
The initial domain policy declares dependencies that match the current implementation after the move. Circular dependency blocking remains disabled because the existing parser, diagnostics, and store flow still has a real cycle: parser state feeds diagnostic facts, diagnostics snapshots read persisted state, and store helpers import parser state metadata. That cycle is preserved for behavior compatibility and should be reduced in a later, focused branch.
|
|
6
|
+
|
|
7
|
+
This is an architecture policy change, not an attempt to bypass drift: the old Tach module paths no longer exist after the file move, and per-domain files give each responsibility folder local ownership of its boundary declaration.
|
|
@@ -38,7 +38,7 @@ fix/<issue-number>-short-description
|
|
|
38
38
|
docs/<issue-number>-short-description
|
|
39
39
|
chore/<issue-number>-short-description
|
|
40
40
|
test/<issue-number>-short-description
|
|
41
|
-
release/0.12.
|
|
41
|
+
release/0.12.1
|
|
42
42
|
hotfix/0.3.3
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -91,7 +91,7 @@ blocked
|
|
|
91
91
|
Recommended milestones:
|
|
92
92
|
|
|
93
93
|
```text
|
|
94
|
-
0.12.
|
|
94
|
+
0.12.1
|
|
95
95
|
1.0-readiness
|
|
96
96
|
1.0.0
|
|
97
97
|
```
|
|
@@ -146,8 +146,8 @@ python scripts/smoke_installed_package.py --docker
|
|
|
146
146
|
To verify the public PyPI package instead of the local checkout:
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
python scripts/smoke_installed_package.py --from-pypi --version 0.12.
|
|
150
|
-
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.
|
|
149
|
+
python scripts/smoke_installed_package.py --from-pypi --version 0.12.1
|
|
150
|
+
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.1
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
`scripts/check_release.py` treats these public-package smoke commands as release-state claims. Keep their `--version` and `codex-usage-tracking==...` values aligned with `pyproject.toml`; the release gate fails when the docs claim a different public version. It also checks that install docs point at the real PyPI distribution, `codex-usage-tracking`, and keep the warning that `codex-usage-tracker` is a different PyPI package.
|
|
@@ -294,8 +294,8 @@ After the release branch merges, tag from updated `main`, not from an unreviewed
|
|
|
294
294
|
```bash
|
|
295
295
|
git switch main
|
|
296
296
|
git pull --ff-only
|
|
297
|
-
git tag -a v0.12.
|
|
298
|
-
git push origin v0.12.
|
|
297
|
+
git tag -a v0.12.1 -m "codex-usage-tracker 0.12.1"
|
|
298
|
+
git push origin v0.12.1
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
Do not create or push release tags without maintainer approval.
|
|
@@ -304,7 +304,7 @@ Do not create or push release tags without maintainer approval.
|
|
|
304
304
|
|
|
305
305
|
Publishing uses GitHub Actions Trusted Publishing through `.github/workflows/publish.yml`; do not upload from a local machine and do not add PyPI or TestPyPI API tokens.
|
|
306
306
|
|
|
307
|
-
The first public package release, `0.3.0`, was published on June 8, 2026. Patch release `0.3.1` followed the same day to ship the live-dashboard skill launch fix. Patch release `0.3.2` made dashboard launch refresh the default and added runtime enablement for context loading. Minor release `0.4.0` added Python 3.14 support, release recovery docs, stricter privacy/support-bundle regression coverage, and large-history benchmark thresholds. Patch release `0.4.1` was published by workflow dispatch from `main`; it hardened the PyPI publish workflow and checked off completed 1.0 readiness gates. Minor release `0.5.0` added dashboard localization support and initial language catalogs. Minor release `0.6.0` is the performance and call-drilldown release with SQL-backed live API slices, materialized thread summaries, faster evidence loading, and dashboard runtime module refactors. Patch release `0.6.1` aligns the final README/package screenshots and companion plugin assets. Minor release `0.7.0` adds observed usage snapshots and the latest-observed dashboard card while keeping raw evidence on demand only. Minor release `0.8.0` adds aggregate diagnostics, source-offset context seeking, and live dashboard loading hardening. Patch release `0.8.1` improves Diagnostics fact table readability with pinned fact names and sortable fact columns. Minor release `0.9.0` adds persisted diagnostic snapshots, on-demand diagnostic refresh, tool/command/file-read/concentration reports, and Diagnostics dashboard panels. Minor release `0.10.0` adds Git/GitHub CLI diagnostics, file-modification diagnostics, and derived call timing fields across the dashboard and API. Patch release `0.10.1` adds lightweight action timing to context evidence and ships the synthetic Git Interactions README screenshot. Minor release `0.11.0` adds usage-drain diagnostic reports, projected weekly credit charts, and cumulative thread cost curves. Patch release `0.11.1` improves the Diagnostics weekly projection table and stale snapshot reload controls. Patch release `0.11.2` fixes served dashboard shell hydration and hardens the synthetic source-log benchmark smoke test. Patch release `0.11.3` fixes Windows live dashboard asset MIME handling. Patch release `0.11.4` fixes large-history setup refresh failures from SQLite variable limits. Minor release `0.12.0` ships the maintainability architecture repair, dashboard diagnostics hardening, Agent Maintainer ratchets, and warning-clean test suite.
|
|
307
|
+
The first public package release, `0.3.0`, was published on June 8, 2026. Patch release `0.3.1` followed the same day to ship the live-dashboard skill launch fix. Patch release `0.3.2` made dashboard launch refresh the default and added runtime enablement for context loading. Minor release `0.4.0` added Python 3.14 support, release recovery docs, stricter privacy/support-bundle regression coverage, and large-history benchmark thresholds. Patch release `0.4.1` was published by workflow dispatch from `main`; it hardened the PyPI publish workflow and checked off completed 1.0 readiness gates. Minor release `0.5.0` added dashboard localization support and initial language catalogs. Minor release `0.6.0` is the performance and call-drilldown release with SQL-backed live API slices, materialized thread summaries, faster evidence loading, and dashboard runtime module refactors. Patch release `0.6.1` aligns the final README/package screenshots and companion plugin assets. Minor release `0.7.0` adds observed usage snapshots and the latest-observed dashboard card while keeping raw evidence on demand only. Minor release `0.8.0` adds aggregate diagnostics, source-offset context seeking, and live dashboard loading hardening. Patch release `0.8.1` improves Diagnostics fact table readability with pinned fact names and sortable fact columns. Minor release `0.9.0` adds persisted diagnostic snapshots, on-demand diagnostic refresh, tool/command/file-read/concentration reports, and Diagnostics dashboard panels. Minor release `0.10.0` adds Git/GitHub CLI diagnostics, file-modification diagnostics, and derived call timing fields across the dashboard and API. Patch release `0.10.1` adds lightweight action timing to context evidence and ships the synthetic Git Interactions README screenshot. Minor release `0.11.0` adds usage-drain diagnostic reports, projected weekly credit charts, and cumulative thread cost curves. Patch release `0.11.1` improves the Diagnostics weekly projection table and stale snapshot reload controls. Patch release `0.11.2` fixes served dashboard shell hydration and hardens the synthetic source-log benchmark smoke test. Patch release `0.11.3` fixes Windows live dashboard asset MIME handling. Patch release `0.11.4` fixes large-history setup refresh failures from SQLite variable limits. Minor release `0.12.0` ships the maintainability architecture repair, dashboard diagnostics hardening, Agent Maintainer ratchets, and warning-clean test suite. Patch release `0.12.1` ships the package-domain boundary split, allowance helper split, refreshed maintainability baselines, and CLI module entrypoint fix.
|
|
308
308
|
|
|
309
309
|
- GitHub Release: `https://github.com/douglasmonsky/codex-usage-tracker/releases/tag/v0.3.0`
|
|
310
310
|
- GitHub Release: `https://github.com/douglasmonsky/codex-usage-tracker/releases/tag/v0.3.1`
|
|
@@ -67,6 +67,99 @@ xenon --max-absolute B --max-modules A --max-average A src
|
|
|
67
67
|
|
|
68
68
|
## Branch Ledger
|
|
69
69
|
|
|
70
|
+
### `chore/reset-maintainability-baseline`
|
|
71
|
+
|
|
72
|
+
Goal:
|
|
73
|
+
|
|
74
|
+
- Reset the Agent Maintainer file-length baseline after the package-domain
|
|
75
|
+
boundary migration so future branches fail only when they worsen current
|
|
76
|
+
oversized-file debt.
|
|
77
|
+
- Keep file-length thresholds unchanged.
|
|
78
|
+
|
|
79
|
+
Completed:
|
|
80
|
+
|
|
81
|
+
- Regenerated `.agent-maintainer/file-length-baseline.json` against the current
|
|
82
|
+
domain-package layout.
|
|
83
|
+
- Removed stale pre-refactor flat-module entries from the baseline and recorded
|
|
84
|
+
current oversized source/test files by their new package paths.
|
|
85
|
+
- Confirmed no threshold loosening was required: `file_length_max_physical`
|
|
86
|
+
remains `600`, and `file_length_max_source` remains `450`.
|
|
87
|
+
|
|
88
|
+
Checks:
|
|
89
|
+
|
|
90
|
+
- `.venv/bin/python -m agent_maintainer verify --profile fast`: passed with
|
|
91
|
+
non-blocking structure-cohesion warnings for `server` and `usage_drain`.
|
|
92
|
+
|
|
93
|
+
Remaining risks / next handoff:
|
|
94
|
+
|
|
95
|
+
- The baseline intentionally accepts existing oversized files as current debt.
|
|
96
|
+
- Continue cleanly from this baseline with small branches that reduce
|
|
97
|
+
`dashboard/api.py`, `store/api.py`, `usage_drain/reports.py`,
|
|
98
|
+
`diagnostics/snapshots.py`, CLI parser/main, and the largest tests.
|
|
99
|
+
|
|
100
|
+
### `refactor/split-oversized-modules`
|
|
101
|
+
|
|
102
|
+
Goal:
|
|
103
|
+
|
|
104
|
+
- Continue the post-domain-move handoff by clearing one moved source module from
|
|
105
|
+
the Agent Maintainer file-length ratchet.
|
|
106
|
+
- Keep the slice small enough to review independently after the broad package
|
|
107
|
+
boundary merge.
|
|
108
|
+
|
|
109
|
+
Completed:
|
|
110
|
+
|
|
111
|
+
- Split `src/codex_usage_tracker/pricing/allowance.py` into a compatibility
|
|
112
|
+
facade plus `pricing/allowance_config.py` and `pricing/allowance_usage.py`.
|
|
113
|
+
- Kept the public `codex_usage_tracker.pricing.allowance` import surface stable.
|
|
114
|
+
- Verified the pricing-scoped Agent Maintainer fast profile passes.
|
|
115
|
+
|
|
116
|
+
Checks:
|
|
117
|
+
|
|
118
|
+
- `.venv/bin/python -m ruff check src/codex_usage_tracker/pricing/allowance.py src/codex_usage_tracker/pricing/allowance_config.py src/codex_usage_tracker/pricing/allowance_usage.py tests/pricing/test_allowance.py`: passed.
|
|
119
|
+
- `.venv/bin/python -m pytest tests/pricing/test_allowance.py -q`: passed, 8 tests.
|
|
120
|
+
- `.venv/bin/python -m agent_maintainer verify --profile fast --file-length-path src/codex_usage_tracker/pricing/allowance.py --file-length-path src/codex_usage_tracker/pricing/allowance_config.py --file-length-path src/codex_usage_tracker/pricing/allowance_usage.py`: passed with non-blocking structure/change-budget warnings.
|
|
121
|
+
|
|
122
|
+
Remaining risks / next handoff:
|
|
123
|
+
|
|
124
|
+
- Full `agent_maintainer verify --profile fast` still fails on the remaining
|
|
125
|
+
oversized moved modules/tests: CLI parser/main, usage-drain model/reports,
|
|
126
|
+
dashboard API, diagnostics snapshots, store API, and several large tests.
|
|
127
|
+
- Next source candidates: `dashboard/api.py` or `store/api.py` if prioritizing
|
|
128
|
+
runtime blast radius; `tests/dashboard/test_dashboard_server.py` if
|
|
129
|
+
prioritizing the largest test file.
|
|
130
|
+
|
|
131
|
+
### `refactor/package-domain-boundaries`
|
|
132
|
+
|
|
133
|
+
Goal:
|
|
134
|
+
- Move the flat `codex_usage_tracker` package into responsibility folders.
|
|
135
|
+
- Move tests into matching responsibility folders.
|
|
136
|
+
- Preserve stable CLI, MCP launcher, and compatibility import behavior.
|
|
137
|
+
- Adopt Tach domain configs now that the installed Agent Maintainer/Tach stack supports them.
|
|
138
|
+
|
|
139
|
+
Completed:
|
|
140
|
+
- Installed Agent Maintainer from `douglasmonsky/agent-maintainer@main`, resolving locally to `0.1.0b4`.
|
|
141
|
+
- Relaxed the PyPI dev extra pin so the GitHub-installed tool is not downgraded by normal editable dev installs.
|
|
142
|
+
- Added `requirements/agent-maintainer-github.txt` for the local repo-source maintainer install path.
|
|
143
|
+
- Added per-domain packages and `tach.domain.toml` files for `core`, `pricing`, `parser`, `context`, `store`, `diagnostics`, `usage_drain`, `server`, `cli`, `dashboard`, and `reports`.
|
|
144
|
+
- Kept compatibility wrappers/facades for stable imports including `codex_usage_tracker.cli`, `codex_usage_tracker.store`, `codex_usage_tracker.server`, `codex_usage_tracker.mcp_server`, `codex_usage_tracker.plugin_installer`, `codex_usage_tracker.allowance`, and `codex_usage_tracker.support`.
|
|
145
|
+
- Split the moved context reader, server handler, and JSON contract modules enough to avoid new oversized-file failures for those specific moved files.
|
|
146
|
+
- Moved tests under matching domain folders and updated repo-root/helper imports.
|
|
147
|
+
|
|
148
|
+
Checks:
|
|
149
|
+
- `.venv/bin/python -m ruff check .`: passed.
|
|
150
|
+
- `.venv/bin/python -m mypy`: passed.
|
|
151
|
+
- `.venv/bin/python -m pytest -q`: passed, 534 tests.
|
|
152
|
+
- `.venv/bin/python -m pytest --cov=codex_usage_tracker --cov-report=term-missing -q`: passed, 534 tests, 86% total coverage.
|
|
153
|
+
- `.venv/bin/python -m compileall -q src tests`: passed.
|
|
154
|
+
- `.venv/bin/tach check`: passed.
|
|
155
|
+
- `.venv/bin/python scripts/check_release.py`: passed.
|
|
156
|
+
- `git diff --check`: passed.
|
|
157
|
+
|
|
158
|
+
Remaining risks / next handoff:
|
|
159
|
+
- Agent Maintainer `verify --profile fast` still flags several moved legacy modules and moved tests as new oversized files because their paths changed. This branch reduced three immediate moved-file violations but did not try to split every existing large module/test in the same commit.
|
|
160
|
+
- The next branch should continue splitting remaining large files, with highest-value candidates: `dashboard/api.py`, `store/api.py`, `usage_drain/reports.py`, `diagnostics/snapshots.py`, `cli/parser.py`, `cli/main.py`, and the largest dashboard/store tests.
|
|
161
|
+
- The parser/diagnostics/store Tach cycle is documented in `docs/architecture/decisions/0001-package-domain-boundaries.md` and should be reduced in a focused later branch.
|
|
162
|
+
|
|
70
163
|
### `chore/maintainability-agent-maintainer-baseline`
|
|
71
164
|
|
|
72
165
|
Goal:
|
|
@@ -24,12 +24,12 @@ Not guaranteed:
|
|
|
24
24
|
|
|
25
25
|
## 1. Public Install And Package Metadata
|
|
26
26
|
|
|
27
|
-
- [x] Verify the current public PyPI version is visible as `0.12.
|
|
28
|
-
- [x] Verify public venv install for `0.12.
|
|
29
|
-
- [x] Verify public pipx install path for `0.12.
|
|
27
|
+
- [x] Verify the current public PyPI version is visible as `0.12.1`: `python -c "import json, urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/codex-usage-tracking/json'))['info']['version'])"`.
|
|
28
|
+
- [x] Verify public venv install for `0.12.1`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.12.1 && codex-usage-tracker --version`.
|
|
29
|
+
- [x] Verify public pipx install path for `0.12.1`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.12.1 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
|
|
30
30
|
- [x] Verify installed package resources from a built wheel: `python scripts/smoke_installed_package.py`.
|
|
31
31
|
- [x] Verify installed package resources in Linux Docker: `python scripts/smoke_installed_package.py --docker`.
|
|
32
|
-
- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.
|
|
32
|
+
- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.1`.
|
|
33
33
|
- [x] Verify PyPI metadata names remain unchanged: `python scripts/check_release.py`.
|
|
34
34
|
- [x] Add Python 3.14 as an official support target after CI, package classifiers, docs, and installed-package smoke coverage were added. Docker smoke coverage uses `python:3.14-slim` by default. Track this in issue #12.
|
|
35
35
|
|
|
@@ -134,14 +134,14 @@ Not guaranteed:
|
|
|
134
134
|
|
|
135
135
|
## Evidence References
|
|
136
136
|
|
|
137
|
-
These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.12.
|
|
137
|
+
These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.12.1`; all repo tests use synthetic or aggregate-only data.
|
|
138
138
|
|
|
139
139
|
### Public Install And Package Metadata
|
|
140
140
|
|
|
141
141
|
- Public PyPI version, public venv install, and public pipx install are proven by the exact public-install commands in section 1.
|
|
142
142
|
- Built-wheel and installed-resource coverage is proven by `scripts/smoke_installed_package.py` and `tests/test_cli_release.py::test_installed_package_smoke_checks_help_for_stable_commands`.
|
|
143
143
|
- Linux package-resource coverage is proven by `scripts/smoke_installed_package.py --docker`.
|
|
144
|
-
- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.
|
|
144
|
+
- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.1`.
|
|
145
145
|
- PyPI metadata, package/distribution names, package resources, source/wheel member names, Python 3.10-3.14 support metadata, CI workflow requirements, publish workflow safety text, and tracked secret patterns are proven by `scripts/check_release.py`, `scripts/check_release.py --dist`, and `tests/test_cli_release.py::test_release_check_script_passes`.
|
|
146
146
|
|
|
147
147
|
### Upgrade And Migration
|
|
@@ -219,8 +219,8 @@ These references are the concrete proof behind completed checklist items. Public
|
|
|
219
219
|
- Publish workflow package name, Trusted Publishing, TestPyPI/PyPI job presence, event guards, no push/PR publishing, no token/password publishing, and manual PyPI main/tag preflight are proven by `scripts/check_release.py::_check_publish_workflow`.
|
|
220
220
|
- The GitHub `pypi` environment gate is proven by `gh api repos/douglasmonsky/codex-usage-tracker/environments/pypi`, which reports a `required_reviewers` protection rule and `can_admins_bypass=false`.
|
|
221
221
|
- Dist filename and wheel/sdist member checks are proven by `python -m build`, `python -m twine check dist/*`, and `python scripts/check_release.py --dist`.
|
|
222
|
-
- TestPyPI publish process is proven by a workflow-dispatch run on `main`, followed by TestPyPI metadata and clean virtualenv install checks for `codex-usage-tracking==0.12.
|
|
223
|
-
- PyPI publish process is proven by a workflow-dispatch run on `main`, protected `pypi` environment approval, PyPI metadata visibility, clean virtualenv install, temporary pipx install, and Docker public-package smoke for `codex-usage-tracking==0.12.
|
|
222
|
+
- TestPyPI publish process is proven by a workflow-dispatch run on `main`, followed by TestPyPI metadata and clean virtualenv install checks for `codex-usage-tracking==0.12.1`.
|
|
223
|
+
- PyPI publish process is proven by a workflow-dispatch run on `main`, protected `pypi` environment approval, PyPI metadata visibility, clean virtualenv install, temporary pipx install, and Docker public-package smoke for `codex-usage-tracking==0.12.1`.
|
|
224
224
|
- Release recovery documentation is proven by `scripts/check_release.py` required-file and docs checks.
|
|
225
225
|
|
|
226
226
|
### Known Limitations
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "codex-usage-tracking"
|
|
7
|
-
version = "0.12.
|
|
7
|
+
version = "0.12.1"
|
|
8
8
|
description = "Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -42,7 +42,7 @@ Changelog = "https://github.com/douglasmonsky/codex-usage-tracker/blob/main/CHAN
|
|
|
42
42
|
|
|
43
43
|
[project.optional-dependencies]
|
|
44
44
|
dev = [
|
|
45
|
-
"agent-maintainer[core]
|
|
45
|
+
"agent-maintainer[core]>=0.1.0b1; python_version >= '3.11'",
|
|
46
46
|
"actionlint-py>=1.7.12.24; python_version >= '3.11'",
|
|
47
47
|
"build>=1.2",
|
|
48
48
|
"git-agent-ratchet>=1.3.0; python_version >= '3.11'",
|
|
@@ -148,12 +148,12 @@ log_dir = ".verify-logs"
|
|
|
148
148
|
python_version = "3.10"
|
|
149
149
|
warn_unused_configs = true
|
|
150
150
|
files = [
|
|
151
|
-
"src/codex_usage_tracker/json_contracts.py",
|
|
152
|
-
"src/codex_usage_tracker/models.py",
|
|
153
|
-
"src/codex_usage_tracker/recommendations.py",
|
|
154
|
-
"src/codex_usage_tracker/reports.py",
|
|
155
|
-
"src/codex_usage_tracker/schema.py",
|
|
156
|
-
"src/codex_usage_tracker/store.py",
|
|
157
|
-
"src/codex_usage_tracker/
|
|
158
|
-
"src/codex_usage_tracker/
|
|
151
|
+
"src/codex_usage_tracker/core/json_contracts.py",
|
|
152
|
+
"src/codex_usage_tracker/core/models.py",
|
|
153
|
+
"src/codex_usage_tracker/reports/recommendations.py",
|
|
154
|
+
"src/codex_usage_tracker/reports/api.py",
|
|
155
|
+
"src/codex_usage_tracker/core/schema.py",
|
|
156
|
+
"src/codex_usage_tracker/store/api.py",
|
|
157
|
+
"src/codex_usage_tracker/usage_drain/reports.py",
|
|
158
|
+
"src/codex_usage_tracker/usage_drain/time_series.py",
|
|
159
159
|
]
|
{codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/benchmark_synthetic_history.py
RENAMED
|
@@ -20,15 +20,15 @@ SRC_PATH = REPO_ROOT / "src"
|
|
|
20
20
|
if str(SRC_PATH) not in sys.path:
|
|
21
21
|
sys.path.insert(0, str(SRC_PATH))
|
|
22
22
|
|
|
23
|
-
from codex_usage_tracker.context import load_call_context # noqa: E402
|
|
24
|
-
from codex_usage_tracker.
|
|
25
|
-
from codex_usage_tracker.
|
|
26
|
-
from codex_usage_tracker.reports import ( # noqa: E402
|
|
23
|
+
from codex_usage_tracker.context.api import load_call_context # noqa: E402
|
|
24
|
+
from codex_usage_tracker.core.models import UsageEvent # noqa: E402
|
|
25
|
+
from codex_usage_tracker.dashboard.api import dashboard_payload # noqa: E402
|
|
26
|
+
from codex_usage_tracker.reports.api import ( # noqa: E402
|
|
27
27
|
build_pricing_coverage_report,
|
|
28
28
|
build_recommendations_report,
|
|
29
29
|
build_summary_report,
|
|
30
30
|
)
|
|
31
|
-
from codex_usage_tracker.store import ( # noqa: E402
|
|
31
|
+
from codex_usage_tracker.store.api import ( # noqa: E402
|
|
32
32
|
connect,
|
|
33
33
|
init_db,
|
|
34
34
|
query_dashboard_event_count,
|
|
@@ -363,7 +363,7 @@ def _check_issue_templates() -> list[str]:
|
|
|
363
363
|
|
|
364
364
|
def _check_packaging_metadata() -> list[str]:
|
|
365
365
|
sys.path.insert(0, str(REPO_ROOT / "src"))
|
|
366
|
-
from codex_usage_tracker.plugin_installer import plugin_manifest
|
|
366
|
+
from codex_usage_tracker.cli.plugin_installer import plugin_manifest
|
|
367
367
|
|
|
368
368
|
pyproject = tomllib.loads((REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8"))
|
|
369
369
|
project = pyproject["project"]
|
|
@@ -10,8 +10,11 @@ from pathlib import Path
|
|
|
10
10
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
11
11
|
sys.path.insert(0, str(REPO_ROOT / "src"))
|
|
12
12
|
|
|
13
|
-
from codex_usage_tracker.
|
|
14
|
-
from codex_usage_tracker.
|
|
13
|
+
from codex_usage_tracker.cli.plugin_installer import install_plugin # noqa: E402
|
|
14
|
+
from codex_usage_tracker.core.paths import ( # noqa: E402
|
|
15
|
+
DEFAULT_MARKETPLACE_PATH,
|
|
16
|
+
DEFAULT_PLUGIN_LINK,
|
|
17
|
+
)
|
|
15
18
|
|
|
16
19
|
|
|
17
20
|
def main() -> int:
|
|
@@ -8,10 +8,13 @@ import json
|
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from typing import Any
|
|
10
10
|
|
|
11
|
-
from codex_usage_tracker.
|
|
12
|
-
from codex_usage_tracker.
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
from codex_usage_tracker.core.paths import DEFAULT_ALLOWANCE_PATH, DEFAULT_DB_PATH
|
|
12
|
+
from codex_usage_tracker.pricing.allowance import (
|
|
13
|
+
annotate_rows_with_allowance,
|
|
14
|
+
load_allowance_config,
|
|
15
|
+
)
|
|
16
|
+
from codex_usage_tracker.store.api import query_dashboard_events
|
|
17
|
+
from codex_usage_tracker.usage_drain.model import (
|
|
15
18
|
build_usage_delta_spans,
|
|
16
19
|
load_fast_proxy_annotations,
|
|
17
20
|
summarize_usage_drain_model,
|
|
@@ -15,9 +15,9 @@ from pathlib import Path
|
|
|
15
15
|
|
|
16
16
|
PACKAGE_SPEC = os.environ.get(
|
|
17
17
|
"CODEX_USAGE_TRACKER_PACKAGE_SPEC",
|
|
18
|
-
"codex-usage-tracking==0.12.
|
|
18
|
+
"codex-usage-tracking==0.12.1",
|
|
19
19
|
)
|
|
20
|
-
RUNTIME_VERSION = "0.12.
|
|
20
|
+
RUNTIME_VERSION = "0.12.1"
|
|
21
21
|
PACKAGE_SPEC_MARKER = ".codex-usage-tracker-package-spec"
|
|
22
22
|
MODULE_CHECK = (
|
|
23
23
|
"import importlib.metadata; "
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"""Compatibility module alias for ``codex_usage_tracker.pricing.allowance``."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
from importlib import import_module
|
|
7
|
+
|
|
8
|
+
_impl = import_module("codex_usage_tracker.pricing.allowance")
|
|
9
|
+
sys.modules[__name__] = _impl
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""Compatibility facade for ``codex_usage_tracker.cli``."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from importlib import import_module
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
from codex_usage_tracker.cli.main import main
|
|
9
|
+
|
|
10
|
+
_API_MODULE = "codex_usage_tracker.cli.main"
|
|
11
|
+
|
|
12
|
+
__all__ = ["main"]
|
|
13
|
+
|
|
14
|
+
def __getattr__(name: str) -> Any:
|
|
15
|
+
module = import_module(_API_MODULE)
|
|
16
|
+
try:
|
|
17
|
+
return getattr(module, name)
|
|
18
|
+
except AttributeError as exc:
|
|
19
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}") from exc
|
|
@@ -6,20 +6,20 @@ import argparse
|
|
|
6
6
|
import sys
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
|
|
9
|
-
from codex_usage_tracker.
|
|
9
|
+
from codex_usage_tracker.cli.output import print_json
|
|
10
|
+
from codex_usage_tracker.core.api_payloads import path_payload
|
|
11
|
+
from codex_usage_tracker.core.projects import write_project_template
|
|
12
|
+
from codex_usage_tracker.pricing.allowance import (
|
|
10
13
|
update_rate_card,
|
|
11
14
|
write_allowance_from_text,
|
|
12
15
|
write_allowance_template,
|
|
13
16
|
)
|
|
14
|
-
from codex_usage_tracker.
|
|
15
|
-
from codex_usage_tracker.cli_output import print_json
|
|
16
|
-
from codex_usage_tracker.pricing import (
|
|
17
|
+
from codex_usage_tracker.pricing.api import (
|
|
17
18
|
pin_pricing_snapshot,
|
|
18
19
|
update_pricing_from_openai_docs,
|
|
19
20
|
write_pricing_template,
|
|
20
21
|
)
|
|
21
|
-
from codex_usage_tracker.
|
|
22
|
-
from codex_usage_tracker.recommendations import write_threshold_template
|
|
22
|
+
from codex_usage_tracker.reports.recommendations import write_threshold_template
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
def run_init_pricing(args: argparse.Namespace) -> int:
|
|
@@ -7,12 +7,12 @@ import webbrowser
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import Any
|
|
9
9
|
|
|
10
|
-
from codex_usage_tracker.
|
|
11
|
-
from codex_usage_tracker.
|
|
12
|
-
from codex_usage_tracker.
|
|
13
|
-
from codex_usage_tracker.
|
|
14
|
-
from codex_usage_tracker.server import serve_dashboard
|
|
15
|
-
from codex_usage_tracker.store import refresh_usage_index
|
|
10
|
+
from codex_usage_tracker.cli.output import print_json
|
|
11
|
+
from codex_usage_tracker.core.api_payloads import path_payload, refresh_result_payload
|
|
12
|
+
from codex_usage_tracker.core.i18n import normalize_language
|
|
13
|
+
from codex_usage_tracker.dashboard.api import generate_dashboard
|
|
14
|
+
from codex_usage_tracker.server.api import serve_dashboard
|
|
15
|
+
from codex_usage_tracker.store.api import refresh_usage_index
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def run_dashboard(args: argparse.Namespace) -> int:
|
|
@@ -6,13 +6,13 @@ import argparse
|
|
|
6
6
|
from collections.abc import Callable
|
|
7
7
|
from typing import Any
|
|
8
8
|
|
|
9
|
-
from codex_usage_tracker.
|
|
10
|
-
from codex_usage_tracker.
|
|
9
|
+
from codex_usage_tracker.cli.output import print_json
|
|
10
|
+
from codex_usage_tracker.diagnostics.reports import (
|
|
11
11
|
build_diagnostics_fact_calls_report,
|
|
12
12
|
build_diagnostics_facts_report,
|
|
13
13
|
build_diagnostics_summary_report,
|
|
14
14
|
)
|
|
15
|
-
from codex_usage_tracker.
|
|
15
|
+
from codex_usage_tracker.diagnostics.snapshots import (
|
|
16
16
|
build_diagnostic_commands_report,
|
|
17
17
|
build_diagnostic_concentration_report,
|
|
18
18
|
build_diagnostic_file_modifications_report,
|
|
@@ -7,15 +7,7 @@ import json
|
|
|
7
7
|
import sys
|
|
8
8
|
from typing import Any
|
|
9
9
|
|
|
10
|
-
from codex_usage_tracker.
|
|
11
|
-
error_code,
|
|
12
|
-
path_payload,
|
|
13
|
-
plugin_install_payload,
|
|
14
|
-
plugin_uninstall_payload,
|
|
15
|
-
refresh_result_payload,
|
|
16
|
-
session_payload,
|
|
17
|
-
)
|
|
18
|
-
from codex_usage_tracker.cli_config import (
|
|
10
|
+
from codex_usage_tracker.cli.config import (
|
|
19
11
|
run_init_allowance,
|
|
20
12
|
run_init_pricing,
|
|
21
13
|
run_init_projects,
|
|
@@ -25,39 +17,47 @@ from codex_usage_tracker.cli_config import (
|
|
|
25
17
|
run_update_pricing,
|
|
26
18
|
run_update_rate_card,
|
|
27
19
|
)
|
|
28
|
-
from codex_usage_tracker.
|
|
20
|
+
from codex_usage_tracker.cli.dashboard import (
|
|
29
21
|
run_dashboard,
|
|
30
22
|
run_open_dashboard,
|
|
31
23
|
run_serve_dashboard,
|
|
32
24
|
)
|
|
33
|
-
from codex_usage_tracker.
|
|
34
|
-
from codex_usage_tracker.
|
|
35
|
-
from codex_usage_tracker.
|
|
36
|
-
from codex_usage_tracker.
|
|
37
|
-
from codex_usage_tracker.
|
|
38
|
-
from codex_usage_tracker.
|
|
25
|
+
from codex_usage_tracker.cli.diagnostics import run_diagnostics
|
|
26
|
+
from codex_usage_tracker.cli.output import print_json
|
|
27
|
+
from codex_usage_tracker.cli.parser import build_parser
|
|
28
|
+
from codex_usage_tracker.cli.plugin_installer import install_plugin, uninstall_plugin
|
|
29
|
+
from codex_usage_tracker.context.api import load_call_context
|
|
30
|
+
from codex_usage_tracker.core.api_payloads import (
|
|
31
|
+
error_code,
|
|
32
|
+
path_payload,
|
|
33
|
+
plugin_install_payload,
|
|
34
|
+
plugin_uninstall_payload,
|
|
35
|
+
refresh_result_payload,
|
|
36
|
+
session_payload,
|
|
37
|
+
)
|
|
38
|
+
from codex_usage_tracker.core.formatting import (
|
|
39
39
|
format_doctor,
|
|
40
40
|
format_session,
|
|
41
41
|
)
|
|
42
|
-
from codex_usage_tracker.
|
|
43
|
-
from codex_usage_tracker.
|
|
44
|
-
from codex_usage_tracker.
|
|
45
|
-
from codex_usage_tracker.
|
|
46
|
-
from codex_usage_tracker.reports import (
|
|
42
|
+
from codex_usage_tracker.core.projects import apply_project_privacy_to_rows
|
|
43
|
+
from codex_usage_tracker.diagnostics.api import run_doctor
|
|
44
|
+
from codex_usage_tracker.parser.api import inspect_log, load_session_index
|
|
45
|
+
from codex_usage_tracker.pricing.api import update_pricing_from_openai_docs, write_pricing_template
|
|
46
|
+
from codex_usage_tracker.reports.api import (
|
|
47
47
|
build_expensive_calls_report,
|
|
48
48
|
build_pricing_coverage_report,
|
|
49
49
|
build_query_report,
|
|
50
50
|
build_recommendations_report,
|
|
51
51
|
build_summary_report,
|
|
52
52
|
)
|
|
53
|
-
from codex_usage_tracker.
|
|
53
|
+
from codex_usage_tracker.reports.support import build_support_bundle
|
|
54
|
+
from codex_usage_tracker.store.api import (
|
|
54
55
|
export_usage_csv,
|
|
55
56
|
query_session_usage,
|
|
56
57
|
rebuild_usage_index,
|
|
57
58
|
refresh_usage_index,
|
|
58
59
|
reset_usage_database,
|
|
59
60
|
)
|
|
60
|
-
from codex_usage_tracker.support import build_support_bundle
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
def main() -> int:
|