Przejdź do głównej zawartości

Stos technologiczny

Speedwave to poligloto-monorepozytorium łączące niskopoziomowe moduły w języku Rust, wieloplatformowy interfejs graficzny w Angularze i środowisku Tauri, mikrousługi MCP w TypeScript oraz natywne biblioteki systemowe. Wszystkie procedury budowania są zunifikowane w pliku Makefile. Szczegóły działania środowiska opisano w rozdziale Architektura uruchomieniowa.

Podstawowe moduły backendowe tworzą wspólną przestrzeń roboczą Cargo:

  • speedwave-runtime: Biblioteka systemowa zarządzająca wirtualizacją Lima (macOS) i WSL2 (Windows), kompilacją obrazów oraz cyklem życia kontenerów.
  • speedwave-cli: Plik wykonywalny interfejsu wiersza poleceń.
  • speedwave-desktop: Aplikacja desktopowa Tauri 2 koordynująca mostki IPC, zasobnik systemowy i demona proxy.

Przestrzeń robocza wymusza surowe reguły bezpieczeństwa kodu: blokadę kodu niebezpiecznego (#![deny(unsafe_code)]) oraz reguły Clippy zabraniające stosowania unwrap_used, expect_used i bezpośrednich wywołań print_stdout.

Warstwa interfejsu użytkownika łączy Angular z powłoką Tauri 2:

  • Frontend: Komponenty Angular oparte na Signals i reaktywnym zarządzaniu stanem w RxJS.
  • Pluginy Tauri: Oficjalne wtyczki do obsługi pojedynczej instancji, natywnych okien dialogowych, zasobnika, schowka oraz aktualizacji.
  • Testy E2E: Zestaw testów automatycznych w WebdriverIO testujący skompilowaną aplikację Tauri.

Katalog mcp-servers/ stanowi wielopakietową przestrzeń roboczą Node.js / TypeScript:

  • Odrębne usługi workerów dla integracji: Atlassian, GitHub, GitLab, Slack, SharePoint, Redmine, Playwright oraz przetwarzania dokumentów biurowych.
  • Biblioteka shared dostarczająca wspólne schematy JSON-RPC, sanitizery logów i obsługę błędów HTTP.
  • Testy jednostkowe i integracyjne wykonywane za pomocą środowiska Vitest.
  • macOS: Samodzielne pakiety narzędziowe SwiftPM (calendar-cli, reminders-cli, mail-cli, notes-cli, audio-cli) komunikujące się bezpośrednio z frameworkami EventKit, ScreenCaptureKit oraz Apple Events.
  • Windows: Moduły Rust WinRT/MAPI (w trakcie implementacji).
  • cargo test: Testy jednostkowe, integracyjne i testy dokumentacji w crate’ach Rusta.
  • vitest: Testy jednostkowe frontendu Angular oraz pakietów MCP.
  • bats: Testy skryptów powłoki oraz skryptów wejściowych w kontenerach.