MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / normalize_messages

Function normalize_messages

crates/opencode-provider/src/transform.rs:264–298  ·  view source on GitHub ↗
(
    messages: &mut Vec<Message>,
    provider_type: ProviderType,
    model_id: &str,
)

Source from the content-addressed store, hash-verified

262// ---------------------------------------------------------------------------
263
264pub fn normalize_messages(
265 messages: &mut Vec<Message>,
266 provider_type: ProviderType,
267 model_id: &str,
268) {
269 match provider_type {
270 ProviderType::Anthropic => {
271 normalize_for_anthropic(messages);
272 normalize_tool_call_ids_claude(messages);
273 }
274 ProviderType::OpenRouter => {
275 if model_id.to_lowercase().contains("claude") {
276 normalize_tool_call_ids_claude(messages);
277 }
278 if model_id.to_lowercase().contains("mistral")
279 || model_id.to_lowercase().contains("devstral")
280 {
281 normalize_for_mistral(messages);
282 }
283 }
284 ProviderType::Other => {
285 if model_id.to_lowercase().contains("mistral")
286 || model_id.to_lowercase().contains("devstral")
287 {
288 normalize_for_mistral(messages);
289 } else if model_id.to_lowercase().contains("claude") {
290 normalize_tool_call_ids_claude(messages);
291 }
292 }
293 _ => {}
294 }
295
296 // Handle interleaved thinking field (move reasoning to providerOptions)
297 normalize_interleaved_field(messages, model_id);
298}
299
300/// For models with interleaved thinking that use a specific field
301/// (reasoning_content or reasoning_details), move reasoning parts

Callers 1

transform_messagesFunction · 0.85

Calls 5

normalize_for_anthropicFunction · 0.85
normalize_for_mistralFunction · 0.85
containsMethod · 0.80

Tested by

no test coverage detected