classifyErrorCode maps a model error to an ErrorCode constant for structured error events. The classification mirrors [modelerrors] but reduces the granularity to a small set of codes that external consumers can act on. Overflow errors are split by [modelerrors.OverflowKind] so the client can rende
(err error)
| 198 | // can render kind-specific messages (e.g. "request too large" vs "context |
| 199 | // window exceeded") instead of one generic string. |
| 200 | func classifyErrorCode(err error) string { |
| 201 | switch modelerrors.OverflowKindOf(err) { |
| 202 | case modelerrors.OverflowKindWire: |
| 203 | return ErrorCodeRequestTooLarge |
| 204 | case modelerrors.OverflowKindMedia: |
| 205 | return ErrorCodeMediaTooLarge |
| 206 | case modelerrors.OverflowKindTokens: |
| 207 | return ErrorCodeContextExceeded |
| 208 | } |
| 209 | _, rateLimited, _ := modelerrors.ClassifyModelError(err) |
| 210 | if rateLimited { |
| 211 | return ErrorCodeRateLimited |
| 212 | } |
| 213 | return ErrorCodeModelError |
| 214 | } |
no test coverage detected