Skip to content
Prompty

TurnModelRequest

Request passed by the reference turn runner to the injected model callback.

The runner owns deterministic orchestration semantics; model/provider-specific execution stays behind this callback boundary.

---
title: TurnModelRequest
config:
  look: handDrawn
  theme: colorful
  class:
    hideEmptyMembersBox: true
---
classDiagram
    class TurnModelRequest {
        +string sessionId
        +string turnId
        +int32 iteration
        +dictionary inputs
        +TurnOptions options
        +HostToolResult[] toolResults
    }
    class TurnOptions {
        +int32 maxIterations
        +int32 maxLlmRetries
        +int32 contextBudget
        +boolean parallelToolCalls
        +boolean raw
        +int32 turn
        +CompactionConfig compaction
    }
    TurnModelRequest *-- TurnOptions
    class HostToolResult {
        +string requestId
        +string toolCallId
        +string toolName
        +boolean success
        +unknown result
        +int32 exitCode
        +float64 durationMs
        +string errorKind
        +dictionary telemetry
    }
    TurnModelRequest *-- HostToolResult
sessionId: sess_abc123
turnId: turn_abc123
iteration: 0
Name Type Description
sessionId string Stable harness session identifier
turnId string Stable turn identifier within the session
iteration int32 Zero-based model loop iteration
inputs dictionary Inputs supplied to the deterministic single-turn run. Values may be explicit null.
options TurnOptions Canonical turn execution options
toolResults HostToolResult[] Host tool results produced by the previous iteration

The following types are composed within TurnModelRequest: