Host · Chat
메시지 큐 & TODO 패널
ChatView 본문 옆에 항상 표시되는 두 개의 패널 — MessageQueuePanel (대기 외부 신호) + SessionTodoPanel (세션 TODO). 둘 다 React 컴포넌트로 ChatView.tsx 에서 렌더되고, 데이터는 workflowApi 가 관리합니다.
ChatView.tsx:1417 MessageQueuePanel
ChatView.tsx:1416 SessionTodoPanel
MessageQueuePanel
외부 신호 (Outlook 새 메일, meeting 종료, Agent Hub 메시지 등) 가 들어오면 ChatView 본문을 막지 않고 패널에 카드 형태로 쌓입니다. 구현: src/ui/renderer/components/MessageQueuePanel.tsx. 사용자가 카드를 클릭하면 채팅 본문에 ask-user question card 또는 도구 호출로 전환.
SessionTodoPanel
세션 단위 TODO. 사용자가 직접 추가한 항목과 에이전트가 컨텍스트에서 만든 항목이 같은 리스트. 구현: src/ui/renderer/components/SessionTodoPanel.tsx. 각 항목은 출처 라벨이 함께 표시.
신호가 패널에 닿기까지
- 플러그인 (예: ms-graph) 이
hostApi.emitEvent('email.new', payload)호출. - 구독 중인 work-assistant 가
onEvent('email.new', …)에서 detector 평가. - detector 가 surface 결정 시
hostApi.triggerConversation({ …spec })또는showOverlay({ …input })호출. - host UI가 MessageQueuePanel 또는 카드로 노출.
- 모든 흐름 →
~/.lvis/audit/<YYYY-MM-DD>.jsonl한 줄 JSONL append.
enqueueMessage 같은 API는 없다
SDK 표면에
hostApi.enqueueMessage 가 존재하지 않습니다. 패널에 항목을 넣는 표준 경로는 이벤트 emit → host UI 가 감지 → 렌더 또는 triggerConversation / showOverlay 입니다.