fix(provider): refresh models in background
This commit is contained in:
parent
7e7ad37736
commit
72244e9e09
6 changed files with 112 additions and 37 deletions
|
|
@ -159,11 +159,26 @@ export const {
|
|||
.then((x) => (x.data ?? []).toSorted((a, b) => a.id.localeCompare(b.id)))
|
||||
}
|
||||
|
||||
async function refreshProviders(workspace: string | undefined) {
|
||||
const [providers, providerList] = await Promise.all([
|
||||
sdk.client.config.providers({ workspace }, { throwOnError: true }).then((x) => x.data),
|
||||
sdk.client.provider.list({ workspace }, { throwOnError: true }).then((x) => x.data),
|
||||
])
|
||||
batch(() => {
|
||||
setStore("provider", reconcile(providers.providers))
|
||||
setStore("provider_default", reconcile(providers.default))
|
||||
setStore("provider_next", reconcile(providerList))
|
||||
})
|
||||
}
|
||||
|
||||
event.subscribe((event, { workspace }) => {
|
||||
switch (event.type) {
|
||||
case "server.instance.disposed":
|
||||
void bootstrap()
|
||||
break
|
||||
case "provider.models.updated":
|
||||
void refreshProviders(workspace)
|
||||
break
|
||||
case "permission.replied": {
|
||||
const requests = store.permission[event.properties.sessionID]
|
||||
if (!requests) break
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue