use crate::cm_types::Message;
#[derive(Debug, Clone)]
pub struct LlmRetryDecisionPoint {
pub phase: String,
pub decision_id: String,
pub outcome: String,
pub rationale: String,
pub detail: serde_json::Value,
pub anchor_kind: String,
pub anchor: Option<serde_json::Value>,
}
pub trait LlmRetryHooks: Send + Sync {
fn append_turn_replay_json(&self, event: &str, model: &str, payload: Option<serde_json::Value>);
fn append_decision_point(&self, decision: &LlmRetryDecisionPoint);
fn assistant_preview_for_log(&self, msg: &Message) -> String;
fn tool_arguments_preview_for_sse(&self, args: &str) -> String;
fn assistant_content_for_log(&self, msg: &Message) -> String;
fn reasoning_content_for_log(&self, msg: &Message) -> String;
}