codex-usage-tracking 0.18.0__tar.gz → 0.20.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 (838) hide show
  1. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/.codex-plugin/plugin.json +1 -1
  2. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/CHANGELOG.md +16 -0
  3. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/PKG-INFO +4 -4
  4. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/README.md +3 -3
  5. codex_usage_tracking-0.20.0/docs/allowance-intelligence.md +199 -0
  6. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture.md +16 -2
  7. codex_usage_tracking-0.20.0/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  8. codex_usage_tracking-0.20.0/docs/assets/dashboard-call-investigator-preview.png +0 -0
  9. codex_usage_tracking-0.20.0/docs/assets/dashboard-call-investigator.png +0 -0
  10. codex_usage_tracking-0.20.0/docs/assets/dashboard-calls-preview.png +0 -0
  11. codex_usage_tracking-0.20.0/docs/assets/dashboard-calls.png +0 -0
  12. codex_usage_tracking-0.20.0/docs/assets/dashboard-details.png +0 -0
  13. codex_usage_tracking-0.20.0/docs/assets/dashboard-diagnostics.png +0 -0
  14. codex_usage_tracking-0.20.0/docs/assets/dashboard-insights.png +0 -0
  15. codex_usage_tracking-0.20.0/docs/assets/dashboard-threads.png +0 -0
  16. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/cli-json-schemas.md +205 -55
  17. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-guide.md +51 -32
  18. codex_usage_tracking-0.20.0/docs/database-schema.md +78 -0
  19. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/development.md +2 -2
  20. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/mcp.md +49 -1
  21. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/one-dot-oh-readiness.md +8 -8
  22. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/privacy.md +18 -1
  23. codex_usage_tracking-0.20.0/docs/superpowers/plans/2026-07-14-limits-intelligence-redesign.md +394 -0
  24. codex_usage_tracking-0.20.0/docs/superpowers/plans/2026-07-15-capacity-chart-series-encoding.md +314 -0
  25. codex_usage_tracking-0.20.0/docs/superpowers/plans/2026-07-15-capacity-first-limits.md +568 -0
  26. codex_usage_tracking-0.20.0/docs/superpowers/plans/2026-07-15-threads-inline-expansion.md +947 -0
  27. codex_usage_tracking-0.20.0/docs/superpowers/specs/2026-07-14-limits-intelligence-redesign-design.md +578 -0
  28. codex_usage_tracking-0.20.0/docs/superpowers/specs/2026-07-15-capacity-chart-series-encoding-design.md +68 -0
  29. codex_usage_tracking-0.20.0/docs/superpowers/specs/2026-07-15-capacity-first-limits-design.md +202 -0
  30. codex_usage_tracking-0.20.0/docs/superpowers/specs/2026-07-15-threads-inline-expansion-design.md +153 -0
  31. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/usage-drain-modeling.md +24 -0
  32. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/pyproject.toml +1 -1
  33. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/benchmark_dashboard_routes.py +1 -1
  34. codex_usage_tracking-0.20.0/scripts/calibrate_allowance_change_detector.py +118 -0
  35. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/skills/codex-usage-api/SKILL.md +2 -2
  36. {codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data → codex_usage_tracking-0.20.0}/skills/codex-usage-tracker/SKILL.md +4 -3
  37. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  38. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/__init__.py +1 -1
  39. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/__init__.py +40 -0
  40. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/analysis.py +265 -0
  41. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/capacity_history.py +189 -0
  42. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/change_detection.py +594 -0
  43. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/contracts.py +52 -0
  44. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/cycles.py +308 -0
  45. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/estimation.py +381 -0
  46. codex_usage_tracking-0.20.0/src/codex_usage_tracker/allowance_intelligence/service.py +314 -0
  47. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/allowance_intelligence/statistics.py +49 -8
  48. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/commands_lifecycle.py +43 -18
  49. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/dashboard.py +10 -2
  50. codex_usage_tracking-0.20.0/src/codex_usage_tracker/cli/help_i18n.py +177 -0
  51. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/main.py +6 -3
  52. codex_usage_tracking-0.20.0/src/codex_usage_tracker/cli/mcp_allowance.py +222 -0
  53. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_server.py +5 -0
  54. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/parser.py +5 -2
  55. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_server.py +47 -0
  56. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +153 -153
  57. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/App.js +128 -0
  58. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CacheContextPage.js +1 -0
  59. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallInvestigatorPage.js +6 -0
  60. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallsPage.js +2 -2
  61. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.js +1 -0
  62. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataTable.js +11 -0
  63. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DiagnosticsPage.js +1 -0
  64. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.js +6 -0
  65. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGridControls.css +1 -0
  66. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGridControls.js +1 -0
  67. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.js +1 -0
  68. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.js +11 -0
  69. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/LineChart.js +1 -0
  70. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.css +1 -0
  71. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.js +1 -0
  72. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Panel.js +1 -0
  73. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Primitives.js +1 -1
  74. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.js +1 -0
  75. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SettingsPage.js +2 -2
  76. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/StatusBadge.js +1 -0
  77. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.css +1 -0
  78. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.js +6 -0
  79. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.js +12 -0
  80. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.css +1 -0
  81. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.js +6 -0
  82. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianRenderer.js +1 -0
  83. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/chevron-right.js +11 -0
  84. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/contextEvidenceState.js +1 -1
  85. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboardRouter.js +2 -2
  86. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/diagnosticsQueries.js +1 -1
  87. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/echartsRenderer.js +2 -2
  88. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/exploreQueries.js +1 -1
  89. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/flowRenderer.js +1 -0
  90. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/heatmapRenderer.js +1 -0
  91. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/locale-zh-Hans.js +1 -0
  92. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/overviewQueries.js +11 -0
  93. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/rowActionEvents.js +1 -0
  94. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/runtime.js +3 -0
  95. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/search.js +6 -0
  96. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/tableActions.js +1 -0
  97. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useBaseQuery.js +1 -1
  98. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useInfiniteQuery.js +1 -0
  99. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  100. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  101. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  102. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  103. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  104. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  105. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  106. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  107. codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  108. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +1 -0
  109. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +2 -2
  110. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0/src/codex_usage_tracker/plugin_data}/skills/codex-usage-tracker/SKILL.md +4 -3
  111. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/config.py +10 -1
  112. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/costing.py +26 -0
  113. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/openai.py +20 -1
  114. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/allowance.py +18 -1
  115. codex_usage_tracking-0.20.0/src/codex_usage_tracker/server/allowance_v2.py +437 -0
  116. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/analysis_jobs.py +8 -2
  117. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/api.py +17 -10
  118. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/handler.py +59 -1
  119. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/responses.py +5 -1
  120. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/route_inventory.py +62 -0
  121. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/routes.py +6 -0
  122. codex_usage_tracking-0.20.0/src/codex_usage_tracker/store/allowance_intelligence.py +325 -0
  123. codex_usage_tracking-0.20.0/src/codex_usage_tracker/store/allowance_materialization.py +330 -0
  124. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/allowance_observations.py +30 -15
  125. codex_usage_tracking-0.20.0/src/codex_usage_tracker/store/allowance_schema.py +259 -0
  126. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/api.py +2 -0
  127. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/deduplication_schema.py +2 -0
  128. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/schema.py +6 -1
  129. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracking.egg-info/PKG-INFO +4 -4
  130. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracking.egg-info/SOURCES.txt +42 -1
  131. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_analysis.py +189 -0
  132. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_capacity_history.py +146 -0
  133. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_change_calibration.py +40 -0
  134. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_change_detection.py +174 -0
  135. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_cycles.py +148 -0
  136. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_estimation.py +375 -0
  137. codex_usage_tracking-0.20.0/tests/allowance_intelligence/test_service.py +313 -0
  138. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/allowance_intelligence/test_statistics.py +12 -0
  139. codex_usage_tracking-0.20.0/tests/cli/test_allowance_intelligence_cli_mcp.py +274 -0
  140. codex_usage_tracking-0.20.0/tests/cli/test_cli_help_i18n.py +58 -0
  141. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_release.py +5 -0
  142. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_json_contracts.py +12 -1
  143. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/pricing/test_pricing.py +68 -0
  144. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_analysis_jobs.py +5 -0
  145. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_allowance.py +13 -7
  146. codex_usage_tracking-0.20.0/tests/server/test_server_allowance_v2.py +240 -0
  147. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_api.py +23 -5
  148. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_routes.py +10 -0
  149. codex_usage_tracking-0.20.0/tests/store/test_allowance_intelligence_queries.py +256 -0
  150. codex_usage_tracking-0.20.0/tests/store/test_allowance_materialization.py +369 -0
  151. codex_usage_tracking-0.20.0/tests/store/test_allowance_observations.py +63 -0
  152. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_compression_runs.py +1 -1
  153. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_store_dashboard_mcp.py +6 -6
  154. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_store_migrations.py +345 -5
  155. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_usage_deduplication.py +62 -0
  156. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_usage_deduplication_migration.py +43 -0
  157. codex_usage_tracking-0.18.0/docs/allowance-intelligence.md +0 -80
  158. codex_usage_tracking-0.18.0/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  159. codex_usage_tracking-0.18.0/docs/assets/dashboard-call-investigator-preview.png +0 -0
  160. codex_usage_tracking-0.18.0/docs/assets/dashboard-call-investigator.png +0 -0
  161. codex_usage_tracking-0.18.0/docs/assets/dashboard-calls-preview.png +0 -0
  162. codex_usage_tracking-0.18.0/docs/assets/dashboard-calls.png +0 -0
  163. codex_usage_tracking-0.18.0/docs/assets/dashboard-details.png +0 -0
  164. codex_usage_tracking-0.18.0/docs/assets/dashboard-diagnostics.png +0 -0
  165. codex_usage_tracking-0.18.0/docs/assets/dashboard-insights.png +0 -0
  166. codex_usage_tracking-0.18.0/docs/assets/dashboard-threads.png +0 -0
  167. codex_usage_tracking-0.18.0/src/codex_usage_tracker/allowance_intelligence/__init__.py +0 -23
  168. codex_usage_tracking-0.18.0/src/codex_usage_tracker/cli/mcp_allowance.py +0 -78
  169. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/App.js +0 -133
  170. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CacheContextPage.js +0 -1
  171. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallInvestigatorPage.js +0 -16
  172. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.js +0 -1
  173. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataTable.js +0 -11
  174. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DiagnosticsPage.js +0 -1
  175. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.css +0 -1
  176. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/EvidenceGrid.js +0 -6
  177. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.js +0 -1
  178. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.js +0 -11
  179. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/LineChart.js +0 -1
  180. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.css +0 -1
  181. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/OverviewPage.js +0 -1
  182. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Panel.js +0 -1
  183. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.js +0 -1
  184. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.css +0 -1
  185. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ThreadsPage.js +0 -6
  186. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.js +0 -12
  187. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.css +0 -1
  188. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageDrainPage.js +0 -1
  189. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianRenderer.js +0 -1
  190. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/flowRenderer.js +0 -1
  191. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/heatmapRenderer.js +0 -1
  192. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/overviewQueries.js +0 -11
  193. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/runtime.js +0 -3
  194. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useInfiniteQuery.js +0 -1
  195. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  196. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  197. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  198. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  199. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  200. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  201. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  202. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  203. codex_usage_tracking-0.18.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  204. codex_usage_tracking-0.18.0/tests/cli/test_allowance_intelligence_cli_mcp.py +0 -70
  205. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/.mcp.json +0 -0
  206. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/AGENTS.md +0 -0
  207. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/CONTRIBUTING.md +0 -0
  208. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/LICENSE +0 -0
  209. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/MANIFEST.in +0 -0
  210. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/SECURITY.md +0 -0
  211. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/assets/icon.svg +0 -0
  212. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/adoption-hardening-roadmap.md +0 -0
  213. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/agent-maintainer-guidance.md +0 -0
  214. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/agent-maintainer-hardening-branch-roadmap.md +0 -0
  215. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/agentic-briefing-and-dogfood-roadmap.md +0 -0
  216. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/agentic-investigation-hardening-roadmap.md +0 -0
  217. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/agentic-mcp-skill-roadmap.md +0 -0
  218. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
  219. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0002-explicit-tach-module-inventory.md +0 -0
  220. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0003-domain-level-tach-boundaries.md +0 -0
  221. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0004-dashboard-typescript-boundaries.md +0 -0
  222. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0005-dashboard-router-and-query-runtime.md +0 -0
  223. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0006-dashboard-visualization-contract.md +0 -0
  224. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0007-dashboard-css-ownership.md +0 -0
  225. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0008-dashboard-usage-constellation.md +0 -0
  226. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0009-compression-mcp-adapter.md +0 -0
  227. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0010-recommendation-engine-boundary.md +0 -0
  228. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture/decisions/0011-compression-dashboard-adapter.md +0 -0
  229. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/architecture-boundary-map.md +0 -0
  230. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  231. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
  232. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
  233. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
  234. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
  235. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
  236. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
  237. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
  238. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
  239. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
  240. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
  241. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
  242. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
  243. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
  244. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/plugin-prompts.png +0 -0
  245. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/plugin-thread-leaderboard.png +0 -0
  246. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/readme-hero-2.png +0 -0
  247. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/readme-hero.png +0 -0
  248. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/social-preview.png +0 -0
  249. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/ux/call-detail-panel.png +0 -0
  250. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/ux/insight-overview.png +0 -0
  251. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/assets/ux/thread-investigation.png +0 -0
  252. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/call-drilldown-performance-checklist.md +0 -0
  253. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/cli-reference.md +0 -0
  254. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/complexity-hardening-roadmap.md +0 -0
  255. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/compression-lab-roadmap.md +0 -0
  256. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-final-redesign-audit.md +0 -0
  257. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-final-redesign-parity.md +0 -0
  258. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-final-redesign-release-candidate.md +0 -0
  259. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-final-redesign-roadmap.md +0 -0
  260. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-final-redesign-spec.md +0 -0
  261. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-overview-parity.md +0 -0
  262. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-query-pipeline-refactor-roadmap.md +0 -0
  263. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/dashboard-route-inventory.md +0 -0
  264. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/examples/remediation-conversation.md +0 -0
  265. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/examples/token-waste-conversation.md +0 -0
  266. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/first-five-minutes.md +0 -0
  267. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/frontend-rewrite-roadmap.md +0 -0
  268. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/install.md +0 -0
  269. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/local-content-index-roadmap.md +0 -0
  270. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/maintainability-roadmap.md +0 -0
  271. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/maintainability-scorecard.md +0 -0
  272. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/pricing-and-credits.md +0 -0
  273. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
  274. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/plans/2026-07-11-compression-lab-implementation.md +0 -0
  275. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/plans/2026-07-11-page-query-progress.md +0 -0
  276. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/plans/2026-07-14-clone-copy-deduplication.md +0 -0
  277. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/plans/2026-07-15-parallel-hardening-ci.md +0 -0
  278. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/specs/2026-07-11-compression-lab-design.md +0 -0
  279. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/specs/2026-07-11-page-query-progress-design.md +0 -0
  280. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/specs/2026-07-14-clone-copy-deduplication-design.md +0 -0
  281. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/superpowers/specs/2026-07-15-parallel-hardening-ci-design.md +0 -0
  282. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/docs/ui-ux-improvement-plan.md +0 -0
  283. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/benchmark_compression_lab.py +0 -0
  284. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/benchmark_refresh_ingestion.py +0 -0
  285. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/benchmark_synthetic_history.py +0 -0
  286. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/check_dashboard_source_budgets.py +0 -0
  287. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/check_release.py +0 -0
  288. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/check_wemake_baseline.py +0 -0
  289. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/compression_persistence_benchmark.py +0 -0
  290. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/compression_revision_benchmark.py +0 -0
  291. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/dashboard_route_benchmark_support.py +0 -0
  292. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/generate_social_preview.py +0 -0
  293. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/install_local_plugin.py +0 -0
  294. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/model_usage_drain.py +0 -0
  295. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/smoke_dashboard_server.py +0 -0
  296. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/scripts/smoke_installed_package.py +0 -0
  297. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/setup.cfg +0 -0
  298. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/__main__.py +0 -0
  299. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/allowance.py +0 -0
  300. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/allowance_intelligence/model.py +0 -0
  301. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/allowance_intelligence/reports.py +0 -0
  302. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/__init__.py +0 -0
  303. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/__main__.py +0 -0
  304. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/commands_data.py +0 -0
  305. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/commands_reports.py +0 -0
  306. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/config.py +0 -0
  307. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
  308. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/inspect_log_output.py +0 -0
  309. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_compression.py +0 -0
  310. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_compression_router.py +0 -0
  311. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_compression_router_payloads.py +0 -0
  312. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_dashboard.py +0 -0
  313. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_discovery.py +0 -0
  314. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_dogfood.py +0 -0
  315. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_investigations.py +0 -0
  316. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_runtime.py +0 -0
  317. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/mcp_visualization.py +0 -0
  318. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/output.py +0 -0
  319. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/parser_data.py +0 -0
  320. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
  321. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/parser_lifecycle.py +0 -0
  322. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/parser_reports.py +0 -0
  323. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
  324. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/__init__.py +0 -0
  325. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/api.py +0 -0
  326. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/attribution.py +0 -0
  327. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/context_detectors.py +0 -0
  328. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/detector_protocol.py +0 -0
  329. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/detector_registry.py +0 -0
  330. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/estimators.py +0 -0
  331. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/evidence.py +0 -0
  332. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/identifiers.py +0 -0
  333. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/jobs.py +0 -0
  334. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/models.py +0 -0
  335. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/output_detectors.py +0 -0
  336. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/payloads.py +0 -0
  337. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/profile.py +0 -0
  338. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/repetition_detectors.py +0 -0
  339. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/request.py +0 -0
  340. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/run_builder.py +0 -0
  341. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/run_cache.py +0 -0
  342. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/simulation_api.py +0 -0
  343. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/simulation_payloads.py +0 -0
  344. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/simulator.py +0 -0
  345. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/compression/streaming_evidence.py +0 -0
  346. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/__init__.py +0 -0
  347. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/action_timing.py +0 -0
  348. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/api.py +0 -0
  349. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/constants.py +0 -0
  350. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/loader.py +0 -0
  351. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/reader.py +0 -0
  352. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/serialized.py +0 -0
  353. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/summaries.py +0 -0
  354. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/token_estimates.py +0 -0
  355. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/context/values.py +0 -0
  356. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/__init__.py +0 -0
  357. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/api_payloads.py +0 -0
  358. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/call_origin.py +0 -0
  359. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/command_parsing.py +0 -0
  360. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/formatting.py +0 -0
  361. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/i18n.py +0 -0
  362. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_cli.py +0 -0
  363. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
  364. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -0
  365. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_summary.py +0 -0
  366. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
  367. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contract_visualization.py +0 -0
  368. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/json_contracts.py +0 -0
  369. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/models.py +0 -0
  370. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/paths.py +0 -0
  371. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/projects.py +0 -0
  372. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/redaction.py +0 -0
  373. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/schema.py +0 -0
  374. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/threads.py +0 -0
  375. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/core/usage_identity.py +0 -0
  376. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
  377. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/dashboard/api.py +0 -0
  378. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/dashboard/assets.py +0 -0
  379. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/dashboard/cache_identity.py +0 -0
  380. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/dashboard/load_window.py +0 -0
  381. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
  382. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
  383. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
  384. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/api.py +0 -0
  385. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/dedupe.py +0 -0
  386. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/doctor_checks.py +0 -0
  387. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -0
  388. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
  389. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/guided_signals.py +0 -0
  390. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -0
  391. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
  392. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
  393. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
  394. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_analysis_payloads.py +0 -0
  395. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
  396. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
  397. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
  398. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_overview.py +0 -0
  399. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -0
  400. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_progress.py +0 -0
  401. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
  402. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
  403. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
  404. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
  405. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/snapshots.py +0 -0
  406. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/diagnostics/types.py +0 -0
  407. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/mcp_server.py +0 -0
  408. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/parser/__init__.py +0 -0
  409. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/parser/api.py +0 -0
  410. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/parser/jsonl_v1.py +0 -0
  411. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
  412. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/parser/state.py +0 -0
  413. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  414. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  415. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  416. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
  417. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  418. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  419. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  420. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  421. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
  422. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  423. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  424. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  425. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  426. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  427. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  428. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
  429. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  430. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  431. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  432. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  433. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  434. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  435. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  436. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  437. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  438. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  439. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  440. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
  441. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  442. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  443. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  444. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  445. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  446. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  447. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  448. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  449. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  450. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  451. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  452. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  453. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  454. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  455. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  456. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CallsPage.css +0 -0
  457. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CompressionLabPage.css +0 -0
  458. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/CoordinateSystem.js +0 -0
  459. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/DataDiffer.js +0 -0
  460. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreRoutePage.css +0 -0
  461. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ExploreWorkspaceSwitcher.js +0 -0
  462. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/InvestigatorPage.css +0 -0
  463. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/PageLoadProgress.css +0 -0
  464. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/PageLoadProgress.js +0 -0
  465. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/Primitives.css +0 -0
  466. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/ReportsPage.css +0 -0
  467. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/RoamController.js +0 -0
  468. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SeriesData.js +0 -0
  469. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SettingsPage.css +0 -0
  470. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/SymbolDraw.js +0 -0
  471. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellation.css +0 -0
  472. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellationCanvas.css +0 -0
  473. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/UsageConstellationCanvas.js +0 -0
  474. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/VisualMapping.js +0 -0
  475. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/accessibilityFeature.js +0 -0
  476. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/annotationFeature.js +0 -0
  477. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/cartesianAxisHelper.js +0 -0
  478. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -0
  479. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dataStackHelper.js +0 -0
  480. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/extension.js +0 -0
  481. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/filtering.js +0 -0
  482. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/gauge.js +0 -0
  483. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/grid.js +0 -0
  484. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -0
  485. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.js +0 -0
  486. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index2.js +0 -0
  487. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/infiniteQueryOptions.js +0 -0
  488. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/install.js +0 -0
  489. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/interactionFeature.js +0 -0
  490. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/legendFeature.js +0 -0
  491. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/listComponent.js +0 -0
  492. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/lock-keyhole.js +0 -0
  493. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/queryOptions.js +0 -0
  494. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/router.js +0 -0
  495. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/scaleRawExtentInfo.js +0 -0
  496. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/shield-check.js +0 -0
  497. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/sliderMove.js +0 -0
  498. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/threadSummaryAdapter.js +0 -0
  499. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/tooltipFeature.js +0 -0
  500. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/triangle-alert.js +0 -0
  501. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/useQuery.js +0 -0
  502. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/visualMapFeature.js +0 -0
  503. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/dashboard/react/index.html +0 -0
  504. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  505. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  506. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  507. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/docs/examples/remediation-conversation.md +0 -0
  508. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/docs/examples/token-waste-conversation.md +0 -0
  509. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  510. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/plugin_installer.py +0 -0
  511. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/__init__.py +0 -0
  512. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/allowance.py +0 -0
  513. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
  514. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
  515. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
  516. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
  517. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/api.py +0 -0
  518. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/pricing/estimates.py +0 -0
  519. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/recommendation_engine/__init__.py +0 -0
  520. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/recommendation_engine/api.py +0 -0
  521. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/recommendation_engine/fact_config.py +0 -0
  522. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/recommendation_engine/materialization.py +0 -0
  523. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/recommendation_engine/query.py +0 -0
  524. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/recommendation_engine/summary_materialization.py +0 -0
  525. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/__init__.py +0 -0
  526. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/action_brief.py +0 -0
  527. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/agentic.py +0 -0
  528. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/agentic_dogfood.py +0 -0
  529. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/agentic_dogfood_markdown.py +0 -0
  530. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/agentic_evidence.py +0 -0
  531. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/agentic_strategy.py +0 -0
  532. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/api.py +0 -0
  533. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/discovery.py +0 -0
  534. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/filters.py +0 -0
  535. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/hypothesis_classification.py +0 -0
  536. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/hypothesis_evaluators.py +0 -0
  537. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/hypothesis_limit_evaluators.py +0 -0
  538. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/hypothesis_results.py +0 -0
  539. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/investigation_walk.py +0 -0
  540. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/project_summary.py +0 -0
  541. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/query.py +0 -0
  542. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
  543. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/recommendations.py +0 -0
  544. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/support.py +0 -0
  545. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/visualization.py +0 -0
  546. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/reports/visualization_support.py +0 -0
  547. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/__init__.py +0 -0
  548. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/call_detail.py +0 -0
  549. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/call_lists.py +0 -0
  550. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/compression_routes.py +0 -0
  551. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/context.py +0 -0
  552. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/context_settings.py +0 -0
  553. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/dashboard_pages.py +0 -0
  554. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
  555. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/dedupe.py +0 -0
  556. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
  557. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/diagnostic_jobs.py +0 -0
  558. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/diagnostic_routes.py +0 -0
  559. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
  560. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/investigations.py +0 -0
  561. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/live_queries.py +0 -0
  562. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/live_rows.py +0 -0
  563. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/open_investigator.py +0 -0
  564. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/query_cache.py +0 -0
  565. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/recommendations.py +0 -0
  566. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/reports.py +0 -0
  567. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/request_guards.py +0 -0
  568. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/request_timing.py +0 -0
  569. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/route_profile.py +0 -0
  570. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/status.py +0 -0
  571. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/summary.py +0 -0
  572. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/threads.py +0 -0
  573. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/usage_refresh.py +0 -0
  574. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/server/utils.py +0 -0
  575. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/__init__.py +0 -0
  576. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_candidate_metadata.py +0 -0
  577. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_candidates.py +0 -0
  578. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_capacities.py +0 -0
  579. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_evidence.py +0 -0
  580. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_fact_contract.py +0 -0
  581. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_fact_ingest.py +0 -0
  582. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_fact_manifest.py +0 -0
  583. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_fact_queries.py +0 -0
  584. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_fact_rows.py +0 -0
  585. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_fact_sync.py +0 -0
  586. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_facts.py +0 -0
  587. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_publication.py +0 -0
  588. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_revisions.py +0 -0
  589. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_runs.py +0 -0
  590. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/compression_schema.py +0 -0
  591. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/connection.py +0 -0
  592. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_excerpts.py +0 -0
  593. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_extract.py +0 -0
  594. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index.py +0 -0
  595. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_bulk.py +0 -0
  596. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_event_store.py +0 -0
  597. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_events.py +0 -0
  598. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_models.py +0 -0
  599. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_parallel.py +0 -0
  600. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_source.py +0 -0
  601. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_index_stream.py +0 -0
  602. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_patterns.py +0 -0
  603. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_persistence.py +0 -0
  604. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_provenance.py +0 -0
  605. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_query.py +0 -0
  606. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_rows.py +0 -0
  607. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_search.py +0 -0
  608. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/content_trace.py +0 -0
  609. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
  610. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/dedupe_queries.py +0 -0
  611. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/deduplication.py +0 -0
  612. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/diagnostic_api.py +0 -0
  613. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
  614. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
  615. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/exports.py +0 -0
  616. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/investigation_runs.py +0 -0
  617. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/large_low_output.py +0 -0
  618. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/query_sql.py +0 -0
  619. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/query_values.py +0 -0
  620. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/recommendation_queries.py +0 -0
  621. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/recommendation_schema.py +0 -0
  622. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/refresh.py +0 -0
  623. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/refresh_callbacks.py +0 -0
  624. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/refresh_parse.py +0 -0
  625. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/refresh_stream.py +0 -0
  626. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/repeated_files.py +0 -0
  627. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/rows.py +0 -0
  628. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/schema_query_indexes.py +0 -0
  629. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/shell_churn.py +0 -0
  630. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/source_records.py +0 -0
  631. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/source_replacement.py +0 -0
  632. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/sources.py +0 -0
  633. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/summary_queries.py +0 -0
  634. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
  635. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
  636. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
  637. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/store/usage_timing.py +0 -0
  638. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/support.py +0 -0
  639. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
  640. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
  641. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
  642. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
  643. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
  644. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
  645. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
  646. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
  647. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
  648. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
  649. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
  650. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
  651. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
  652. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/features.py +0 -0
  653. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
  654. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
  655. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/model.py +0 -0
  656. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
  657. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
  658. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
  659. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
  660. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
  661. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
  662. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
  663. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
  664. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
  665. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
  666. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
  667. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
  668. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
  669. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
  670. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
  671. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
  672. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/types.py +0 -0
  673. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
  674. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
  675. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
  676. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  677. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  678. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
  679. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  680. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/__init__.py +0 -0
  681. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/allowance_intelligence/test_allowance_intelligence.py +0 -0
  682. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_benchmarks.py +0 -0
  683. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_dashboard.py +0 -0
  684. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_inspect_log_output.py +0 -0
  685. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_lifecycle.py +0 -0
  686. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_module_entrypoints.py +0 -0
  687. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_cli_parser_diagnostics.py +0 -0
  688. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_commands_reports.py +0 -0
  689. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_dashboard_route_benchmark.py +0 -0
  690. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_compression.py +0 -0
  691. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_compression_router.py +0 -0
  692. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_dedupe.py +0 -0
  693. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_integration.py +0 -0
  694. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_launcher.py +0 -0
  695. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_runtime_compatibility.py +0 -0
  696. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_simulation.py +0 -0
  697. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_mcp_visualization.py +0 -0
  698. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/cli/test_plugin_installer.py +0 -0
  699. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/compression_helpers.py +0 -0
  700. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_attribution.py +0 -0
  701. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_context_detectors.py +0 -0
  702. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_estimators.py +0 -0
  703. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_jobs.py +0 -0
  704. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_models.py +0 -0
  705. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_output_detectors.py +0 -0
  706. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_repetition_detectors.py +0 -0
  707. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_run_builder.py +0 -0
  708. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_simulator.py +0 -0
  709. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/compression/test_streaming_evidence.py +0 -0
  710. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_action_timing.py +0 -0
  711. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_evidence.py +0 -0
  712. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_scan.py +0 -0
  713. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_serialized.py +0 -0
  714. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_source_scan.py +0 -0
  715. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_summaries.py +0 -0
  716. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_token_estimates.py +0 -0
  717. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/context/test_context_values.py +0 -0
  718. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_call_origin.py +0 -0
  719. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_command_parsing.py +0 -0
  720. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_formatting.py +0 -0
  721. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_i18n.py +0 -0
  722. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_privacy.py +0 -0
  723. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_projects.py +0 -0
  724. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_redaction.py +0 -0
  725. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_schema.py +0 -0
  726. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_threads.py +0 -0
  727. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/core/test_usage_identity.py +0 -0
  728. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/dashboard_node_test_helpers.py +0 -0
  729. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_compression_server.py +0 -0
  730. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_data.py +0 -0
  731. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
  732. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_live.py +0 -0
  733. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_payload.py +0 -0
  734. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_payload_privacy.py +0 -0
  735. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
  736. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_server.py +0 -0
  737. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_server_live_slices.py +0 -0
  738. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_state.py +0 -0
  739. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/dashboard/test_dashboard_status.py +0 -0
  740. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
  741. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_reports.py +0 -0
  742. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -0
  743. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_snapshot_progress.py +0 -0
  744. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
  745. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
  746. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_diagnostic_snapshots.py +0 -0
  747. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_doctor_first_run.py +0 -0
  748. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/diagnostics/test_module_exports.py +0 -0
  749. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/parser/test_parser.py +0 -0
  750. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/parser/test_parser_deduplication.py +0 -0
  751. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/parser/test_parser_inspect_log.py +0 -0
  752. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/parser/test_parser_observer.py +0 -0
  753. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/parser/test_parser_state.py +0 -0
  754. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/pricing/test_allowance.py +0 -0
  755. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/quality/test_static_analysis_policy.py +0 -0
  756. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_action_brief.py +0 -0
  757. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_action_brief_exports.py +0 -0
  758. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_agentic_dogfood.py +0 -0
  759. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_agentic_evidence.py +0 -0
  760. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_agentic_exports.py +0 -0
  761. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_discovery_exports.py +0 -0
  762. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_hypothesis_classification.py +0 -0
  763. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_hypothesis_evaluator_exports.py +0 -0
  764. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_hypothesis_routing.py +0 -0
  765. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_indexed_recommendations.py +0 -0
  766. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_investigation_walk_exports.py +0 -0
  767. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_query_exports.py +0 -0
  768. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_recommendations.py +0 -0
  769. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_support.py +0 -0
  770. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/reports/test_visualization.py +0 -0
  771. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_compression_routes.py +0 -0
  772. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_diagnostic_jobs.py +0 -0
  773. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_query_cache.py +0 -0
  774. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_refresh_jobs.py +0 -0
  775. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_refresh_routes.py +0 -0
  776. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_request_timing.py +0 -0
  777. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_route_inventory.py +0 -0
  778. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_call_detail.py +0 -0
  779. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_call_lists.py +0 -0
  780. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_context.py +0 -0
  781. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_context_settings.py +0 -0
  782. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_dashboard_shell.py +0 -0
  783. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_dedupe.py +0 -0
  784. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_diagnostic_facts.py +0 -0
  785. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
  786. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_diagnostic_snapshots.py +0 -0
  787. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_investigations.py +0 -0
  788. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_live_queries.py +0 -0
  789. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_live_rows.py +0 -0
  790. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_open_investigator.py +0 -0
  791. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_recommendations.py +0 -0
  792. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_request_guards.py +0 -0
  793. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_responses.py +0 -0
  794. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_status.py +0 -0
  795. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_summary.py +0 -0
  796. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_threads.py +0 -0
  797. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/server/test_server_usage_refresh.py +0 -0
  798. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_compression_evidence.py +0 -0
  799. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_compression_facts.py +0 -0
  800. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_compression_publication.py +0 -0
  801. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_compression_revisions.py +0 -0
  802. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_content_index.py +0 -0
  803. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_content_index_refresh.py +0 -0
  804. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_content_query_exports.py +0 -0
  805. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_recommendation_facts.py +0 -0
  806. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_recommendation_queries.py +0 -0
  807. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_refresh_callbacks.py +0 -0
  808. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_refresh_parallel.py +0 -0
  809. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_source_records.py +0 -0
  810. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_store_dashboard_queries.py +0 -0
  811. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_store_large_batches.py +0 -0
  812. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_store_query_sql.py +0 -0
  813. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store/test_store_sources.py +0 -0
  814. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/store_dashboard_helpers.py +0 -0
  815. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/test_check_dashboard_source_budgets.py +0 -0
  816. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/model_test_helpers.py +0 -0
  817. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
  818. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
  819. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
  820. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
  821. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
  822. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
  823. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_model.py +0 -0
  824. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
  825. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
  826. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
  827. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_regression.py +0 -0
  828. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_report_helpers.py +0 -0
  829. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
  830. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_reports.py +0 -0
  831. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
  832. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
  833. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
  834. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
  835. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
  836. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
  837. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.0}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
  838. {codex_usage_tracking-0.18.0 → codex_usage_tracking-0.20.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.20.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,22 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.20.0 - 2026-07-16
6
+
7
+ - Reinvent the Threads tab around inline row expansion, progressively loading and virtualizing every call in the selected thread while preserving explicit investigator actions, deep links, responsive layouts, retry recovery, and aggregate-first privacy boundaries.
8
+ - Complete the Simplified Chinese dashboard experience across React views, visualization metadata, tables, accessibility text, CLI help, and dashboard lifecycle messages while preserving user-provided data verbatim.
9
+ - Improve the Overview token-flow chart at constrained desktop widths with a taller single-column layout, larger Sankey node gaps, and label-safe padding; keep virtualized evidence-table actions on one row.
10
+ - Apply official long-context input, cached-input, and output price multipliers to concrete calls above 272K input tokens when the selected OpenAI service tier publishes long-context rates, while keeping aggregate summaries from being incorrectly thresholded.
11
+
12
+ ## 0.19.0 - 2026-07-15
13
+
14
+ - Redesign Limits Intelligence around weekly credits-per-percentage capacity
15
+ history, a compact current-status row, automatic revision analysis, and zero,
16
+ one, or multiple family-wise-controlled capacity changes. Rejected split
17
+ statistics stay hidden, five-hour usage remains observed context, and the v2
18
+ API/MCP contracts expose capacity points, regimes, provenance, and copied-row
19
+ diagnostics by default.
20
+
5
21
  ## 0.18.0 - 2026-07-15
6
22
 
7
23
  - 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.20.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
@@ -237,12 +237,12 @@ The tracker cannot read your logged-in ChatGPT plan or live remaining usage auto
237
237
 
238
238
  - Local SQLite index at `~/.codex-usage-tracker/usage.sqlite3`.
239
239
  - Static dashboard generation plus localhost live refresh.
240
- - `Overview`, `Investigate`, `Calls`, `Threads`, `Limits`, and `Diagnostics` dashboard views, including evidence-graded weekly allowance analysis and on-demand usage-drain report runs.
240
+ - `Overview`, `Investigate`, `Calls`, `Threads`, `Limits`, and `Diagnostics` dashboard views, including responsive token-flow visualization, evidence-graded weekly allowance analysis, and on-demand usage-drain report runs.
241
241
  - Active-only dashboards by default, with an explicit `All history` toggle for archived sessions.
242
242
  - CLI summaries, queries, CSV export, dashboard generation, doctor checks, and support bundles.
243
243
  - MCP tools for Codex sessions that want to query local usage data.
244
244
  - Companion Codex skills for operational setup and conversational usage analysis.
245
- - Optional local pricing, Codex credit, allowance, threshold, project alias, and privacy-mode configuration.
245
+ - Optional local pricing, Codex credit, allowance, threshold, project alias, and privacy-mode configuration, including per-call long-context pricing above 272K input tokens for OpenAI service tiers that publish long-context rates.
246
246
 
247
247
  ## Dashboard Language
248
248
 
@@ -262,7 +262,7 @@ CODEX_USAGE_TRACKER_LANG=vi codex-usage-tracker serve-dashboard --open
262
262
 
263
263
  The dashboard also includes a language selector. Browser selections are stored locally and can override the generated default for that browser.
264
264
 
265
- Supported dashboard locales include English, Vietnamese, Spanish, French, German, Portuguese, Japanese, Simplified Chinese, Korean, Russian, Italian, and Arabic. This localizes dashboard UI text, not raw Codex log content, thread names, project names, paths, full CLI output, or data exports.
265
+ Supported dashboard locales include English, Vietnamese, Spanish, French, German, Portuguese, Japanese, Simplified Chinese, Korean, Russian, Italian, and Arabic. Simplified Chinese also localizes CLI help and dashboard lifecycle messages. Localization never rewrites raw Codex log content, thread names, project names, paths, or data exports.
266
266
 
267
267
  ### Adding A Dashboard Language
268
268
 
@@ -189,12 +189,12 @@ The tracker cannot read your logged-in ChatGPT plan or live remaining usage auto
189
189
 
190
190
  - Local SQLite index at `~/.codex-usage-tracker/usage.sqlite3`.
191
191
  - Static dashboard generation plus localhost live refresh.
192
- - `Overview`, `Investigate`, `Calls`, `Threads`, `Limits`, and `Diagnostics` dashboard views, including evidence-graded weekly allowance analysis and on-demand usage-drain report runs.
192
+ - `Overview`, `Investigate`, `Calls`, `Threads`, `Limits`, and `Diagnostics` dashboard views, including responsive token-flow visualization, evidence-graded weekly allowance analysis, and on-demand usage-drain report runs.
193
193
  - Active-only dashboards by default, with an explicit `All history` toggle for archived sessions.
194
194
  - CLI summaries, queries, CSV export, dashboard generation, doctor checks, and support bundles.
195
195
  - MCP tools for Codex sessions that want to query local usage data.
196
196
  - Companion Codex skills for operational setup and conversational usage analysis.
197
- - Optional local pricing, Codex credit, allowance, threshold, project alias, and privacy-mode configuration.
197
+ - Optional local pricing, Codex credit, allowance, threshold, project alias, and privacy-mode configuration, including per-call long-context pricing above 272K input tokens for OpenAI service tiers that publish long-context rates.
198
198
 
199
199
  ## Dashboard Language
200
200
 
@@ -214,7 +214,7 @@ CODEX_USAGE_TRACKER_LANG=vi codex-usage-tracker serve-dashboard --open
214
214
 
215
215
  The dashboard also includes a language selector. Browser selections are stored locally and can override the generated default for that browser.
216
216
 
217
- Supported dashboard locales include English, Vietnamese, Spanish, French, German, Portuguese, Japanese, Simplified Chinese, Korean, Russian, Italian, and Arabic. This localizes dashboard UI text, not raw Codex log content, thread names, project names, paths, full CLI output, or data exports.
217
+ Supported dashboard locales include English, Vietnamese, Spanish, French, German, Portuguese, Japanese, Simplified Chinese, Korean, Russian, Italian, and Arabic. Simplified Chinese also localizes CLI help and dashboard lifecycle messages. Localization never rewrites raw Codex log content, thread names, project names, paths, or data exports.
218
218
 
219
219
  ### Adding A Dashboard Language
220
220
 
@@ -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