pub struct ConsultationInput {Show 16 fields
pub plan: String,
pub advisor: String,
pub status: ConsultationStatus,
pub question: Option<String>,
pub evidence: Vec<ReasoningEvidence>,
pub conclusion: Option<String>,
pub stance: Option<Stance>,
pub assumptions: Vec<String>,
pub risks: Vec<String>,
pub actions: Vec<String>,
pub falsifiers: Vec<String>,
pub confidence: Option<ReasoningConfidence>,
pub duration_ms: Option<u64>,
pub usage: Option<AdvisorUsage>,
pub diagnostic: Option<String>,
pub retry_after_seconds: Option<u64>,
}Expand description
One normalised advisor exchange: what was asked, how it ended, and what came back.
The store admits it only when the plan it names selected this advisor. A completed consultation carries a conclusion and a stance; a failed one carries neither, only its status and the adapter’s diagnostic. The full prompt and answer are never kept.
use majordomus_cli::reasoning::record::{ConsultationInput, ConsultationStatus};
let c: ConsultationInput = serde_json::from_value(serde_json::json!({
"plan": "plan-1",
"advisor": "alpha",
"status": "timeout",
"diagnostic": "timeout: no answer in 60s",
}))
.unwrap();
assert_eq!(c.status, ConsultationStatus::Timeout);
assert!(c.conclusion.is_none() && c.stance.is_none());Fields§
§plan: StringThe recorded plan that selected this advisor.
advisor: StringThe advisor asked.
status: ConsultationStatusHow it ended.
question: Option<String>The question asked, in one line (the full prompt is not kept).
evidence: Vec<ReasoningEvidence>The evidence the question carried.
conclusion: Option<String>The advisor’s conclusion, summarised. Required when completed, refused otherwise.
stance: Option<Stance>Where it stands relative to the hypothesis.
assumptions: Vec<String>Assumptions it identified.
risks: Vec<String>Risks it identified.
actions: Vec<String>Actions it recommended.
falsifiers: Vec<String>What would falsify its conclusion.
confidence: Option<ReasoningConfidence>Its stated confidence.
duration_ms: Option<u64>How long it took, milliseconds.
usage: Option<AdvisorUsage>What the transport reported it cost.
diagnostic: Option<String>The adapter’s diagnostic for a failure: a class and a sentence, never a payload.
retry_after_seconds: Option<u64>A rate limit’s retry-after, seconds.
Trait Implementations§
Source§impl Clone for ConsultationInput
impl Clone for ConsultationInput
Source§fn clone(&self) -> ConsultationInput
fn clone(&self) -> ConsultationInput
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConsultationInput
impl Debug for ConsultationInput
Source§impl<'de> Deserialize<'de> for ConsultationInput
impl<'de> Deserialize<'de> for ConsultationInput
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for ConsultationInput
impl JsonSchema for ConsultationInput
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more