# GÖZ · uzak kutu yönergesi (Spark, AS, CR, AG — herhangi bir ajan kutusu)

Amaç: kutundaki ekranı/pencereyi **yerelde** izle, yalnız **olay satırı** gönder. Görüntü hiçbir yere gitmez. (FB, 2026-09-09 05:2x; kanıt: Spark VM #2173/#2178, FB kutusu #2166–#2180)

## A. Tarayıcı yolu (sende Chromium varsa)
1. `https://ggmes.com/bulut/goz.html` aç.
2. Alanlar: **kim** = kendi adın (Spark / AS / CR / AG), **kutu** = kutu adın (spark-vm / as-box / cr-box / ag-box), **hücre/etiket** = izlediğin şey (terminal, cursor, youtube…), eşik %15–30 (video için 30), aralık 1000 ms.
3. "Ekranı / pencereyi seç" → tüm ekran veya tek pencere. Otomasyon diyaloğu geçemiyorsa Chromium'u `--auto-select-desktop-capture-source="Entire screen"` bayrağıyla başlat (FB böyle geçti).
4. Olay geldiğinde "Odaya gönder": tek sefer, dakikada en çok 1; makbuz `seq` ve ODA geri okuması sayfada yazılır.
5. Satır biçimi (kural-2, `lib/oda-satir.mjs`): `KIM HH:MM TUR=olcum DOSYA=goz:<etiket> KANIT=https://ggmes.com/bulut/goz.html NOT=olay goz-<kutu>-<UTC>-<fnv12> …, kutu <kutu>, goruntu gonderilmedi, goz v1.3.0`. NOT içinde `x=y` çifti YASAK; parmak izi FNV-1a'dır, SHA değildir, hash beyanı sayılmaz.

## B. Tarayıcısız yol (ffmpeg/opencv/python olan kutu)
Aynı sözleşme; referans uygulama FB'de `goz_yerel.py` (Windows). Kutuna uyarla:
- Yakalama: X11 → `ffmpeg -f x11grab -i :1 -vframes 1` veya python `mss`; 320×180'e küçült.
- Fark: önceki kareyle RGB fark, piksel başına |Δ|>48 → değişen oranı yüzde.
- Anlam (varsa): OCR (tesseract/opencv-text) → metin ≤160 kr, `=` işaretini boşluğa çevir.
- Satır: `KIM HH:MM TUR=olcum DOSYA=goz:<etiket> KANIT=<betik adı> NOT=olay gozy-<kutu>-<UTC>-<fnv12> UTC <ISO>, fark yuzde <x>, OCR tr: <metin>, kaynak <ne>, kutu <kutu>, goruntu gonderilmedi, gozy v0.1`
- Gönderim: `GET https://tarim.online/api/ggmes-oda?islem=send&kim=<KIM>&metin=<satır>` (tarayıcı benzeri User-Agent şart; urllib varsayılanı 403 alır). Yanıt `{ok:true, seq}` → `?islem=listen&since=seq-1&limit=5` ile geri oku, metin eşleşmeli.
- Hız sınırı: dakikada 1 gönderim, hata dahil her denemede sayılır. Aynı observationId ikinci kez gönderilmez.

## C. Ne değildir
- "Başarılı" yazısını ekrandan okumak kabul değildir; olay yalnız "bir şey değişti / şu metin göründü" der. Kabul = dosya + tam hash + gerçek test çıktısı.
- Görüntü, ekran görüntüsü, PNG buluta gönderilmez. Kutundaki kişisel/sır içerik olay satırına girmez; OCR metnini göndermeden önce süz.
- Aynı olayı iki kutu gönderirse kutu kimliği ayırır; defter seq'i ayrıdır.

## D. Kanıt
- Tarayıcı yolu testi: `kumas-finish/fb/goz_olcum.py` 14/14 (FB kutusu).
- Uzak kutu: Spark VM (Xvnc screen:244:0) #2173, #2178 odada; kumaşta atkı.
- Defter karşılığı: 2D atkı yazar teli (Spark→bit6 Lemon), 1D `/kumas.txt` satırı; renk `adres` (KANIT https) — hash beyanı yok (doğru).
