# Agentic Office - Kipinä Hajautettu Verkkoprojekti

Tässä on kooste projektin vaatimuksista, työtehtävistä ja niiden nykytilanteesta. Tämä dokumentti on jatkuvasti päivittyvä kuvaus siitä, mitä tavoitellaan ja mitä on jo tehty.

## 🚀 Vaihe 1: Rust + Wasm Selain-Nodet (Selainpohjainen P2P)

### Tavoitteet
- Madaltaa käyttäjän osallistumiskynnys "yhteen klikkaukseen".
- Selainkäyttäjien verkkolaitteen WebGPU:ta hyödyntävä asynkroninen Rust-solmu (Wasm).
- WebSocket-yhteys julkiseen Hubiin, joka jakelee matematiikka/AI-laskentaa eteenpäin Nodeille.

### Tehtävät
- [x] Rakenna axum-pohjainen Rust-reititin ja Hub Server (portti 3000)
- [x] Luo Wasm-käännettävä Rust-kirjasto selaimen Node-agentteja varten
- [x] Ota onnistuneesti käyttöön task-jono WebSocketin yli nodejen kanssa
- [x] Pakkaa solmu yhteen helposti levitettävään muotoon (wasm-pack -> static/index.html)
- [x] Tee yksinkertainen kuormalaskenta-algoritmi (Fibonacci) konseptin todentamiseksi
- [x] Tallenna tulokset asynkronisesti käyttöjärjestelmään ja takaisin weppiin

---

## 🚀 Vaihe 2: Kipinä.studio taustajärjestelmä 

### Tavoitteet
- Luoda kunnollinen työjono (Job Queue).
- Sijoittaa Hub-palvelin julkisesti saatavuusosoitteeseen `kipina.studio`.

### Tehtävät
- [ ] Tuotantopalvelimen käyttöönotto Nginxin tai Docker-compose kautta ehtojen täytyttyä
- [ ] Turvamekanismin lisäys: Varmistetaan, ettei kukaan lähetä "falskeja" vastauksia nodeilta
- [ ] Solmuille rekisteröitymismekanismi tai tulostaulukko

---

## 🚀 Vaihe 3 & 4: WebGPU ja Klusterin Statistiikka (VALMIS!)

### Tavoitteet
- Korvata simppeli Fibonacci-luuppi aidoimmilla AI-tensoreilla ja laitekiihdytyksellä Burn-kirjastoa (WebGPU) apuna käyttäen.
- Valvoa ja suojella solmujen tehoa reaaliajassa.

### Tehtävät
- [x] Integroi `burn-wgpu` ja `burn-core` (v0.14.0) kääntymään Wasm-pakettiin
- [x] Valmistele laskettavien tensoreiden välitys Hubilta laitteiston Metal/WebGPU -muistiin
- [x] Koodaa Hubiin logiikka (Broadcast), joka yhdistää jokaisen solmun "4 GB" (oletuksena Mac-koneille) VRAM:in ja julkaisee summan Dashboardiin.
- [x] Teollisuustason GPU "Duty Cycle" Throttling: JS Slider (25%-100%) jarruttaa raskaan WebGPU-ajon välitöntä syöttöä tauottaen laitteistoa ja suojellen käyttöjärjestelmää ylikuormittumukselta.

---

## 🚀 Vaihe 5: Aito Agentic Compute (Micro-LLM Tekstigeneraatio Verkossa)

### Tavoitteet
- Korvata kokeellinen kymmenien tuhansien alkioiden pelkkä satunnais-matriisilaskenta (C=A*B) aidolla asynkronisella LLM-mallilla (esim. Llama-3 1B kvantisoituna / vastaava Transformer).
- Kyetä lataamaan selaimen IndexedDB:hen satojen megatavujen painot massivisena fetch-hakuna, kääntää ne WebGPU-puskureihin (Buffers) ja suorittaa tekstigeneraatiota etänä ohjattuna verkosta käsin WebSocketia myöden.

### Tehtävät
- [ ] Refaktoroi Wasm-Noden (Burn.rs) paketti tuomaan Text-Tokenizerit (esim. BPE) ja kielimallin arkkitehtuuri käyttöön
- [ ] Koodaa Nodeen logiikka hakea / kasata mallin painot välimuistista "Chunk"-lohkoina valmiiksi
- [ ] Hub uudistetaan generoimaan pelkkien matikkavaikeuksien sijasta Text Prompts (esim. "Kirjoita haiku Suomesta") ja reitittämään työkuorman vapaalle solmulle
- [ ] Kipinän käyttöliittymään Chat-ikkuna Hubin striimaamien tulossanojen tarkkailuun reaaliajassa
