package contracts import "errors" // ErrInvalidStructuredOutput identifies a provider response that cannot satisfy // the caller's declared structured-output contract. var ErrInvalidStructuredOutput = errors.New("invalid structured output") // ErrLLMCapacityExceeded identifies backend admission exhaustion before model // generation begins. var ErrLLMCapacityExceeded = errors.New("LLM capacity exceeded") // ErrLLMGeneration identifies a provider generation failure. var ErrLLMGeneration = errors.New("LLM generation failed") type LLMGenerationError struct { status int diagnostic string } func NewLLMGenerationError(status int, diagnostic string) *LLMGenerationError { if status < 0 { status = 0 } return &LLMGenerationError{status: status, diagnostic: diagnostic} } func (e *LLMGenerationError) Error() string { if e == nil || e.diagnostic == "" { return ErrLLMGeneration.Error() } return e.diagnostic } func (e *LLMGenerationError) Unwrap() error { return ErrLLMGeneration } func (e *LLMGenerationError) StatusCode() int { if e == nil { return 0 } return e.status }