fix gateway loopback validation chains

This commit is contained in:
2026-05-11 08:48:02 +08:00
parent ff666b1ece
commit ca7e76e815
42 changed files with 1641 additions and 129 deletions
+24 -4
View File
@@ -34,7 +34,8 @@ func (c SimulationClient) Run(ctx context.Context, request Request) (Response, e
}
}
responseFinishedAt := time.Now()
if profile == "retryable_failure" {
switch profile {
case "retryable_failure":
return Response{}, &ClientError{
Code: "server_error",
Message: "simulated retryable failure",
@@ -44,8 +45,27 @@ func (c SimulationClient) Run(ctx context.Context, request Request) (Response, e
ResponseDurationMS: responseDurationMS(responseStartedAt, responseFinishedAt),
Retryable: true,
}
}
if profile == "fatal_failure" || profile == "non_retryable_failure" {
case "rate_limit", "overloaded":
return Response{}, &ClientError{
Code: profile,
Message: "simulated " + profile,
RequestID: "simulated-request",
ResponseStartedAt: responseStartedAt,
ResponseFinishedAt: responseFinishedAt,
ResponseDurationMS: responseDurationMS(responseStartedAt, responseFinishedAt),
Retryable: true,
}
case "invalid_api_key":
return Response{}, &ClientError{
Code: "invalid_api_key",
Message: "simulated invalid_api_key",
RequestID: "simulated-request",
ResponseStartedAt: responseStartedAt,
ResponseFinishedAt: responseFinishedAt,
ResponseDurationMS: responseDurationMS(responseStartedAt, responseFinishedAt),
Retryable: false,
}
case "fatal_failure", "non_retryable_failure":
return Response{}, &ClientError{
Code: "bad_request",
Message: "simulated non-retryable failure",
@@ -184,7 +204,7 @@ func simulatedVideoData(request Request) []any {
}
func simulatedUsage(request Request) Usage {
if request.ModelType == "chat" || request.Kind == "responses" {
if request.ModelType == "chat" || request.ModelType == "text_generate" || request.Kind == "responses" {
return Usage{InputTokens: 12, OutputTokens: 8, TotalTokens: 20}
}
return Usage{}