diff --git a/packages/ui/src/stores/useAgentsStore.ts b/packages/ui/src/stores/useAgentsStore.ts index 2ce7a312..1c87829b 100644 --- a/packages/ui/src/stores/useAgentsStore.ts +++ b/packages/ui/src/stores/useAgentsStore.ts @@ -612,6 +612,10 @@ async function performConfigRefresh(options: { useConfigStore.setState({ directoryScoped: {} }); } + if (refreshProviders) { + useConfigStore.getState().invalidateModelMetadataCache(); + } + const sdkRefreshTasks: Promise[] = []; for (const directory of directoriesToRefresh) { if (refreshProviders) { diff --git a/packages/ui/src/stores/useConfigStore.ts b/packages/ui/src/stores/useConfigStore.ts index b98f7bd7..a02eb676 100644 --- a/packages/ui/src/stores/useConfigStore.ts +++ b/packages/ui/src/stores/useConfigStore.ts @@ -550,6 +550,7 @@ interface ConfigStore { loadProviders: (options?: { directory?: string | null }) => Promise; loadAgents: (options?: { directory?: string | null }) => Promise; + invalidateModelMetadataCache: () => void; setProvider: (providerId: string) => void; setModel: (modelId: string) => void; setCurrentVariant: (variant: string | undefined) => void; @@ -1550,6 +1551,11 @@ export const useConfigStore = create()( return promise; }, + invalidateModelMetadataCache: () => { + modelsMetadataInFlight = null; + set({ modelsMetadata: new Map() }); + }, + setAgent: (agentName: string | undefined) => { const { agents,