reasonkit/thinktool/
mod.rs

1//! # ThinkTool Protocol Engine
2//!
3//! Structured reasoning protocols that transform ad-hoc LLM prompting
4//! into auditable, reproducible reasoning chains.
5//!
6//! ## Core Concept
7//!
8//! A ThinkTool is a structured reasoning protocol that:
9//! 1. Defines a reasoning strategy (expansive, deductive, adversarial, etc.)
10//! 2. Structures the thought process into auditable steps
11//! 3. Produces verifiable output with confidence scores
12//! 4. Maintains provenance of the reasoning chain
13//!
14//! ## Available ThinkTools (OSS)
15//!
16//! | Tool | Code | Purpose |
17//! |------|------|---------|
18//! | GigaThink | `gt` | Expansive creative thinking (10+ perspectives) |
19//! | LaserLogic | `ll` | Precision deductive reasoning, fallacy detection |
20//! | BedRock | `br` | First principles decomposition |
21//! | ProofGuard | `pg` | Multi-source verification |
22//! | BrutalHonesty | `bh` | Adversarial self-critique |
23//!
24//! ## Supported LLM Providers (18+)
25//!
26//! | Tier | Providers |
27//! |------|-----------|
28//! | Major Cloud | Anthropic, OpenAI, Google Gemini, Vertex AI, Azure OpenAI, AWS Bedrock |
29//! | Specialized | xAI (Grok), Groq, Mistral, DeepSeek, Cohere, Perplexity, Cerebras |
30//! | Inference | Together AI, Fireworks AI, Alibaba Qwen |
31//! | Aggregation | OpenRouter (300+ models), Cloudflare AI Gateway |
32//!
33//! ## Quick Start - LLM Clients
34//!
35//! ```rust,ignore
36//! use reasonkit::thinktool::{UnifiedLlmClient, LlmRequest};
37//!
38//! // Use default provider (Anthropic Claude)
39//! let client = UnifiedLlmClient::default_anthropic()?;
40//!
41//! // Use Groq for ultra-fast inference
42//! let groq = UnifiedLlmClient::groq("llama-3.3-70b-versatile")?;
43//!
44//! // Use xAI Grok
45//! let grok = UnifiedLlmClient::grok("grok-2")?;
46//!
47//! // Use OpenRouter for 300+ models
48//! let openrouter = UnifiedLlmClient::openrouter("anthropic/claude-sonnet-4")?;
49//!
50//! // Make a request
51//! let response = client.complete(
52//!     LlmRequest::new("Explain quantum computing")
53//!         .with_system("You are a physics teacher")
54//! ).await?;
55//! ```
56//!
57//! ## Provider Auto-Discovery
58//!
59//! ```rust,ignore
60//! use reasonkit::thinktool::{discover_available_providers, create_available_client};
61//!
62//! // Find all providers with API keys configured
63//! let available = discover_available_providers();
64//!
65//! // Create client using first available provider
66//! let client = create_available_client()?;
67//! ```
68//!
69//! ## Protocol Execution Example
70//!
71//! ```rust,ignore
72//! use reasonkit::thinktool::{ProtocolExecutor, ProtocolInput};
73//!
74//! #[tokio::main]
75//! async fn main() -> anyhow::Result<()> {
76//!     let executor = ProtocolExecutor::new()?;
77//!
78//!     let result = executor.execute(
79//!         "gigathink",
80//!         ProtocolInput::query("What are the key factors for startup success?")
81//!     ).await?;
82//!
83//!     println!("Confidence: {:.2}", result.confidence);
84//!     for perspective in result.perspectives() {
85//!         println!("- {}", perspective);
86//!     }
87//!
88//!     Ok(())
89//! }
90//! ```
91
92pub mod bedrock_tot;
93pub mod benchmark;
94pub mod budget;
95pub mod calibration;
96pub mod consistency;
97pub mod debate;
98pub mod deep_logic;
99pub mod deepseek_benchmark;
100pub mod executor;
101pub mod fol;
102pub mod llm;
103pub mod llm_cli;
104pub mod metrics;
105#[cfg(feature = "minimax")]
106pub mod minimax;
107pub mod modules;
108pub mod oscillation;
109pub mod prm;
110pub mod profiles;
111pub mod protocol;
112pub mod quality;
113pub mod registry;
114pub mod self_refine;
115pub mod socratic;
116pub mod step;
117pub mod toml_loader;
118pub mod tot;
119pub mod toulmin;
120pub mod trace;
121pub mod triangulation;
122pub mod validation;
123pub mod validation_executor;
124pub mod yaml_loader;
125
126// Compatibility exports (legacy API used by examples and internal modules)
127pub mod thinktool_executor;
128
129// Re-exports
130pub use benchmark::{
131    Answer, BenchmarkProblem, BenchmarkResults, BenchmarkRunner, CalibrationMetrics,
132    ComparisonReport, ConfidenceBin, EvaluationResult,
133};
134pub use budget::{BudgetConfig, BudgetParseError, BudgetStrategy, BudgetSummary, BudgetTracker};
135pub use calibration::{
136    platt_scale, temperature_scale, CalibrationConfig, CalibrationDiagnosis, CalibrationReport,
137    CalibrationTracker, CategoryCalibration, ConfidenceAdjuster, ConfidenceBin as CalibrationBin,
138    Prediction,
139};
140pub use consistency::{
141    ConsistencyResult, ReasoningPath, SelfConsistencyConfig, SelfConsistencyEngine, VotingMethod,
142};
143pub use debate::{
144    AgentRole, Argument, Claim as DebateClaim, DebateArena, DebateConfig, DebatePrompts,
145    DebateResult, DebateStats, DebateVerdict, Evidence, Rebuttal as DebateRebuttal, VerdictType,
146};
147pub use deep_logic::{
148    ConstraintEvaluator, ConstraintType, ConstraintValidationResult, ContradictionDetector,
149    ContradictionInfo, DeepLogicValidation, DeepLogicValidator, InferenceEngine, InferenceRule,
150    LogicalConstraint, LogicalFact, LogicalOperator, RuleValidationResult, ValidationResult,
151};
152pub use executor::{
153    CliToolConfig, ExecutorConfig, ProtocolExecutor, ProtocolInput, ProtocolOutput,
154};
155pub use fol::{
156    Connective, DetectedFallacy, FolArgument, FolConfig, FolFallacy, FolPrompts, FolResult,
157    Formula, PremiseAssessment, Quantifier, SoundnessStatus, Term, ValidityStatus,
158};
159pub use llm::{
160    create_available_client, discover_available_providers, get_provider_info, FinishReason,
161    LlmClient, LlmConfig, LlmProvider, LlmRequest, LlmResponse, LlmUsage, ProviderExtra,
162    ProviderInfo, UnifiedLlmClient,
163};
164pub use llm_cli::{ClusterConfig, ClusterResult, EmbeddingConfig, LlmCliClient, PromptResult};
165pub use metrics::{
166    AggregateStats, ExecutionRecord, ExecutionRecordBuilder, MetricsReport, MetricsTracker,
167    StepMetric,
168};
169pub use modules::{
170    BedRock, BrutalHonesty, GigaThink, LaserLogic, ProofGuard, ThinkToolContext, ThinkToolModule,
171    ThinkToolModuleConfig, ThinkToolOutput,
172};
173pub use oscillation::{
174    ConvergentCriterion, ConvergentPhase, CriterionScore, DivergentDimension, DivergentPhase, Idea,
175    OscillationConfig, OscillationMetrics, OscillationPrompts, OscillationResult,
176};
177pub use prm::{
178    IssueType, PrmConfig, PrmMetrics, PrmReranker, PrmResult, ScoreAggregation, Severity,
179    StepIssue, StepParser, StepScore, VerificationPrompts, VerificationStrategy,
180};
181pub use profiles::{ProfileRegistry, ReasoningProfile};
182pub use protocol::{Protocol, ProtocolStep, ReasoningStrategy, StepAction};
183pub use quality::{
184    MetricRecord, QualityDashboard, QualityGrade, QualityMetric, QualityReport, QualityScore,
185    QualityTargets, TargetViolation, Trend,
186};
187pub use registry::ProtocolRegistry;
188pub use self_refine::{
189    DimensionFeedback, FeedbackDimension, IterationFeedback, RefineConfig, RefineIteration,
190    RefinePrompts, RefineResult, StopReason,
191};
192
193// Legacy aliases
194pub use crate::evaluation::Profile;
195pub use socratic::{
196    AnswerType, Aporia, QuestionCategory, SocraticConfig, SocraticPrompts, SocraticQuestion,
197    SocraticResult,
198};
199pub use step::{OutputFormat, StepResult};
200pub use thinktool_executor::ThinkToolExecutor;
201pub use tot::{
202    parse_thoughts, SearchStrategy, ThoughtNode, ThoughtPrompts, ThoughtState, ToTConfig,
203    ToTResult, ToTStats, TreeOfThoughts,
204};
205pub use toulmin::{
206    ArgumentBuilder, ArgumentError, ArgumentEvaluation, ArgumentIssue, Backing, BackingType, Claim,
207    ClaimType, EvidenceType, Ground, IssueSeverity as ToulminIssueSeverity, Qualifier, Rebuttal,
208    RebuttalSeverity, Scope, ToulminArgument, ToulminComponent, ToulminPrompts, Warrant,
209    WarrantType,
210};
211pub use trace::{ExecutionStatus, ExecutionTrace, StepStatus, StepTrace};
212pub use triangulation::{
213    Source, SourceTier, SourceType, Stance, TriangulationConfig, TriangulationIssue,
214    TriangulationIssueType, TriangulationPrompts, TriangulationResult, Triangulator,
215    VerificationConfidence, VerificationRecommendation,
216};
217pub use validation::{
218    ComplianceResult, ComplianceStatus, ComplianceViolation, DeepSeekValidationConfig,
219    DeepSeekValidationEngine, DeepSeekValidationResult, DetectedBias, MethodologyStatus,
220    RegulatoryStatus, StatisticalResult, ValidationCategory, ValidationFinding,
221    ValidationPerformance, ValidationVerdict,
222};
223pub use validation_executor::{
224    ValidatingProtocolExecutor, ValidationExecutorConfig, ValidationLevel,
225};