diff --git a/example/src/components/ConversationManager.tsx b/example/src/components/ConversationManager.tsx index 27bb796..9541bfd 100644 --- a/example/src/components/ConversationManager.tsx +++ b/example/src/components/ConversationManager.tsx @@ -4,7 +4,6 @@ import { ConversationInfo, RemoteConversation, AgentBase, - AgentExecutionStatus, Event } from '@openhands/agent-server-typescript-client'; import { useSettings } from '../contexts/SettingsContext'; @@ -12,7 +11,6 @@ import { useSettings } from '../contexts/SettingsContext'; interface ConversationData extends ConversationInfo { remoteConversation?: RemoteConversation; events?: Event[]; - agentStatus?: AgentExecutionStatus; } // Utility function to extract displayable content from events @@ -136,7 +134,7 @@ export const ConversationManager: React.FC = () => { const status = await selectedConversation.remoteConversation!.state.getAgentStatus(); setConversations(prev => prev.map(conv => conv.id === selectedConversation.id - ? { ...conv, agentStatus: status } + ? { ...conv, status: status } : conv )); } catch (err) { @@ -146,13 +144,13 @@ export const ConversationManager: React.FC = () => { // Refresh every 2 seconds if the agent is running const interval = setInterval(() => { - if (selectedConversation.agentStatus === 'running') { + if (selectedConversation.status === 'running') { refreshStatus(); } }, 2000); return () => clearInterval(interval); - }, [selectedConversation?.id, selectedConversation?.agentStatus]); + }, [selectedConversation?.id, selectedConversation?.status]); const loadConversations = async (conversationManager?: SDKConversationManager) => { const mgr = conversationManager || manager; @@ -172,7 +170,8 @@ export const ConversationManager: React.FC = () => { agent: conv.agent, created_at: conv.created_at, updated_at: conv.updated_at, - status: conv.status + // Map agent_status to status for display + status: conv.agent_status || conv.status })); setConversations(conversationData); @@ -192,7 +191,7 @@ export const ConversationManager: React.FC = () => { try { // Create a simple agent configuration const agent: AgentBase = { - name: 'CodeActAgent', + kind: 'Agent', llm: { model: settings.modelName, api_key: settings.apiKey || '' @@ -312,7 +311,7 @@ export const ConversationManager: React.FC = () => { remoteConversation.state.getAgentStatus().then(status => { setConversations(prev => prev.map(conv => conv.id === conversationId - ? { ...conv, agentStatus: status } + ? { ...conv, status: status } : conv )); }).catch(err => console.warn('Failed to update agent status:', err)); @@ -352,7 +351,7 @@ export const ConversationManager: React.FC = () => { // Update the conversation in our state with additional details setConversations(prev => prev.map(conv => conv.id === conversationId - ? { ...conv, remoteConversation, events, agentStatus } + ? { ...conv, remoteConversation, events, status: agentStatus } : conv )); @@ -387,17 +386,15 @@ export const ConversationManager: React.FC = () => { return new Date(dateString).toLocaleString(); }; - const getAgentName = (agent: AgentBase) => { - return agent.name || 'Unknown Agent'; - }; - const getStatusColorClass = (status?: string) => { switch (status) { case 'running': return 'text-green-500'; - case 'stopped': return 'text-red-500'; + case 'idle': return 'text-gray-500'; case 'paused': return 'text-orange-500'; + case 'waiting_for_confirmation': return 'text-yellow-500'; case 'finished': return 'text-blue-500'; case 'error': return 'text-red-600'; + case 'stuck': return 'text-red-500'; default: return 'text-gray-500'; } }; @@ -405,10 +402,12 @@ export const ConversationManager: React.FC = () => { const getStatusIcon = (status?: string) => { switch (status) { case 'running': return 'đ'; - case 'stopped': return 'âšī¸'; + case 'idle': return 'â¸ī¸'; case 'paused': return 'â¸ī¸'; + case 'waiting_for_confirmation': return 'âŗ'; case 'finished': return 'â '; case 'error': return 'â'; + case 'stuck': return 'đĢ'; default: return 'â'; } }; @@ -455,7 +454,7 @@ export const ConversationManager: React.FC = () => {
No conversations yet. Create your first conversation!
) : ( -