Surface misalignment policy violations as typed errors (#38682)

## What changed

- Recognize `misalignment_policy_violation` errors from response streams and HTTP 400 or 403 responses.
- Preserve the upstream message, use a fallback for blank messages, and treat the error as non-retryable.
- Expose `misalignmentPolicyViolation` through the app-server protocol and generated schemas so turns fail with a typed terminal error.

## Testing

- Cover streamed and HTTP policy violations, fallback messages, retry behavior, and app-server turn completion.

GitOrigin-RevId: fd3485bf0be7bfe3d51c078bbc36a081692fd57f
This commit is contained in:
Francis Chalissery
2026-08-15 01:29:46 +00:00
committed by copyberry
parent 4e9a1a9073
commit eb147c0db3
32 changed files with 299 additions and 2 deletions

View File

@@ -2493,6 +2493,7 @@ fn websocket_error_detail(err: &ApiError) -> String {
| ApiError::RateLimit(_)
| ApiError::InvalidRequest { .. }
| ApiError::CyberPolicy { .. }
| ApiError::MisalignmentPolicyViolation { .. }
| ApiError::ServerOverloaded => format!("handshake error: {err}"),
}
}