getModelCostsForModel function
ModelCosts
getModelCostsForModel(
- String model,
- TokenUsageInfo usage, {
- required CanonicalNameResolver getCanonicalName,
- required DefaultModelResolver getDefaultMainLoopModelSetting,
- required FastModeChecker isFastModeEnabled,
- UnknownModelCostFlagged? onUnknownModelCost,
- AnalyticsLogger? logEvent,
Get the model costs for a model, handling Opus 4.6 fast mode and unknown models.
Implementation
ModelCosts getModelCostsForModel(
String model,
TokenUsageInfo usage, {
required CanonicalNameResolver getCanonicalName,
required DefaultModelResolver getDefaultMainLoopModelSetting,
required FastModeChecker isFastModeEnabled,
UnknownModelCostFlagged? onUnknownModelCost,
AnalyticsLogger? logEvent,
}) {
final shortName = getCanonicalName(model);
// Check if this is an Opus 4.6 model with fast mode active.
if (shortName == 'claude-opus-4-6') {
final isFastMode = usage.speed == 'fast';
return getOpus46CostTier(
fastMode: isFastMode,
isFastModeEnabled: isFastModeEnabled,
);
}
final costs = modelCosts[shortName];
if (costs == null) {
_trackUnknownModelCost(
model,
shortName,
logEvent: logEvent,
onUnknownModelCost: onUnknownModelCost,
);
return modelCosts[getCanonicalName(getDefaultMainLoopModelSetting())] ??
_defaultUnknownModelCost;
}
return costs;
}