codex-usage-tracking 0.16.0__tar.gz → 0.17.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 (450) hide show
  1. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/.codex-plugin/plugin.json +7 -6
  2. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/CHANGELOG.md +22 -0
  3. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/PKG-INFO +2 -2
  4. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/README.md +1 -1
  5. codex_usage_tracking-0.17.0/docs/agentic-briefing-and-dogfood-roadmap.md +187 -0
  6. codex_usage_tracking-0.17.0/docs/agentic-investigation-hardening-roadmap.md +159 -0
  7. codex_usage_tracking-0.17.0/docs/agentic-mcp-skill-roadmap.md +105 -0
  8. codex_usage_tracking-0.17.0/docs/assets/readme-hero-2.png +0 -0
  9. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/cli-json-schemas.md +125 -2
  10. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/cli-reference.md +3 -0
  11. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/development.md +2 -2
  12. {codex_usage_tracking-0.16.0/src/codex_usage_tracker/plugin_data → codex_usage_tracking-0.17.0}/docs/examples/remediation-conversation.md +7 -7
  13. {codex_usage_tracking-0.16.0/src/codex_usage_tracker/plugin_data → codex_usage_tracking-0.17.0}/docs/examples/token-waste-conversation.md +6 -5
  14. codex_usage_tracking-0.17.0/docs/mcp.md +152 -0
  15. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/one-dot-oh-readiness.md +8 -8
  16. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/pyproject.toml +1 -1
  17. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/smoke_installed_package.py +1 -0
  18. codex_usage_tracking-0.17.0/skills/codex-usage-api/SKILL.md +69 -0
  19. {codex_usage_tracking-0.16.0/src/codex_usage_tracker/plugin_data → codex_usage_tracking-0.17.0}/skills/codex-usage-tracker/SKILL.md +27 -0
  20. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
  21. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/__init__.py +1 -1
  22. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/allowance_intelligence/model.py +2 -0
  23. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/main.py +61 -0
  24. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/mcp_server.py +634 -0
  25. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/parser.py +63 -0
  26. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/plugin_installer.py +8 -8
  27. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/json_contract_cli.py +162 -0
  28. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/json_contract_server.py +9 -1
  29. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/dashboard/api.py +1 -0
  30. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +34 -2
  31. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_events.py +63 -1
  32. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/parser/jsonl_v1.py +4 -0
  33. codex_usage_tracking-0.17.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +276 -0
  34. codex_usage_tracking-0.17.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +1 -0
  35. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0/src/codex_usage_tracker/plugin_data}/docs/examples/remediation-conversation.md +7 -7
  36. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0/src/codex_usage_tracker/plugin_data}/docs/examples/token-waste-conversation.md +6 -5
  37. codex_usage_tracking-0.17.0/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +69 -0
  38. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0/src/codex_usage_tracker/plugin_data}/skills/codex-usage-tracker/SKILL.md +27 -0
  39. codex_usage_tracking-0.17.0/src/codex_usage_tracker/reports/agentic_dogfood.py +811 -0
  40. codex_usage_tracking-0.17.0/src/codex_usage_tracker/reports/api.py +3006 -0
  41. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/api.py +3 -0
  42. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/handler.py +24 -0
  43. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/recommendations.py +1 -0
  44. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/routes.py +2 -0
  45. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/usage_refresh.py +176 -0
  46. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/api.py +99 -5
  47. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/content_index.py +559 -40
  48. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/content_index_event_store.py +53 -16
  49. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/content_index_events.py +18 -16
  50. codex_usage_tracking-0.17.0/src/codex_usage_tracker/store/large_low_output.py +255 -0
  51. codex_usage_tracking-0.17.0/src/codex_usage_tracker/store/refresh.py +487 -0
  52. codex_usage_tracking-0.17.0/src/codex_usage_tracker/store/repeated_files.py +284 -0
  53. codex_usage_tracking-0.17.0/src/codex_usage_tracker/store/shell_churn.py +441 -0
  54. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/sources.py +19 -3
  55. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracking.egg-info/PKG-INFO +2 -2
  56. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracking.egg-info/SOURCES.txt +14 -0
  57. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_cli_lifecycle.py +75 -0
  58. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_cli_release.py +14 -1
  59. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_mcp_integration.py +286 -0
  60. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_plugin_installer.py +2 -2
  61. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_diagnostic_fact_classifiers.py +37 -0
  62. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_diagnostic_snapshot_events.py +26 -1
  63. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_diagnostic_snapshots.py +2 -2
  64. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/parser/test_parser.py +1 -1
  65. codex_usage_tracking-0.17.0/tests/reports/test_action_brief.py +55 -0
  66. codex_usage_tracking-0.17.0/tests/reports/test_agentic_dogfood.py +52 -0
  67. codex_usage_tracking-0.17.0/tests/reports/test_hypothesis_routing.py +54 -0
  68. codex_usage_tracking-0.17.0/tests/server/test_refresh_jobs.py +44 -0
  69. codex_usage_tracking-0.17.0/tests/server/test_refresh_routes.py +8 -0
  70. codex_usage_tracking-0.17.0/tests/store/test_content_index.py +838 -0
  71. codex_usage_tracking-0.17.0/tests/store/test_refresh_parallel.py +128 -0
  72. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_source_records.py +48 -0
  73. codex_usage_tracking-0.16.0/docs/mcp.md +0 -144
  74. codex_usage_tracking-0.16.0/skills/codex-usage-api/SKILL.md +0 -106
  75. codex_usage_tracking-0.16.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -276
  76. codex_usage_tracking-0.16.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -1
  77. codex_usage_tracking-0.16.0/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -106
  78. codex_usage_tracking-0.16.0/src/codex_usage_tracker/reports/api.py +0 -1050
  79. codex_usage_tracking-0.16.0/src/codex_usage_tracker/store/refresh.py +0 -136
  80. codex_usage_tracking-0.16.0/tests/store/test_content_index.py +0 -309
  81. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/.mcp.json +0 -0
  82. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/AGENTS.md +0 -0
  83. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/CONTRIBUTING.md +0 -0
  84. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/LICENSE +0 -0
  85. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/MANIFEST.in +0 -0
  86. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/SECURITY.md +0 -0
  87. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/assets/icon.svg +0 -0
  88. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/adoption-hardening-roadmap.md +0 -0
  89. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/allowance-intelligence.md +0 -0
  90. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
  91. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/architecture-boundary-map.md +0 -0
  92. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/architecture.md +0 -0
  93. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  94. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-call-investigator-preview.png +0 -0
  95. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-call-investigator.png +0 -0
  96. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-calls-preview.png +0 -0
  97. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-calls.png +0 -0
  98. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-details.png +0 -0
  99. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  100. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-diagnostics.png +0 -0
  101. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-insights.png +0 -0
  102. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/dashboard-threads.png +0 -0
  103. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
  104. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
  105. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
  106. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
  107. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
  108. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
  109. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
  110. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
  111. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
  112. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
  113. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
  114. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
  115. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
  116. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/plugin-prompts.png +0 -0
  117. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/plugin-thread-leaderboard.png +0 -0
  118. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/readme-hero.png +0 -0
  119. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/social-preview.png +0 -0
  120. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/ux/call-detail-panel.png +0 -0
  121. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/ux/insight-overview.png +0 -0
  122. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/assets/ux/thread-investigation.png +0 -0
  123. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/call-drilldown-performance-checklist.md +0 -0
  124. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/dashboard-guide.md +0 -0
  125. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/first-five-minutes.md +0 -0
  126. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/frontend-rewrite-roadmap.md +0 -0
  127. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/install.md +0 -0
  128. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/local-content-index-roadmap.md +0 -0
  129. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/maintainability-roadmap.md +0 -0
  130. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/maintainability-scorecard.md +0 -0
  131. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/pricing-and-credits.md +0 -0
  132. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/privacy.md +0 -0
  133. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
  134. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/ui-ux-improvement-plan.md +0 -0
  135. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/docs/usage-drain-modeling.md +0 -0
  136. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/benchmark_synthetic_history.py +0 -0
  137. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/check_release.py +0 -0
  138. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/check_wemake_baseline.py +0 -0
  139. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/generate_social_preview.py +0 -0
  140. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/install_local_plugin.py +0 -0
  141. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/scripts/model_usage_drain.py +0 -0
  142. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/setup.cfg +0 -0
  143. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/__main__.py +0 -0
  144. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/allowance.py +0 -0
  145. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/allowance_intelligence/__init__.py +0 -0
  146. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/allowance_intelligence/reports.py +0 -0
  147. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/__init__.py +0 -0
  148. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/__main__.py +0 -0
  149. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/config.py +0 -0
  150. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/dashboard.py +0 -0
  151. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
  152. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/output.py +0 -0
  153. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
  154. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/__init__.py +0 -0
  155. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/action_timing.py +0 -0
  156. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/api.py +0 -0
  157. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/constants.py +0 -0
  158. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/loader.py +0 -0
  159. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/reader.py +0 -0
  160. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/serialized.py +0 -0
  161. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/summaries.py +0 -0
  162. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/token_estimates.py +0 -0
  163. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/context/values.py +0 -0
  164. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/__init__.py +0 -0
  165. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/api_payloads.py +0 -0
  166. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/call_origin.py +0 -0
  167. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/formatting.py +0 -0
  168. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/i18n.py +0 -0
  169. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
  170. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -0
  171. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
  172. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/json_contracts.py +0 -0
  173. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/models.py +0 -0
  174. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/paths.py +0 -0
  175. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/projects.py +0 -0
  176. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/redaction.py +0 -0
  177. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/schema.py +0 -0
  178. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/core/threads.py +0 -0
  179. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
  180. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/dashboard/assets.py +0 -0
  181. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
  182. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
  183. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
  184. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/api.py +0 -0
  185. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
  186. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -0
  187. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
  188. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
  189. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
  190. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
  191. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
  192. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -0
  193. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
  194. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
  195. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
  196. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
  197. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/snapshots.py +0 -0
  198. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/diagnostics/types.py +0 -0
  199. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/mcp_server.py +0 -0
  200. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/parser/__init__.py +0 -0
  201. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/parser/api.py +0 -0
  202. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
  203. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/parser/state.py +0 -0
  204. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
  205. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
  206. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
  207. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
  208. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
  209. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
  210. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
  211. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
  212. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
  213. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
  214. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
  215. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
  216. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
  217. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
  218. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
  219. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
  220. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
  221. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
  222. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
  223. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
  224. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
  225. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
  226. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
  227. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
  228. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
  229. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
  230. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
  231. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
  232. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
  233. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
  234. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
  235. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
  236. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
  237. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
  238. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
  239. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
  240. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
  241. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
  242. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
  243. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
  244. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
  245. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
  246. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
  247. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
  248. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/dashboard/react/index.html +0 -0
  249. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
  250. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
  251. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
  252. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
  253. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
  254. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
  255. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
  256. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
  257. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
  258. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
  259. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
  260. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
  261. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
  262. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
  263. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/plugin_installer.py +0 -0
  264. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/__init__.py +0 -0
  265. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/allowance.py +0 -0
  266. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
  267. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
  268. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
  269. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
  270. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/api.py +0 -0
  271. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/config.py +0 -0
  272. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/costing.py +0 -0
  273. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/estimates.py +0 -0
  274. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/pricing/openai.py +0 -0
  275. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/reports/__init__.py +0 -0
  276. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/reports/filters.py +0 -0
  277. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/reports/project_summary.py +0 -0
  278. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
  279. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/reports/recommendations.py +0 -0
  280. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/reports/support.py +0 -0
  281. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/__init__.py +0 -0
  282. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/allowance.py +0 -0
  283. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/call_detail.py +0 -0
  284. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/call_lists.py +0 -0
  285. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/context.py +0 -0
  286. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/context_settings.py +0 -0
  287. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
  288. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
  289. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/diagnostic_routes.py +0 -0
  290. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
  291. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/live_queries.py +0 -0
  292. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/live_rows.py +0 -0
  293. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/open_investigator.py +0 -0
  294. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/reports.py +0 -0
  295. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/request_guards.py +0 -0
  296. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/responses.py +0 -0
  297. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/status.py +0 -0
  298. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/summary.py +0 -0
  299. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/threads.py +0 -0
  300. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/server/utils.py +0 -0
  301. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/__init__.py +0 -0
  302. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/allowance_observations.py +0 -0
  303. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/connection.py +0 -0
  304. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/content_patterns.py +0 -0
  305. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
  306. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
  307. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
  308. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/exports.py +0 -0
  309. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/investigation_runs.py +0 -0
  310. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/query_sql.py +0 -0
  311. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/rows.py +0 -0
  312. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/schema.py +0 -0
  313. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/source_records.py +0 -0
  314. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/summary_queries.py +0 -0
  315. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
  316. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
  317. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
  318. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/store/usage_timing.py +0 -0
  319. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/support.py +0 -0
  320. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
  321. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
  322. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
  323. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
  324. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
  325. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
  326. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
  327. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
  328. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
  329. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
  330. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
  331. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
  332. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
  333. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/features.py +0 -0
  334. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
  335. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
  336. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/model.py +0 -0
  337. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
  338. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
  339. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
  340. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
  341. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
  342. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
  343. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
  344. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
  345. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
  346. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
  347. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
  348. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
  349. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
  350. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
  351. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
  352. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
  353. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/types.py +0 -0
  354. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
  355. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
  356. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
  357. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
  358. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
  359. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
  360. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
  361. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/__init__.py +0 -0
  362. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/allowance_intelligence/test_allowance_intelligence.py +0 -0
  363. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_allowance_intelligence_cli_mcp.py +0 -0
  364. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_cli_dashboard.py +0 -0
  365. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_cli_module_entrypoints.py +0 -0
  366. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_cli_parser_diagnostics.py +0 -0
  367. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/cli/test_mcp_launcher.py +0 -0
  368. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_action_timing.py +0 -0
  369. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_evidence.py +0 -0
  370. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_scan.py +0 -0
  371. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_serialized.py +0 -0
  372. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_summaries.py +0 -0
  373. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_token_estimates.py +0 -0
  374. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/context/test_context_values.py +0 -0
  375. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_call_origin.py +0 -0
  376. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_formatting.py +0 -0
  377. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_i18n.py +0 -0
  378. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_json_contracts.py +0 -0
  379. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_privacy.py +0 -0
  380. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_projects.py +0 -0
  381. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_redaction.py +0 -0
  382. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_schema.py +0 -0
  383. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/core/test_threads.py +0 -0
  384. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_data.py +0 -0
  385. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
  386. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_live.py +0 -0
  387. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_payload.py +0 -0
  388. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
  389. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_server.py +0 -0
  390. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_state.py +0 -0
  391. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/dashboard/test_dashboard_status.py +0 -0
  392. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_diagnostic_reports.py +0 -0
  393. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
  394. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
  395. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/diagnostics/test_doctor_first_run.py +0 -0
  396. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/parser/test_parser_inspect_log.py +0 -0
  397. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/parser/test_parser_state.py +0 -0
  398. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/pricing/test_allowance.py +0 -0
  399. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/pricing/test_pricing.py +0 -0
  400. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/reports/test_recommendations.py +0 -0
  401. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/reports/test_support.py +0 -0
  402. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_allowance.py +0 -0
  403. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_api.py +0 -0
  404. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_call_detail.py +0 -0
  405. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_call_lists.py +0 -0
  406. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_context.py +0 -0
  407. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_context_settings.py +0 -0
  408. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_dashboard_shell.py +0 -0
  409. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_diagnostic_facts.py +0 -0
  410. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
  411. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_diagnostic_snapshots.py +0 -0
  412. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_live_queries.py +0 -0
  413. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_live_rows.py +0 -0
  414. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_open_investigator.py +0 -0
  415. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_recommendations.py +0 -0
  416. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_request_guards.py +0 -0
  417. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_responses.py +0 -0
  418. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_routes.py +0 -0
  419. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_status.py +0 -0
  420. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_summary.py +0 -0
  421. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_threads.py +0 -0
  422. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/server/test_server_usage_refresh.py +0 -0
  423. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_store_dashboard_mcp.py +0 -0
  424. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_store_dashboard_queries.py +0 -0
  425. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_store_large_batches.py +0 -0
  426. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_store_migrations.py +0 -0
  427. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_store_query_sql.py +0 -0
  428. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store/test_store_sources.py +0 -0
  429. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/store_dashboard_helpers.py +0 -0
  430. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
  431. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
  432. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
  433. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
  434. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
  435. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
  436. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_model.py +0 -0
  437. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
  438. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
  439. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
  440. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_regression.py +0 -0
  441. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
  442. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_reports.py +0 -0
  443. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
  444. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
  445. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
  446. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
  447. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
  448. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
  449. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
  450. {codex_usage_tracking-0.16.0 → codex_usage_tracking-0.17.0}/tests/usage_drain/test_usage_drain_walk_forward.py +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "codex-usage-tracker",
