fix: refactored manually
Some checks failed
validation / verify (push) Failing after 15s

This commit is contained in:
2026-09-02 16:08:12 +01:00
parent 43cbd215e2
commit b9a924cf4a
63 changed files with 1398 additions and 6 deletions

82
app/workflows/routes.py Normal file
View File

@@ -0,0 +1,82 @@
"""Starlette REST Route Handlers for GCP Solution Architecture Agent."""
import logging
from typing import Any, Dict
from starlette.requests import Request
from starlette.responses import JSONResponse
from app.card import AGENT_CARD
from app.config import get_settings
from app.skills.loader import SkillLoader
from app.tools.validation_tools import validate_repository_artifacts
from app.workflows.gcp_architecture_graph import create_agent
logger = logging.getLogger(__name__)
async def health_check(request: Request) -> JSONResponse:
"""GET /health - Operational health endpoint."""
settings = get_settings()
return JSONResponse({
"status": "healthy",
"agent": settings.AGENT_NAME,
"version": settings.AGENT_VERSION,
})
async def get_card(request: Request) -> JSONResponse:
"""GET /card - Agent metadata and capability card."""
return JSONResponse(AGENT_CARD)
async def run_workflow(request: Request) -> JSONResponse:
"""POST /generate - Execute full 4-phase GCP Solution Architecture workflow."""
try:
body = await request.json() if request.headers.get("content-type") == "application/json" else {}
except Exception:
body = {}
workflow_request = body.get("request", "Default event-driven HTTP architecture")
target_dir = body.get("target_dir", ".")
settings = get_settings()
loader = SkillLoader(settings.SKILLS_DIR)
loader.load_skills()
agent = create_agent(loader)
initial_state = {
"workflow_request": workflow_request,
"target_dir": target_dir,
"active_skills": [],
}
final_state = agent.invoke(initial_state)
return JSONResponse({
"status": "success",
"phases_completed": ["discover", "design", "validate", "package"],
"validation_passed": final_state.get("validation_passed", True),
"artifacts": {
"requirements_doc": final_state.get("requirements_doc"),
"architecture_doc": final_state.get("architecture_doc"),
"mermaid_diagram": final_state.get("mermaid_diagram"),
"terraform_code": final_state.get("terraform_code"),
"validation_results": final_state.get("validation_results"),
"solution_guide": final_state.get("solution_guide"),
},
"active_skills": final_state.get("active_skills", []),
})
async def validate_artifacts_route(request: Request) -> JSONResponse:
"""POST /validate - Run pre-deployment validation checks against target directory."""
try:
body = await request.json() if request.headers.get("content-type") == "application/json" else {}
except Exception:
body = {}
target_dir = body.get("target_dir", ".")
result = validate_repository_artifacts.invoke({"target_dir": target_dir})
status_code = 200 if result.get("valid") else 400
return JSONResponse(result, status_code=status_code)