Event-driven flow
Meeting End → Action Item Extraction (Not a Routine)
This flow is handled by work-assistant's meeting-summary detector, not RoutineEngineV2 — when the meeting plugin emits meeting.summary.created, the detector decides whether to surface it and shows the user a card.
One cycle
- 01
Meeting end detected
meetingThe meeting plugin emits
meeting.endedon user stop / floating window close → the full transcript is saved to SessionStore. - 02
Summary generated
The meeting plugin summarizes the transcript and extracts
actionItemsusing the host LLM (callLlm). The result is emitted asmeeting.summary.created. - 03
Work Assistant detector kicks in
work-assistantsrc/decision/meeting-summary-detector.tssubscribes to the event. It evaluates policy (allow-listed domains, etc.) and then decides whether to surface it. - 04
Proactive card
When surfacing is decided,
hostApi.triggerConversationorshowOverlayshows a card in the chat body or overlay. User options are displayed (TODO / mail / save summary). - 05
Follow-up action
FinalOnce the user chooses, work-assistant carries out the actual task using ms-graph / agent-hub tools (e.g. adding a calendar entry, creating a work item).
- Plugin level: set meeting
autoSummarize=falseto block the summary itself. - Detector level:
work_assistant_set_detector_enabled({ id: 'meeting-summary', enabled: false }) - Config level: an empty
meetingDetectorAllowedSenderDomainsarray means fail-closed.