ai-agent-session-center 2.3.2 → 2.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -16
- package/dist/client/assets/{AnalyticsView-YRASbt1m.js → AnalyticsView-DVDqblSH.js} +1 -1
- package/dist/client/assets/{Charts.module-CrwDIRs9.js → Charts.module-CQf7HQCb.js} +1 -1
- package/dist/client/assets/{CyberdromeScene-CQ0JUjR0.js → CyberdromeScene-w4bk6IXJ.js} +1 -1
- package/dist/client/assets/{HistoryView-Fz2_E2lb.js → HistoryView--XwKlCyd.js} +1 -1
- package/dist/client/assets/{ProjectBrowserView-DYnCNpma.js → ProjectBrowserView-CTN5CmBa.js} +1 -1
- package/dist/client/assets/{QueueView-Ben9YLiL.js → QueueView-Bj-e0m_U.js} +1 -1
- package/dist/client/assets/{TimelineView-CtshpaEr.js → TimelineView-CoTsTAGd.js} +1 -1
- package/dist/client/assets/index-Dgi6T0Nt.js +128 -0
- package/dist/client/assets/index-DqtLpLIs.css +1 -0
- package/dist/client/assets/{useQuery-C9Q607lk.js → useQuery-5GNo2Ewt.js} +1 -1
- package/dist/client/assets/{with-selector-DNJRp3mp.js → with-selector-DTnjuyBc.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/screenshot-dashboard.png +0 -0
- package/dist/client/screenshot-project-tab.png +0 -0
- package/package.json +1 -1
- package/static/screenshot-dashboard.png +0 -0
- package/static/screenshot-mobile-history.png +0 -0
- package/static/screenshot-mobile-home.png +0 -0
- package/static/screenshot-mobile-project.png +0 -0
- package/static/screenshot-mobile-terminal.png +0 -0
- package/static/screenshot-project-tab.png +0 -0
- package/dist/client/assets/index-B1iUo-kL.js +0 -122
- package/dist/client/assets/index-C5tAimN4.css +0 -1
package/README.md
CHANGED
|
@@ -9,22 +9,33 @@ Every session spawns an animated robot in an interactive cyberdrome that visuall
|
|
|
9
9
|
[](https://nodejs.org)
|
|
10
10
|
[](./LICENSE)
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
</
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
## Demo
|
|
13
|
+
|
|
14
|
+
### Desktop
|
|
15
|
+
|
|
16
|
+
<table>
|
|
17
|
+
<tr>
|
|
18
|
+
<td><img src="static/screenshot-dashboard.png" alt="3D cyberdrome with active agent sessions across project rooms" width="400"></td>
|
|
19
|
+
<td><img src="static/screenshot-terminal.png" alt="SSH terminal session — control agents from the dashboard" width="400"></td>
|
|
20
|
+
</tr>
|
|
21
|
+
<tr>
|
|
22
|
+
<td><img src="static/screenshot-project-tab.png" alt="Project file browser with split view — terminal and code side by side" width="400"></td>
|
|
23
|
+
<td><img src="static/screenshot-detail.png" alt="Session detail panel with prompts, queue, and activity tabs" width="400"></td>
|
|
24
|
+
</tr>
|
|
25
|
+
</table>
|
|
26
|
+
|
|
27
|
+
### Mobile
|
|
28
|
+
|
|
29
|
+
<table>
|
|
30
|
+
<tr>
|
|
31
|
+
<td><img src="static/screenshot-mobile-home.png" alt="Mobile — 3D cyberdrome with session list" width="160"></td>
|
|
32
|
+
<td><img src="static/screenshot-mobile-terminal.png" alt="Mobile — terminal tab with live conversation" width="160"></td>
|
|
33
|
+
<td><img src="static/screenshot-mobile-project.png" alt="Mobile — project file browser" width="160"></td>
|
|
34
|
+
<td><img src="static/screenshot-mobile-history.png" alt="Mobile — session history with filters" width="160"></td>
|
|
35
|
+
</tr>
|
|
36
|
+
</table>
|
|
37
|
+
|
|
38
|
+
### Video
|
|
28
39
|
|
|
29
40
|
https://github.com/user-attachments/assets/004ee6f9-942c-44c2-a4c5-d971fa0e824b
|
|
30
41
|
|
|
@@ -39,7 +50,10 @@ When you're running multiple AI coding agents across different terminals — Cla
|
|
|
39
50
|
- **Multi-CLI support** — monitors Claude Code, Gemini CLI, and Codex simultaneously
|
|
40
51
|
- **SSH terminal sessions** — create and manage SSH/local terminal connections directly from the dashboard
|
|
41
52
|
- **Dynamic room system** — organize sessions into rooms with a full 3D office layout (rooms, coffee lounge, gym, corridor desks)
|
|
53
|
+
- **Project file browser** — browse, search, and view project files with syntax highlighting, sub-tabs, and file bookmarks
|
|
54
|
+
- **Terminal & file bookmarks** — save positions in terminal scrollback and code viewer lines for quick reference with notes
|
|
42
55
|
- **Prompt queue** — stage, reorder, and send prompts to agents with drag-and-drop
|
|
56
|
+
- **Split view** — view terminal and project files side-by-side with a draggable divider (ratio persisted per session)
|
|
43
57
|
- **Team visualization** — sub-agent teams render as connected robots with animated laser-line beams
|
|
44
58
|
- **Approval alerts** — screaming yellow card, visor flash, and 3-burst alarm when tools need your approval
|
|
45
59
|
- **Session resume** — reconnect to disconnected Claude sessions with one click
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,r as m,a as C}from"./index-
|
|
1
|
+
import{j as t,r as m,a as C}from"./index-Dgi6T0Nt.js";import{u as d}from"./useQuery-5GNo2Ewt.js";import{m as r,R as f,B as y,C as j,X as g,Y as v,T as b,n as _,o as S}from"./Charts.module-CQf7HQCb.js";import"./with-selector-DTnjuyBc.js";async function u(e){const a=await C(e);if(!a.ok)throw new Error(`API error: ${a.status}`);return a.json()}function n(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":String(e)}function N(e,a){const s=a===0?0:Math.max(0,Math.min(1,e/a)),l=Math.round(18+-18*s),i=Math.round(18+237*s),o=Math.round(42+94*s);return`rgb(${l},${i},${o})`}const p=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];function K(){const{data:e}=d({queryKey:["analytics-summary"],queryFn:()=>u("/api/db/analytics/summary"),staleTime:3e4}),{data:a}=d({queryKey:["analytics-tools"],queryFn:()=>u("/api/db/analytics/tools"),staleTime:3e4}),{data:s}=d({queryKey:["analytics-projects"],queryFn:()=>u("/api/db/analytics/projects"),staleTime:3e4}),{data:l}=d({queryKey:["analytics-heatmap"],queryFn:()=>u("/api/db/analytics/heatmap"),staleTime:3e4});return t.jsxs("div",{className:r.analyticsView,"data-testid":"analytics-view",children:[t.jsx(T,{summary:e??null}),t.jsxs("div",{className:r.analyticsGrid,children:[t.jsxs("div",{className:r.analyticsCard,children:[t.jsx("h4",{children:"Tool Usage"}),t.jsx($,{data:a??[]})]}),t.jsxs("div",{className:r.analyticsCard,children:[t.jsx("h4",{children:"Active Projects"}),t.jsx(A,{data:s??[]})]}),t.jsxs("div",{className:r.analyticsCard,style:{gridColumn:"1 / -1"},children:[t.jsx("h4",{children:"Activity Heatmap"}),t.jsx(w,{data:l??[]})]})]})]})}function T({summary:e}){const a=[{label:"Total Sessions",value:n(e?.total_sessions??0),detail:"all time"},{label:"Total Prompts",value:n(e?.total_prompts??0),detail:"all time"},{label:"Total Tool Calls",value:n(e?.total_tool_calls??0),detail:"all time"},{label:"Active Sessions",value:n(e?.active_sessions??0),detail:"currently running"},{label:"Most Used Tool",value:e?.most_used_tool?.tool_name??"N/A",detail:e?.most_used_tool?n(e.most_used_tool.count)+" calls":""},{label:"Busiest Project",value:e?.busiest_project?.name??"N/A",detail:e?.busiest_project?n(e.busiest_project.count)+" sessions":""}];return t.jsx("div",{className:r.analyticsSummary,children:a.map(s=>t.jsxs("div",{className:r.summaryStat,children:[t.jsx("div",{className:r.statLabel,children:s.label}),t.jsx("div",{className:r.statValue,children:s.value}),t.jsx("div",{className:r.statDetail,children:s.detail})]},s.label))})}function $({data:e}){const a=e.slice(0,15);return a.length===0?t.jsx(h,{message:"No tool data"}):t.jsx(f,{width:"100%",height:Math.max(200,a.length*28),children:t.jsxs(y,{data:a,layout:"vertical",margin:{top:4,right:40,bottom:4,left:100},children:[t.jsx(j,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.04)"}),t.jsx(g,{type:"number",tick:{fill:"#8888aa",fontSize:10}}),t.jsx(v,{type:"category",dataKey:"tool_name",tick:{fill:"#8888aa",fontSize:10},width:96}),t.jsx(b,{contentStyle:{background:"#12122a",border:"1px solid #00e5ff",borderRadius:4,fontSize:11,color:"#e0e0ff"},formatter:((s,l,i)=>[`${n(s)} (${i.payload.percentage}%)`,"Calls"])}),t.jsx(_,{dataKey:"count",radius:[0,4,4,0],children:a.map((s,l)=>t.jsx(S,{fill:"#00e5ff",fillOpacity:.85},l))})]})})}function A({data:e}){const a=m.useMemo(()=>[...e].sort((s,l)=>l.session_count-s.session_count).slice(0,15),[e]);return a.length===0?t.jsx(h,{message:"No project data"}):t.jsx(f,{width:"100%",height:Math.max(200,a.length*28),children:t.jsxs(y,{data:a,layout:"vertical",margin:{top:4,right:40,bottom:4,left:120},children:[t.jsx(j,{strokeDasharray:"3 3",stroke:"rgba(255,255,255,0.04)"}),t.jsx(g,{type:"number",tick:{fill:"#8888aa",fontSize:10}}),t.jsx(v,{type:"category",dataKey:"project_name",tick:{fill:"#8888aa",fontSize:10},width:116}),t.jsx(b,{contentStyle:{background:"#12122a",border:"1px solid #00e5ff",borderRadius:4,fontSize:11,color:"#e0e0ff"},formatter:(s=>[n(s)+" sessions","Sessions"])}),t.jsx(_,{dataKey:"session_count",radius:[0,4,4,0],children:a.map((s,l)=>t.jsx(S,{fill:"#00ff88",fillOpacity:.85},l))})]})})}function w({data:e}){const{grid:a,maxVal:s}=m.useMemo(()=>{const l=new Map;let i=0;for(const o of e){const c=`${o.day_of_week}-${o.hour}`;l.set(c,o.count),o.count>i&&(i=o.count)}return{grid:l,maxVal:i}},[e]);return e.length===0?t.jsx(h,{message:"No heatmap data"}):t.jsxs("div",{style:{display:"grid",gridTemplateColumns:"40px repeat(24, 14px)",gridTemplateRows:"14px repeat(7, 14px)",gap:"2px",alignItems:"center"},children:[t.jsx("div",{}),Array.from({length:24},(l,i)=>t.jsx("div",{style:{fontSize:"9px",color:"#8888aa",textAlign:"center"},children:i},`h-${i}`)),Array.from({length:7},(l,i)=>t.jsxs(m.Fragment,{children:[t.jsx("div",{style:{fontSize:"10px",color:"#8888aa",textAlign:"right",paddingRight:"4px"},children:p[i]}),Array.from({length:24},(o,c)=>{const x=a.get(`${i}-${c}`)??0;return t.jsx("div",{className:r.heatmapCell,title:`${p[i]} ${String(c).padStart(2,"0")}:00 - ${x} events`,style:{backgroundColor:N(x,s)}},`${i}-${c}`)})]},`row-${i}`))]})}function h({message:e}){return t.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",minHeight:"120px",color:"var(--text-dim, #555577)",fontSize:"0.85rem"},children:e})}export{K as default};
|