Add agent workbench terminal and live PostgreSQL/Trino SQL consoles.

Clicking agents opens a dedicated terminal panel; topology PostgreSQL/Trino nodes open SQL workbench with ten demo queries and Postgres vs Trino benchmark.
This commit is contained in:
mo
2026-06-25 01:10:57 +00:00
parent d4538a002f
commit 170eb2418b
10 changed files with 598 additions and 19 deletions
+22 -9
View File
@@ -17,6 +17,7 @@ import { KnowledgeChatView } from './components/features/KnowledgeChatView'
import { StorageView } from './components/features/StorageView'
import { SearchView } from './components/features/SearchView'
import { TerminalDock } from './components/features/TerminalDock'
import { WorkbenchPanel } from './components/features/WorkbenchPanel'
import { resolveInfraNode } from './lib/infraCatalog'
import { cn } from './lib/utils'
@@ -103,7 +104,7 @@ export default function App() {
</>
)}
<div className={isPlatform ? 'min-h-[420px]' : 'min-h-0 flex-1'}>
<div className={cn('flex min-h-0 flex-col', isPlatform ? 'min-h-[300px] flex-1' : 'min-h-0 flex-1')}>
{cc.mainView === 'platform' ? (
<PlatformTopology
workload={cc.workload}
@@ -125,6 +126,16 @@ export default function App() {
<ApprovalInbox agents={cc.agents} livePending={cc.approvals} onDecide={cc.decide} />
)}
</div>
{isPlatform && cc.workbenchMode && (
<WorkbenchPanel
mode={cc.workbenchMode}
agent={cc.selectedAgent}
lines={cc.inspectorLines}
busy={cc.nodeBusy || cc.promptBusy}
onSendPrompt={cc.sendPrompt}
/>
)}
</div>
{isPlatform && (
@@ -147,14 +158,16 @@ export default function App() {
onOpenTerminal={cc.openTerminal}
onProbeNodeId={cc.probeNodeId}
/>
<TerminalDock
subjectId={terminalSubject}
subjectLabel={terminalLabel}
lines={cc.inspectorLines}
busy={cc.nodeBusy || cc.promptBusy}
expanded={cc.terminalExpanded}
onToggle={() => cc.setTerminalExpanded(!cc.terminalExpanded)}
/>
{!cc.workbenchMode && (
<TerminalDock
subjectId={terminalSubject}
subjectLabel={terminalLabel}
lines={cc.inspectorLines}
busy={cc.nodeBusy || cc.promptBusy}
expanded={cc.terminalExpanded}
onToggle={() => cc.setTerminalExpanded(!cc.terminalExpanded)}
/>
)}
</div>
)}
</div>