fix: structure hermes empty response failures
This commit is contained in:
parent
dbce207d83
commit
0915adc565
@ -447,14 +447,7 @@ func (s *Server) handleHermesACPUpstreamSessionRequest(method string, params map
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if output == "" {
|
if output == "" {
|
||||||
return map[string]any{
|
return s.emptyUpstreamResponseFailure("session/prompt", response)
|
||||||
"success": false,
|
|
||||||
"provider": s.providerID,
|
|
||||||
"mode": "single-agent",
|
|
||||||
"error": "hermes upstream returned empty response",
|
|
||||||
"upstreamMethod": "session/prompt",
|
|
||||||
"upstream": response,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s.sessionsMu.Lock()
|
s.sessionsMu.Lock()
|
||||||
@ -485,6 +478,22 @@ func (s *Server) handleHermesACPUpstreamSessionRequest(method string, params map
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Server) emptyUpstreamResponseFailure(upstreamMethod string, upstream map[string]any) map[string]any {
|
||||||
|
const message = "hermes upstream returned empty response"
|
||||||
|
return map[string]any{
|
||||||
|
"success": false,
|
||||||
|
"status": "failed",
|
||||||
|
"provider": s.providerID,
|
||||||
|
"mode": "single-agent",
|
||||||
|
"error": message,
|
||||||
|
"message": message,
|
||||||
|
"unavailableCode": "PROVIDER_EMPTY_RESPONSE",
|
||||||
|
"unavailableMessage": message,
|
||||||
|
"upstreamMethod": upstreamMethod,
|
||||||
|
"upstream": upstream,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func normalizeHermesUpstreamMethod(method string) string {
|
func normalizeHermesUpstreamMethod(method string) string {
|
||||||
normalized := strings.ToLower(strings.TrimSpace(method))
|
normalized := strings.ToLower(strings.TrimSpace(method))
|
||||||
normalized = strings.ReplaceAll(normalized, ".", "/")
|
normalized = strings.ReplaceAll(normalized, ".", "/")
|
||||||
|
|||||||
@ -186,6 +186,15 @@ func TestHandleRPCSessionStartRejectsEmptyUpstreamResponse(t *testing.T) {
|
|||||||
if got := result["error"]; got != "hermes upstream returned empty response" {
|
if got := result["error"]; got != "hermes upstream returned empty response" {
|
||||||
t.Fatalf("expected empty-response error, got %#v", result)
|
t.Fatalf("expected empty-response error, got %#v", result)
|
||||||
}
|
}
|
||||||
|
if got := result["status"]; got != "failed" {
|
||||||
|
t.Fatalf("expected failed status, got %#v", result)
|
||||||
|
}
|
||||||
|
if got := result["unavailableCode"]; got != "PROVIDER_EMPTY_RESPONSE" {
|
||||||
|
t.Fatalf("expected PROVIDER_EMPTY_RESPONSE, got %#v", result)
|
||||||
|
}
|
||||||
|
if got := result["upstreamMethod"]; got != "session/prompt" {
|
||||||
|
t.Fatalf("expected upstream method, got %#v", result)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewServerDefaultsHermesToSessionPrompt(t *testing.T) {
|
func TestNewServerDefaultsHermesToSessionPrompt(t *testing.T) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user