mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-19 06:30:10 +08:00
* fix: update provider-utils and add patch for header merging logic * fix: enhance header merging logic to deduplicate values * fix: handle null values in header merging logic * chore: update ai-sdk dependencies and remove obsolete patches - Updated @ai-sdk/amazon-bedrock from 3.0.56 to 3.0.61 - Updated @ai-sdk/anthropic from 2.0.45 to 2.0.49 - Updated @ai-sdk/gateway from 2.0.13 to 2.0.15 - Updated @ai-sdk/google from 2.0.40 to 2.0.43 - Updated @ai-sdk/google-vertex from 3.0.72 to 3.0.79 - Updated @ai-sdk/openai from 2.0.71 to 2.0.72 - Updated @ai-sdk/provider-utils from patch version to 3.0.17 - Removed obsolete patches for @ai-sdk/openai and @ai-sdk/provider-utils - Added reasoning_content field to OpenAIChat response and chunk schemas - Enhanced OpenAIChatLanguageModel to handle reasoning content in responses * chore
75 lines
3.0 KiB
Diff
Vendored
75 lines
3.0 KiB
Diff
Vendored
diff --git a/dist/index.js b/dist/index.js
|
|
index bf900591bf2847a3253fe441aad24c06da19c6c1..c1d9bb6fefa2df1383339324073db0a70ea2b5a2 100644
|
|
--- a/dist/index.js
|
|
+++ b/dist/index.js
|
|
@@ -274,6 +274,7 @@ var openaiChatResponseSchema = (0, import_provider_utils3.lazyValidator)(
|
|
message: import_v42.z.object({
|
|
role: import_v42.z.literal("assistant").nullish(),
|
|
content: import_v42.z.string().nullish(),
|
|
+ reasoning_content: import_v42.z.string().nullish(),
|
|
tool_calls: import_v42.z.array(
|
|
import_v42.z.object({
|
|
id: import_v42.z.string().nullish(),
|
|
@@ -340,6 +341,7 @@ var openaiChatChunkSchema = (0, import_provider_utils3.lazyValidator)(
|
|
delta: import_v42.z.object({
|
|
role: import_v42.z.enum(["assistant"]).nullish(),
|
|
content: import_v42.z.string().nullish(),
|
|
+ reasoning_content: import_v42.z.string().nullish(),
|
|
tool_calls: import_v42.z.array(
|
|
import_v42.z.object({
|
|
index: import_v42.z.number(),
|
|
@@ -795,6 +797,13 @@ var OpenAIChatLanguageModel = class {
|
|
if (text != null && text.length > 0) {
|
|
content.push({ type: "text", text });
|
|
}
|
|
+ const reasoning = choice.message.reasoning_content;
|
|
+ if (reasoning != null && reasoning.length > 0) {
|
|
+ content.push({
|
|
+ type: 'reasoning',
|
|
+ text: reasoning
|
|
+ });
|
|
+ }
|
|
for (const toolCall of (_a = choice.message.tool_calls) != null ? _a : []) {
|
|
content.push({
|
|
type: "tool-call",
|
|
@@ -876,6 +885,7 @@ var OpenAIChatLanguageModel = class {
|
|
};
|
|
let metadataExtracted = false;
|
|
let isActiveText = false;
|
|
+ let isActiveReasoning = false;
|
|
const providerMetadata = { openai: {} };
|
|
return {
|
|
stream: response.pipeThrough(
|
|
@@ -933,6 +943,21 @@ var OpenAIChatLanguageModel = class {
|
|
return;
|
|
}
|
|
const delta = choice.delta;
|
|
+ const reasoningContent = delta.reasoning_content;
|
|
+ if (reasoningContent) {
|
|
+ if (!isActiveReasoning) {
|
|
+ controller.enqueue({
|
|
+ type: 'reasoning-start',
|
|
+ id: 'reasoning-0',
|
|
+ });
|
|
+ isActiveReasoning = true;
|
|
+ }
|
|
+ controller.enqueue({
|
|
+ type: 'reasoning-delta',
|
|
+ id: 'reasoning-0',
|
|
+ delta: reasoningContent,
|
|
+ });
|
|
+ }
|
|
if (delta.content != null) {
|
|
if (!isActiveText) {
|
|
controller.enqueue({ type: "text-start", id: "0" });
|
|
@@ -1045,6 +1070,9 @@ var OpenAIChatLanguageModel = class {
|
|
}
|
|
},
|
|
flush(controller) {
|
|
+ if (isActiveReasoning) {
|
|
+ controller.enqueue({ type: 'reasoning-end', id: 'reasoning-0' });
|
|
+ }
|
|
if (isActiveText) {
|
|
controller.enqueue({ type: "text-end", id: "0" });
|
|
}
|