11import { createRoot , getOwner , onCleanup , runWithOwner , type Owner } from "solid-js"
22import { createStore , type SetStoreFunction , type Store } from "solid-js/store"
33import { Persist , persisted } from "@/utils/persist"
4- import type { OpencodeClient , VcsInfo } from "@opencode-ai/sdk/v2/client"
4+ import type { OpencodeClient , ProviderListResponse , VcsInfo } from "@opencode-ai/sdk/v2/client"
55import {
66 DIR_IDLE_TTL_MS ,
77 MAX_DIR_STORES ,
@@ -27,6 +27,9 @@ export function createChildStoreManager(input: {
2727 onDispose : ( directory : string ) => void
2828 translate : ( key : string , vars ?: Record < string , string | number > ) => string
2929 getSdk : ( directory : string ) => OpencodeClient
30+ global : {
31+ provider : ProviderListResponse
32+ }
3033} ) {
3134 const children : Record < string , [ Store < State > , SetStoreFunction < State > ] > = { }
3235 const vcsCache = new Map < string , VcsCache > ( )
@@ -189,7 +192,13 @@ export function createChildStoreManager(input: {
189192 get provider_ready ( ) {
190193 return ! providerQuery . isLoading
191194 } ,
192- provider : { all : [ ] , connected : [ ] , default : { } } ,
195+ get provider ( ) {
196+ const EMPTY = { all : [ ] , connected : [ ] , default : { } }
197+ if ( providerQuery . isLoading ) return EMPTY
198+ if ( providerQuery . data ?. all . length === 0 && input . global . provider . all . length > 0 )
199+ return input . global . provider
200+ return providerQuery . data ?? EMPTY
201+ } ,
193202 config : { } ,
194203 get path ( ) {
195204 if ( pathQuery . isLoading || ! pathQuery . data )
0 commit comments