---
url: >-
  https://adk.nht.io/api/@nhtio/adk/turn_runner/type-aliases/TurnObservabilityEvents.md
description: >-
  Observability events emitted by {@link @nhtio/adk!TurnRunner} for
  instrumentation.
---

# Type Alias: TurnObservabilityEvents

```ts
type TurnObservabilityEvents = EventMap<{
  dispatchEnd: [DispatchEndEvent];
  dispatchStart: [DispatchStartEvent];
  error: [BaseException];
  iterationEnd: [IterationEndEvent];
  iterationStart: [IterationStartEvent];
  log: [LogEvent];
  toolExecutionEnd: [ToolExecutionEndEvent];
  toolExecutionStart: [ToolExecutionStartEvent];
  turnEnd: [TurnEndEvent];
  turnGateClosed: [TurnGateClosedEvent];
  turnGateOpen: [TurnGate];
  turnStart: [TurnStartEvent];
}>;
```

Defined in: [lib/types/turn\_runner.ts:299](https://github.com/NHTIO/ADK/blob/v1.20260605.0/src/lib/types/turn_runner.ts#L299)

Observability events emitted by [@nhtio/adk!TurnRunner](../classes/TurnRunner.md) for instrumentation.

## Remarks

These events are for monitoring and instrumentation only and are registered via
`observe` / `unobserve` / `observeOnce`. They do not affect pipeline execution.

* `turnStart` — emitted immediately before the input pipeline runs.
* `turnEnd` — emitted after the pipeline completes (or is aborted/errored).
* `turnGateOpen` — emitted when middleware calls `ctx.waitFor()`, opening a gate.
* `turnGateClosed` — emitted when a gate settles (resolved, rejected, aborted, or timed out).
* `toolExecutionStart` — emitted before a tool handler is called (after arg validation).
* `toolExecutionEnd` — emitted after a tool handler returns or throws.
* `error` — emitted when a non-fatal error occurs inside the input or output pipeline.
* `log` — emitted when the LLM executor (or anything wired through `helpers.log`) writes a
  structured observability record. Carries `dispatchId`, `iteration`, `emittedAt`, `level`,
  `kind`, `message`, and an optional `payload`.
