import { createContext, useContext, type FC, type ReactNode } from 'react'; import { ThreadPrimitive, MessagePrimitive, ComposerPrimitive, AuiIf, } from '@assistant-ui/react'; import { ArrowDownIcon } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { TooltipProvider } from '@/components/ui/tooltip'; import { TooltipIconButton } from '@/components/assistant-ui/tooltip-icon-button'; import { UserMessage } from './UserMessage'; import { AssistantMessage } from './AssistantMessage'; const SessionIdContext = createContext(undefined); export const useSessionId = () => useContext(SessionIdContext); const BranchChatContext = createContext< ((newSessionId: string) => void) | undefined >(undefined); export const useBranchChatCallback = () => useContext(BranchChatContext); interface OpenSwarmThreadProps { sessionId?: string; onBranchChat?: (newSessionId: string) => void; children?: ReactNode; } const OpenSwarmThread: FC = ({ sessionId, onBranchChat, children, }) => { return ( s.thread.isEmpty}> {children} ); }; const ThreadWelcome: FC = () => (

How can I help you today?

); const ThreadScrollToBottom: FC = () => ( ); const EditComposer: FC = () => (
); export default OpenSwarmThread;