"use client";
import { useState, useCallback } from "react";
import { IconRotateClockwise2 } from "@tabler/icons-react";
import { GridSpinner } from "@/components/grid-spinner";
import { Button } from "@kandev/ui/button";
import { Tooltip, TooltipContent, TooltipTrigger } from "@kandev/ui/tooltip";
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
} from "@kandev/ui/alert-dialog";
import { useAppStore } from "@/components/state-provider";
import { getWebSocketClient } from "@/lib/ws/connection";
import { useTranslation } from "react-i18next";
export function ResetContextButton({ sessionId }: { sessionId: string }) {
const { t } = useTranslation();
const [confirmOpen, setConfirmOpen] = useState(false);
const [isResetting, setIsResetting] = useState(false);
const clearContextWindow = useAppStore((state) => state.clearContextWindow);
const handleReset = useCallback(async () => {
setIsResetting(true);
try {
const client = getWebSocketClient();
if (!client) return;
await client.request("session.reset_context", { session_id: sessionId }, 30000);
clearContextWindow(sessionId);
} catch (error) {
console.error("Failed to reset agent context:", error);
} finally {
setIsResetting(false);
setConfirmOpen(false);
}
}, [clearContextWindow, sessionId]);
return (
<>
{t("task:resetAgentContextClearsConversationHistory")}
{t("task:resetAgentContext")}
{t("task:thisWillClearTheAgentS")}
{t("common:cancel")}
{isResetting ? t("task:resetting") : t("task:resetContext")}
>
);
}