1use adk_core::AgentLoader;
2use adk_server::{ServerConfig, create_app};
3use adk_session::InMemorySessionService;
4use anyhow::Result;
5use std::sync::Arc;
6
7#[allow(dead_code)] pub async fn run_serve(agent_loader: Arc<dyn AgentLoader>, port: u16) -> Result<()> {
9 if let Err(e) = adk_telemetry::init_telemetry("adk-server") {
11 eprintln!("Failed to initialize telemetry: {}", e);
12 }
13
14 let session_service = Arc::new(InMemorySessionService::new());
15
16 let config = ServerConfig::new(agent_loader, session_service);
17
18 let app = create_app(config);
19
20 let addr = format!("0.0.0.0:{}", port);
21 let listener = tokio::net::TcpListener::bind(&addr).await?;
22
23 println!("ADK Server starting on http://{}", addr);
24 println!("Press Ctrl+C to stop");
25
26 axum::serve(listener, app).await?;
27
28 Ok(())
29}