marvin.engine.events

Classes

ActorEndTurnEvent

class ActorEndTurnEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor)

Event for agent turn end.

ActorMessageDeltaEvent

class ActorMessageDeltaEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor, delta: TextPartDelta, snapshot: TextPart)

Event for delta updates to agent messages during streaming.

ActorMessageEvent

class ActorMessageEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor, message: TextPart)

Event for complete text messages from an agent.

ActorStartTurnEvent

class ActorStartTurnEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor)

Event for agent turn start.

EndTurnToolCallEvent

class EndTurnToolCallEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor, event: FinalResultEvent, tool_call_id: str, tool: EndTurn)

Event that fires as soon as we know that an end turn tool call has been made.

EndTurnToolResultEvent

class EndTurnToolResultEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor, result: FinalResult, tool_call_id: str, tool: EndTurn)

Event for the final result from an end turn tool.

Event

class Event(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)())

Base class for all events in the system.

OrchestratorEndEvent

class OrchestratorEndEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)())

Event for orchestrator end.

OrchestratorErrorEvent

class OrchestratorErrorEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), error: str)

Event for orchestrator exceptions.

OrchestratorStartEvent

class OrchestratorStartEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)())

Event for orchestrator start.

ToolCallDeltaEvent

class ToolCallDeltaEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor, delta: ToolCallPartDelta, snapshot: ToolCallPart, tool_call_id: str, tool: Callable[..., Any] | None)

Event for delta updates to tool calls during streaming.

Methods:

  • args_dict
    def args_dict(self) -> dict[str, Any]
    
    Return the args as a dictionary.

ToolCallEvent

class ToolCallEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), actor: Actor, message: ToolCallPart, tool_call_id: str, tool: Callable[..., Any] | None)

Event for complete tool calls ready to be executed.

Methods:

  • args_dict
    def args_dict(self) -> dict[str, Any]
    
    Return the args as a dictionary.

ToolResultEvent

class ToolResultEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), message: ToolReturnPart)

Event for tool return values.

ToolRetryEvent

class ToolRetryEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), message: RetryPromptPart)

Event for tool retry requests.

UserMessageEvent

class UserMessageEvent(type: EventType, id: uuid.UUID = lambda: uuid.uuid4()(), timestamp: datetime.datetime = lambda: datetime.datetime.now(datetime.timezone.utc)(), message: UserPromptPart)

Event for user messages.

Functions

get_text_from_parts

def get_text_from_parts(parts: list[ModelResponsePart]) -> str

Extract text content from a list of ModelResponseParts.


Parent Module: engine