feat: add Nailong Fund advisor capabilities
This commit is contained in:
+41
-9
@@ -1,21 +1,28 @@
|
||||
class AgentError(Exception):
|
||||
"""Base error with a stable public code."""
|
||||
|
||||
code = "AGENT_ERROR"
|
||||
code = "AGENT_INTERNAL_ERROR"
|
||||
status_code = 500
|
||||
retryable: bool | None = False
|
||||
|
||||
def __init__(self, message: str) -> None:
|
||||
super().__init__(message)
|
||||
self.message = message
|
||||
declared = type(self).retryable
|
||||
self.retryable = self.status_code >= 500 if declared is None else declared
|
||||
|
||||
@property
|
||||
def is_retryable(self) -> bool:
|
||||
return bool(self.retryable)
|
||||
|
||||
|
||||
class ValidationAgentError(AgentError):
|
||||
code = "VALIDATION_ERROR"
|
||||
status_code = 400
|
||||
code = "AGENT_INPUT_INVALID"
|
||||
status_code = 422
|
||||
|
||||
|
||||
class UnauthorizedAgentError(AgentError):
|
||||
code = "UNAUTHORIZED"
|
||||
code = "AUTHENTICATION_REQUIRED"
|
||||
status_code = 401
|
||||
|
||||
|
||||
@@ -25,12 +32,16 @@ class AgentTypeNotFoundError(ValidationAgentError):
|
||||
|
||||
|
||||
class ForbiddenAgentError(AgentError):
|
||||
code = "FORBIDDEN"
|
||||
code = "AGENT_PERMISSION_DENIED"
|
||||
status_code = 403
|
||||
|
||||
|
||||
class OnboardingRequiredError(ForbiddenAgentError):
|
||||
code = "ONBOARDING_REQUIRED"
|
||||
|
||||
|
||||
class ConflictAgentError(AgentError):
|
||||
code = "CONFLICT"
|
||||
code = "RUN_NOT_CANCELLABLE"
|
||||
status_code = 409
|
||||
|
||||
|
||||
@@ -39,14 +50,35 @@ class IdempotencyConflictError(ConflictAgentError):
|
||||
|
||||
|
||||
class RecoverableAgentError(AgentError):
|
||||
code = "RECOVERABLE_ERROR"
|
||||
code = "DEPENDENCY_UNAVAILABLE"
|
||||
status_code = 503
|
||||
retryable = True
|
||||
|
||||
|
||||
class RunLeaseLostError(ConflictAgentError):
|
||||
code = "RUN_LEASE_LOST"
|
||||
code = "RUN_NOT_CANCELLABLE"
|
||||
|
||||
|
||||
class ResourceNotFoundError(AgentError):
|
||||
code = "RESOURCE_NOT_FOUND"
|
||||
code = "SESSION_NOT_FOUND"
|
||||
status_code = 404
|
||||
|
||||
|
||||
class RunNotFoundError(ResourceNotFoundError):
|
||||
code = "RUN_NOT_FOUND"
|
||||
|
||||
|
||||
class InvalidCursorError(AgentError):
|
||||
code = "INVALID_CURSOR"
|
||||
status_code = 400
|
||||
|
||||
|
||||
class RateLimitedError(AgentError):
|
||||
code = "RATE_LIMITED"
|
||||
status_code = 429
|
||||
retryable = True
|
||||
|
||||
|
||||
class SseNotAcceptableError(AgentError):
|
||||
code = "SSE_NOT_ACCEPTABLE"
|
||||
status_code = 406
|
||||
|
||||
Reference in New Issue
Block a user