reasonkit-core 0.1.8

The Reasoning Engine — Auditable Reasoning for Production AI | Rust-Native | Turn Prompts into Protocols
    /// Create M2 Interleaved Thinking Protocol
    fn create_interleaved_protocol(module_id: String) -> InterleavedProtocol {
        use super::interleaved_thinking::{
            ThinkingPattern, PatternType, PatternStep, PatternStepType, ValidationCriterion,
            CheckType, OptimizationParameters, ProtocolOptimization
        };

        InterleavedProtocol {
            protocol_id: format!("{}_protocol", module_id),
            name: "Enhanced ProofGuard Protocol".to_string(),
            version: "2.0.0-minimax".to_string(),
            description: "M2-enhanced multi-source verification with triangulation".to_string(),
            patterns: vec![ThinkingPattern {
                pattern_id: "proofguard_verification_pattern".to_string(),
                name: "ProofGuard Verification Process".to_string(),
                description: "Multi-source verification with cross-validation and triangulation".to_string(),
                pattern_type: PatternType::Parallel,
                steps: vec![
                    PatternStep {
                        step_id: "source_identification".to_string(),
                        step_type: PatternStepType::InputProcessing,
                        description: "Identify potential verification sources".to_string(),
                        prerequisites: vec![],
                        outputs: vec![],
                        validation_criteria: vec![
                            ValidationCriterion {
                                criterion_id: "min_sources".to_string(),
                                check_type: CheckType::MinimumLength,
                                threshold: 3.0,
                                description: "Must identify at least 3 sources".to_string(),
                            }
                        ],
                    },
                    PatternStep {
                        step_id: "source_assessment".to_string(),
                        step_type: PatternStepType::Analysis,
                        description: "Assess credibility and reliability of each source".to_string(),
                        prerequisites: vec!["source_identification".to_string()],
                        outputs: vec![],
                        validation_criteria: vec![
                            ValidationCriterion {
                                criterion_id: "reliability_scoring".to_string(),
                                check_type: CheckType::ConfidenceThreshold,
                                threshold: 0.7,
                                description: "Sources must be properly assessed for reliability".to_string(),
                            }
                        ],
                    },
                    PatternStep {
                        step_id: "claim_extraction".to_string(),
                        step_type: PatternStepType::Reasoning,
                        description: "Extract specific claims from each source".to_string(),
                        prerequisites: vec!["source_assessment".to_string()],
                        outputs: vec![],
                        validation_criteria: vec![
                            ValidationCriterion {
                                criterion_id: "claim_clarity".to_string(),
                                check_type: CheckType::Completeness,
                                threshold: 0.8,
                                description: "Claims must be clearly extracted from sources".to_string(),
                            }
                        ],
                    },
                    PatternStep {
                        step_id: "cross_validation".to_string(),
                        step_type: PatternStepType::Validation,
                        description: "Cross-validate claims across different sources".to_string(),
                        prerequisites: vec!["claim_extraction".to_string()],
                        outputs: vec![],
                        validation_criteria: vec![
                            ValidationCriterion {
                                criterion_id: "validation_rigor".to_string(),
                                check_type: CheckType::LogicalConsistency,
                                threshold: 0.85,
                                description: "Cross-validation must be thorough and rigorous".to_string(),
                            }
                        ],
                    },
                    PatternStep {
                        step_id: "triangulation".to_string(),
                        step_type: PatternStepType::Synthesis,
                        description: "Apply triangulation to determine final verdict".to_string(),
                        prerequisites: vec!["cross_validation".to_string()],
                        outputs: vec![],
                        validation_criteria: vec![
                            ValidationCriterion {
                                criterion_id: "triangulation_accuracy".to_string(),
                                check_type: CheckType::ConfidenceThreshold,
                                threshold: 0.85,
                                description: "Triangulation must produce high-confidence verdict".to_string(),
                            }
                        ],
                    },
                ],
                validation_rules: vec![],
                optimization_params: OptimizationParameters {
                    max_iterations: Some(2),
                    confidence_threshold: 0.85,
                    time_limit_ms: Some(5000),
                    token_limit: Some(2200),
                    parallelization_level: 3,
                },
            }],
            default_pattern: "proofguard_verification_pattern".to_string(),
            optimization_config: ProtocolOptimization {
                auto_validation: true,
                cross_validation_enabled: true,
                parallel_processing: true,
                adaptive_patterns: false,
                performance_target: 0.92,
                cost_optimization: true,
            },
        }
    }