Documentation

Core Enums

String enums used throughout the SDK

Imports

Core enums are importable directly from scopix: from scopix import DescriptionStatus, ChatTokenType, StorageTarget. AgentCapability lives in a submodule — from scopix.types.contracts import AgentCapability.

These enums inherit from both str and Enum for JSON compatibility.

DescriptionStatus

Status of AI description generation for an image

python
class DescriptionStatus(str, Enum):
PENDING = "pending" # Not yet started
QUEUED = "queued" # In queue for processing
PROCESSING = "processing" # Currently being processed
COMPLETED = "completed" # Successfully completed
FAILED = "failed" # Processing failed
SKIPPED = "skipped" # Skipped (e.g., duplicate)

ChatTokenType

Type of event in streaming chat responses

python
class ChatTokenType(str, Enum):
TOKEN = "token" # Text token
STATUS = "status" # Status update (searching, analyzing, etc.)
IMAGE_RESULTS = "image_results" # Images found during response
COMPLETE = "complete" # Response finished
ERROR = "error" # Error occurred
RECONNECTING = "reconnecting" # SDK reconnection attempt (client-side only)
THINKING = "thinking" # AI reasoning content
THINKING_STEP = "thinking_step" # Individual reasoning step
TOOL_INVOCATION = "tool_invocation" # Agent tool being invoked
TOOL_RESULT = "tool_result" # Result from agent tool
CONNECTION = "connection" # Connection state change
PING = "ping" # Server keep-alive
CLOSE = "close" # Server closing stream
AUTH_ERROR = "auth_error" # Authentication error

StorageTarget

Target storage location for uploads

python
class StorageTarget(str, Enum):
DEFAULT = "default" # Use Scopix's managed storage
CUSTOM = "custom" # Use tenant's custom S3 bucket

MessageRole

Role of a message in a chat conversation

python
class MessageRole(str, Enum):
USER = "user" # Message from user
ASSISTANT = "assistant" # Response from AI
SYSTEM = "system" # System message

DescriptionErrorType

Classification of description errors

python
class DescriptionErrorType(str, Enum):
TIMEOUT = "timeout" # AI provider timed out (retryable)
RATE_LIMIT = "rate_limit" # 429 response (retryable)
VLM_ERROR = "vlm_error" # AI provider error (retryable)
VALIDATION_ERROR = "validation" # Invalid input (permanent)
RESOURCE_LIMIT = "resource_limit" # Quota exceeded (permanent)
UNKNOWN = "unknown" # Unclassified (not retryable)

CloudStorageProvider

Supported cloud storage providers

python
class CloudStorageProvider(str, Enum):
GOOGLE_DRIVE = "google_drive" # Google Drive

CloudStorageJobStatus

Status of a cloud storage import/export job

python
class CloudStorageJobStatus(str, Enum):
PENDING = "pending" # Job created, waiting to start
IN_PROGRESS = "in_progress" # Files are being transferred
COMPLETED = "completed" # All files transferred successfully
PARTIAL = "partial" # Some files succeeded, some failed
FAILED = "failed" # Job failed completely
CANCELLED = "cancelled" # Job was cancelled

CloudStorageJobType

Type of cloud storage job

python
class CloudStorageJobType(str, Enum):
IMPORT = "import" # Importing files from cloud storage
EXPORT = "export" # Exporting files to cloud storage

AgentCapability

Capability declared by an agent in its contract. Unlike the other enums on this page,AgentCapability is not re-exported at the top level — import from scopix.types.contracts.

python
from scopix.types.contracts import AgentCapability
class AgentCapability(str, Enum):
SEARCH = "search" # Find files by query
FILTER = "filter" # Narrow results by criteria
ANALYSIS = "analysis" # Analyze content
COMPARISON = "comparison" # Compare items
EXPORT = "export" # Export/format results
SUMMARIZATION = "summarization" # Summarize content
RECOMMENDATION = "recommendation" # Suggest items
VISUALIZATION = "visualization" # Visual output
ANALYTICS = "analytics" # Compute statistics
CROSS_REFERENCE = "cross_reference" # Link related items
SYNTHESIS = "synthesis" # Combine information
ORGANIZATION = "organization" # Categorize/organize
CONVERSATIONAL = "conversational" # Multi-turn dialogue

Used in AgentContract to declare what an agent does. See Agent Data Flow Types.