@hydra-acp/cli 0.1.202 → 0.1.204

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 (4) hide show
  1. package/README.md +10 -34
  2. package/dist/cli.js +465 -464
  3. package/dist/daemon.js +107 -107
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -900,21 +900,21 @@ Agents are sourced from the [ACP Registry](https://github.com/agentclientprotoco
900
900
  ## Architecture
901
901
 
902
902
  ```
903
- editor browser Slack ← clients
904
- │ │ │
905
- hydra-acp hydra-acp-browser hydra-acp-slack ← hydra extensions
906
- │ │ │
907
- └───────────────┼───────────────┘
903
+ VS Code Chrome Slack ← clients
904
+ │ │ │
905
+ hydra-ahp hydra-acp-browser hydra-acp-slack ← hydra extensions
906
+ │ │ │
907
+ └───────────────┼────────────────┘
908
908
  │
909
909
  WSS / HTTP
910
910
  │
911
911
  hydra-acp ← hydra daemon
912
912
  │
913
- T1 → T2 → … → Tn ← hydra transformers
913
+ T1 → T2 → … → Tn ← hydra transformers
914
914
  │
915
- ┌───────────────┼───────────────┐
916
- │ │ │
917
- claude opencode pi ← agents
915
+ ┌───────────┬─────┴─────┬───────────┐
916
+ │ │ │ │
917
+ claude opencode pi codex ← agents
918
918
  ```
919
919
 
920
920
  ### How it works
@@ -1023,6 +1023,7 @@ All three are documented in [`PROTOCOL.md`](PROTOCOL.md), with endpoint shapes,
1023
1023
  The daemon exposes a process-management surface. Treat the service token like an SSH key.
1024
1024
 
1025
1025
  - **Default bind is `127.0.0.1`.** Cross-host access requires TLS + a strong token.
1026
+ - **Remote access is opt-in via `hydra-acp daemon listen`.** `tailnet` binds the tailnet IP with a CA-signed cert, `all` binds every interface with a self-signed cert, and `local` goes back to loopback. The daemon refuses a non-loopback bind without TLS; see [Accepting remote clients](#accepting-remote-clients).
1026
1027
  - **No anonymous access.** Every request — REST and WSS — must present the bearer token.
1027
1028
  - **Token rotation:** `hydra-acp init --rotate-token` invalidates the old token; running clients are kicked.
1028
1029
  - **Sandboxing is the user's responsibility.** Spawned agents inherit the daemon's filesystem and shell. Run the daemon under a restricted user or inside a container if you don't trust agents fully.
@@ -1030,31 +1031,6 @@ The daemon exposes a process-management surface. Treat the service token like an
1030
1031
 
1031
1032
  The service token (stored at `~/.hydra-acp/auth-token`, mode 0600) is generated on `hydra-acp init` and required as `Authorization: Bearer <token>` for every REST call and as a WebSocket subprotocol or query parameter for `wss://.../acp`. The token never leaves `~/.hydra-acp/`.
1032
1033
 
1033
- > **Windows:** mode 0600 is not enforcement there. Windows derives file access from ACLs, and Node's `chmod` only toggles the read-only bit, so `auth-token` (along with `config.json`, `peers.json`, `remotes.json`, and the session records) inherits whatever the parent directory grants. On a machine with more than one interactive user, restrict `%USERPROFILE%\.hydra-acp` yourself, e.g. `icacls "%USERPROFILE%\.hydra-acp" /inheritance:r /grant:r "%USERNAME%:(OI)(CI)F"`.
1034
-
1035
- For remote access (binding to a non-loopback address), enable TLS via:
1036
-
1037
- ```json
1038
- {
1039
- "daemon": {
1040
- "tls": {
1041
- "cert": "/path/to/cert.pem",
1042
- "key": "/path/to/key.pem"
1043
- }
1044
- }
1045
- }
1046
- ```
1047
-
1048
- The daemon refuses to bind to non-loopback hosts without TLS configured.
1049
- `hydra-acp daemon listen` writes all of this for you (see
1050
- [Accepting remote clients](#accepting-remote-clients)). To do it by hand, a
1051
- self-signed cert is enough, since `remote add`'s TOFU handshake only needs a
1052
- key pair to pin, not a CA-signed one:
1053
-
1054
- ```sh
1055
- openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pem -subj "/CN=$(hostname)"
1056
- ```
1057
-
1058
1034
  ## License
1059
1035
 
1060
1036
  MIT.