> ## Documentation Index
> Fetch the complete documentation index at: https://askmarvin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# events

# `marvin.engine.events`

## Classes

### `ActorEndTurnEvent`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`**
  ```python theme={null}
  def args_dict(self) -> dict[str, Any]
  ```
  Return the args as a dictionary.

### `ToolCallEvent`

```python theme={null}
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`**
  ```python theme={null}
  def args_dict(self) -> dict[str, Any]
  ```
  Return the args as a dictionary.

### `ToolResultEvent`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
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`

```python theme={null}
def get_text_from_parts(parts: list[ModelResponsePart]) -> str
```

Extract text content from a list of ModelResponseParts.

***

**Parent Module:** [`engine`](marvin-engine)
