Spaces:
Paused
Paused
| package notify | |
| import ( | |
| "log" | |
| "runtime/debug" | |
| ) | |
| // this allows Plandex Cloud to inject error monitoring | |
| // all non-streaming handlers are already wrapped with different logic, so this is only needed for errors in streaming handlers | |
| type Severity int | |
| const ( | |
| SeverityInfo Severity = iota | |
| SeverityError | |
| ) | |
| var NotifyErrFn func(severity Severity, data ...interface{}) | |
| func RegisterNotifyErrFn(fn func(severity Severity, data ...interface{})) { | |
| NotifyErrFn = fn | |
| } | |
| func NotifyErr(severity Severity, data ...interface{}) { | |
| defer func() { | |
| if r := recover(); r != nil { | |
| log.Printf("panic in NotifyErr: %v\n%s", r, debug.Stack()) | |
| } | |
| }() | |
| if NotifyErrFn != nil { | |
| NotifyErrFn(severity, data...) | |
| } | |
| } | |