import type { ProviderConfig } from '../../shared/providers/types'; import { getDefaultProviderAccountId, providerConfigToAccount, saveProviderAccount, } from './provider-store'; import { getClawXProviderStore } from './store-instance'; const PROVIDER_STORE_SCHEMA_VERSION = 1; export async function ensureProviderStoreMigrated(): Promise { const store = await getClawXProviderStore(); const schemaVersion = Number(store.get('schemaVersion') ?? 0); if (schemaVersion >= PROVIDER_STORE_SCHEMA_VERSION) { return; } const legacyProviders = (store.get('providers') ?? {}) as Record; const defaultProviderId = (store.get('defaultProvider') ?? null) as string | null; const existingDefaultAccountId = await getDefaultProviderAccountId(); for (const provider of Object.values(legacyProviders)) { const account = providerConfigToAccount(provider, { isDefault: provider.id === defaultProviderId, }); await saveProviderAccount(account); } if (!existingDefaultAccountId && defaultProviderId) { store.set('defaultProviderAccountId', defaultProviderId); } store.set('schemaVersion', PROVIDER_STORE_SCHEMA_VERSION); }