2025-09-10 02:03:00 +08:00
from pydantic import BaseModel , Field
class UserDefinedError ( BaseModel ) :
error_code : str
reasoning : str
confidence_float : float = Field ( . . . , ge = 0 , le = 1 )
def __repr__ ( self ) - > str :
return f " { self . reasoning } (error_code= { self . error_code } , confidence_float= { self . confidence_float } ) "
2025-09-05 11:21:52 +08:00
class SkyvernDefinedError ( BaseModel ) :
error_code : str
reasoning : str
def __repr__ ( self ) - > str :
return f " { self . reasoning } (error_code= { self . error_code } ) "
2025-09-19 10:08:25 +08:00
def to_user_defined_error ( self ) - > UserDefinedError :
return UserDefinedError ( error_code = self . error_code , reasoning = self . reasoning , confidence_float = 1.0 )
2025-09-05 11:21:52 +08:00
class ReachMaxStepsError ( SkyvernDefinedError ) :
error_code : str = " REACH_MAX_STEPS "
reasoning : str = " The agent has reached the maximum number of steps. "
class ReachMaxRetriesError ( SkyvernDefinedError ) :
error_code : str = " REACH_MAX_RETRIES "
reasoning : str = " The agent has reached the maximum number of retries. It might be an issue with the agent. Please reach out to the Skyvern team for support. "
2025-09-19 10:08:25 +08:00
class GetTOTPVerificationCodeError ( SkyvernDefinedError ) :
error_code : str = " OTP_ERROR "
reasoning : str = (
" Failed to get TOTP verification code. Please confirm the TOTP functionality is working correctly on your side. "
)
def __init__ ( self , * , reason : str | None = None ) - > None :
reasoning = f " Failed to get TOTP verification code. Reason: { reason } " if reason else self . reasoning
super ( ) . __init__ ( reasoning = reasoning )
class TimeoutGetTOTPVerificationCodeError ( SkyvernDefinedError ) :
error_code : str = " OTP_TIMEOUT "
reasoning : str = " Timeout getting TOTP verification code. "