cctally 1.114.0 → 1.116.0
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.
- package/CHANGELOG.md +41 -0
- package/bin/_cctally_account.py +32 -8
- package/bin/_cctally_cache.py +4491 -295
- package/bin/_cctally_completion.py +1355 -0
- package/bin/_cctally_config.py +37 -0
- package/bin/_cctally_core.py +282 -9
- package/bin/_cctally_dashboard.py +8 -11
- package/bin/_cctally_dashboard_conversation.py +292 -23
- package/bin/_cctally_dashboard_envelope.py +42 -35
- package/bin/_cctally_dashboard_sources.py +18 -9
- package/bin/_cctally_db.py +401 -9
- package/bin/_cctally_doctor.py +469 -27
- package/bin/_cctally_five_hour.py +166 -1049
- package/bin/_cctally_forecast.py +81 -9
- package/bin/_cctally_journal.py +5076 -177
- package/bin/_cctally_journal_repair.py +110 -19
- package/bin/_cctally_oauth_samples.py +280 -0
- package/bin/_cctally_parser.py +47 -0
- package/bin/_cctally_project.py +8 -2
- package/bin/_cctally_quarantine.py +662 -0
- package/bin/_cctally_quota.py +96 -12
- package/bin/_cctally_quota_model.py +391 -83
- package/bin/_cctally_record.py +1088 -269
- package/bin/_cctally_rederive.py +854 -192
- package/bin/_cctally_refresh.py +113 -13
- package/bin/_cctally_source_analytics.py +23 -2
- package/bin/_cctally_statusline.py +7062 -505
- package/bin/_cctally_store.py +1244 -91
- package/bin/_cctally_transcript.py +8 -7
- package/bin/_cctally_tui.py +119 -60
- package/bin/_cctally_update.py +25 -0
- package/bin/_lib_account_binding.py +152 -0
- package/bin/_lib_account_protocol.py +569 -0
- package/bin/_lib_aggregators.py +4 -0
- package/bin/_lib_cache_coverage.py +13 -1
- package/bin/_lib_cache_writer_lock.py +19 -3
- package/bin/_lib_clone_copy.py +177 -0
- package/bin/_lib_codex_conversation_query.py +133 -19
- package/bin/_lib_codex_conversation_watch.py +59 -14
- package/bin/_lib_codex_drain_admission.py +214 -0
- package/bin/_lib_codex_metadata.py +18 -1
- package/bin/_lib_codex_publication_barrier.py +277 -0
- package/bin/_lib_codex_rollout_container.py +502 -0
- package/bin/_lib_conversation_dispatch.py +3 -0
- package/bin/_lib_conversation_query.py +11 -3
- package/bin/_lib_dashboard_sources.py +57 -15
- package/bin/_lib_detector_access_registry.py +4038 -0
- package/bin/_lib_doctor.py +753 -1
- package/bin/_lib_five_hour.py +126 -0
- package/bin/_lib_ingest_frontier.py +414 -20
- package/bin/_lib_journal.py +261 -10
- package/bin/_lib_journal_router.py +166 -48
- package/bin/_lib_jsonl.py +5 -4
- package/bin/_lib_legacy_spool.py +126 -0
- package/bin/_lib_legacy_writer_evidence.py +136 -0
- package/bin/_lib_meter_rate_change.py +10 -0
- package/bin/_lib_oauth_samples.py +238 -0
- package/bin/_lib_outcome_quarantine.py +690 -0
- package/bin/_lib_pricing.py +7 -2
- package/bin/_lib_pricing_check.py +0 -12
- package/bin/_lib_provider_activity.py +770 -0
- package/bin/_lib_quarantine.py +155 -0
- package/bin/_lib_quota_calibration.py +53 -8
- package/bin/_lib_quota_copy.py +2 -1
- package/bin/_lib_quota_model.py +384 -52
- package/bin/_lib_rebuild_progress.py +146 -0
- package/bin/_lib_record.py +22 -0
- package/bin/_lib_rederive.py +393 -8
- package/bin/_lib_segment_summary.py +35 -2
- package/bin/_lib_snapshot_cache.py +43 -1
- package/bin/_lib_stale_proof.py +708 -0
- package/bin/_lib_statusline_candidates.py +356 -27
- package/bin/_lib_worker_launches.py +315 -0
- package/bin/cctally +29 -12
- package/dashboard/static/assets/{ConversationsView-Bc8LCOAZ.js → ConversationsView-Dflb_myA.js} +1 -1
- package/dashboard/static/assets/DoctorModal-DFX5CfIs.js +1 -0
- package/dashboard/static/assets/{ModalRoot-DLPgyAM_.js → ModalRoot-HlxoagIa.js} +1 -1
- package/dashboard/static/assets/{ProjectsDrillPanel-z53a4v4M.js → ProjectsDrillPanel-C3PJy1xx.js} +1 -1
- package/dashboard/static/assets/{SourceDetailModal-Bw0T8W-W.js → SourceDetailModal-BczsWKhD.js} +1 -1
- package/dashboard/static/assets/{UpdateModal-D5AKx4Yw.js → UpdateModal-Os-Lo5cs.js} +1 -1
- package/dashboard/static/assets/{index-BXDOzSng.js → index-CYZ3NLqF.js} +3 -3
- package/dashboard/static/assets/{outlineNavigation-JObY7cUY.js → outlineNavigation-k-zIif6W.js} +1 -1
- package/dashboard/static/dashboard.html +1 -1
- package/package.json +20 -2
- package/bin/_lib_merge_gate.py +0 -725
- package/dashboard/static/assets/DoctorModal-D--qVBwe.js +0 -1
package/bin/_lib_pricing.py
CHANGED
|
@@ -92,7 +92,12 @@ def _chip_for_model(name: str) -> str:
|
|
|
92
92
|
# fingerprint a store recorded and refuses a write from an older process. That
|
|
93
93
|
# comparison is day-granular by construction, so two revisions sharing a date
|
|
94
94
|
# compare equal and the older process is authorized to write.
|
|
95
|
-
|
|
95
|
+
#
|
|
96
|
+
# A sync of this date or of either table also changes the dynamic-SQL shape
|
|
97
|
+
# pinned in `bin/_lib_detector_access_registry.py`, so its registry test fails
|
|
98
|
+
# until the affected pins are re-pinned through the reviewed procedure in that
|
|
99
|
+
# module's docstring. Bulk regeneration of the pins alone is not acceptance.
|
|
100
|
+
PRICING_SNAPSHOT_DATE = "2026-10-14"
|
|
96
101
|
PRICING_STALENESS_DAYS = 60 # release pre-flight WARNs past this age
|
|
97
102
|
|
|
98
103
|
|
|
@@ -700,7 +705,7 @@ CLAUDE_MODEL_PRICING: dict[str, dict[str, Any]] = {
|
|
|
700
705
|
"input_cost_per_token": 2e-06,
|
|
701
706
|
"output_cost_per_token": 1e-05,
|
|
702
707
|
"cache_creation_input_token_cost": 2.5e-06,
|
|
703
|
-
"cache_read_input_token_cost":
|
|
708
|
+
"cache_read_input_token_cost": 1e-07,
|
|
704
709
|
},
|
|
705
710
|
}
|
|
706
711
|
|
|
@@ -232,15 +232,3 @@ def check_table_shapes(claude_tbl, codex_tbl, zero_sentinels) -> list:
|
|
|
232
232
|
for model, body in codex_tbl.items():
|
|
233
233
|
_check(model, body, _CODEX_REQUIRED, allow_zero=model in zero_sentinels)
|
|
234
234
|
return problems
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
def pricing_issue_action(findings_present: bool, existing_open: bool) -> str:
|
|
238
|
-
"""Decide the cron's GitHub-issue action. Pure; the YAML executes it.
|
|
239
|
-
|
|
240
|
-
``findings_present`` is ANY actionable finding the cron tracks — value
|
|
241
|
-
drift, missing-from-us, OR (as of #279 S7 W7) a stale/expired allowlist
|
|
242
|
-
suppression. The name generalizes the former ``drift_present``; the
|
|
243
|
-
two-state machine is unchanged."""
|
|
244
|
-
if findings_present:
|
|
245
|
-
return "update" if existing_open else "create"
|
|
246
|
-
return "close" if existing_open else "noop"
|