mirror of
https://github.com/sst/opencode.git
synced 2025-12-23 10:11:41 +00:00
Merge branch 'dev' into opentui
This commit is contained in:
commit
65028c1aea
5 changed files with 21 additions and 8 deletions
|
|
@ -338,6 +338,9 @@ export namespace Provider {
|
|||
const s = await state()
|
||||
const pkg = model.provider?.npm ?? provider.npm ?? provider.id
|
||||
const options = { ...s.providers[provider.id]?.options }
|
||||
if (pkg.includes("@ai-sdk/openai-compatible") && options["includeUsage"] === undefined) {
|
||||
options["includeUsage"] = true
|
||||
}
|
||||
const key = Bun.hash.xxHash32(JSON.stringify({ pkg, options }))
|
||||
const existing = s.sdk.get(key)
|
||||
if (existing) return existing
|
||||
|
|
|
|||
|
|
@ -98,8 +98,8 @@ export namespace ProviderTransform {
|
|||
}
|
||||
if (providerID === "opencode") {
|
||||
result["promptCacheKey"] = sessionID
|
||||
// result["include"] = ["reasoning.encrypted_content"]
|
||||
// result["reasoningSummary"] = "auto"
|
||||
result["include"] = ["reasoning.encrypted_content"]
|
||||
result["reasoningSummary"] = "detailed"
|
||||
}
|
||||
}
|
||||
return result
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ export namespace MessageV2 {
|
|||
end: z.number().optional(),
|
||||
})
|
||||
.optional(),
|
||||
metadata: z.record(z.string(), z.any()).optional(),
|
||||
}).meta({
|
||||
ref: "TextPart",
|
||||
})
|
||||
|
|
@ -140,6 +141,7 @@ export namespace MessageV2 {
|
|||
callID: z.string(),
|
||||
tool: z.string(),
|
||||
state: ToolState,
|
||||
metadata: z.record(z.string(), z.any()).optional(),
|
||||
}).meta({
|
||||
ref: "ToolPart",
|
||||
})
|
||||
|
|
@ -524,6 +526,7 @@ export namespace MessageV2 {
|
|||
{
|
||||
type: "text",
|
||||
text: part.text,
|
||||
providerMetadata: part.metadata,
|
||||
},
|
||||
]
|
||||
if (part.type === "step-start")
|
||||
|
|
@ -541,6 +544,7 @@ export namespace MessageV2 {
|
|||
toolCallId: part.callID,
|
||||
input: part.state.input,
|
||||
output: part.state.time.compacted ? "[Old tool result content cleared]" : part.state.output,
|
||||
callProviderMetadata: part.metadata,
|
||||
},
|
||||
]
|
||||
if (part.state.status === "error")
|
||||
|
|
@ -551,6 +555,7 @@ export namespace MessageV2 {
|
|||
toolCallId: part.callID,
|
||||
input: part.state.input,
|
||||
errorText: part.state.error,
|
||||
callProviderMetadata: part.metadata,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -892,6 +892,7 @@ export namespace SessionPrompt {
|
|||
time: {
|
||||
start: Date.now(),
|
||||
},
|
||||
metadata: value.providerMetadata,
|
||||
}
|
||||
break
|
||||
|
||||
|
|
@ -913,6 +914,7 @@ export namespace SessionPrompt {
|
|||
...part.time,
|
||||
end: Date.now(),
|
||||
}
|
||||
if (value.providerMetadata) part.metadata = value.providerMetadata
|
||||
await Session.updatePart(part)
|
||||
delete reasoningMap[value.id]
|
||||
}
|
||||
|
|
@ -954,6 +956,7 @@ export namespace SessionPrompt {
|
|||
start: Date.now(),
|
||||
},
|
||||
},
|
||||
metadata: value.providerMetadata,
|
||||
})
|
||||
toolcalls[value.toolCallId] = part as MessageV2.ToolPart
|
||||
}
|
||||
|
|
@ -1042,12 +1045,14 @@ export namespace SessionPrompt {
|
|||
time: {
|
||||
start: Date.now(),
|
||||
},
|
||||
metadata: value.providerMetadata,
|
||||
}
|
||||
break
|
||||
|
||||
case "text-delta":
|
||||
if (currentText) {
|
||||
currentText.text += value.text
|
||||
if (value.providerMetadata) currentText.metadata = value.providerMetadata
|
||||
if (currentText.text) await Session.updatePart(currentText)
|
||||
}
|
||||
break
|
||||
|
|
@ -1059,6 +1064,7 @@ export namespace SessionPrompt {
|
|||
start: Date.now(),
|
||||
end: Date.now(),
|
||||
}
|
||||
if (value.providerMetadata) currentText.metadata = value.providerMetadata
|
||||
await Session.updatePart(currentText)
|
||||
}
|
||||
currentText = undefined
|
||||
|
|
|
|||
|
|
@ -956,10 +956,10 @@ func (a Model) home() (string, int, int) {
|
|||
muted := styles.NewStyle().Foreground(t.TextMuted()).Background(t.Background()).Render
|
||||
|
||||
open := `
|
||||
|
||||
█▀▀█ █▀▀█ █▀▀█ █▀▀▄
|
||||
█░░█ █░░█ █▀▀▀ █░░█
|
||||
▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀`
|
||||
|
||||
█▀▀█ █▀▀█ █▀▀█ █▀▀▄
|
||||
█░░█ █░░█ █▀▀▀ █░░█
|
||||
▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀ `
|
||||
|
||||
code := `
|
||||
▄
|
||||
|
|
@ -967,7 +967,6 @@ func (a Model) home() (string, int, int) {
|
|||
█░░░ █░░█ █░░█ █▀▀▀
|
||||
▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀`
|
||||
|
||||
|
||||
logo := lipgloss.JoinHorizontal(
|
||||
lipgloss.Top,
|
||||
muted(open),
|
||||
|
|
@ -1043,7 +1042,7 @@ func (a Model) home() (string, int, int) {
|
|||
)
|
||||
|
||||
editorX := max(0, (effectiveWidth-editorWidth)/2)
|
||||
editorY := (a.height / 2) + (mainHeight / 2) - 2
|
||||
editorY := (a.height / 2) + (mainHeight / 2) - 3
|
||||
|
||||
if editorLines > 1 {
|
||||
content := a.editor.Content()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue