@@ -18,7 +18,7 @@ import {
1818 ensureDefaultAgents ,
1919 updateAgents ,
2020} from './agents' ;
21- import { AcpAgent , type AcpMessage , type AcpToolCall , type SearchMatch } from './types' ;
21+ import { AcpAgent , type SearchMatch } from './types' ;
2222import './App.css' ;
2323import {
2424 loadBottomVisible ,
@@ -54,9 +54,6 @@ const App: React.FC = () => {
5454 const { wsRef, isConnected } = useSocket ( { } ) ;
5555
5656 const fileTree = useFileTree ( ) ;
57- const emptyToolCalls = useMemo < AcpToolCall [ ] > ( ( ) => [ ] , [ ] ) ;
58- const emptyMessages = useMemo < AcpMessage [ ] > ( ( ) => [ ] , [ ] ) ;
59-
6057 const editors = useEditors ( {
6158 wsRef,
6259 isConnected,
@@ -265,10 +262,7 @@ const App: React.FC = () => {
265262 // }, []);
266263
267264 const sessionsArray = useMemo ( ( ) => Array . from ( agents . acpSessions . values ( ) ) , [ agents . acpSessions ] ) ;
268- const currentSession = useMemo (
269- ( ) => ( agents . selectedAgentId ? agents . acpSessions . get ( agents . selectedAgentId ) ?? null : null ) ,
270- [ agents . acpSessions , agents . selectedAgentId ] ,
271- ) ;
265+ const availableAgents = useMemo < AcpAgent [ ] > ( ( ) => getAllAgents ( ) , [ agents . agentsVersion ] ) ;
272266 const defaultAgent = useMemo ( ( ) => getDefaultAgent ( ) , [ agents . agentsVersion ] ) ;
273267 const settingsAgents = useMemo < AcpAgent [ ] > ( ( ) => (
274268 agents . isAgentSettingsOpen ? getAllAgents ( ) : [ ]
@@ -279,15 +273,15 @@ const App: React.FC = () => {
279273 ) ;
280274 const handleAddAgent = useCallback ( ( ) => {
281275 if ( ! defaultAgent ) return ;
282- agents . startAgent ( defaultAgent ) ;
276+ return agents . startAgent ( defaultAgent ) ;
283277 } , [ agents . startAgent , defaultAgent ] ) ;
278+ const handleStartSpecificAgent = useCallback ( ( agent : AcpAgent ) => {
279+ return agents . startAgent ( agent ) ;
280+ } , [ agents . startAgent ] ) ;
284281 const handleOpenAgentSettings = useCallback ( ( ) => {
285282 ensureDefaultAgents ( ) ;
286283 agents . setIsAgentSettingsOpen ( true ) ;
287284 } , [ agents . setIsAgentSettingsOpen ] ) ;
288- const handleCloseAgentPanel = useCallback ( ( ) => {
289- setRightPanelVisible ( false ) ;
290- } , [ ] ) ;
291285 const handleCloseAgentSettings = useCallback ( ( ) => {
292286 agents . setIsAgentSettingsOpen ( false ) ;
293287 } , [ agents . setIsAgentSettingsOpen ] ) ;
@@ -403,24 +397,18 @@ const App: React.FC = () => {
403397 < AcpDialog
404398 key = { `acp-${ agents . agentsVersion } ` }
405399 agents = { sessionsArray }
400+ availableAgents = { availableAgents }
406401 selectedAgentId = { agents . selectedAgentId }
407402 onSelectAgent = { agents . setSelectedAgentId }
408403 onCloseAgent = { agents . closeAgent }
409404 onAddAgent = { handleAddAgent }
405+ onStartAgent = { handleStartSpecificAgent }
410406 onOpenSettings = { handleOpenAgentSettings }
411- agentId = { currentSession ?. agentId || defaultAgent ?. id || 'gemini' }
412407 isOpen = { true }
413- onClose = { handleCloseAgentPanel }
414408 onSendPrompt = { agents . sendPrompt }
415409 onCancelPrompt = { agents . cancelPrompt }
416410 onUndoPrompt = { agents . undoPrompt }
417- messages = { currentSession ?. messages || emptyMessages }
418- toolCalls = { emptyToolCalls }
419- isConnected = { currentSession ? ( currentSession . isActive && isConnected ) : false }
420- isProcessing = { currentSession ?. isProcessing || false }
421- modelSelector = { currentSession ?. modelSelector }
422- reasoningSelector = { currentSession ?. reasoningSelector }
423- contextUsage = { currentSession ?. contextUsage }
411+ isConnected = { isConnected }
424412 onSelectModel = { agents . setSessionModel }
425413 onSelectReasoning = { agents . setSessionReasoning }
426414 showSettings = { agents . isAgentSettingsOpen }
0 commit comments