Integracje z systemem (poczta, kalendarz, przypomnienia, notatki)
Co robi
Dział zatytułowany „Co robi”Dzięki integracjom z systemem Speedwave może pracować z aplikacjami, które masz na komputerze, zamiast tych w chmurze: z Kalendarzem, Przypomnieniami, Pocztą i Notatkami. Wystarczy, że włączysz jedną z nich w projekcie, a Speedwave pokaże twoje przypomnienia, zajrzy do kalendarza, przeczyta i wyśle pocztę albo poszuka czegoś w notatkach, zupełnie tak, jak zrobiłbyś to sam w danej aplikacji. Każda z czterech integracji ma własny przełącznik, więc sam decydujesz, do których aplikacji Speedwave ma dostęp.
Z czego się składa
Dział zatytułowany „Z czego się składa”Całość opiera się na procesie hosta o nazwie mcp-os. Wszystkie pozostałe integracje Speedwave chodzą wewnątrz odizolowanego kontenera, ale Kalendarz, Przypomnienia, Poczta i Notatki udostępniają swoje interfejsy API tylko na poziomie hosta i żaden kontener się do nich nie dobierze. Dlatego mcp-os uruchamia się wprost na twoim komputerze. Nasłuchuje jedynie na pętli zwrotnej hosta i nigdy nie wychodzi do twojej sieci.
Na macOS mcp-os steruje czterema natywnymi pomocnikami, po jednym na każdą usługę: calendar-cli oraz reminders-cli opierają się na frameworku EventKit od Apple, a mail-cli i notes-cli sterują aplikacjami Mail.app i Notes.app za pomocą automatyzacji AppleScript. Speedwave nie trzyma przy tym żadnych danych logowania. Zapamiętuje tylko tyle, czy w danym projekcie przełącznik jest włączony, czy nie. Samym uprawnieniem zajmuje się macOS.
Jak to działa
Dział zatytułowany „Jak to działa”Speedwave nigdy nie rozmawia z mcp-os wprost. Każde żądanie idzie przez ten sam MCP Hub, który kieruje ruchem wszystkich pozostałych wywołań narzędzi, a ten podaje je dalej do procesu hosta. Następnie mcp-os uruchamia właściwego natywnego pomocnika, a ten sięga po EventKit albo Apple Events, żeby dotrzeć do aplikacji.
Zanim integracja się włączy, najpierw sprawdzane jest uprawnienie. Kiedy macOS odmówi, Speedwave cofa przełącznik do pozycji wyłączonej i wyświetla błąd, dzięki czemu jego stan zawsze pokrywa się z tym, na co faktycznie zgodził się macOS. Przy każdym starcie Speedwave na nowo weryfikuje każdą włączoną integrację z aktualnym stanem uprawnień w macOS. Jeśli od poprzedniego uruchomienia odebrałeś któreś uprawnienie, dana integracja zostaje wyłączona, a na ekranie pojawia się baner z nazwą usługi, która straciła dostęp. Ta weryfikacja odbywa się tylko raz, przy starcie, więc cofnięcie uprawnienia w trakcie pracy nie odświeży banera, dopóki nie uruchomisz aplikacji ponownie.
Wszystkie cztery integracje, czyli Kalendarz, Przypomnienia, Poczta i Notatki, już teraz działają na macOS. To na razie jedyna platforma, która je obsługuje.
Obsługę systemu Windows mamy w planach, ale jeszcze jej nie zbudowaliśmy. Zakładamy tu wykorzystanie WinRT oraz interfejsu MAPI z Outlooka, na razie jednak nic z tego nie trafiło do wydania. Próba włączenia którejkolwiek z czterech integracji na Windows (albo na dowolnej innej platformie niż macOS) kończy się błędem „OS integrations are only available on macOS”.
Poniżej znajdziesz wszystko, po co Speedwave może sięgnąć, kiedy dana integracja jest włączona. Działania, które coś kasują lub zmieniają nieodwracalnie, są oznaczone. Wysłanie wiadomości i odpowiedź na nią zawsze wymagają jawnej flagi potwierdzenia.
| Narzędzie | Co robi |
|---|---|
listCalendars | Pokazuje kalendarze dostępne na tym urządzeniu. |
listEvents | Pokazuje wydarzenia z kalendarza w zadanym przedziale dat. |
getEvent | Zwraca pojedyncze wydarzenie z kalendarza wskazane po ID. |
createEvent | Zakłada wydarzenie w kalendarzu. |
updateEvent | Zmienia istniejące wydarzenie w kalendarzu. |
deleteEvent | Kasuje wydarzenie z kalendarza. Nieodwracalne. |
listReminderLists | Pokazuje listy przypomnień wraz z ich grupami. |
listReminders | Pokazuje przypomnienia, w razie potrzeby zawężone do wybranej listy. |
getReminder | Zwraca pojedyncze przypomnienie wskazane po ID. |
createReminder | Zakłada przypomnienie, z opcjonalnym terminem, priorytetem i tagami. |
completeReminder | Odhacza przypomnienie jako zrobione. |
detectMailClients | Rozpoznaje dostępne programy pocztowe (Apple Mail, Outlook i tak dalej). |
listMailboxes | Pokazuje konta pocztowe i ich foldery. |
listEmails | Pokazuje wiadomości ze skrzynki, ze stronicowaniem. |
getEmail | Zwraca pojedynczą wiadomość wskazaną po ID, razem z całą treścią. |
searchEmails | Wyszukuje wiadomości po temacie, treści lub nadawcy. |
sendEmail | Wysyła nową wiadomość. Wymaga jawnej flagi potwierdzenia. Nieodwracalne. |
replyToEmail | Odpowiada na wiadomość, w razie potrzeby do wszystkich adresatów. Wymaga jawnej flagi potwierdzenia. Nieodwracalne. |
listNoteFolders | Pokazuje foldery notatek i notatniki. |
listNotes | Pokazuje notatki, w razie potrzeby zawężone do wybranego folderu. |
getNote | Zwraca pojedynczą notatkę wskazaną po ID, razem z całą treścią. |
searchNotes | Wyszukuje notatki po tytule lub treści. |
createNote | Zakłada notatkę. |
updateNote | Zmienia tytuł lub treść istniejącej notatki. |
deleteNote | Kasuje notatkę. Nieodwracalne. |
Zanim cokolwiek z tego dotrze do Kalendarza, Przypomnień, Poczty czy Notatek, wywołanie narzędzia przechodzi kontrolę: wymagane pola muszą być wypełnione, tekst ma ograniczoną długość, liczby muszą trzymać się dozwolonego zakresu, a daty muszą być poprawnym zapisem ISO 8601. Błędne dane od razu wywalają się z czytelnym kodem błędu i nie dotykają aplikacji, co ułatwia odróżnienie błędu kontroli od błędu uprawnień, gdy Speedwave zgłasza, że coś się nie udało. O błędach uprawnień przeczytasz na stronie Rozwiązywanie problemów.
Skonfiguruj
Dział zatytułowany „Skonfiguruj”Integracje z systemem obejdą się bez konta i bez klucza API: zgodę trzyma macOS, a Speedwave zapamiętuje jedynie to, czy przełącznik jest włączony.
-
Wejdź na ekran integracji w swoim projekcie.
-
Przełącz na włączone tę integrację, której potrzebujesz: Przypomnienia, Kalendarz, Pocztę albo Notatki.
-
Potwierdź monit, który wyświetli macOS. Przy Przypomnieniach i Kalendarzu zobaczysz okno Privacy & Security. Przy Poczcie i Notatkach pojawi się okno Automation, bo te działają przez automatyzację AppleScript, a nie przez osobny framework.
Jeśli integracji nie da się utrzymać włączonej albo sama się wyłączyła i wyświetliła baner, to znak, że macOS akurat nie przyznaje uprawnienia. Poradzisz sobie tak samo: opisaną wyżej drogą przez Ustawienia systemowe. Odrzucone monity, które trzeba naprawić przez tccutil reset, oraz komunikat „app is not running” z Poczty lub Notatek omawia strona Rozwiązywanie problemów.
Granice bezpieczeństwa
Dział zatytułowany „Granice bezpieczeństwa”Integracje z systemem nie posługują się żadnymi tokenami: zgodę trzyma macOS w swoim własnym systemie uprawnień, a Speedwave pamięta tylko tyle, czy w danym projekcie przełącznik jest włączony. Tym różnią się od pozostałych integracji, z którymi łączy się Speedwave, bo tam token musi gdzieś leżeć na dysku. Pełniejszy obraz znajdziesz na stronie Jak przechowywane są dane logowania.