33 lines
1.3 KiB
Markdown
33 lines
1.3 KiB
Markdown
# cmuxd-remote (Go)
|
|
|
|
Go remote daemon for `cmux ssh` bootstrap and capability negotiation.
|
|
|
|
Current commands:
|
|
1. `cmuxd-remote version`
|
|
2. `cmuxd-remote serve --stdio`
|
|
|
|
Current RPC methods (newline-delimited JSON):
|
|
1. `hello`
|
|
2. `ping`
|
|
3. `proxy.open`
|
|
4. `proxy.close`
|
|
5. `proxy.write`
|
|
6. `proxy.read`
|
|
7. `session.open`
|
|
8. `session.close`
|
|
9. `session.attach`
|
|
10. `session.resize`
|
|
11. `session.detach`
|
|
12. `session.status`
|
|
|
|
Current integration in cmux:
|
|
1. `workspace.remote.configure` now bootstraps this binary over SSH when missing.
|
|
2. Client sends `hello` before enabling remote proxy transport.
|
|
3. Local workspace proxy broker serves SOCKS5 + HTTP CONNECT and tunnels stream traffic through `proxy.*` RPC over `serve --stdio`.
|
|
4. Daemon status/capabilities are exposed in `workspace.remote.status -> remote.daemon` (including `session.resize.min`).
|
|
|
|
`workspace.remote.configure` contract notes:
|
|
1. `port` / `local_proxy_port` accept integer values and numeric strings; explicit `null` clears each field.
|
|
2. Out-of-range values and invalid types return `invalid_params`.
|
|
3. `local_proxy_port` is an internal deterministic test hook used by bind-conflict regressions.
|
|
4. SSH option precedence checks are case-insensitive; user overrides for `StrictHostKeyChecking` and control-socket keys prevent default injection.
|