iLOVE2D's picture
Upload 2846 files
5374a2d verified
from enum import Enum
from typing import Optional, Any, Dict
from pydantic import BaseModel, Field
import uuid
class HITLDecision(str, Enum):
APPROVE = "approve"
REJECT = "reject"
MODIFY = "modify"
CONTINUE = "continue"
class HITLInteractionType(str, Enum):
APPROVE_REJECT = "approve_reject"
COLLECT_USER_INPUT = "collect_user_input"
REVIEW_EDIT_STATE = "review_edit_state"
REVIEW_TOOL_CALLS = "review_tool_calls"
MULTI_TURN_CONVERSATION = "multi_turn_conversation"
class HITLMode(str, Enum):
PRE_EXECUTION = "pre_execution" # pre-execution intercept
POST_EXECUTION = "post_execution" # post-execution intercept
class HITLContext(BaseModel):
"""HITL context information - simplified version"""
task_name: str
agent_name: str
action_name: str
workflow_goal: Optional[str] = None
# execution data
action_inputs: Dict[str, Any] = Field(default_factory=dict)
execution_result: Optional[Any] = None
# display context
display_context: Dict[str, Any] = Field(default_factory=dict)
class HITLRequest(BaseModel):
"""HITL Request"""
request_id: str = Field(default_factory=lambda: str(uuid.uuid4()))
interaction_type: HITLInteractionType
mode: HITLMode
context: HITLContext
prompt_message: str
class HITLResponse(BaseModel):
"""HITL Response"""
request_id: str
decision: HITLDecision
modified_content: Optional[Any] = None
feedback: Optional[str] = None