fix: openai reasoning issue (#2780)

This commit is contained in:
Aiden Cline
2025-09-26 00:23:30 -05:00
committed by GitHub
parent d47feb9969
commit 5d95846df1
2 changed files with 11 additions and 0 deletions

View File

@@ -115,6 +115,7 @@ export namespace MessageV2 {
end: z.number().optional(), end: z.number().optional(),
}) })
.optional(), .optional(),
metadata: z.record(z.string(), z.any()).optional(),
}).meta({ }).meta({
ref: "TextPart", ref: "TextPart",
}) })
@@ -138,6 +139,7 @@ export namespace MessageV2 {
callID: z.string(), callID: z.string(),
tool: z.string(), tool: z.string(),
state: ToolState, state: ToolState,
metadata: z.record(z.string(), z.any()).optional(),
}).meta({ }).meta({
ref: "ToolPart", ref: "ToolPart",
}) })
@@ -519,6 +521,7 @@ export namespace MessageV2 {
{ {
type: "text", type: "text",
text: part.text, text: part.text,
providerMetadata: part.metadata,
}, },
] ]
if (part.type === "step-start") if (part.type === "step-start")
@@ -536,6 +539,7 @@ export namespace MessageV2 {
toolCallId: part.callID, toolCallId: part.callID,
input: part.state.input, input: part.state.input,
output: part.state.time.compacted ? "[Old tool result content cleared]" : part.state.output, output: part.state.time.compacted ? "[Old tool result content cleared]" : part.state.output,
callProviderMetadata: part.metadata,
}, },
] ]
if (part.state.status === "error") if (part.state.status === "error")
@@ -546,6 +550,7 @@ export namespace MessageV2 {
toolCallId: part.callID, toolCallId: part.callID,
input: part.state.input, input: part.state.input,
errorText: part.state.error, errorText: part.state.error,
callProviderMetadata: part.metadata,
}, },
] ]
} }

View File

@@ -892,6 +892,7 @@ export namespace SessionPrompt {
time: { time: {
start: Date.now(), start: Date.now(),
}, },
metadata: value.providerMetadata,
} }
break break
@@ -913,6 +914,7 @@ export namespace SessionPrompt {
...part.time, ...part.time,
end: Date.now(), end: Date.now(),
} }
if (value.providerMetadata) part.metadata = value.providerMetadata
await Session.updatePart(part) await Session.updatePart(part)
delete reasoningMap[value.id] delete reasoningMap[value.id]
} }
@@ -952,6 +954,7 @@ export namespace SessionPrompt {
start: Date.now(), start: Date.now(),
}, },
}, },
metadata: value.providerMetadata,
}) })
toolcalls[value.toolCallId] = part as MessageV2.ToolPart toolcalls[value.toolCallId] = part as MessageV2.ToolPart
} }
@@ -1054,12 +1057,14 @@ export namespace SessionPrompt {
time: { time: {
start: Date.now(), start: Date.now(),
}, },
metadata: value.providerMetadata,
} }
break break
case "text-delta": case "text-delta":
if (currentText) { if (currentText) {
currentText.text += value.text currentText.text += value.text
if (value.providerMetadata) currentText.metadata = value.providerMetadata
if (currentText.text) await Session.updatePart(currentText) if (currentText.text) await Session.updatePart(currentText)
} }
break break
@@ -1071,6 +1076,7 @@ export namespace SessionPrompt {
start: Date.now(), start: Date.now(),
end: Date.now(), end: Date.now(),
} }
if (value.providerMetadata) currentText.metadata = value.providerMetadata
await Session.updatePart(currentText) await Session.updatePart(currentText)
} }
currentText = undefined currentText = undefined