# A.R.K.A. architektūra (LT)

> Šis dokumentas aprašo TCP: A.R.K.A. mazgo techninę sandarą ir sąsają su
> „The Cyber Prepper" (TCP) metodologija. Anglišką versiją žr. [`architecture.md`](architecture.md).

## 1. Koncepcija: nuo „Zero Trust" prie „Zero Connectivity"

TCP moko kasdienio kibernetinio atsparumo per **15 kontrolės priemonių** ir **tris lygmenis**:

| Lygmuo | Kasdienybėje (TCP) | Krizėje (A.R.K.A.) |
|---|---|---|
| **Perimetras** | Išorinis internetas, segmentacija | Griūva → keičiamas *mesh* ryšiu |
| **Sistema** | Serveriai, debesija, kopijos | Nepasiekiama → keičiama lokaliu mazgu |
| **Žmogus** | Tapatybė, įpročiai | **Lieka — A.R.K.A. branduolys** |

A.R.K.A. yra **6-as TCP žingsnis – „Išgyvenk"**, einantis po *Sužymėk → Atskirk → Sukietink → Stebėk → Atsistatyk*.

## 2. Komponentai

```
arka/
├── app/      Backend (Node + Express + TypeScript)
│   └── src/
│       ├── server.ts            HTTP įėjimo taškas, /api + statinis UI
│       ├── config.ts            Konfigūracija per env kintamuosius
│       ├── types.ts             Bendri dvikalbiai tipai
│       ├── data/                Sėkliniai duomenys (moduliai, žinios, žemėlapiai)
│       ├── services/            Verslo logika
│       │   ├── services_service.ts   Modulių/lygmenų būklė
│       │   ├── knowledge_service.ts  Paieška (RAG-lite)
│       │   └── ai_service.ts         LLM proxy + atsarginis režimas
│       └── routes/index.ts      REST API
└── web/      UI (Vite + React 19 + Tailwind v4 + TanStack Query)
    └── src/
        ├── i18n/                Dvikalbiškumas (LT pirminė)
        ├── lib/api.ts           Tipizuotas API klientas
        ├── components/          Layout, kortelės, būsenos ženkliukai
        └── pages/               Dashboard, KnowledgeBase, Assistant, Maps, About
```

## 3. Duomenų srautas (AI asistentas)

1. Naudotojas pateikia klausimą UI (`Assistant.tsx`).
2. `POST /api/ai/chat` → `ai_service`.
3. `knowledge_service.search()` suranda 3 aktualiausius žinių įrašus (kontekstas).
4. Kontekstas + sisteminis promptas siunčiami lokaliam **OpenAI-suderinamam** LLM
   (Ollama / LM Studio / llama.cpp).
5. Jei LLM **nepasiekiamas** — grąžinamas atsarginis atsakymas tiesiai iš žinių bazės.
   Taip „pirmoji skaitmeninė pagalba" veikia net be modelio.

> Principas „įrodymai vietoj prielaidų": atsakymai pažymimi šaltiniais ir režimu
> (`llm` arba `fallback`), kad naudotojas matytų, kuo grįstas atsakymas.

## 4. Lengva, savarankiška architektūra

A.R.K.A. servisų sluoksnis (`app/services/`) yra sąmoningai lengvas — Vite + Express,
be sunkių karkasų ar privalomos Docker orkestracijos — kad mazgą būtų galima paleisti
net ant kuklios aparatinės įrangos. Produkcijoje modulių būsenos servisas gali būti
praplėstas realiu Docker konteinerių tikrinimu.

Komandų centras renka realią hosto telemetriją: bendrą ir laisvą atmintį,
failų sistemos panaudojimą, hosto uptime bei A.R.K.A. proceso veikimo laiką.

## 5. Privatumas ir saugumas

- **Nulinė telemetrija.** Mazgas veikia atjungtas; internetas nereikalingas.
- Vienintelė išorinė nuoroda — atgal į TCP portalą (informacinė).
- Pagal TCP filosofiją, autentifikacija nėra įdiegta MVP; LAN prieigą valdykite
  tinklo lygmeniu.
- Docker Compose numatytai sieja 8080 prievadą tik su `127.0.0.1`.

## 6. Licencija ir koncepcijos kilmė

A.R.K.A. platinama pagal Apache License 2.0 ir nenaudoja QGPL. Project N.O.M.A.D.
naudotas kaip veikimo koncepcijos etalonas; atribucija pateikta `NOTICE` faile.

## 7. Tolesni žingsniai (roadmap)

- Vektorinė paieška (Qdrant) vietoj raktažodžių.
- ZIM/PDF archyvų importas į žinių bazę.
- Realus *mesh* (LoRa) ryšio modulio integravimas.
- Šifruotos saugyklos backend.
- Modulių būsenos iš realių Docker konteinerių.
