@hydra-acp/cli 0.1.188 → 0.1.189
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 +36 -40
- package/dist/cli.js +349 -349
- package/dist/daemon.js +34 -34
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -220,6 +220,35 @@ and setting `daemon.publicHost` to the name the URL should carry. See
|
|
|
220
220
|
[Security](#security). Without that, `share` still prints a URL and warns you
|
|
221
221
|
that it's loopback-only.
|
|
222
222
|
|
|
223
|
+
### Linking machines
|
|
224
|
+
|
|
225
|
+
`session share` is a one-off: it hands out a URL for a single session.
|
|
226
|
+
`hydra-acp remote add` is the persistent version, git-remote style — it
|
|
227
|
+
federates your daemon with a peer's under a local name, so the peer's
|
|
228
|
+
sessions show up in `session list --host=<name>` (or `--host=all`) and can be
|
|
229
|
+
attached with `--session <name>:<localId>`, as well as showing up in hydra
|
|
230
|
+
session lists in TUI:
|
|
231
|
+
|
|
232
|
+
```sh
|
|
233
|
+
hydra-acp remote add box peer.local
|
|
234
|
+
hydra-acp session list --host=box
|
|
235
|
+
hydra-acp --session box:hydra_session_abc123
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
The host arg is `host[:port]`; the port defaults to the daemon's usual
|
|
239
|
+
`55514` when omitted. Two things have to be true on the peer (`peer.local`)
|
|
240
|
+
before this works:
|
|
241
|
+
|
|
242
|
+
- It has a master password set — `hydra-acp auth password` on that machine.
|
|
243
|
+
`remote add` prompts you for it once, exchanges it for a long-lived token,
|
|
244
|
+
and stores that token.
|
|
245
|
+
- If it's not loopback, it needs TLS configured as in [Security](#security).
|
|
246
|
+
`remote add` does a TOFU handshake first.
|
|
247
|
+
|
|
248
|
+
The exchanged token expires; `remote list` shows when. Re-run `remote add`
|
|
249
|
+
with the same name before then to refresh it. `remote remove` un-federates
|
|
250
|
+
and revokes the token on the peer.
|
|
251
|
+
|
|
223
252
|
## Compaction and recall
|
|
224
253
|
|
|
225
254
|
Long sessions run into the model's context window. When a session's history
|
|
@@ -582,6 +611,8 @@ one is to sit on that row and walk through them. Eighteen ship built in, and
|
|
|
582
611
|
|
|
583
612
|
`tui.defaultEnterAction` (default `"amend"`) controls what the unmodified Enter key does in the prompt composer. With `"amend"` (the default), Enter amends the in-flight turn and `Shift+Enter` enqueues a new prompt; with no turn in flight either key just enqueues, since there's nothing to amend. Set to `"enqueue"` to flip the two: Enter enqueues (sends immediately when idle, queues behind an in-flight turn) and `Shift+Enter` amends.
|
|
584
613
|
|
|
614
|
+
`tui.defaultHost` (default `"local"`) sets which host bucket the session picker opens on, before `h` cycles it. `"local"` is sessions created or bound on this machine, `"all"` drops the host filter, and `"remote:all"` is local plus every `hydra remote`'s live sessions without imported-machine mirrors. `"remote:<name>"` and `"host:<name>"` pick one remote or one imported machine; a bare name is a remote of that name, else an imported machine. A value that nothing backs at picker-open time falls back to `"local"`. TUI-only: `hydra session list --host` keeps its own `"local"` default.
|
|
615
|
+
|
|
585
616
|
`tui.skipPermissions` (default `false`) makes `--dangerously-skip-permissions` the standing default for the TUI: every tool permission request is auto-approved (with `allow_once`, so nothing is written to the agent's persisted permission rules) and the modal never appears. The startup banner names the config key so it isn't silent. TUI-only on purpose: `shim`, `launch`, and `cat` are spawned by editors and scripts with their own argv, and an ambient config key there would disarm paths you aren't watching. Pass `--no-dangerously-skip-permissions` to get the prompts back for a single run.
|
|
586
617
|
|
|
587
618
|
## Extensions
|
|
@@ -963,49 +994,14 @@ For remote access (binding to a non-loopback address), enable TLS via:
|
|
|
963
994
|
}
|
|
964
995
|
```
|
|
965
996
|
|
|
966
|
-
The daemon refuses to bind to non-loopback hosts without TLS configured.
|
|
997
|
+
The daemon refuses to bind to non-loopback hosts without TLS configured. A
|
|
998
|
+
self-signed cert is enough, since `remote add`'s TOFU handshake only needs a
|
|
999
|
+
key pair to pin, not a CA-signed one:
|
|
967
1000
|
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
If accepted, `hydra-acp` could land in the [ACP Registry](https://github.com/agentclientprotocol/registry):
|
|
971
|
-
|
|
972
|
-
```json
|
|
973
|
-
{
|
|
974
|
-
"id": "hydra-acp",
|
|
975
|
-
"name": "Hydra ACP",
|
|
976
|
-
"version": "0.1.0",
|
|
977
|
-
"description": "Multi-client session daemon. Spawn agents, attach over WSS, multiplex sessions across editors.",
|
|
978
|
-
"authors": ["Sam Magnuson"],
|
|
979
|
-
"license": "MIT",
|
|
980
|
-
"icon": "icon.svg",
|
|
981
|
-
"repository": "https://github.com/smagnuso/hydra-acp",
|
|
982
|
-
"website": "https://github.com/smagnuso/hydra-acp",
|
|
983
|
-
"distribution": {
|
|
984
|
-
"npx": {
|
|
985
|
-
"package": "@hydra-acp/cli",
|
|
986
|
-
"args": ["shim"]
|
|
987
|
-
}
|
|
988
|
-
},
|
|
989
|
-
"capabilities": {
|
|
990
|
-
"session": {
|
|
991
|
-
"attach": {},
|
|
992
|
-
"list": true,
|
|
993
|
-
"proxy": true
|
|
994
|
-
},
|
|
995
|
-
"transport": {
|
|
996
|
-
"stdio": true,
|
|
997
|
-
"websocket": true
|
|
998
|
-
}
|
|
999
|
-
}
|
|
1000
|
-
}
|
|
1001
|
+
```sh
|
|
1002
|
+
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout key.pem -out cert.pem -subj "/CN=$(hostname)"
|
|
1001
1003
|
```
|
|
1002
1004
|
|
|
1003
|
-
The accompanying icon lives at [`assets/icon.svg`](assets/icon.svg) — a single `currentColor`-filled `<path>` rendering the three-headed hydra silhouette. The `viewBox` is 32×32 (so the path supersamples cleanly at the registry's 16×16 display size); the SVG declares `width="16" height="16"` per the [registry rules](https://github.com/agentclientprotocol/registry/blob/main/CONTRIBUTING.md). Source PNG at [`assets/hydra-source.png`](assets/hydra-source.png) is what the silhouette and the README's top-of-page Braille art are both derived from.
|
|
1004
|
-
|
|
1005
|
-
## Status
|
|
1006
|
-
|
|
1007
|
-
This is an early experiment.
|
|
1008
|
-
|
|
1009
1005
|
## License
|
|
1010
1006
|
|
|
1011
1007
|
MIT.
|