openhands / src /hooks /query /use-agent-profiles.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
9b906ea verified
Raw History Blame Contribute Delete
1.3 kB
import { useQuery } from "@tanstack/react-query";
import AgentProfilesService from "#/api/agent-profiles-service/agent-profiles-service.api";
import { useActiveBackend } from "#/contexts/active-backend-context";
import {
CONFIG_CACHE_OPTIONS,
AGENT_PROFILES_QUERY_KEYS,
AGENT_PROFILES_RETRY_OPTIONS,
} from "./query-keys";
export { AGENT_PROFILES_QUERY_KEYS };
interface UseAgentProfilesOptions {
enabled?: boolean;
}
/**
* List the user's AgentProfiles (Settings → Agent profiles library). On first
* GET of an empty store the backend lazily seeds one default profile mirroring
* the user's prior config (#3719), so the list is never empty for an upgrading
* user. Works on both local and cloud backends — `AgentProfilesService` routes
* cloud calls through the cloud proxy (OpenHands #15060).
*/
export function useAgentProfiles(options: UseAgentProfilesOptions = {}) {
const { backend, orgId } = useActiveBackend();
return useQuery({
// Backend identity isolates the cache across backend/org switches.
queryKey: [...AGENT_PROFILES_QUERY_KEYS.all, backend.id, orgId],
queryFn: AgentProfilesService.listProfiles,
...CONFIG_CACHE_OPTIONS,
...AGENT_PROFILES_RETRY_OPTIONS,
enabled: options.enabled ?? true,
meta: { disableToast: true },
});
}