System służy do:
- Automatyzacji procesów biznesowych w formie workflow.
- Integracji różnych modułów (Finanse, Reklama, Analiza, e-Doręczenia itp.).
- Dynamicznego przetwarzania zdań w języku naturalnym (NLP) na kroki workflow.
- Zapisu zdarzeń i akcji w Event Store, aktualizacji Read Model (CQRS).
- Interaktywnej wizualizacji workflow w formie diagramów Mermaid.
- Możliwości testowania i monitorowania akcji w czasie rzeczywistym.
| Funkcja | Opis |
|---|---|
| Edytor YAML | Tworzenie i edycja workflow w YAML. |
| Edytor NLP (zdania) | Przetwarza naturalny język na kroki workflow; batch NLP dla wielu zdań. |
| Analiza dogłębna (NLP) | API /api/analysis/deep – analiza swobodnych fraz, sugeruje workflow i generuje skrypty (bash/node/python/browser). |
| Diagram Workflow (Mermaid) | Wizualizacja kroków workflow. Interaktywny – kliknięcie akcji wyzwala zdarzenie. |
| CQRS + Event Sourcing | Komendy → zdarzenia → Read Model. |
| Event Store / Read Model | Zapis zdarzeń i odczyt stanu. |
| Log akcji | Historia akcji (timestamp, status). |
| Mapowanie modułów | Automatyczne przypisywanie modułów wg słów kluczowych. |
| SQLite DB (persistence) | data/dsl.sqlite; API: download/upload/validate; odporność na SQLITE_NOTADB. |
| Serializer (JSON/YAML) | API eksport/import z wersjonowaniem i migracjami. |
| Projekcje | API projekcji (overview/timeline/workflows). |
| Sugestie | API sugestii modułów i kroków. |
| Historia (undo/redo) | Snapshot/restore EventStore i Read Model. |
| Scenariusze i skrypty | UI + API do podziału procesy.txt na domeny, generowania YAML/diagramów/skryptów, uruchamiania skryptów. |
| Docker/Compose | Serwer + e2e runner; wolumen generated/. |
Gdy wpłata klienta nastąpi, wystaw fakturę i uruchom kampanię retargetingową
Gdy nadejdzie nowe e-Doręczenie, powiadom zespół i zaktualizuj raporty księgowe
Gdy nowy klient zapisze się na newsletter, wyślij wiadomość powitalną i dodaj go do CRM
Gdy faktura zostanie opłacona, wygeneruj raport sprzedaży i zaktualizuj dashboard finansowyJak system je obsługuje:
- Parsowanie zdania NLP → rozdzielenie warunku i akcji.
- Generowanie unikalnego ID dla kroku workflow.
- Automatyczne przypisanie modułów na podstawie słów kluczowych.
- Dodanie kroków do workflow YAML i aktualizacja diagramu Mermaid.
- Kliknięcie akcji lub automatyczne wywołanie → zapis zdarzenia w Event Store → aktualizacja Read Model → log akcji.
Architektura:
- UI / API – interfejs użytkownika lub zewnętrzne wywołania komend.
- Command Handler – przyjmuje komendy (np. „wystaw fakturę”), waliduje i zapisuje zdarzenia.
- Event Store – zapis wszystkich zdarzeń (immutable log).
- Event Processor – przetwarza zdarzenia i aktualizuje Read Model lub wywołuje integracje.
- Read Models – reprezentacja stanu workflow dla frontendu, tabel, dashboardów.
- Integracje / Automatyzacje – wywołania zewnętrznych API, powiadomień, płatności.
Diagram CQRS / Event Sourcing (Mermaid)
flowchart LR
UI_API["UI / API"] --> CommandHandler["Command Handler"]
CommandHandler --> EventStore["Event Store"]
EventStore --> EventProcessor["Event Processor"]
EventProcessor --> ReadModel["Read Models"]
EventProcessor --> Integrations["Integracje / Automatyzacje"]
UI_API --> ReadModel
1. Test NLP
-
Wprowadź zdanie:
- „Gdy wpłata klienta nastąpi, wystaw fakturę i uruchom kampanię retargetingową.”
-
System powinien:
- Wygenerować krok workflow:
wpłata_klienta_nastąpi. - Utworzyć akcje:
wystaw fakturę,uruchom kampanię retargetingową. - Zaktualizować diagram Mermaid.
- Kliknięcie akcji → wpis do Event Store → aktualizacja Read Model → log akcji.
- Wygenerować krok workflow:
2. Test YAML
- Edytuj YAML:
steps:
- id: newsletter
name: Nowy klient newsletter
module: Marketing
actions:
- id: welcome_email
name: Wyślij wiadomość powitalną
module: Marketing
- id: add_to_crm
name: Dodaj do CRM
module: CRM- Aktualizacja diagramu i test kliknięcia akcji działa analogicznie.
-
Dynamiczne integracje z API
- Płatności, e-Doręczenia, systemy CRM, kampanie reklamowe.
- Wywołania akcji asynchronicznych przy Event Processor.
-
Obsługa warunków i reguł
- „Jeżeli faktura > 1000 zł, powiadom managera”.
- Prosta logika warunkowa w NLP.
-
Zaawansowane NLP
- Parsowanie wielu zdań naraz, koniunkcji („i”, „lub”), czasów przeszłych i przyszłych.
-
Rozszerzenie Read Model
- Agregacja danych, wykresy, statystyki workflow.
-
Interaktywna wizualizacja
- Drag&drop akcji w diagramie, dynamiczne przestawianie workflow.
-
Zewnętrzne powiadomienia
- Webhooki, Slack, Teams, e-mail.
- Frontend: HTML, JS, Mermaid.js, js-yaml.js
- Backend (opcjonalny): Node.js / Python (do zapisów Event Store i integracji)
- Przechowywanie danych: Event Store w pamięci / DB, Read Model w pamięci lub bazie SQL/NoSQL
- Rozszerzalność: Nowe moduły, API, akcje mogą być dodawane w YAML/NLP bez zmian w kodzie głównym.
-
Edytor NLP:
Gdy wpłata klienta nastąpi, wystaw fakturę i uruchom kampanię retargetingową. -
System generuje workflow:
Step: wpłata_klienta_nastąpi (Platnosci) Actions: wystaw fakturę (Finanse), uruchom kampanię retargetingową (Reklama) -
Log akcji:
[2025-11-22T12:00:00Z] Akcja wykonana: wystaw fakturę
[2025-11-22T12:00:00Z] Akcja wykonana: uruchom kampanię retargetingową
- Read Model:
Akcja Status Timestamp wystaw fakturę done 2025-11-22T12:00:00Z uruchom kampanię retargetingową done 2025-11-22T12:00:00Z
-
Workflow
POST /api/workflow/nlp– utwórz workflow ze zdania „Gdy …, …”.POST /api/workflow/nlp/batch– przetwarzanie wielu zdań na raz (diagramy w odpowiedzi).POST /api/workflow/action– wykonaj akcję (zapis do Event Store i Read Model).GET /api/workflow/workflows|events|readmodel|statistics– odczyt.POST /api/workflow/validate– walidacja struktury workflow.GET /api/workflow/duplicates– wykryj duplikaty poid.
-
Analiza
POST /api/analysis/deep– analiza swobodnych fraz (intencje, proponowany workflow, generacja skryptów).
-
Serializer
GET /api/serializer/export?format=json|yaml&dedupe=true|falsePOST /api/serializer/import–{ format, data }.
-
Baza danych (SQLite)
GET /api/db/download– pobierz plik bazy.POST /api/db/upload– wgraj bazę (base64).GET /api/db/validate– sprawdzenie istnienia/ścieżki.
-
Projekcje
GET /api/projections/overview|timeline|workflows
-
Sugestie
POST /api/suggestions/modules– sugestie modułów na podstawie tekstu.POST /api/suggestions/sentence– analiza zdania i rekomendacje.
-
Scenariusze/Procesy
GET /api/processes/split– podzielprocesy.txtna domeny (zapis dogenerated/domains/*.txt).POST /api/processes/generate?domain=all|<Domena>&baseUrl=<URL>– generuj YAML/diagramy/skrypty.GET /api/processes/list– lista artefaktów wgenerated/.GET /api/processes/archive– archiwumgenerated.tar.gz.POST /api/exec/:lang/:action– uruchom wygenerowany skrypt (bash|node|python).
-
Mock API dla skryptów
POST /api/mock/send-email,POST /api/mock/generate-invoice,GET /api/mock/invoice/:id,GET /api/mock/fetch-page,POST /api/mock/generate-report.
- Podziel procesy:
GET /api/processes/splitlub przycisk w UI. - Wygeneruj artefakty:
POST /api/processes/generate?domain=all. - Uruchamiaj skrypty:
POST /api/exec/bash|node|python/:actionlub z poziomu UI. - Pobierz całość:
GET /api/processes/archive.
W UI dostępna sekcja „Scenariusze i Skrypty” (lista plików, uruchamianie, podgląd YAML/diagramu domeny).
docker compose up --build
- Serwis
dsl: serwer HTTP (port 3000), healthcheck/api/health. - Serwis
e2e: po przejściu healthchecka uruchamia testy e2e procesów. - Wolumen
./generated– artefakty na hoście.
- Uruchamianie:
make test.- Wykonywane są testy backend, frontend, integracyjne oraz e2e (w tym
e2e-processesie2e-domains-diagrams).
- Wykonywane są testy backend, frontend, integracyjne oraz e2e (w tym
- Dodatkowo testy można uruchamiać selektywnie (
test-backend,test-frontend,test-integration).
- Główne funkcje z sekcji 2 (YAML, NLP, diagramy, CQRS/ES, log, mapowanie modułów, interaktywność).
- DB SQLite z walidacją i importem/eksportem przez UI/API (odporność na
SQLITE_NOTADB). - Serializer JSON/YAML z migracjami + deduplikacja eksportu.
- Projekcje, Sugestie, Historia snapshot/undo/redo.
- Batch NLP i wizualizacja wielu diagramów.
- Scenariusze i skrypty (podział domen, generacja YAML/diagramów/skryptów, uruchamianie skryptów, archiwum).
- Analiza dogłębna (fallback dla swobodnych fraz) –
/api/analysis/deep. - Docker/Compose + e2e runner.
- Zaawansowana interaktywna edycja workflow (drag&drop) – do rozważenia.
- Zewnętrzne powiadomienia produkcyjne (obecnie mock + webhooki podstawowe).
make installmake serverlubdocker compose up --build- UI:
http://localhost:3000 - Testy:
make test