oxios 1.13.0

Oxios Agent OS — Agent Operating System powered by oxi-sdk
import { createFileRoute } from '@tanstack/react-router'
import { Plus, Server, Terminal, Wrench } from 'lucide-react'
import { useState } from 'react'
import { useTranslation } from 'react-i18next'
import { AddServerDialog } from '@/components/mcp/add-server-dialog'
import { ServerList } from '@/components/mcp/server-list'
import { ToolList } from '@/components/mcp/tool-list'
import { ToolTester } from '@/components/mcp/tool-tester'
import { Button } from '@/components/ui/button'
import { Card, CardContent } from '@/components/ui/card'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'

export const Route = createFileRoute('/mcp')({ component: McpPage })

function McpPage() {
  const { t } = useTranslation()
  const [addDialogOpen, setAddDialogOpen] = useState(false)

  return (
    <div className="space-y-6">
      <div className="flex items-center justify-between">
        <div>
          <h1 className="text-2xl font-bold">{t('mcp.title', 'MCP Servers')}</h1>
          <p className="text-muted-foreground">
            {t('mcp.subtitle', 'Manage Model Context Protocol servers and tools')}
          </p>
        </div>
        <Button onClick={() => setAddDialogOpen(true)}>
          <Plus className="h-4 w-4 mr-1" /> {t('mcp.addServer', 'Add Server')}
        </Button>
      </div>

      <Tabs defaultValue="servers">
        <TabsList>
          <TabsTrigger value="servers" className="flex items-center gap-1.5">
            <Server className="h-4 w-4" /> {t('mcp.servers', 'Servers')}
          </TabsTrigger>
          <TabsTrigger value="tools" className="flex items-center gap-1.5">
            <Wrench className="h-4 w-4" /> {t('mcp.tools', 'Tools')}
          </TabsTrigger>
          <TabsTrigger value="test" className="flex items-center gap-1.5">
            <Terminal className="h-4 w-4" /> {t('mcp.test', 'Test')}
          </TabsTrigger>
        </TabsList>

        <TabsContent value="servers">
          <Card>
            <CardContent className="pt-6">
              <ServerList />
            </CardContent>
          </Card>
        </TabsContent>

        <TabsContent value="tools">
          <Card>
            <CardContent className="pt-6">
              <ToolList />
            </CardContent>
          </Card>
        </TabsContent>

        <TabsContent value="test">
          <Card>
            <CardContent className="pt-6">
              <ToolTester />
            </CardContent>
          </Card>
        </TabsContent>
      </Tabs>

      <AddServerDialog open={addDialogOpen} onOpenChange={setAddDialogOpen} />
    </div>
  )
}