use crate::service::error::{to_api_error, CodeNexusError};
use sdforge::prelude::ApiError;
use super::{serve, ViewerConfig};
const DEFAULT_WEBUI_PORT: u16 = 9800;
#[cfg(feature = "cli")]
#[sdforge::forge(
name = "webui",
version = "0.4.0",
description = "Start the embedded graph-viewer Web UI (loopback-only; auth token printed on stdout, frontend assets compiled into the binary).",
cli = true
)]
async fn webui(#[param(kind = "body")] port: Option<u16>) -> Result<(), ApiError> {
let port = match port {
Some(p) if p != 0 => p,
_ => DEFAULT_WEBUI_PORT,
};
serve(ViewerConfig { port })
.await
.map_err(|e| to_api_error(CodeNexusError::Internal(e.to_string()), "webui_error"))
}