feat(ui): hybrid sidebar (sectioned + active pill + agent dots) + agent profile viewer in Settings
Sidebar: Spaces / Agents / Navigate sections, accent pill on active item, status dots on agents. Settings Agents rows expand to show the agent's persona (soul) + capabilities/scopes via GET /api/agents/:id/profile. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,7 @@ function navItem(label, hash, opts = {}) {
|
||||
},
|
||||
opts.icon ? el('span', { class: 'caret' }, opts.icon) : null,
|
||||
el('span', { style: { flex: 1 } }, label),
|
||||
opts.dot ? el('span', { class: 'sb-dot ' + opts.dot }) : null,
|
||||
opts.badge !== undefined && opts.badge !== null ? el('span', { class: 'badge' }, String(opts.badge)) : null
|
||||
);
|
||||
}
|
||||
@@ -87,12 +88,14 @@ export function renderSidebar(root) {
|
||||
el('div', { class: 'sb-title' }, 'Spaces'),
|
||||
spacesContainer
|
||||
),
|
||||
el('hr'),
|
||||
el('div', { class: 'sb-section' },
|
||||
el('div', { class: 'sb-title' }, 'Agents'),
|
||||
navItem('Sentinel', '/sentinel', { dot: 'ok' }),
|
||||
navItem('Little Blue', '/little-blue', { dot: 'lb' })
|
||||
),
|
||||
el('div', { class: 'sb-section' },
|
||||
el('div', { class: 'sb-title' }, 'Navigate'),
|
||||
navItem('Sacred Valley', '/sacred-valley'),
|
||||
navItem('Sentinel', '/sentinel'),
|
||||
navItem('Little Blue', '/little-blue'),
|
||||
navItem('Terminal', '/terminal'),
|
||||
navItem('Search', '/search'),
|
||||
inboxItem,
|
||||
|
||||
Reference in New Issue
Block a user