pub struct Turn {
pub role: Role,
pub timestamp: Timestamp,
pub model: Option<String>,
pub effort: Option<String>,
pub content: Content,
pub usage: Option<Usage>,
pub is_sidechain: bool,
pub is_meta: bool,
}Expand description
A conversation turn, with the role lifted out of the JSONL’s type tag.
Fields§
§role: Role§timestamp: Timestamp§model: Option<String>§effort: Option<String>How hard the model was asked to think, where the harness records it: a refinement of the model, not a separate fact about the turn.
content: Content§usage: Option<Usage>What the turn cost, for the assistant turns that report it. A user turn has none, and transcripts written before the harness recorded usage carry none either.
is_sidechain: boolTrue for turns belonging to a subagent running inside this session.
is_meta: boolTrue for turns the harness injected rather than the user typing them.
Implementations§
Source§impl Turn
impl Turn
Sourcepub fn is_tool_response(&self) -> bool
pub fn is_tool_response(&self) -> bool
True when a user-role turn carries only tool results: the harness
returning tool output, not the user typing. These read as a
continuation of the assistant’s turn, not a message of their own.
Sourcepub fn is_clear_command(&self) -> bool
pub fn is_clear_command(&self) -> bool
True when this turn is the /clear slash command, which resets the
context: a session boundary the harness records as a user turn, with
no conversation of its own worth showing.