@centive/aria-sdk 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { jsxs as P, Fragment as B, jsx as o } from "react/jsx-runtime";
2
2
  import { useState as r, useRef as H, useCallback as n, useEffect as T } from "react";
3
- import { A as $, S as q, g as G, a as ue } from "./index-DfhP6F6y.js";
3
+ import { AriaSessionManager as $, ShadowContainer as q, getAriaStyles as G, AriaWidget as ue } from "./index.js";
4
4
  const ve = ({
5
5
  theme: u,
6
6
  triggerLabel: h,
@@ -248,4 +248,4 @@ export {
248
248
  ve as AriaStandaloneUI,
249
249
  ve as default
250
250
  };
251
- //# sourceMappingURL=AriaStandaloneUI-CIDTW7l1.js.map
251
+ //# sourceMappingURL=AriaStandaloneUI-BBTTHhra.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AriaStandaloneUI-CIDTW7l1.js","sources":["../src/components/AriaStandaloneUI.tsx"],"sourcesContent":["/**\n * AriaStandaloneUI - Standalone React component for Aria SDK\n * \n * This component is mounted by AriaCore.init() and manages its own state\n * independently of any parent React context. It listens to window events\n * dispatched by AriaCore for programmatic control.\n */\n\nimport { useState, useEffect, useCallback, useRef, type FC } from 'react';\nimport type { \n ChatMessage, \n TriggerMode, \n SessionState, \n SessionManagerStatus,\n SessionManagerEvent,\n WebSocketTriggerEvent,\n ToolCallState,\n Theme,\n} from '@/types';\nimport { AriaSessionManager } from '@/lib/AriaSessionManager';\nimport { AriaWidget } from './AriaWidget';\nimport { ShadowContainer } from './ShadowContainer';\nimport { getAriaStyles } from '@/lib/cssLoader';\n\ninterface AriaStandaloneUIProps {\n theme: Theme;\n triggerLabel?: string;\n container: HTMLElement;\n}\n\nexport const AriaStandaloneUI: FC<AriaStandaloneUIProps> = ({\n theme,\n triggerLabel,\n container,\n}) => {\n // UI State\n const [isOpen, setIsOpen] = useState(false);\n const [isMinimized, setIsMinimized] = useState(false);\n const [isConnected, setIsConnected] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [chatMessages, setChatMessages] = useState<ChatMessage[]>([]);\n const [liveTranscript, setLiveTranscript] = useState('');\n const [isChatVisible, setIsChatVisible] = useState(false);\n const [isMuted, setIsMuted] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [triggerMode, setTriggerMode] = useState<TriggerMode>('user');\n const [displayMode, setDisplayMode] = useState<'center' | 'bottom-right'>('bottom-right');\n \n // Tool call state\n const [toolCallState, setToolCallState] = useState<ToolCallState>({\n isActive: false,\n toolName: null,\n toolData: null,\n });\n \n // Session State\n const [sessionState, setSessionState] = useState<SessionState>({\n session_id: null,\n token: null,\n expires_at: null,\n isSessionReady: false,\n lastError: null,\n isPreloaded: false,\n isRefreshing: false,\n });\n const [, setSessionManagerStatus] = useState<SessionManagerStatus>('idle');\n const [, setIsSessionPaused] = useState(false);\n\n // Refs\n const managerRef = useRef<AriaSessionManager | null>(null);\n const videoElementRef = useRef<HTMLVideoElement | null>(null);\n\n // ============================================================================\n // Session Manager Event Handlers\n // ============================================================================\n\n const handleStatusChange = useCallback((event: SessionManagerEvent) => {\n const { newStatus } = event.data as { oldStatus: SessionManagerStatus; newStatus: SessionManagerStatus };\n setSessionManagerStatus(newStatus);\n \n if (newStatus === 'preloading' || newStatus === 'connecting') {\n if (isOpen) {\n setIsLoading(true);\n }\n } else if (newStatus === 'ready') {\n setIsLoading(false);\n setIsConnected(true);\n } else if (newStatus === 'error') {\n setIsLoading(false);\n }\n }, [isOpen]);\n\n const handleSessionReady = useCallback((event: SessionManagerEvent) => {\n console.log('[AriaStandaloneUI] Session ready event:', event.data);\n \n if (managerRef.current) {\n const state = managerRef.current.getSessionState();\n setSessionState(state);\n }\n \n setIsConnected(true);\n setIsLoading(false);\n setError(null);\n }, []);\n\n const handleSessionError = useCallback((event: SessionManagerEvent) => {\n const errorMsg = event.error?.message || 'Session error';\n console.error('[AriaStandaloneUI] Session error:', errorMsg);\n setError(errorMsg);\n setIsLoading(false);\n \n if (managerRef.current) {\n const state = managerRef.current.getSessionState();\n setSessionState(state);\n }\n }, []);\n\n const handleConnectionChange = useCallback((event: SessionManagerEvent) => {\n const { connected } = event.data as { connected: boolean };\n setIsConnected(connected);\n \n if (!connected && managerRef.current) {\n const state = managerRef.current.getSessionState();\n setSessionState(state);\n }\n }, []);\n\n const handleMessageHistory = useCallback((event: SessionManagerEvent) => {\n const { messages } = event.data as { messages?: ChatMessage[] };\n if (messages) {\n setChatMessages(messages);\n }\n }, []);\n\n const handleMessageStream = useCallback((event: SessionManagerEvent) => {\n const { liveTranscript: transcript } = event.data as { liveTranscript?: string };\n if (transcript !== undefined) {\n setLiveTranscript(transcript);\n }\n }, []);\n\n const handleWebSocketTrigger = useCallback((_event: WebSocketTriggerEvent) => {\n console.log('[AriaStandaloneUI] WebSocket trigger event');\n openAssistant('websocket');\n }, []);\n\n const handleToolCall = useCallback((event: SessionManagerEvent) => {\n const data = event.data as { isActive: boolean; toolName: string | null; toolData: Record<string, unknown> | null };\n setToolCallState({\n isActive: data.isActive,\n toolName: data.toolName,\n toolData: data.toolData,\n });\n }, []);\n\n // ============================================================================\n // Initialize Session Manager\n // ============================================================================\n\n useEffect(() => {\n // Get the existing singleton instance (created by AriaCore.init)\n if (!AriaSessionManager.hasInstance()) {\n console.error('[AriaStandaloneUI] AriaSessionManager not initialized');\n return;\n }\n\n const manager = AriaSessionManager.getInstance({} as never); // Get existing instance\n managerRef.current = manager;\n\n // Set up event listeners\n manager.addEventListener('status_change', handleStatusChange);\n manager.addEventListener('session_ready', handleSessionReady);\n manager.addEventListener('session_error', handleSessionError);\n manager.addEventListener('connection_change', handleConnectionChange);\n manager.addEventListener('message_history', handleMessageHistory);\n manager.addEventListener('message_stream', handleMessageStream);\n manager.addEventListener('tool_call', handleToolCall);\n manager.setWebSocketTriggerCallback(handleWebSocketTrigger);\n\n // Sync initial state from manager\n setSessionState(manager.getSessionState());\n setSessionManagerStatus(manager.getStatus());\n setIsConnected(manager.isConnected());\n setChatMessages(manager.getChatMessages());\n setLiveTranscript(manager.getLiveTranscript());\n setIsMuted(manager.isMuted());\n setIsSessionPaused(manager.isSessionPaused());\n \n const toolState = manager.getToolCallState();\n setToolCallState(toolState);\n\n return () => {\n manager.removeEventListener('status_change', handleStatusChange);\n manager.removeEventListener('session_ready', handleSessionReady);\n manager.removeEventListener('session_error', handleSessionError);\n manager.removeEventListener('connection_change', handleConnectionChange);\n manager.removeEventListener('message_history', handleMessageHistory);\n manager.removeEventListener('message_stream', handleMessageStream);\n manager.removeEventListener('tool_call', handleToolCall);\n manager.setWebSocketTriggerCallback(null);\n };\n }, [\n handleStatusChange,\n handleSessionReady,\n handleSessionError,\n handleConnectionChange,\n handleMessageHistory,\n handleMessageStream,\n handleToolCall,\n handleWebSocketTrigger,\n ]);\n\n // ============================================================================\n // Window Event Listeners (for AriaCore programmatic control)\n // ============================================================================\n\n useEffect(() => {\n const handleOpen = (e: Event) => {\n const customEvent = e as CustomEvent<{ mode?: TriggerMode }>;\n openAssistant(customEvent.detail?.mode || 'user');\n };\n\n const handleClose = () => {\n closeAssistant();\n };\n\n const handleMinimize = () => {\n minimizeAssistant();\n };\n\n const handleMaximize = () => {\n maximizeAssistant();\n };\n\n window.addEventListener('aria:open', handleOpen);\n window.addEventListener('aria:close', handleClose);\n window.addEventListener('aria:minimize', handleMinimize);\n window.addEventListener('aria:maximize', handleMaximize);\n\n return () => {\n window.removeEventListener('aria:open', handleOpen);\n window.removeEventListener('aria:close', handleClose);\n window.removeEventListener('aria:minimize', handleMinimize);\n window.removeEventListener('aria:maximize', handleMaximize);\n };\n }, []);\n\n // Update container data attribute when open state changes\n useEffect(() => {\n container.setAttribute('data-aria-open', String(isOpen));\n }, [isOpen, container]);\n\n // ============================================================================\n // Video Element Management\n // ============================================================================\n\n const setVideoElement = useCallback((element: HTMLVideoElement | null) => {\n videoElementRef.current = element;\n \n if (element && managerRef.current) {\n managerRef.current.attachToVideoElement(element);\n } else if (!element && videoElementRef.current && managerRef.current) {\n managerRef.current.detachFromVideoElement(videoElementRef.current);\n }\n }, []);\n\n // ============================================================================\n // Assistant Actions\n // ============================================================================\n\n const openAssistant = useCallback((mode: TriggerMode = 'user') => {\n setTriggerMode(mode);\n setDisplayMode(mode === 'websocket' ? 'center' : 'bottom-right');\n setIsOpen(true);\n setIsMinimized(false);\n setError(null);\n\n if (!managerRef.current) return;\n\n const isPaused = managerRef.current.isSessionPaused();\n \n if (isPaused) {\n setIsLoading(true);\n managerRef.current.resumeSession().then(() => {\n setIsLoading(false);\n setIsConnected(true);\n setIsSessionPaused(false);\n const state = managerRef.current!.getSessionState();\n setSessionState(state);\n setChatMessages(managerRef.current!.getChatMessages());\n }).catch((err) => {\n setIsLoading(false);\n setIsSessionPaused(false);\n setError(err instanceof Error ? err.message : 'Failed to resume session');\n });\n return;\n }\n\n const isAnamReady = managerRef.current.isAnamClientInitialized();\n const hasToken = managerRef.current.hasSessionToken();\n const status = managerRef.current.getStatus();\n \n if (isAnamReady && status === 'ready') {\n setIsLoading(false);\n setIsConnected(true);\n } else if (hasToken) {\n setIsLoading(true);\n \n managerRef.current.initializeSessionOnDemand()\n .then(() => {\n setIsLoading(false);\n setIsConnected(true);\n const state = managerRef.current!.getSessionState();\n setSessionState(state);\n })\n .catch((err) => {\n setIsLoading(false);\n setError(err instanceof Error ? err.message : 'Failed to initialize session');\n });\n } else {\n setIsLoading(true);\n \n if (!managerRef.current.isConnected()) {\n managerRef.current.connect();\n }\n }\n }, []);\n\n const minimizeAssistant = useCallback(() => {\n setIsMinimized(true);\n }, []);\n\n const maximizeAssistant = useCallback(() => {\n setIsMinimized(false);\n }, []);\n\n const closeAssistant = useCallback(() => {\n setIsOpen(false);\n setIsMinimized(false);\n \n if (!managerRef.current) return;\n \n if (videoElementRef.current) {\n managerRef.current.detachFromVideoElement(videoElementRef.current);\n }\n \n setLiveTranscript('');\n managerRef.current.clearLiveTranscript();\n \n const isPersistEnabled = managerRef.current.isPersistSessionEnabled();\n \n if (isPersistEnabled) {\n managerRef.current.pauseSession();\n setIsSessionPaused(true);\n } else {\n managerRef.current.sendSessionEnd();\n managerRef.current.stopStreaming();\n \n setSessionState({\n session_id: null,\n token: null,\n expires_at: null,\n isSessionReady: false,\n lastError: null,\n isPreloaded: false,\n isRefreshing: false,\n });\n setIsConnected(false);\n setChatMessages([]);\n }\n }, []);\n\n // ============================================================================\n // Chat Actions\n // ============================================================================\n\n const toggleChat = useCallback(() => {\n setIsChatVisible(prev => !prev);\n }, []);\n\n const sendMessage = useCallback(async (message: string) => {\n if (!managerRef.current || !isConnected) {\n throw new Error('Not connected to Aria');\n }\n\n await managerRef.current.sendMessage(message);\n }, [isConnected]);\n\n const toggleMute = useCallback(() => {\n if (!managerRef.current) return;\n const newMuteState = managerRef.current.toggleMute();\n setIsMuted(newMuteState);\n }, []);\n\n // ============================================================================\n // Render\n // ============================================================================\n\n return (\n <>\n {/* Floating Trigger Button - shown when assistant is closed */}\n {!isOpen && (\n <AriaTriggerButtonStandalone \n showAvatar={true} \n label={triggerLabel}\n theme={theme}\n onClick={() => openAssistant('user')}\n />\n )}\n\n {/* Assistant Widget - render when open */}\n {isOpen && (\n <>\n {/* Backdrop overlay - only shown when widget is NOT minimized */}\n {!isMinimized && (\n <div \n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n minimizeAssistant();\n }}\n style={{\n position: 'fixed',\n inset: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n backdropFilter: 'blur(1px)',\n WebkitBackdropFilter: 'blur(1px)',\n zIndex: 9998,\n cursor: 'pointer',\n }}\n aria-hidden=\"true\"\n />\n )}\n \n {/* Aria Widget wrapped in Shadow DOM */}\n <ShadowContainer \n styles={getAriaStyles()}\n style={{ \n position: 'fixed',\n zIndex: 9999,\n inset: 0,\n pointerEvents: 'none',\n }}\n >\n <div style={{ pointerEvents: 'auto' }}>\n <AriaWidgetStandalone\n onClose={closeAssistant}\n isMinimized={isMinimized}\n onMaximize={maximizeAssistant}\n theme={theme}\n displayMode={displayMode}\n triggerMode={triggerMode}\n isConnected={isConnected}\n isLoading={isLoading}\n chatMessages={chatMessages}\n liveTranscript={liveTranscript}\n isChatVisible={isChatVisible}\n isMuted={isMuted}\n error={error}\n toolCallState={toolCallState}\n sessionState={sessionState}\n setVideoElement={setVideoElement}\n toggleChat={toggleChat}\n sendMessage={sendMessage}\n toggleMute={toggleMute}\n />\n </div>\n </ShadowContainer>\n </>\n )}\n </>\n );\n};\n\n// ============================================================================\n// Standalone Trigger Button (doesn't use context)\n// ============================================================================\n\ninterface AriaTriggerButtonStandaloneProps {\n showAvatar?: boolean;\n label?: string;\n theme: Theme;\n onClick: () => void;\n}\n\nconst AriaTriggerButtonStandalone: FC<AriaTriggerButtonStandaloneProps> = ({\n showAvatar = true,\n label,\n theme,\n onClick,\n}) => {\n return (\n <ShadowContainer \n styles={getAriaStyles()}\n style={{\n position: 'fixed',\n bottom: '24px',\n right: '24px',\n zIndex: 9997,\n }}\n >\n <button\n onClick={onClick}\n className={`\n flex items-center gap-2 px-4 py-3 rounded-full shadow-lg\n transition-all duration-200 hover:scale-105 hover:shadow-xl\n ${theme === 'dark' \n ? 'bg-gray-800 text-white hover:bg-gray-700' \n : 'bg-white text-gray-900 hover:bg-gray-50 border border-gray-200'\n }\n `}\n >\n {showAvatar && (\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white text-sm font-bold\">\n A\n </div>\n )}\n {label && <span className=\"font-medium\">{label}</span>}\n </button>\n </ShadowContainer>\n );\n};\n\n// ============================================================================\n// Standalone Widget (doesn't use context)\n// ============================================================================\n\ninterface AriaWidgetStandaloneProps {\n onClose: () => void;\n isMinimized: boolean;\n onMaximize: () => void;\n theme: Theme;\n displayMode: 'center' | 'bottom-right';\n triggerMode: TriggerMode;\n isConnected: boolean;\n isLoading: boolean;\n chatMessages: ChatMessage[];\n liveTranscript: string;\n isChatVisible: boolean;\n isMuted: boolean;\n error: string | null;\n toolCallState: ToolCallState;\n sessionState: SessionState;\n setVideoElement: (element: HTMLVideoElement | null) => void;\n toggleChat: () => void;\n sendMessage: (message: string) => Promise<void>;\n toggleMute: () => void;\n}\n\nconst AriaWidgetStandalone: FC<AriaWidgetStandaloneProps> = (props) => {\n // For now, delegate to the existing AriaWidget component\n // This passes all the props it needs without relying on context\n return (\n <AriaWidget \n onClose={props.onClose} \n isMinimized={props.isMinimized}\n // AriaWidget will use context internally, but we've set up the standalone UI\n // to manage state independently. The widget will work because we're within\n // the same React tree that has access to the session manager.\n />\n );\n};\n\nexport default AriaStandaloneUI;\n"],"names":["AriaStandaloneUI","theme","triggerLabel","container","isOpen","setIsOpen","useState","isMinimized","setIsMinimized","isConnected","setIsConnected","isLoading","setIsLoading","chatMessages","setChatMessages","liveTranscript","setLiveTranscript","isChatVisible","setIsChatVisible","isMuted","setIsMuted","error","setError","triggerMode","setTriggerMode","displayMode","setDisplayMode","toolCallState","setToolCallState","sessionState","setSessionState","setSessionManagerStatus","setIsSessionPaused","managerRef","useRef","videoElementRef","handleStatusChange","useCallback","event","newStatus","handleSessionReady","state","handleSessionError","errorMsg","handleConnectionChange","connected","handleMessageHistory","messages","handleMessageStream","transcript","handleWebSocketTrigger","_event","openAssistant","handleToolCall","data","useEffect","AriaSessionManager","manager","toolState","handleOpen","e","handleClose","closeAssistant","handleMinimize","minimizeAssistant","handleMaximize","maximizeAssistant","setVideoElement","element","mode","err","isAnamReady","hasToken","status","toggleChat","prev","sendMessage","message","toggleMute","newMuteState","jsxs","Fragment","jsx","AriaTriggerButtonStandalone","ShadowContainer","getAriaStyles","AriaWidgetStandalone","showAvatar","label","onClick","props","AriaWidget"],"mappings":"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"}
1
+ {"version":3,"file":"AriaStandaloneUI-BBTTHhra.js","sources":["../src/components/AriaStandaloneUI.tsx"],"sourcesContent":["/**\n * AriaStandaloneUI - Standalone React component for Aria SDK\n * \n * This component is mounted by AriaCore.init() and manages its own state\n * independently of any parent React context. It listens to window events\n * dispatched by AriaCore for programmatic control.\n */\n\nimport { useState, useEffect, useCallback, useRef, type FC } from 'react';\nimport type { \n ChatMessage, \n TriggerMode, \n SessionState, \n SessionManagerStatus,\n SessionManagerEvent,\n WebSocketTriggerEvent,\n ToolCallState,\n Theme,\n} from '@/types';\nimport { AriaSessionManager } from '@/lib/AriaSessionManager';\nimport { AriaWidget } from './AriaWidget';\nimport { ShadowContainer } from './ShadowContainer';\nimport { getAriaStyles } from '@/lib/cssLoader';\n\ninterface AriaStandaloneUIProps {\n theme: Theme;\n triggerLabel?: string;\n container: HTMLElement;\n}\n\nexport const AriaStandaloneUI: FC<AriaStandaloneUIProps> = ({\n theme,\n triggerLabel,\n container,\n}) => {\n // UI State\n const [isOpen, setIsOpen] = useState(false);\n const [isMinimized, setIsMinimized] = useState(false);\n const [isConnected, setIsConnected] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [chatMessages, setChatMessages] = useState<ChatMessage[]>([]);\n const [liveTranscript, setLiveTranscript] = useState('');\n const [isChatVisible, setIsChatVisible] = useState(false);\n const [isMuted, setIsMuted] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [triggerMode, setTriggerMode] = useState<TriggerMode>('user');\n const [displayMode, setDisplayMode] = useState<'center' | 'bottom-right'>('bottom-right');\n \n // Tool call state\n const [toolCallState, setToolCallState] = useState<ToolCallState>({\n isActive: false,\n toolName: null,\n toolData: null,\n });\n \n // Session State\n const [sessionState, setSessionState] = useState<SessionState>({\n session_id: null,\n token: null,\n expires_at: null,\n isSessionReady: false,\n lastError: null,\n isPreloaded: false,\n isRefreshing: false,\n });\n const [, setSessionManagerStatus] = useState<SessionManagerStatus>('idle');\n const [, setIsSessionPaused] = useState(false);\n\n // Refs\n const managerRef = useRef<AriaSessionManager | null>(null);\n const videoElementRef = useRef<HTMLVideoElement | null>(null);\n\n // ============================================================================\n // Session Manager Event Handlers\n // ============================================================================\n\n const handleStatusChange = useCallback((event: SessionManagerEvent) => {\n const { newStatus } = event.data as { oldStatus: SessionManagerStatus; newStatus: SessionManagerStatus };\n setSessionManagerStatus(newStatus);\n \n if (newStatus === 'preloading' || newStatus === 'connecting') {\n if (isOpen) {\n setIsLoading(true);\n }\n } else if (newStatus === 'ready') {\n setIsLoading(false);\n setIsConnected(true);\n } else if (newStatus === 'error') {\n setIsLoading(false);\n }\n }, [isOpen]);\n\n const handleSessionReady = useCallback((event: SessionManagerEvent) => {\n console.log('[AriaStandaloneUI] Session ready event:', event.data);\n \n if (managerRef.current) {\n const state = managerRef.current.getSessionState();\n setSessionState(state);\n }\n \n setIsConnected(true);\n setIsLoading(false);\n setError(null);\n }, []);\n\n const handleSessionError = useCallback((event: SessionManagerEvent) => {\n const errorMsg = event.error?.message || 'Session error';\n console.error('[AriaStandaloneUI] Session error:', errorMsg);\n setError(errorMsg);\n setIsLoading(false);\n \n if (managerRef.current) {\n const state = managerRef.current.getSessionState();\n setSessionState(state);\n }\n }, []);\n\n const handleConnectionChange = useCallback((event: SessionManagerEvent) => {\n const { connected } = event.data as { connected: boolean };\n setIsConnected(connected);\n \n if (!connected && managerRef.current) {\n const state = managerRef.current.getSessionState();\n setSessionState(state);\n }\n }, []);\n\n const handleMessageHistory = useCallback((event: SessionManagerEvent) => {\n const { messages } = event.data as { messages?: ChatMessage[] };\n if (messages) {\n setChatMessages(messages);\n }\n }, []);\n\n const handleMessageStream = useCallback((event: SessionManagerEvent) => {\n const { liveTranscript: transcript } = event.data as { liveTranscript?: string };\n if (transcript !== undefined) {\n setLiveTranscript(transcript);\n }\n }, []);\n\n const handleWebSocketTrigger = useCallback((_event: WebSocketTriggerEvent) => {\n console.log('[AriaStandaloneUI] WebSocket trigger event');\n openAssistant('websocket');\n }, []);\n\n const handleToolCall = useCallback((event: SessionManagerEvent) => {\n const data = event.data as { isActive: boolean; toolName: string | null; toolData: Record<string, unknown> | null };\n setToolCallState({\n isActive: data.isActive,\n toolName: data.toolName,\n toolData: data.toolData,\n });\n }, []);\n\n // ============================================================================\n // Initialize Session Manager\n // ============================================================================\n\n useEffect(() => {\n // Get the existing singleton instance (created by AriaCore.init)\n if (!AriaSessionManager.hasInstance()) {\n console.error('[AriaStandaloneUI] AriaSessionManager not initialized');\n return;\n }\n\n const manager = AriaSessionManager.getInstance({} as never); // Get existing instance\n managerRef.current = manager;\n\n // Set up event listeners\n manager.addEventListener('status_change', handleStatusChange);\n manager.addEventListener('session_ready', handleSessionReady);\n manager.addEventListener('session_error', handleSessionError);\n manager.addEventListener('connection_change', handleConnectionChange);\n manager.addEventListener('message_history', handleMessageHistory);\n manager.addEventListener('message_stream', handleMessageStream);\n manager.addEventListener('tool_call', handleToolCall);\n manager.setWebSocketTriggerCallback(handleWebSocketTrigger);\n\n // Sync initial state from manager\n setSessionState(manager.getSessionState());\n setSessionManagerStatus(manager.getStatus());\n setIsConnected(manager.isConnected());\n setChatMessages(manager.getChatMessages());\n setLiveTranscript(manager.getLiveTranscript());\n setIsMuted(manager.isMuted());\n setIsSessionPaused(manager.isSessionPaused());\n \n const toolState = manager.getToolCallState();\n setToolCallState(toolState);\n\n return () => {\n manager.removeEventListener('status_change', handleStatusChange);\n manager.removeEventListener('session_ready', handleSessionReady);\n manager.removeEventListener('session_error', handleSessionError);\n manager.removeEventListener('connection_change', handleConnectionChange);\n manager.removeEventListener('message_history', handleMessageHistory);\n manager.removeEventListener('message_stream', handleMessageStream);\n manager.removeEventListener('tool_call', handleToolCall);\n manager.setWebSocketTriggerCallback(null);\n };\n }, [\n handleStatusChange,\n handleSessionReady,\n handleSessionError,\n handleConnectionChange,\n handleMessageHistory,\n handleMessageStream,\n handleToolCall,\n handleWebSocketTrigger,\n ]);\n\n // ============================================================================\n // Window Event Listeners (for AriaCore programmatic control)\n // ============================================================================\n\n useEffect(() => {\n const handleOpen = (e: Event) => {\n const customEvent = e as CustomEvent<{ mode?: TriggerMode }>;\n openAssistant(customEvent.detail?.mode || 'user');\n };\n\n const handleClose = () => {\n closeAssistant();\n };\n\n const handleMinimize = () => {\n minimizeAssistant();\n };\n\n const handleMaximize = () => {\n maximizeAssistant();\n };\n\n window.addEventListener('aria:open', handleOpen);\n window.addEventListener('aria:close', handleClose);\n window.addEventListener('aria:minimize', handleMinimize);\n window.addEventListener('aria:maximize', handleMaximize);\n\n return () => {\n window.removeEventListener('aria:open', handleOpen);\n window.removeEventListener('aria:close', handleClose);\n window.removeEventListener('aria:minimize', handleMinimize);\n window.removeEventListener('aria:maximize', handleMaximize);\n };\n }, []);\n\n // Update container data attribute when open state changes\n useEffect(() => {\n container.setAttribute('data-aria-open', String(isOpen));\n }, [isOpen, container]);\n\n // ============================================================================\n // Video Element Management\n // ============================================================================\n\n const setVideoElement = useCallback((element: HTMLVideoElement | null) => {\n videoElementRef.current = element;\n \n if (element && managerRef.current) {\n managerRef.current.attachToVideoElement(element);\n } else if (!element && videoElementRef.current && managerRef.current) {\n managerRef.current.detachFromVideoElement(videoElementRef.current);\n }\n }, []);\n\n // ============================================================================\n // Assistant Actions\n // ============================================================================\n\n const openAssistant = useCallback((mode: TriggerMode = 'user') => {\n setTriggerMode(mode);\n setDisplayMode(mode === 'websocket' ? 'center' : 'bottom-right');\n setIsOpen(true);\n setIsMinimized(false);\n setError(null);\n\n if (!managerRef.current) return;\n\n const isPaused = managerRef.current.isSessionPaused();\n \n if (isPaused) {\n setIsLoading(true);\n managerRef.current.resumeSession().then(() => {\n setIsLoading(false);\n setIsConnected(true);\n setIsSessionPaused(false);\n const state = managerRef.current!.getSessionState();\n setSessionState(state);\n setChatMessages(managerRef.current!.getChatMessages());\n }).catch((err) => {\n setIsLoading(false);\n setIsSessionPaused(false);\n setError(err instanceof Error ? err.message : 'Failed to resume session');\n });\n return;\n }\n\n const isAnamReady = managerRef.current.isAnamClientInitialized();\n const hasToken = managerRef.current.hasSessionToken();\n const status = managerRef.current.getStatus();\n \n if (isAnamReady && status === 'ready') {\n setIsLoading(false);\n setIsConnected(true);\n } else if (hasToken) {\n setIsLoading(true);\n \n managerRef.current.initializeSessionOnDemand()\n .then(() => {\n setIsLoading(false);\n setIsConnected(true);\n const state = managerRef.current!.getSessionState();\n setSessionState(state);\n })\n .catch((err) => {\n setIsLoading(false);\n setError(err instanceof Error ? err.message : 'Failed to initialize session');\n });\n } else {\n setIsLoading(true);\n \n if (!managerRef.current.isConnected()) {\n managerRef.current.connect();\n }\n }\n }, []);\n\n const minimizeAssistant = useCallback(() => {\n setIsMinimized(true);\n }, []);\n\n const maximizeAssistant = useCallback(() => {\n setIsMinimized(false);\n }, []);\n\n const closeAssistant = useCallback(() => {\n setIsOpen(false);\n setIsMinimized(false);\n \n if (!managerRef.current) return;\n \n if (videoElementRef.current) {\n managerRef.current.detachFromVideoElement(videoElementRef.current);\n }\n \n setLiveTranscript('');\n managerRef.current.clearLiveTranscript();\n \n const isPersistEnabled = managerRef.current.isPersistSessionEnabled();\n \n if (isPersistEnabled) {\n managerRef.current.pauseSession();\n setIsSessionPaused(true);\n } else {\n managerRef.current.sendSessionEnd();\n managerRef.current.stopStreaming();\n \n setSessionState({\n session_id: null,\n token: null,\n expires_at: null,\n isSessionReady: false,\n lastError: null,\n isPreloaded: false,\n isRefreshing: false,\n });\n setIsConnected(false);\n setChatMessages([]);\n }\n }, []);\n\n // ============================================================================\n // Chat Actions\n // ============================================================================\n\n const toggleChat = useCallback(() => {\n setIsChatVisible(prev => !prev);\n }, []);\n\n const sendMessage = useCallback(async (message: string) => {\n if (!managerRef.current || !isConnected) {\n throw new Error('Not connected to Aria');\n }\n\n await managerRef.current.sendMessage(message);\n }, [isConnected]);\n\n const toggleMute = useCallback(() => {\n if (!managerRef.current) return;\n const newMuteState = managerRef.current.toggleMute();\n setIsMuted(newMuteState);\n }, []);\n\n // ============================================================================\n // Render\n // ============================================================================\n\n return (\n <>\n {/* Floating Trigger Button - shown when assistant is closed */}\n {!isOpen && (\n <AriaTriggerButtonStandalone \n showAvatar={true} \n label={triggerLabel}\n theme={theme}\n onClick={() => openAssistant('user')}\n />\n )}\n\n {/* Assistant Widget - render when open */}\n {isOpen && (\n <>\n {/* Backdrop overlay - only shown when widget is NOT minimized */}\n {!isMinimized && (\n <div \n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n minimizeAssistant();\n }}\n style={{\n position: 'fixed',\n inset: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.1)',\n backdropFilter: 'blur(1px)',\n WebkitBackdropFilter: 'blur(1px)',\n zIndex: 9998,\n cursor: 'pointer',\n }}\n aria-hidden=\"true\"\n />\n )}\n \n {/* Aria Widget wrapped in Shadow DOM */}\n <ShadowContainer \n styles={getAriaStyles()}\n style={{ \n position: 'fixed',\n zIndex: 9999,\n inset: 0,\n pointerEvents: 'none',\n }}\n >\n <div style={{ pointerEvents: 'auto' }}>\n <AriaWidgetStandalone\n onClose={closeAssistant}\n isMinimized={isMinimized}\n onMaximize={maximizeAssistant}\n theme={theme}\n displayMode={displayMode}\n triggerMode={triggerMode}\n isConnected={isConnected}\n isLoading={isLoading}\n chatMessages={chatMessages}\n liveTranscript={liveTranscript}\n isChatVisible={isChatVisible}\n isMuted={isMuted}\n error={error}\n toolCallState={toolCallState}\n sessionState={sessionState}\n setVideoElement={setVideoElement}\n toggleChat={toggleChat}\n sendMessage={sendMessage}\n toggleMute={toggleMute}\n />\n </div>\n </ShadowContainer>\n </>\n )}\n </>\n );\n};\n\n// ============================================================================\n// Standalone Trigger Button (doesn't use context)\n// ============================================================================\n\ninterface AriaTriggerButtonStandaloneProps {\n showAvatar?: boolean;\n label?: string;\n theme: Theme;\n onClick: () => void;\n}\n\nconst AriaTriggerButtonStandalone: FC<AriaTriggerButtonStandaloneProps> = ({\n showAvatar = true,\n label,\n theme,\n onClick,\n}) => {\n return (\n <ShadowContainer \n styles={getAriaStyles()}\n style={{\n position: 'fixed',\n bottom: '24px',\n right: '24px',\n zIndex: 9997,\n }}\n >\n <button\n onClick={onClick}\n className={`\n flex items-center gap-2 px-4 py-3 rounded-full shadow-lg\n transition-all duration-200 hover:scale-105 hover:shadow-xl\n ${theme === 'dark' \n ? 'bg-gray-800 text-white hover:bg-gray-700' \n : 'bg-white text-gray-900 hover:bg-gray-50 border border-gray-200'\n }\n `}\n >\n {showAvatar && (\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center text-white text-sm font-bold\">\n A\n </div>\n )}\n {label && <span className=\"font-medium\">{label}</span>}\n </button>\n </ShadowContainer>\n );\n};\n\n// ============================================================================\n// Standalone Widget (doesn't use context)\n// ============================================================================\n\ninterface AriaWidgetStandaloneProps {\n onClose: () => void;\n isMinimized: boolean;\n onMaximize: () => void;\n theme: Theme;\n displayMode: 'center' | 'bottom-right';\n triggerMode: TriggerMode;\n isConnected: boolean;\n isLoading: boolean;\n chatMessages: ChatMessage[];\n liveTranscript: string;\n isChatVisible: boolean;\n isMuted: boolean;\n error: string | null;\n toolCallState: ToolCallState;\n sessionState: SessionState;\n setVideoElement: (element: HTMLVideoElement | null) => void;\n toggleChat: () => void;\n sendMessage: (message: string) => Promise<void>;\n toggleMute: () => void;\n}\n\nconst AriaWidgetStandalone: FC<AriaWidgetStandaloneProps> = (props) => {\n // For now, delegate to the existing AriaWidget component\n // This passes all the props it needs without relying on context\n return (\n <AriaWidget \n onClose={props.onClose} \n isMinimized={props.isMinimized}\n // AriaWidget will use context internally, but we've set up the standalone UI\n // to manage state independently. The widget will work because we're within\n // the same React tree that has access to the session manager.\n />\n );\n};\n\nexport default AriaStandaloneUI;\n"],"names":["AriaStandaloneUI","theme","triggerLabel","container","isOpen","setIsOpen","useState","isMinimized","setIsMinimized","isConnected","setIsConnected","isLoading","setIsLoading","chatMessages","setChatMessages","liveTranscript","setLiveTranscript","isChatVisible","setIsChatVisible","isMuted","setIsMuted","error","setError","triggerMode","setTriggerMode","displayMode","setDisplayMode","toolCallState","setToolCallState","sessionState","setSessionState","setSessionManagerStatus","setIsSessionPaused","managerRef","useRef","videoElementRef","handleStatusChange","useCallback","event","newStatus","handleSessionReady","state","handleSessionError","errorMsg","handleConnectionChange","connected","handleMessageHistory","messages","handleMessageStream","transcript","handleWebSocketTrigger","_event","openAssistant","handleToolCall","data","useEffect","AriaSessionManager","manager","toolState","handleOpen","e","handleClose","closeAssistant","handleMinimize","minimizeAssistant","handleMaximize","maximizeAssistant","setVideoElement","element","mode","err","isAnamReady","hasToken","status","toggleChat","prev","sendMessage","message","toggleMute","newMuteState","jsxs","Fragment","jsx","AriaTriggerButtonStandalone","ShadowContainer","getAriaStyles","AriaWidgetStandalone","showAvatar","label","onClick","props","AriaWidget"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AriaProvider.d.ts","sourceRoot":"","sources":["../../src/context/AriaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAW1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,UAAU,iBAAiB;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAwf9C,CAAC"}
1
+ {"version":3,"file":"AriaProvider.d.ts","sourceRoot":"","sources":["../../src/context/AriaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAW1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,UAAU,iBAAiB;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA6hB9C,CAAC"}