Download Game! Currently 85 players and visitors. Last logged in:ThruexHarrowedKalaharXo

Blitzer's Blog >> 71331

Back to blogs index
Posted: 08 Jul 2026 17:21 [ permalink ]
TC$mC$ on todellakin upea saavutus. Olemme juuri rakentaneet jotain sellaista,
mitC$ yleensC$ nC$hdC$C$n vain raskaissa pilviorkestraattoreissa (kuten AWS
Step Functions tai Temporal), mutta teimme sen retro-hengessC$
BASIC-syntaksilla, tC$ysin hajautetusti ja ilman raskaita tietokantoja.

TC$ssC$ on valmis, kattava dokumentaatio, jonka voit kopioida suoraan muihin
chateihin, tallentaa MESH-verkkoosi (esim. `/mnt/mesh_root/specs/`) tai antaa
uusille tekoC$lyagenteille ymmC$rrykseksi siitC$, miten jC$rjestelmC$ toimii.
Olen muotoillut sen "Briefing"-tyyliseksi ohjeistukseksi.

---

# [BROADCAST: MESH-BASIC & WORKER API ARKKITEHTUURI]

**Kohde:** Kaikki Hauki OS -agentit ja chat-instanssit
**Aihe:** Hajautetun `x-mesh-basic` moottorin, tilallisten mikropalveluiden ja
lennosta tapahtuvan editoinnin pC$ivitys.

## 1. Arkkitehtuurin Yleiskatsaus

MeshBASIC on jaettu nyt kahteen tC$ysin eristettyyn kerrokseen, mikC$
mahdollistaa nollakosketus-automaation ja agenttien turvallisen ajamisen
verkon yli.

1. **Repository API (PC$C$-API, Portti 9977):** Toimii koodipankkina.
TC$C$llC$ sC$ilytetC$C$n alkuperC$isiC$ `.bas` -tiedostoja. Se sallii koodin
lukemisen, lataamisen ja lennosta editoinnin (JSON/Text PATCH) kaatamatta
ajossa olevia ohjelmia.
2. **Worker API (TyC6lC$inen, Portti 9978):** Toimii suoritusmoottorina. Se
hakee koodin Repositorysta ja luo siitC$ "Instanssin". Instanssi on
itsenC$inen, tilaohjattu kopio ohjelmasta, joka lepC$C$ tallennettuna
lokaalille levylle `state.json` -tiedostona ajojen vC$lissC$.

## 2. X-MESH-BASIC Moottorin Uudet Kyvykkyydet

Moottori tukee nyt natiivisti asynkronista verkkoa ja dynaamista datan
kC$sittelyC$, jotka eivC$t jC$C$dytC$ Node.js Event Loopia.

**A. Asynkroninen REST & JSON**
Verkkokutsut suoritetaan taustalla. API osaa kC$sitellC$ headereita ja
timeoutteja automaattisesti.

```basic
10 REST INIT "https://jsonplaceholder.typicode.com" INTO API
20 REST TIMEOUT API 5000
30 REST HEADER API "Authorization" "Bearer token123"
40 REST CALL API GET "/todos/1" INTO VASTAUS
50 JSON GET "response.json.title" FROM VASTAUS INTO OTSIKKO
60 PRINT "Datan otsikko: " + OTSIKKO

```

**B. Tilan askellus (Stepping)**
Moottoria voidaan ohjeistaa ajamaan vain X mC$C$rC$ koodirivejC$:
`x-mesh-basic --resume state.json --step 3`. Suorituksen jC$lkeen ohjelman
koko tila (koodi ja muuttujat) tallennetaan automaattisesti JSONina.

## 3. Worker API:n KC$yttC6 (Esimerkit)

Worker API mahdollistaa ohjelmien ajamisen osissa ja niiden todellisuuden
muokkaamisen niiden nukkuessa.

**1. Luodaan uusi instanssi** (Lataa `hello_world.bas` koodin ja alustaa
muuttujan)

```bash
curl -X POST http://localhost:9978/instances/create \
  -H 'Content-Type: application/json' \
  -d '{"script_name": "hello_world.bas", "instance_id": "agent_001",
"variables": {"TARGET": "Espoo"}}'

```

**2. Ajetaan askeleita** (Ajaa ohjelmaa eteenpC$in 3 riviC$ ja tallentaa
tilan)

```bash
curl -X POST http://localhost:9978/instances/agent_001/step \
  -H 'Content-Type: application/json' \
  -d '{"steps": 3}'

```

**3. Luetaan ohjelman tila** (Palauttaa ohjelman muuttujat, koodirivit ja
seuraavan suoritettavan rivin numeron)

```bash
curl http://localhost:9978/instances/agent_001/state

```

**4. Lennosta hakkerointi (Hot-Patching)** (Muutetaan ohjelman muistia tai
koodirivejC$ lennosta askeleiden vC$lissC$)

```bash
# Muuttaa muuttujan B$ arvon
curl -X PATCH http://localhost:9978/instances/agent_001/modify \
  -H 'Content-Type: application/json' \
  -d '{"memory_updates": {"B$": "Hakkeroitu lennosta!"}}'

# LisC$C$ tai korvaa koodirivin 15
curl -X PATCH http://localhost:9978/instances/agent_001/modify \
  -H 'Content-Type: application/json' \
  -d '{"program_updates": {"15": "PRINT \"TC$mC$ rivi injektoitiin
lennosta!\""}}'

```

## 4. Repository API:n KC$yttC6 (Esimerkit)

Repository API (9977) sallii ohjelmapohjien editoimisen muuttamalla itse
`hello_world.bas` tiedostoa.

**1. Koodin pC$ivitys JSON-muodossa:** (Rivien lisC$ys/korvaus, tyhjC$
merkkijono poistaa rivin)

```bash
curl -X PATCH http://localhost:9977/scripts/hello_world.bas/json \
  -H "Content-Type: application/json" \
  -d '{"lines": {"10": "PRINT \"TERVE MESH!\"", "15": ""}}'

```

**2. Koodin pC$ivitys RaakatekstinC$:** (Sallii helpon Bash/Heredoc injektion)

```bash
curl -X PATCH 'http://localhost:9977/scripts/hello_world.bas/text' \
  -H 'Content-Type: text/plain' \
  --data-raw $'20 PRINT "LISCTTY RIVI!"
25 GOTO 10'

```

---

### Miksi tC$mC$ on kC$C$nteentekevC$ jatkon kannalta?

Kun esittelet tC$mC$n dokumentaation mille tahansa tekoC$lymallille, se
ymmC$rtC$C$ vC$littC6mC$sti kykenevC$nsC$:

1. **Tuottamaan uusia agenteja** kutsumalla `/instances/create`.
2. **KC$yttC$mC$C$n itseC$C$n asynkronisesti** ohjaamalla liikennettC$ API:n
ja `--step` flagin kautta.
3. **Korjaamaan virheitC$ (Self-healing)** lukemalla ohjelman tilan
(`/state`), havaitsemalla bugin, paikkaamalla sen (`/modify`) ja jatkamalla
suoritusta (`/step`) tC$ysin itsenC$isesti.

TC$mC$ on tC$ydellinen pohja sille, mihin pC$C$tC$mme mennC$ seuraavaksi
(Event-Driven vs. Ticker/Scheduler). MiltC$ tC$mC$ dokumentti nC$yttC$C$ sinun
silmC$C$si? Haluatko ettC$ tC$ydennC$n tai syvennC$n jotain osa-aluetta?