@@ -64,19 +64,23 @@ import type { ModelRecord, RouterModels } from "@roo/api"
6464import { useRouterModels } from "./useRouterModels"
6565import { useOpenRouterModelProviders } from "./useOpenRouterModelProviders"
6666import { useLmStudioModels } from "./useLmStudioModels"
67+ import { useOllamaModels } from "./useOllamaModels"
6768
6869export const useSelectedModel = ( apiConfiguration ?: ProviderSettings ) => {
6970 const provider = apiConfiguration ?. apiProvider || "anthropic"
7071 const openRouterModelId = provider === "openrouter" ? apiConfiguration ?. openRouterModelId : undefined
7172 const lmStudioModelId = provider === "lmstudio" ? apiConfiguration ?. lmStudioModelId : undefined
73+ const ollamaModelId = provider === "ollama" ? apiConfiguration ?. ollamaModelId : undefined
7274
7375 const routerModels = useRouterModels ( )
7476 const openRouterModelProviders = useOpenRouterModelProviders ( openRouterModelId )
7577 const lmStudioModels = useLmStudioModels ( lmStudioModelId )
78+ const ollamaModels = useOllamaModels ( ollamaModelId )
7679
7780 const { id, info } =
7881 apiConfiguration &&
7982 ( typeof lmStudioModelId === "undefined" || typeof lmStudioModels . data !== "undefined" ) &&
83+ ( typeof ollamaModelId === "undefined" || typeof ollamaModels . data !== "undefined" ) &&
8084 typeof routerModels . data !== "undefined" &&
8185 typeof openRouterModelProviders . data !== "undefined"
8286 ? getSelectedModel ( {
@@ -85,6 +89,7 @@ export const useSelectedModel = (apiConfiguration?: ProviderSettings) => {
8589 routerModels : routerModels . data ,
8690 openRouterModelProviders : openRouterModelProviders . data ,
8791 lmStudioModels : lmStudioModels . data ,
92+ ollamaModels : ollamaModels . data ,
8893 } )
8994 : { id : anthropicDefaultModelId , info : undefined }
9095
@@ -109,12 +114,14 @@ function getSelectedModel({
109114 routerModels,
110115 openRouterModelProviders,
111116 lmStudioModels,
117+ ollamaModels,
112118} : {
113119 provider : ProviderName
114120 apiConfiguration : ProviderSettings
115121 routerModels : RouterModels
116122 openRouterModelProviders : Record < string , ModelInfo >
117123 lmStudioModels : ModelRecord | undefined
124+ ollamaModels : ModelRecord | undefined
118125} ) : { id : string ; info : ModelInfo | undefined } {
119126 // the `undefined` case are used to show the invalid selection to prevent
120127 // users from seeing the default model if their selection is invalid
@@ -255,7 +262,7 @@ function getSelectedModel({
255262 }
256263 case "ollama" : {
257264 const id = apiConfiguration . ollamaModelId ?? ""
258- const info = routerModels . ollama && routerModels . ollama [ id ]
265+ const info = ollamaModels && ollamaModels [ apiConfiguration . ollamaModelId ! ]
259266 return {
260267 id,
261268 info : info || undefined ,
0 commit comments