mockforge_core/ai_studio/mod.rs
1//! Pillars: [AI]
2//!
3//! MockForge AI Studio - Unified AI Copilot
4//!
5//! This module provides a unified interface for all AI-powered features in MockForge,
6//! including natural language mock generation, AI-guided debugging, persona generation,
7//! and artifact freezing for deterministic testing.
8//!
9//! # Features
10//!
11//! - **Natural Language Mock Generation**: Generate mocks from conversational descriptions
12//! - **AI-Guided Debugging**: Analyze test failures and suggest fixes
13//! - **Persona Generation**: Create and tweak personas using AI
14//! - **Artifact Freezing**: Convert AI outputs to deterministic YAML/JSON
15//! - **Cost & Budget Management**: Track tokens and enforce budgets
16//!
17//! # Example Usage
18//!
19//! ```rust,no_run
20//! use mockforge_core::ai_studio::{ChatOrchestrator, ChatRequest};
21//! use mockforge_core::intelligent_behavior::IntelligentBehaviorConfig;
22//!
23//! # async fn example() -> mockforge_core::Result<()> {
24//! let config = IntelligentBehaviorConfig::default();
25//! let orchestrator = ChatOrchestrator::new(config);
26//!
27//! // Process a natural language command
28//! let request = ChatRequest {
29//! message: "Create a user API with CRUD operations".to_string(),
30//! context: None,
31//! };
32//! let response = orchestrator.process(&request).await?;
33//! # Ok(())
34//! # }
35//! ```
36
37pub mod artifact_freezer;
38pub mod budget_manager;
39pub mod chat_orchestrator;
40pub mod config;
41pub mod conversation_store;
42pub mod debug_analyzer;
43pub mod nl_mock_generator;
44pub mod persona_generator;
45
46pub use artifact_freezer::{ArtifactFreezer, FreezeRequest, FrozenArtifact};
47pub use budget_manager::{BudgetConfig, BudgetManager, UsageStats};
48pub use chat_orchestrator::{
49 ChatContext, ChatIntent, ChatMessage, ChatOrchestrator, ChatRequest, ChatResponse,
50};
51pub use config::AiStudioConfig;
52pub use conversation_store::{
53 get_conversation_store, initialize_conversation_store, ConversationStore,
54};
55pub use debug_analyzer::{DebugAnalyzer, DebugRequest, DebugResponse, DebugSuggestion};
56pub use nl_mock_generator::{MockGenerationResult, MockGenerator};
57pub use persona_generator::{
58 PersonaGenerationRequest, PersonaGenerationResponse, PersonaGenerator,
59};