# Sonic-Forage OBS Operator Takeover Router

This is the safe control design for running the stream 100% autonomous while still letting Jimsky/operator take over, beam people in/out, rotate guests, and switch language modes later at night.

## Core idea

Run the stream as a **single-primary output** with OBS as the human cockpit:

```text
Autonomous loop / AI agents / proof hub / arcade / guests
        ↓
OBS scenes + browser sources + call windows + overlays
        ↓
One approved RTMP output
```

The operator can take over with hotkeys, but public viewers/guests/chat never get direct access to shell, stream keys, posting APIs, wallets, or paid compute.

## Recommended scene/hotkey map

Use F13–F24 or a Stream Deck/TouchoSC/iPad that sends those key combos. If your keyboard cannot send F13–F24, map them to `Ctrl+Alt+Shift+1..12` in OBS.

- `F13` — `AUTO_SHOW`: 100% autonomous master loop / AI radio.
- `F14` — `JIMSKY_TAKEOVER`: your cam/mic/operator scene.
- `F15` — `GUEST_STAGE_A`: approved guest/call slot A.
- `F16` — `GUEST_STAGE_B`: approved guest/call slot B.
- `F17` — `ROTATION_LOBBY`: holding room, QR, “next guest loading”.
- `F18` — `PROOF_HUB`: browser capture of public proof hub.
- `F19` — `BUILD_WALL`: sanitized terminal/verifier/progress wall.
- `F20` — `RETRO_FORGE_ARCADE`: playable browser arcade segment.
- `F21` — `LAKE_CHINA_MODE`: late-night multilingual/Chinese-friendly mode.
- `F22` — `SAFE_INTERMISSION`: owned/generated fallback loop.
- `F23` — `PANIC_PRIVACY`: hide private screens, mute guests, show safe card.
- `F24` — `STREAM_CAPTAIN_STATUS`: health, gates, next segment, no secrets.

## Guest rotation model

1. Guest enters a lobby/call room that is **not live by default**.
2. Operator previews guest off-air.
3. Operator promotes guest to `GUEST_STAGE_A` or `GUEST_STAGE_B`.
4. If guest disconnects, misbehaves, or leaks private info, hit `F23` then `F22`.
5. Never give guests control of OBS, shell, wallets, stream keys, or public posting.

## Typing / terminal safety

Your instinct is right: showing a terminal-like surface can be powerful, but **public chat should not type into a real terminal**.

Use three layers:

- **Fake terminal overlay**: looks like a terminal, displays moderated viewer prompts/status.
- **Sanitized build wall**: shows git status, verifier pass/fail, artifact links, but no secrets.
- **Real operator terminal**: only you/Hermes operate it, hidden or carefully cropped.

This avoids bans and accidents. Viewers can submit prompts, but they are queued/moderated and transformed into safe local tasks.

## Multilingual / Lake China mode

`LAKE_CHINA_MODE` should be a visual/language package, not a risky account automation mode:

- Chinese-friendly captions/cards.
- Bilingual operator prompts.
- Local/generated visuals and music bed.
- QR/proof links that work globally.
- No spam posting, no automated platform outreach, no unreviewed chat bot typing.

## OBS setup steps

1. Install/enable OBS WebSocket only for localhost if using automation.
2. Create scenes with the exact names above.
3. Add browser sources:
   - Proof hub: `https://sonic-forage.github.io/afterparty-forge-explainer-site/`
   - Arcade: `https://sonic-forage.github.io/afterparty-forge-explainer-site/arcade/index.html`
   - Operator panel: `docs/operator/index.html` locally or published Pages URL.
4. Add a media source for `SAFE_INTERMISSION` pointing at the stream-ready master loop.
5. Add call/browser capture sources for `GUEST_STAGE_A/B` but keep them hidden until previewed.
6. Assign hotkeys using the map above.
7. Test locally/recording-only before live.

## Hard safety rules

- One primary RTMP pusher per stream key.
- Stream key never appears on stream, in repo, or in chat.
- `PANIC_PRIVACY` must be available from a physical key/button.
- Unknown viewer commands are ignored or queued for manual review.
- Public chat is never connected to shell execution.
- Start/stop stream remains manual unless you explicitly approve automation for that exact run.
