import { queryOptions, useQuery } from "@octanejs/tanstack-query"; import type { MODEL_CATALOG } from "../../../worker/model-settings"; import type { CustomerQuerySession } from "../customer-query-session"; import { useCustomerQuerySession } from "../customer-query-provider"; import { callOwner, type SettingsConnection } from "../owner-rpc"; export function modelCatalogOptions( session: CustomerQuerySession, connection: SettingsConnection, ) { return queryOptions({ queryKey: session.key("settings", "model-catalog"), enabled: !!session.getSnapshot().scope && !!connection?.isReady(), staleTime: Infinity, queryFn: ({ signal }) => callOwner( connection, "getModelCatalog", [], signal, ), }); } export function useModelCatalogQuery(connection: SettingsConnection) { const session = useCustomerQuerySession(); return useQuery(modelCatalogOptions(session, connection)); }