vibe-proxy/backend/sdk/cliproxy/executor/websocket.go
2026-08-24 00:10:41 +02:00

29 lines
1.1 KiB
Go

package executor
import (
"errors"
"net/http"
)
// UpstreamWebsocketReplayRequiredError indicates that an incremental request
// cannot safely continue because its upstream websocket is no longer reusable.
type UpstreamWebsocketReplayRequiredError struct{}
func (*UpstreamWebsocketReplayRequiredError) Error() string {
return `{"error":{"message":"upstream transport requires full HTTP replay","type":"server_error","code":"upstream_http_replay_required","status":426}}`
}
func (*UpstreamWebsocketReplayRequiredError) StatusCode() int { return http.StatusUpgradeRequired }
func (*UpstreamWebsocketReplayRequiredError) IsRequestScoped() bool { return true }
// NewUpstreamWebsocketReplayRequiredError creates a request-scoped replay signal.
func NewUpstreamWebsocketReplayRequiredError() error {
return &UpstreamWebsocketReplayRequiredError{}
}
// IsUpstreamWebsocketReplayRequired reports whether err is the internal replay signal.
func IsUpstreamWebsocketReplayRequired(err error) bool {
var replayErr *UpstreamWebsocketReplayRequiredError
return errors.As(err, &replayErr)
}