Keep the provider client and add one spend-aware preflight
Use create_spend_aware_openai_client(...) or the generic client wrapper when the existing code path is already working and you need one tighter control point fast.
NORNR
A thin wrapper is useful only if it upgrades cleanly into the full control layer later.
NORNR / Spend-aware wrappers
Thin ingressSpend-aware wrappers are the low-friction wedge for teams with existing OpenAI- or Anthropic-style code. They are not the end state. They should lead straight into review ownership, proof packets and finance-safe exports once the lane matters.
The wrapper is useful because it lowers the first step. NORNR wins when that first step still leads into decision, review and defended export later.
What the wrapper is for
Use it when you need an immediate budget-aware boundary on code that already exists.
Use create_spend_aware_openai_client(...) or the generic client wrapper when the existing code path is already working and you need one tighter control point fast.
The wrapper uses NORNR before the provider request clears, so the first step is already policy-aware instead of only relying on provider caps after the fact.
Once the lane matters to ops or finance, the wrapper should lead upward into one governed runtime lane, one MCP lane or one browser lane that exports the full defended record.
Upgrade path
That is how this stays a wedge instead of turning NORNR into a generic budget-cap utility.
Use the spend-aware wrapper to get a policy boundary into working code immediately.
Find the provider call that matters to a real owner, budget or counterparty posture.
Use research-safe or another default pack before widening the lane.
Move the consequential path into governed runtime, MCP control server or browser checkout governance when review and defended export need to survive.
The lane should end in the same proof packet, review bundle and finance packet as the rest of NORNR.