Plugin · Work Assistant
Work Assistant — Proactive 디텍터 + Daily Briefing
v0.7.0 (구 work-proactive 리네임, plugin id 는 work-assistant). 이메일·캘린더·회의·Agent Hub 신호를 관찰해 L1 deterministic + L2 LLM 분류기로 평가한 뒤 hostApi.triggerConversation 으로 proactive 대화를 띄웁니다. 한 번/일 KST 데일리 브리핑도 자체 emit.
v0.7.0
id: work-assistant
10 detectors
no keywords
검출 → 카드 시퀀스
구현: src/decision/calendar-conflict-detector.ts. ms-graph 의 calendar.event.conflict.detected 구독.
전체 디텍터 10종
| Detector id | Signal source | 필요 plugin |
|---|---|---|
| mail-approval | email.new | ms-graph |
| mail-meeting | email.new | ms-graph |
| mail-action | email.new | ms-graph |
| mail-reply | email.new | ms-graph |
| calendar-event-prep | calendar.event.upcoming | ms-graph |
| calendar-conflict-prep | calendar.event.conflict.detected | ms-graph |
| work-item-due-soon | agent_hub.work_item.due_soon | agent-hub |
| meeting-summary | meeting.summary.created | meeting |
| meeting-room-suggest | calendar.event.added | ms-graph, lge-api |
| webex-link-missing | calendar.event.added | ms-graph, lge-api |
소스: src/decision/detector.ts:81-159 DEFAULT_DETECTORS.
제공 도구 — 3개
work_assistant_generate_daily_briefing— LLM 으로 mail/calendar/meeting ring buffer 요약 (한국어 3-5문장, fallback 평문 리스트).work_assistant_list_detectors— UI-callable, read.work_assistant_set_detector_enabled— UI-callable, write.
이벤트
- Emitted (7):
work_assistant.alert.{mail-action, mail-approval, mail-meeting, mail-reply, meeting-summary, calendar-event-prep, work-item-due-soon} - Subscribed:
email.new,meeting.summary.created,meeting.ended,calendar.event.upcoming,calendar.event.added,calendar.event.conflict.detected,agent_hub.work_item.due_soon,ms-graph.auth.changed - Skill 키워드: 없음. (
registerKeywords호출 X — 명시적 호출 도구 + 자동 트리거만 사용)
데일리 브리핑
start() 에서 KST 기준 1일 1회 자동 발사. 중복 방지: ~/.lvis/plugins/work-assistant/last-briefing.json 에 마지막 실행 날짜 기록 (src/hostPlugin.ts:720-813).
No-fallback 룰 — config 외부화 검증
과거 (구 work-proactive 시기) PR #17 의
outlook.com hardcode → PR #19 revert + configSchema.meetingDetectorAllowedSenderDomains 외부화. 현재: 기본값 빈 배열 (fail-closed), 사용자/환경변수 LVIS_MEETING_ALLOWED_DOMAINS 또는 config 가 우선 (meeting-detector.ts:141, 155-170).