@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed OpenRouter DeepSeek V4 `xhigh` reasoning metadata to preserve OpenRouter's native effort instead of sending DeepSeek's `max` effort ([#4801](https://github.com/earendil-works/pi/issues/4801)).
|
||||||
- Fixed OpenAI Codex Responses replay after switching from Anthropic extended-thinking sessions by generating unique fallback message item IDs for converted thinking/text blocks ([#5148](https://github.com/earendil-works/pi/issues/5148)).
|
- Fixed OpenAI Codex Responses replay after switching from Anthropic extended-thinking sessions by generating unique fallback message item IDs for converted thinking/text blocks ([#5148](https://github.com/earendil-works/pi/issues/5148)).
|
||||||
- Fixed Anthropic-compatible replay for providers that return empty thinking signatures by adding an opt-in `allowEmptySignature` compatibility flag ([#4464](https://github.com/earendil-works/pi/issues/4464)).
|
- Fixed Anthropic-compatible replay for providers that return empty thinking signatures by adding an opt-in `allowEmptySignature` compatibility flag ([#4464](https://github.com/earendil-works/pi/issues/4464)).
|
||||||
- Fixed OpenAI and OpenRouter GPT-5.5 Pro thinking level metadata to expose only supported medium, high, and xhigh efforts.
|
- Fixed OpenAI and OpenRouter GPT-5.5 Pro thinking level metadata to expose only supported medium, high, and xhigh efforts.
|
||||||
|
|||||||
@@ -245,7 +245,12 @@ function applyThinkingLevelMetadata(model: Model<any>): void {
|
|||||||
mergeAnthropicMessagesCompat(model, { forceAdaptiveThinking: true });
|
mergeAnthropicMessagesCompat(model, { forceAdaptiveThinking: true });
|
||||||
}
|
}
|
||||||
if (model.api === "openai-completions" && model.id.includes("deepseek-v4")) {
|
if (model.api === "openai-completions" && model.id.includes("deepseek-v4")) {
|
||||||
mergeThinkingLevelMap(model, DEEPSEEK_V4_THINKING_LEVEL_MAP);
|
mergeThinkingLevelMap(
|
||||||
|
model,
|
||||||
|
model.provider === "openrouter"
|
||||||
|
? { ...DEEPSEEK_V4_THINKING_LEVEL_MAP, xhigh: "xhigh" }
|
||||||
|
: DEEPSEEK_V4_THINKING_LEVEL_MAP,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (isGoogleThinkingApi(model) && isGemini3ProModel(model.id)) {
|
if (isGoogleThinkingApi(model) && isGemini3ProModel(model.id)) {
|
||||||
mergeThinkingLevelMap(model, { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" });
|
mergeThinkingLevelMap(model, { off: null, minimal: null, low: "LOW", medium: null, high: "HIGH" });
|
||||||
@@ -1520,11 +1525,9 @@ async function generateModels() {
|
|||||||
? {
|
? {
|
||||||
requiresReasoningContentOnAssistantMessages:
|
requiresReasoningContentOnAssistantMessages:
|
||||||
deepseekCompat.requiresReasoningContentOnAssistantMessages,
|
deepseekCompat.requiresReasoningContentOnAssistantMessages,
|
||||||
thinkingFormat: deepseekCompat.thinkingFormat,
|
|
||||||
}
|
}
|
||||||
: deepseekCompat),
|
: deepseekCompat),
|
||||||
};
|
};
|
||||||
mergeThinkingLevelMap(candidate, DEEPSEEK_V4_THINKING_LEVEL_MAP);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8813,9 +8813,9 @@ export const MODELS = {
|
|||||||
api: "openai-completions",
|
api: "openai-completions",
|
||||||
provider: "openrouter",
|
provider: "openrouter",
|
||||||
baseUrl: "https://openrouter.ai/api/v1",
|
baseUrl: "https://openrouter.ai/api/v1",
|
||||||
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
|
compat: {"requiresReasoningContentOnAssistantMessages":true},
|
||||||
reasoning: true,
|
reasoning: true,
|
||||||
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"max"},
|
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"xhigh"},
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.09999999999999999,
|
input: 0.09999999999999999,
|
||||||
@@ -8832,9 +8832,9 @@ export const MODELS = {
|
|||||||
api: "openai-completions",
|
api: "openai-completions",
|
||||||
provider: "openrouter",
|
provider: "openrouter",
|
||||||
baseUrl: "https://openrouter.ai/api/v1",
|
baseUrl: "https://openrouter.ai/api/v1",
|
||||||
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
|
compat: {"requiresReasoningContentOnAssistantMessages":true},
|
||||||
reasoning: true,
|
reasoning: true,
|
||||||
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"max"},
|
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"xhigh"},
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0,
|
input: 0,
|
||||||
@@ -8851,9 +8851,9 @@ export const MODELS = {
|
|||||||
api: "openai-completions",
|
api: "openai-completions",
|
||||||
provider: "openrouter",
|
provider: "openrouter",
|
||||||
baseUrl: "https://openrouter.ai/api/v1",
|
baseUrl: "https://openrouter.ai/api/v1",
|
||||||
compat: {"requiresReasoningContentOnAssistantMessages":true,"thinkingFormat":"deepseek"},
|
compat: {"requiresReasoningContentOnAssistantMessages":true},
|
||||||
reasoning: true,
|
reasoning: true,
|
||||||
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"max"},
|
thinkingLevelMap: {"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"xhigh"},
|
||||||
input: ["text"],
|
input: ["text"],
|
||||||
cost: {
|
cost: {
|
||||||
input: 0.435,
|
input: 0.435,
|
||||||
|
|||||||
Reference in New Issue
Block a user