mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
from datetime import datetime
|
|
from enum import Enum
|
|
|
|
# Simplified imports to avoid dependency chain issues
|
|
# from openhands.integrations.service_types import ProviderType
|
|
# from openhands.sdk.llm import MetricsSnapshot
|
|
# from openhands.storage.data_models.conversation_metadata import ConversationTrigger
|
|
# For now, use Any to avoid import issues
|
|
from typing import Any
|
|
from uuid import uuid4
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from openhands.agent_server.utils import OpenHandsUUID, utc_now
|
|
|
|
ProviderType = Any
|
|
MetricsSnapshot = Any
|
|
ConversationTrigger = Any
|
|
|
|
|
|
class SharedConversation(BaseModel):
|
|
"""Shared conversation info model with all fields from AppConversationInfo."""
|
|
|
|
id: OpenHandsUUID = Field(default_factory=uuid4)
|
|
|
|
created_by_user_id: str | None
|
|
sandbox_id: str
|
|
|
|
selected_repository: str | None = None
|
|
selected_branch: str | None = None
|
|
git_provider: ProviderType | None = None
|
|
title: str | None = None
|
|
pr_number: list[int] = Field(default_factory=list)
|
|
llm_model: str | None = None
|
|
|
|
metrics: MetricsSnapshot | None = None
|
|
|
|
parent_conversation_id: OpenHandsUUID | None = None
|
|
sub_conversation_ids: list[OpenHandsUUID] = Field(default_factory=list)
|
|
|
|
created_at: datetime = Field(default_factory=utc_now)
|
|
updated_at: datetime = Field(default_factory=utc_now)
|
|
|
|
|
|
class SharedConversationSortOrder(Enum):
|
|
CREATED_AT = 'CREATED_AT'
|
|
CREATED_AT_DESC = 'CREATED_AT_DESC'
|
|
UPDATED_AT = 'UPDATED_AT'
|
|
UPDATED_AT_DESC = 'UPDATED_AT_DESC'
|
|
TITLE = 'TITLE'
|
|
TITLE_DESC = 'TITLE_DESC'
|
|
|
|
|
|
class SharedConversationPage(BaseModel):
|
|
items: list[SharedConversation]
|
|
next_page_id: str | None = None
|