The spend budget of the turn the GMI is running, read at each call. With one, each provider
this manager hands out checks it before every completion request and charges every answer (gmi.metaprompt),
so a metaprompt or self-reflection call spends inside the turn's budget; without one, the hop's own providers.
Optional hops: GatewayProviderManagerThe manager whose hop this one answers from: for a view GatewayProviderManager.forQueuedWork makes, the manager that made it; unset, this manager's own.
Makes resolution the hop that answers every later call (of the views this manager made too).
This manager with the budget of the turn in progress bound to it: the manager a metaprompt batch or a self-reflection cycle queued now makes its calls through, so they spend inside the budget of the turn that queued them, whenever they run (a later turn may be in progress by then). It answers from this manager's hop as it is when each call is made.
This adapter typed as GMIBaseConfig.llmProviderManager expects; it implements every method the GMI path calls.
Readonly isPresent for code that checks a manager's readiness.
The provider-manager calls the GMI, MetapromptExecutor and LLMUtilityAI make (getProvider, getDefaultProvider, getProviderForModel, getModelInfo), answered from the hop that serves the turn. The GMI sets the resolution before it builds each prompt. Metaprompt and utility calls have no fallback of their own in this increment: on a fallback hop a call that names the primary's provider or model finds nothing, which the caller reports. A turn's budget, when it has one, bounds these calls too (the constructor's
budgetOf), and the budget of the turn that queued a metaprompt bounds that metaprompt's calls whenever they run (GatewayProviderManager.forQueuedWork).