# PARA Fleet — Even Realities G2 app

Wearable hub for the agent fleet. v1 = a single roster page: one line per agent
with its status, polled live from `omidlab.net`.

- **tap** (temple touchpad / R1 ring) → refresh now
- **double-tap** → exit

The app runs in the Even phone-app WebView; the glasses are display + touchpad.
The fleet API is reached through Vite's dev proxy (see `vite.config.js`), so the
dev loop needs **no CORS changes** on the server.

## One-time setup (on your Mac)

1. **Developer account / dev mode.** Sign in at https://hub.evenrealities.com,
   enable developer mode for your glasses (Even Realities phone app → Even Hub
   tab). See https://hub.evenrealities.com/docs/get-started/quickstart/sign-in
2. **Node + tools** (Node 18+):
   ```bash
   npm i -g @evenrealities/evenhub-cli   # the `evenhub` CLI (qr/pack)
   ```
3. **Install app deps:**
   ```bash
   cd /data/cameron/agents_stuff/agents/glasses/app   # (your synced copy on the Mac)
   npm install
   ```
   If `npm install` pins a different SDK version, set `min_sdk_version` in
   `app.json` to match `npm ls @evenrealities/even_hub_sdk`.

## Run it (every dev session)

```bash
npm run dev     # Vite dev server on 0.0.0.0:5173
npm run qr      # prints a QR pointing at http://<your-lan-ip>:5173
```

Then: Even Realities phone app → **Even Hub** tab → **Scan QR** → aim at the QR.
The glasses render the roster within a second. Phone must be on the **same
Wi-Fi/LAN** as the Mac. Keep the Even app in the foreground (backgrounding
suspends the WebView and kills the dev connection).

If `npm run qr` can't find your LAN IP, run `evenhub qr --url "http://<ip>:5173"`
manually (`ipconfig getifaddr en0` to find `<ip>`).

## Notes / next steps

- **Standalone build (later):** `evenhub pack app.json dist -o para-fleet.ehpk`
  after `npm run build`. A packaged app has no Vite proxy, so at that point we
  switch to a direct `https://omidlab.net` fetch, add CORS to `serve.py`
  (coordinate with website_builder), and add a `network` whitelist for
  `https://omidlab.net` to `app.json`'s `permissions`.
- **v2:** per-agent detail page (drill in) + canned-message send-back, then
  voice dictation (mic PCM → `/api/transcribe`). See
  `vault/fleet/agents/glasses/{overview,tasks}.md`.
