@hydra-acp/cli 0.1.201 → 0.1.203

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 +20 -34
  2. package/dist/cli.js +423 -423
  3. package/dist/daemon.js +107 -107
  4. package/package.json +1 -1
package/README.md CHANGED
@@ -710,6 +710,16 @@ hydra-acp extension start hydra-acp-archiver
710
710
 
711
711
  See the [package README](https://github.com/smagnuso/hydra-acp-archiver#readme) for backend setup (Drive OAuth, filesystem path).
712
712
 
713
+ **[`@hydra-acp/ahp`](https://github.com/smagnuso/hydra-ahp) — VS Code agent host.** Serves hydra sessions over the [Agent Host Protocol](https://github.com/microsoft/agent-host-protocol) so VS Code's agent UI can list, watch, and drive them. VS Code connects to it like any remote agent host, while every session stays live and shared with the TUI, browser, and Slack. Start a turn in the TUI and watch it stream in VS Code, or start a session in VS Code and pick it up later from the terminal. It listens on `127.0.0.1:55590` and mints its own token for VS Code, so hydra's tokens never leave the daemon.
714
+
715
+ ```sh
716
+ npm install -g @hydra-acp/ahp
717
+ hydra-acp extensions add hydra-ahp
718
+ hydra-acp extensions start hydra-ahp
719
+ ```
720
+
721
+ See the [package README](https://github.com/smagnuso/hydra-ahp#readme) for connecting VS Code and minting a token (`/hydra ahp token mint`).
722
+
713
723
  **[`@hydra-acp/planner`](https://github.com/smagnuso/hydra-acp-planner) — multi-agent project orchestrator.** Invoked via `/hydra planner create <description>` from any session: asks the host agent to decompose the project into a task DAG, then spawns N worker sessions and drives them in parallel by prompt management, with progress streaming back into your original chat. Boards persist under `~/.hydra-acp/planner/projects/<id>/` so plans survive daemon restarts. Strictly speaking it's a [transformer](#transformers), not an extension — it sits in the daemon's message pipeline rather than attaching as a client — but it installs and configures the same way.
714
724
 
715
725
  ```sh
@@ -890,21 +900,21 @@ Agents are sourced from the [ACP Registry](https://github.com/agentclientprotoco
890
900
  ## Architecture
891
901
 
892
902
  ```
893
- editor browser Slack ← clients
894
- │ │ │
895
- hydra-acp hydra-acp-browser hydra-acp-slack ← hydra extensions
896
- │ │ │
897
- └───────────────┼───────────────┘
903
+ VS Code Chrome Slack ← clients
904
+ │ │ │
905
+ hydra-ahp hydra-acp-browser hydra-acp-slack ← hydra extensions
906
+ │ │ │
907
+ └───────────────┼────────────────┘
898
908
  │
899
909
  WSS / HTTP
900
910
  │
901
911
  hydra-acp ← hydra daemon
902
912
  │
903
- T1 → T2 → … → Tn ← hydra transformers
913
+ T1 → T2 → … → Tn ← hydra transformers
904
914
  │
905
- ┌───────────────┼───────────────┐
906
- │ │ │
907
- claude opencode pi ← agents
915
+ ┌───────────┬─────┴─────┬───────────┐
916
+ │ │ │ │
917
+ claude opencode pi codex ← agents
908
918
  ```
909
919
 
910
920
  ### How it works
@@ -1013,6 +1023,7 @@ All three are documented in [`PROTOCOL.md`](PROTOCOL.md), with endpoint shapes,
1013
1023
  The daemon exposes a process-management surface. Treat the service token like an SSH key.
1014
1024
 
1015
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).
1016
1027
  - **No anonymous access.** Every request — REST and WSS — must present the bearer token.
1017
1028
  - **Token rotation:** `hydra-acp init --rotate-token` invalidates the old token; running clients are kicked.
1018
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.
@@ -1020,31 +1031,6 @@ The daemon exposes a process-management surface. Treat the service token like an
1020
1031
 
1021
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/`.
1022
1033
 
1023
- > **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"`.
1024
-
1025
- For remote access (binding to a non-loopback address), enable TLS via:
1026
-
1027
- ```json
1028
- {
1029
- "daemon": {
1030
- "tls": {
1031
- "cert": "/path/to/cert.pem",
1032
- "key": "/path/to/key.pem"
1033
- }
1034
- }
1035
- }
1036
- ```
1037
-
1038
- The daemon refuses to bind to non-loopback hosts without TLS configured.
1039
- `hydra-acp daemon listen` writes all of this for you (see
1040
- [Accepting remote clients](#accepting-remote-clients)). To do it by hand, a
1041
- self-signed cert is enough, since `remote add`'s TOFU handshake only needs a
1042
- key pair to pin, not a CA-signed one:
1043
-
1044
- ```sh
1045
- openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pem -subj "/CN=$(hostname)"
1046
- ```
1047
-
1048
1034
  ## License
1049
1035
 
1050
1036
  MIT.