Files
Void-Homelab/public/views/sentinel.js
root dbf84559de feat(ui): project details panel + compact/responsive cards; rename Sentinel→Yerin (red); migrate research_notes
- Project card expands to show description + status + dates (was only the research stub)
- Cards compacted + responsive (actions wrap on narrow)
- Sentinel renamed Yerin everywhere (#/yerin, red 'Sage of the Endless Sword' theme + red sidebar dot)
- void1 importer now carries research_notes/last_researched_at (was dropped)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 00:19:16 +10:00

26 lines
1.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// #/sentinel — Yerin's global, read-only security view. Uses the shared
// agent_chat panel pointed at /api/security/yerin (no draft cards).
import { el, mount } from '../dom.js';
import { wireAgentChat } from '../components/agent_chat.js';
const YERIN_LABELS = {
audit_log: '🗒️ reading the audit trail', agent_inventory: '👁️ reviewing agents',
pending_review: '⏳ checking the approval queue', resource_exposure: '🛡️ checking exposure',
token_audit: '🔑 auditing tokens'
};
export async function render(main) {
const log = el('div', { class: 'rail-log sentinel-log' });
const input = el('textarea', { class: 'rail-input', rows: 1, placeholder: 'Ask Yerin about the Voids security…' });
mount(main, el('div', { class: 'yerin-view' },
el('h1', { class: 'view-h1' }, '◆ Yerin'),
el('p', { class: 'view-sub' }, 'Sage of the Endless Sword — read-only security & observability. She watches, reports, and warns; she never acts.'),
el('div', { class: 'sentinel-chat' }, log, el('div', { class: 'rail-inputwrap' }, input))));
const chat = wireAgentChat({
logEl: log, inputEl: input,
historyUrl: '/api/security/yerin', turnUrl: '/api/security/yerin/turn',
agentName: 'Yerin', showDrafts: false, toolLabels: YERIN_LABELS
});
await chat.load();
}