use crate::reducer::state::{MaterializedPromptInput, PromptInputKind};
use serde::{Deserialize, Serialize};
use crate::reducer::event::{ErrorEvent, PipelinePhase};
#[derive(Clone, Serialize, Deserialize, Debug)]
pub enum PromptInputEvent {
OversizeDetected {
phase: PipelinePhase,
kind: PromptInputKind,
content_id_sha256: String,
size_bytes: u64,
limit_bytes: u64,
policy: String,
},
PlanningInputsMaterialized {
iteration: u32,
prompt: MaterializedPromptInput,
},
DevelopmentInputsMaterialized {
iteration: u32,
prompt: MaterializedPromptInput,
plan: MaterializedPromptInput,
},
ReviewInputsMaterialized {
pass: u32,
plan: MaterializedPromptInput,
diff: MaterializedPromptInput,
},
CommitInputsMaterialized {
attempt: u32,
diff: MaterializedPromptInput,
},
XsdRetryLastOutputMaterialized {
phase: PipelinePhase,
scope_id: u32,
last_output: MaterializedPromptInput,
},
HandlerError {
phase: PipelinePhase,
error: ErrorEvent,
},
PromptPermissionsLocked {
warning: Option<String>,
},
PromptPermissionsRestoreWarning {
warning: String,
},
TemplateRendered {
phase: PipelinePhase,
template_name: String,
log: crate::prompts::SubstitutionLog,
},
PromptCaptured {
key: String,
content: String,
content_id: Option<String>,
},
}