codex-usage-tracking 0.18.0__tar.gz → 0.19.0__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 (790) hide show
  1. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/.codex-plugin/plugin.json +1 -1
  2. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/CHANGELOG.md +9 -0
  3. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/PKG-INFO +1 -1
  4. codex_usage_tracking-0.19.0/docs/allowance-intelligence.md +199 -0
  5. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture.md +16 -2
  6. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/cli-json-schemas.md +205 -55
  7. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-guide.md +44 -25
  8. codex_usage_tracking-0.19.0/docs/database-schema.md +78 -0
  9. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/development.md +2 -2
  10. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/mcp.md +49 -1
  11. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/one-dot-oh-readiness.md +8 -8
  12. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/privacy.md +18 -1
  13. codex_usage_tracking-0.19.0/docs/superpowers/plans/2026-07-14-limits-intelligence-redesign.md +394 -0
  14. codex_usage_tracking-0.19.0/docs/superpowers/plans/2026-07-15-capacity-chart-series-encoding.md +314 -0
  15. codex_usage_tracking-0.19.0/docs/superpowers/plans/2026-07-15-capacity-first-limits.md +568 -0
  16. codex_usage_tracking-0.19.0/docs/superpowers/specs/2026-07-14-limits-intelligence-redesign-design.md +578 -0
  17. codex_usage_tracking-0.19.0/docs/superpowers/specs/2026-07-15-capacity-chart-series-encoding-design.md +68 -0
  18. codex_usage_tracking-0.19.0/docs/superpowers/specs/2026-07-15-capacity-first-limits-design.md +202 -0
  19. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/usage-drain-modeling.md +24 -0
  20. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/pyproject.toml +1 -1
  21. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/benchmark_dashboard_routes.py +1 -1
  22. codex_usage_tracking-0.19.0/scripts/calibrate_allowance_change_detector.py +118 -0
  23. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/skills/codex-usage-api/SKILL.md +2 -2
  24. {codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data → codex_usage_tracking-0.19.0}/skills/codex-usage-tracker/SKILL.md +4 -3
  25. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  26. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/__init__.py +1 -1
  27. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/__init__.py +40 -0
  28. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/analysis.py +265 -0
  29. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/capacity_history.py +189 -0
  30. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/change_detection.py +594 -0
  31. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/contracts.py +52 -0
  32. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/cycles.py +308 -0
  33. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/estimation.py +381 -0
  34. codex_usage_tracking-0.19.0/src/codex_usage_tracker/allowance_intelligence/service.py +314 -0
  35. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/allowance_intelligence/statistics.py +49 -8
  36. codex_usage_tracking-0.19.0/src/codex_usage_tracker/cli/mcp_allowance.py +222 -0
  37. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_server.py +5 -0
  38. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_server.py +47 -0
  39. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/App.js +133 -0
  40. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallInvestigatorPage.js +6 -0
  41. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.js +1 -1
  42. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.js +1 -1
  43. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.js +1 -1
  44. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Primitives.js +1 -1
  45. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.js +12 -0
  46. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.css +1 -0
  47. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.js +6 -0
  48. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/chevron-right.js +11 -0
  49. codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/runtime.js +3 -0
  50. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +2 -2
  51. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0/src/codex_usage_tracker/plugin_data}/skills/codex-usage-tracker/SKILL.md +4 -3
  52. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/allowance.py +18 -1
  53. codex_usage_tracking-0.19.0/src/codex_usage_tracker/server/allowance_v2.py +437 -0
  54. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/analysis_jobs.py +8 -2
  55. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/handler.py +59 -1
  56. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/responses.py +5 -1
  57. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/route_inventory.py +62 -0
  58. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/routes.py +6 -0
  59. codex_usage_tracking-0.19.0/src/codex_usage_tracker/store/allowance_intelligence.py +325 -0
  60. codex_usage_tracking-0.19.0/src/codex_usage_tracker/store/allowance_materialization.py +330 -0
  61. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/allowance_observations.py +30 -15
  62. codex_usage_tracking-0.19.0/src/codex_usage_tracker/store/allowance_schema.py +259 -0
  63. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/api.py +2 -0
  64. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/deduplication_schema.py +2 -0
  65. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/schema.py +6 -1
  66. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracking.egg-info/PKG-INFO +1 -1
  67. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracking.egg-info/SOURCES.txt +31 -0
  68. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_analysis.py +189 -0
  69. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_capacity_history.py +146 -0
  70. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_change_calibration.py +40 -0
  71. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_change_detection.py +174 -0
  72. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_cycles.py +148 -0
  73. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_estimation.py +375 -0
  74. codex_usage_tracking-0.19.0/tests/allowance_intelligence/test_service.py +313 -0
  75. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/allowance_intelligence/test_statistics.py +12 -0
  76. codex_usage_tracking-0.19.0/tests/cli/test_allowance_intelligence_cli_mcp.py +274 -0
  77. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_release.py +5 -0
  78. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_json_contracts.py +12 -1
  79. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_analysis_jobs.py +5 -0
  80. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_allowance.py +13 -7
  81. codex_usage_tracking-0.19.0/tests/server/test_server_allowance_v2.py +240 -0
  82. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_routes.py +10 -0
  83. codex_usage_tracking-0.19.0/tests/store/test_allowance_intelligence_queries.py +256 -0
  84. codex_usage_tracking-0.19.0/tests/store/test_allowance_materialization.py +369 -0
  85. codex_usage_tracking-0.19.0/tests/store/test_allowance_observations.py +63 -0
  86. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_compression_runs.py +1 -1
  87. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_store_dashboard_mcp.py +6 -6
  88. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_store_migrations.py +345 -5
  89. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_usage_deduplication.py +62 -0
  90. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_usage_deduplication_migration.py +43 -0
  91. codex_usage_tracking-0.18.0/docs/allowance-intelligence.md +0 -80
  92. codex_usage_tracking-0.18.0/src/codex_usage_tracker/allowance_intelligence/__init__.py +0 -23
  93. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_allowance.py +0 -78
  94. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/App.js +0 -133
  95. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallInvestigatorPage.js +0 -16
  96. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.js +0 -12
  97. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.css +0 -1
  98. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.js +0 -1
  99. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/runtime.js +0 -3
  100. codex_usage_tracking-0.18.0/tests/cli/test_allowance_intelligence_cli_mcp.py +0 -70
  101. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/.mcp.json +0 -0
  102. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/AGENTS.md +0 -0
  103. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/CONTRIBUTING.md +0 -0
  104. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/LICENSE +0 -0
  105. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/MANIFEST.in +0 -0
  106. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/README.md +0 -0
  107. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/SECURITY.md +0 -0
  108. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/assets/icon.svg +0 -0
  109. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/adoption-hardening-roadmap.md +0 -0
  110. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/agent-maintainer-guidance.md +0 -0
  111. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/agent-maintainer-hardening-branch-roadmap.md +0 -0
  112. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/agentic-briefing-and-dogfood-roadmap.md +0 -0
  113. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/agentic-investigation-hardening-roadmap.md +0 -0
  114. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/agentic-mcp-skill-roadmap.md +0 -0
  115. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
  116. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0002-explicit-tach-module-inventory.md +0 -0
  117. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0003-domain-level-tach-boundaries.md +0 -0
  118. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0004-dashboard-typescript-boundaries.md +0 -0
  119. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0005-dashboard-router-and-query-runtime.md +0 -0
  120. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0006-dashboard-visualization-contract.md +0 -0
  121. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0007-dashboard-css-ownership.md +0 -0
  122. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0008-dashboard-usage-constellation.md +0 -0
  123. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0009-compression-mcp-adapter.md +0 -0
  124. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0010-recommendation-engine-boundary.md +0 -0
  125. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture/decisions/0011-compression-dashboard-adapter.md +0 -0
  126. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/architecture-boundary-map.md +0 -0
  127. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  128. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-call-investigator-preview.png +0 -0
  129. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-call-investigator.png +0 -0
  130. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-calls-preview.png +0 -0
  131. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-calls.png +0 -0
  132. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-details.png +0 -0
  133. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  134. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-diagnostics.png +0 -0
  135. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-insights.png +0 -0
  136. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/dashboard-threads.png +0 -0
  137. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
  138. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
  139. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
  140. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
  141. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
  142. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
  143. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
  144. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
  145. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
  146. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
  147. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
  148. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
  149. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
  150. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/plugin-prompts.png +0 -0
  151. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/plugin-thread-leaderboard.png +0 -0
  152. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/readme-hero-2.png +0 -0
  153. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/readme-hero.png +0 -0
  154. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/social-preview.png +0 -0
  155. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/ux/call-detail-panel.png +0 -0
  156. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/ux/insight-overview.png +0 -0
  157. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/assets/ux/thread-investigation.png +0 -0
  158. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/call-drilldown-performance-checklist.md +0 -0
  159. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/cli-reference.md +0 -0
  160. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/complexity-hardening-roadmap.md +0 -0
  161. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/compression-lab-roadmap.md +0 -0
  162. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-final-redesign-audit.md +0 -0
  163. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-final-redesign-parity.md +0 -0
  164. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-final-redesign-release-candidate.md +0 -0
  165. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-final-redesign-roadmap.md +0 -0
  166. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-final-redesign-spec.md +0 -0
  167. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-overview-parity.md +0 -0
  168. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-query-pipeline-refactor-roadmap.md +0 -0
  169. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/dashboard-route-inventory.md +0 -0
  170. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/examples/remediation-conversation.md +0 -0
  171. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/examples/token-waste-conversation.md +0 -0
  172. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/first-five-minutes.md +0 -0
  173. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/frontend-rewrite-roadmap.md +0 -0
  174. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/install.md +0 -0
  175. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/local-content-index-roadmap.md +0 -0
  176. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/maintainability-roadmap.md +0 -0
  177. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/maintainability-scorecard.md +0 -0
  178. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/pricing-and-credits.md +0 -0
  179. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
  180. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/plans/2026-07-11-compression-lab-implementation.md +0 -0
  181. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/plans/2026-07-11-page-query-progress.md +0 -0
  182. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/plans/2026-07-14-clone-copy-deduplication.md +0 -0
  183. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/plans/2026-07-15-parallel-hardening-ci.md +0 -0
  184. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/specs/2026-07-11-compression-lab-design.md +0 -0
  185. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/specs/2026-07-11-page-query-progress-design.md +0 -0
  186. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/specs/2026-07-14-clone-copy-deduplication-design.md +0 -0
  187. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/superpowers/specs/2026-07-15-parallel-hardening-ci-design.md +0 -0
  188. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/docs/ui-ux-improvement-plan.md +0 -0
  189. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/benchmark_compression_lab.py +0 -0
  190. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/benchmark_refresh_ingestion.py +0 -0
  191. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/benchmark_synthetic_history.py +0 -0
  192. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/check_dashboard_source_budgets.py +0 -0
  193. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/check_release.py +0 -0
  194. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/check_wemake_baseline.py +0 -0
  195. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/compression_persistence_benchmark.py +0 -0
  196. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/compression_revision_benchmark.py +0 -0
  197. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/dashboard_route_benchmark_support.py +0 -0
  198. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/generate_social_preview.py +0 -0
  199. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/install_local_plugin.py +0 -0
  200. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/model_usage_drain.py +0 -0
  201. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/smoke_dashboard_server.py +0 -0
  202. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/scripts/smoke_installed_package.py +0 -0
  203. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/setup.cfg +0 -0
  204. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/__main__.py +0 -0
  205. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/allowance.py +0 -0
  206. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/allowance_intelligence/model.py +0 -0
  207. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/allowance_intelligence/reports.py +0 -0
  208. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/__init__.py +0 -0
  209. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/__main__.py +0 -0
  210. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/commands_data.py +0 -0
  211. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/commands_lifecycle.py +0 -0
  212. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/commands_reports.py +0 -0
  213. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/config.py +0 -0
  214. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/dashboard.py +0 -0
  215. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
  216. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/inspect_log_output.py +0 -0
  217. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/main.py +0 -0
  218. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_compression.py +0 -0
  219. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_compression_router.py +0 -0
  220. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_compression_router_payloads.py +0 -0
  221. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_dashboard.py +0 -0
  222. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_discovery.py +0 -0
  223. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_dogfood.py +0 -0
  224. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_investigations.py +0 -0
  225. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_runtime.py +0 -0
  226. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/mcp_visualization.py +0 -0
  227. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/output.py +0 -0
  228. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/parser.py +0 -0
  229. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/parser_data.py +0 -0
  230. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
  231. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/parser_lifecycle.py +0 -0
  232. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/parser_reports.py +0 -0
  233. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
  234. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/__init__.py +0 -0
  235. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/api.py +0 -0
  236. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/attribution.py +0 -0
  237. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/context_detectors.py +0 -0
  238. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/detector_protocol.py +0 -0
  239. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/detector_registry.py +0 -0
  240. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/estimators.py +0 -0
  241. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/evidence.py +0 -0
  242. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/identifiers.py +0 -0
  243. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/jobs.py +0 -0
  244. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/models.py +0 -0
  245. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/output_detectors.py +0 -0
  246. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/payloads.py +0 -0
  247. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/profile.py +0 -0
  248. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/repetition_detectors.py +0 -0
  249. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/request.py +0 -0
  250. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/run_builder.py +0 -0
  251. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/run_cache.py +0 -0
  252. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/simulation_api.py +0 -0
  253. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/simulation_payloads.py +0 -0
  254. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/simulator.py +0 -0
  255. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/compression/streaming_evidence.py +0 -0
  256. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/__init__.py +0 -0
  257. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/action_timing.py +0 -0
  258. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/api.py +0 -0
  259. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/constants.py +0 -0
  260. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/loader.py +0 -0
  261. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/reader.py +0 -0
  262. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/serialized.py +0 -0
  263. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/summaries.py +0 -0
  264. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/token_estimates.py +0 -0
  265. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/context/values.py +0 -0
  266. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/__init__.py +0 -0
  267. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/api_payloads.py +0 -0
  268. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/call_origin.py +0 -0
  269. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/command_parsing.py +0 -0
  270. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/formatting.py +0 -0
  271. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/i18n.py +0 -0
  272. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_cli.py +0 -0
  273. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
  274. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -0
  275. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_summary.py +0 -0
  276. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
  277. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contract_visualization.py +0 -0
  278. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/json_contracts.py +0 -0
  279. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/models.py +0 -0
  280. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/paths.py +0 -0
  281. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/projects.py +0 -0
  282. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/redaction.py +0 -0
  283. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/schema.py +0 -0
  284. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/threads.py +0 -0
  285. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/core/usage_identity.py +0 -0
  286. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
  287. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/dashboard/api.py +0 -0
  288. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/dashboard/assets.py +0 -0
  289. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/dashboard/cache_identity.py +0 -0
  290. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/dashboard/load_window.py +0 -0
  291. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
  292. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
  293. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
  294. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/api.py +0 -0
  295. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/dedupe.py +0 -0
  296. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/doctor_checks.py +0 -0
  297. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -0
  298. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
  299. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/guided_signals.py +0 -0
  300. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -0
  301. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
  302. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
  303. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
  304. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_analysis_payloads.py +0 -0
  305. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
  306. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
  307. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
  308. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_overview.py +0 -0
  309. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -0
  310. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_progress.py +0 -0
  311. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
  312. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
  313. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
  314. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
  315. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/snapshots.py +0 -0
  316. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/diagnostics/types.py +0 -0
  317. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/mcp_server.py +0 -0
  318. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/parser/__init__.py +0 -0
  319. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/parser/api.py +0 -0
  320. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/parser/jsonl_v1.py +0 -0
  321. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
  322. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/parser/state.py +0 -0
  323. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  324. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  325. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  326. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
  327. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  328. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  329. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  330. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  331. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
  332. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  333. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  334. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  335. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  336. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  337. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  338. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
  339. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  340. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  341. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  342. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  343. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  344. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  345. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  346. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  347. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  348. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  349. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  350. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
  351. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  352. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  353. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  354. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  355. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  356. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  357. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  358. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  359. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  360. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  361. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  362. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  363. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  364. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  365. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  366. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
  367. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CacheContextPage.js +0 -0
  368. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallsPage.css +0 -0
  369. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallsPage.js +0 -0
  370. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.css +0 -0
  371. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CoordinateSystem.js +0 -0
  372. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataDiffer.js +0 -0
  373. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataTable.js +0 -0
  374. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DiagnosticsPage.js +0 -0
  375. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.css +0 -0
  376. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.js +0 -0
  377. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.css +0 -0
  378. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.js +0 -0
  379. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreWorkspaceSwitcher.js +0 -0
  380. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.css +0 -0
  381. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/LineChart.js +0 -0
  382. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.css +0 -0
  383. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/PageLoadProgress.css +0 -0
  384. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/PageLoadProgress.js +0 -0
  385. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Panel.js +0 -0
  386. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Primitives.css +0 -0
  387. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.css +0 -0
  388. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.js +0 -0
  389. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/RoamController.js +0 -0
  390. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SeriesData.js +0 -0
  391. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SettingsPage.css +0 -0
  392. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SettingsPage.js +0 -0
  393. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SymbolDraw.js +0 -0
  394. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.css +0 -0
  395. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.js +0 -0
  396. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.css +0 -0
  397. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellationCanvas.css +0 -0
  398. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellationCanvas.js +0 -0
  399. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/VisualMapping.js +0 -0
  400. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/accessibilityFeature.js +0 -0
  401. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/annotationFeature.js +0 -0
  402. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianAxisHelper.js +0 -0
  403. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianRenderer.js +0 -0
  404. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/contextEvidenceState.js +0 -0
  405. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -0
  406. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboardRouter.js +0 -0
  407. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dataStackHelper.js +0 -0
  408. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/diagnosticsQueries.js +0 -0
  409. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/echartsRenderer.js +0 -0
  410. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/exploreQueries.js +0 -0
  411. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/extension.js +0 -0
  412. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/filtering.js +0 -0
  413. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/flowRenderer.js +0 -0
  414. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/gauge.js +0 -0
  415. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/grid.js +0 -0
  416. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/heatmapRenderer.js +0 -0
  417. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -0
  418. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.js +0 -0
  419. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index2.js +0 -0
  420. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/infiniteQueryOptions.js +0 -0
  421. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/install.js +0 -0
  422. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/interactionFeature.js +0 -0
  423. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/legendFeature.js +0 -0
  424. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/listComponent.js +0 -0
  425. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/lock-keyhole.js +0 -0
  426. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/overviewQueries.js +0 -0
  427. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/queryOptions.js +0 -0
  428. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/router.js +0 -0
  429. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/scaleRawExtentInfo.js +0 -0
  430. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/shield-check.js +0 -0
  431. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/sliderMove.js +0 -0
  432. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/threadSummaryAdapter.js +0 -0
  433. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/tooltipFeature.js +0 -0
  434. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/triangle-alert.js +0 -0
  435. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useBaseQuery.js +0 -0
  436. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useInfiniteQuery.js +0 -0
  437. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useQuery.js +0 -0
  438. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/visualMapFeature.js +0 -0
  439. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/dashboard/react/index.html +0 -0
  440. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  441. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  442. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  443. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  444. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  445. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  446. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  447. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  448. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  449. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  450. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  451. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  452. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
  453. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/examples/remediation-conversation.md +0 -0
  454. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/docs/examples/token-waste-conversation.md +0 -0
  455. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  456. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/plugin_installer.py +0 -0
  457. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/__init__.py +0 -0
  458. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/allowance.py +0 -0
  459. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
  460. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
  461. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
  462. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
  463. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/api.py +0 -0
  464. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/config.py +0 -0
  465. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/costing.py +0 -0
  466. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/estimates.py +0 -0
  467. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/pricing/openai.py +0 -0
  468. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/recommendation_engine/__init__.py +0 -0
  469. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/recommendation_engine/api.py +0 -0
  470. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/recommendation_engine/fact_config.py +0 -0
  471. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/recommendation_engine/materialization.py +0 -0
  472. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/recommendation_engine/query.py +0 -0
  473. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/recommendation_engine/summary_materialization.py +0 -0
  474. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/__init__.py +0 -0
  475. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/action_brief.py +0 -0
  476. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/agentic.py +0 -0
  477. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/agentic_dogfood.py +0 -0
  478. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/agentic_dogfood_markdown.py +0 -0
  479. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/agentic_evidence.py +0 -0
  480. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/agentic_strategy.py +0 -0
  481. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/api.py +0 -0
  482. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/discovery.py +0 -0
  483. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/filters.py +0 -0
  484. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/hypothesis_classification.py +0 -0
  485. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/hypothesis_evaluators.py +0 -0
  486. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/hypothesis_limit_evaluators.py +0 -0
  487. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/hypothesis_results.py +0 -0
  488. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/investigation_walk.py +0 -0
  489. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/project_summary.py +0 -0
  490. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/query.py +0 -0
  491. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
  492. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/recommendations.py +0 -0
  493. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/support.py +0 -0
  494. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/visualization.py +0 -0
  495. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/reports/visualization_support.py +0 -0
  496. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/__init__.py +0 -0
  497. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/api.py +0 -0
  498. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/call_detail.py +0 -0
  499. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/call_lists.py +0 -0
  500. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/compression_routes.py +0 -0
  501. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/context.py +0 -0
  502. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/context_settings.py +0 -0
  503. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/dashboard_pages.py +0 -0
  504. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
  505. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/dedupe.py +0 -0
  506. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
  507. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/diagnostic_jobs.py +0 -0
  508. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/diagnostic_routes.py +0 -0
  509. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
  510. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/investigations.py +0 -0
  511. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/live_queries.py +0 -0
  512. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/live_rows.py +0 -0
  513. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/open_investigator.py +0 -0
  514. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/query_cache.py +0 -0
  515. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/recommendations.py +0 -0
  516. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/reports.py +0 -0
  517. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/request_guards.py +0 -0
  518. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/request_timing.py +0 -0
  519. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/route_profile.py +0 -0
  520. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/status.py +0 -0
  521. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/summary.py +0 -0
  522. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/threads.py +0 -0
  523. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/usage_refresh.py +0 -0
  524. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/server/utils.py +0 -0
  525. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/__init__.py +0 -0
  526. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_candidate_metadata.py +0 -0
  527. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_candidates.py +0 -0
  528. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_capacities.py +0 -0
  529. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_evidence.py +0 -0
  530. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_fact_contract.py +0 -0
  531. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_fact_ingest.py +0 -0
  532. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_fact_manifest.py +0 -0
  533. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_fact_queries.py +0 -0
  534. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_fact_rows.py +0 -0
  535. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_fact_sync.py +0 -0
  536. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_facts.py +0 -0
  537. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_publication.py +0 -0
  538. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_revisions.py +0 -0
  539. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_runs.py +0 -0
  540. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/compression_schema.py +0 -0
  541. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/connection.py +0 -0
  542. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_excerpts.py +0 -0
  543. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_extract.py +0 -0
  544. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index.py +0 -0
  545. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_bulk.py +0 -0
  546. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_event_store.py +0 -0
  547. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_events.py +0 -0
  548. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_models.py +0 -0
  549. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_parallel.py +0 -0
  550. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_source.py +0 -0
  551. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_index_stream.py +0 -0
  552. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_patterns.py +0 -0
  553. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_persistence.py +0 -0
  554. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_provenance.py +0 -0
  555. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_query.py +0 -0
  556. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_rows.py +0 -0
  557. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_search.py +0 -0
  558. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/content_trace.py +0 -0
  559. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
  560. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/dedupe_queries.py +0 -0
  561. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/deduplication.py +0 -0
  562. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/diagnostic_api.py +0 -0
  563. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
  564. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
  565. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/exports.py +0 -0
  566. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/investigation_runs.py +0 -0
  567. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/large_low_output.py +0 -0
  568. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/query_sql.py +0 -0
  569. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/query_values.py +0 -0
  570. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/recommendation_queries.py +0 -0
  571. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/recommendation_schema.py +0 -0
  572. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/refresh.py +0 -0
  573. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/refresh_callbacks.py +0 -0
  574. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/refresh_parse.py +0 -0
  575. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/refresh_stream.py +0 -0
  576. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/repeated_files.py +0 -0
  577. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/rows.py +0 -0
  578. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/schema_query_indexes.py +0 -0
  579. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/shell_churn.py +0 -0
  580. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/source_records.py +0 -0
  581. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/source_replacement.py +0 -0
  582. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/sources.py +0 -0
  583. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/summary_queries.py +0 -0
  584. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
  585. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
  586. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
  587. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/store/usage_timing.py +0 -0
  588. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/support.py +0 -0
  589. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
  590. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
  591. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
  592. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
  593. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
  594. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
  595. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
  596. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
  597. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
  598. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
  599. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
  600. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
  601. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
  602. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/features.py +0 -0
  603. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
  604. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
  605. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/model.py +0 -0
  606. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
  607. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
  608. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
  609. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
  610. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
  611. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
  612. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
  613. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
  614. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
  615. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
  616. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
  617. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
  618. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
  619. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
  620. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
  621. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
  622. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/types.py +0 -0
  623. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
  624. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
  625. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
  626. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  627. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  628. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
  629. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  630. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/__init__.py +0 -0
  631. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/allowance_intelligence/test_allowance_intelligence.py +0 -0
  632. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_benchmarks.py +0 -0
  633. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_dashboard.py +0 -0
  634. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_inspect_log_output.py +0 -0
  635. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_lifecycle.py +0 -0
  636. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_module_entrypoints.py +0 -0
  637. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_cli_parser_diagnostics.py +0 -0
  638. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_commands_reports.py +0 -0
  639. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_dashboard_route_benchmark.py +0 -0
  640. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_compression.py +0 -0
  641. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_compression_router.py +0 -0
  642. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_dedupe.py +0 -0
  643. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_integration.py +0 -0
  644. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_launcher.py +0 -0
  645. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_runtime_compatibility.py +0 -0
  646. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_simulation.py +0 -0
  647. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_mcp_visualization.py +0 -0
  648. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/cli/test_plugin_installer.py +0 -0
  649. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/compression_helpers.py +0 -0
  650. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_attribution.py +0 -0
  651. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_context_detectors.py +0 -0
  652. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_estimators.py +0 -0
  653. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_jobs.py +0 -0
  654. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_models.py +0 -0
  655. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_output_detectors.py +0 -0
  656. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_repetition_detectors.py +0 -0
  657. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_run_builder.py +0 -0
  658. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_simulator.py +0 -0
  659. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/compression/test_streaming_evidence.py +0 -0
  660. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_action_timing.py +0 -0
  661. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_evidence.py +0 -0
  662. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_scan.py +0 -0
  663. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_serialized.py +0 -0
  664. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_source_scan.py +0 -0
  665. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_summaries.py +0 -0
  666. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_token_estimates.py +0 -0
  667. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/context/test_context_values.py +0 -0
  668. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_call_origin.py +0 -0
  669. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_command_parsing.py +0 -0
  670. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_formatting.py +0 -0
  671. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_i18n.py +0 -0
  672. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_privacy.py +0 -0
  673. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_projects.py +0 -0
  674. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_redaction.py +0 -0
  675. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_schema.py +0 -0
  676. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_threads.py +0 -0
  677. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/core/test_usage_identity.py +0 -0
  678. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/dashboard_node_test_helpers.py +0 -0
  679. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_compression_server.py +0 -0
  680. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_data.py +0 -0
  681. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
  682. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_live.py +0 -0
  683. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_payload.py +0 -0
  684. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_payload_privacy.py +0 -0
  685. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
  686. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_server.py +0 -0
  687. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_server_live_slices.py +0 -0
  688. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_state.py +0 -0
  689. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/dashboard/test_dashboard_status.py +0 -0
  690. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
  691. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_reports.py +0 -0
  692. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -0
  693. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_snapshot_progress.py +0 -0
  694. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
  695. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
  696. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_diagnostic_snapshots.py +0 -0
  697. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_doctor_first_run.py +0 -0
  698. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/diagnostics/test_module_exports.py +0 -0
  699. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/parser/test_parser.py +0 -0
  700. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/parser/test_parser_deduplication.py +0 -0
  701. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/parser/test_parser_inspect_log.py +0 -0
  702. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/parser/test_parser_observer.py +0 -0
  703. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/parser/test_parser_state.py +0 -0
  704. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/pricing/test_allowance.py +0 -0
  705. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/pricing/test_pricing.py +0 -0
  706. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/quality/test_static_analysis_policy.py +0 -0
  707. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_action_brief.py +0 -0
  708. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_action_brief_exports.py +0 -0
  709. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_agentic_dogfood.py +0 -0
  710. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_agentic_evidence.py +0 -0
  711. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_agentic_exports.py +0 -0
  712. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_discovery_exports.py +0 -0
  713. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_hypothesis_classification.py +0 -0
  714. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_hypothesis_evaluator_exports.py +0 -0
  715. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_hypothesis_routing.py +0 -0
  716. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_indexed_recommendations.py +0 -0
  717. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_investigation_walk_exports.py +0 -0
  718. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_query_exports.py +0 -0
  719. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_recommendations.py +0 -0
  720. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_support.py +0 -0
  721. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/reports/test_visualization.py +0 -0
  722. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_compression_routes.py +0 -0
  723. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_diagnostic_jobs.py +0 -0
  724. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_query_cache.py +0 -0
  725. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_refresh_jobs.py +0 -0
  726. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_refresh_routes.py +0 -0
  727. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_request_timing.py +0 -0
  728. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_route_inventory.py +0 -0
  729. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_api.py +0 -0
  730. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_call_detail.py +0 -0
  731. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_call_lists.py +0 -0
  732. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_context.py +0 -0
  733. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_context_settings.py +0 -0
  734. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_dashboard_shell.py +0 -0
  735. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_dedupe.py +0 -0
  736. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_diagnostic_facts.py +0 -0
  737. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
  738. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_diagnostic_snapshots.py +0 -0
  739. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_investigations.py +0 -0
  740. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_live_queries.py +0 -0
  741. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_live_rows.py +0 -0
  742. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_open_investigator.py +0 -0
  743. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_recommendations.py +0 -0
  744. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_request_guards.py +0 -0
  745. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_responses.py +0 -0
  746. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_status.py +0 -0
  747. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_summary.py +0 -0
  748. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_threads.py +0 -0
  749. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/server/test_server_usage_refresh.py +0 -0
  750. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_compression_evidence.py +0 -0
  751. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_compression_facts.py +0 -0
  752. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_compression_publication.py +0 -0
  753. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_compression_revisions.py +0 -0
  754. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_content_index.py +0 -0
  755. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_content_index_refresh.py +0 -0
  756. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_content_query_exports.py +0 -0
  757. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_recommendation_facts.py +0 -0
  758. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_recommendation_queries.py +0 -0
  759. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_refresh_callbacks.py +0 -0
  760. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_refresh_parallel.py +0 -0
  761. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_source_records.py +0 -0
  762. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_store_dashboard_queries.py +0 -0
  763. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_store_large_batches.py +0 -0
  764. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_store_query_sql.py +0 -0
  765. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store/test_store_sources.py +0 -0
  766. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/store_dashboard_helpers.py +0 -0
  767. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/test_check_dashboard_source_budgets.py +0 -0
  768. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/model_test_helpers.py +0 -0
  769. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
  770. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
  771. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
  772. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
  773. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
  774. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
  775. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_model.py +0 -0
  776. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
  777. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
  778. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
  779. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_regression.py +0 -0
  780. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_report_helpers.py +0 -0
  781. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
  782. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_reports.py +0 -0
  783. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
  784. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
  785. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
  786. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
  787. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
  788. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
  789. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
  790. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.19.0}/tests/usage_drain/test_usage_drain_walk_forward.py +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-usage-tracker",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Unofficial local Codex usage dashboard and MCP diagnostics from local session logs.",
