Warn when stripping unsupported Kimi Code request fields

Co-authored-by: Musa <musa@spherrrical.dev>
This commit is contained in:
Cursor Agent 2026-05-26 14:28:31 +00:00
parent 8c51d0da9c
commit 3e3d6b40f7
No known key found for this signature in database
2 changed files with 30 additions and 6 deletions

View file

@ -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;
}
}
}

View file

@ -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;
}
}