# Variables API Variables API jest szybkim magazynem klucz-wartość dla stanu efemerycznego. W przeciwieństwie do wspomnień (które są indeksowane, przeszukiwalne i ustrukturyzowane), zmienne są zoptymalizowane pod kątem szybkiego odczytu i zapisu — idealne dla liczników, flag i stanu sesji. ## Endpointy ### POST /var Ustawia lub aktualizuje zmienną. ```bash curl -X POST https://synapse.schaefer.zone/var \ -H "Authorization: Bearer YOUR_MIND_KEY" \ -H "Content-Type: application/json" \ -d '{"key": "last_session_at", "value": "2026-06-27T14:00:00Z"}' ``` ### GET /var/:key Pobiera pojedynczą zmienną. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` Odpowiedź: ```json { "key": "last_session_at", "value": "2026-06-27T14:00:00Z", "updated_at": "..." } ``` ### GET /var Lista wszystkich zmiennych. ```bash curl -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var ``` ### DELETE /var/:key Usuwa zmienną. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \ https://synapse.schaefer.zone/var/last_session_at ``` ## Kiedy używać zmiennych, a kiedy pamięci | Przypadek użycia | Wybór | |----------|-----| | Imię użytkownika, preferencje | Pamięć (przeszukiwalne, ustrukturyzowane) | | Znacznik czasu ostatniej sesji | Zmienna (stan efemeryczny) | | Licznik (np. wysłane wiadomości) | Zmienna (częste aktualizacje) | | Stan przepływu pracy („krok 3 z 5 ukończony") | Zmienna (przejściowy) | | Długie notatki projektowe | Pamięć (indeksowane pełnotekstowo) | | Skrypty wielokrotnego użytku | Magazyn skryptów (nazywane, wersjonowane) | ## Typowe wzorce ### Śledzenie ostatniej sesji ```bash # Na końcu sesji curl -X POST .../var -d '{"key": "last_session_at", "value": "'$(date -Iseconds)'"}' # Na początku sesji LAST=$(curl .../var/last_session_at | jq -r .value) curl .../memory/diff?since=$(date -d "$LAST" +%s) ``` ### Wzorzec licznika ```bash # Inkrementacja N=$(curl .../var/api_calls | jq -r .value) curl -X POST .../var -d "{\"key\": \"api_calls\", \"value\": $((N+1))}" ``` ### Flagi funkcji ```bash curl -X POST .../var -d '{"key": "feature_x_enabled", "value": "true"}' # Sprawdzenie ENABLED=$(curl .../var/feature_x_enabled | jq -r .value) if [ "$ENABLED" = "true" ]; then ... fi ``` ## Następne kroki - [Memory API](/docs/api/memory) — dla ustrukturyzowanych, przeszukiwalnych danych - [Cron i Scheduler](/docs/api/cron)