mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-09 10:18:57 +00:00
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import type { UserMessage } from "@opencode-ai/sdk/v2"
|
|
import { batch } from "solid-js"
|
|
|
|
type Local = {
|
|
agent: {
|
|
current():
|
|
| {
|
|
model?: UserMessage["model"]
|
|
variant?: string
|
|
}
|
|
| undefined
|
|
set(name: string | undefined): void
|
|
}
|
|
model: {
|
|
set(model: UserMessage["model"] | undefined): void
|
|
current():
|
|
| {
|
|
id: string
|
|
provider: { id: string }
|
|
}
|
|
| undefined
|
|
variant: {
|
|
set(value: string | undefined): void
|
|
}
|
|
}
|
|
}
|
|
|
|
export const resetSessionModel = (local: Local) => {
|
|
const agent = local.agent.current()
|
|
if (!agent) return
|
|
batch(() => {
|
|
local.model.set(agent.model)
|
|
local.model.variant.set(agent.variant)
|
|
})
|
|
}
|
|
|
|
export const syncSessionModel = (local: Local, msg: UserMessage) => {
|
|
batch(() => {
|
|
local.agent.set(msg.agent)
|
|
local.model.set(msg.model)
|
|
})
|
|
|
|
const model = local.model.current()
|
|
if (!model) return
|
|
if (model.provider.id !== msg.model.providerID) return
|
|
if (model.id !== msg.model.modelID) return
|
|
local.model.variant.set(msg.variant)
|
|
}
|