From 638d03b2b04af28e0d28f3a1e578bba05ab22d7b Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman Date: Sun, 22 Mar 2026 23:50:04 +0000 Subject: [PATCH] feat(server): ASGI endpoint via uvicorn Implement FastAPI-based ASGI application served by uvicorn for the CleverAgents server mode. Add health check endpoint, A2A JSON-RPC routing, configurable host:port binding, and graceful shutdown handling. Server launches via `agents server start`. - Add FastAPI ASGI app factory at infrastructure/server/asgi_app.py with /.well-known/agent.json (Agent Card), /health (liveness), and /a2a (A2A JSON-RPC 2.0 dispatch via A2aLocalFacade) - Add ServerLifecycle class at infrastructure/server/server_lifecycle.py wrapping uvicorn.Server with SIGTERM/SIGINT graceful shutdown - Add `agents server start` CLI command with --host, --port, --log-level options, resolving defaults from Settings - Add fastapi>=0.115.0 dependency to pyproject.toml (uvicorn already present) - Add Behave BDD tests (features/server_lifecycle.feature, 20 scenarios) - Add Robot Framework integration tests (robot/server_lifecycle.robot) - Update CHANGELOG.md and vulture_whitelist.py ISSUES CLOSED: #862 --- src/cleveragents/cli/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cleveragents/cli/main.py b/src/cleveragents/cli/main.py index 1045dd754..8ae97e4cc 100644 --- a/src/cleveragents/cli/main.py +++ b/src/cleveragents/cli/main.py @@ -223,7 +223,7 @@ def _register_subcommands() -> None: app.add_typer( server_app, name="server", - help="Server connection management (stub)", + help="Server management — start, connect, and status", ) app.add_typer( repo.app,