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