From 3e3d6b40f79616640db20adaf8e4c3f6a8bb8d37 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 26 May 2026 14:28:31 +0000 Subject: [PATCH] Warn when stripping unsupported Kimi Code request fields Co-authored-by: Musa --- crates/hermesllm/src/apis/openai.rs | 30 +++++++++++++++++++---- crates/hermesllm/src/providers/request.rs | 6 ++++- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/crates/hermesllm/src/apis/openai.rs b/crates/hermesllm/src/apis/openai.rs index fc3a2088..514e8b24 100644 --- a/crates/hermesllm/src/apis/openai.rs +++ b/crates/hermesllm/src/apis/openai.rs @@ -1,3 +1,4 @@ +use log::warn; use serde::{Deserialize, Serialize}; use serde_json::Value; use serde_with::skip_serializing_none; @@ -139,11 +140,30 @@ impl ChatCompletionsRequest { /// Strip request fields that Kimi Code API (`kimi-for-coding`) rejects or mishandles. pub fn normalize_for_kimi_code_api(&mut self) { - self.stream_options = None; - self.reasoning_effort = None; - self.web_search_options = None; - self.service_tier = None; - self.store = None; + if self.stream_options.is_some() { + warn!("kimi-for-coding: stripping unsupported stream_options from upstream request"); + self.stream_options = None; + } + if self.reasoning_effort.is_some() { + warn!( + "kimi-for-coding: stripping unsupported reasoning_effort from upstream request" + ); + self.reasoning_effort = None; + } + if self.web_search_options.is_some() { + warn!( + "kimi-for-coding: stripping unsupported web_search_options from upstream request" + ); + self.web_search_options = None; + } + if self.service_tier.is_some() { + warn!("kimi-for-coding: stripping unsupported service_tier from upstream request"); + self.service_tier = None; + } + if self.store.is_some() { + warn!("kimi-for-coding: stripping unsupported store from upstream request"); + self.store = None; + } } } diff --git a/crates/hermesllm/src/providers/request.rs b/crates/hermesllm/src/providers/request.rs index ad933c2b..bcc0eafd 100644 --- a/crates/hermesllm/src/providers/request.rs +++ b/crates/hermesllm/src/providers/request.rs @@ -1,5 +1,6 @@ use crate::apis::anthropic::MessagesRequest; use crate::apis::openai::{is_kimi_code_model, ChatCompletionsRequest}; +use log::warn; use crate::apis::amazon_bedrock::{ConverseRequest, ConverseStreamRequest}; use crate::apis::openai_responses::ResponsesAPIRequest; @@ -99,7 +100,10 @@ impl ProviderRequestType { req.normalize_for_kimi_code_api(); } } else if let Self::MessagesRequest(req) = self { - if is_kimi_code_model(req.model.as_str()) { + if is_kimi_code_model(req.model.as_str()) && req.thinking.is_some() { + warn!( + "kimi-for-coding: stripping unsupported thinking config from upstream request" + ); req.thinking = None; } }