//! Unified pipeline configuration and entry-point presets.
//!
//! Replaces the ad-hoc divergence across the four entry points (`handlers.rs`,
//! `streaming.rs`, `channel_message.rs`, `scheduled_tasks.rs`) with a single
//! [`PipelineConfig`] that declaratively specifies which pipeline stages are
//! active. This makes it **impossible** to forget a stage because every path
//! constructs its config from one of the four preset constructors.
//!
//! ## Pipeline stages (in execution order)
//!
//! 1. **Injection defense** — block/sanitize via `roboticus_agent::injection`
//! 2. **Dedup tracking** — in-flight request deduplication via `DedupTracker`
//! 3. **Session resolution** — find or create the session for this turn
//! 4. **Decomposition gate** — evaluate whether to delegate subtasks
//! 5. **Delegated execution** — run `orchestrate-subagents` before inference
//! 6. **Specialist controls** — handle specialist creation control flows
//! 7. **Shortcut dispatch** — try execution shortcuts before LLM inference
//! 8. **Cache check** — look up semantic cache before LLM call
//! 9. **Inference** — Standard (ReAct tool loop) or Streaming (SSE)
//! 10. **Guard chain** — post-inference truth/integrity guards
//! 11. **Post-turn ingest** — background memory ingestion
//! 12. **Nickname refinement** — background LLM-driven session naming
//!
//! ## Security fixes integrated
//!
//! - **Cron injection defense**: `PipelineConfig::cron()` sets
//!   `injection_defense: true` — was completely absent from
//!   `scheduled_tasks.rs`.
//! - **Cache guard parity**: `cache_guard_set` uses `Cached` preset which
//!   includes `SubagentClaim` and `LiteraryQuoteRetry` (were missing).
//!
//! ## Feature matrix (authoritative)
//!
//! | Feature               | API | Stream | Channel | Cron  |
//! |-----------------------|-----|--------|---------|-------|
//! | injection_defense     |  ✓  |   ✓    |    ✓    |  ✓*   |
//! | dedup_tracking        |  ✓  |   ✓    |    ✓    |  ✗    |
//! | decomposition_gate    |  ✓  |   ✓    |    ✓    |  ✓    |
//! | delegated_execution   |  ✓  |   ✓    |    ✓    |  ✗    |
//! | shortcuts_enabled     |  ✓  |   ✓    |    ✓    |  ✗    |
//! | specialist_controls   |  ✗  |   ✗    |    ✓    |  ✗    |
//! | inference: Standard   |  ✓  |   ✗    |    ✓    |  ✓    |
//! | inference: Streaming  |  ✗  |   ✓    |    ✗    |  ✗    |
//! | guard_set: Full       |  ✓  |   ✗    |    ✓    |  ✓    |
//! | guard_set: Streaming  |  ✗  |   ✓    |    ✗    |  ✗    |
//! | cache_guard: Cached   |  ✓  |   ✗    |    ✓    |  ✓    |
//! | cache_enabled         |  ✓  |   ✓    |    ✓    |  ✓    |
//! | authority: ApiClaim   |  ✓  |   ✓    |    ✗    |  ✗    |
//! | authority: Channel    |  ✗  |   ✗    |    ✓    |  ✗    |
//! | authority: SelfGen    |  ✗  |   ✗    |    ✗    |  ✓    |
//! | post_turn_ingest      |  ✓  |   ✓    |    ✓    |  ✓    |
//! | nickname_refinement   |  ✓  |   ✗    |    ✗    |  ✗    |
//! | inject_diagnostics    |  ✓  |   ✓    |    ✗    |  ✗    |
//! | short_followup_expan  |  ✓  |   ✓    |    ✓    |  ✗    |
//! | skill_first_enabled   |  ✗  |   ✗    |    ✓    |  ✗    |
//! | task_operating_state  |  ✓  |   ✓    |    ✓    |  ✓    |
//!
//! `*` = security fix — was missing, now enabled.

mod config;
pub(super) mod delegation;
mod heuristics;
pub(super) mod quality_gate;
mod run;
mod task_state;
pub(super) mod trace_helpers;
mod types;

// Re-export everything connectors need (preserves `use super::pipeline::X` paths)
pub(super) use config::*;
pub(super) use run::*;
pub(super) use types::*;

#[cfg(test)]
pub(super) use task_state::build_task_state_input_for_test;
