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.
Files changed (380) hide show
  1. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/.codex-plugin/plugin.json +1 -1
  2. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/CHANGELOG.md +7 -0
  3. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/PKG-INFO +2 -2
  4. codex_usage_tracking-0.12.1/docs/architecture/decisions/0001-package-domain-boundaries.md +7 -0
  5. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/development.md +7 -7
  6. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/maintainability-roadmap.md +93 -0
  7. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/one-dot-oh-readiness.md +8 -8
  8. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/pyproject.toml +10 -10
  9. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/benchmark_synthetic_history.py +5 -5
  10. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/check_release.py +1 -1
  11. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/install_local_plugin.py +5 -2
  12. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/model_usage_drain.py +7 -4
  13. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  14. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/__init__.py +2 -2
  15. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/__main__.py +1 -1
  16. codex_usage_tracking-0.12.1/src/codex_usage_tracker/allowance.py +9 -0
  17. codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/__init__.py +19 -0
  18. codex_usage_tracking-0.12.1/src/codex_usage_tracker/cli/__main__.py +10 -0
  19. 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
  20. 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
  21. 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
  22. 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
  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
  24. 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
  25. 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
  26. {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
  27. codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/__init__.py +15 -0
  28. codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/api.py +99 -0
  29. codex_usage_tracking-0.12.1/src/codex_usage_tracker/context/constants.py +7 -0
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/__init__.py +1 -0
  36. codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_cli.py +232 -0
  37. codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_common.py +22 -0
  38. codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_diagnostics.py +168 -0
  39. codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contract_server.py +106 -0
  40. codex_usage_tracking-0.12.1/src/codex_usage_tracker/core/json_contracts.py +26 -0
  41. {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
  42. codex_usage_tracking-0.12.1/src/codex_usage_tracker/dashboard/__init__.py +15 -0
  43. 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
  44. 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
  45. codex_usage_tracking-0.12.1/src/codex_usage_tracker/diagnostics/__init__.py +15 -0
  46. 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
  47. 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
  48. 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
  49. 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
  50. 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
  51. 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
  52. 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
  53. 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
  54. 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
  55. 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
  56. 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
  57. 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
  58. 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
  59. codex_usage_tracking-0.12.1/src/codex_usage_tracker/mcp_server.py +13 -0
  60. codex_usage_tracking-0.12.1/src/codex_usage_tracker/parser/__init__.py +15 -0
  61. 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
  62. 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
  63. 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
  64. 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
  65. codex_usage_tracking-0.12.1/src/codex_usage_tracker/plugin_installer.py +9 -0
  66. codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/__init__.py +15 -0
  67. codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/allowance.py +63 -0
  68. 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
  69. {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
  70. codex_usage_tracking-0.12.1/src/codex_usage_tracker/pricing/allowance_usage.py +200 -0
  71. 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
  72. 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
  73. {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
  74. 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
  75. codex_usage_tracking-0.12.1/src/codex_usage_tracker/reports/__init__.py +15 -0
  76. 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
  77. 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
  78. {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
  79. {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
  80. codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/__init__.py +22 -0
  81. codex_usage_tracking-0.12.1/src/codex_usage_tracker/server/api.py +133 -0
  82. 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
  83. 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
  84. 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
  85. 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
  86. 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
  87. 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
  88. 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
  89. 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
  90. 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
  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. codex_usage_tracking-0.12.1/src/codex_usage_tracker/store/__init__.py +15 -0
  102. 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
  103. 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
  104. 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
  105. 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
  106. 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
  107. 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
  108. 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
  109. 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
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. codex_usage_tracking-0.12.1/src/codex_usage_tracker/support.py +9 -0
  116. codex_usage_tracking-0.12.1/src/codex_usage_tracker/usage_drain/__init__.py +1 -0
  117. 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
  118. 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
  119. 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
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. 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
  129. 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
  130. 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
  131. 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
  132. 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
  133. 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
  134. 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
  135. 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
  136. 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
  137. 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
  138. 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
  139. 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
  140. 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
  141. 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
  142. 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
  143. 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
  144. 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
  145. 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
  146. 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
  147. 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
  148. 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
  149. 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
  150. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/PKG-INFO +2 -2
  151. codex_usage_tracking-0.12.1/src/codex_usage_tracking.egg-info/SOURCES.txt +376 -0
  152. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/requires.txt +1 -1
  153. codex_usage_tracking-0.12.1/tests/__init__.py +1 -0
  154. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_cli_lifecycle.py +3 -3
  155. codex_usage_tracking-0.12.1/tests/cli/test_cli_module_entrypoints.py +35 -0
  156. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_cli_parser_diagnostics.py +1 -1
  157. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_cli_release.py +19 -19
  158. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_mcp_integration.py +12 -13
  159. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_mcp_launcher.py +1 -1
  160. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/cli}/test_plugin_installer.py +2 -2
  161. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_action_timing.py +1 -1
  162. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_evidence.py +8 -8
  163. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_scan.py +3 -4
  164. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_serialized.py +1 -1
  165. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_summaries.py +1 -1
  166. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_token_estimates.py +1 -1
  167. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/context}/test_context_values.py +1 -1
  168. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_call_origin.py +1 -1
  169. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_formatting.py +1 -1
  170. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_i18n.py +11 -11
  171. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_json_contracts.py +11 -11
  172. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_privacy.py +7 -7
  173. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_projects.py +1 -1
  174. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_redaction.py +1 -1
  175. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_schema.py +3 -3
  176. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/core}/test_threads.py +1 -1
  177. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_data.py +2 -2
  178. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_diagnostics_snapshots.py +1 -1
  179. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_live.py +2 -2
  180. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_payload.py +9 -9
  181. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_pricing_snapshot.py +1 -1
  182. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_server.py +19 -19
  183. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_state.py +1 -1
  184. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/dashboard}/test_dashboard_status.py +1 -1
  185. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_fact_classifiers.py +2 -2
  186. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_reports.py +1 -1
  187. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshot_events.py +1 -1
  188. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshot_report.py +2 -2
  189. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshot_source_scan.py +1 -1
  190. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/diagnostics}/test_diagnostic_snapshots.py +12 -13
  191. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/parser}/test_parser.py +3 -3
  192. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/parser}/test_parser_inspect_log.py +2 -3
  193. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/parser}/test_parser_state.py +3 -3
  194. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/pricing}/test_allowance.py +1 -1
  195. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/pricing}/test_pricing.py +1 -1
  196. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/reports}/test_recommendations.py +1 -1
  197. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/reports}/test_support.py +2 -2
  198. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_call_detail.py +1 -1
  199. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_call_lists.py +1 -1
  200. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_context.py +1 -1
  201. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_context_settings.py +1 -1
  202. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_dashboard_shell.py +1 -1
  203. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_diagnostic_facts.py +1 -1
  204. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_diagnostic_refresh_auth.py +1 -1
  205. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_diagnostic_snapshots.py +1 -1
  206. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_live_queries.py +1 -1
  207. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_live_rows.py +1 -1
  208. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_open_investigator.py +1 -1
  209. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_recommendations.py +1 -1
  210. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_request_guards.py +1 -1
  211. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_responses.py +1 -1
  212. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_routes.py +1 -1
  213. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_status.py +1 -1
  214. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_summary.py +1 -1
  215. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_threads.py +1 -1
  216. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/server}/test_server_usage_refresh.py +1 -1
  217. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_dashboard_mcp.py +13 -13
  218. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_dashboard_queries.py +2 -2
  219. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_large_batches.py +3 -3
  220. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_migrations.py +2 -2
  221. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_query_sql.py +1 -1
  222. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/store}/test_store_sources.py +4 -5
  223. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/tests/store_dashboard_helpers.py +3 -3
  224. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_allowance_fits.py +2 -2
  225. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_boundary_delta.py +1 -1
  226. {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
  227. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_boundary_summary.py +1 -1
  228. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_error_diagnostics.py +2 -2
  229. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_feature_history.py +1 -1
  230. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_model.py +1 -1
  231. {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
  232. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_predictive.py +1 -1
  233. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_regime_segments.py +2 -2
  234. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_regression.py +2 -2
  235. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_report_records.py +2 -2
  236. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_reports.py +9 -7
  237. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_state_buckets.py +1 -1
  238. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_state_diagnostics.py +1 -1
  239. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_summary_metrics.py +1 -1
  240. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_thread_curves.py +1 -1
  241. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_token_components.py +2 -2
  242. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_transition_gates.py +1 -1
  243. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_transition_metrics.py +1 -1
  244. {codex_usage_tracking-0.12.0/tests → codex_usage_tracking-0.12.1/tests/usage_drain}/test_usage_drain_walk_forward.py +2 -2
  245. codex_usage_tracking-0.12.0/src/codex_usage_tracker/json_contracts.py +0 -515
  246. codex_usage_tracking-0.12.0/src/codex_usage_tracking.egg-info/SOURCES.txt +0 -348
  247. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/.mcp.json +0 -0
  248. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/AGENTS.md +0 -0
  249. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/CONTRIBUTING.md +0 -0
  250. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/LICENSE +0 -0
  251. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/MANIFEST.in +0 -0
  252. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/README.md +0 -0
  253. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/SECURITY.md +0 -0
  254. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/assets/icon.svg +0 -0
  255. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/architecture-boundary-map.md +0 -0
  256. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/architecture.md +0 -0
  257. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  258. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-call-investigator-preview.png +0 -0
  259. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-call-investigator.png +0 -0
  260. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-calls-preview.png +0 -0
  261. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-calls.png +0 -0
  262. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-details.png +0 -0
  263. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  264. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-diagnostics.png +0 -0
  265. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-insights.png +0 -0
  266. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/dashboard-threads.png +0 -0
  267. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/plugin-prompts.png +0 -0
  268. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/plugin-thread-leaderboard.png +0 -0
  269. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/ux/call-detail-panel.png +0 -0
  270. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/ux/insight-overview.png +0 -0
  271. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/assets/ux/thread-investigation.png +0 -0
  272. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/call-drilldown-performance-checklist.md +0 -0
  273. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/cli-json-schemas.md +0 -0
  274. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/cli-reference.md +0 -0
  275. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/dashboard-guide.md +0 -0
  276. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/install.md +0 -0
  277. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/maintainability-scorecard.md +0 -0
  278. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/mcp.md +0 -0
  279. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/pricing-and-credits.md +0 -0
  280. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/privacy.md +0 -0
  281. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/ui-ux-improvement-plan.md +0 -0
  282. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/docs/usage-drain-modeling.md +0 -0
  283. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/check_wemake_baseline.py +0 -0
  284. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/scripts/smoke_installed_package.py +0 -0
  285. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/setup.cfg +0 -0
  286. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/skills/codex-usage-api/SKILL.md +0 -0
  287. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/skills/codex-usage-tracker/SKILL.md +0 -0
  288. /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
  289. /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
  290. /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
  291. {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
  292. {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
  293. {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
  294. {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
  295. {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
  296. {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
  297. {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
  298. {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
  299. {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
  300. {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
  301. /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
  302. /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
  303. /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
  304. /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
  305. /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
  306. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  307. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  308. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  309. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
  310. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  311. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  312. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  313. {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
  314. {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
  315. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  316. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  317. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  318. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  319. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  320. {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
  321. {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
  322. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  323. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  324. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  325. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  326. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  327. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  328. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  329. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  330. {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
  331. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  332. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  333. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
  334. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  335. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  336. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  337. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  338. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  339. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  340. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  341. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  342. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  343. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  344. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  345. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  346. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  347. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  348. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  349. {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
  350. {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
  351. {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
  352. {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
  353. {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
  354. {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
  355. {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
  356. {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
  357. {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
  358. {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
  359. {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
  360. {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
  361. {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
  362. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
  363. {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
  364. {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
  365. {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
  366. {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
  367. /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
  368. /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
  369. /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
  370. /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
  371. /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
  372. /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
  373. /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
  374. /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
  375. /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
  376. /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
  377. /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
  378. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  379. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  380. {codex_usage_tracking-0.12.0 → codex_usage_tracking-0.12.1}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-usage-tracker",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Unofficial local tracker for aggregate Codex token usage from local session logs.",
5
5
  "author": {
6
6
  "name": "Douglas Monsky"
@@ -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.0
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]==0.1.0b1; python_version >= "3.11" and extra == "dev"
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.0
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.0
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.0
150
- python scripts/smoke_installed_package.py --docker --from-pypi --version 0.12.0
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.0 -m "codex-usage-tracker 0.12.0"
298
- git push origin v0.12.0
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.0`: `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.0`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.12.0 && codex-usage-tracker --version`.
29
- - [x] Verify public pipx install path for `0.12.0`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.12.0 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
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.0`.
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.0`; all repo tests use synthetic or aggregate-only data.
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.0`.
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.0`.
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.0`.
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.0"
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]==0.1.0b1; python_version >= '3.11'",
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/usage_drain_reports.py",
158
- "src/codex_usage_tracker/usage_drain_time_series.py",
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
  ]
@@ -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.dashboard import dashboard_payload # noqa: E402
25
- from codex_usage_tracker.models import UsageEvent # noqa: E402
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.paths import DEFAULT_MARKETPLACE_PATH, DEFAULT_PLUGIN_LINK # noqa: E402
14
- from codex_usage_tracker.plugin_installer import install_plugin # noqa: E402
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.allowance import annotate_rows_with_allowance, load_allowance_config
12
- from codex_usage_tracker.paths import DEFAULT_ALLOWANCE_PATH, DEFAULT_DB_PATH
13
- from codex_usage_tracker.store import query_dashboard_events
14
- from codex_usage_tracker.usage_drain_model import (
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.0",
18
+ "codex-usage-tracking==0.12.1",
19
19
  )
20
- RUNTIME_VERSION = "0.12.0"
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; "
@@ -1,7 +1,7 @@
1
1
  """Aggregate-only Codex token usage tracking."""
2
2
 
3
- from codex_usage_tracker.models import UsageEvent
3
+ from codex_usage_tracker.core.models import UsageEvent
4
4
 
5
- __version__ = "0.12.0"
5
+ __version__ = "0.12.1"
6
6
 
7
7
  __all__ = ["UsageEvent", "__version__"]
@@ -2,7 +2,7 @@
2
2
 
3
3
  import sys
4
4
 
5
- from codex_usage_tracker.cli import main
5
+ from codex_usage_tracker.cli.main import main
6
6
 
7
7
  if __name__ == "__main__":
8
8
  sys.exit(main())
@@ -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
@@ -0,0 +1,10 @@
1
+ """Run Codex Usage Tracker CLI with ``python -m codex_usage_tracker.cli``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import sys
6
+
7
+ from codex_usage_tracker.cli.main import main
8
+
9
+ if __name__ == "__main__":
10
+ sys.exit(main())
@@ -6,20 +6,20 @@ import argparse
6
6
  import sys
7
7
  from pathlib import Path
8
8
 
9
- from codex_usage_tracker.allowance import (
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.api_payloads import path_payload
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.projects import write_project_template
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.api_payloads import path_payload, refresh_result_payload
11
- from codex_usage_tracker.cli_output import print_json
12
- from codex_usage_tracker.dashboard import generate_dashboard
13
- from codex_usage_tracker.i18n import normalize_language
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.cli_output import print_json
10
- from codex_usage_tracker.diagnostic_reports import (
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.diagnostic_snapshots import (
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.api_payloads import (
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.cli_dashboard import (
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.cli_diagnostics import run_diagnostics
34
- from codex_usage_tracker.cli_output import print_json
35
- from codex_usage_tracker.cli_parser import build_parser
36
- from codex_usage_tracker.context import load_call_context
37
- from codex_usage_tracker.diagnostics import run_doctor
38
- from codex_usage_tracker.formatting import (
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.parser import inspect_log, load_session_index
43
- from codex_usage_tracker.plugin_installer import install_plugin, uninstall_plugin
44
- from codex_usage_tracker.pricing import update_pricing_from_openai_docs, write_pricing_template
45
- from codex_usage_tracker.projects import apply_project_privacy_to_rows
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.store import (
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: