feat(trigger): refactor trigger debug event handling and improve response structures

- Renamed and refactored trigger debug event classes to enhance clarity and consistency, including changes from `TriggerDebugEventData` to `TriggerEventData` and related response classes.
- Updated `DraftWorkflowTriggerNodeApi` and `DraftWorkflowTriggerRunApi` to utilize the new event structures, improving the handling of trigger events.
- Removed the `TriggerDebugEventGenerator` class, consolidating event generation directly within the API logic for streamlined processing.
- Enhanced error handling and response formatting for trigger events, ensuring structured outputs for better integration and debugging.

This refactor improves the overall architecture of trigger debugging, making it more intuitive and maintainable.
This commit is contained in:
Harry
2025-09-11 16:55:38 +08:00
parent c3ebb22a4b
commit 57c0bc9fb6
9 changed files with 102 additions and 176 deletions

View File

@ -51,12 +51,10 @@ class QueueEvent(StrEnum):
PING = "ping"
STOP = "stop"
RETRY = "retry"
# Trigger debug events
TRIGGER_DEBUG_LISTENING_STARTED = "trigger_debug_listening_started"
TRIGGER_DEBUG_RECEIVED = "trigger_debug_received"
TRIGGER_DEBUG_NODE_FINISHED = "trigger_debug_node_finished"
TRIGGER_DEBUG_WORKFLOW_STARTED = "trigger_debug_workflow_started"
TRIGGER_DEBUG_TIMEOUT = "trigger_debug_timeout"
TRIGGER_LISTENING_STARTED = "trigger_listening_started"
TRIGGER_TRIGGERED = "trigger_triggered"
TRIGGER_NODE_FINISHED = "trigger_node_finished"
TRIGGER_LISTENING_TIMEOUT = "trigger_listening_timeout"
class AppQueueEvent(BaseModel):
@ -724,35 +722,35 @@ class QueueParallelBranchRunSucceededEvent(AppQueueEvent):
"""loop id if node is in loop"""
class QueueTriggerDebugListeningStartedEvent(AppQueueEvent):
class QueueTriggerListeningStartedEvent(AppQueueEvent):
"""
QueueTriggerDebugListeningStartedEvent entity
QueueTriggerListeningStartedEvent entity
"""
event: QueueEvent = QueueEvent.TRIGGER_DEBUG_LISTENING_STARTED
event: QueueEvent = QueueEvent.TRIGGER_LISTENING_STARTED
session_id: str
webhook_url: str
timeout: int
class QueueTriggerDebugReceivedEvent(AppQueueEvent):
class QueueTriggerTriggeredEvent(AppQueueEvent):
"""
QueueTriggerDebugReceivedEvent entity
QueueTriggerTriggeredEvent entity
"""
event: QueueEvent = QueueEvent.TRIGGER_DEBUG_RECEIVED
event: QueueEvent = QueueEvent.TRIGGER_TRIGGERED
subscription_id: str
triggers: list[str]
request_id: str
timestamp: float
class QueueTriggerDebugNodeFinishedEvent(AppQueueEvent):
class QueueTriggerNodeFinishedEvent(AppQueueEvent):
"""
QueueTriggerDebugNodeFinishedEvent entity
QueueTriggerNodeFinishedEvent entity
"""
event: QueueEvent = QueueEvent.TRIGGER_DEBUG_NODE_FINISHED
event: QueueEvent = QueueEvent.TRIGGER_NODE_FINISHED
id: str
node_id: str
node_type: str
@ -763,23 +761,12 @@ class QueueTriggerDebugNodeFinishedEvent(AppQueueEvent):
execution_metadata: Optional[Mapping[str, Any]] = None
class QueueTriggerDebugWorkflowStartedEvent(AppQueueEvent):
class QueueTriggerListeningTimeoutEvent(AppQueueEvent):
"""
QueueTriggerDebugWorkflowStartedEvent entity
QueueTriggerListeningTimeoutEvent entity
"""
event: QueueEvent = QueueEvent.TRIGGER_DEBUG_WORKFLOW_STARTED
subscription_id: str
triggers: list[str]
request_id: str
class QueueTriggerDebugTimeoutEvent(AppQueueEvent):
"""
QueueTriggerDebugTimeoutEvent entity
"""
event: QueueEvent = QueueEvent.TRIGGER_DEBUG_TIMEOUT
event: QueueEvent = QueueEvent.TRIGGER_LISTENING_TIMEOUT
error: str = "Timeout waiting for trigger"

