Skip to main content

Panel

Struct Panel 

Source
pub struct Panel {
    pub turn_number: usize,
    pub role: Role,
    pub timestamp: Timestamp,
    pub model: Option<String>,
    pub effort: Option<String>,
    pub blocks: Vec<Block>,
    pub usage: Option<Usage>,
    pub is_sidechain: bool,
    pub is_meta: bool,
}
Expand description

One speaker’s contribution as displayed. Folding the wire-level turns into panels is where harness scaffolding is filtered and tool results are reunited with the assistant that called them, so the renderer walks an already-clean stream and never re-derives any of it.

Fields§

§turn_number: usize

The 1-based position of this panel’s leading turn in the raw stream. Gaps between successive panels mark turns that were folded in or dropped, so a panel that spans several turns still has one stable label.

§role: Role§timestamp: Timestamp§model: Option<String>§effort: Option<String>

How hard the model was asked to think, where the harness records it.

§blocks: Vec<Block>§usage: Option<Usage>

What the panel’s leading turn cost. The tool-result turns folded in carry none of their own: the assistant turn that called the tool is where the harness records what the exchange cost.

§is_sidechain: bool

True for panels belonging to a subagent running inside this session.

§is_meta: bool

True for panels the harness injected rather than the user typing them.

Implementations§

Source§

impl Panel

Source

pub fn kind(&self) -> PanelKind

The panel’s content kind, preferring the most user-facing thing it carries: visible prose reads as the speaker, otherwise a tool exchange, otherwise bare reasoning.

Trait Implementations§

Source§

impl Debug for Panel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Panel

§

impl RefUnwindSafe for Panel

§

impl Send for Panel

§

impl Sync for Panel

§

impl Unpin for Panel

§

impl UnsafeUnpin for Panel

§

impl UnwindSafe for Panel

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.