import { page } from '$app/state'; import { api } from '$lib/backend/convex/_generated/api'; import { getModelKey } from '$lib/backend/convex/user_enabled_models'; import type { ProviderModelMap } from '$lib/backend/models/all'; import { useCachedQuery } from '$lib/cache/cached-query.svelte'; import { createInit } from '$lib/spells/create-init.svelte'; import { Provider } from '$lib/types'; import { watch } from 'runed'; import { session } from './session.svelte'; export class Models { enabled = $state({} as Record); init = createInit(() => { const query = useCachedQuery(api.user_enabled_models.get_enabled, { user_id: session.current?.user.id ?? '', }); watch( () => $state.snapshot(query.data), (data) => { if (data) this.enabled = data; } ); }); from

(provider: Provider) { return page.data.models[provider].map((m: { id: string }) => { return { ...m, enabled: this.enabled[getModelKey({ provider, model_id: m.id })] !== undefined, }; }) as Array; } } export const models = new Models();