import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { researchApi, ResearchRunResult, ResearchSessionDetail, ResearchSessionItem, StartResearchRequest, } from "@/lib/api/research"; import { queryKeys } from "./queryKeys"; export function useStartResearch(projectName: string) { const queryClient = useQueryClient(); return useMutation({ mutationFn: (body) => researchApi.startByProject(body), onSuccess: () => { queryClient.invalidateQueries({ queryKey: queryKeys.research.sessions(projectName), }); }, }); } export function useResearchSessions(projectName: string, limit = 25) { return useQuery({ queryKey: queryKeys.research.sessions(projectName), queryFn: () => researchApi.listSessions(projectName, limit), enabled: Boolean(projectName), }); } export function useResearchSession(jobId: string | null | undefined) { return useQuery({ queryKey: queryKeys.research.session(jobId ?? ""), queryFn: () => researchApi.getSession(jobId!), enabled: Boolean(jobId), }); }