codex-usage-tracking 0.17.0__tar.gz → 0.17.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/.codex-plugin/plugin.json +1 -1
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/CHANGELOG.md +4 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/PKG-INFO +1 -1
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/development.md +2 -2
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/one-dot-oh-readiness.md +8 -8
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/pyproject.toml +1 -1
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/__init__.py +1 -1
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/mcp_server.py +89 -1
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/PKG-INFO +1 -1
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_mcp_integration.py +12 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/.mcp.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/AGENTS.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/CONTRIBUTING.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/LICENSE +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/MANIFEST.in +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/README.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/SECURITY.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/assets/icon.svg +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/adoption-hardening-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-briefing-and-dogfood-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-investigation-hardening-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-mcp-skill-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/allowance-intelligence.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture-boundary-map.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-call-investigator-preview.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-call-investigator.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-calls-preview.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-calls.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-details.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-diagnostics.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-insights.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/readme-hero-2.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/readme-hero.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/social-preview.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/call-detail-panel.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/insight-overview.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/thread-investigation.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/call-drilldown-performance-checklist.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/cli-json-schemas.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/cli-reference.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/dashboard-guide.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/examples/remediation-conversation.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/examples/token-waste-conversation.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/first-five-minutes.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/frontend-rewrite-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/install.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/local-content-index-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/maintainability-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/maintainability-scorecard.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/mcp.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/pricing-and-credits.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/privacy.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/ui-ux-improvement-plan.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/usage-drain-modeling.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/benchmark_synthetic_history.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/check_release.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/check_wemake_baseline.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/generate_social_preview.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/install_local_plugin.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/model_usage_drain.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/smoke_installed_package.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/setup.cfg +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/__main__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance_intelligence/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance_intelligence/model.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance_intelligence/reports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/__main__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/config.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/dashboard.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/main.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/output.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/parser.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/action_timing.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/constants.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/loader.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/reader.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/serialized.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/summaries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/token_estimates.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/values.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/api_payloads.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/call_origin.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/formatting.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/i18n.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_cli.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_server.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/json_contracts.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/models.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/paths.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/projects.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/redaction.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/schema.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/threads.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/assets.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/snapshots.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/diagnostics/types.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/mcp_server.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/jsonl_v1.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/parser/state.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/dashboard/react/index.html +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/examples/remediation-conversation.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/docs/examples/token-waste-conversation.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/plugin_installer.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/config.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/costing.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/estimates.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/pricing/openai.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/agentic_dogfood.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/filters.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/project_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/recommendations.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/reports/support.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/allowance.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/call_detail.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/call_lists.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/context.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/context_settings.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/diagnostic_routes.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/handler.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/live_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/live_rows.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/open_investigator.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/recommendations.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/reports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/request_guards.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/responses.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/routes.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/status.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/threads.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/usage_refresh.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/server/utils.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/allowance_observations.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/connection.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_index.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_index_event_store.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_index_events.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/content_patterns.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/exports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/investigation_runs.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/large_low_output.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/query_sql.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/refresh.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/repeated_files.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/rows.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/schema.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/shell_churn.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/source_records.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/sources.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/summary_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/store/usage_timing.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/support.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/features.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/model.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/types.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/SOURCES.txt +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/__init__.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/allowance_intelligence/test_allowance_intelligence.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_allowance_intelligence_cli_mcp.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_dashboard.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_lifecycle.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_module_entrypoints.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_parser_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_cli_release.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_mcp_launcher.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_plugin_installer.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_action_timing.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_evidence.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_scan.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_serialized.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_summaries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_token_estimates.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/context/test_context_values.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_call_origin.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_formatting.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_i18n.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_json_contracts.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_privacy.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_projects.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_redaction.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_schema.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/core/test_threads.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_data.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_live.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_payload.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_server.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_state.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/dashboard/test_dashboard_status.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_reports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/diagnostics/test_doctor_first_run.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/parser/test_parser.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/parser/test_parser_inspect_log.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/parser/test_parser_state.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/pricing/test_allowance.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/pricing/test_pricing.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_action_brief.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_agentic_dogfood.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_hypothesis_routing.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_recommendations.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/reports/test_support.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_refresh_jobs.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_refresh_routes.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_allowance.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_api.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_call_detail.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_call_lists.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_context.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_context_settings.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_dashboard_shell.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_diagnostic_facts.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_live_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_live_rows.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_open_investigator.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_recommendations.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_request_guards.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_responses.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_routes.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_status.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_threads.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/server/test_server_usage_refresh.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_content_index.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_refresh_parallel.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_source_records.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_dashboard_mcp.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_dashboard_queries.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_large_batches.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_migrations.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_query_sql.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store/test_store_sources.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/store_dashboard_helpers.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_model.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_regression.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_reports.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
- {codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/usage_drain/test_usage_drain_walk_forward.py +0 -0
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.17.1 - 2026-07-09
|
|
6
|
+
|
|
7
|
+
- Stabilize async dogfood cache fingerprints so repeated unchanged MCP dogfood runs can reuse cached reports even when SQLite file metadata changes during read/report activity.
|
|
8
|
+
|
|
5
9
|
## 0.17.0 - 2026-07-08
|
|
6
10
|
|
|
7
11
|
- Add agentic MCP investigation tools for hypothesis-driven usage diagnostics, compact evidence briefs, and actionable recommendation reports.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-usage-tracking
|
|
3
|
-
Version: 0.17.
|
|
3
|
+
Version: 0.17.1
|
|
4
4
|
Summary: Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns.
|
|
5
5
|
Author: Douglas Monsky
|
|
6
6
|
License-Expression: MIT
|
|
@@ -149,8 +149,8 @@ python scripts/smoke_installed_package.py --docker
|
|
|
149
149
|
To verify the public PyPI package instead of the local checkout:
|
|
150
150
|
|
|
151
151
|
```bash
|
|
152
|
-
python scripts/smoke_installed_package.py --from-pypi --version 0.17.
|
|
153
|
-
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.
|
|
152
|
+
python scripts/smoke_installed_package.py --from-pypi --version 0.17.1
|
|
153
|
+
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.1
|
|
154
154
|
```
|
|
155
155
|
|
|
156
156
|
`scripts/check_release.py` treats these public-package smoke commands as release-state claims. Keep their `--version` and `codex-usage-tracking==...` values aligned with `pyproject.toml`; the release gate fails when the docs claim a different public version. It also checks that install docs point at the real PyPI distribution, `codex-usage-tracking`, and keep the warning that `codex-usage-tracker` is a different PyPI package.
|
|
@@ -24,12 +24,12 @@ Not guaranteed:
|
|
|
24
24
|
|
|
25
25
|
## 1. Public Install And Package Metadata
|
|
26
26
|
|
|
27
|
-
- [x] Verify the current public PyPI version is visible as `0.17.
|
|
28
|
-
- [x] Verify public venv install for `0.17.
|
|
29
|
-
- [x] Verify public pipx install path for `0.17.
|
|
27
|
+
- [x] Verify the current public PyPI version is visible as `0.17.1`: `python -c "import json, urllib.request; print(json.load(urllib.request.urlopen('https://pypi.org/pypi/codex-usage-tracking/json'))['info']['version'])"`.
|
|
28
|
+
- [x] Verify public venv install for `0.17.1`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.17.1 && codex-usage-tracker --version`.
|
|
29
|
+
- [x] Verify public pipx install path for `0.17.1`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.17.1 && /tmp/codex-usage-pipx-bin/codex-usage-tracker --version`.
|
|
30
30
|
- [x] Verify installed package resources from a built wheel: `python scripts/smoke_installed_package.py`.
|
|
31
31
|
- [x] Verify installed package resources in Linux Docker: `python scripts/smoke_installed_package.py --docker`.
|
|
32
|
-
- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.
|
|
32
|
+
- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.1`.
|
|
33
33
|
- [x] Verify PyPI metadata names remain unchanged: `python scripts/check_release.py`.
|
|
34
34
|
- [x] Add Python 3.14 as an official support target after CI, package classifiers, docs, and installed-package smoke coverage were added. Docker smoke coverage uses `python:3.14-slim` by default. Track this in issue #12.
|
|
35
35
|
|
|
@@ -134,14 +134,14 @@ Not guaranteed:
|
|
|
134
134
|
|
|
135
135
|
## Evidence References
|
|
136
136
|
|
|
137
|
-
These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.17.
|
|
137
|
+
These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.17.1`; all repo tests use synthetic or aggregate-only data.
|
|
138
138
|
|
|
139
139
|
### Public Install And Package Metadata
|
|
140
140
|
|
|
141
141
|
- Public PyPI version, public venv install, and public pipx install are proven by the exact public-install commands in section 1.
|
|
142
142
|
- Built-wheel and installed-resource coverage is proven by `scripts/smoke_installed_package.py` and `tests/test_cli_release.py::test_installed_package_smoke_checks_help_for_stable_commands`.
|
|
143
143
|
- Linux package-resource coverage is proven by `scripts/smoke_installed_package.py --docker`.
|
|
144
|
-
- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.
|
|
144
|
+
- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.17.1`.
|
|
145
145
|
- PyPI metadata, package/distribution names, package resources, source/wheel member names, Python 3.10-3.14 support metadata, CI workflow requirements, publish workflow safety text, and tracked secret patterns are proven by `scripts/check_release.py`, `scripts/check_release.py --dist`, and `tests/test_cli_release.py::test_release_check_script_passes`.
|
|
146
146
|
|
|
147
147
|
### Upgrade And Migration
|
|
@@ -219,8 +219,8 @@ These references are the concrete proof behind completed checklist items. Public
|
|
|
219
219
|
- Publish workflow package name, Trusted Publishing, TestPyPI/PyPI job presence, event guards, no push/PR publishing, no token/password publishing, and manual PyPI main/tag preflight are proven by `scripts/check_release.py::_check_publish_workflow`.
|
|
220
220
|
- The GitHub `pypi` environment gate is proven by `gh api repos/douglasmonsky/codex-usage-tracker/environments/pypi`, which reports a `required_reviewers` protection rule and `can_admins_bypass=false`.
|
|
221
221
|
- Dist filename and wheel/sdist member checks are proven by `python -m build`, `python -m twine check dist/*`, and `python scripts/check_release.py --dist`.
|
|
222
|
-
- TestPyPI publish process is proven by a workflow-dispatch run on `main`, followed by TestPyPI metadata and clean virtualenv install checks for `codex-usage-tracking==0.17.
|
|
223
|
-
- PyPI publish process is proven by a workflow-dispatch run on `main`, protected `pypi` environment approval, PyPI metadata visibility, clean virtualenv install, temporary pipx install, and Docker public-package smoke for `codex-usage-tracking==0.17.
|
|
222
|
+
- TestPyPI publish process is proven by a workflow-dispatch run on `main`, followed by TestPyPI metadata and clean virtualenv install checks for `codex-usage-tracking==0.17.1`.
|
|
223
|
+
- PyPI publish process is proven by a workflow-dispatch run on `main`, protected `pypi` environment approval, PyPI metadata visibility, clean virtualenv install, temporary pipx install, and Docker public-package smoke for `codex-usage-tracking==0.17.1`.
|
|
224
224
|
- Release recovery documentation is proven by `scripts/check_release.py` required-file and docs checks.
|
|
225
225
|
|
|
226
226
|
### Known Limitations
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "codex-usage-tracking"
|
|
7
|
-
version = "0.17.
|
|
7
|
+
version = "0.17.1"
|
|
8
8
|
description = "Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -15,9 +15,9 @@ from pathlib import Path
|
|
|
15
15
|
|
|
16
16
|
PACKAGE_SPEC = os.environ.get(
|
|
17
17
|
"CODEX_USAGE_TRACKER_PACKAGE_SPEC",
|
|
18
|
-
"codex-usage-tracking==0.17.
|
|
18
|
+
"codex-usage-tracking==0.17.1",
|
|
19
19
|
)
|
|
20
|
-
RUNTIME_VERSION = "0.17.
|
|
20
|
+
RUNTIME_VERSION = "0.17.1"
|
|
21
21
|
PACKAGE_SPEC_MARKER = ".codex-usage-tracker-package-spec"
|
|
22
22
|
MODULE_CHECK = (
|
|
23
23
|
"import importlib.metadata; "
|
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
import hashlib
|
|
6
6
|
import json
|
|
7
7
|
import os
|
|
8
|
+
import sqlite3
|
|
8
9
|
import threading
|
|
9
10
|
import uuid
|
|
10
11
|
from datetime import datetime, timezone
|
|
@@ -122,9 +123,96 @@ def _dogfood_file_fingerprint(path: Path) -> dict[str, Any]:
|
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
|
|
126
|
+
def _dogfood_db_table_signature(
|
|
127
|
+
connection: sqlite3.Connection,
|
|
128
|
+
table_name: str,
|
|
129
|
+
expressions: list[str],
|
|
130
|
+
) -> dict[str, Any]:
|
|
131
|
+
exists = connection.execute(
|
|
132
|
+
"SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ?",
|
|
133
|
+
(table_name,),
|
|
134
|
+
).fetchone()
|
|
135
|
+
if exists is None:
|
|
136
|
+
return {"exists": False}
|
|
137
|
+
columns = ", ".join(expressions)
|
|
138
|
+
row = connection.execute(f"SELECT {columns} FROM {table_name}").fetchone()
|
|
139
|
+
return {"exists": True, "values": list(row or [])}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def _dogfood_db_fingerprint(path: Path) -> dict[str, Any]:
|
|
143
|
+
try:
|
|
144
|
+
stat = path.stat()
|
|
145
|
+
except FileNotFoundError:
|
|
146
|
+
return {"path": str(path), "exists": False}
|
|
147
|
+
|
|
148
|
+
fingerprint: dict[str, Any] = {
|
|
149
|
+
"path": str(path),
|
|
150
|
+
"exists": True,
|
|
151
|
+
"size": stat.st_size,
|
|
152
|
+
}
|
|
153
|
+
try:
|
|
154
|
+
with sqlite3.connect(f"file:{path}?mode=ro", uri=True) as connection:
|
|
155
|
+
connection.execute("PRAGMA query_only = ON")
|
|
156
|
+
fingerprint["tables"] = {
|
|
157
|
+
"usage_events": _dogfood_db_table_signature(
|
|
158
|
+
connection,
|
|
159
|
+
"usage_events",
|
|
160
|
+
[
|
|
161
|
+
"COUNT(*)",
|
|
162
|
+
"COALESCE(MAX(event_timestamp), '')",
|
|
163
|
+
"COALESCE(MAX(record_id), '')",
|
|
164
|
+
"COALESCE(SUM(total_tokens), 0)",
|
|
165
|
+
],
|
|
166
|
+
),
|
|
167
|
+
"source_files": _dogfood_db_table_signature(
|
|
168
|
+
connection,
|
|
169
|
+
"source_files",
|
|
170
|
+
[
|
|
171
|
+
"COUNT(*)",
|
|
172
|
+
"COALESCE(SUM(size_bytes), 0)",
|
|
173
|
+
"COALESCE(MAX(mtime_ns), 0)",
|
|
174
|
+
"COALESCE(MAX(parsed_until_line), 0)",
|
|
175
|
+
"COALESCE(MAX(latest_event_timestamp), '')",
|
|
176
|
+
],
|
|
177
|
+
),
|
|
178
|
+
"command_runs": _dogfood_db_table_signature(
|
|
179
|
+
connection,
|
|
180
|
+
"command_runs",
|
|
181
|
+
["COUNT(*)", "COALESCE(MAX(record_id), '')"],
|
|
182
|
+
),
|
|
183
|
+
"file_events": _dogfood_db_table_signature(
|
|
184
|
+
connection,
|
|
185
|
+
"file_events",
|
|
186
|
+
["COUNT(*)", "COALESCE(MAX(record_id), '')"],
|
|
187
|
+
),
|
|
188
|
+
"tool_calls": _dogfood_db_table_signature(
|
|
189
|
+
connection,
|
|
190
|
+
"tool_calls",
|
|
191
|
+
["COUNT(*)", "COALESCE(MAX(record_id), '')"],
|
|
192
|
+
),
|
|
193
|
+
"content_fragments": _dogfood_db_table_signature(
|
|
194
|
+
connection,
|
|
195
|
+
"content_fragments",
|
|
196
|
+
["COUNT(*)", "COALESCE(MAX(record_id), '')"],
|
|
197
|
+
),
|
|
198
|
+
"allowance_observations": _dogfood_db_table_signature(
|
|
199
|
+
connection,
|
|
200
|
+
"allowance_observations",
|
|
201
|
+
[
|
|
202
|
+
"COUNT(*)",
|
|
203
|
+
"COALESCE(MAX(observed_at), '')",
|
|
204
|
+
"COALESCE(MAX(source_record_id), '')",
|
|
205
|
+
],
|
|
206
|
+
),
|
|
207
|
+
}
|
|
208
|
+
except sqlite3.Error as exc:
|
|
209
|
+
fingerprint["read_error"] = type(exc).__name__
|
|
210
|
+
return fingerprint
|
|
211
|
+
|
|
212
|
+
|
|
125
213
|
def _dogfood_cache_fingerprint(params: dict[str, Any]) -> dict[str, Any]:
|
|
126
214
|
return {
|
|
127
|
-
"db":
|
|
215
|
+
"db": _dogfood_db_fingerprint(params["db_path"]),
|
|
128
216
|
"pricing": _dogfood_file_fingerprint(params["pricing_path"]),
|
|
129
217
|
"allowance": _dogfood_file_fingerprint(params["allowance_path"]),
|
|
130
218
|
"rate_card": _dogfood_file_fingerprint(params["rate_card_path"]),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-usage-tracking
|
|
3
|
-
Version: 0.17.
|
|
3
|
+
Version: 0.17.1
|
|
4
4
|
Summary: Unofficial local Codex plugin and dashboard for investigating aggregate token usage, costs, caching, and thread patterns.
|
|
5
5
|
Author: Douglas Monsky
|
|
6
6
|
License-Expression: MIT
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/tests/cli/test_mcp_integration.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
|
+
import os
|
|
4
5
|
import sys
|
|
5
6
|
import time
|
|
6
7
|
from pathlib import Path
|
|
@@ -526,6 +527,17 @@ def test_mcp_dogfood_async_job_reports_progress(tmp_path: Path, monkeypatch) ->
|
|
|
526
527
|
cached_result = mcp_server.usage_dogfood_result(cached["job_id"])
|
|
527
528
|
assert cached_result["schema"] == "codex-usage-tracker-agentic-dogfood-v1"
|
|
528
529
|
|
|
530
|
+
bumped_mtime = time.time() + 60
|
|
531
|
+
os.utime(db_path, (bumped_mtime, bumped_mtime))
|
|
532
|
+
mtime_cached = mcp_server.usage_dogfood_start(
|
|
533
|
+
evidence_limit=1,
|
|
534
|
+
privacy_mode="strict",
|
|
535
|
+
refresh=False,
|
|
536
|
+
write_markdown=False,
|
|
537
|
+
)
|
|
538
|
+
assert mtime_cached["status"] == "completed"
|
|
539
|
+
assert mtime_cached["result_cache"]["hit"] is True
|
|
540
|
+
|
|
529
541
|
with mcp_server._DOGFOOD_JOB_LOCK:
|
|
530
542
|
mcp_server._DOGFOOD_RESULT_CACHE.clear()
|
|
531
543
|
disk_cached = mcp_server.usage_dogfood_start(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/adoption-hardening-roadmap.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/agentic-mcp-skill-roadmap.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/architecture-boundary-map.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-calls-preview.png
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-details.png
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-diagnostics.png
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-insights.png
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/dashboard-threads.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/call-detail-panel.png
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/insight-overview.png
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/assets/ux/thread-investigation.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/frontend-rewrite-roadmap.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/local-content-index-roadmap.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/docs/maintainability-scorecard.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/benchmark_synthetic_history.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/check_wemake_baseline.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/generate_social_preview.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/scripts/smoke_installed_package.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/skills/codex-usage-tracker/SKILL.md
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/__main__.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/allowance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/__init__.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/__main__.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/config.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/dashboard.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/main.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/output.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/cli/parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/context/api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/i18n.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/models.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/paths.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/projects.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/schema.py
RENAMED
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/core/threads.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.17.0 → codex_usage_tracking-0.17.1}/src/codex_usage_tracker/dashboard/api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|