mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-23 10:44:21 +01:00
tui: fix model selection for models with nested paths
Users can now select models with multiple slashes like 'openrouter/google/gemini-2.5-pro' in the TUI. Previously the TUI would only parse the first two parts of the model path, showing 'Invalid model openrouter/google' for nested models.
This commit is contained in:
@@ -9,6 +9,7 @@ import { iife } from "@/util/iife"
|
|||||||
import { createSimpleContext } from "./helper"
|
import { createSimpleContext } from "./helper"
|
||||||
import { useToast } from "../ui/toast"
|
import { useToast } from "../ui/toast"
|
||||||
import { createEventBus } from "@solid-primitives/event-bus"
|
import { createEventBus } from "@solid-primitives/event-bus"
|
||||||
|
import { Provider } from "@/provider/provider"
|
||||||
|
|
||||||
export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
||||||
name: "Local",
|
name: "Local",
|
||||||
@@ -38,7 +39,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
|||||||
agent.set(props.initialAgent)
|
agent.set(props.initialAgent)
|
||||||
}
|
}
|
||||||
if (props.initialModel) {
|
if (props.initialModel) {
|
||||||
const [providerID, modelID] = props.initialModel.split("/")
|
const { providerID, modelID } = Provider.parseModel(props.initialModel)
|
||||||
if (!providerID || !modelID)
|
if (!providerID || !modelID)
|
||||||
return toast.show({
|
return toast.show({
|
||||||
variant: "warning",
|
variant: "warning",
|
||||||
@@ -150,7 +151,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
|||||||
|
|
||||||
const fallbackModel = createMemo(() => {
|
const fallbackModel = createMemo(() => {
|
||||||
if (sync.data.config.model) {
|
if (sync.data.config.model) {
|
||||||
const [providerID, modelID] = sync.data.config.model.split("/")
|
const { providerID, modelID } = Provider.parseModel(sync.data.config.model)
|
||||||
if (isModelValid({ providerID, modelID })) {
|
if (isModelValid({ providerID, modelID })) {
|
||||||
return {
|
return {
|
||||||
providerID,
|
providerID,
|
||||||
@@ -243,8 +244,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
|
|||||||
const setInitialPrompt = createEventBus<string>()
|
const setInitialPrompt = createEventBus<string>()
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
if (props.initialPrompt)
|
if (props.initialPrompt) setInitialPrompt.emit(props.initialPrompt)
|
||||||
setInitialPrompt.emit(props.initialPrompt)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const result = {
|
const result = {
|
||||||
|
|||||||
Reference in New Issue
Block a user