codex-usage-tracking 0.14.0__tar.gz → 0.14.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.14.0 → codex_usage_tracking-0.14.1}/.codex-plugin/plugin.json +1 -1
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/CHANGELOG.md +4 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/PKG-INFO +1 -1
- codex_usage_tracking-0.14.1/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-call-investigator-preview.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-call-investigator.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-calls-preview.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-calls.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-details.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-diagnostics.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-insights.png +0 -0
- codex_usage_tracking-0.14.1/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/development.md +2 -2
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/one-dot-oh-readiness.md +8 -8
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/pyproject.toml +1 -1
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/skills/codex-usage-tracker/scripts/run_mcp.py +2 -2
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/__init__.py +1 -1
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +1 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
- codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracking.egg-info/PKG-INFO +1 -1
- codex_usage_tracking-0.14.0/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-call-investigator-preview.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-call-investigator.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-calls-preview.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-calls.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-details.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-diagnostics.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-insights.png +0 -0
- codex_usage_tracking-0.14.0/docs/assets/dashboard-threads.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css +0 -1
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-evidence.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator-preview.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-call-investigator.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls-preview.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png +0 -0
- codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/.mcp.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/AGENTS.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/CONTRIBUTING.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/LICENSE +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/MANIFEST.in +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/README.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/SECURITY.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/assets/icon.svg +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/adoption-hardening-roadmap.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/architecture/decisions/0001-package-domain-boundaries.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/architecture-boundary-map.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/architecture.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/cache-context-lab-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/call-drilldown-menu-concept-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/calls-analyst-view-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/calls-high-density-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/command-palette-dashboard-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/diagnostics-notebook-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/generated-dashboard-concept-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/generated-maintainer-banner-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/investigator-workbench-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/overview-dashboard-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/projected-weekly-credits-overlap-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/thread-efficiency-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/frontend-rewrite-references/usage-drain-lab-reference.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/ux/call-detail-panel.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/ux/insight-overview.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/ux/thread-investigation.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/call-drilldown-performance-checklist.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/cli-json-schemas.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/cli-reference.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/dashboard-guide.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/first-five-minutes.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/frontend-rewrite-roadmap.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/install.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/maintainability-roadmap.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/maintainability-scorecard.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/mcp.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/pricing-and-credits.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/privacy.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/react-dashboard-0.14-release-roadmap.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/ui-ux-improvement-plan.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/usage-drain-modeling.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/benchmark_synthetic_history.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/check_release.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/check_wemake_baseline.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/install_local_plugin.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/model_usage_drain.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/smoke_installed_package.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/setup.cfg +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/__main__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/allowance.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/__main__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/config.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/dashboard.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/main.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/mcp_server.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/output.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/parser.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/parser_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/cli/plugin_installer.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/action_timing.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/constants.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/loader.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/reader.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/serialized.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/summaries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/token_estimates.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/context/values.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/api_payloads.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/call_origin.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/formatting.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/i18n.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/json_contract_cli.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/json_contract_common.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/json_contract_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/json_contract_server.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/json_contract_validation.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/json_contracts.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/models.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/paths.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/projects.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/redaction.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/schema.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/core/threads.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/dashboard/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/dashboard/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/dashboard/assets.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/dashboard/pricing_snapshot.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/action_hints.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/fact_classifiers.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/facts.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/guided_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/mcp.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/reports.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_analysis.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_concentration.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_constants.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_events.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_payloads.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_report.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_rows.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_source_logs.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshot_source_scan.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/snapshots.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/diagnostics/types.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/mcp_server.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/parser/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/parser/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/parser/jsonl_v1.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/parser/jsonl_values.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/parser/state.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/assets/icon.svg +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_actions.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_analysis.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_diagnostics.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_call_investigator.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_cells.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_data.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_detail.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_details.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_facts.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_diagnostics_snapshots.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_events.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_filters.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_format.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_i18n.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_insights.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_layout.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_live.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_payload_cache.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_responsive.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_state.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_status.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.css +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tables.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_template.html +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/dashboard_tooltips.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ar.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/de.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/en.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/es.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/fr.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/it.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ja.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ko.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/pt.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/ru.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/vi.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/locales/zh-Hans.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/dashboard/react/assets/dashboard-react.js +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-diagnostics-git-expanded.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-prompts.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/docs/assets/plugin-thread-leaderboard.png +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/docs/dashboard-guide.html +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/rate_cards/codex-credit-rates.json +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-api/SKILL.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_data/skills/codex-usage-tracker/SKILL.md +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/plugin_installer.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/allowance.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/allowance_config.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/allowance_rate_card.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/allowance_text.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/allowance_usage.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/config.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/costing.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/estimates.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/pricing/openai.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/filters.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/project_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/recommendation_builder.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/recommendations.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/reports/support.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/call_detail.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/call_lists.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/context.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/context_settings.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/dashboard_shell.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/diagnostic_facts.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/diagnostic_routes.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/handler.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/live_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/live_rows.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/open_investigator.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/recommendations.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/reports.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/request_guards.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/responses.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/routes.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/status.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/threads.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/usage_refresh.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/server/utils.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/connection.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/dashboard_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/diagnostic_call_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/diagnostic_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/exports.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/query_sql.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/refresh.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/rows.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/schema.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/sources.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/summary_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/thread_summaries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/usage_api_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/usage_record_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/store/usage_timing.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/support.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/allowance_breakpoints.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/allowance_fits.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/allowance_online.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/boundary_delta.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/boundary_delta_core.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/boundary_delta_rows.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/boundary_delta_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/boundary_scopes.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/boundary_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/capacity_specs.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/error_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/feature_history.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/features.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/grace.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/history_state.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/model.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/predictive.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/predictive_specs.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/proxy_fit.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/regime_labels.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/regime_segments.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/regression.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/reports.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/spans.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/state_buckets.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/state_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/summary_metrics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/thread_curves.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/time_series.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/token_components.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/transition_gates.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/transition_metrics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/types.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/utils.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/walk_forward.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracker/usage_drain/walk_forward_rows.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracking.egg-info/SOURCES.txt +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracking.egg-info/dependency_links.txt +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracking.egg-info/entry_points.txt +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracking.egg-info/requires.txt +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/src/codex_usage_tracking.egg-info/top_level.txt +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/__init__.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_cli_dashboard.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_cli_lifecycle.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_cli_module_entrypoints.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_cli_parser_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_cli_release.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_mcp_integration.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_mcp_launcher.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/cli/test_plugin_installer.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_action_timing.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_evidence.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_scan.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_serialized.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_summaries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_token_estimates.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/context/test_context_values.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_call_origin.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_formatting.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_i18n.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_json_contracts.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_privacy.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_projects.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_redaction.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_schema.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/core/test_threads.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_data.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_diagnostics_snapshots.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_live.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_payload.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_pricing_snapshot.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_server.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_state.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/dashboard/test_dashboard_status.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_diagnostic_fact_classifiers.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_diagnostic_reports.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_diagnostic_snapshot_events.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_diagnostic_snapshot_report.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_diagnostic_snapshot_source_scan.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/diagnostics/test_doctor_first_run.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/parser/test_parser.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/parser/test_parser_inspect_log.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/parser/test_parser_state.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/pricing/test_allowance.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/pricing/test_pricing.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/reports/test_recommendations.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/reports/test_support.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_api.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_call_detail.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_call_lists.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_context.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_context_settings.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_dashboard_shell.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_diagnostic_facts.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_diagnostic_refresh_auth.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_diagnostic_snapshots.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_live_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_live_rows.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_open_investigator.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_recommendations.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_request_guards.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_responses.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_routes.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_status.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_threads.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/server/test_server_usage_refresh.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store/test_store_dashboard_mcp.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store/test_store_dashboard_queries.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store/test_store_large_batches.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store/test_store_migrations.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store/test_store_query_sql.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store/test_store_sources.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/store_dashboard_helpers.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_allowance_fits.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_boundary_delta.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_boundary_delta_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_boundary_summary.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_error_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_feature_history.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_model.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_one_percent_capacity.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_predictive.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_regime_segments.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_regression.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_report_records.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_reports.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_state_buckets.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_state_diagnostics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_summary_metrics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_thread_curves.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_token_components.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_transition_gates.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/tests/usage_drain/test_usage_drain_transition_metrics.py +0 -0
- {codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.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.14.1 - 2026-07-04
|
|
6
|
+
|
|
7
|
+
- Harden React dashboard responsive chrome, including topbar control wrapping, table containment, sticky table affordances, mobile nav polish, and refreshed synthetic dashboard screenshots.
|
|
8
|
+
|
|
5
9
|
## 0.14.0 - 2026-07-04
|
|
6
10
|
|
|
7
11
|
- Make `serve-dashboard --open` prefer the React dashboard route while keeping legacy `/dashboard.html` available as a localhost fallback, and expose both URLs in `serve-dashboard --json`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-usage-tracking
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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.14.
|
|
153
|
-
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.14.
|
|
152
|
+
python scripts/smoke_installed_package.py --from-pypi --version 0.14.1
|
|
153
|
+
python scripts/smoke_installed_package.py --docker --from-pypi --version 0.14.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.14.
|
|
28
|
-
- [x] Verify public venv install for `0.14.
|
|
29
|
-
- [x] Verify public pipx install path for `0.14.
|
|
27
|
+
- [x] Verify the current public PyPI version is visible as `0.14.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.14.1`: `python -m venv /tmp/codex-usage-pypi-smoke && . /tmp/codex-usage-pypi-smoke/bin/activate && python -m pip install codex-usage-tracking==0.14.1 && codex-usage-tracker --version`.
|
|
29
|
+
- [x] Verify public pipx install path for `0.14.1`: `PIPX_HOME=/tmp/codex-usage-pipx-home PIPX_BIN_DIR=/tmp/codex-usage-pipx-bin pipx install codex-usage-tracking==0.14.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.14.
|
|
32
|
+
- [x] Verify public PyPI package in Docker: `python scripts/smoke_installed_package.py --docker --from-pypi --version 0.14.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.14.
|
|
137
|
+
These references are the concrete proof behind completed checklist items. Public package smoke commands are version-specific to `0.14.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.14.
|
|
144
|
+
- Public PyPI Docker coverage is proven by `scripts/smoke_installed_package.py --docker --from-pypi --version 0.14.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.14.
|
|
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.14.
|
|
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.14.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.14.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.14.
|
|
7
|
+
version = "0.14.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.14.
|
|
18
|
+
"codex-usage-tracking==0.14.1",
|
|
19
19
|
)
|
|
20
|
-
RUNTIME_VERSION = "0.14.
|
|
20
|
+
RUNTIME_VERSION = "0.14.1"
|
|
21
21
|
PACKAGE_SPEC_MARKER = ".codex-usage-tracker-package-spec"
|
|
22
22
|
MODULE_CHECK = (
|
|
23
23
|
"import importlib.metadata; "
|
codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--dashboard-bg: #f4f7fb;--dashboard-text: #102033;--dashboard-muted: #64748b;--dashboard-label: #42526a;--dashboard-subtle: #52627a;--dashboard-surface: #ffffff;--dashboard-border: #cfd9e8;--dashboard-accent: #2563eb;--dashboard-accent-strong: #1d4ed8;--dashboard-sidebar-bg: #07162b;--dashboard-sidebar-bg-raised: #0c213d;--dashboard-sidebar-bg-hover: #102847;--dashboard-sidebar-border: #254365;--dashboard-sidebar-text: #d7e4f8;--dashboard-sidebar-muted: #9eb1cc;--dashboard-sidebar-heading: #ffffff;--dashboard-focus: #60a5fa}:root{color:var(--dashboard-text);background:var(--dashboard-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh;overflow-x:hidden}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:20px;padding:22px 16px;color:#dce7f7;background:var(--dashboard-sidebar-bg);border-right:1px solid #152b4d;min-width:0;overflow-x:hidden}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;color:var(--dashboard-surface);font-size:15px}.brand span,.secondary-block span,.status-card small{color:var(--dashboard-sidebar-muted);font-size:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid #3b82f6;border-radius:8px;color:#93c5fd;background:#0b1f3a}.local-pill{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:7px 10px;border:1px solid var(--dashboard-sidebar-border);border-radius:8px;color:#e8f1ff;background:var(--dashboard-sidebar-bg-raised);font-size:12px;text-transform:uppercase;letter-spacing:0}.local-pill i{width:9px;height:9px;border-radius:50%;background:#22c55e}.environment-status{display:grid;gap:9px}.environment-status-title{color:#93a9c5;font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.environment-status-grid{display:flex;flex-wrap:wrap;gap:6px}.environment-chip{max-width:100%;padding:5px 8px;border:1px solid var(--dashboard-sidebar-border);border-radius:8px;color:#dbeafe;background:var(--dashboard-sidebar-bg-raised);font-size:11px;line-height:1.2}.environment-chip[data-state=ready]{border-color:#256d5b;color:#bbf7d0;background:#0f2c34}.environment-chip[data-state=warn]{border-color:#8a5d1c;color:#fed7aa;background:#332414}.environment-chip[data-state=missing]{border-color:#8f3b3f;color:#fecaca;background:#341b25}.environment-chip[data-state=neutral]{color:#dbeafe}.primary-nav,.secondary-block{display:grid;gap:6px}.primary-nav button,.secondary-block button{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:9px 10px;color:var(--dashboard-sidebar-text);background:transparent;border:0;border-radius:8px;text-align:left}.primary-nav button:hover,.secondary-block button:hover,.primary-nav button:focus-visible,.secondary-block button:focus-visible{outline:2px solid var(--dashboard-focus);outline-offset:2px;background:var(--dashboard-sidebar-bg-hover)}.primary-nav button.active{color:var(--dashboard-surface);background:var(--dashboard-accent-strong)}.secondary-block{margin-top:auto;padding-top:16px;border-top:1px solid #193252}.status-card{display:grid;gap:8px;padding:14px;border:1px solid var(--dashboard-sidebar-border);border-radius:8px;background:var(--dashboard-sidebar-bg-raised)}.status-card span{color:#93a9c5;font-size:12px;text-transform:uppercase;letter-spacing:0}.status-card strong{color:var(--dashboard-surface)}.status-card button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;color:var(--dashboard-surface);background:#14345c;border:1px solid #2f5687;border-radius:8px}.workspace{min-width:0;overflow-x:hidden;padding:16px 20px 28px}.unofficial-banner{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:7px 10px;border:1px solid #f2c46d;border-radius:8px;color:#5f3b04;background:#fff8e6;font-size:12px;line-height:1.35}.unofficial-banner svg{flex:0 0 auto;color:#b7791f}.unofficial-banner strong{color:#3f2600}.page-grid,.stacked-panels{display:grid;gap:16px}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}.page-title-row h1{margin:0;color:#0f172a;font-size:26px;line-height:1.15}.page-title-row p,.panel-header p{margin:4px 0 0;color:var(--dashboard-subtle)}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:10px 12px;align-items:start;padding:0 0 12px;background:var(--dashboard-bg)}.global-search input,.search-box input{width:100%;min-height:42px;padding:0 14px;color:var(--dashboard-text);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.topbar-actions,.toolbar,.filter-row,.panel-action,.density-toggle{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-actions{justify-content:end;gap:8px;flex-wrap:wrap}.global-filter-strip{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:-2px 0 2px;padding:8px;border:1px solid var(--dashboard-border);border-radius:8px;background:#f8fbffc7}.global-filter-strip strong,.global-filter-strip label{display:grid;gap:4px;color:var(--dashboard-label);font-size:11px;font-weight:800;text-transform:uppercase}.global-filter-strip strong{align-self:center;grid-auto-flow:column;align-items:center;color:var(--dashboard-text)}.global-filter-strip select,.global-filter-strip input{min-height:32px;min-width:112px;padding:0 9px;color:var(--dashboard-text);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.global-filter-strip input[type=date]{min-width:142px}.topbar-select{display:grid;gap:3px;color:var(--dashboard-label);font-size:11px;font-weight:800;text-transform:uppercase}.topbar-select select{min-height:34px;min-width:116px;padding:0 30px 0 10px;color:var(--dashboard-text);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.topbar-select select:disabled{cursor:not-allowed;opacity:.55}.topbar-select small{max-width:210px;color:var(--dashboard-muted);font-size:10px;font-weight:700;line-height:1.25;text-transform:none}.topbar-toggle{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;color:var(--dashboard-label);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a;font-size:12px;font-weight:800}.topbar-toggle input{width:15px;height:15px;accent-color:var(--dashboard-accent)}.topbar-toggle:has(input:disabled){cursor:not-allowed;opacity:.55}.row-limit-control{display:flex;align-items:center;gap:6px 8px;flex:1 1 500px;flex-wrap:wrap;min-width:0;max-width:700px;padding:6px 8px;color:var(--dashboard-label);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.row-limit-heading,.row-limit-entry{display:flex;align-items:center;justify-content:start;gap:7px}.row-limit-heading span{font-size:11px;font-weight:800;text-transform:uppercase;white-space:nowrap}.row-limit-heading strong{color:var(--dashboard-text);font-size:13px}.row-limit-range-meta{display:flex;align-items:center;justify-content:start;gap:8px;color:#6b778c;font-size:10px;font-weight:700;text-transform:uppercase;white-space:nowrap}.row-limit-range-meta span:first-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-range-meta span:last-child{color:var(--dashboard-accent-strong)}.row-limit-control input[type=range]{width:clamp(100px,9vw,140px);accent-color:var(--dashboard-accent)}.row-limit-entry input[type=number]{width:86px;min-height:28px;padding:0 8px;color:var(--dashboard-text);border:1px solid var(--dashboard-border);border-radius:7px}.row-limit-no-cap{display:inline-flex;align-items:center;gap:5px;min-height:28px;color:#334155;font-size:11px;font-weight:800;white-space:nowrap}.row-limit-no-cap input{width:14px;height:14px;margin:0;accent-color:var(--dashboard-accent)}.row-limit-hint{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-status{display:flex;align-items:center;justify-content:start;gap:8px;min-height:26px;padding:4px 7px;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;font-size:11px;font-weight:800}.row-limit-status:not(.is-loading){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-limit-status.is-loading{justify-content:start;color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.row-loading-dot{width:8px;height:8px;flex:0 0 auto;background:currentcolor;border-radius:999px;animation:row-loading-pulse .9s ease-in-out infinite}@keyframes row-loading-pulse{0%,to{opacity:.35}50%{opacity:1}}.row-limit-load-all{min-height:28px;padding:0 10px;color:var(--dashboard-accent-strong);background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;font-weight:900;white-space:nowrap}@media (min-width: 1181px){.topbar-actions{align-items:start}}.row-limit-load-more{display:flex;align-items:center;justify-content:start;gap:6px;color:var(--dashboard-muted);font-size:11px;font-weight:700}.row-limit-load-more span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-load-more button{min-height:26px;padding:0 8px;color:var(--dashboard-accent-strong);background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;font-weight:800;white-space:nowrap}.row-limit-entry button{min-height:28px;padding:0 10px;color:var(--dashboard-surface);background:var(--dashboard-accent);border:0;border-radius:7px;font-weight:800}.row-limit-entry button:disabled,.row-limit-load-all:disabled,.row-limit-load-more button:disabled,.row-limit-control input:disabled{cursor:not-allowed;opacity:.55}@media (max-width: 760px){.topbar-actions{flex-wrap:wrap}.row-limit-control{flex:1 1 100%;flex-wrap:wrap;max-width:100%}}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}.dashboard-grid{display:grid;gap:16px}.dashboard-grid.three{grid-template-columns:1.2fr 1fr 1fr}.dashboard-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-all{grid-column:1 / -1}.panel,.metric-card,.side-panel .panel{min-width:0;border:1px solid #d9e2ef;border-radius:8px;background:var(--dashboard-surface);box-shadow:0 1px 2px #0f172a0a}.panel{min-width:0;padding:16px}.panel-header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-action-group{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.panel-header h2{margin:0;color:#122036;font-size:15px}.metric-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;min-height:132px;padding:16px}.metric-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:var(--dashboard-surface);background:var(--dashboard-accent)}.metric-card-green .metric-icon{background:#059669}.metric-card-purple .metric-icon{background:#7c3aed}.metric-card-orange .metric-icon{background:#f59e0b}.metric-card-red .metric-icon{background:#dc2626}.metric-copy{min-width:0}.metric-copy p{margin:0;color:var(--dashboard-label);font-weight:600}.metric-copy strong{display:block;margin-top:4px;color:var(--dashboard-text);font-size:27px;line-height:1.1}.metric-copy small,.muted{color:var(--dashboard-muted)}.trend{display:block;margin:9px 0 6px;font-weight:700}.trend.positive{color:#059669}.trend.negative{color:#dc2626}.toolbar-button,.primary-button,.inline-button,.icon-button,.density-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid #ccd8e8;border-radius:8px;color:var(--dashboard-text);background:var(--dashboard-surface)}.toolbar-button:hover,.inline-button:hover,.icon-button:hover,.density-toggle button:hover{border-color:#93b4e8;color:var(--dashboard-accent-strong)}.toolbar-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.55}.to-top-button{position:fixed;right:24px;bottom:24px;z-index:30;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 13px;color:var(--dashboard-accent-strong);background:var(--dashboard-surface);border:1px solid #c4d4ea;border-radius:8px;box-shadow:0 12px 32px #0f172a2e;font-size:12px;font-weight:900}.to-top-button:hover,.to-top-button:focus-visible{border-color:#93b4e8;background:#f4f8ff}.column-menu-wrap{position:relative;display:inline-flex}.toolbar-count{min-width:20px;padding:2px 6px;border-radius:999px;color:var(--dashboard-accent-strong);background:#eaf1ff;font-size:11px;font-weight:800}.column-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(280px,82vw);padding:12px;border:1px solid var(--dashboard-border);border-radius:8px;background:var(--dashboard-surface);box-shadow:0 18px 42px #0f172a29}.column-menu-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.column-menu-head strong{color:var(--dashboard-text);font-size:13px}.column-menu-head button{padding:0;border:0;color:var(--dashboard-accent-strong);background:transparent;font-size:12px;font-weight:800}.column-menu-options{display:grid;gap:8px}.column-menu-options label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;min-height:28px;color:#243248;font-size:13px;font-weight:700}.column-menu-options label.locked{color:#7b8798}.column-menu-options input{width:16px;height:16px}.primary-button{color:var(--dashboard-surface);background:var(--dashboard-accent);border-color:var(--dashboard-accent-strong)}.primary-button.stretch{width:100%}.status-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:24px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;color:#475569;background:#eef2f7}.status-badge.blue{color:var(--dashboard-accent-strong);background:#eaf1ff}.status-badge.green{color:#047857;background:#dff8ea}.status-badge.orange{color:#b45309;background:#fff1d6}.status-badge.red{color:#b91c1c;background:#fee2e2}.chart-scroll{width:100%;overflow-x:auto}.table-scroll{width:100%;max-height:min(70vh,760px);overflow:auto}.line-chart-frame{display:grid;gap:8px}.chart-scroll-cue{justify-self:end;color:var(--dashboard-muted);font-size:12px;font-weight:800}.chart-scroll-shell{position:relative;min-width:0}.line-chart-frame .chart-scroll{padding-bottom:4px;scroll-behavior:smooth;scrollbar-color:#94a3b8 #eef2f7}.line-chart-frame .chart-scroll:focus-visible{outline:3px solid var(--dashboard-focus);outline-offset:2px}.chart-axis-overlay{position:absolute;top:0;left:0;pointer-events:none}.chart-axis-bg{fill:var(--dashboard-surface)}.table-window{display:grid;gap:10px}.table-window-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--dashboard-muted);font-size:12px;font-weight:800}.recent-calls-footer>span{display:grid;gap:2px}.recent-calls-footer small{color:var(--dashboard-subtle);font-size:11px;font-weight:750}.chart{display:block}.grid-line{stroke:#dfe7f2;stroke-dasharray:2 2}.axis-line{stroke:#b8c7da}.axis-text,.axis-label{fill:var(--dashboard-subtle);font-size:12px}.confidence-line{stroke:#93b4e8;stroke-width:7;stroke-linecap:round;opacity:.35}.chart-legend,.donut-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;color:#334155;font-size:12px}.chart-legend span,.donut-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i,.donut-legend i{width:10px;height:10px;border-radius:50%}.donut-wrap{display:grid;grid-template-columns:180px minmax(160px,1fr);gap:12px;align-items:center}.donut{width:180px;height:180px}.donut-value{fill:var(--dashboard-text);font-size:18px;font-weight:800}.donut-label{fill:var(--dashboard-muted);font-size:11px}.bar-list{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:minmax(92px,1fr) minmax(150px,2fr) 70px;gap:10px;align-items:center}.bar-row span{color:#334155}.bar-row strong,.num{text-align:right;font-variant-numeric:tabular-nums}.bar-track{height:10px;overflow:hidden;border-radius:999px;background:#edf2f8}.bar-track i{display:block;height:100%;border-radius:inherit}.data-table{width:100%;min-width:760px;border-collapse:collapse;font-size:13px}.data-table.compact{font-size:12px}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid #e5edf6;text-align:left;white-space:nowrap}.data-table th{position:sticky;top:0;z-index:2;color:#4b5d76;background:#f8fafc;font-size:12px}.data-table .sticky-column{position:sticky;left:0;z-index:1;min-width:180px;max-width:320px;background:var(--dashboard-surface);box-shadow:1px 0 #dbe6f3}.data-table th.sticky-column{z-index:3;background:#f8fafc}.sort-header{display:inline-flex;align-items:center;gap:5px;width:100%;padding:0;border:0;color:inherit;background:transparent;font:inherit;font-weight:800;text-align:left}.sort-header:hover{color:var(--dashboard-accent-strong)}.data-table tr.is-clickable{cursor:pointer}.data-table tr.is-clickable:hover td,.data-table tr.selected-row td{background:#eef5ff}.data-table tr.is-activatable:focus-visible td{background:#eef5ff;outline:2px solid #93b4e8;outline-offset:-2px}.data-table tr.selected-row td:first-child{box-shadow:inset 3px 0 0 var(--dashboard-accent)}.table-action-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:28px;padding:0 9px;border:1px solid #ccd8e8;border-radius:7px;color:var(--dashboard-accent-strong);background:var(--dashboard-surface);font-size:12px;font-weight:800;white-space:nowrap}.table-action-button:hover,.table-action-button:focus-visible{border-color:#93b4e8;background:#f4f8ff}.table-action-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.flags{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.compact-flags{justify-content:flex-start}.flag{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:1px 7px;border-radius:999px;color:#6d28d9;background:#f5e8ff;font-size:11px;font-weight:800;white-space:nowrap}.signal-puck{min-width:24px;max-width:54px;padding:1px 5px;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.signal-puck.more{color:var(--dashboard-accent-strong);background:#e0ecff}.empty-cell{color:var(--dashboard-muted);text-align:center}.pill,.cache-pill,.score{display:inline-flex;min-width:46px;justify-content:center;padding:3px 8px;border-radius:999px;background:#eef2ff;color:var(--dashboard-accent-strong);font-size:12px;font-weight:700}.effort-high{color:#b91c1c;background:#fee2e2}.effort-medium{color:#b45309;background:#fff1d6}.effort-low,.cache-pill{color:#047857;background:#dff8ea}.score{color:#92400e;background:#fef3c7}.filter-row{justify-content:space-between}.search-box{flex:1;min-width:240px}.filter-field{display:grid;gap:5px;min-width:150px;color:var(--dashboard-label);font-size:12px;font-weight:800}.filter-field select{min-height:36px;padding:0 34px 0 10px;border:1px solid var(--dashboard-border);border-radius:8px;color:var(--dashboard-text);background:var(--dashboard-surface)}.filter-status{color:var(--dashboard-muted);font-size:11px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.filter-status[data-state=active]{color:var(--dashboard-accent-strong)}.filter-status[data-state=error]{color:#b42318}.density-toggle{padding:3px;border:1px solid #ccd8e8;border-radius:8px;background:var(--dashboard-surface)}.density-toggle button{min-height:30px;border:0}.density-toggle .active{color:var(--dashboard-surface);background:var(--dashboard-accent)}.cache-window-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cache-window-strip span{display:grid;gap:2px;padding:10px;border:1px solid #d8e3f2;border-radius:8px;color:#0f172a;background:color-mix(in srgb,#2563eb calc(var(--intensity) * 35%),#f8fbff)}.cache-window-strip small{color:#52627a;font-size:11px}.cache-window-strip strong{font-size:15px}.detail-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 16px}.detail-stat-grid.vertical{grid-template-columns:1fr}.detail-stat-grid span,.mini-evidence{padding:12px;border:1px solid #e1e8f2;border-radius:8px;color:#52627a;background:#fbfdff}.table-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,420px);gap:16px;align-items:start}.table-detail-layout.detail-collapsed{grid-template-columns:minmax(0,1fr)}.call-investigator-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);gap:16px;align-items:start}.drilldown-panel{position:sticky;top:18px}.call-summary,.action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.drilldown-tabs{display:flex;gap:4px;margin:0 0 14px;padding:3px;border:1px solid #d8e3f2;border-radius:8px;background:#f8fafc;overflow-x:auto}.drilldown-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:0 6px;border:0;border-radius:6px;color:#52627a;background:transparent;font-size:12px;font-weight:800;flex:1 0 76px;white-space:nowrap}.drilldown-tabs button.active{color:#1d4ed8;background:#fff;box-shadow:0 1px 3px #0f172a14}.drilldown-tab-panel{display:grid;gap:12px}.call-id{padding:4px 8px;border:1px solid #d8e3f2;border-radius:7px;color:#52627a;background:#f8fafc;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:800}.drilldown-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.drilldown-metric-grid.wide{grid-template-columns:repeat(6,minmax(118px,1fr))}.investigator-evidence{display:grid;gap:12px}.context-attribution-module{display:grid;gap:10px}.serialized-breakdown{display:grid;gap:8px;padding:10px;border:1px solid #d9e4f2;border-radius:7px;background:#f8fbff}.serialized-breakdown.deferred{border-style:dashed}.serialized-breakdown-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.serialized-breakdown-heading strong{color:#0f172a;font-size:13px}.serialized-breakdown-heading span{color:#64748b;font-size:11px;text-align:right}.serialized-bucket-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.serialized-bucket{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid #e1e8f2;border-radius:7px;background:#fff}.serialized-bucket span{min-width:0;overflow:hidden;color:#52627a;font-size:10px;font-weight:850;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.serialized-bucket strong{color:#102033;font-size:17px}.serialized-bucket small{min-width:0;overflow:hidden;color:#64748b;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.drilldown-metric{display:grid;gap:3px;min-height:82px;padding:11px;border:1px solid #e1e8f2;border-radius:8px;background:#fbfdff}.drilldown-metric small{color:#61728a;font-weight:800}.drilldown-metric strong{color:#0f172a;font-size:20px;line-height:1.1}.drilldown-metric em{color:#52627a;font-style:normal;font-size:12px}.composition-card,.cache-mini-card,.locked-context-card,.recommendation-box{padding:12px;border:1px solid #e1e8f2;border-radius:8px;background:#fff}.composition-head,.cache-mini-card>div:first-child{display:flex;justify-content:space-between;gap:10px;color:#52627a;font-size:12px}.composition-head strong,.cache-mini-card strong,.locked-context-card strong{color:#0f172a;font-size:13px}.diagnostic-interpretation{margin:8px 0 0;color:#334155;font-size:12px;line-height:1.45}.investigation-readout-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.investigation-readout-card{display:grid;align-content:start;gap:6px;min-width:0;padding:10px;border:1px solid #d9e4f2;border-radius:7px;background:#f8fbff}.investigation-readout-card span{color:#52627a;font-size:10px;font-weight:850;text-transform:uppercase}.investigation-readout-card p{margin:0;color:#0f172a;font-size:12px;line-height:1.45}.investigation-readout-card small{color:#64748b;font-size:11px;line-height:1.35}.cache-verdict-card{display:grid;gap:9px;margin-top:10px;padding:10px;border:1px solid #d9e4f2;border-left:3px solid #64748b;border-radius:7px;background:#f8fbff}.cache-verdict-warm{border-left-color:#059669}.cache-verdict-partial{border-left-color:#2563eb}.cache-verdict-spike{border-left-color:#d97706}.cache-verdict-cold{border-left-color:#dc2626}.cache-verdict-main{display:grid;gap:5px}.cache-diagnostic-pill{width:fit-content;padding:3px 7px;color:#0f172a;background:#e8eef7;border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase}.cache-verdict-main p{margin:0;color:#334155;font-size:12px;line-height:1.45}.cache-verdict-meta{display:grid;gap:4px;color:#52627a;font-size:11px;line-height:1.35}.cache-delta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.cache-delta-metric{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid #e1e8f2;border-radius:7px;background:#fbfdff}.cache-delta-metric small{color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase}.cache-delta-metric strong{color:#102033;font-size:17px;line-height:1.1}.cache-delta-metric em{min-width:0;overflow:hidden;color:#52627a;font-size:11px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.context-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:center}.context-action-grid .toggle-row{min-height:36px;padding:8px 10px;border:1px solid #dbe5f1;border-radius:8px;background:#f8fafc;color:#243248;font-size:12px;font-weight:800}.context-action-grid .context-field{display:grid;gap:4px;min-height:48px;padding:8px 10px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#243248;font-size:11px;font-weight:800;text-transform:uppercase}.context-action-grid .context-field select{min-height:30px;color:#102033;border:1px solid #cfd9e8;border-radius:7px;background:#fff;font-size:12px;font-weight:700;text-transform:none}.context-state-note{margin:0;padding:10px 12px;border:1px solid #bfdbfe;border-radius:8px;color:#1e3a8a;background:#eff6ff;font-size:12px;font-weight:800}.context-state-note.error{border-color:#fecaca;color:#991b1b;background:#fef2f2}.context-evidence{display:grid;gap:10px}.context-evidence-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.context-note{margin:0;padding:9px 10px;border:1px solid #dbe7f5;border-radius:8px;background:#f8fbff;color:#475569;font-size:12px;line-height:1.5}.context-followup-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-start}.context-entry-count-note{color:#64748b;font-size:12px;font-weight:700}.context-entry-list{display:grid;gap:8px}.context-entry{overflow:hidden;border:1px solid #e1e8f2;border-radius:8px;background:#fff}.context-entry-summary{display:block;cursor:pointer;list-style:none}.context-entry-summary::-webkit-details-marker{display:none}.context-entry-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #e8eef6;background:#f8fafc;color:#52627a;font-size:12px}.context-entry-meta strong{color:#0f172a}.context-entry-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0}.context-entry-chips span{padding:3px 7px;color:#334155;background:#eef4fb;border:1px solid #d9e4f2;border-radius:999px;font-size:10px;font-weight:800}.context-entry-actions{display:flex;justify-content:flex-start;padding:8px 10px 0}.context-entry-compaction{display:grid;gap:6px;margin:8px 10px 0;padding:9px;border:1px solid #dbe7f5;border-radius:8px;background:#f8fbff;color:#334155;font-size:12px}.context-entry-compaction>strong{color:#0f172a}.context-replacement-history{display:grid;gap:6px}.context-replacement-entry{display:grid;gap:4px;padding:8px;border:1px solid #e3ebf6;border-radius:6px;background:#fff}.context-replacement-entry pre{max-height:180px}.context-entry pre{max-height:220px;margin:0;padding:10px;overflow:auto;white-space:pre-wrap;word-break:break-word;color:#172033;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.composition-bar{display:flex;overflow:hidden;height:12px;margin:10px 0;border-radius:999px;background:#e5edf6}.composition-bar i{display:block;min-width:3px}.composition-legend{display:flex;flex-wrap:wrap;gap:8px 12px;color:#52627a;font-size:12px;font-weight:700}.composition-legend span{display:inline-flex;align-items:center;gap:5px}.composition-legend i{width:8px;height:8px;border-radius:999px}.thread-context-module{display:grid;gap:14px}.thread-context-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:14px;align-items:start}.thread-context-grid h3{margin:0 0 8px;color:#172033;font-size:14px}.detail-list.compact{margin:22px 0 0}.cache-mini-card{display:grid;gap:10px}.cache-mini-card span{color:#61728a}.cache-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;height:92px;align-items:end}.cache-bars span{display:grid;grid-template-rows:1fr auto;gap:6px;min-width:0;height:100%;text-align:center}.cache-bars i{align-self:end;width:100%;border-radius:6px 6px 3px 3px;opacity:.9}.cache-bars em{color:#52627a;font-size:11px;font-style:normal;font-weight:800}.locked-context-card,.call-decision-card,.recommendation-box{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.call-decision-card{grid-template-columns:minmax(0,1fr);margin:12px 0;padding:12px;border:1px solid #d8e3f2;border-radius:8px;background:#f8fafc}.locked-context-card svg{color:#b45309}.recommendation-box{color:#92400e;background:#fff8e8}.recommendation-box svg{color:#b45309}.recommendation-box p,.locked-context-card p{margin:0;color:#52627a;line-height:1.5}.detail-list{display:grid;gap:8px;margin:0 0 12px}.detail-list div{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:10px;padding:8px 0;border-bottom:1px solid #e5edf6}.detail-list dt{color:#61728a;font-weight:800}.detail-list dd{min-width:0;margin:0;color:#0f172a;font-weight:700;overflow-wrap:anywhere}.detail-collapse{margin:10px 0 12px;border:1px solid #dbe5f1;border-radius:8px;background:#f8fafc}.detail-collapse summary{cursor:pointer;padding:10px 12px;color:#1d4ed8;font-size:12px;font-weight:900}.detail-collapse-body{padding:0 12px 12px}.detail-collapse-body .detail-list{margin:0}.privacy-note,.empty-state{margin:10px 0 0;color:#61728a;font-size:12px;line-height:1.5}.evidence-list span{grid-template-columns:minmax(0,1fr) auto}.compact-list{padding-left:18px}.compact-list li+li{margin-top:6px}.form-grid label{display:grid;gap:6px;color:#42526a;font-weight:700}.form-grid input,.form-grid select{min-height:36px;padding:0 10px;border:1px solid #cfd9e8;border-radius:8px;background:#fff}.toggle-row{grid-template-columns:auto minmax(0,1fr)!important;align-items:center;justify-content:start}.heatmap-scroll{max-height:min(62vh,620px);overflow:auto}.heatmap{min-width:720px;overflow:hidden;border:1px solid #e1e8f2;border-radius:8px}.heatmap-head,.heatmap-row{display:grid;grid-template-columns:150px repeat(var(--heatmap-columns, 6),minmax(68px,1fr))}.heatmap-head span,.heatmap-row strong,.heatmap-row span{padding:10px;border-bottom:1px solid #e1e8f2;border-right:1px solid #e1e8f2;font-size:12px}.heatmap-head span{position:sticky;top:0;z-index:2;color:#4b5d76;background:#f8fafc;font-weight:800}.heatmap .sticky-column{position:sticky;left:0;z-index:1;min-width:150px;background:var(--dashboard-surface);box-shadow:1px 0 #dbe6f3}.heatmap-head .sticky-column{z-index:3;background:#f8fafc}.heatmap-row span{color:#064e3b;background:color-mix(in srgb,#22c55e calc(var(--intensity) * 78%),#f8fafc);text-align:center}.executive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.executive-card{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:14px;border:1px solid #d8e5f7;border-radius:8px;background:#f8fbff}.executive-card strong,.executive-card p{grid-column:2;margin:0}.executive-card p{color:#52627a}.diagnostic-sections{grid-column:1 / 3;display:grid;gap:16px}.diagnostic-row{display:grid;grid-template-columns:minmax(260px,420px) minmax(220px,1fr) 180px;gap:16px;align-items:center}.mini-evidence{display:grid;gap:6px}.report-card{grid-template-columns:minmax(0,1fr) auto auto;overflow:hidden}.report-card>*{min-width:0}.report-card.active{border-color:#93b4e8;background:#f4f8ff}@media (max-width: 1180px){.metric-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.dashboard-grid.three,.dashboard-grid.two,.table-detail-layout,.workbench-layout,.lab-layout,.cache-layout,.diagnostics-layout,.reports-layout,.thread-layout,.call-investigator-layout{grid-template-columns:1fr}.diagnostic-sections,.call-investigator-layout .span-all,.span-all{grid-column:1}.drilldown-metric-grid.wide{grid-template-columns:repeat(3,minmax(0,1fr))}.investigation-readout-grid,.serialized-bucket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-panel{grid-column:1}.drilldown-panel{position:static}}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;gap:12px;padding:14px 12px}.primary-nav{display:flex;gap:8px;overflow-x:auto;padding:4px 16px 8px 0;scrollbar-width:thin;scrollbar-color:#40628d transparent;box-shadow:inset -22px 0 18px -18px #93a9c5b8}.primary-nav button{flex:0 0 auto;width:auto;white-space:nowrap}.secondary-block,.status-card{display:none}.topbar,.page-title-row{grid-template-columns:minmax(0,1fr);display:grid}.workspace{padding:16px 12px 24px}.topbar-actions,.toolbar{justify-content:start}.page-title-row>button,.page-title-row .primary-button,.page-title-row .toolbar-button{justify-self:start;max-width:100%}.column-menu-wrap{position:static}.column-menu{position:fixed;top:88px;right:12px;left:12px;width:auto;max-height:calc(100vh - 112px);overflow:auto}.context-action-grid,.context-evidence-summary,.drilldown-metric-grid,.drilldown-metric-grid.wide,.investigation-readout-grid,.serialized-bucket-grid,.metric-grid,.executive-grid,.diagnostic-row,.detail-stat-grid,.table-detail-layout,.thread-context-grid{grid-template-columns:1fr}.drilldown-panel{position:static}.report-card{grid-template-columns:minmax(0,1fr);align-items:start}.report-card p,.page-title-row p{overflow-wrap:anywhere}.donut-wrap{grid-template-columns:1fr}.to-top-button{right:14px;bottom:14px}}:root{--workspace-surface: #fbfdff;--workspace-surface-muted: #f8fafc;--workspace-surface-active: #eff6ff;--workspace-row-active: #eef5ff;--workspace-border: #e1e8f2;--workspace-border-muted: #e0e8f3;--workspace-border-active: #93c5fd;--workspace-row-border-active: #93b4e8;--workspace-text: #172033;--workspace-muted: #61728a;--workspace-accent: #2563eb}.workbench-layout,.lab-layout,.cache-layout,.diagnostics-layout,.reports-layout,.thread-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr) minmax(260px,340px);gap:16px;align-items:start}.thread-layout{grid-template-columns:minmax(260px,380px) minmax(0,1fr) minmax(260px,340px)}.lab-layout,.reports-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.cache-layout,.diagnostics-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(280px,340px)}@media (max-width: 760px){.workbench-layout,.lab-layout,.cache-layout,.diagnostics-layout,.reports-layout,.thread-layout{grid-template-columns:minmax(0,1fr)}.workbench-layout .span-all,.lab-layout .span-all,.cache-layout .span-all,.diagnostics-layout .span-all,.reports-layout .span-all,.thread-layout .span-all{grid-column:1}}.reports-layout>.stacked-panels,.lab-layout>.stacked-panels{grid-column:1}.finding-list,.report-list,.index-list,.setting-list,.form-grid,.evidence-list{display:grid;gap:10px}.finding-card,.report-card,.index-list span,.setting-list span,.evidence-list span{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--workspace-border);border-radius:8px;background:var(--workspace-surface)}.report-card{width:100%;color:inherit;text-align:left;cursor:pointer}.finding-card.active,.report-card.active{border-color:var(--workspace-border-active);background:var(--workspace-surface-active)}.finding-card{grid-template-columns:30px minmax(0,1fr) auto}.finding-rank,.executive-card span,.index-list i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#fff;background:var(--workspace-accent);font-weight:800;font-style:normal}.finding-body h3,.side-panel h3{margin:0 0 4px;font-size:14px}.finding-body p,.side-panel p,.report-card p,.compact-list{margin:0;color:#52627a}.finding-stats{display:flex;gap:12px;margin-top:8px}.finding-stats strong,.detail-stat-grid strong{display:block;color:#0f172a;font-size:20px}.thread-lifecycle-card,.thread-relationships-card,.thread-impact-card,.thread-status-card,.thread-secondary-card{display:grid;gap:10px;margin-top:12px}.lifecycle-grid,.impact-thread-grid,.relationship-grid,.status-thread-grid,.secondary-thread-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lifecycle-grid span,.impact-thread-grid span,.relationship-grid span,.status-thread-grid span,.secondary-thread-grid span{min-width:0;padding:9px;color:#52627a;background:var(--workspace-surface-muted);border:1px solid #d8e3f2;border-radius:8px;font-size:11px;font-weight:800;text-transform:uppercase}.lifecycle-grid strong,.impact-thread-grid strong,.relationship-grid strong,.status-thread-grid strong,.secondary-thread-grid strong{display:block;margin-bottom:3px;color:#102033;font-size:13px;line-height:1.25;text-transform:none}.inline-button{grid-column:2 / -1;justify-self:start;min-height:32px}.side-panel{display:grid;gap:16px}.finding-module{display:grid;gap:10px;margin-top:14px}.thread-mini-timeline{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.thread-mini-timeline li{display:grid;grid-template-columns:minmax(72px,.8fr) minmax(0,1fr);gap:4px 10px;padding:9px 10px;border:1px solid var(--workspace-border-muted);border-radius:7px;background:var(--workspace-surface-muted)}.thread-mini-timeline li.active{border-color:var(--workspace-row-border-active);background:var(--workspace-row-active)}.thread-mini-timeline li.has-row-action{cursor:pointer}.thread-mini-timeline li.has-row-action:hover,.thread-mini-timeline li.has-row-action:focus-visible{border-color:var(--workspace-row-border-active);background:var(--workspace-row-active);outline:none}.thread-mini-timeline span,.thread-mini-timeline em{color:var(--workspace-muted);font-size:11px;font-style:normal}.thread-mini-timeline strong{min-width:0;color:var(--workspace-text);font-size:12px;overflow-wrap:anywhere}.thread-mini-timeline em{grid-column:2}.thread-call-flags,.thread-call-meta{grid-column:2;display:flex;gap:6px;flex-wrap:wrap}.thread-call-flags span,.thread-call-meta span{padding:3px 6px;border:1px solid #d8e3f2;border-radius:999px;background:#fff;color:#52627a;font-size:10px;font-weight:800;text-transform:uppercase}.thread-call-flags .flags{gap:4px;padding:0;border:0;background:transparent}.thread-call-flags .signal-puck{min-height:18px;border:0;color:#6d28d9;background:#f5e8ff;font-size:10px}.thread-call-flags .signal-puck.more{color:var(--dashboard-accent-strong);background:#e0ecff}.thread-call-recommendation{grid-column:2;margin:0;color:#52627a;font-size:11px;font-weight:700}.thread-context-bar{grid-column:2;height:6px;overflow:hidden;border-radius:999px;background:#e7eef8}.thread-context-bar span{display:block;height:100%;border-radius:inherit}.thread-context-bar .low{background:#60a5fa}.thread-context-bar .medium{background:#f59e0b}.thread-context-bar .high{background:#ef4444}.thread-mini-timeline .table-action-button,.thread-mini-timeline .thread-call-actions{grid-column:2;justify-self:start}.thread-call-list{display:grid;gap:10px;margin-top:14px}.thread-call-controls,.thread-call-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.mini-select-field{display:flex;align-items:center;gap:8px;color:#52627a;font-size:11px;font-weight:800;text-transform:uppercase}.mini-select-field select{min-height:30px;color:#102033;border:1px solid #cfd9e8;border-radius:7px;background:#fff;font-size:12px;font-weight:700;text-transform:none}.thread-call-pager span{color:var(--workspace-muted);font-size:11px;font-weight:700}.child-load-more{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;color:#64748b;font-size:11px;font-weight:800}.pager-button{min-height:28px;padding:0 10px;color:#1d4ed8;background:var(--workspace-surface-active);border:1px solid #bfdbfe;border-radius:7px;font-weight:850}.pager-button:disabled{cursor:not-allowed;opacity:.6}.thread-call-row{grid-template-columns:minmax(72px,.7fr) minmax(0,1fr) auto;align-items:center}.thread-call-row em{grid-column:2}.thread-call-row .table-action-button{grid-column:3;grid-row:1 / span 2;align-self:center}.workbench-call-row{grid-template-columns:minmax(84px,.7fr) minmax(0,1fr) auto;align-items:center}.workbench-call-row em{grid-column:2}.workbench-call-row .table-action-button{grid-column:3;grid-row:1 / span 2;align-self:center}.investigator-thread-timeline li{grid-template-columns:minmax(86px,.7fr) minmax(0,1fr) auto;align-items:center}.investigator-thread-timeline em{grid-column:2}.investigator-thread-timeline .table-action-button{grid-column:3;grid-row:1 / span 2;align-self:center}.investigator-thread-timeline .thread-call-actions{grid-column:3;grid-row:1 / span 2;align-self:center;justify-self:start}.diagnostics-layout{--diagnostics-action: #1f56c2;--diagnostics-action-hover: #eef5ff;--diagnostics-action-surface: #f8fbff;--diagnostics-border: #e1e8f2;--diagnostics-border-muted: #e8eef6;--diagnostics-border-subtle: #edf2f7;--diagnostics-focus: #93c5fd;--diagnostics-selected: #eff6ff;--diagnostics-surface: #fbfdff;--diagnostics-surface-raised: #ffffff;--diagnostics-text-emphasis: #0f172a;--diagnostics-text-muted: #64748b;--diagnostics-text-soft: #61728a;--diagnostics-text-strong: #172033}.diagnostic-source-tabs button{flex-direction:column;align-items:flex-start;min-width:96px;min-height:44px;padding:6px 8px}.diagnostic-source-tabs small{color:var(--diagnostics-text-muted);font-size:10px;font-weight:800;line-height:1.1}.diagnostic-fact-controls{display:flex;align-items:end;justify-content:space-between;gap:8px;margin:0 0 10px}.diagnostic-call-list{display:grid;gap:10px;margin-top:14px}.diagnostic-call-row{grid-template-columns:minmax(84px,.7fr) minmax(0,1fr) auto;align-items:center}.diagnostic-call-row em{grid-column:2}.diagnostic-call-row .table-action-group{grid-column:3;grid-row:1 / span 2;align-self:center}.diagnostics-snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.diagnostics-snapshot-card{display:grid;gap:11px;min-width:0;padding:12px;border:1px solid var(--diagnostics-border);border-radius:8px;background:var(--diagnostics-surface)}.diagnostics-snapshot-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.diagnostics-snapshot-card-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.diagnostics-snapshot-card-actions .diagnostics-section-refresh{min-height:26px;padding:5px 8px;font-size:11px;line-height:1.1}.diagnostics-snapshot-card-head h3,.diagnostics-snapshot-card-head p{margin:0}.diagnostics-snapshot-card-head h3{color:var(--diagnostics-text-emphasis);font-size:15px}.diagnostics-snapshot-card-head p{margin-top:3px;color:var(--diagnostics-text-soft);font-size:12px}.diagnostics-snapshot-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.diagnostics-snapshot-metrics span{display:grid;gap:2px;min-width:0;min-height:58px;padding:8px;border:1px solid var(--diagnostics-border-muted);border-radius:7px;background:var(--diagnostics-surface-raised)}.diagnostics-snapshot-metrics small{color:var(--diagnostics-text-soft);font-size:11px;font-weight:800}.diagnostics-snapshot-metrics strong{overflow:hidden;color:var(--diagnostics-text-emphasis);font-size:16px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.diagnostics-snapshot-rows{display:grid;gap:6px;min-width:0;margin:0;padding:0;list-style:none}.diagnostics-snapshot-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:40px;padding:8px;border:1px solid var(--diagnostics-border-subtle);border-radius:7px;background:var(--diagnostics-surface-raised)}.diagnostics-snapshot-rows li.has-row-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;padding:0;overflow:hidden}.diagnostics-snapshot-rows li.empty-state{display:block}.diagnostics-snapshot-row-button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.diagnostics-snapshot-row-button:hover,.diagnostics-snapshot-row-button:focus-visible{background:var(--diagnostics-action-hover);outline:none}.diagnostics-snapshot-row-copy{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:70px;padding:8px;border:0;border-left:1px solid var(--diagnostics-border-subtle);background:var(--diagnostics-action-surface);color:var(--diagnostics-action);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.diagnostics-snapshot-row-copy:hover,.diagnostics-snapshot-row-copy:focus-visible{background:var(--diagnostics-action-hover);outline:none}.diagnostics-snapshot-rows span{display:grid;min-width:0}.diagnostics-snapshot-rows strong,.diagnostics-snapshot-rows em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostics-snapshot-rows strong{color:var(--diagnostics-text-strong);font-size:12px}.diagnostics-snapshot-rows em{color:var(--diagnostics-text-soft);font-size:11px;font-style:normal}.diagnostics-snapshot-rows b{color:var(--diagnostics-text-emphasis);font-size:12px;font-weight:800;white-space:nowrap}.diagnostics-snapshot-rows .diagnostics-snapshot-row-open{display:inline-flex;align-items:center;gap:5px;color:var(--diagnostics-action);font-size:12px;font-weight:800;white-space:nowrap}.diagnostics-snapshot-row-depth{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--diagnostics-text-muted);font-size:12px;font-weight:800}.diagnostics-snapshot-row-children{grid-column:1 / -1;margin:0 8px 8px;padding:8px 10px;border-top:1px solid var(--diagnostics-border-subtle);color:var(--diagnostics-text-muted);font-size:12px}.diagnostics-snapshot-row-children summary{cursor:pointer;font-weight:800}.diagnostics-snapshot-row-children ul{display:grid;gap:5px;margin:8px 0 0;padding:0;list-style:none}.diagnostics-snapshot-row-children li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:0;padding:0;border:0;background:transparent}.diagnostics-snapshot-row-children span{display:block;min-width:0;overflow:hidden;color:var(--diagnostics-text-soft);text-overflow:ellipsis;white-space:nowrap}.diagnostic-fact-list{display:grid;gap:8px}.diagnostic-fact-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;width:100%;padding:10px;border:1px solid var(--diagnostics-border);border-radius:8px;color:inherit;background:var(--diagnostics-surface)}.diagnostic-fact-card:hover,.diagnostic-fact-card.active{border-color:var(--diagnostics-focus);background:var(--diagnostics-selected)}.diagnostic-fact-select{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;width:100%;padding:0;border:0;color:inherit;background:transparent;text-align:left}.diagnostic-fact-select:focus-visible{outline:2px solid var(--diagnostics-focus);outline-offset:4px}.diagnostic-fact-select span:first-child,.diagnostic-fact-select strong,.diagnostic-fact-select small{min-width:0;overflow-wrap:anywhere}.diagnostic-fact-select span:first-child{color:var(--diagnostics-text-strong);font-weight:800}.diagnostic-fact-select strong{justify-self:end;color:var(--diagnostics-text-emphasis);font-size:12px}.diagnostic-fact-select small{grid-column:1;color:var(--diagnostics-text-soft)}.diagnostic-fact-meta{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-top:3px}.diagnostic-fact-meta span{min-width:0;color:var(--diagnostics-text-strong);font-size:11px;font-weight:800;overflow-wrap:anywhere}.diagnostic-fact-meta b{display:block;margin-bottom:1px;color:var(--diagnostics-text-muted);font-size:9px;font-weight:850;line-height:1.1;text-transform:uppercase}.diagnostic-fact-card .table-action-group{grid-column:2;grid-row:2}.diagnostic-fact-call-scroll{max-height:min(58vh,560px);margin-top:8px}.diagnostic-fact-call-table{min-width:980px}.diagnostic-fact-call-table .sticky-column{min-width:210px;max-width:360px;background:var(--dashboard-surface)}.diagnostic-fact-call-table th.sticky-column{background:#f8fafc}.diagnostic-fact-call-table td strong{color:var(--diagnostics-text-strong);font-weight:800}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png
ADDED
|
Binary file
|
codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png
ADDED
|
Binary file
|
|
Binary file
|
codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png
ADDED
|
Binary file
|
codex_usage_tracking-0.14.1/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png
ADDED
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codex-usage-tracking
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/dashboard/react/assets/index.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--dashboard-bg: #f4f7fb;--dashboard-text: #102033;--dashboard-muted: #64748b;--dashboard-label: #42526a;--dashboard-subtle: #52627a;--dashboard-surface: #ffffff;--dashboard-border: #cfd9e8;--dashboard-accent: #2563eb;--dashboard-accent-strong: #1d4ed8;--dashboard-sidebar-bg: #07162b;--dashboard-sidebar-bg-raised: #0c213d;--dashboard-sidebar-bg-hover: #102847;--dashboard-sidebar-border: #254365;--dashboard-sidebar-text: #d7e4f8;--dashboard-sidebar-muted: #9eb1cc;--dashboard-sidebar-heading: #ffffff;--dashboard-focus: #60a5fa}:root{color:var(--dashboard-text);background:var(--dashboard-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh;overflow-x:hidden}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:20px;padding:22px 16px;color:#dce7f7;background:var(--dashboard-sidebar-bg);border-right:1px solid #152b4d;min-width:0;overflow-x:hidden}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;color:var(--dashboard-surface);font-size:15px}.brand span,.secondary-block span,.status-card small{color:var(--dashboard-sidebar-muted);font-size:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:1px solid #3b82f6;border-radius:8px;color:#93c5fd;background:#0b1f3a}.local-pill{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:7px 10px;border:1px solid var(--dashboard-sidebar-border);border-radius:8px;color:#e8f1ff;background:var(--dashboard-sidebar-bg-raised);font-size:12px;text-transform:uppercase;letter-spacing:0}.local-pill i{width:9px;height:9px;border-radius:50%;background:#22c55e}.environment-status{display:grid;gap:9px}.environment-status-title{color:#93a9c5;font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase}.environment-status-grid{display:flex;flex-wrap:wrap;gap:6px}.environment-chip{max-width:100%;padding:5px 8px;border:1px solid var(--dashboard-sidebar-border);border-radius:8px;color:#dbeafe;background:var(--dashboard-sidebar-bg-raised);font-size:11px;line-height:1.2}.environment-chip[data-state=ready]{border-color:#256d5b;color:#bbf7d0;background:#0f2c34}.environment-chip[data-state=warn]{border-color:#8a5d1c;color:#fed7aa;background:#332414}.environment-chip[data-state=missing]{border-color:#8f3b3f;color:#fecaca;background:#341b25}.environment-chip[data-state=neutral]{color:#dbeafe}.primary-nav,.secondary-block{display:grid;gap:6px}.primary-nav button,.secondary-block button{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:9px 10px;color:var(--dashboard-sidebar-text);background:transparent;border:0;border-radius:8px;text-align:left}.primary-nav button:hover,.secondary-block button:hover,.primary-nav button:focus-visible,.secondary-block button:focus-visible{outline:2px solid var(--dashboard-focus);outline-offset:2px;background:var(--dashboard-sidebar-bg-hover)}.primary-nav button.active{color:var(--dashboard-surface);background:var(--dashboard-accent-strong)}.secondary-block{margin-top:auto;padding-top:16px;border-top:1px solid #193252}.status-card{display:grid;gap:8px;padding:14px;border:1px solid var(--dashboard-sidebar-border);border-radius:8px;background:var(--dashboard-sidebar-bg-raised)}.status-card span{color:#93a9c5;font-size:12px;text-transform:uppercase;letter-spacing:0}.status-card strong{color:var(--dashboard-surface)}.status-card button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;color:var(--dashboard-surface);background:#14345c;border:1px solid #2f5687;border-radius:8px}.workspace{min-width:0;overflow-x:hidden;padding:16px 20px 28px}.unofficial-banner{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:7px 10px;border:1px solid #f2c46d;border-radius:8px;color:#5f3b04;background:#fff8e6;font-size:12px;line-height:1.35}.unofficial-banner svg{flex:0 0 auto;color:#b7791f}.unofficial-banner strong{color:#3f2600}.page-grid,.stacked-panels{display:grid;gap:16px}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}.page-title-row h1{margin:0;color:#0f172a;font-size:26px;line-height:1.15}.page-title-row p,.panel-header p{margin:4px 0 0;color:var(--dashboard-subtle)}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:minmax(260px,460px) minmax(0,1fr);gap:12px;align-items:center;padding:0 0 12px;background:var(--dashboard-bg)}.global-search input,.search-box input{width:100%;min-height:42px;padding:0 14px;color:var(--dashboard-text);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.topbar-actions,.toolbar,.filter-row,.panel-action,.density-toggle{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-actions{justify-content:end;gap:8px;flex-wrap:nowrap}.global-filter-strip{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:-2px 0 2px;padding:8px;border:1px solid var(--dashboard-border);border-radius:8px;background:#f8fbffc7}.global-filter-strip strong,.global-filter-strip label{display:grid;gap:4px;color:var(--dashboard-label);font-size:11px;font-weight:800;text-transform:uppercase}.global-filter-strip strong{align-self:center;grid-auto-flow:column;align-items:center;color:var(--dashboard-text)}.global-filter-strip select,.global-filter-strip input{min-height:32px;min-width:112px;padding:0 9px;color:var(--dashboard-text);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.global-filter-strip input[type=date]{min-width:142px}.topbar-select{display:grid;gap:3px;color:var(--dashboard-label);font-size:11px;font-weight:800;text-transform:uppercase}.topbar-select select{min-height:34px;min-width:116px;padding:0 30px 0 10px;color:var(--dashboard-text);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.topbar-select select:disabled{cursor:not-allowed;opacity:.55}.topbar-select small{max-width:210px;color:var(--dashboard-muted);font-size:10px;font-weight:700;line-height:1.25;text-transform:none}.topbar-toggle{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;color:var(--dashboard-label);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a;font-size:12px;font-weight:800}.topbar-toggle input{width:15px;height:15px;accent-color:var(--dashboard-accent)}.topbar-toggle:has(input:disabled){cursor:not-allowed;opacity:.55}.row-limit-control{display:flex;align-items:center;gap:6px 8px;flex:0 0 min(760px,100%);flex-wrap:nowrap;min-width:0;max-width:760px;padding:6px 8px;color:var(--dashboard-label);background:var(--dashboard-surface);border:1px solid var(--dashboard-border);border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.row-limit-heading,.row-limit-entry{display:flex;align-items:center;justify-content:start;gap:7px}.row-limit-heading span{font-size:11px;font-weight:800;text-transform:uppercase;white-space:nowrap}.row-limit-heading strong{color:var(--dashboard-text);font-size:13px}.row-limit-range-meta{display:flex;align-items:center;justify-content:start;gap:8px;color:#6b778c;font-size:10px;font-weight:700;text-transform:uppercase;white-space:nowrap}.row-limit-range-meta span:first-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-range-meta span:last-child{color:var(--dashboard-accent-strong)}.row-limit-control input[type=range]{width:clamp(100px,9vw,140px);accent-color:var(--dashboard-accent)}.row-limit-entry input[type=number]{width:86px;min-height:28px;padding:0 8px;color:var(--dashboard-text);border:1px solid var(--dashboard-border);border-radius:7px}.row-limit-no-cap{display:inline-flex;align-items:center;gap:5px;min-height:28px;color:#334155;font-size:11px;font-weight:800;white-space:nowrap}.row-limit-no-cap input{width:14px;height:14px;margin:0;accent-color:var(--dashboard-accent)}.row-limit-hint{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-status{display:flex;align-items:center;justify-content:start;gap:8px;min-height:26px;padding:4px 7px;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;font-size:11px;font-weight:800}.row-limit-status:not(.is-loading){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-status span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-limit-status.is-loading{justify-content:start;color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.row-loading-dot{width:8px;height:8px;flex:0 0 auto;background:currentcolor;border-radius:999px;animation:row-loading-pulse .9s ease-in-out infinite}@keyframes row-loading-pulse{0%,to{opacity:.35}50%{opacity:1}}.row-limit-load-all{min-height:28px;padding:0 10px;color:var(--dashboard-accent-strong);background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;font-weight:900;white-space:nowrap}.row-limit-load-more{display:flex;align-items:center;justify-content:start;gap:6px;color:var(--dashboard-muted);font-size:11px;font-weight:700}.row-limit-load-more span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row-limit-load-more button{min-height:26px;padding:0 8px;color:var(--dashboard-accent-strong);background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;font-weight:800;white-space:nowrap}.row-limit-entry button{min-height:28px;padding:0 10px;color:var(--dashboard-surface);background:var(--dashboard-accent);border:0;border-radius:7px;font-weight:800}.row-limit-entry button:disabled,.row-limit-load-all:disabled,.row-limit-load-more button:disabled,.row-limit-control input:disabled{cursor:not-allowed;opacity:.55}@media (max-width: 760px){.topbar-actions{flex-wrap:wrap}.row-limit-control{flex:1 1 100%;flex-wrap:wrap;max-width:100%}}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}.dashboard-grid{display:grid;gap:16px}.dashboard-grid.three{grid-template-columns:1.2fr 1fr 1fr}.dashboard-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.span-all{grid-column:1 / -1}.panel,.metric-card,.side-panel .panel{min-width:0;border:1px solid #d9e2ef;border-radius:8px;background:var(--dashboard-surface);box-shadow:0 1px 2px #0f172a0a}.panel{min-width:0;padding:16px}.panel-header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-action-group{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.panel-header h2{margin:0;color:#122036;font-size:15px}.metric-card{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;min-height:132px;padding:16px}.metric-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:var(--dashboard-surface);background:var(--dashboard-accent)}.metric-card-green .metric-icon{background:#059669}.metric-card-purple .metric-icon{background:#7c3aed}.metric-card-orange .metric-icon{background:#f59e0b}.metric-card-red .metric-icon{background:#dc2626}.metric-copy{min-width:0}.metric-copy p{margin:0;color:var(--dashboard-label);font-weight:600}.metric-copy strong{display:block;margin-top:4px;color:var(--dashboard-text);font-size:27px;line-height:1.1}.metric-copy small,.muted{color:var(--dashboard-muted)}.trend{display:block;margin:9px 0 6px;font-weight:700}.trend.positive{color:#059669}.trend.negative{color:#dc2626}.toolbar-button,.primary-button,.inline-button,.icon-button,.density-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 12px;border:1px solid #ccd8e8;border-radius:8px;color:var(--dashboard-text);background:var(--dashboard-surface)}.toolbar-button:hover,.inline-button:hover,.icon-button:hover,.density-toggle button:hover{border-color:#93b4e8;color:var(--dashboard-accent-strong)}.toolbar-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.55}.to-top-button{position:fixed;right:24px;bottom:24px;z-index:30;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 13px;color:var(--dashboard-accent-strong);background:var(--dashboard-surface);border:1px solid #c4d4ea;border-radius:8px;box-shadow:0 12px 32px #0f172a2e;font-size:12px;font-weight:900}.to-top-button:hover,.to-top-button:focus-visible{border-color:#93b4e8;background:#f4f8ff}.column-menu-wrap{position:relative;display:inline-flex}.toolbar-count{min-width:20px;padding:2px 6px;border-radius:999px;color:var(--dashboard-accent-strong);background:#eaf1ff;font-size:11px;font-weight:800}.column-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:min(280px,82vw);padding:12px;border:1px solid var(--dashboard-border);border-radius:8px;background:var(--dashboard-surface);box-shadow:0 18px 42px #0f172a29}.column-menu-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.column-menu-head strong{color:var(--dashboard-text);font-size:13px}.column-menu-head button{padding:0;border:0;color:var(--dashboard-accent-strong);background:transparent;font-size:12px;font-weight:800}.column-menu-options{display:grid;gap:8px}.column-menu-options label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;min-height:28px;color:#243248;font-size:13px;font-weight:700}.column-menu-options label.locked{color:#7b8798}.column-menu-options input{width:16px;height:16px}.primary-button{color:var(--dashboard-surface);background:var(--dashboard-accent);border-color:var(--dashboard-accent-strong)}.primary-button.stretch{width:100%}.status-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:24px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;color:#475569;background:#eef2f7}.status-badge.blue{color:var(--dashboard-accent-strong);background:#eaf1ff}.status-badge.green{color:#047857;background:#dff8ea}.status-badge.orange{color:#b45309;background:#fff1d6}.status-badge.red{color:#b91c1c;background:#fee2e2}.chart-scroll{width:100%;overflow-x:auto}.table-scroll{width:100%;max-height:min(70vh,760px);overflow:auto}.line-chart-frame{display:grid;gap:8px}.chart-scroll-cue{justify-self:end;color:var(--dashboard-muted);font-size:12px;font-weight:800}.chart-scroll-shell{position:relative;min-width:0}.line-chart-frame .chart-scroll{padding-bottom:4px;scroll-behavior:smooth;scrollbar-color:#94a3b8 #eef2f7}.line-chart-frame .chart-scroll:focus-visible{outline:3px solid var(--dashboard-focus);outline-offset:2px}.chart-axis-overlay{position:absolute;top:0;left:0;pointer-events:none}.chart-axis-bg{fill:var(--dashboard-surface)}.table-window{display:grid;gap:10px}.table-window-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--dashboard-muted);font-size:12px;font-weight:800}.recent-calls-footer>span{display:grid;gap:2px}.recent-calls-footer small{color:var(--dashboard-subtle);font-size:11px;font-weight:750}.chart{display:block}.grid-line{stroke:#dfe7f2;stroke-dasharray:2 2}.axis-line{stroke:#b8c7da}.axis-text,.axis-label{fill:var(--dashboard-subtle);font-size:12px}.confidence-line{stroke:#93b4e8;stroke-width:7;stroke-linecap:round;opacity:.35}.chart-legend,.donut-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;color:#334155;font-size:12px}.chart-legend span,.donut-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i,.donut-legend i{width:10px;height:10px;border-radius:50%}.donut-wrap{display:grid;grid-template-columns:180px minmax(160px,1fr);gap:12px;align-items:center}.donut{width:180px;height:180px}.donut-value{fill:var(--dashboard-text);font-size:18px;font-weight:800}.donut-label{fill:var(--dashboard-muted);font-size:11px}.bar-list{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:minmax(92px,1fr) minmax(150px,2fr) 70px;gap:10px;align-items:center}.bar-row span{color:#334155}.bar-row strong,.num{text-align:right;font-variant-numeric:tabular-nums}.bar-track{height:10px;overflow:hidden;border-radius:999px;background:#edf2f8}.bar-track i{display:block;height:100%;border-radius:inherit}.data-table{width:100%;min-width:760px;border-collapse:collapse;font-size:13px}.data-table.compact{font-size:12px}.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid #e5edf6;text-align:left;white-space:nowrap}.data-table th{position:sticky;top:0;z-index:2;color:#4b5d76;background:#f8fafc;font-size:12px}.data-table .sticky-column{position:sticky;left:0;z-index:1;min-width:180px;max-width:320px;background:var(--dashboard-surface);box-shadow:1px 0 #dbe6f3}.data-table th.sticky-column{z-index:3;background:#f8fafc}.sort-header{display:inline-flex;align-items:center;gap:5px;width:100%;padding:0;border:0;color:inherit;background:transparent;font:inherit;font-weight:800;text-align:left}.sort-header:hover{color:var(--dashboard-accent-strong)}.data-table tr.is-clickable{cursor:pointer}.data-table tr.is-clickable:hover td,.data-table tr.selected-row td{background:#eef5ff}.data-table tr.is-activatable:focus-visible td{background:#eef5ff;outline:2px solid #93b4e8;outline-offset:-2px}.data-table tr.selected-row td:first-child{box-shadow:inset 3px 0 0 var(--dashboard-accent)}.table-action-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:28px;padding:0 9px;border:1px solid #ccd8e8;border-radius:7px;color:var(--dashboard-accent-strong);background:var(--dashboard-surface);font-size:12px;font-weight:800;white-space:nowrap}.table-action-button:hover,.table-action-button:focus-visible{border-color:#93b4e8;background:#f4f8ff}.table-action-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.flags{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}.compact-flags{justify-content:flex-start}.flag{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:1px 7px;border-radius:999px;color:#6d28d9;background:#f5e8ff;font-size:11px;font-weight:800;white-space:nowrap}.signal-puck{min-width:24px;max-width:54px;padding:1px 5px;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.signal-puck.more{color:var(--dashboard-accent-strong);background:#e0ecff}.empty-cell{color:var(--dashboard-muted);text-align:center}.pill,.cache-pill,.score{display:inline-flex;min-width:46px;justify-content:center;padding:3px 8px;border-radius:999px;background:#eef2ff;color:var(--dashboard-accent-strong);font-size:12px;font-weight:700}.effort-high{color:#b91c1c;background:#fee2e2}.effort-medium{color:#b45309;background:#fff1d6}.effort-low,.cache-pill{color:#047857;background:#dff8ea}.score{color:#92400e;background:#fef3c7}.filter-row{justify-content:space-between}.search-box{flex:1;min-width:240px}.filter-field{display:grid;gap:5px;min-width:150px;color:var(--dashboard-label);font-size:12px;font-weight:800}.filter-field select{min-height:36px;padding:0 34px 0 10px;border:1px solid var(--dashboard-border);border-radius:8px;color:var(--dashboard-text);background:var(--dashboard-surface)}.filter-status{color:var(--dashboard-muted);font-size:11px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.filter-status[data-state=active]{color:var(--dashboard-accent-strong)}.filter-status[data-state=error]{color:#b42318}.density-toggle{padding:3px;border:1px solid #ccd8e8;border-radius:8px;background:var(--dashboard-surface)}.density-toggle button{min-height:30px;border:0}.density-toggle .active{color:var(--dashboard-surface);background:var(--dashboard-accent)}.cache-window-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cache-window-strip span{display:grid;gap:2px;padding:10px;border:1px solid #d8e3f2;border-radius:8px;color:#0f172a;background:color-mix(in srgb,#2563eb calc(var(--intensity) * 35%),#f8fbff)}.cache-window-strip small{color:#52627a;font-size:11px}.cache-window-strip strong{font-size:15px}.detail-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 16px}.detail-stat-grid.vertical{grid-template-columns:1fr}.detail-stat-grid span,.mini-evidence{padding:12px;border:1px solid #e1e8f2;border-radius:8px;color:#52627a;background:#fbfdff}.table-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,420px);gap:16px;align-items:start}.table-detail-layout.detail-collapsed{grid-template-columns:minmax(0,1fr)}.call-investigator-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.72fr);gap:16px;align-items:start}.drilldown-panel{position:sticky;top:18px}.call-summary,.action-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.drilldown-tabs{display:flex;gap:4px;margin:0 0 14px;padding:3px;border:1px solid #d8e3f2;border-radius:8px;background:#f8fafc;overflow-x:auto}.drilldown-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:0 6px;border:0;border-radius:6px;color:#52627a;background:transparent;font-size:12px;font-weight:800;flex:1 0 76px;white-space:nowrap}.drilldown-tabs button.active{color:#1d4ed8;background:#fff;box-shadow:0 1px 3px #0f172a14}.drilldown-tab-panel{display:grid;gap:12px}.call-id{padding:4px 8px;border:1px solid #d8e3f2;border-radius:7px;color:#52627a;background:#f8fafc;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:800}.drilldown-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.drilldown-metric-grid.wide{grid-template-columns:repeat(6,minmax(118px,1fr))}.investigator-evidence{display:grid;gap:12px}.context-attribution-module{display:grid;gap:10px}.serialized-breakdown{display:grid;gap:8px;padding:10px;border:1px solid #d9e4f2;border-radius:7px;background:#f8fbff}.serialized-breakdown.deferred{border-style:dashed}.serialized-breakdown-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.serialized-breakdown-heading strong{color:#0f172a;font-size:13px}.serialized-breakdown-heading span{color:#64748b;font-size:11px;text-align:right}.serialized-bucket-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.serialized-bucket{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid #e1e8f2;border-radius:7px;background:#fff}.serialized-bucket span{min-width:0;overflow:hidden;color:#52627a;font-size:10px;font-weight:850;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.serialized-bucket strong{color:#102033;font-size:17px}.serialized-bucket small{min-width:0;overflow:hidden;color:#64748b;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.drilldown-metric{display:grid;gap:3px;min-height:82px;padding:11px;border:1px solid #e1e8f2;border-radius:8px;background:#fbfdff}.drilldown-metric small{color:#61728a;font-weight:800}.drilldown-metric strong{color:#0f172a;font-size:20px;line-height:1.1}.drilldown-metric em{color:#52627a;font-style:normal;font-size:12px}.composition-card,.cache-mini-card,.locked-context-card,.recommendation-box{padding:12px;border:1px solid #e1e8f2;border-radius:8px;background:#fff}.composition-head,.cache-mini-card>div:first-child{display:flex;justify-content:space-between;gap:10px;color:#52627a;font-size:12px}.composition-head strong,.cache-mini-card strong,.locked-context-card strong{color:#0f172a;font-size:13px}.diagnostic-interpretation{margin:8px 0 0;color:#334155;font-size:12px;line-height:1.45}.investigation-readout-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.investigation-readout-card{display:grid;align-content:start;gap:6px;min-width:0;padding:10px;border:1px solid #d9e4f2;border-radius:7px;background:#f8fbff}.investigation-readout-card span{color:#52627a;font-size:10px;font-weight:850;text-transform:uppercase}.investigation-readout-card p{margin:0;color:#0f172a;font-size:12px;line-height:1.45}.investigation-readout-card small{color:#64748b;font-size:11px;line-height:1.35}.cache-verdict-card{display:grid;gap:9px;margin-top:10px;padding:10px;border:1px solid #d9e4f2;border-left:3px solid #64748b;border-radius:7px;background:#f8fbff}.cache-verdict-warm{border-left-color:#059669}.cache-verdict-partial{border-left-color:#2563eb}.cache-verdict-spike{border-left-color:#d97706}.cache-verdict-cold{border-left-color:#dc2626}.cache-verdict-main{display:grid;gap:5px}.cache-diagnostic-pill{width:fit-content;padding:3px 7px;color:#0f172a;background:#e8eef7;border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase}.cache-verdict-main p{margin:0;color:#334155;font-size:12px;line-height:1.45}.cache-verdict-meta{display:grid;gap:4px;color:#52627a;font-size:11px;line-height:1.35}.cache-delta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.cache-delta-metric{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid #e1e8f2;border-radius:7px;background:#fbfdff}.cache-delta-metric small{color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase}.cache-delta-metric strong{color:#102033;font-size:17px;line-height:1.1}.cache-delta-metric em{min-width:0;overflow:hidden;color:#52627a;font-size:11px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.context-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:center}.context-action-grid .toggle-row{min-height:36px;padding:8px 10px;border:1px solid #dbe5f1;border-radius:8px;background:#f8fafc;color:#243248;font-size:12px;font-weight:800}.context-action-grid .context-field{display:grid;gap:4px;min-height:48px;padding:8px 10px;border:1px solid #dbe5f1;border-radius:8px;background:#fff;color:#243248;font-size:11px;font-weight:800;text-transform:uppercase}.context-action-grid .context-field select{min-height:30px;color:#102033;border:1px solid #cfd9e8;border-radius:7px;background:#fff;font-size:12px;font-weight:700;text-transform:none}.context-state-note{margin:0;padding:10px 12px;border:1px solid #bfdbfe;border-radius:8px;color:#1e3a8a;background:#eff6ff;font-size:12px;font-weight:800}.context-state-note.error{border-color:#fecaca;color:#991b1b;background:#fef2f2}.context-evidence{display:grid;gap:10px}.context-evidence-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.context-note{margin:0;padding:9px 10px;border:1px solid #dbe7f5;border-radius:8px;background:#f8fbff;color:#475569;font-size:12px;line-height:1.5}.context-followup-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-start}.context-entry-count-note{color:#64748b;font-size:12px;font-weight:700}.context-entry-list{display:grid;gap:8px}.context-entry{overflow:hidden;border:1px solid #e1e8f2;border-radius:8px;background:#fff}.context-entry-summary{display:block;cursor:pointer;list-style:none}.context-entry-summary::-webkit-details-marker{display:none}.context-entry-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #e8eef6;background:#f8fafc;color:#52627a;font-size:12px}.context-entry-meta strong{color:#0f172a}.context-entry-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 0}.context-entry-chips span{padding:3px 7px;color:#334155;background:#eef4fb;border:1px solid #d9e4f2;border-radius:999px;font-size:10px;font-weight:800}.context-entry-actions{display:flex;justify-content:flex-start;padding:8px 10px 0}.context-entry-compaction{display:grid;gap:6px;margin:8px 10px 0;padding:9px;border:1px solid #dbe7f5;border-radius:8px;background:#f8fbff;color:#334155;font-size:12px}.context-entry-compaction>strong{color:#0f172a}.context-replacement-history{display:grid;gap:6px}.context-replacement-entry{display:grid;gap:4px;padding:8px;border:1px solid #e3ebf6;border-radius:6px;background:#fff}.context-replacement-entry pre{max-height:180px}.context-entry pre{max-height:220px;margin:0;padding:10px;overflow:auto;white-space:pre-wrap;word-break:break-word;color:#172033;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.composition-bar{display:flex;overflow:hidden;height:12px;margin:10px 0;border-radius:999px;background:#e5edf6}.composition-bar i{display:block;min-width:3px}.composition-legend{display:flex;flex-wrap:wrap;gap:8px 12px;color:#52627a;font-size:12px;font-weight:700}.composition-legend span{display:inline-flex;align-items:center;gap:5px}.composition-legend i{width:8px;height:8px;border-radius:999px}.thread-context-module{display:grid;gap:14px}.thread-context-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:14px;align-items:start}.thread-context-grid h3{margin:0 0 8px;color:#172033;font-size:14px}.detail-list.compact{margin:22px 0 0}.cache-mini-card{display:grid;gap:10px}.cache-mini-card span{color:#61728a}.cache-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;height:92px;align-items:end}.cache-bars span{display:grid;grid-template-rows:1fr auto;gap:6px;min-width:0;height:100%;text-align:center}.cache-bars i{align-self:end;width:100%;border-radius:6px 6px 3px 3px;opacity:.9}.cache-bars em{color:#52627a;font-size:11px;font-style:normal;font-weight:800}.locked-context-card,.call-decision-card,.recommendation-box{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start}.call-decision-card{grid-template-columns:minmax(0,1fr);margin:12px 0;padding:12px;border:1px solid #d8e3f2;border-radius:8px;background:#f8fafc}.locked-context-card svg{color:#b45309}.recommendation-box{color:#92400e;background:#fff8e8}.recommendation-box svg{color:#b45309}.recommendation-box p,.locked-context-card p{margin:0;color:#52627a;line-height:1.5}.detail-list{display:grid;gap:8px;margin:0 0 12px}.detail-list div{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:10px;padding:8px 0;border-bottom:1px solid #e5edf6}.detail-list dt{color:#61728a;font-weight:800}.detail-list dd{min-width:0;margin:0;color:#0f172a;font-weight:700;overflow-wrap:anywhere}.detail-collapse{margin:10px 0 12px;border:1px solid #dbe5f1;border-radius:8px;background:#f8fafc}.detail-collapse summary{cursor:pointer;padding:10px 12px;color:#1d4ed8;font-size:12px;font-weight:900}.detail-collapse-body{padding:0 12px 12px}.detail-collapse-body .detail-list{margin:0}.privacy-note,.empty-state{margin:10px 0 0;color:#61728a;font-size:12px;line-height:1.5}.evidence-list span{grid-template-columns:minmax(0,1fr) auto}.compact-list{padding-left:18px}.compact-list li+li{margin-top:6px}.form-grid label{display:grid;gap:6px;color:#42526a;font-weight:700}.form-grid input,.form-grid select{min-height:36px;padding:0 10px;border:1px solid #cfd9e8;border-radius:8px;background:#fff}.toggle-row{grid-template-columns:auto minmax(0,1fr)!important;align-items:center;justify-content:start}.heatmap-scroll{max-height:min(62vh,620px);overflow:auto}.heatmap{min-width:720px;overflow:hidden;border:1px solid #e1e8f2;border-radius:8px}.heatmap-head,.heatmap-row{display:grid;grid-template-columns:150px repeat(var(--heatmap-columns, 6),minmax(68px,1fr))}.heatmap-head span,.heatmap-row strong,.heatmap-row span{padding:10px;border-bottom:1px solid #e1e8f2;border-right:1px solid #e1e8f2;font-size:12px}.heatmap-head span{position:sticky;top:0;z-index:2;color:#4b5d76;background:#f8fafc;font-weight:800}.heatmap .sticky-column{position:sticky;left:0;z-index:1;min-width:150px;background:var(--dashboard-surface);box-shadow:1px 0 #dbe6f3}.heatmap-head .sticky-column{z-index:3;background:#f8fafc}.heatmap-row span{color:#064e3b;background:color-mix(in srgb,#22c55e calc(var(--intensity) * 78%),#f8fafc);text-align:center}.executive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.executive-card{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:14px;border:1px solid #d8e5f7;border-radius:8px;background:#f8fbff}.executive-card strong,.executive-card p{grid-column:2;margin:0}.executive-card p{color:#52627a}.diagnostic-sections{grid-column:1 / 3;display:grid;gap:16px}.diagnostic-row{display:grid;grid-template-columns:minmax(260px,420px) minmax(220px,1fr) 180px;gap:16px;align-items:center}.mini-evidence{display:grid;gap:6px}.report-card{grid-template-columns:minmax(0,1fr) auto auto;overflow:hidden}.report-card>*{min-width:0}.report-card.active{border-color:#93b4e8;background:#f4f8ff}@media (max-width: 1180px){.metric-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.dashboard-grid.three,.dashboard-grid.two,.table-detail-layout,.workbench-layout,.lab-layout,.cache-layout,.diagnostics-layout,.reports-layout,.thread-layout,.call-investigator-layout{grid-template-columns:1fr}.diagnostic-sections,.call-investigator-layout .span-all,.span-all{grid-column:1}.drilldown-metric-grid.wide{grid-template-columns:repeat(3,minmax(0,1fr))}.investigation-readout-grid,.serialized-bucket-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-panel{grid-column:1}.drilldown-panel{position:static}}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;gap:12px;padding:14px 12px}.primary-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.primary-nav button{flex:0 0 auto;width:auto;white-space:nowrap}.secondary-block,.status-card{display:none}.topbar,.page-title-row{grid-template-columns:minmax(0,1fr);display:grid}.workspace{padding:16px 12px 24px}.topbar-actions,.toolbar{justify-content:start}.page-title-row>button,.page-title-row .primary-button,.page-title-row .toolbar-button{justify-self:start;max-width:100%}.column-menu-wrap{position:static}.column-menu{position:fixed;top:88px;right:12px;left:12px;width:auto;max-height:calc(100vh - 112px);overflow:auto}.context-action-grid,.context-evidence-summary,.drilldown-metric-grid,.drilldown-metric-grid.wide,.investigation-readout-grid,.serialized-bucket-grid,.metric-grid,.executive-grid,.diagnostic-row,.detail-stat-grid,.table-detail-layout,.thread-context-grid{grid-template-columns:1fr}.drilldown-panel{position:static}.report-card{grid-template-columns:minmax(0,1fr);align-items:start}.report-card p,.page-title-row p{overflow-wrap:anywhere}.donut-wrap{grid-template-columns:1fr}.to-top-button{right:14px;bottom:14px}}:root{--workspace-surface: #fbfdff;--workspace-surface-muted: #f8fafc;--workspace-surface-active: #eff6ff;--workspace-row-active: #eef5ff;--workspace-border: #e1e8f2;--workspace-border-muted: #e0e8f3;--workspace-border-active: #93c5fd;--workspace-row-border-active: #93b4e8;--workspace-text: #172033;--workspace-muted: #61728a;--workspace-accent: #2563eb}.workbench-layout,.lab-layout,.cache-layout,.diagnostics-layout,.reports-layout,.thread-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr) minmax(260px,340px);gap:16px;align-items:start}.thread-layout{grid-template-columns:minmax(260px,380px) minmax(0,1fr) minmax(260px,340px)}.lab-layout,.reports-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.cache-layout,.diagnostics-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(280px,340px)}@media (max-width: 760px){.workbench-layout,.lab-layout,.cache-layout,.diagnostics-layout,.reports-layout,.thread-layout{grid-template-columns:minmax(0,1fr)}.workbench-layout .span-all,.lab-layout .span-all,.cache-layout .span-all,.diagnostics-layout .span-all,.reports-layout .span-all,.thread-layout .span-all{grid-column:1}}.reports-layout>.stacked-panels,.lab-layout>.stacked-panels{grid-column:1}.finding-list,.report-list,.index-list,.setting-list,.form-grid,.evidence-list{display:grid;gap:10px}.finding-card,.report-card,.index-list span,.setting-list span,.evidence-list span{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--workspace-border);border-radius:8px;background:var(--workspace-surface)}.report-card{width:100%;color:inherit;text-align:left;cursor:pointer}.finding-card.active,.report-card.active{border-color:var(--workspace-border-active);background:var(--workspace-surface-active)}.finding-card{grid-template-columns:30px minmax(0,1fr) auto}.finding-rank,.executive-card span,.index-list i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#fff;background:var(--workspace-accent);font-weight:800;font-style:normal}.finding-body h3,.side-panel h3{margin:0 0 4px;font-size:14px}.finding-body p,.side-panel p,.report-card p,.compact-list{margin:0;color:#52627a}.finding-stats{display:flex;gap:12px;margin-top:8px}.finding-stats strong,.detail-stat-grid strong{display:block;color:#0f172a;font-size:20px}.thread-lifecycle-card,.thread-relationships-card,.thread-impact-card,.thread-status-card,.thread-secondary-card{display:grid;gap:10px;margin-top:12px}.lifecycle-grid,.impact-thread-grid,.relationship-grid,.status-thread-grid,.secondary-thread-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lifecycle-grid span,.impact-thread-grid span,.relationship-grid span,.status-thread-grid span,.secondary-thread-grid span{min-width:0;padding:9px;color:#52627a;background:var(--workspace-surface-muted);border:1px solid #d8e3f2;border-radius:8px;font-size:11px;font-weight:800;text-transform:uppercase}.lifecycle-grid strong,.impact-thread-grid strong,.relationship-grid strong,.status-thread-grid strong,.secondary-thread-grid strong{display:block;margin-bottom:3px;color:#102033;font-size:13px;line-height:1.25;text-transform:none}.inline-button{grid-column:2 / -1;justify-self:start;min-height:32px}.side-panel{display:grid;gap:16px}.finding-module{display:grid;gap:10px;margin-top:14px}.thread-mini-timeline{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.thread-mini-timeline li{display:grid;grid-template-columns:minmax(72px,.8fr) minmax(0,1fr);gap:4px 10px;padding:9px 10px;border:1px solid var(--workspace-border-muted);border-radius:7px;background:var(--workspace-surface-muted)}.thread-mini-timeline li.active{border-color:var(--workspace-row-border-active);background:var(--workspace-row-active)}.thread-mini-timeline li.has-row-action{cursor:pointer}.thread-mini-timeline li.has-row-action:hover,.thread-mini-timeline li.has-row-action:focus-visible{border-color:var(--workspace-row-border-active);background:var(--workspace-row-active);outline:none}.thread-mini-timeline span,.thread-mini-timeline em{color:var(--workspace-muted);font-size:11px;font-style:normal}.thread-mini-timeline strong{min-width:0;color:var(--workspace-text);font-size:12px;overflow-wrap:anywhere}.thread-mini-timeline em{grid-column:2}.thread-call-flags,.thread-call-meta{grid-column:2;display:flex;gap:6px;flex-wrap:wrap}.thread-call-flags span,.thread-call-meta span{padding:3px 6px;border:1px solid #d8e3f2;border-radius:999px;background:#fff;color:#52627a;font-size:10px;font-weight:800;text-transform:uppercase}.thread-call-flags .flags{gap:4px;padding:0;border:0;background:transparent}.thread-call-flags .signal-puck{min-height:18px;border:0;color:#6d28d9;background:#f5e8ff;font-size:10px}.thread-call-flags .signal-puck.more{color:var(--dashboard-accent-strong);background:#e0ecff}.thread-call-recommendation{grid-column:2;margin:0;color:#52627a;font-size:11px;font-weight:700}.thread-context-bar{grid-column:2;height:6px;overflow:hidden;border-radius:999px;background:#e7eef8}.thread-context-bar span{display:block;height:100%;border-radius:inherit}.thread-context-bar .low{background:#60a5fa}.thread-context-bar .medium{background:#f59e0b}.thread-context-bar .high{background:#ef4444}.thread-mini-timeline .table-action-button,.thread-mini-timeline .thread-call-actions{grid-column:2;justify-self:start}.thread-call-list{display:grid;gap:10px;margin-top:14px}.thread-call-controls,.thread-call-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.mini-select-field{display:flex;align-items:center;gap:8px;color:#52627a;font-size:11px;font-weight:800;text-transform:uppercase}.mini-select-field select{min-height:30px;color:#102033;border:1px solid #cfd9e8;border-radius:7px;background:#fff;font-size:12px;font-weight:700;text-transform:none}.thread-call-pager span{color:var(--workspace-muted);font-size:11px;font-weight:700}.child-load-more{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;color:#64748b;font-size:11px;font-weight:800}.pager-button{min-height:28px;padding:0 10px;color:#1d4ed8;background:var(--workspace-surface-active);border:1px solid #bfdbfe;border-radius:7px;font-weight:850}.pager-button:disabled{cursor:not-allowed;opacity:.6}.thread-call-row{grid-template-columns:minmax(72px,.7fr) minmax(0,1fr) auto;align-items:center}.thread-call-row em{grid-column:2}.thread-call-row .table-action-button{grid-column:3;grid-row:1 / span 2;align-self:center}.workbench-call-row{grid-template-columns:minmax(84px,.7fr) minmax(0,1fr) auto;align-items:center}.workbench-call-row em{grid-column:2}.workbench-call-row .table-action-button{grid-column:3;grid-row:1 / span 2;align-self:center}.investigator-thread-timeline li{grid-template-columns:minmax(86px,.7fr) minmax(0,1fr) auto;align-items:center}.investigator-thread-timeline em{grid-column:2}.investigator-thread-timeline .table-action-button{grid-column:3;grid-row:1 / span 2;align-self:center}.investigator-thread-timeline .thread-call-actions{grid-column:3;grid-row:1 / span 2;align-self:center;justify-self:start}.diagnostics-layout{--diagnostics-action: #1f56c2;--diagnostics-action-hover: #eef5ff;--diagnostics-action-surface: #f8fbff;--diagnostics-border: #e1e8f2;--diagnostics-border-muted: #e8eef6;--diagnostics-border-subtle: #edf2f7;--diagnostics-focus: #93c5fd;--diagnostics-selected: #eff6ff;--diagnostics-surface: #fbfdff;--diagnostics-surface-raised: #ffffff;--diagnostics-text-emphasis: #0f172a;--diagnostics-text-muted: #64748b;--diagnostics-text-soft: #61728a;--diagnostics-text-strong: #172033}.diagnostic-source-tabs button{flex-direction:column;align-items:flex-start;min-width:96px;min-height:44px;padding:6px 8px}.diagnostic-source-tabs small{color:var(--diagnostics-text-muted);font-size:10px;font-weight:800;line-height:1.1}.diagnostic-fact-controls{display:flex;align-items:end;justify-content:space-between;gap:8px;margin:0 0 10px}.diagnostic-call-list{display:grid;gap:10px;margin-top:14px}.diagnostic-call-row{grid-template-columns:minmax(84px,.7fr) minmax(0,1fr) auto;align-items:center}.diagnostic-call-row em{grid-column:2}.diagnostic-call-row .table-action-group{grid-column:3;grid-row:1 / span 2;align-self:center}.diagnostics-snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.diagnostics-snapshot-card{display:grid;gap:11px;min-width:0;padding:12px;border:1px solid var(--diagnostics-border);border-radius:8px;background:var(--diagnostics-surface)}.diagnostics-snapshot-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.diagnostics-snapshot-card-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.diagnostics-snapshot-card-actions .diagnostics-section-refresh{min-height:26px;padding:5px 8px;font-size:11px;line-height:1.1}.diagnostics-snapshot-card-head h3,.diagnostics-snapshot-card-head p{margin:0}.diagnostics-snapshot-card-head h3{color:var(--diagnostics-text-emphasis);font-size:15px}.diagnostics-snapshot-card-head p{margin-top:3px;color:var(--diagnostics-text-soft);font-size:12px}.diagnostics-snapshot-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.diagnostics-snapshot-metrics span{display:grid;gap:2px;min-width:0;min-height:58px;padding:8px;border:1px solid var(--diagnostics-border-muted);border-radius:7px;background:var(--diagnostics-surface-raised)}.diagnostics-snapshot-metrics small{color:var(--diagnostics-text-soft);font-size:11px;font-weight:800}.diagnostics-snapshot-metrics strong{overflow:hidden;color:var(--diagnostics-text-emphasis);font-size:16px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.diagnostics-snapshot-rows{display:grid;gap:6px;min-width:0;margin:0;padding:0;list-style:none}.diagnostics-snapshot-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:40px;padding:8px;border:1px solid var(--diagnostics-border-subtle);border-radius:7px;background:var(--diagnostics-surface-raised)}.diagnostics-snapshot-rows li.has-row-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;padding:0;overflow:hidden}.diagnostics-snapshot-rows li.empty-state{display:block}.diagnostics-snapshot-row-button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.diagnostics-snapshot-row-button:hover,.diagnostics-snapshot-row-button:focus-visible{background:var(--diagnostics-action-hover);outline:none}.diagnostics-snapshot-row-copy{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:70px;padding:8px;border:0;border-left:1px solid var(--diagnostics-border-subtle);background:var(--diagnostics-action-surface);color:var(--diagnostics-action);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.diagnostics-snapshot-row-copy:hover,.diagnostics-snapshot-row-copy:focus-visible{background:var(--diagnostics-action-hover);outline:none}.diagnostics-snapshot-rows span{display:grid;min-width:0}.diagnostics-snapshot-rows strong,.diagnostics-snapshot-rows em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostics-snapshot-rows strong{color:var(--diagnostics-text-strong);font-size:12px}.diagnostics-snapshot-rows em{color:var(--diagnostics-text-soft);font-size:11px;font-style:normal}.diagnostics-snapshot-rows b{color:var(--diagnostics-text-emphasis);font-size:12px;font-weight:800;white-space:nowrap}.diagnostics-snapshot-rows .diagnostics-snapshot-row-open{display:inline-flex;align-items:center;gap:5px;color:var(--diagnostics-action);font-size:12px;font-weight:800;white-space:nowrap}.diagnostics-snapshot-row-depth{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--diagnostics-text-muted);font-size:12px;font-weight:800}.diagnostics-snapshot-row-children{grid-column:1 / -1;margin:0 8px 8px;padding:8px 10px;border-top:1px solid var(--diagnostics-border-subtle);color:var(--diagnostics-text-muted);font-size:12px}.diagnostics-snapshot-row-children summary{cursor:pointer;font-weight:800}.diagnostics-snapshot-row-children ul{display:grid;gap:5px;margin:8px 0 0;padding:0;list-style:none}.diagnostics-snapshot-row-children li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:0;padding:0;border:0;background:transparent}.diagnostics-snapshot-row-children span{display:block;min-width:0;overflow:hidden;color:var(--diagnostics-text-soft);text-overflow:ellipsis;white-space:nowrap}.diagnostic-fact-list{display:grid;gap:8px}.diagnostic-fact-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;width:100%;padding:10px;border:1px solid var(--diagnostics-border);border-radius:8px;color:inherit;background:var(--diagnostics-surface)}.diagnostic-fact-card:hover,.diagnostic-fact-card.active{border-color:var(--diagnostics-focus);background:var(--diagnostics-selected)}.diagnostic-fact-select{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;align-items:center;width:100%;padding:0;border:0;color:inherit;background:transparent;text-align:left}.diagnostic-fact-select:focus-visible{outline:2px solid var(--diagnostics-focus);outline-offset:4px}.diagnostic-fact-select span:first-child,.diagnostic-fact-select strong,.diagnostic-fact-select small{min-width:0;overflow-wrap:anywhere}.diagnostic-fact-select span:first-child{color:var(--diagnostics-text-strong);font-weight:800}.diagnostic-fact-select strong{justify-self:end;color:var(--diagnostics-text-emphasis);font-size:12px}.diagnostic-fact-select small{grid-column:1;color:var(--diagnostics-text-soft)}.diagnostic-fact-meta{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-top:3px}.diagnostic-fact-meta span{min-width:0;color:var(--diagnostics-text-strong);font-size:11px;font-weight:800;overflow-wrap:anywhere}.diagnostic-fact-meta b{display:block;margin-bottom:1px;color:var(--diagnostics-text-muted);font-size:9px;font-weight:850;line-height:1.1;text-transform:uppercase}.diagnostic-fact-card .table-action-group{grid-column:2;grid-row:2}.diagnostic-fact-call-scroll{max-height:min(58vh,560px);margin-top:8px}.diagnostic-fact-call-table{min-width:980px}.diagnostic-fact-call-table .sticky-column{min-width:210px;max-width:360px;background:var(--dashboard-surface)}.diagnostic-fact-call-table th.sticky-column{background:#f8fafc}.diagnostic-fact-call-table td strong{color:var(--diagnostics-text-strong);font-weight:800}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-calls.png
DELETED
|
Binary file
|
codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-details.png
DELETED
|
Binary file
|
|
Binary file
|
codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-insights.png
DELETED
|
Binary file
|
codex_usage_tracking-0.14.0/src/codex_usage_tracker/plugin_data/docs/assets/dashboard-threads.png
DELETED
|
Binary file
|
|
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.14.0 → codex_usage_tracking-0.14.1}/docs/adoption-hardening-roadmap.md
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/architecture-boundary-map.md
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
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/ux/call-detail-panel.png
RENAMED
|
File without changes
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/assets/ux/insight-overview.png
RENAMED
|
File without changes
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.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
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/docs/frontend-rewrite-roadmap.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.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.14.0 → codex_usage_tracking-0.14.1}/scripts/benchmark_synthetic_history.py
RENAMED
|
File without changes
|
|
File without changes
|
{codex_usage_tracking-0.14.0 → codex_usage_tracking-0.14.1}/scripts/check_wemake_baseline.py
RENAMED
|
File without changes
|