@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed Kimi Coding K3 thinking-level metadata to expose only the supported `max` level ([#6737](https://github.com/earendil-works/pi/issues/6737)).
|
||||||
|
|
||||||
## [0.80.9] - 2026-07-16
|
## [0.80.9] - 2026-07-16
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -1627,6 +1627,7 @@ async function loadModelsDevData(): Promise<Model<any>[]> {
|
|||||||
|
|
||||||
const normalizedId = kimiAliases.has(modelId) ? "kimi-for-coding" : modelId;
|
const normalizedId = kimiAliases.has(modelId) ? "kimi-for-coding" : modelId;
|
||||||
const normalizedName = kimiAliases.has(modelId) ? "Kimi For Coding" : m.name || normalizedId;
|
const normalizedName = kimiAliases.has(modelId) ? "Kimi For Coding" : m.name || normalizedId;
|
||||||
|
const isKimiK3 = normalizedId === "k3";
|
||||||
|
|
||||||
models.push({
|
models.push({
|
||||||
id: normalizedId,
|
id: normalizedId,
|
||||||
@@ -1636,7 +1637,8 @@ async function loadModelsDevData(): Promise<Model<any>[]> {
|
|||||||
// Kimi For Coding's Anthropic-compatible API - SDK appends /v1/messages
|
// Kimi For Coding's Anthropic-compatible API - SDK appends /v1/messages
|
||||||
baseUrl: "https://api.kimi.com/coding",
|
baseUrl: "https://api.kimi.com/coding",
|
||||||
headers: { ...KIMI_STATIC_HEADERS },
|
headers: { ...KIMI_STATIC_HEADERS },
|
||||||
reasoning: m.reasoning === true,
|
reasoning: isKimiK3 || m.reasoning === true,
|
||||||
|
...(isKimiK3 ? { thinkingLevelMap: KIMI_K3_THINKING_LEVEL_MAP } : {}),
|
||||||
input: m.modalities?.input?.includes("image") ? ["text", "image"] : ["text"],
|
input: m.modalities?.input?.includes("image") ? ["text", "image"] : ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: m.cost?.input || 0,
|
input: m.cost?.input || 0,
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ export const KIMI_CODING_MODELS = {
|
|||||||
baseUrl: "https://api.kimi.com/coding",
|
baseUrl: "https://api.kimi.com/coding",
|
||||||
headers: {"User-Agent":"KimiCLI/1.5"},
|
headers: {"User-Agent":"KimiCLI/1.5"},
|
||||||
reasoning: true,
|
reasoning: true,
|
||||||
|
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":null,"xhigh":null,"max":"max"},
|
||||||
input: ["text", "image"],
|
input: ["text", "image"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0,
|
input: 0,
|
||||||
|
|||||||
@@ -110,6 +110,12 @@ describe("getSupportedThinkingLevels", () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("includes only max for Kimi Coding K3", () => {
|
||||||
|
const model = getModel("kimi-coding", "k3");
|
||||||
|
expect(model).toBeDefined();
|
||||||
|
expect(getSupportedThinkingLevels(model!)).toEqual(["max"]);
|
||||||
|
});
|
||||||
|
|
||||||
it("includes only high for OpenCode Grok Build", () => {
|
it("includes only high for OpenCode Grok Build", () => {
|
||||||
const model = getModel("opencode", "grok-build-0.1");
|
const model = getModel("opencode", "grok-build-0.1");
|
||||||
expect(model).toBeDefined();
|
expect(model).toBeDefined();
|
||||||
|
|||||||
Reference in New Issue
Block a user