@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.
- package/README.md +17 -7
- 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
|
|
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
|
|
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
|
|
314
|
-
|
|
315
|
-
|
|
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.
|
|
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
|
|
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
|
|