Problem
When using Kimi models (e.g., kimi-k2.5) via OpenRouter, three compatibility issues prevent proper functionality:
1. 403 Forbidden Errors
Symptom: API requests return 403 Forbidden
Cause: Missing User-Agent header
Fix: Add .header("User-Agent", "claude-cli/1.0.0") to requests
2. SSE Parsing Failure
Symptom: Stream responses not parsed correctly, missing content
Cause: Kimi sends SSE as data:value without space, but code only handles data: value
Fix: Check both strip_prefix("data: ") and strip_prefix("data:")
3. Missing Reasoning Content
Symptom: Kimi's reasoning/thinking content not displayed
Cause: Kimi uses reasoning_content field instead of standard content
Fix: Parse reasoning_content field from delta and emit as TextDelta
Environment
- jcode version: latest main
- Model: kimi-k2.5 via OpenRouter
- Error: 403 Forbidden, missing stream content
Related
PR forthcoming with fixes.
Problem
When using Kimi models (e.g., kimi-k2.5) via OpenRouter, three compatibility issues prevent proper functionality:
1. 403 Forbidden Errors
Symptom: API requests return 403 Forbidden
Cause: Missing User-Agent header
Fix: Add
.header("User-Agent", "claude-cli/1.0.0")to requests2. SSE Parsing Failure
Symptom: Stream responses not parsed correctly, missing content
Cause: Kimi sends SSE as
data:valuewithout space, but code only handlesdata: valueFix: Check both
strip_prefix("data: ")andstrip_prefix("data:")3. Missing Reasoning Content
Symptom: Kimi's reasoning/thinking content not displayed
Cause: Kimi uses
reasoning_contentfield instead of standard contentFix: Parse
reasoning_contentfield from delta and emit as TextDeltaEnvironment
Related
PR forthcoming with fixes.