@@ -24,39 +24,18 @@ import {
2424 LayoutGrid ,
2525 Sparkles ,
2626 Zap ,
27- CheckSquare ,
28- AlertCircle ,
2927 Activity ,
3028 Cpu ,
3129 Terminal ,
32- Clock ,
3330 Radio ,
34- Settings ,
3531 Loader2 ,
36- Box ,
3732 Plus ,
38- BarChart3
3933} from "lucide-react" ;
4034
4135const isBrowser = typeof window !== "undefined" ;
4236
4337// --- Components ---
4438
45- // --- Components ---
46-
47- const TelemetryCard = ( { label, value, icon : Icon , color, trend } : any ) => (
48- < div className = "bg-white/5 hover:bg-white/10 backdrop-blur-sm border-l-2 p-4 rounded-r-xl transition-all group duration-300 border-transparent hover:border-ifk-cyan-500/50" >
49- < div className = "flex justify-between items-start mb-2" >
50- < div className = { `p-1.5 rounded-lg ${ color } bg-opacity-0 group-hover:bg-opacity-10 text-opacity-100 transition-all` } >
51- < Icon className = { `h-4 w-4 ${ color . replace ( 'bg-' , 'text-' ) } ` } />
52- </ div >
53- { trend && < span className = "text-[10px] font-mono text-ifk-cyan-400" > { trend } </ span > }
54- </ div >
55- < div className = "text-2xl font-mono font-bold text-white mb-1" > { value } </ div >
56- < div className = "text-[10px] uppercase tracking-widest text-ifk-gray-400 font-medium" > { label } </ div >
57- </ div >
58- ) ;
59-
6039const AgentAvatar = ( { name, role, status, type } : any ) => (
6140 < div className = "flex items-center gap-3 p-3 rounded-xl bg-ifk-gray-900/30 border border-ifk-gray-800/50 hover:bg-ifk-gray-800/50 transition-all cursor-pointer group" >
6241 < div className = "relative" >
@@ -90,7 +69,7 @@ const WorkspaceContent = () => {
9069 const [ isTyping , setIsTyping ] = useState ( false ) ;
9170
9271 // V3 State: Layout & Voice
93- const [ isLeftOpen , setIsLeftOpen ] = useState ( true ) ;
72+ const [ isLeftOpen , setIsLeftOpen ] = useState ( false ) ;
9473 const [ isRightOpen , setIsRightOpen ] = useState ( true ) ;
9574 const [ isListening , setIsListening ] = useState ( false ) ;
9675 const [ showKeyboard , setShowKeyboard ] = useState ( false ) ;
@@ -416,28 +395,49 @@ const WorkspaceContent = () => {
416395 { /* Left HUD (Collapsible) - Slimmer & transparent */ }
417396 < div className = { `transition-all duration-500 ease-[cubic-bezier(0.23,1,0.32,1)] ${ isLeftOpen ? 'w-72 opacity-100' : 'w-0 opacity-0 overflow-hidden' } ` } >
418397 < div className = "h-full bg-gradient-to-r from-black/40 to-transparent p-4 flex flex-col gap-4" >
419- { /* Telemetry Panel */ }
420- { /* Telemetry Panel */ }
398+ { /* Activity Feed Panel */ }
421399 < div className = "flex-1 bg-ifk-gray-900/20 backdrop-blur-xl border border-ifk-gray-800 rounded-2xl p-4 flex flex-col relative group overflow-hidden min-h-0" >
422400 < div className = "absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-transparent via-ifk-cyan-500/50 to-transparent opacity-30" />
423401
424402 < h2 className = "text-xs font-mono font-bold text-ifk-gray-400 uppercase tracking-widest mb-4 flex items-center gap-2 shrink-0" >
425403 < Radio className = "h-3 w-3 text-ifk-cyan-500 animate-pulse" />
426- Live Telemetry
404+ Activity Feed
427405 </ h2 >
428406
429- < div className = "space-y-4 overflow-y-auto flex-1 min-h-0 pr-2" >
430- < TelemetryCard label = "Efficiency" value = "98%" icon = { BarChart3 } color = "bg-emerald-500" trend = "+2%" />
431- < TelemetryCard label = "Active Units" value = { activeAgents . length . toString ( ) } icon = { Box } color = "bg-ifk-cyan-500" />
432- < TelemetryCard label = "Blockers" value = "0" icon = { AlertCircle } color = "bg-red-500" />
433- < TelemetryCard label = "CPU Load" value = { `${ Math . floor ( Math . random ( ) * 30 + 10 ) } %` } icon = { Zap } color = "bg-amber-500" />
407+ < div className = "flex-1 overflow-y-auto min-h-0 pr-2 space-y-1" >
408+ { recentTasks . length === 0 ? (
409+ < div className = "text-center py-8 text-ifk-gray-500 font-mono text-xs" >
410+ No recent activity
411+ </ div >
412+ ) : (
413+ recentTasks . map ( ( task ) => (
414+ < div
415+ key = { task . id }
416+ className = "flex items-start gap-2 p-2 rounded-lg hover:bg-white/5 transition-colors cursor-pointer text-xs"
417+ onClick = { ( ) => window . location . href = `/tasks/${ task . id } ` }
418+ >
419+ < span className = "text-ifk-cyan-500 shrink-0" > →</ span >
420+ < div className = "flex-1 min-w-0" >
421+ < p className = "text-gray-300 truncate" > { task . title } </ p >
422+ < p className = "text-ifk-gray-500 text-[10px] font-mono" >
423+ { task . status . toUpperCase ( ) }
424+ { task . assignee_handle && ` • @${ task . assignee_handle } ` }
425+ </ p >
426+ </ div >
427+ </ div >
428+ ) )
429+ ) }
434430 </ div >
435431
436432 < div className = "pt-4 border-t border-ifk-gray-800/50 shrink-0 mt-auto" >
437- < div className = "text-[10px] text-ifk-gray-500 font-mono mb-1" > SYSTEM STATUS</ div >
438- < div className = "flex items-center gap-2 text-emerald-400 font-mono text-xs" >
439- < div className = "h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse" />
440- OPERATIONAL
433+ < div className = "flex items-center justify-between" >
434+ < div className = "flex items-center gap-2 text-emerald-400 font-mono text-[10px]" >
435+ < div className = "h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse" />
436+ { activeAgents . length } UNITS ONLINE
437+ </ div >
438+ < a href = "/audit" className = "text-[10px] text-ifk-cyan-500 hover:text-ifk-cyan-400 font-mono" >
439+ FULL LOG →
440+ </ a >
441441 </ div >
442442 </ div >
443443 </ div >
0 commit comments