Aplikasi Android (Node)
Snapshot dukungan
- Peran: aplikasi node companion (Android tidak meng-host Gateway).
- Gateway diperlukan: ya (jalankan di macOS, Linux, atau Windows melalui WSL2).
- Instal: Getting Started + Pairing.
- Gateway: Runbook + Configuration.
- Protokol: Protokol Gateway (node + control plane).
Kontrol sistem
Kontrol sistem (launchd/systemd) berada di host Gateway. Lihat Gateway.
Runbook Koneksi
Aplikasi node Android ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway
Android terhubung langsung ke WebSocket Gateway (default ws://<host>:18789) dan menggunakan pairing milik Gateway.
Prasyarat
- Anda dapat menjalankan Gateway di mesin "master".
- Perangkat/emulator Android dapat mencapai WebSocket gateway:
- LAN yang sama dengan mDNS/NSD, atau
- Tailnet Tailscale yang sama menggunakan Wide-Area Bonjour / unicast DNS-SD (lihat di bawah), atau
- Host/port gateway manual (fallback)
- Anda dapat menjalankan CLI (
mayros) di mesin gateway (atau melalui SSH).
1) Mulai Gateway
bashmayros gateway --port 18789 --verbose
Konfirmasi dalam log Anda melihat sesuatu seperti:
listening on ws://0.0.0.0:18789
Untuk pengaturan khusus tailnet (direkomendasikan untuk Vienna ⇄ London), bind gateway ke IP tailnet:
- Set
gateway.bind: "tailnet"di~/.mayros/mayros.jsondi host gateway. - Restart Gateway / aplikasi menubar macOS.
2) Verifikasi discovery (opsional)
Dari mesin gateway:
bashdns-sd -B _mayros-gw._tcp local.
Catatan debugging lebih lanjut: Bonjour.
3) Hubungkan dari Android
Di aplikasi Android:
- Aplikasi menjaga koneksi gateway tetap hidup melalui foreground service (notifikasi persisten).
- Buka Settings.
- Di bawah Discovered Gateways, pilih gateway Anda dan tekan Connect.
- Jika mDNS diblokir, gunakan Advanced → Manual Gateway (host + port) dan Connect (Manual).
Setelah pairing pertama berhasil, Android auto-reconnect saat peluncuran:
- Endpoint manual (jika diaktifkan), jika tidak
- Gateway yang terakhir ditemukan (best-effort).
4) Setujui pairing (CLI)
Di mesin gateway:
bashmayros nodes pending mayros nodes approve <requestId>
Detail pairing: Pairing Gateway.
5) Verifikasi node terhubung
-
Melalui status node:
bashmayros nodes status -
Melalui Gateway:
bashmayros gateway call node.list --params "{}"
6) Chat + riwayat
Chat sheet node Android menggunakan session key utama gateway (main), jadi riwayat dan balasan dibagikan dengan WebChat dan klien lain:
- Riwayat:
chat.history - Kirim:
chat.send - Pembaruan push (best-effort):
chat.subscribe→event:"chat"
7) Canvas + kamera
Gateway Canvas Host (direkomendasikan untuk konten web)
Jika Anda ingin node menampilkan HTML/CSS/JS nyata yang dapat diedit agen di disk, arahkan node ke host canvas Gateway.
Catatan: node memuat canvas dari server HTTP Gateway (port yang sama dengan gateway.port, default 18789).
-
Buat
~/.mayros/workspace/canvas/index.htmldi host gateway. -
Navigasi node ke sana (LAN):
bashmayros nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18789/__mayros__/canvas/"}'
Tailnet (opsional): jika kedua perangkat ada di Tailscale, gunakan nama MagicDNS atau IP tailnet alih-alih .local, misalnya http://<gateway-magicdns>:18789/__mayros__/canvas/.
Server ini menyuntikkan klien live-reload ke HTML dan me-reload pada perubahan file.
Host A2UI berada di http://<gateway-host>:18789/__mayros__/a2ui/.
Command canvas (hanya foreground):
canvas.eval,canvas.snapshot,canvas.navigate(gunakan{"url":""}atau{"url":"/"}untuk kembali ke scaffold default).canvas.snapshotmengembalikan{ format, base64 }(defaultformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLalias lama)
Command kamera (hanya foreground; permission-gated):
camera.snap(jpg)camera.clip(mp4)
Lihat Camera node untuk parameter dan helper CLI.