View File

@ -83,11 +83,10 @@ class StreamEvent(Enum):
TEXT_REPLACE = "text_replace"
AGENT_LOG = "agent_log"
# Trigger debug events
TRIGGER_DEBUG_LISTENING_STARTED = "trigger_debug_listening_started"
TRIGGER_DEBUG_RECEIVED = "trigger_debug_received"
TRIGGER_DEBUG_NODE_FINISHED = "trigger_debug_node_finished"
TRIGGER_DEBUG_WORKFLOW_STARTED = "trigger_debug_workflow_started"
TRIGGER_DEBUG_TIMEOUT = "trigger_debug_timeout"
TRIGGER_LISTENING_STARTED = "trigger_listening_started"
TRIGGER_LISTENING_TIMEOUT = "trigger_listening_timeout"
TRIGGER_TRIGGERED = "trigger_triggered"
TRIGGER_NODE_FINISHED = "trigger_node_finished"
class StreamResponse(BaseModel):
@ -846,35 +845,35 @@ class AgentLogStreamResponse(StreamResponse):
# Trigger Debug Stream Responses
class TriggerDebugListeningStartedResponse(StreamResponse):
class TriggerListeningStartedResponse(StreamResponse):
"""
TriggerDebugListeningStartedResponse entity
TriggerListeningStartedResponse entity
"""
event: StreamEvent = StreamEvent.TRIGGER_DEBUG_LISTENING_STARTED
event: StreamEvent = StreamEvent.TRIGGER_LISTENING_STARTED
session_id: str
webhook_url: str
timeout: int
class TriggerDebugReceivedResponse(StreamResponse):
class TriggerTriggeredResponse(StreamResponse):
"""
TriggerDebugReceivedResponse entity
TriggerTriggeredResponse entity
"""
event: StreamEvent = StreamEvent.TRIGGER_DEBUG_RECEIVED
event: StreamEvent = StreamEvent.TRIGGER_TRIGGERED
subscription_id: str
triggers: list[str]
request_id: str
timestamp: float
class TriggerDebugNodeFinishedResponse(StreamResponse):
class TriggerNodeFinishedResponse(StreamResponse):
"""
TriggerDebugNodeFinishedResponse entity
TriggerNodeFinishedResponse entity
"""
event: StreamEvent = StreamEvent.TRIGGER_DEBUG_NODE_FINISHED
event: StreamEvent = StreamEvent.TRIGGER_NODE_FINISHED
id: str
node_id: str
node_type: str
@ -885,21 +884,10 @@ class TriggerDebugNodeFinishedResponse(StreamResponse):
execution_metadata: Optional[Mapping[str, Any]] = None
class TriggerDebugWorkflowStartedResponse(StreamResponse):
class TriggerListeningTimeoutResponse(StreamResponse):
"""
TriggerDebugWorkflowStartedResponse entity
TriggerListeningTimeoutResponse entity
"""
event: StreamEvent = StreamEvent.TRIGGER_DEBUG_WORKFLOW_STARTED
subscription_id: str
triggers: list[str]
request_id: str
class TriggerDebugTimeoutResponse(StreamResponse):
"""
TriggerDebugTimeoutResponse entity
"""
event: StreamEvent = StreamEvent.TRIGGER_DEBUG_TIMEOUT
event: StreamEvent = StreamEvent.TRIGGER_LISTENING_TIMEOUT
error: str = "Timeout waiting for trigger"