Reads /etc/hyperhive/gui.json at startup to get the VNC port written by the weston-vnc ExecStart script (issue #50). Adds: - gui_vnc_port: Option<u16> on AppState - gui_enabled: bool on StateSnapshot (for issue #52 screen link) - GET /screen: serves a minimal RFB-over-WebSocket viewer (screen.html) - GET /screen/ws: upgrades to WebSocket and byte-pumps to 127.0.0.1:<vnc_port> The relay is a pure two-task byte pump (WS→TCP and TCP→WS), transparent to any RFB variant including VeNCrypt. Returns 404 when gui is not enabled. screen.html is a self-contained RFB client: handshake, FramebufferUpdate (Raw encoding), pointer and keyboard forwarding — enough to display the desktop and interact with it. noVNC assets (issue #52) replace this. Closes #51
32 lines
624 B
TOML
32 lines
624 B
TOML
[package]
|
|
name = "hive-ag3nt"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
axum.workspace = true
|
|
futures-util = "0.3"
|
|
clap.workspace = true
|
|
hive-fr0nt.workspace = true
|
|
hive-sh4re.workspace = true
|
|
rmcp.workspace = true
|
|
rusqlite.workspace = true
|
|
schemars.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
tokio.workspace = true
|
|
tokio-stream.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
[[bin]]
|
|
name = "hive-ag3nt"
|
|
path = "src/bin/hive-ag3nt.rs"
|
|
|
|
[[bin]]
|
|
name = "hive-m1nd"
|
|
path = "src/bin/hive-m1nd.rs"
|