@agora-build/atem 0.8.0 → 0.8.1

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 +17 -7
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -269,11 +269,13 @@ done
269
269
 
270
270
  **`serv files`** — serves a directory (or a single file) over HTTPS. Markdown is rendered to HTML; append `?raw=1` to any URL for the raw bytes. Useful for browsing AI-generated docs on a remote machine.
271
271
 
272
- **`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.
272
+ **`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/?t=…` (the printed URL) 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.
273
+
274
+ **Access code.** Every `atem serv` page and API needs the access code in the URL it prints (`https://…:8443/?t=…`), new at each start. Opening that URL sets a cookie for the server and drops the code from the address bar; without it, every path is a plain 404, so other devices on your network can't find or use the server. Background servers print it too (`atem serv files`, `rtc`, `webhooks`), and their log has it. For `serv webhooks` only the live console needs it: Agora's POSTs to `/webhook` keep the URL you registered. In the ConvoAI page's API History, credentials are masked on screen; **Copy with full credentials** copies the requests with them.
273
275
 
274
276
  **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.
275
277
 
276
- ### AI Agents (WIP)
278
+ ### AI Agents
277
279
 
278
280
  ```bash
279
281
  atem agent launch # Open the original Claude Code CLI in an Atem terminal
@@ -310,9 +312,11 @@ locally takes control back at once), and chat with the agent: sending a
310
312
  prompt takes control when nobody holds it (if another device does, Astation
311
313
  asks before taking over), the whole retained conversation can be scrolled
312
314
  back page by page, and each finished prompt names its reply messages.
313
- Every remote request names the exact session and speaks atem-session r8
314
- (Astation must be current: older clients are refused); old `agentInput`,
315
- `agentPrompt`, voice and `userCommand` messages were removed.
315
+ Every remote request names the exact session. On a verified host,
316
+ Astation, your phone and approved services reach it over end-to-end
317
+ encrypted channels checked against your account's signed device list. Keep
318
+ Atem and Astation up to date together: an older Astation is refused until
319
+ it is updated.
316
320
 
317
321
  Atem's own keys start with a prefix, Ctrl+] by default. Press it, then:
318
322
 
@@ -320,6 +324,7 @@ Atem's own keys start with a prefix, Ctrl+] by default. Press it, then:
320
324
  |-----|--------|
321
325
  | `h` or `m` | Hide the terminal; the agent keeps running |
322
326
  | `g` | Take control back locally |
327
+ | `a` | You answered an approval in the agent's own dialog: end its wait (see below) |
323
328
  | `x` | Stop the agent |
324
329
  | `r` | Redraw the screen |
325
330
  | `[` | Browse local history (arrows, Space to select, Enter to copy, Esc to return) |
@@ -379,7 +384,12 @@ control it answers, whoever is typing, and the first answer wins. The
379
384
  finished card shows how it ended. The terminal can
380
385
  always answer instead: Claude keeps its own dialog on screen (the first
381
386
  answer wins), and for Codex any key you type in the terminal hands the
382
- prompt back to Codex's own dialog. If nobody answers, nothing is allowed:
387
+ prompt back to Codex's own dialog. The agents don't tell Atem which tool
388
+ call a permission prompt was about, so Atem can't see an answer given in
389
+ their own dialog: after answering there, press the prefix, then `a` (Atem
390
+ reminds you when a tool ran while an approval waits). Until then the card
391
+ stays open and chat prompts are held, so a prompt is never typed into an
392
+ open dialog. If nobody answers, nothing is allowed:
383
393
  after the hook's wait (Claude 10 min, Codex 5 min) the agent asks in the
384
394
  terminal as usual. Claude gets the hook with `--settings` for each launch;
385
395
  to turn it off, set `approvals_hook = false` under `[claude]` in
@@ -389,7 +399,7 @@ The first `atem agent launch codex` asks once whether to add Atem's hooks
389
399
  (one per Codex event, for approvals and chat) to `~/.codex/hooks.json`, after
390
400
  your own (a backup is kept as `hooks.json.atem-bak`); to turn them off later,
391
401
  set `hooks = false` under `[codex]` in `~/.config/atem/config.toml` — the next
392
- `atem agent launch codex` removes them. See §6a and the r8 appendix of the [session protocol](https://github.com/Agora-Build/Atem/blob/main/designs/protocol/atem-session-v1.md).
402
+ `atem agent launch codex` removes them. See the [session protocol](https://github.com/Agora-Build/Atem/blob/main/designs/protocol/atem-session-v1.md) for the details.
393
403
 
394
404
  ## TUI Modes
395
405
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agora-build/atem",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "A terminal that connects people, Agora platform, and AI agents.",
5
5
  "bin": {
6
6
  "atem": "bin/atem"