@agora-build/atem 0.4.98 → 0.4.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +23 -4
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -70,24 +70,43 @@ atem config convo --config <PATH> # Use a specific config file
70
70
  ```bash
71
71
  atem serv convo # Launch ConvoAI test page (HTTPS)
72
72
  atem serv convo --config ~/convo.toml # Use custom config
73
- atem serv convo --background # Headless mode (no browser)
73
+ atem serv convo --background # Detached daemon POSTs /join, registers, exits
74
+ atem serv attach <ID> # Open UI bound to a running convo daemon (talk to live agent)
75
+ atem serv attach 3 # …or by index from `atem serv list`
74
76
  atem serv rtc # Launch RTC test page (HTTPS)
75
77
  atem serv rtc --channel test --port 8443
76
78
  atem serv rtc --background # Run as background daemon
77
79
  atem serv diagrams # Host diagrams from SQLite (HTTP)
78
80
  atem serv diagrams --port 9000
79
81
  atem serv diagrams --background
80
- atem serv list # List running background servers
81
- atem serv kill <ID> # Kill a background server
82
+ atem serv webhooks # Receive Agora webhooks locally (auto-tunneled via ngrok)
83
+ atem serv webhooks --no-tunnel # Local listener only — bring your own tunnel
84
+ atem serv webhooks --background # Run as background daemon
85
+ atem serv list # List running background servers (#, ID, PID, STATUS)
86
+ atem serv kill <ID|#> # Kill a server (POSTs /leave for convo)
82
87
  atem serv killall # Kill all background servers
88
+
89
+ # Fleet test loop — {appid} and {ts} are expanded by atem
90
+ for i in $(seq -f '%04g' 1 10); do
91
+ atem serv convo --background --channel 'atem-convo-{appid}-{ts}-'$i
92
+ sleep 0.5
93
+ done
83
94
  ```
84
95
 
85
- **`serv convo`** — ConvoAI voice agent: live transcription (RTM), preset selection, avatar (Akool, LiveAvatar, Anam), RTC Stats, API History, camera toggle, RTC encryption (key + salt forwarded to the agent).
96
+ **`serv convo`** — ConvoAI voice agent: live transcription (RTM), preset selection, avatar (Akool, LiveAvatar, Anam), RTC Stats, API History, camera toggle, RTC encryption (key + salt forwarded to the agent), HIPAA mode (routes via `/hipaa/api/...`), audio dump.
97
+
98
+ `--background` re-execs as a detached daemon: parent POSTs `/join`, registers in `~/.config/atem/servers/<channel>.json`, exits. The daemon polls Agora's `GET /agents/{id}` every 60s and writes the status (RUNNING/IDLE/STOPPED/…) back into the registry — `atem serv list` reads it without making any network calls. `kill`/`killall` SIGTERM the daemon, which catches the signal and POSTs `/leave` before exiting. Daemon log file (`<channel>.log`) contains the `/join` URL and request body with secrets masked.
99
+
100
+ **`serv attach <id>`** — opens a foreground HTTPS UI bound to a running convo daemon's channel. The page hides Start/Stop because the daemon owns the agent; you Join to talk to the live agent. Encryption / HIPAA / geofence read from the same `convo.toml` so the local SDK matches what the daemon used.
86
101
 
87
102
  **`serv rtc`** — RTC test page: join/leave, publish/subscribe audio+video, token generation, RTM messaging, RTC encryption (8 modes; gcm2 modes auto-generate a copyable salt).
88
103
 
89
104
  **`serv diagrams`** — SQLite-backed HTTP server for hosting AI-generated HTML diagrams.
90
105
 
106
+ **`serv webhooks`** — local receiver for Agora webhook events (ConvoAI: `agent_joined`, `agent_left`, `agent_history`, `agent_error`, `agent_metrics`, …; RTC NCS events). Validates `Agora-Signature-V2` (HMAC-SHA256) when a `secret` is configured in `webhooks.toml`; accepts unsigned events otherwise with a warning. Live web console at `http://127.0.0.1:9090/` shows incoming events; each event also prints a one-line summary to stdout. Default tunnel provider is **ngrok**; set `tunnel_provider = "cloudflared"` for zero-auth quick tunnels. Use `--no-tunnel` if you're running cloudflared / ngrok separately for stable URLs across atem restarts.
107
+
108
+ **Channel placeholders** — `--channel` accepts `{appid}` (first 12 chars of the active app id) and `{ts}` (unix epoch seconds at startup). Useful in for-loops to match the auto-gen channel format.
109
+
91
110
  ### AI Agents (WIP)
92
111
 
93
112
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agora-build/atem",
3
- "version": "0.4.98",
3
+ "version": "0.4.101",
4
4
  "description": "A terminal that connects people, Agora platform, and AI agents.",
5
5
  "bin": {
6
6
  "atem": "bin/atem"