5
5
  "author": {
6
6
  "name": "Douglas Monsky"
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.19.0 - 2026-07-15
6
+
7
+ - Redesign Limits Intelligence around weekly credits-per-percentage capacity
8
+ history, a compact current-status row, automatic revision analysis, and zero,
9
+ one, or multiple family-wise-controlled capacity changes. Rejected split
10
+ statistics stay hidden, five-hour usage remains observed context, and the v2
11
+ API/MCP contracts expose capacity points, regimes, provenance, and copied-row
12
+ diagnostics by default.
13
+
5
14
  ## 0.18.0 - 2026-07-15
6
15
 
7
16
  - Exclude exact historical calls copied by cloned Codex tasks from default dashboard, CLI, MCP, report, allowance, compression, recommendation, and export totals while retaining every physical source row for local provenance.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-usage-tracking
3
- Version: 0.18.0
3
+ Version: 0.19.0
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
@@ -0,0 +1,199 @@
1
+ # Allowance Intelligence
2
+
3
+ Allowance Intelligence is a local, aggregate-only workflow for understanding the
4
+ weekly and 5-hour percentages observed in Codex logs. It is not an OpenAI ledger,
5
+ does not know the account's hidden allowance denominator, and cannot see usage
6
+ from other agentic surfaces.
7
+
8
+ The v2 workflow is deliberately conservative: current observations are facts;
9
+ reconstructed values, personal calibration, forecasts, and change claims remain
10
+ separate estimates with visible quality gates.
11
+
12
+ ## Truth Layers
13
+
14
+ The dashboard and API keep five layers distinct:
15
+
16
+ 1. **Observed allowance** is the percentage and reset metadata written in local
17
+ `token_count.rate_limits` events or copied into the optional local allowance
18
+ configuration.
19
+ 2. **Canonical usage** is token and locally estimated credit activity after
20
+ high-confidence copied-clone rows are excluded. This is the default input to
21
+ reports, the dashboard, and MCP.
22
+ 3. **Reconstructed usage** estimates movement between sparse observations using
23
+ only calibration data available before each interval ended.
24
+ 4. **Validated forecast** is shown numerically only after time-ordered holdout
25
+ testing beats the relevant simple baselines and interval coverage is adequate.
26
+ 5. **Physical provenance** preserves source rows and record identifiers for local
27
+ debugging. It is opt-in and never changes billable totals.
28
+
29
+ Copied clone rows excluded from canonical totals are always disclosed through
30
+ `quality.copied_rows_excluded` or `copied_rows_excluded`. Similar token counts by
31
+ themselves never cause exclusion.
32
+
33
+ ## Reset And Cohort Semantics
34
+
35
+ Allowance observations are grouped by window kind, limit identity, plan metadata,
36
+ and normalized reset time. Reset timestamps within 60 seconds are treated as the
37
+ same reset boundary. A reset starts a new cycle and produces a chart break; the
38
+ model never interpolates or fits a continuous line across it.
39
+
40
+ The normal Codex cohort is selected independently for weekly and 5-hour windows.
41
+ Conflicting simultaneous observations, ambiguous cohort changes, reversals, gaps,
42
+ and reset uncertainty remain visible as conflicts or censored intervals. They are
43
+ not silently converted into positive usage movement.
44
+
45
+ Weekly data is the primary long-range signal. The 5-hour value is useful current
46
+ context, but its rolling-window behavior makes it unsuitable as the primary
47
+ capacity or regime-change claim.
48
+
49
+ ## Freshness
50
+
51
+ - Weekly and 5-hour observations are `fresh` through five minutes.
52
+ - Weekly observations are `aging` after five minutes through six hours.
53
+ - Five-hour observations are `aging` after five minutes through 15 minutes.
54
+ - Older observations are `stale`.
55
+ - Passing the reported reset time makes an older observation stale immediately,
56
+ even when its age would otherwise be acceptable.
57
+
58
+ The status endpoint is constant size. Poll it every 30 seconds while data is fresh
59
+ or aging and every 60 seconds while it is stale, partial, empty, or unchanged.
60
+ Hidden browser tabs stop polling. Transient failures back off exponentially to a
61
+ maximum of five minutes.
62
+
63
+ ## Personal Calibration And Forecasts
64
+
65
+ `credits_per_percent` is a personal, empirical calibration derived from local
66
+ history. A value such as `105.11` means the user's eligible completed reset windows
67
+ imply approximately 105.11 locally estimated credits per one observed percentage
68
+ point. It is not an official conversion, a hardcoded product rule, or the hidden
69
+ allowance denominator.
70
+
71
+ Calibration uses completed quality-approved weekly reset identities as the unit of
72
+ evidence. Interleaved observations carrying the same canonical reset timestamp are
73
+ coalesced into one reset window, so concurrent sessions cannot fragment one window
74
+ into many low-movement pseudo-cycles. Weights include recency, interval quality,
75
+ and price coverage, with each reset window's influence capped. At least two
76
+ completed approved reset windows are required before the
77
+ capacity can move beyond a descriptive result.
78
+
79
+ Each completed reset window also retains the explicitly logged subscription
80
+ `plan_type`. Capacity points and trailing statistics are separated by plan, so a
81
+ Pro Lite window cannot pull the Pro line up or down. Missing plan metadata is
82
+ reported as `unknown`, and a reset window containing multiple explicit plans is
83
+ reported as `mixed`; neither is guessed from its capacity value.
84
+
85
+ Each reconstructed interval sees only cycles completed before that interval ended.
86
+ Forecast validation is walk-forward and reports sample size, MAE, RMSE, empirical
87
+ 50/80/95% interval coverage, and simple baselines. A numerical forecast is
88
+ `validated` only when the time-ordered holdout beats every relevant baseline and
89
+ all advertised interval coverages meet the minimum gate. A failed forecast is
90
+ reported with the specific failed validation gate; it does not make descriptive
91
+ capacity unavailable. The capacity-first Limits page does not foreground the
92
+ percentage forecast or conditional pace.
93
+
94
+ Missing price coverage is explicit. Change detection requires at least 95% priced
95
+ credit coverage for each eligible reset window. Forecast and calibration payloads
96
+ report their own coverage gaps and never substitute token-count similarity for
97
+ pricing. The Limits chart keeps an open methodology panel beside the evidence: it
98
+ states the ratio formula, explains every mark and filter, shows the observed plan
99
+ color key, and reports the current eligible, excluded, tested, and supported
100
+ counts rather than asking users to infer the method from the visualization.
101
+
102
+ ## Change Analysis
103
+
104
+ Allowance change analysis is a persisted, revision-keyed background job. It tests
105
+ weekly cycle capacities with a hierarchical maximum-statistic cycle-block
106
+ permutation detector. The result is one of:
107
+
108
+ - `insufficient_evidence`
109
+ - `no_supported_change`
110
+ - `supported_changes`
111
+
112
+ A supported parent boundary may split the history into child segments. Each child
113
+ receives half its parent's alpha budget, so the discovered tree controls
114
+ family-wise false positives rather than treating recursive searches as independent
115
+ tests. Histories are first split at every explicitly observed subscription-plan
116
+ transition, and candidate boundaries are tested only within those continuous plan
117
+ segments. The family-wise alpha budget is divided across analyzable plan segments,
118
+ so a Pro Lite-to-Pro transition is visible provenance but can never itself become a
119
+ capacity-change claim. A boundary must also have an absolute Cliff's delta of at least `0.474`.
120
+ Exact permutations are used where bounded; otherwise the detector uses `1,999`
121
+ deterministic Monte Carlo permutations and requires the upper 95% Monte Carlo
122
+ uncertainty bound to clear the allocated alpha—not merely the point estimate.
123
+
124
+ A raw best split is never presented as significant. Conflict-heavy cycles,
125
+ insufficient samples, low price coverage, weak effects, or selection-corrected
126
+ uncertainty block strong claims. Results expose zero, one, or multiple supported
127
+ `boundaries` and the resulting `regimes`. Deprecated singular fields are populated
128
+ only when exactly one boundary is supported. Rejected candidate p-values and
129
+ before/after medians are omitted from default dashboard and MCP results.
130
+
131
+ The dashboard starts analysis automatically when a new semantic revision lacks a
132
+ result. MCP callers start or reuse the same job, poll every 500 milliseconds only
133
+ while it is pending, queued, or running, then reload the persisted result.
134
+ Identical source/model/rate-card keys reuse the same snapshot or in-flight job.
135
+
136
+ The release gate simulates 1,000 deterministic no-change histories across
137
+ Gaussian, skewed, outlier-contaminated, and heteroskedastic families. The detector
138
+ ships only when the upper 95% Wilson bound for its family-wise false-positive rate
139
+ is at most `0.05`.
140
+
141
+ ## Dashboard Workflow
142
+
143
+ Open `Limits` from the live localhost dashboard to see:
144
+
145
+ - one compact row for weekly observed use, 5-hour observed context, weekly reset,
146
+ and personal weekly capacity;
147
+ - weekly `credits / 1%` history with completed-cycle points, an eight-cycle rolling
148
+ median and interquartile band, robust outlier display, and every supported change;
149
+ - 8-week, 6-month, all available aggregate-cycle, or bounded custom ranges;
150
+ - cycle, week, or month granularity;
151
+ - an automatic newest-first capacity-change timeline that suppresses rejected
152
+ candidate statistics; and
153
+ - latest-first evidence in 50-row pages.
154
+
155
+ Physical source links are hidden by default. Enable **Show physical source links**
156
+ only for local provenance/debugging. Static dashboards show an aggregate fallback
157
+ because they cannot poll the v2 localhost services or analysis jobs.
158
+
159
+ ## HTTP And MCP Contracts
160
+
161
+ The default v2 surfaces are:
162
+
163
+ | Purpose | HTTP | MCP |
164
+ | --- | --- | --- |
165
+ | Poll current state | `GET /api/allowance/status` | `usage_allowance_status(...)` |
166
+ | Query a finite timeline | `GET /api/allowance/series` | `usage_allowance_series(...)` |
167
+ | Page latest-first evidence | `GET /api/allowance/evidence` | `usage_allowance_evidence(...)` |
168
+ | Read/start analysis | `GET`/`POST /api/allowance/analysis` | `usage_allowance_analysis(...)` |
169
+ | Poll analysis job | `GET /api/allowance/analysis/jobs/{job_id}` | `usage_allowance_analysis_status(job_id)` |
170
+
171
+ Series presets are `24h`, `7d`, `8w`, `6m`, and `all`; custom ranges are limited
172
+ to 366 days. The `all` capacity view scans indexed aggregate cycle rows, not raw
173
+ transcripts. Evidence limits are 1–500 and the dashboard defaults to 50;
174
+ interactive evidence never accepts an unlimited-history setting.
175
+
176
+ Normal and strict evidence return aggregate provenance. `privacy_mode="local"`
177
+ opts into bounded physical record identifiers. Full strict evidence export remains
178
+ the explicit offline `usage_allowance_export(...)` compatibility workflow.
179
+
180
+ See [CLI, MCP, and Dashboard JSON Schemas](cli-json-schemas.md) for synthetic v2
181
+ payloads and [MCP And Codex Skills](mcp.md) for polling examples.
182
+
183
+ ## V1 Compatibility
184
+
185
+ `usage_allowance_history`, `usage_allowance_diagnostics`, and
186
+ `usage_allowance_export` remain available for compatibility and explicit offline
187
+ diagnostics. New dashboard, plugin, and MCP workflows should start with the v2
188
+ status/series/evidence/analysis tools. Interactive v2 paths never use `limit=0`.
189
+
190
+ ## Privacy
191
+
192
+ Normal v2 payloads are aggregate-first and never include prompts, assistant text,
193
+ tool output, command output, or indexed transcript fragments. Strict mode also
194
+ removes stable local identifiers. Local physical provenance is a deliberate,
195
+ bounded opt-in for the owner of the local database.
196
+
197
+ This project is unofficial, independent, and local-first. Its estimates are tools
198
+ for personal investigation, not statements about OpenAI's internal billing or
199
+ allowance systems.
@@ -2,9 +2,10 @@
2
2
 
3
3
  Codex Usage Tracker is a local sidecar app. It reads Codex session JSONL logs, stores tracker-owned indexes in SQLite, and exposes usage data through CLI commands, MCP tools, CSV export, generated dashboards, and the localhost React dashboard.
4
4
 
5
- The current storage model has two layers:
5
+ The current storage model has three layers:
6
6
 
7
7
  - Aggregate usage index: token counters, model/effort metadata, call origins, diagnostic labels, thread summaries, pricing/credit estimates, allowance snapshots, and safe report payloads.
8
+ - Canonical/materialized intelligence: physical usage provenance plus logical usage fingerprints and canonical pointers, reset-aware allowance observations/cycles/intervals, source revisions, and persisted analysis snapshots/jobs. Default totals read canonical rows; physical rows remain available for bounded local diagnostics.
8
9
  - Local content index: normalized conversation turns, bounded content fragments, tool calls, command runs, file events, persisted investigation run summaries, and source provenance for explicit local MCP/API investigation.
9
10
 
10
11
  The aggregate index preserves every parsed row in `usage_events` for source provenance. A versioned strict fingerprint links exact copies of the same logged model call, and the `canonical_usage_events` view selects one physical representative for default totals. Only high-confidence fingerprint matches are excluded; ambiguous or merely similar calls remain canonical. If the original source disappears, the surviving physical copy is promoted without changing the logical call identity.
@@ -21,6 +22,15 @@ Shareable outputs remain aggregate-first and must omit indexed/raw content unles
21
22
  - `schema.py` owns persisted SQLite columns and migrations. Add columns or tables there before changing refresh, export, or MCP behavior.
22
23
  - `store.py` and `store/api.py` own SQLite setup, refresh, rebuild, query access, previous/next call links, materialized thread summaries, source-file refresh cursors, SQL-backed live dashboard API slices, and cleanup ordering.
23
24
  - `source_records.py` owns source-file provenance, parser coverage, incremental cursors, and replacement on source-file changes.
25
+ - `dedupe.py` and store migrations own conservative logical identity. Indexed
26
+ fingerprint lookup is O(1) per parsed event; only high-confidence identical
27
+ events are linked to a canonical record. No raw-content or fuzzy token-count
28
+ scan participates in default exclusion.
29
+ - `allowance_intelligence/` owns cohort selection, reset-aware cycle and interval
30
+ materialization, prior-only calibration/forecasting, selection-corrected change
31
+ detection, and the constant-size status/finite series/latest-first evidence
32
+ services. `server/analysis_jobs.py` owns bounded asynchronous execution and
33
+ revision-keyed persisted results.
24
34
  - `reports.py` is the application-service layer for summaries, expensive-call reports, recommendations, pricing coverage, source coverage, allowance reports, and filtered query payloads. CLI and MCP wrappers should call this layer instead of duplicating report assembly.
25
35
  - `api_payloads.py` owns stable JSON payload helpers shared by CLI and MCP. `json_contracts.py` owns lightweight contract checks for schema-versioned CLI/MCP payloads and localhost live API payloads.
26
36
  - `costing.py`, `pricing_config.py`, `pricing_openai.py`, `pricing_estimates.py`, and `allowance.py` own cost, credit, rate-card, and allowance annotation. Keep estimate confidence and source metadata attached to rows.
@@ -47,7 +57,11 @@ Shareable outputs remain aggregate-first and must omit indexed/raw content unles
47
57
  11. Register each dashboard route in `server.route_inventory`. Interactive routes must be bounded and index-backed; unavoidable all-history detector work uses the shared asynchronous job lifecycle.
48
58
  12. Cache only immutable aggregate responses. Server keys include source generation and semantic/configuration inputs; browser persistence rejects raw or indexed content.
49
59
  13. Add or change a route budget only from repeatable synthetic evidence. Database indexes require an additive migration, query-plan or timing evidence, and focused migration coverage.
50
- 14. Preserve physical usage rows for provenance, but route default usage totals and detector folds through `canonical_usage_events`. New physical-row investigation surfaces must be explicitly labeled and tested against an original/copy/new-call fixture.
60
+ 14. Preserve physical usage rows for provenance, but route default dashboard,
61
+ API, report, recommendation, diagnostic, thread-summary, detector, and MCP
62
+ totals through `canonical_usage_events`. New physical-row investigation
63
+ surfaces must be bounded, explicitly labeled, and tested against an
64
+ original/copy/new-call fixture.
51
65
 
52
66
  Normal aggregate responses use a 64-entry, 256-KiB-per-entry process cache.
53
67
  Allowance history and diagnostics use a separate four-entry, 8-MiB-per-entry
@@ -50,6 +50,10 @@ Tracked schema ids:
50
50
  | `codex-usage-tracker-action-brief-v1` | CLI `action-brief --json`, MCP `usage_action_brief(...)`; compact aggregate remediation brief |
51
51
  | `codex-usage-tracker-async-job-status-v1` | MCP `usage_dogfood_start(...)`, `usage_dogfood_status(...)`; async in-process job progress/status payload |
52
52
  | `codex-usage-tracker-analysis-job-v1` | Dashboard diagnostic refresh start/status lifecycle; shared aggregate progress envelope |
53
+ | `codex-usage-tracker-allowance-status-v2` | Dashboard `/api/allowance/status`, MCP `usage_allowance_status(...)`; constant-size canonical polling snapshot |
54
+ | `codex-usage-tracker-allowance-series-v2` | Dashboard `/api/allowance/series`, MCP `usage_allowance_series(...)`; finite reset-aware timeline |
55
+ | `codex-usage-tracker-allowance-evidence-v2` | Dashboard `/api/allowance/evidence`, MCP `usage_allowance_evidence(...)`; latest-first cursor pagination |
56
+ | `codex-usage-tracker-allowance-analysis-v2` | Dashboard `/api/allowance/analysis`, MCP `usage_allowance_analysis(...)`; persisted revision-keyed result |
53
57
  | `codex-usage-tracker-allowance-history-v1` | CLI `allowance-history --json`, MCP `usage_allowance_history(...)`, dashboard server `/api/allowance/history` |
54
58
  | `codex-usage-tracker-allowance-diagnostics-v1` | CLI `allowance-diagnostics --json`, MCP `usage_allowance_diagnostics(...)`, dashboard server `/api/allowance/diagnostics` |
55
59
  | `codex-usage-tracker-allowance-evidence-export-v1` | CLI `allowance-export --json`, MCP `usage_allowance_export(...)`, dashboard server `/api/allowance/export` |
@@ -275,80 +279,226 @@ Actions translate aggregate diagnostics into concrete workflow changes. Each act
275
279
 
276
280
  ## Allowance Intelligence
277
281
 
278
- Commands:
282
+ V2 is the default dashboard and MCP contract family. The examples below are
283
+ synthetic aggregate data and apply to both the localhost route and corresponding
284
+ MCP tool. Copied clone rows are excluded from canonical totals by default and are
285
+ disclosed in every applicable payload.
279
286
 
280
- ```bash
281
- codex-usage-tracker allowance-history --window-kind weekly --json
282
- codex-usage-tracker allowance-diagnostics --window-kind weekly --json
283
- codex-usage-tracker allowance-export --output /tmp/codex-allowance-evidence.json
287
+ ### Current status
288
+
289
+ `GET /api/allowance/status` and `usage_allowance_status(...)` return
290
+ `codex-usage-tracker-allowance-status-v2`. Pass `since_revision` to get a compact
291
+ `changed=false` response when the source has not changed.
292
+
293
+ ```json
294
+ {
295
+ "schema": "codex-usage-tracker-allowance-status-v2",
296
+ "revision": "r-synthetic-42",
297
+ "changed": true,
298
+ "model_version": "reset-aware-v4",
299
+ "generated_at": "2026-07-15T12:00:00+00:00",
300
+ "data_as_of": "2026-07-15T11:58:00+00:00",
301
+ "data_state": "fresh",
302
+ "weekly": {
303
+ "cohort_id": "codex-pro",
304
+ "plan_type": "pro",
305
+ "used_percent": 42.0,
306
+ "remaining_percent": 58.0,
307
+ "reset_at": 1784145600,
308
+ "reset_countdown_seconds": 172800,
309
+ "observed_at": "2026-07-15T11:58:00+00:00",
310
+ "age_seconds": 120,
311
+ "freshness": "fresh",
312
+ "status": "open",
313
+ "pricing_coverage": 0.98,
314
+ "quality": "high",
315
+ "canonical_source_revision": "r-synthetic-42"
316
+ },
317
+ "five_hour": null,
318
+ "estimation": {
319
+ "model_version": "reset-aware-v2",
320
+ "window_kind": "weekly",
321
+ "capacity": {
322
+ "status": "descriptive",
323
+ "credits_per_percent": 105.11,
324
+ "completed_cycle_count": 63,
325
+ "eligible_interval_count": 622,
326
+ "price_coverage": 1.0
327
+ },
328
+ "weekly_estimate": {"used_percent": 42.4, "clipped": false, "reason": null},
329
+ "forecast": {"used_percent": null, "quantiles": null, "reason": "holdout_not_better_than_baseline"},
330
+ "validation": {"status": "descriptive", "sample_size": 207, "median_absolute_error": 3.7, "mean_absolute_error": 4.22, "rmse": 5.31, "holdout": {"sample_size": 207, "passed_baseline_gate": false}},
331
+ "pace_scenarios": {"status": "conditional", "reason": null, "if_current_pace_continues": 47.0, "sample_count": 6, "unit": "percent_per_hour"}
332
+ },
333
+ "quality": {"canonical": true, "copied_rows_excluded": 17},
334
+ "next": {"action": "poll_status", "poll_after_seconds": 30}
335
+ }
284
336
  ```
285
337
 
286
- MCP:
338
+ The synthetic `105.11` is explicitly a personal local calibration: estimated
339
+ credits per one observed percentage point over eligible history. It is not an
340
+ official conversion.
341
+
342
+ ### Finite series
287
343
 
288
- - `usage_allowance_history(...)`
289
- - `usage_allowance_diagnostics(...)`
290
- - `usage_allowance_export(...)`
344
+ `GET /api/allowance/series?range_preset=8w&granularity=cycle` and
345
+ `usage_allowance_series(range_preset="8w", granularity="cycle")` return
346
+ `codex-usage-tracker-allowance-series-v2`.
291
347
 
292
- Server API:
348
+ ```json
349
+ {
350
+ "schema": "codex-usage-tracker-allowance-series-v2",
351
+ "model_version": "reset-aware-v4",
352
+ "generated_at": "2026-07-15T12:00:00+00:00",
353
+ "revision": "r-synthetic-42",
354
+ "requested_range": {"preset": "8w", "start_at": "2026-05-20T12:00:00+00:00", "end_at": "2026-07-15T12:00:00+00:00"},
355
+ "available_range": {"start_at": "2026-05-28T09:00:00+00:00", "end_at": "2026-07-15T11:58:00+00:00"},
356
+ "granularity": "cycle",
357
+ "truncated": false,
358
+ "downsampled": true,
359
+ "quality": {"canonical": true, "copied_rows_excluded": 17, "observed_only": true},
360
+ "points": [
361
+ {"kind": "observed", "cycle_id": "cycle-7", "observed_at": "2026-07-15T11:58:00+00:00", "reset_at": 1784145600, "used_percent": 42.0},
362
+ {"kind": "reset", "cycle_id": "cycle-6", "observed_at": "2026-07-13T12:00:00+00:00", "reset_at": 1783972800}
363
+ ],
364
+ "cycles": [
365
+ {"cycle_id": "cycle-7", "reset_at": 1784145600, "first_observed_at": "2026-07-13T12:01:00+00:00", "last_observed_at": "2026-07-15T11:58:00+00:00", "latest_used_percent": 42.0, "status": "open", "quality_grade": "high", "plan_type": "pro"}
366
+ ],
367
+ "capacity_history": {
368
+ "status": "ready",
369
+ "unit": "credits_per_percent",
370
+ "eligible_cycle_count": 63,
371
+ "plan_types": ["pro", "prolite"],
372
+ "trailing_window_cycles": 8,
373
+ "robust_domain": {"mode": "tukey_1_5_iqr", "min": 51.2, "max": 181.7},
374
+ "clipped_point_count": 2,
375
+ "points": [
376
+ {"cycle_id": "cycle-6", "completed_at": "2026-07-13T12:00:00+00:00", "credits_per_percent": 105.11, "rolling_median": 101.8, "rolling_q1": 88.4, "rolling_q3": 116.9, "quality_grade": "high", "price_coverage": 1.0, "plan_type": "pro", "regime_id": "regime-2"}
377
+ ],
378
+ "boundaries": [],
379
+ "regimes": []
380
+ }
381
+ }
382
+ ```
383
+
384
+ Supported presets are `24h`, `7d`, `8w`, `6m`, and `all`; custom ranges are
385
+ bounded to 366 days. The `all` capacity view reads indexed aggregate cycle rows,
386
+ not raw transcript content. Five-hour series return
387
+ `capacity_history.status="unsupported_window_model"` because rolling expiry needs
388
+ a different model. `capacity_history.plan_types` and each point's `plan_type` come
389
+ from observed rate-limit metadata. Unknown or mixed plan windows remain explicit;
390
+ clients must not infer a subscription plan from capacity values.
293
391
 
294
- - `/api/allowance/history`
295
- - `/api/allowance/diagnostics`
296
- - `/api/allowance/export`
392
+ ### Latest-first evidence
297
393
 
298
- Schemas:
394
+ `GET /api/allowance/evidence?limit=50` and
395
+ `usage_allowance_evidence(limit=50)` return
396
+ `codex-usage-tracker-allowance-evidence-v2`.
299
397
 
300
- - `codex-usage-tracker-allowance-history-v1`
301
- - `codex-usage-tracker-allowance-diagnostics-v1`
302
- - `codex-usage-tracker-allowance-evidence-export-v1`
398
+ ```json
399
+ {
400
+ "schema": "codex-usage-tracker-allowance-evidence-v2",
401
+ "model_version": "reset-aware-v4",
402
+ "generated_at": "2026-07-15T12:00:00+00:00",
403
+ "revision": "r-synthetic-42",
404
+ "privacy_mode": "normal",
405
+ "rows": [
406
+ {"window_kind": "weekly", "end_observed_at": "2026-07-15T11:58:00+00:00", "end_used_percent": 42.0, "point_kind": "positive", "censor_reason": null}
407
+ ],
408
+ "next_cursor": "2026-07-15T11:58:00+00:00|interval-synthetic-41",
409
+ "copied_rows_excluded": 17,
410
+ "provenance": "local_aggregate",
411
+ "offline_export_action": "build_allowance_export_report"
412
+ }
413
+ ```
303
414
 
304
- Allowance intelligence normalizes observed 5-hour and weekly usage snapshots from aggregate token-count rows. Diagnostics compare visible usage movement with locally estimated Codex credits and grade the evidence. Weekly windows are the primary signal; 5-hour windows are treated as noisy rolling counters. Weekly change candidates include `nonparametric-v1` statistical evidence and a stricter `summary.research_readiness.ready_for_public_claim` flag. Strict export omits prompts, assistant text, tool output, file paths, thread names, session IDs, and record IDs.
415
+ Rows are newest first. Pass `next_cursor` as `cursor`; limits are 1–500. Normal
416
+ and strict modes omit physical record identifiers. `privacy_mode="local"` is an
417
+ explicit provenance/debug opt-in that may add bounded `start_record_id` and
418
+ `end_record_id` fields.
305
419
 
306
- The localhost history and diagnostics routes may append the same `query_cache`
307
- transport metadata documented for diagnostic fact routes. They use a dedicated
308
- four-entry, 8-MiB aggregate cache because full allowance payloads are larger than
309
- normal dashboard summaries. Cache identity includes source revision, canonical
310
- query, privacy mode, allowance configuration, and rate-card configuration.
420
+ ### Persisted change analysis
311
421
 
312
- HTTP report endpoints accept `limit=all`, `limit=0`, `limit=none`, and `limit=null` as all rows up to the endpoint safety cap.
422
+ `GET /api/allowance/analysis` and `usage_allowance_analysis(...)` return the
423
+ persisted `codex-usage-tracker-allowance-analysis-v2` result for the exact source,
424
+ model, rate-card, archive, cohort, and parameter key. When missing, POST/start
425
+ returns the shared job envelope below.
313
426
 
314
427
  ```json
315
428
  {
316
- "schema": "codex-usage-tracker-allowance-diagnostics-v1",
317
- "generated_at": "2026-06-01T00:00:00+00:00",
318
- "privacy_mode": "strict",
319
- "include_archived": false,
429
+ "schema": "codex-usage-tracker-allowance-analysis-v2",
430
+ "status": "supported_changes",
431
+ "snapshot_id": "analysis-synthetic-42",
432
+ "source_revision": "r-synthetic-42",
433
+ "model_version": "reset-aware-v2",
434
+ "rate_card_revision": "rates-synthetic-3",
435
+ "generated_at": "2026-07-15T12:00:02+00:00",
320
436
  "window_kind": "weekly",
321
- "summary": {
322
- "observation_count": 4,
323
- "primary_evidence_grade": "possible_regime_change",
324
- "research_readiness": {
325
- "detector_version": "nonparametric-v1",
326
- "ready_for_public_claim": false,
327
- "weekly_positive_span_count": 3,
328
- "minimum_split_spans_for_public_claim": 6
329
- }
330
- },
331
- "windows": [],
332
- "spans": [],
333
- "change_candidates": [
334
- {
335
- "evidence_grade": "possible_regime_change",
336
- "capacity_ratio": 0.72,
337
- "outside_usage_possible": true,
338
- "statistical_evidence": {
339
- "detector_version": "nonparametric-v1",
340
- "method": "exact_permutation_mean_shift",
341
- "effect_size_cliffs_delta": -0.67,
342
- "p_value_one_sided": 0.18,
343
- "signal": "directional_effect_limited",
344
- "public_claim_ready": false
345
- }
346
- }
437
+ "parameters": {"min_cycles_per_regime": 4, "permutation_count": 1999, "familywise_alpha": 0.05},
438
+ "quality": {"canonical": true, "copied_rows_excluded": 17},
439
+ "detector_version": "hierarchical-maxstat-cycle-v3",
440
+ "selection_correction": "hierarchical_max_statistic_cycle_block_permutation",
441
+ "eligible_cycle_count": 63,
442
+ "excluded_cycle_count": 2,
443
+ "candidate_count": 56,
444
+ "reason": null,
445
+ "familywise_alpha": 0.05,
446
+ "boundaries": [
447
+ {"boundary_id": "boundary-older", "effective_at": "2026-03-01T00:00:00+00:00", "alpha": 0.025, "adjusted_p_value": 0.004, "effect_size": {"median_before_credits_per_percent": 142.0, "median_after_credits_per_percent": 101.0, "median_shift_credits_per_percent": -41.0, "cliffs_delta": -0.76}},
448
+ {"boundary_id": "boundary-newer", "effective_at": "2026-06-15T00:00:00+00:00", "alpha": 0.025, "adjusted_p_value": 0.006, "effect_size": {"median_before_credits_per_percent": 101.0, "median_after_credits_per_percent": 78.0, "median_shift_credits_per_percent": -23.0, "cliffs_delta": -0.71}}
347
449
  ],
348
- "notes": []
450
+ "regimes": [
451
+ {"regime_id": "regime-1", "plan_type": "pro", "start_at": "2025-12-01T00:00:00+00:00", "end_at": "2026-02-22T00:00:00+00:00", "start_index": 0, "end_index": 20, "eligible_cycle_count": 20, "median_credits_per_percent": 142.0, "iqr_credits_per_percent": 18.0, "price_coverage": 1.0},
452
+ {"regime_id": "regime-2", "plan_type": "pro", "start_at": "2026-03-01T00:00:00+00:00", "end_at": "2026-06-08T00:00:00+00:00", "start_index": 20, "end_index": 45, "eligible_cycle_count": 25, "median_credits_per_percent": 101.0, "iqr_credits_per_percent": 13.0, "price_coverage": 1.0},
453
+ {"regime_id": "regime-3", "plan_type": "pro", "start_at": "2026-06-15T00:00:00+00:00", "end_at": "2026-07-13T00:00:00+00:00", "start_index": 45, "end_index": 63, "eligible_cycle_count": 18, "median_credits_per_percent": 78.0, "iqr_credits_per_percent": 9.0, "price_coverage": 1.0}
454
+ ],
455
+ "caveats": ["Local observed allowance only; outside usage may be missing."]
456
+ }
457
+ ```
458
+
459
+ The detector may return zero, one, or multiple supported boundaries. It controls
460
+ family-wise error with hierarchical alpha spending, requires a strong effect, and
461
+ requires Monte Carlo uncertainty—not just the p-value point estimate—to clear the
462
+ allocated alpha. Explicit subscription-plan transitions split the history into
463
+ independently analyzed continuous segments, with the family-wise alpha divided
464
+ across analyzable segments; a tier transition is never itself a capacity-change
465
+ candidate. Regimes disclose their observed `plan_type`, and the caveats include
466
+ `subscription_plan_segments_analyzed_independently` when this safeguard applies.
467
+ A `no_supported_change` payload intentionally leaves deprecated
468
+ singular p-value and before/after median fields null; rejected candidates are not
469
+ default report data.
470
+
471
+ ### Analysis job
472
+
473
+ `POST /api/allowance/analysis` or a missing-result
474
+ `usage_allowance_analysis(...)` call returns
475
+ `codex-usage-tracker-analysis-job-v1`. Poll the route/tool every 500 milliseconds
476
+ only while `pending`, `queued`, or `running`, then reload the persisted analysis.
477
+
478
+ ```json
479
+ {
480
+ "schema": "codex-usage-tracker-analysis-job-v1",
481
+ "job_id": "allowance-analysis-synthetic-42",
482
+ "job_kind": "allowance-analysis",
483
+ "status": "running",
484
+ "stage": "cycle_block_permutations",
485
+ "source_revision": "r-synthetic-42",
486
+ "progress": {"completed_units": 640, "total_units": 2000, "percent": 32.0, "current_unit": "permutation"},
487
+ "result": null,
488
+ "error": null,
489
+ "next": {"action": "poll_analysis_job", "job_id": "allowance-analysis-synthetic-42", "poll_after_ms": 500, "endpoint": "/api/allowance/analysis/jobs/allowance-analysis-synthetic-42"}
349
490
  }
350
491
  ```
351
492
 
493
+ ### V1 compatibility
494
+
495
+ `usage_allowance_history`, `usage_allowance_diagnostics`, and
496
+ `usage_allowance_export` plus `/api/allowance/history`,
497
+ `/api/allowance/diagnostics`, and `/api/allowance/export` remain compatibility and
498
+ explicit offline-diagnostic surfaces. Their v1 schemas are unchanged. New
499
+ dashboard/plugin/MCP integrations should use v2. V2 evidence rejects `limit=0`;
500
+ full strict export is a separate deliberate offline action.
501
+
352
502
  ## Compression Lab
353
503
 
354
504
  MCP lifecycle: