| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 1 | import { ReactFlowProvider } from "@xyflow/react"; |
| 2 | import "./App.css"; |
| gio | 678746b | 2025-07-06 14:45:27 +0000 | [diff] [blame^] | 3 | import { Build } from "./Build"; |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 4 | import { Tabs, TabsTrigger, TabsContent, TabsList } from "./components/ui/tabs"; |
| 5 | import { Config } from "./Config"; |
| 6 | import { Integrations } from "./Integrations"; |
| 7 | import { Toaster } from "./components/ui/toaster"; |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 8 | import { ProjectSelect } from "./ProjectSelect"; |
| gio | a1efbad | 2025-05-21 07:16:45 +0000 | [diff] [blame] | 9 | import { Logs } from "./Monitoring"; |
| gio | cc5ce58 | 2025-06-25 07:45:21 +0400 | [diff] [blame] | 10 | import { ChatManager } from "./components/ChatManager"; |
| 11 | import { useAgents } from "./lib/state"; |
| 12 | import { Bot } from "lucide-react"; |
| gio | 5f2f100 | 2025-03-20 18:38:48 +0400 | [diff] [blame] | 13 | |
| 14 | export default function App() { |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 15 | return ( |
| 16 | <ReactFlowProvider> |
| gio | bc47f9f | 2025-05-12 08:31:07 +0000 | [diff] [blame] | 17 | <div className="h-screen flex flex-col p-1"> |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 18 | <AppImpl /> |
| gio | cc5ce58 | 2025-06-25 07:45:21 +0400 | [diff] [blame] | 19 | <ChatManager /> |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 20 | <Toaster /> |
| 21 | </div> |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 22 | </ReactFlowProvider> |
| 23 | ); |
| gio | 5f2f100 | 2025-03-20 18:38:48 +0400 | [diff] [blame] | 24 | } |
| 25 | |
| 26 | function AppImpl() { |
| gio | cc5ce58 | 2025-06-25 07:45:21 +0400 | [diff] [blame] | 27 | const agents = useAgents(); |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 28 | return ( |
| gio | 678746b | 2025-07-06 14:45:27 +0000 | [diff] [blame^] | 29 | <Tabs defaultValue="build" className="flex-1 flex flex-col min-h-0"> |
| gio | 8cadbc7 | 2025-05-16 07:51:02 +0000 | [diff] [blame] | 30 | <div className="flex justify-between border-b"> |
| 31 | <TabsList className="!rounded-none"> |
| gio | 678746b | 2025-07-06 14:45:27 +0000 | [diff] [blame^] | 32 | <TabsTrigger value="build">Build</TabsTrigger> |
| gio | a1efbad | 2025-05-21 07:16:45 +0000 | [diff] [blame] | 33 | <TabsTrigger value="monitoring">Monitoring</TabsTrigger> |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 34 | <TabsTrigger value="config">Config</TabsTrigger> |
| 35 | <TabsTrigger value="integrations">Integrations</TabsTrigger> |
| gio | cc5ce58 | 2025-06-25 07:45:21 +0400 | [diff] [blame] | 36 | {agents.map((a) => { |
| 37 | return ( |
| 38 | <TabsTrigger |
| 39 | key={a.agentName} |
| 40 | value={`agent-${a.agentName}`} |
| 41 | className="flex flex-row items-center gap-1" |
| 42 | > |
| 43 | <Bot className="w-4 h-4" /> |
| 44 | {a.agentName} |
| 45 | </TabsTrigger> |
| 46 | ); |
| 47 | })} |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 48 | </TabsList> |
| gio | 8cadbc7 | 2025-05-16 07:51:02 +0000 | [diff] [blame] | 49 | <ProjectSelect className="w-fit min-w-[150px]" /> |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 50 | </div> |
| gio | 678746b | 2025-07-06 14:45:27 +0000 | [diff] [blame^] | 51 | <TabsContent value="build" className="!mt-0 flex-1 min-h-0"> |
| 52 | <Build /> |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 53 | </TabsContent> |
| gio | bc47f9f | 2025-05-12 08:31:07 +0000 | [diff] [blame] | 54 | <TabsContent value="config" className="!mt-0 flex-1 min-h-0"> |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 55 | <Config /> |
| 56 | </TabsContent> |
| gio | bc47f9f | 2025-05-12 08:31:07 +0000 | [diff] [blame] | 57 | <TabsContent value="integrations" className="!mt-0 flex-1 min-h-0"> |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 58 | <Integrations /> |
| 59 | </TabsContent> |
| gio | a1efbad | 2025-05-21 07:16:45 +0000 | [diff] [blame] | 60 | <TabsContent value="monitoring" className="!mt-0 flex-1 min-h-0"> |
| gio | 3a921b8 | 2025-05-10 07:36:09 +0000 | [diff] [blame] | 61 | <Logs /> |
| 62 | </TabsContent> |
| gio | cc5ce58 | 2025-06-25 07:45:21 +0400 | [diff] [blame] | 63 | {agents.map((a) => ( |
| 64 | <TabsContent value={`agent-${a.agentName}`} className="!mt-0 flex-1 min-h-0"> |
| 65 | <iframe key={a.name} src={a.address} title={a.agentName} className="w-full h-full" /> |
| 66 | </TabsContent> |
| 67 | ))} |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 68 | </Tabs> |
| 69 | ); |
| gio | 5f2f100 | 2025-03-20 18:38:48 +0400 | [diff] [blame] | 70 | } |