Phase 6: Handoff, MemoryCard, финальный Dashboard
This commit is contained in:
parent
35033dc10e
commit
cfa37e1723
3 changed files with 49 additions and 10 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import { motion } from 'framer-motion'
|
||||
import { Cpu, Activity } from 'lucide-react'
|
||||
import { Cpu, Activity, Zap } from 'lucide-react'
|
||||
import { Badge } from '@/components/ui/badge'
|
||||
|
||||
export function AgentCard({ agent }: { agent: any }) {
|
||||
|
|
@ -42,6 +42,14 @@ export function AgentCard({ agent }: { agent: any }) {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button
|
||||
onClick={() => alert('Handoff started for ' + agent.name)}
|
||||
className="mt-6 w-full bg-indigo-600 hover:bg-indigo-700 text-white py-3 rounded-2xl text-sm font-medium transition-colors flex items-center justify-center gap-2"
|
||||
>
|
||||
<Zap className="w-4 h-4" />
|
||||
Quick Handoff
|
||||
</button>
|
||||
</motion.div>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
28
frontend/src/components/memory/MemoryCard.tsx
Normal file
28
frontend/src/components/memory/MemoryCard.tsx
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
import { Card } from '@/components/ui/card'
|
||||
import { BookOpen } from 'lucide-react'
|
||||
|
||||
export function MemoryCard() {
|
||||
return (
|
||||
<Card className="p-6">
|
||||
<div className="flex items-center gap-3 mb-5">
|
||||
<BookOpen className="w-5 h-5 text-violet-500" />
|
||||
<h3 className="font-semibold">Project Memory</h3>
|
||||
</div>
|
||||
|
||||
<div className="space-y-4 text-sm">
|
||||
<div className="border-l-2 border-violet-500 pl-4">
|
||||
<div className="font-medium">Решение по OAuth</div>
|
||||
<div className="text-muted-foreground text-xs">2 hours ago · Hermes-01</div>
|
||||
</div>
|
||||
<div className="border-l-2 border-violet-500 pl-4">
|
||||
<div className="font-medium">API keys rotated</div>
|
||||
<div className="text-muted-foreground text-xs">Yesterday · Supervisor</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button className="mt-6 text-sm text-violet-400 hover:text-violet-300 w-full py-2 border border-dashed border-border rounded-2xl transition-colors">
|
||||
+ Add new memory entry
|
||||
</button>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { AgentGrid } from '@/components/agents/AgentGrid'
|
||||
import { Kanban } from '@/components/tasks/Kanban'
|
||||
import { ActivityFeed } from '@/components/ActivityFeed'
|
||||
import { UsageCard } from '@/components/usage/UsageCard'
|
||||
import { MemoryCard } from '@/components/memory/MemoryCard'
|
||||
import { useAppStore } from '@/store/useAppStore'
|
||||
|
||||
export function Dashboard() {
|
||||
|
|
@ -21,18 +21,21 @@ export function Dashboard() {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 lg:grid-cols-12 gap-6">
|
||||
<div className="lg:col-span-5 bg-card/80 border border-border rounded-3xl p-6 backdrop-blur-xl">
|
||||
<div className="grid grid-cols-1 xl:grid-cols-12 gap-6">
|
||||
{/* Live Agents — 7 колонок */}
|
||||
<div className="xl:col-span-7">
|
||||
<AgentGrid />
|
||||
</div>
|
||||
<div className="lg:col-span-7 bg-card/80 border border-border rounded-3xl p-6 backdrop-blur-xl">
|
||||
<Kanban />
|
||||
</div>
|
||||
<div className="lg:col-span-5">
|
||||
|
||||
{/* Sidebar widgets */}
|
||||
<div className="xl:col-span-5 space-y-6">
|
||||
<UsageCard />
|
||||
<MemoryCard />
|
||||
</div>
|
||||
<div className="lg:col-span-12 bg-card/80 border border-border rounded-3xl p-6 backdrop-blur-xl">
|
||||
<ActivityFeed />
|
||||
|
||||
{/* Kanban на всю ширину */}
|
||||
<div className="xl:col-span-12">
|
||||
<Kanban />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue