feat: add HTTP REST API server for external agent access

Implements Phase 2 from AI_API_ENHANCEMENT_HANDOFF.md to expose yaze
functionality via HTTP endpoints for automation and external tools.

Changes:
- Add YAZE_ENABLE_HTTP_API CMake option (defaults to YAZE_ENABLE_AGENT_CLI)
- Add YAZE_HTTP_API_ENABLED compile definition when enabled
- Integrate HttpServer into z3ed with conditional compilation
- Add --http-port and --http-host CLI flags with full parsing
- Create comprehensive API documentation with examples

Initial endpoints:
- GET /api/v1/health - Server health check
- GET /api/v1/models - List available AI models from all providers

Built with mac-ai preset (46 steps, 89MB binary).
Tested both endpoints successfully on localhost:8080.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
scawful
2025-11-20 00:10:36 -05:00
parent a57e420c15
commit 7391b00553
7 changed files with 624 additions and 1 deletions

View File

@@ -27,11 +27,18 @@ option(YAZE_BUILD_AGENT_UI
option(YAZE_ENABLE_AGENT_CLI
"Build the conversational agent CLI stack (z3ed agent commands)"
${YAZE_BUILD_CLI})
option(YAZE_ENABLE_HTTP_API
"Enable HTTP REST API server for external agent access"
${YAZE_ENABLE_AGENT_CLI})
if((YAZE_BUILD_CLI OR YAZE_BUILD_Z3ED) AND NOT YAZE_ENABLE_AGENT_CLI)
set(YAZE_ENABLE_AGENT_CLI ON CACHE BOOL "Build the conversational agent CLI stack (z3ed agent commands)" FORCE)
endif()
if(YAZE_ENABLE_HTTP_API AND NOT YAZE_ENABLE_AGENT_CLI)
set(YAZE_ENABLE_AGENT_CLI ON CACHE BOOL "Build the conversational agent CLI stack (z3ed agent commands)" FORCE)
endif()
# Build optimizations
option(YAZE_ENABLE_LTO "Enable link-time optimization" OFF)
option(YAZE_ENABLE_SANITIZERS "Enable AddressSanitizer/UBSanitizer" OFF)
@@ -84,6 +91,10 @@ if(YAZE_ENABLE_AI_RUNTIME)
add_compile_definitions(YAZE_AI_RUNTIME_AVAILABLE)
endif()
if(YAZE_ENABLE_HTTP_API)
add_compile_definitions(YAZE_HTTP_API_ENABLED)
endif()
# Print configuration summary
message(STATUS "=== YAZE Build Configuration ===")
message(STATUS "GUI Application: ${YAZE_BUILD_GUI}")
@@ -99,6 +110,7 @@ message(STATUS "AI Runtime: ${YAZE_ENABLE_AI_RUNTIME}")
message(STATUS "AI Features (legacy): ${YAZE_ENABLE_AI}")
message(STATUS "Agent UI Panels: ${YAZE_BUILD_AGENT_UI}")
message(STATUS "Agent CLI Stack: ${YAZE_ENABLE_AGENT_CLI}")
message(STATUS "HTTP API Server: ${YAZE_ENABLE_HTTP_API}")
message(STATUS "LTO: ${YAZE_ENABLE_LTO}")
message(STATUS "Sanitizers: ${YAZE_ENABLE_SANITIZERS}")
message(STATUS "Coverage: ${YAZE_ENABLE_COVERAGE}")