import React, { useEffect, useState } from "react"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ds/ui/dialog"; import { Tabs, TabsContent, TabsList, TabsTrigger, } from "@/components/ds/ui/tabs"; import { ScrollArea } from "@/components/ds/ui/scroll-area"; import { Brain, Code, FileJson, Terminal as TerminalIcon } from "lucide-react"; import { supabase } from "../providers/supabase"; import { LiveTerminal } from "./LiveTerminal"; interface AITraceModalProps { isOpen: boolean; onClose: () => void; activityId: string; } export const AITraceModal = ({ isOpen, onClose, activityId, }: AITraceModalProps) => { const [activity, setActivity] = useState(null); useEffect(() => { if (isOpen && activityId) { const fetchActivity = async () => { const { data } = await supabase .from("activities") .select("*") .eq("id", activityId) .single(); setActivity(data); }; fetchActivity(); } }, [isOpen, activityId]); return (
AI Processing Trace
Granular breakdown of AI decisions and raw model interactions.
Live Feed Raw Data AI Result
                  {JSON.stringify(activity?.raw_data, null, 2)}
                
                  {JSON.stringify(activity?.result, null, 2)}
                
); };