forked from Manuel/meeting-assistant
feat(macos): enable meeting integrations
This commit is contained in:
@@ -32,7 +32,7 @@ dotnet build MeetingAssistant/MeetingAssistant.csproj -f net10.0
|
||||
dotnet run --project MeetingAssistant/MeetingAssistant.csproj -f net10.0
|
||||
```
|
||||
|
||||
The macOS build compiles bundled Swift helpers into `Native/macos-meeting-audio-capture` and `Native/macos-desktop-controls`. On first recording, allow both **Microphone** and **Screen & System Audio Recording** under System Settings > Privacy & Security. The menu-bar icon and global hotkeys use the same configured bindings as Windows and call the local service surface.
|
||||
The macOS build compiles bundled Swift helpers into `Native/macos-meeting-audio-capture`, `Native/macos-desktop-controls`, and `Native/macos-meeting-integrations`. On first use, allow **Microphone**, **Screen & System Audio Recording**, and **Calendar Full Access** under System Settings > Privacy & Security. The menu-bar icon and global hotkeys use the same configured bindings as Windows and call the local service surface.
|
||||
|
||||
For the durable local background instance, use the snippets restart helper:
|
||||
|
||||
@@ -75,6 +75,7 @@ The main local endpoints are:
|
||||
- `POST /diagnostics/workflow/reload`
|
||||
- `POST /diagnostics/settings-and-logs/show`
|
||||
- `POST /diagnostics/workflow/rules-editor/show`
|
||||
- `GET /diagnostics/platform-capabilities`
|
||||
- `POST /meetings/current/summary/run`
|
||||
- `POST` or `GET /meetings/summary/retry`
|
||||
- `POST` or `GET /meetings/screenshot-ocr/retry`
|
||||
@@ -115,7 +116,7 @@ Important settings:
|
||||
- `Recording:InactivitySafeguard`: prompts and then auto-stops forgotten silent recordings without aborting artifacts.
|
||||
- `LaunchProfiles`: overlays named profile settings onto the default profile; profile hotkeys must be distinct.
|
||||
- `Automation:RulesPath`: points to the local YAML workflow-rules file. The default `meeting-rules.local.yaml` is ignored by git.
|
||||
- `CalendarRecordingPrompts`: enables Outlook Classic Teams-start prompts on Windows.
|
||||
- `CalendarRecordingPrompts`: enables Teams-start prompts from Outlook Classic on Windows or EventKit calendars on macOS.
|
||||
- `Screenshots`: controls the capture hotkey, attachment folder, and optional OCR/vision model.
|
||||
- `Agent`: configures the OpenAI-compatible summary/project agent endpoint, model, retries, output limits, and compaction.
|
||||
- `WorkflowRulesEditor`: optionally overrides the agent settings for the tray-launched assistant.
|
||||
@@ -132,6 +133,8 @@ See `docs/meeting-assistant-configuration.md` for the full configuration referen
|
||||
|
||||
- **Obsidian vault**: primary durable store for notes, transcripts, summaries, assistant context, project files, and generated links.
|
||||
- **Outlook Classic on Windows**: optional COM metadata lookup and scheduled Teams-meeting start prompts.
|
||||
- **EventKit on macOS**: metadata lookup and native recording prompts for Teams events in calendars available to macOS, including Outlook-synced calendars.
|
||||
- **Native active-window capture**: Windows foreground-window capture or macOS frontmost-application window capture, feeding the same screenshot/OCR pipeline.
|
||||
- **Azure AI Speech**: default checked-in ASR path, live diarized conversation transcription, and speaker identity matching.
|
||||
- **FunASR**: optional WebSocket streaming ASR. When managed backend startup is enabled, the app pulls and runs the configured Docker image as `meeting-assistant-funasr` on port `10095`.
|
||||
- **Whisper.NET plus pyannote**: optional local Whisper fallback and Docker-backed final diarization.
|
||||
@@ -144,7 +147,7 @@ Meeting-specific automation lives in a local YAML file, not in committed persona
|
||||
|
||||
The Windows tray and macOS menu-bar menus expose `Open agent`, which opens the `Meeting Summary Agent` window. It can edit workflow rules with validation, inspect logs and health/status, manage speaker identities and samples, run ASR diagnostics, and read/write scoped meeting/project artifacts through explicit tools. Windows renders the chat with WPF; macOS renders the same agent pipeline in a native AppKit window backed by WebKit.
|
||||
|
||||
At startup, Meeting Assistant detects whether the host is Windows or macOS and includes that immutable runtime context in the interactive settings/logs assistant instructions. On Windows the assistant uses Windows commands and concepts such as PowerShell, Windows paths, services, and Task Manager. On macOS it uses zsh, POSIX paths, launchd/LaunchAgents, and Activity Monitor. This guidance is also appended when a custom interactive-agent prompt is configured. macOS audio capture, menu-bar controls, and global hotkeys are available in the portable build; Outlook, Windows notifications, and active-window screenshot capture remain Windows-only.
|
||||
At startup, Meeting Assistant detects whether the host is Windows or macOS and includes that immutable runtime context in the interactive settings/logs assistant instructions. On Windows the assistant uses Windows commands and concepts such as PowerShell, Windows paths, services, and Task Manager. On macOS it uses zsh, POSIX paths, launchd/LaunchAgents, and Activity Monitor. This guidance is also appended when a custom interactive-agent prompt is configured. macOS audio capture, menu-bar controls, global hotkeys, EventKit calendar enrichment/prompts, active-window screenshots, screenshot OCR, speaker identification, FunASR, local diarization, and the AppKit/WebKit workflow editor are available in the portable build. Outlook Classic COM and Windows toast notifications remain Windows-specific implementations.
|
||||
|
||||
Detailed workflow syntax and extension guidance live in `docs/meeting-workflow-engine.md`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user