diff --git a/backend/agent/services/suna_default_agent_service.py b/backend/agent/services/suna_default_agent_service.py index 9a224b27..e9b7c551 100644 --- a/backend/agent/services/suna_default_agent_service.py +++ b/backend/agent/services/suna_default_agent_service.py @@ -39,7 +39,7 @@ class SunaDefaultAgentService: } async def install_suna_agent_for_user(self, account_id: str, replace_existing: bool = False) -> Optional[str]: - logger.info(f"🔄 Delegating single user installation to modular service: {account_id}") + logger.info(f"🔄 Installing Suna agent for user: {account_id}") try: if replace_existing: @@ -54,16 +54,15 @@ class SunaDefaultAgentService: if existing: logger.info(f"User {account_id} already has Suna agent: {existing.agent_id}") return existing.agent_id - + current_config = self._sync_service.config_manager.get_current_config() - result = await self._sync_service._install_for_user(account_id, current_config) + agent_id = await self._sync_service.repository.create_suna_agent_simple( + account_id, + current_config.version_tag + ) - if result.success: - logger.info(f"Successfully installed Suna agent {result.agent_id} for user {account_id}") - return result.agent_id - else: - logger.error(f"Failed to install Suna for user {account_id}: {result.error_message}") - return None + logger.info(f"Successfully installed Suna agent {agent_id} for user {account_id}") + return agent_id except Exception as e: logger.error(f"Error in install_suna_agent_for_user: {e}") diff --git a/frontend/src/components/thread/chat-input/chat-input.tsx b/frontend/src/components/thread/chat-input/chat-input.tsx index 07359372..8296693a 100644 --- a/frontend/src/components/thread/chat-input/chat-input.tsx +++ b/frontend/src/components/thread/chat-input/chat-input.tsx @@ -188,29 +188,23 @@ export const ChatInput = forwardRef( })); useEffect(() => { - if (typeof window !== 'undefined' && onAgentSelect && !hasLoadedFromLocalStorage.current) { + if (typeof window !== 'undefined' && onAgentSelect && !hasLoadedFromLocalStorage.current && agents.length > 0) { const urlParams = new URLSearchParams(window.location.search); const hasAgentIdInUrl = urlParams.has('agent_id'); - if (!selectedAgentId && !hasAgentIdInUrl) { const savedAgentId = localStorage.getItem('lastSelectedAgentId'); if (savedAgentId) { if (savedAgentId === 'suna') { const defaultSunaAgent = agents.find(agent => agent.metadata?.is_suna_default); if (defaultSunaAgent) { - console.log('Loading saved Suna agent from localStorage, using actual ID:', defaultSunaAgent.agent_id); onAgentSelect(defaultSunaAgent.agent_id); } else { - console.log('Saved Suna agent not found, keeping undefined'); onAgentSelect(undefined); } } else { - console.log('Loading saved agent from localStorage:', savedAgentId); onAgentSelect(savedAgentId); } } else { - console.log('No saved agent found in localStorage, selecting default Suna agent'); - // Find the default Suna agent const defaultSunaAgent = agents.find(agent => agent.metadata?.is_suna_default); if (defaultSunaAgent) { console.log('Auto-selecting default Suna agent:', defaultSunaAgent.agent_id);