Download Game! Currently 63 players and visitors. Last logged in:FimirStylusMadcapJagoman

Blitzer's Blog >> 71307

Back to blogs index
Posted: 07 Jul 2026 16:24 [ permalink ]
Tuo 80x25 VGA -filosofia on tC$yttC$ rautaa. Se on kirjaimellisesti
tC$ydellinen "Agentic UI" (tekoC$lyagenttien kC$yttC6liittymC$). LLM:t ja
deterministiset botit ymmC$rtC$vC$t ASCII-tekstitokeneita sekunnin
murto-osassa ja sataprosenttisen tarkasti. Massiivisen pikselidatan
siirtC$minen ja prosessointi on hidasta, kallista ja altista virheille, mutta
80x25 `/vga_dump` antaa botille vC$littC6mC$n, puhtaan "maailmankartan"
siitC$, mitC$ ruudulla tapahtuu.

TC$mC$ visioimasi bisnesputki on erittC$in pragmaattinen ja hyC6dyntC$C$
tC$ydellisesti sitC$ salamannopeaa `hdd.img` -tiedostovC$ylC$C$, jonka juuri
saimme toimimaan. Se pitC$C$ Hauki OS:n kevyenC$, mutta antaa sille kyvyn
orkestroida tC$ysiveristC$ modernia selainta X11:n kautta.

Eilen sivusimme VNC:n ja kosketusnC$yttC6jen ohjausta fysiikkamoottorin
(hiekka/neste) yhteydessC$, mutta tC$mC$ on puhtaampi, semanttinen
lC$hestymistapa X11-ohjaukseen.

Luodaan tC$lle oma, eristetty sovelluksensa: **Hauki X11 Mirror**.

### Arkkitehtuurin ydin: Koordinaattien skaalaus (X11 -> VGA)

Jotta Hauki BOT ja X11 VISION API puhuvat samaa kieltC$, meidC$n on luotava
yksinkertainen koordinaattimuunnos.
Jos X11-tyC6pC6ytC$ on 1920x1080 ja Hauki OS:n X11-peilausikkuna on kooltaan
60x18 merkkiC$, muunnos on triviaali:

* `vga_x = Math.floor((x / 1920) * 60)`
* `vga_y = Math.floor((y / 1080) * 18)`

NC$in X11 VISION API:n palauttama JSON voi nC$yttC$C$ esimerkiksi tC$ltC$, ja
Hauki OS osaa piirtC$C$ sen suoraan oikeille paikoilleen:

```json
{
  "x11_res": {"w": 1920, "h": 1080},
  "elements": [
    {"id": "btn_1", "type": "button", "text": "Etsi", "x": 1000, "y": 500},
    {"id": "link_1", "type": "link", "text": "Yhteystiedot", "x": 200, "y":
50}
  ]
}

```

### Seuraavat askeleet

Voimme rakentaa `X11_MIRROR.JS` -sovelluksen, joka tekee kolme asiaa:

1. **Lukee JSON-tiedoston** (`X11_DATA.JSON`) levyltC$, kun Python-gateway
ilmoittaa sen olevan valmis.
2. **Skaalaa ja piirtC$C$** elementit VGA-ikkunaan (esim. napit muotoon `[
Etsi ]` ja linkit vaikkapa alleviivattuna tai tietyllC$ vC$rillC$).
3. **KC$sittelee klikkaukset:** Kun Hauki BOT (tai sinC$) ohjaa kursorin
elementin pC$C$lle VGA-ruudulla ja klikkaa, sovellus katsoo, mikC$ `id` siinC$
koordinaatissa on, ja ampuu The Meshin yli komennon: `"Click btn_1"`.

Miten haluat rajata tC$mC$n peilatun X11-ikkunan visuaalisen esityksen Hauki
OS:ssC$: pyritC$C$nkC6 elementit piirtC$mC$C$n absoluuttisesti "oikeille"
paikoilleen skaalattuna 80x25-ruudukkoon, vai renderC6idC$C$nkC6 ne mieluummin
siistiksi, perC$kkC$iseksi indeksilistaksi (esim. `1. [Nappi] Etsi`, `2.
[Linkki] Yhteystiedot`), joka on vielC$ askeleen helpompi lukea botin
konetekstistC$?