Files
audita/internal/framework/structuredoutput/failure.go

28 lines
741 B
Go

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
}