Skip to content

[chore] Paid-API tier has no live verification (anti-key stance) — exercise it when a real key exists #23

Description

@Jason-Vaughan

What

The paid-API tier (tier: api / ApiAdapter, gate, last-resort routing — #2) is fully hermetic-tested (mocked HTTP, gated build_adapter, router last-resort fallback, GUI visibility) but has never been run against a real paid endpoint. This is by design: the project is deliberately anti-key — we don't hold raw provider keys, and we don't mint billable LiteLLM virtual keys or make billed calls just to test.

So the live paid path is wired but unproven end-to-end: the code hooks are in place, but no real request has flowed router → ApiAdapter → LiteLLM virtual key → paid provider → response.

Why this is filed (not fixed)

Minting a budget-scoped LiteLLM virtual key + loading a provider key lives on Monad (the coordinator side) and spends real money — an operator/PM action, out of scope for a builder session. Tracking it here so it's visible rather than buried.

What "done" looks like (for whoever picks this up)

When a real provider key + budget-scoped LiteLLM virtual key exist on Monad:

  1. Follow the README runbook ("Runbook — enabling a paid key") to wire a tier: api entry via key_ref.
  2. Flip api_billing_enabled: true, run tanglebrain --model <api-id> "..." for an explicit paid call, then exhaust the subs to confirm the router last-resort fallback reaches it.
  3. Confirm spend lands LiteLLM-side under the virtual key's cap; capture any shape/parse fixes the live provider needs (the adapter reuses the openai-compat transport, so deltas would be in response parsing / error handling).
  4. Add a gated live test alongside tests/test_live.py if the path needs ongoing coverage.

Until then: treat the paid tier as hermetically correct but live-unverified. No action needed unless you actually want to use a paid key.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions