{
  "endpoints": [
    {
      "method": "POST",
      "path": "/api/regression-test/run",
      "description": "Thực thi test cases bằng cách proxy request tới một Target URL cụ thể do người dùng tùy chọn (VD: endpoint Dev hoặc Prod).",
      "request": {
        "headers": {
          "Content-Type": "application/json"
        },
        "body": {
          "target_url": "string (Ví dụ: http://172.16.2.207:5000/api/agent/chat-dev)",
          "test_cases": "array of objects [{ 'id': 'string/number', 'question': 'string' }]",
          "timeout": "integer (Thời gian chờ tối đa, tính bằng giây, mặc định: 60)"
        }
      },
      "response": {
        "status": "success",
        "total": "integer (Số lượng test cases đã chạy trong request này)",
        "passed": "integer",
        "failed": "integer",
        "results": [
          {
            "id": "string",
            "question": "string",
            "status": "success | error",
            "response": "string (giá trị trích xuất từ 'ai_response' của Target URL hoặc message báo lỗi)",
            "trace_id": "string",
            "latency_ms": "float"
          }
        ]
      },
      "internal_logic": "Backend sử dụng httpx.AsyncClient để gửi POST tới target_url với format mặc định {'user_query': question}. Nó tự động đo lường elapsed time để trả về latency_ms. Các lỗi connection/HTTP đều được bắt qua try/except nhằm đảm bảo tính ổn định cho test runner."
    }
  ]
}