thinkingBudgetForLevel function
pi's thinkingBudgetForLevel: merged-map lookup on the clamped level.
null level → 0. Our extension: pi never calls with null because its
callers gate on thinking being requested; here a null level means "no
thinking requested" and a zero budget is exactly the no-op that makes
adjustMaxTokensForThinking an identity. Unknown level → ArgumentError,
the same crash pi's ! produces on a missing key, with a readable
message.
Implementation
int thinkingBudgetForLevel(String? level, [Map<String, int>? customBudgets]) {
if (level == null) return 0;
final budgets = {...defaultThinkingBudgets, ...?customBudgets};
final budget = budgets[clampThinkingLevel(level)];
if (budget == null) {
throw ArgumentError.value(level, 'level', 'unknown thinking level');
}
return budget;
}