refactor(agent/gemini,acp,credits): shared part classifiers, folded literals, table-driven account seed

This commit is contained in:
Teknium
2026-09-02 18:52:31 -07:00
parent 7b7d3bc188
commit ef474523f6
3 changed files with 70 additions and 93 deletions
+5 -6
View File
@@ -391,16 +391,15 @@ def _credits_state_from_account(info) -> Optional[CreditsState]:
def _money(dollars) -> tuple[int, str]: # (micros, display usd); (0, "") when absent
return (int(round(dollars * 1_000_000)), f"{dollars:.2f}") if isinstance(dollars, (int, float)) else (0, "")
remaining = _money(getattr(acc, "total_usable_credits", None))
sub_rem = _money(getattr(acc, "subscription_credits_remaining", None))
purchased = _money(getattr(acc, "purchased_credits_remaining", None))
fields: dict[str, Any] = {}
for prefix, obj, attr in (("remaining", acc, "total_usable_credits"), ("subscription", acc, "subscription_credits_remaining"),
("purchased", acc, "purchased_credits_remaining")):
fields[f"{prefix}_micros"], fields[f"{prefix}_usd"] = _money(getattr(obj, attr, None))
monthly = getattr(sub, "monthly_credits", None)
cap = _money(monthly) if isinstance(monthly, (int, float)) and monthly > 0 else (None, None)
paid = getattr(info, "paid_service_access", None)
return CreditsState(
remaining_micros=remaining[0], remaining_usd=remaining[1], subscription_micros=sub_rem[0],
subscription_usd=sub_rem[1], subscription_limit_micros=cap[0], subscription_limit_usd=cap[1],
purchased_micros=purchased[0], purchased_usd=purchased[1],
**fields, subscription_limit_micros=cap[0], subscription_limit_usd=cap[1],
rollover_micros=_money(getattr(sub, "rollover_credits", None))[0],
denominator_kind="subscription_cap" if cap[0] is not None else "none",
paid_access=paid if isinstance(paid, bool) else True, from_header=False, captured_at=time.time(),