@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.
- package/README.md +20 -34
- package/dist/cli.js +423 -423
- package/dist/daemon.js +107 -107
- 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
|
-
|
|
894
|
-
│ │
|
|
895
|
-
hydra-
|
|
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
|
|
913
|
+
T1 → T2 → … → Tn ← hydra transformers
|
|
904
914
|
│
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
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.
|