bridge-echo 0.1.0

HTTP bridge for Claude Code CLI
mod claude;
mod config;
mod handlers;
mod injection;
mod prompt;
mod router;
mod session;
mod state;
mod trust;

use config::Config;
use state::AppState;
use tracing::info;
use tracing_subscriber::EnvFilter;

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt()
        .with_env_filter(
            EnvFilter::try_from_default_env().unwrap_or_else(|_| "bridge_echo=info".into()),
        )
        .init();

    let config = Config::from_env().expect("invalid configuration");
    let addr = format!("{}:{}", config.host, config.port);

    info!("bridge-echo listening on {addr}");

    let state = AppState::new(config);
    let app = router::build(state);

    let listener = tokio::net::TcpListener::bind(&addr)
        .await
        .expect("failed to bind");

    axum::serve(listener, app).await.expect("server error");
}