package structuredoutput import "errors" // FailureKind separates invalid generated content from operational failures. type FailureKind string const ( FailureMalformedOutput FailureKind = "malformed_output" FailureRuntime FailureKind = "runtime" ) // Failure exposes a safe message while retaining the typed cause for callers. // The cause must not be serialized or formatted directly in user artifacts. type Failure struct { Kind FailureKind Message string Cause error } func (f *Failure) Error() string { return f.Message } func (f *Failure) Unwrap() error { return f.Cause } func IsMalformedError(err error) bool { var failure *Failure return errors.As(err, &failure) && failure.Kind == FailureMalformedOutput }