add conversion phase & progress metrics, timeout heuristics

This commit is contained in:
2026-03-26 23:30:25 -07:00
parent 26452aa57c
commit baf87ee195
12 changed files with 468 additions and 96 deletions
@@ -17,11 +17,26 @@ class ConversionStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
CONVERSION_STATUS_RUNNING: _ClassVar[ConversionStatus]
CONVERSION_STATUS_SUCCEEDED: _ClassVar[ConversionStatus]
CONVERSION_STATUS_FAILED: _ClassVar[ConversionStatus]
class ConversionPhase(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
__slots__ = ()
CONVERSION_PHASE_UNSPECIFIED: _ClassVar[ConversionPhase]
CONVERSION_PHASE_INACTIVE: _ClassVar[ConversionPhase]
CONVERSION_PHASE_EXTRACTING_NOTES: _ClassVar[ConversionPhase]
CONVERSION_PHASE_PPTX_TO_PDF: _ClassVar[ConversionPhase]
CONVERSION_PHASE_PDF_TO_IMAGES: _ClassVar[ConversionPhase]
CONVERSION_PHASE_UPLOADING_RESULTS: _ClassVar[ConversionPhase]
CONVERSION_STATUS_UNSPECIFIED: ConversionStatus
CONVERSION_STATUS_PENDING: ConversionStatus
CONVERSION_STATUS_RUNNING: ConversionStatus
CONVERSION_STATUS_SUCCEEDED: ConversionStatus
CONVERSION_STATUS_FAILED: ConversionStatus
CONVERSION_PHASE_UNSPECIFIED: ConversionPhase
CONVERSION_PHASE_INACTIVE: ConversionPhase
CONVERSION_PHASE_EXTRACTING_NOTES: ConversionPhase
CONVERSION_PHASE_PPTX_TO_PDF: ConversionPhase
CONVERSION_PHASE_PDF_TO_IMAGES: ConversionPhase
CONVERSION_PHASE_UPLOADING_RESULTS: ConversionPhase
class Slide(_message.Message):
__slots__ = ("index", "notes_plain", "image_url")
@@ -86,16 +101,22 @@ class GetConversionStatusRequest(_message.Message):
def __init__(self, conversion_id: _Optional[str] = ...) -> None: ...
class GetConversionStatusResponse(_message.Message):
__slots__ = ("conversion_id", "status", "error_message", "updated_at")
__slots__ = ("conversion_id", "status", "error_message", "updated_at", "phase", "current_progress", "max_progress")
CONVERSION_ID_FIELD_NUMBER: _ClassVar[int]
STATUS_FIELD_NUMBER: _ClassVar[int]
ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
PHASE_FIELD_NUMBER: _ClassVar[int]
CURRENT_PROGRESS_FIELD_NUMBER: _ClassVar[int]
MAX_PROGRESS_FIELD_NUMBER: _ClassVar[int]
conversion_id: str
status: ConversionStatus
error_message: str
updated_at: _timestamp_pb2.Timestamp
def __init__(self, conversion_id: _Optional[str] = ..., status: _Optional[_Union[ConversionStatus, str]] = ..., error_message: _Optional[str] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
phase: ConversionPhase
current_progress: int
max_progress: int
def __init__(self, conversion_id: _Optional[str] = ..., status: _Optional[_Union[ConversionStatus, str]] = ..., error_message: _Optional[str] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., phase: _Optional[_Union[ConversionPhase, str]] = ..., current_progress: _Optional[int] = ..., max_progress: _Optional[int] = ...) -> None: ...
class GetSlideDeckRequest(_message.Message):
__slots__ = ("conversion_id",)