mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-21 17:54:23 +01:00
try to avoid persisting empty thinking/text blocks
This commit is contained in:
@@ -342,6 +342,23 @@ export namespace Session {
|
|||||||
return part
|
return part
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const removePart = fn(
|
||||||
|
z.object({
|
||||||
|
sessionID: Identifier.schema("session"),
|
||||||
|
messageID: Identifier.schema("message"),
|
||||||
|
partID: Identifier.schema("part"),
|
||||||
|
}),
|
||||||
|
async (input) => {
|
||||||
|
await Storage.remove(["part", input.messageID, input.partID])
|
||||||
|
Bus.publish(MessageV2.Event.PartRemoved, {
|
||||||
|
sessionID: input.sessionID,
|
||||||
|
messageID: input.messageID,
|
||||||
|
partID: input.partID,
|
||||||
|
})
|
||||||
|
return input.partID
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
export const getUsage = fn(
|
export const getUsage = fn(
|
||||||
z.object({
|
z.object({
|
||||||
model: z.custom<ModelsDev.Model>(),
|
model: z.custom<ModelsDev.Model>(),
|
||||||
|
|||||||
@@ -916,7 +916,7 @@ export namespace SessionPrompt {
|
|||||||
const part = reasoningMap[value.id]
|
const part = reasoningMap[value.id]
|
||||||
part.text += value.text
|
part.text += value.text
|
||||||
if (value.providerMetadata) part.metadata = value.providerMetadata
|
if (value.providerMetadata) part.metadata = value.providerMetadata
|
||||||
if (part.text) await Session.updatePart(part)
|
if (part.text.trim()) await Session.updatePart(part)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -924,13 +924,14 @@ export namespace SessionPrompt {
|
|||||||
if (value.id in reasoningMap) {
|
if (value.id in reasoningMap) {
|
||||||
const part = reasoningMap[value.id]
|
const part = reasoningMap[value.id]
|
||||||
part.text = part.text.trimEnd()
|
part.text = part.text.trimEnd()
|
||||||
|
if (part.text) {
|
||||||
part.time = {
|
part.time = {
|
||||||
...part.time,
|
...part.time,
|
||||||
end: Date.now(),
|
end: Date.now(),
|
||||||
|
}
|
||||||
|
if (value.providerMetadata) part.metadata = value.providerMetadata
|
||||||
|
await Session.updatePart(part)
|
||||||
}
|
}
|
||||||
if (value.providerMetadata) part.metadata = value.providerMetadata
|
|
||||||
await Session.updatePart(part)
|
|
||||||
delete reasoningMap[value.id]
|
delete reasoningMap[value.id]
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
@@ -1085,19 +1086,21 @@ export namespace SessionPrompt {
|
|||||||
if (currentText) {
|
if (currentText) {
|
||||||
currentText.text += value.text
|
currentText.text += value.text
|
||||||
if (value.providerMetadata) currentText.metadata = value.providerMetadata
|
if (value.providerMetadata) currentText.metadata = value.providerMetadata
|
||||||
if (currentText.text) await Session.updatePart(currentText)
|
if (currentText.text.trim()) await Session.updatePart(currentText)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|
||||||
case "text-end":
|
case "text-end":
|
||||||
if (currentText) {
|
if (currentText) {
|
||||||
currentText.text = currentText.text.trimEnd()
|
currentText.text = currentText.text.trimEnd()
|
||||||
currentText.time = {
|
if (currentText.text) {
|
||||||
start: Date.now(),
|
currentText.time = {
|
||||||
end: Date.now(),
|
start: Date.now(),
|
||||||
|
end: Date.now(),
|
||||||
|
}
|
||||||
|
if (value.providerMetadata) currentText.metadata = value.providerMetadata
|
||||||
|
await Session.updatePart(currentText)
|
||||||
}
|
}
|
||||||
if (value.providerMetadata) currentText.metadata = value.providerMetadata
|
|
||||||
await Session.updatePart(currentText)
|
|
||||||
}
|
}
|
||||||
currentText = undefined
|
currentText = undefined
|
||||||
break
|
break
|
||||||
|
|||||||
Reference in New Issue
Block a user