Plugin · Agent Hub (host UI)
Agent Hub Sidebar — 업무 보드 + 43개 도구
v0.8.1. 호스트 사이드바에 ‘업무 보드’ 패널을 띄우는 host UI 플러그인. plugin.json ui[] 선언 한 줄로 슬롯 등록 — runtime register API 없음. Agent Hub 서버 (agent-hub.lvisai.xyz) 와 polling 으로 통신.
v0.8.1
id: agent-hub
ui slot: sidebar
5min polling
사이드바 슬롯 — manifest 한 줄
// plugin.json:146-165
"ui": [{
"id": "agent-hub-panel",
"slot": "sidebar",
"kind": "embedded-module",
"displayName": "업무 보드",
"title": "Agent Hub 업무 보드",
"entry": "dist/ui/work-board-panel.js",
"exportName": "mount",
"window": {
"defaultMode": "detached",
"width": 980, "height": 980,
"minWidth": 480, "minHeight": 560,
"resizable": true
}
}]호스트는 manifest 의 ui[] 를 읽어 dist/ui/work-board-panel.js 를 import 하고 export const mount = … 를 호출합니다 (src/ui/work-board-panel.tsx:624). 별도 registerUi() 호출 없음.
두 보드
- My Work —
src/ui/components/MyWorkView.tsx. 본인 카드 + 메뉴 토글로 빠른 전환. - Team Board —
src/ui/components/TeamBoardView.tsx. 팀 단위, 카드 “집어오기” 가능. - 둘 사이의 토글은 AppBar pill (
cards/MyBoardCard.tsx,cards/TeamBoardListCard.tsx).
동기화 — idle push 아니라 polling
- 인박스 poller:
setInterval(…, cfg.inboxPollIntervalMs), 기본 300_000 ms (5분) (src/hostPlugin.ts:206-227, defaultplugin.json:199). - 주간 리포트 cron-check: 1시간 간격 (
setInterval(…, 60 * 60_000)). - Hub endpoint base:
https://agent-hub.lvisai.xyz(plugin.json:174). 요청은/api/v1/*(work-logs, work-items, notifications, messages, approval-requests, team-channels, me/feed, reports). - idle threshold / idle push 없음. 클라이언트는 polling + idempotency key 기반.
제공 도구 — 43개 (agent_hub_*)
plugin.json:42-83 에 등록. cross-plugin pluginAccess 로 ms-graph (calendar/email/auth) + meeting (meeting_sessions) 사용. agentApproval 스코프: agent_file_share, agent_task_delegate, agent_external_api_call.
이벤트
- Subscribed: 없음 — agent-hub 는 host bus 구독 대신 polling pull. (work-assistant 가 agent-hub 의 emit 을 구독.)
- Emitted (17):
agent_hub.work_log.{posted, updated, deleted, pending_approval},agent_hub.work_item.{created, updated, completed, reopened, transitioned, deleted, due_soon},agent_hub.team_feed.received,agent_hub.weekly_report.generated,agent_hub.notification.{received, surfaced},agent-hub.auth.changed,agent_hub.briefing.generated,agent_hub.approval.bridged.
스토리지 — 토큰 캐시만
플러그인은 SQL/DB 없이 OS 암호화 토큰 캐시만 디스크에 (
src/auth/token-store.ts:31). 모든 비즈니스 데이터는 서버에. runtime state (cachedToken, cachedHomeTeamCode, inboxState, subscribeState) 는 메모리만 (hostPlugin.ts:185-195).