//! cube.famzheng.me — 入口门户 + 反馈聊天助手。
//!
//! - 静态 SPA + SPA fallback 由 cube-core::base 处理。
//! - `POST /api/chat` 转发到 LLM gateway，工具 `create_issue` 直接调 gitea 建 issue。

mod chat;

use std::sync::Arc;

#[tokio::main]
async fn main() -> std::io::Result<()> {
    cube_core::init_tracing();
    let dist = std::env::var("CUBE_DIST_DIR").unwrap_or_else(|_| "/dist".into());
    let cfg = Arc::new(chat::Config::from_env());

    let api = axum::Router::new()
        .route("/chat", axum::routing::post(chat::handle))
        .with_state(cfg);

    let app = cube_core::base(dist).nest("/api", api);
    cube_core::serve(app, 8080).await
}
