Skip to main content

AgentResponse

Struct AgentResponse 

Source
pub struct AgentResponse {
    pub answer: String,
    pub questions: Vec<QuestionItem>,
    pub review_comment_outcomes: Vec<ReviewCommentOutcome>,
    pub subtasks: Vec<SubtaskItem>,
    pub summary: Option<AgentResponseSummary>,
    pub verification_verdicts: Vec<VerificationVerdictItem>,
}
Expand description

Wire-format protocol payload used for schema-driven provider output.

Providers that support output schemas (for example, Codex app-server) are asked to emit this object as the entire assistant response payload.

Fields§

§answer: String

Markdown answer text emitted for this turn.

§questions: Vec<QuestionItem>

Ordered clarification questions emitted for this turn.

The canonical JSON Schema description for this field is produced by [questions_field_description] and injected at schema generation time by inject_dynamic_schema_guidance. The static schemars metadata here only sets the field title; the description is intentionally omitted so the helper is the single source of truth.

§review_comment_outcomes: Vec<ReviewCommentOutcome>

Per-thread outcomes for an agent-driven forge comment-resolution turn.

Ordinary session and utility turns leave this empty. Resolution workflows accept only identifiers explicitly allowlisted in the turn prompt before applying any forge-side effect.

§subtasks: Vec<SubtaskItem>

Proposed child-session subtasks for an orchestrator planning turn.

The canonical JSON Schema description is produced by [subtasks_field_description] and injected at schema generation time, so the static schemars metadata here only sets the field title. Ordinary session and utility turns leave this empty, and orchestration consumers ignore it unless the turn prompt asked for a plan.

§summary: Option<AgentResponseSummary>

Structured summary for session-discussion turns, or None for legacy payloads and one-shot prompts.

§verification_verdicts: Vec<VerificationVerdictItem>

Per-task decisions emitted for an orchestration verification turn.

Ordinary turns leave this empty. The controller must copy task keys from the coordinator envelope so only explicit passes can proceed to integration.

Implementations§

Source§

impl AgentResponse

Source

pub fn plain(text: impl Into<String>) -> Self

Creates a plain response from raw text as one answer string.

Source

pub fn to_display_text(&self) -> String

Returns display text by joining non-empty answer and question text with blank lines.

Source

pub fn to_answer_display_text(&self) -> String

Returns transcript text for session output by joining non-empty answer content with blank lines.

Source

pub fn answers(&self) -> Vec<String>

Returns the answer as one single-item vector when it is non-empty.

Source

pub fn question_items(&self) -> Vec<QuestionItem>

Returns up to [MAX_QUESTIONS] clarification questions in response order.

Source

pub fn subtask_items(&self) -> Vec<SubtaskItem>

Returns up to [MAX_SUBTASKS] proposed subtasks in response order.

Callers must still reject plans whose keys collide; this only bounds how much of a runaway plan is considered.

Source

pub fn verification_verdict_items(&self) -> Vec<VerificationVerdictItem>

Returns up to [MAX_SUBTASKS] verification decisions in response order.

Trait Implementations§

Source§

impl Clone for AgentResponse

Source§

fn clone(&self) -> AgentResponse

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentResponse

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for AgentResponse

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for AgentResponse

Source§

impl JsonSchema for AgentResponse

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for AgentResponse

Source§

fn eq(&self, other: &AgentResponse) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for AgentResponse

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for AgentResponse

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.