(input: &StreamInput, provider: &dyn Provider)
| 1144 | } |
| 1145 | |
| 1146 | fn resolve_model_limits(input: &StreamInput, provider: &dyn Provider) -> ModelLimits { |
| 1147 | let model = provider.get_model(&input.model.model_id); |
| 1148 | ModelLimits { |
| 1149 | context: model |
| 1150 | .map(|info| info.context_window) |
| 1151 | .unwrap_or_else(|| get_model_context_limit(&input.model.model_id)), |
| 1152 | max_input: None, |
| 1153 | max_output: input |
| 1154 | .agent |
| 1155 | .max_tokens |
| 1156 | .or_else(|| model.map(|info| info.max_output_tokens)) |
| 1157 | .unwrap_or(OUTPUT_TOKEN_MAX), |
| 1158 | } |
| 1159 | } |
| 1160 | |
| 1161 | fn token_usage_from_message_usage(usage: &MessageUsage) -> TokenUsage { |
| 1162 | TokenUsage { |
no test coverage detected