diff --git a/features/conversation-assistant/frontend-dev/src/api/index.ts b/features/conversation-assistant/frontend-dev/src/api/index.ts index cb2fbd5e3..efb77608b 100755 --- a/features/conversation-assistant/frontend-dev/src/api/index.ts +++ b/features/conversation-assistant/frontend-dev/src/api/index.ts @@ -70,6 +70,9 @@ export { useGenerateResponse, useAcceptResponse, useRejectResponse, + useResponsesForConversation, + usePendingResponses, + useEditResponse, // Training hooks useTrainingSamples, useTrainingJobs, diff --git a/features/conversation-assistant/frontend-dev/src/api/useMessages.ts b/features/conversation-assistant/frontend-dev/src/api/useMessages.ts index f20a0eb99..0c151b696 100755 --- a/features/conversation-assistant/frontend-dev/src/api/useMessages.ts +++ b/features/conversation-assistant/frontend-dev/src/api/useMessages.ts @@ -217,6 +217,38 @@ export function useRejectResponse() { }); } +export function useResponsesForConversation(conversationId: string) { + return useQuery({ + queryKey: ['responses', 'conversation', conversationId], + queryFn: () => + api.get( + `/responses?conversationId=${conversationId}&status=completed` + ), + enabled: !!conversationId, + refetchInterval: 30_000, + }); +} + +export function usePendingResponses(limit = 50) { + return useQuery({ + queryKey: ['responses', 'pending'], + queryFn: () => + api.get(`/responses/pending?limit=${limit}`), + refetchInterval: 30_000, + }); +} + +export function useEditResponse() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, response }: { id: string; response: string }) => + api.post(`/responses/${id}/edit`, { response }), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ['responses'] }); + }, + }); +} + // ============================================================================ // TRAINING HOOKS // ============================================================================