3
- "version": "0.16.0",
4
- "description": "Unofficial local tracker for aggregate Codex token usage from local session logs.",
3
+ "version": "0.17.0",
4
+ "description": "Unofficial local Codex usage dashboard and MCP diagnostics from local session logs.",
5
5
  "author": {
6
6
  "name": "Douglas Monsky"
7
7
  },
@@ -19,8 +19,8 @@
19
19
  "mcpServers": "./.mcp.json",
20
20
  "interface": {
21
21
  "displayName": "Codex Usage Tracker",
22
- "shortDescription": "Unofficial local aggregate token usage analytics for Codex",
23
- "longDescription": "Unofficial independent project, not made by, affiliated with, endorsed by, sponsored by, or supported by OpenAI. Reads local Codex session logs, aggregates exact token usage counters, and generates summaries, CSV exports, and a hoverable dashboard with optional localhost-only raw context loading.",
22
+ "shortDescription": "Local Codex usage dashboard, MCP diagnostics, and token-waste investigations",
23
+ "longDescription": "Unofficial independent project, not made by, affiliated with, endorsed by, sponsored by, or supported by OpenAI. Reads local Codex session logs to power a local dashboard, MCP tools, allowance diagnostics, token-waste investigations, and shareable aggregate reports without uploading logs.",
24
24
  "developerName": "Douglas Monsky",
25
25
  "category": "Productivity",
26
26
  "capabilities": [
@@ -33,8 +33,9 @@
33
33
  "termsOfServiceURL": "https://github.com/douglasmonsky/codex-usage-tracker",
34
34
  "defaultPrompt": [
35
35
  "Open dashboard",
36
- "Heaviest thread?",
37
- "Thread leaderboard"
36
+ "Look through my usage for token waste",
37
+ "Suggest usage investigations",
38
+ "Check whether my weekly allowance changed"
38
39
  ],
39
40
  "brandColor": "#2563EB",
40
41
  "composerIcon": "./assets/icon.svg",
@@ -2,6 +2,28 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.17.0 - 2026-07-08
6
+
7
+ - Add agentic MCP investigation tools for hypothesis-driven usage diagnostics, compact evidence briefs, and actionable recommendation reports.
8
+ - Add repeated file rediscovery, shell churn, and large low-output usage diagnostics to identify avoidable local workflow waste.
9
+ - Improve bundled skill guidance so Codex can route vague usage questions into concrete tracker endpoints, Headroom suggestions, and custom remediation ideas.
10
+ - Add async dogfood progress polling and warm result caching so longer usage investigations can report progress and rerun faster.
11
+ - Speed up content indexing with incremental append metadata, parallel source parsing, and batched FTS rebuilds.
12
+ - Add dashboard refresh progress bars, no-cap paged loading, loaded-call metrics, token breakdowns, persisted loading preferences, and restored usage-drain chart data.
13
+
14
+ ## 0.16.2 - 2026-07-08
15
+
16
+ - Restore Usage Drain, Investigator Workbench, Reports, and related dashboard charts by deriving shared usage-drain series from loaded aggregate rows again.
17
+ - Keep sparse line charts expanded to their panel width so low-point datasets do not collapse into the left edge.
18
+
19
+ ## 0.16.1 - 2026-07-08
20
+
21
+ - Add async refresh progress polling and dashboard progress bars for long all-row loads.
22
+ - Speed up local content index refreshes with batched writes and parallel source extraction.
23
+ - Load uncapped dashboard rows in finite pages so no-cap mode stays responsive on large histories.
24
+ - Show loaded-call counts and call-level token breakdowns on Overview metric cards.
25
+ - Restore session row/history loading preferences after browser refresh without storing large row payloads.
26
+
5
27
  ## 0.16.0 - 2026-07-07
6
28
 
7
29
  - Add allowance intelligence foundation with normalized allowance history, evidence-graded change diagnostics, local evidence exports, and API/MCP report surfaces for weekly-vs-5-hour usage analysis.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-usage-tracking
3
- Version: 0.16.0
3
+ Version: 0.17.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
@@ -44,7 +44,7 @@ Requires-Dist: zizmor>=1.26.1; python_version >= "3.11" and extra == "dev"
44
44
  Dynamic: license-file
45
45
 
46
46
  <p align="center">
47
- <img src="docs/assets/readme-hero.png?v=readme-hero-20260704" alt="Codex Usage Tracker local-first analytics dashboard preview with overview, calls, and investigator surfaces." width="100%">
47
+ <img src="docs/assets/readme-hero-2.png?v=readme-hero-20260708" alt="Codex Usage Tracker local-first analytics dashboard preview with overview, calls, and investigator surfaces." width="100%">
48
48
  </p>
49
49
 
50
50
  # Codex Usage Tracker
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="docs/assets/readme-hero.png?v=readme-hero-20260704" alt="Codex Usage Tracker local-first analytics dashboard preview with overview, calls, and investigator surfaces." width="100%">
2
+ <img src="docs/assets/readme-hero-2.png?v=readme-hero-20260708" alt="Codex Usage Tracker local-first analytics dashboard preview with overview, calls, and investigator surfaces." width="100%">
3
3
  </p>
4
4
 
5
5
  # Codex Usage Tracker
@@ -0,0 +1,187 @@
1
+ # Agentic Briefing And Dogfood Roadmap
2
+
3
+ This roadmap follows the agentic MCP and hypothesis-testing hardening work merged through
4
+ PR #114. The current backend can already suggest investigations, test hypotheses, inspect
5
+ large low-output calls, identify shell churn, rank repeated file rediscovery, and evaluate
6
+ allowance-change evidence. This phase is about making that flow repeatable, easier for
7
+ agents to use correctly, and more action-oriented for users.
8
+
9
+ Product stance stays unchanged:
10
+
11
+ - Local-first and unofficial.
12
+ - Aggregate/shareable evidence by default.
13
+ - No raw prompts, raw tool output, full paths, raw commands, or transcript snippets unless
14
+ the user explicitly asks for deeper local content inspection.
15
+ - Dashboard UI is not the source of truth for this phase; backend/MCP payloads are.
16
+ - Recommendation language must separate exact facts, estimates, missing access, and next
17
+ verification steps.
18
+
19
+ ## Why This Phase Exists
20
+
21
+ Dogfooding the improved MCP flow surfaced two needs:
22
+
23
+ - The project needs a repeatable local experiment harness so future changes can be checked
24
+ against the same old and new hypotheses instead of relying on ad hoc terminal snippets.
25
+ - The bundled skill/plugin guidance should teach agents the new investigation sequence and
26
+ explain newer report concepts such as `unclassified_shell_script`.
27
+ - The MCP should be able to produce a concise action brief that translates diagnostics into
28
+ practical workflow recommendations, including existing tools and custom helper ideas.
29
+
30
+ ## PR Chunk 1: Dogfood Hypothesis Harness
31
+
32
+ Add a repeatable local experiment harness that runs the old and new hypothesis battery and
33
+ emits compact local artifacts.
34
+
35
+ Proposed command:
36
+
37
+ ```bash
38
+ codex-usage-tracker dogfood-agentic
39
+ ```
40
+
41
+ Initial behavior:
42
+
43
+ - Refresh active usage by default, with `--include-archived` opt-in.
44
+ - Run `usage_test_hypotheses` over the old hypothesis set:
45
+ - token waste in large low-output calls
46
+ - cache/cold-resume pressure
47
+ - repeated file rediscovery
48
+ - shell churn
49
+ - model/effort choice
50
+ - weekly allowance change
51
+ - Run the new follow-up hypothesis set:
52
+ - large low-output calls as cleanup target
53
+ - repeated file rediscovery concentrated in safe file identities
54
+ - shell churn as repeated probing
55
+ - context pressure driving expensive calls
56
+ - local content-index/thread-trace follow-up needed for intent
57
+ - allowance-change claims not ready without weekly spans
58
+ - Run direct evidence tools:
59
+ - `usage_large_low_output_calls`
60
+ - `usage_shell_churn`
61
+ - `usage_repeated_file_rediscovery`
62
+ - `usage_allowance_diagnostics`
63
+ - `usage_suggest_investigations`
64
+ - `usage_investigate` for `token_waste` and `workflow_churn`
65
+ - Write a compact JSON summary and optional Markdown brief.
66
+
67
+ Acceptance criteria:
68
+
69
+ - Harness output declares scope: refresh status, archived setting, privacy mode, evidence
70
+ limit, and artifact paths.
71
+ - Harness asserts privacy invariants: no indexed content, no raw fragments, no raw command
72
+ output, and no full paths in compact outputs.
73
+ - Harness records expected family routing for the old and new hypotheses.
74
+ - Harness can be run locally without publishing or contacting external services.
75
+ - Add focused tests for summary shape and privacy flags using synthetic data.
76
+
77
+ ## PR Chunk 2: Skill And Plugin Guidance Refresh
78
+
79
+ Update bundled skills and docs so Codex agents use the improved investigation flow.
80
+
81
+ Guidance changes:
82
+
83
+ - Lead broad usage questions with `usage_suggest_investigations`.
84
+ - Use `usage_test_hypotheses` when the user frames the request as:
85
+ - "I'd like to be able to..."
86
+ - "I will accomplish this using..."
87
+ - "I'm missing access to..."
88
+ - "my hypothesis was true/false..."
89
+ - Use direct tools after the hypothesis result:
90
+ - `usage_large_low_output_calls` for large low-output/context pressure.
91
+ - `usage_repeated_file_rediscovery` for repeated safe file identities.
92
+ - `usage_shell_churn` for command churn.
93
+ - `usage_allowance_diagnostics` and `usage_allowance_export` for limit-change claims.
94
+ - Explain `unclassified_shell_script` plainly:
95
+ - It is a mixed or legacy bucket where the tracker cannot safely recover one specific
96
+ command root from aggregate indexed data.
97
+ - It is still evidence of churn, but needs thread trace or future indexed command detail
98
+ before prescribing a specific command-level fix.
99
+ - Recommend existing tools and possible custom solutions when diagnosing waste:
100
+ - Headroom or similar context-pressure tools when available.
101
+ - Project notes, handoff templates, helper scripts, test selectors, file summaries, or
102
+ targeted commands when repeated rediscovery or shell churn appears.
103
+
104
+ Acceptance criteria:
105
+
106
+ - Bundled plugin skill files and source skill files stay in sync.
107
+ - MCP docs describe the recommended investigation sequence.
108
+ - Tests or docs snapshots prove the guidance mentions hypothesis testing, direct evidence
109
+ follow-up, `unclassified_shell_script`, and existing/custom remediation options.
110
+
111
+ ## PR Chunk 3: Actionable Recommendation Brief
112
+
113
+ Add a user-facing aggregate report/MCP tool that converts diagnostics into a compact
114
+ remediation brief.
115
+
116
+ Proposed tool:
117
+
118
+ ```text
119
+ usage_action_brief(...)
120
+ ```
121
+
122
+ Initial inputs:
123
+
124
+ - `goal`: optional, default `token_waste`
125
+ - `since`, `until`, `thread`
126
+ - `include_archived`
127
+ - `evidence_limit`
128
+ - `privacy_mode`
129
+
130
+ Output shape:
131
+
132
+ - `schema`
133
+ - `content_mode`
134
+ - `includes_indexed_content`
135
+ - `includes_raw_fragments`
136
+ - `privacy_mode`
137
+ - `filters`
138
+ - `summary`
139
+ - `actions[]`
140
+ - `finding`
141
+ - `confidence`
142
+ - `evidence`
143
+ - `likely_waste_pattern`
144
+ - `recommended_workflow_change`
145
+ - `recommended_existing_tool`
146
+ - `recommended_custom_solution`
147
+ - `how_to_verify`
148
+ - `recommended_next_tools`
149
+ - `caveats`
150
+
151
+ Initial action families:
152
+
153
+ - Large low-output/context pressure:
154
+ - recommend shorter handoffs, fresh thread with summary, context-pressure tooling, and
155
+ direct verification with `usage_large_low_output_calls` and `usage_call_detail`.
156
+ - Repeated file rediscovery:
157
+ - recommend durable file summaries, project notes, helper commands, and narrower reads.
158
+ - Shell churn:
159
+ - recommend stopping repeated retry loops, summarizing failures, using test selectors or
160
+ helper scripts, and inspecting thread traces.
161
+ - Allowance-change readiness:
162
+ - recommend weekly diagnostics/export only when evidence is ready; otherwise explain why
163
+ public claims are premature.
164
+
165
+ Acceptance criteria:
166
+
167
+ - New schema is documented in CLI JSON schema docs and MCP docs.
168
+ - MCP tool and CLI JSON path return the same payload builder.
169
+ - Payload remains aggregate/shareable by default.
170
+ - Tests cover at least one action from each initial action family using synthetic fixtures.
171
+ - Dogfood harness can optionally include the action brief.
172
+
173
+ ## Phase Exit Criteria
174
+
175
+ This phase is complete when:
176
+
177
+ - The dogfood harness can be run before future MCP changes.
178
+ - The bundled skill/plugin teaches agents the intended investigation flow.
179
+ - The action brief can turn evidence into concrete user-facing remediation steps.
180
+ - Full local validation passes.
181
+ - No dashboard UI work has been started as part of this phase.
182
+
183
+ ## Release Guidance
184
+
185
+ - If the phase only lands the harness and docs, ship as a patch.
186
+ - If `usage_action_brief` becomes a new public MCP/API surface, ship as the next minor
187
+ release, likely `0.17.0`.
@@ -0,0 +1,159 @@
1
+ # Agentic Investigation Hardening Roadmap
2
+
3
+ This roadmap follows the exploratory MCP experiments run on 2026-07-08. The goal is to make Codex Usage Tracker useful as an agent-facing investigation partner, not just a dashboard data source.
4
+
5
+ Product stance stays unchanged:
6
+
7
+ - Local-first and unofficial.
8
+ - Aggregate/shareable evidence first.
9
+ - Explicit local content-index tools only when the user asks for deeper local diagnosis.
10
+ - No raw context by default.
11
+ - Recommendations must name evidence, missing evidence, confidence, and next verification step.
12
+
13
+ ## Experiment Findings
14
+
15
+ The agentic layer already identifies meaningful waste patterns:
16
+
17
+ - Large low-output calls are real and actionable.
18
+ - High context pressure dominates recent usage.
19
+ - Repeated file rediscovery is measurable and severe.
20
+ - Shell churn exists, but command labels are too cloudy.
21
+ - Allowance-change evidence is currently insufficient, which is the correct conservative result.
22
+
23
+ The rough edges are agent-facing rather than purely analytical:
24
+
25
+ - `usage_suggest_investigations(goal=...)` returns too few ideas for broad discovery.
26
+ - `usage_investigate(...)` returns large nested payloads that are hard for agents to consume.
27
+ - There is no first-class hypothesis-testing endpoint matching the preferred user framing.
28
+ - Shell churn command labels collapse too often into `unknown_command`.
29
+ - Local evidence export can report confusing aggregate fields for some branches.
30
+ - Some filters and archived-row behavior need targeted regression tests.
31
+
32
+ ## Target Interaction Shape
33
+
34
+ When a user asks for exploratory analysis, the agent should answer in this shape:
35
+
36
+ ```text
37
+ I'd like to be able to ...
38
+ I will accomplish this using ...
39
+ I'm missing access to ...
40
+ My hypothesis was true/false/partially true because ...
41
+ Next action ...
42
+ ```
43
+
44
+ The MCP should make that easy by returning this structure directly, with compact evidence and explicit caveats.
45
+
46
+ ## PR Chunk 1: Suggestions And Compact Investigation Payloads
47
+
48
+ Improve existing entry points before adding new tools.
49
+
50
+ Changes:
51
+
52
+ - Expand `usage_suggest_investigations(...)` so broad goals can return multiple useful suggestions instead of one sparse row.
53
+ - Add a compact mode or bounded evidence shape for `usage_investigate(...)` that avoids dumping full dashboard rows unless explicitly requested.
54
+ - Preserve current schema compatibility by adding fields rather than removing stable fields.
55
+ - Add tests proving broad suggestions include token waste, cache failure, workflow churn, allowance change, and overview.
56
+ - Add tests proving compact investigation payloads include enough fields for actionability: finding, evidence summary, confidence, missing access, next tools.
57
+
58
+ Acceptance criteria:
59
+
60
+ - A user asking "what should I investigate?" receives a menu, not a single option.
61
+ - A user asking "look through usage for token waste" receives concise findings that an agent can summarize without parsing massive nested rows.
62
+ - Existing MCP contract tests remain green.
63
+
64
+ ## PR Chunk 2: Hypothesis Runner MCP/API Surface
65
+
66
+ Add a first-class hypothesis-testing tool.
67
+
68
+ Proposed tool:
69
+
70
+ - `usage_test_hypotheses(...)`
71
+
72
+ Initial inputs:
73
+
74
+ - `question`
75
+ - optional `hypotheses`
76
+ - `since`, `until`, `thread`, `include_archived`
77
+ - `evidence_limit`
78
+ - `privacy_mode`
79
+
80
+ Output shape:
81
+
82
+ - `schema`
83
+ - `content_mode`
84
+ - `includes_indexed_content`
85
+ - `includes_raw_fragments`
86
+ - `question`
87
+ - `hypotheses[]`
88
+ - `id`
89
+ - `hypothesis`
90
+ - `status`: `true`, `false`, `partially_true`, `insufficient_evidence`
91
+ - `confidence`
92
+ - `i_would_like_to_be_able_to`
93
+ - `i_will_accomplish_this_using`
94
+ - `i_am_missing_access_to`
95
+ - `evidence_summary`
96
+ - `counter_evidence`
97
+ - `next_action`
98
+ - `recommended_next_tools`
99
+
100
+ Initial built-in hypothesis families:
101
+
102
+ - token waste
103
+ - cache/cold-resume failure
104
+ - repeated file rediscovery
105
+ - shell churn
106
+ - effort/model choice
107
+ - allowance change
108
+
109
+ Acceptance criteria:
110
+
111
+ - The tool can evaluate supplied hypotheses and default hypotheses.
112
+ - It returns explicit true/false/partial/insufficient decisions.
113
+ - It does not require raw context.
114
+ - It recommends lower-level MCP tools when evidence is insufficient.
115
+
116
+ ## PR Chunk 3: Evidence Quality Hardening
117
+
118
+ Fix the diagnostic surfaces that made recommendations cloudy.
119
+
120
+ Changes:
121
+
122
+ - Improve shell command normalization so common command families do not collapse into `unknown_command`.
123
+ - Add tests for repeated `sed`, `rg`, `git`, `nl`, `npm`, `python`, `pytest`, and package-manager commands.
124
+ - Tighten `usage_local_evidence_export(...)` aggregate summaries so `occurrences`, `call_count`, and `total_tokens` are meaningful for every branch.
125
+ - Add regression tests for `include_archived=false` across the new agentic, low-output, shell, file, export, and hypothesis surfaces.
126
+ - Make repeated file rediscovery recommendations more specific when safe fields are available: basename, extension, operation mix, adjacent retouch count, and trace handles.
127
+
128
+ Acceptance criteria:
129
+
130
+ - Shell churn reports are readable without raw command output.
131
+ - Shareable local evidence export does not show confusing zero counts for supported branches.
132
+ - Active-only filters do not surface archived rows in evidence samples.
133
+
134
+ ## Later Dashboard Work
135
+
136
+ Do not start with UI. Once the APIs are stable:
137
+
138
+ - Add a Diagnostics Notebook module for hypothesis testing.
139
+ - Show "hypothesis true/false/partial" cards.
140
+ - Link each card to Calls, Threads, Call Investigator, and local evidence export.
141
+
142
+ ## Validation Plan
143
+
144
+ Each implementation PR should run:
145
+
146
+ ```bash
147
+ .venv/bin/python -m ruff check .
148
+ PYTHONPATH=src .venv/bin/python -m mypy
149
+ PYTHONPATH=src .venv/bin/python -m pytest tests/cli/test_mcp_integration.py tests/cli/test_cli_release.py
150
+ .venv/bin/python scripts/check_release.py
151
+ git diff --check
152
+ ```
153
+
154
+ Broader tests should be run when touching parser/indexing logic:
155
+
156
+ ```bash
157
+ PYTHONPATH=src .venv/bin/python -m pytest
158
+ PYTHONPATH=src .venv/bin/python -m compileall src
159
+ ```
@@ -0,0 +1,105 @@
1
+ # Agentic MCP And Skill Roadmap
2
+
3
+ Codex Usage Tracker has moved from static usage summaries toward local investigation tools that can help an AI analyst find waste, explain allowance evidence, and suggest concrete fixes. The next step is to make that experience intentional: agents should start from user goals, choose the right tracker endpoints, and return clear evidence-backed recommendations instead of making users pick from a long MCP tool catalog.
4
+
5
+ ## Product Stance
6
+
7
+ - Local-first and unofficial remain non-negotiable.
8
+ - Aggregate reports stay the default for normal usage answers.
9
+ - Content-index tools remain explicit local investigation tools and must label when indexed snippets or local fragments can appear.
10
+ - Remediation should be first-class: every investigation should make it clear what to do next and how to verify whether the change helped.
11
+ - The MCP should help the model drive the tracker, but it should not claim access to OpenAI's internal ledger or account-wide usage outside local Codex logs.
12
+
13
+ ## Target Experience
14
+
15
+ Users should be able to ask questions like:
16
+
17
+ - "Look through my usage for token waste."
18
+ - "Did my weekly allowance change?"
19
+ - "Why is my 5-hour counter weird?"
20
+ - "What should I fix first?"
21
+ - "Where am I rediscovering the same files?"
22
+ - "Which calls are big but low value?"
23
+
24
+ The agent should then:
25
+
26
+ 1. Refresh or check local index freshness.
27
+ 2. Pick an investigation plan.
28
+ 3. Use stable MCP/API reports.
29
+ 4. Return findings with confidence and caveats.
30
+ 5. Recommend concrete workflow/tooling changes.
31
+ 6. Offer a verification path using dashboard rows, call investigator links, or follow-up MCP reports.
32
+
33
+ ## Payload Shape
34
+
35
+ New agent-facing report payloads should converge on:
36
+
37
+ - `goal`: the user intent or investigation kind.
38
+ - `summary`: top finding, evidence count, confidence, privacy mode, data scope.
39
+ - `findings`: normalized rows with `finding`, `evidence`, `confidence`, `why_it_matters`, `recommended_action`, `verify_with`, and `privacy_notes`.
40
+ - `recommended_next_tools`: MCP calls the agent can use when the answer needs more detail.
41
+ - `caveats`: limits such as stale index, missing pricing, missing allowance observations, archived sessions excluded, or outside usage possible.
42
+
43
+ ## Logical Units
44
+
45
+ ### Unit 1: Roadmap And Direction
46
+
47
+ - Add this roadmap.
48
+ - Keep existing behavior unchanged.
49
+ - Use it as the reference for the next code PRs.
50
+
51
+ ### Unit 2: Agentic Investigation Orchestrator
52
+
53
+ Add new MCP/API reports:
54
+
55
+ - `usage_suggest_investigations(...)`
56
+ - Returns suggested investigations based on available local data and optional user goal.
57
+ - Does not require raw context.
58
+ - Suggestions should include which tool to call, why it matters, default parameters, and privacy caveats.
59
+
60
+ - `usage_investigate(...)`
61
+ - Takes a goal such as `token_waste`, `allowance_change`, `cache_failure`, `workflow_churn`, or `overview`.
62
+ - Chains existing report builders instead of duplicating analysis logic.
63
+ - Returns a compact evidence-backed answer payload using the target shape above.
64
+
65
+ Initial goals:
66
+
67
+ - `token_waste`: combine large low-output calls, shell churn, repeated file rediscovery, report pack, and high-token calls.
68
+ - `allowance_change`: route to weekly allowance diagnostics and strict export when sharing is likely.
69
+ - `cache_failure`: use high-token calls, cache ratio, context-window percent, and large low-output evidence.
70
+ - `workflow_churn`: use shell churn and repeated file rediscovery.
71
+ - `overview`: use status, summaries, recommendations, and report pack evidence.
72
+
73
+ ### Unit 3: Skill Makeover
74
+
75
+ Rewrite `codex-usage-api` around user intents:
76
+
77
+ - Start with a small "intent router" instead of a long tool list.
78
+ - Prefer `usage_investigate(...)` for broad goals.
79
+ - Prefer `usage_suggest_investigations(...)` when the user asks for ideas.
80
+ - Keep explicit privacy boundaries for raw context and content search.
81
+ - Teach remediation structure: `Evidence`, `Likely waste pattern`, `Next action`, `How to verify`.
82
+ - Mention Headroom and custom local automation only as conditional recommendations when evidence supports them.
83
+
84
+ ### Unit 4: Documentation And Examples
85
+
86
+ - Update MCP docs to present agentic entrypoints first.
87
+ - Keep the full tool catalog, but make it secondary.
88
+ - Add one or two concise example prompts and response-shape notes.
89
+ - Update JSON schema docs for new payload contracts.
90
+
91
+ ### Unit 5: Release Readiness
92
+
93
+ - Add contract tests for the two new payloads.
94
+ - Add MCP release-list tests for the new tools.
95
+ - Run focused tests, full Python test suite, release checker, and package build before release.
96
+ - Ship as the next minor release after the already-published `0.16.0`, likely `0.16.1` if treated as follow-up MCP polish or `0.17.0` if positioned as the agentic MCP release.
97
+
98
+ ## Non-Goals For This Pass
99
+
100
+ - No new database schema.
101
+ - No raw prompt/tool-output export.
102
+ - No hosted data collection.
103
+ - No dashboard redesign.
104
+ - No replacement for existing specific diagnostic tools.
105
+ - No claim that allowance diagnostics can read OpenAI's internal ledger.