1pub const VERSION: &str = env!("CARGO_PKG_VERSION");
88
89pub const NAME: &str = env!("CARGO_PKG_NAME");
91
92pub mod agent_sessions;
97pub mod agents {
100 pub use gestura_core_agents::*;
101}
102pub mod checkpoints;
103pub mod compaction;
104pub mod config;
105pub mod context {
108 pub use gestura_core_context::*;
109}
110pub(crate) mod guardrails;
111pub mod llm_overrides;
112pub mod llm_provider;
113pub mod llm_validation;
114pub mod memory_console;
115pub mod openai_compat;
117pub mod orchestrator;
118pub mod pipeline;
119pub mod prompt_enhancement;
120pub mod speech;
121pub mod streaming;
122pub mod token_tracker {
124 pub use gestura_core_llm::token_tracker::*;
125}
126pub mod tools;
127
128pub mod error {
136 pub use gestura_core_foundation::error::*;
137}
138pub mod outcomes {
140 pub use gestura_core_foundation::outcomes::*;
141}
142pub mod events {
144 pub use gestura_core_foundation::events::*;
145}
146pub mod execution_mode {
149 pub use gestura_core_foundation::execution_mode::*;
150}
151pub mod interaction {
153 pub use gestura_core_foundation::interaction::*;
154}
155pub mod model_display {
158 pub use gestura_core_foundation::model_display::*;
159}
160pub mod platform {
162 pub use gestura_core_foundation::platform::*;
163}
164pub mod stream_error {
166 pub use gestura_core_foundation::stream_error::*;
167}
168pub mod stream_health {
170 pub use gestura_core_foundation::stream_health::*;
171}
172pub mod stream_reconnect {
174 pub use gestura_core_foundation::stream_reconnect::*;
175}
176pub mod telemetry {
179 pub use gestura_core_foundation::telemetry::*;
180}
181
182pub mod default_models {
185 pub use gestura_core_llm::default_models::*;
186}
187pub mod model_listing {
189 pub use gestura_core_llm::model_listing::*;
190}
191
192pub mod mcp {
196 pub use gestura_core_mcp::*;
197}
198
199pub mod session_manager {
203 pub use gestura_core_sessions::session_manager::*;
204}
205pub mod session_workspace {
208 pub use gestura_core_sessions::session_workspace::*;
209}
210
211pub mod stream_cancellation {
215 pub use gestura_core_streaming::cancellation::*;
216}
217
218pub mod tasks {
221 pub use gestura_core_tasks::tasks::*;
222}
223pub mod workflows {
225 pub use gestura_core_tasks::workflows::*;
226}
227
228pub mod security {
231 pub use gestura_core_security::*;
232}
233pub mod gdpr {
235 pub use gestura_core_security::gdpr::*;
236}
237pub mod sandbox {
239 pub use gestura_core_security::sandbox::*;
240}
241
242pub mod audio {
245 pub use gestura_core_audio::noise_cancellation::*;
246}
247pub mod audio_capture {
249 pub use gestura_core_audio::audio_capture::*;
250}
251pub mod stt_provider {
253 pub use gestura_core_audio::stt_provider::*;
254}
255
256pub mod tool_inspection {
259 pub use gestura_core_tools::tool_inspection::*;
260}
261
262pub mod config_env {
266 pub use gestura_core_config::config_env::*;
267}
268
269pub mod secrets {
272 pub use gestura_core_foundation::secrets::*;
273 pub use gestura_core_security::secrets::SecureStorageSecretProvider;
274}
275
276pub mod memory_bank {
280 pub use gestura_core_memory_bank::*;
281}
282
283pub mod a2a {
287 pub use gestura_core_a2a::*;
288}
289
290pub mod explorer {
293 pub use gestura_core_explorer::*;
294}
295
296pub mod knowledge {
300 pub use gestura_core_knowledge::*;
301}
302
303pub mod nats_mq {
306 pub use gestura_core_nats::*;
307}
308
309pub mod hotkey_ipc {
312 pub use gestura_core_ipc::*;
313}
314
315pub mod analytics {
318 pub use gestura_core_analytics::analytics::*;
319}
320pub mod recommendations {
322 pub use gestura_core_analytics::recommendations::*;
323}
324
325pub mod hooks {
328 pub use gestura_core_hooks::*;
329}
330
331pub mod scripting {
334 pub use gestura_core_scripting::*;
335}
336
337pub mod plugin_system {
340 pub use gestura_core_plugins::*;
341}
342
343pub mod retry {
346 pub use gestura_core_retry::*;
347}
348
349pub mod intent {
352 pub use gestura_core_intent::*;
353}
354
355pub mod tool_confirmation {
358 pub use gestura_core_tools::tool_confirmation::*;
359}
360
361pub use a2a::{
363 A2AClient, A2AError, A2AMessage, A2ARequest, A2AResponse, A2AServer, A2ATask, AgentCard,
364 AgentCardRegistry, AgentProfile, Artifact, AuthenticationInfo, MessagePart, OAuth2Config,
365 ProfileStore, Skill, create_gestura_agent_card, is_token_well_formed,
366};
367pub use agent_sessions::{
368 AgentSession, AgentSessionResult, AgentSessionStore, ConversationMessage,
369 FileAgentSessionStore, MessageSource, SessionFilter, SessionInfo, SessionLlmConfig,
370 SessionPermissionLevel, SessionReflectionSettings, SessionState, SessionToolCall,
371 SessionToolSettings, SessionVoiceConfig, default_agent_sessions_dir,
372};
373pub use analytics::{
374 AnalyticsConfig, AnalyticsInsights, ErrorAnalysis, EventType, PerformanceMetrics, PrivacyMode,
375 TimePeriod, UsageAnalytics, UsageEvent, UsagePatterns,
376};
377pub use audio::{
378 NoiseCancellationConfig, NoiseCancellationProcessor, NoiseReductionStats,
379 create_music_noise_canceller, create_speech_noise_canceller,
380};
381pub use audio_capture::{
382 AudioCaptureConfig, AudioDeviceInfo, is_microphone_available, list_audio_input_devices,
383 record_audio, request_stop_recording, reset_stop_flag,
384};
385pub use checkpoints::{
386 Checkpoint, CheckpointError, CheckpointId, CheckpointManager, CheckpointMetadata,
387 CheckpointRetentionPolicy, CheckpointSnapshot, FileCheckpointStore, default_checkpoints_dir,
388};
389pub use compaction::{
390 CompactionConfig, CompactionEvent, CompactionEventType, CompactionResult, CompactionStrategy,
391 ContextCompactor,
392};
393pub use config::{
394 AppConfig, AppConfigSecurityExt, McpJsonFile, McpScope, McpServerEntry, McpTransportType,
395 import_claude_desktop_servers,
396};
397pub use context::{
398 CacheStats, ContextCache, ContextCategory, ContextManager, ContextManagerStats, EntityType,
399 ExtractedEntity, FileContext, RequestAnalysis, RequestAnalyzer, ResolvedContext, ToolContext,
400};
401pub use default_models::{
402 DEFAULT_ANTHROPIC_MODEL, DEFAULT_GEMINI_BASE_URL, DEFAULT_GEMINI_MODEL, DEFAULT_GROK_MODEL,
403 DEFAULT_OLLAMA_BASE_URL, DEFAULT_OLLAMA_MODEL, DEFAULT_OPENAI_MODEL, DEFAULT_OPENAI_STT_MODEL,
404};
405pub use error::{AppError, Result};
406pub use events::{
407 AgentEvent, EventBufferConfig, EventEmitter, EventReceiver, EventSender, ProgressStage,
408 ProgressTracker, create_event_channel,
409};
410pub use execution_mode::{
411 ExecutionMode, ModeConfig, ModeManager, ToolCategory, ToolExecutionCheck, ToolPermission,
412};
413pub use explorer::{
414 ExplorerEntry, ExplorerEntryKind, ExplorerError, ExplorerGitChangeKind, ExplorerGitPathStatus,
415 ExplorerGitStatusResponse, ExplorerListDirResponse, ExplorerRootResponse, canonical_root,
416 ensure_safe_rel_path, list_dir, normalize_git_change_path, resolve_under_root,
417};
418pub use gdpr::{
419 ConsentRecord, ConsentStatus, DataAuditEntry, DataCategory, DataOperation, GdprManager,
420 get_gdpr_manager,
421};
422pub use hooks::{HookContext, HookEngine, HookEvent, HookExecutionRecord, HooksSettings};
423pub use interaction::{
424 ButtonPressType, GestureType, HapticFeedback, HapticPattern, InteractionContext,
425 InteractionEvent, InteractionType, SlideDirection, ToolHint,
426};
427pub use knowledge::{
428 KnowledgeError, KnowledgeItem, KnowledgeMatch, KnowledgeQuery, KnowledgeReference,
429 KnowledgeSettingsManager, KnowledgeStore, LoadCondition, SessionKnowledgeSettings,
430 register_builtin_knowledge,
431};
432pub use llm_provider::{
433 AgentContext, LlmCallResponse, LlmProvider, TokenUsage, UnconfiguredProvider, select_provider,
434};
435pub use mcp::{
436 CachedTool, JsonRpcError, JsonRpcRequest, JsonRpcResponse, LocalMcp, McpCacheStats, McpClient,
437 McpClientRegistry, McpDiscoveryManager, McpIntegrator, McpRequestContext, McpResourceHandler,
438 McpServer, McpServerConfig, McpServerInfo, McpToolHandler, MdhResource, PopularMcpServer,
439 RegistryBrowseEntry, RegistryBrowsePage, ServerState, TokenInfo, browse_mcp_registry, get_mcp,
440 get_mcp_client_registry, list_popular_mcp_servers, mdh_translate, normalize_mcp_server_name,
441};
442pub use memory_bank::{
443 MemoryBankEntry, MemoryBankError, MemoryBankQuery, MemoryGovernanceRefreshReport,
444 MemoryGovernanceRelationship, MemoryGovernanceState, MemoryGovernanceSuggestion, MemoryKind,
445 MemoryScope, MemorySearchResult, MemoryType, ReflectionMemoryState, clear_memory_bank,
446 ensure_memory_bank_dir, get_memory_bank_dir, list_memory_bank, load_from_memory_bank,
447 refresh_memory_bank_governance, save_to_memory_bank, search_memory_bank,
448 search_memory_bank_with_query,
449};
450pub use model_display::{
451 format_anthropic_model_name, format_gemini_model_name, format_grok_model_name,
452 format_model_name, format_openai_model_name, is_local_provider,
453};
454pub use model_listing::{ModelInfo, check_ollama_connectivity, list_models_for_provider};
455pub use pipeline::{
456 AgentPipeline, AgentRequest, AgentResponse, Message, PausedExecutionState, PermissionLevel,
457 PipelineConfig, PipelineConfigExt, RequestMetadata, RequestSource, ToolCallRecord, ToolResult,
458};
459pub use platform::detect_system_dark_mode;
460pub use recommendations::{
461 PersonalizedRecommendationEngine, Recommendation, RecommendationConfig, RecommendationFeedback,
462 RecommendationType, SessionPatterns, UserBehaviorPattern,
463};
464pub use retry::{ErrorClass, RetryCallback, RetryEvent, RetryManager, RetryPolicy};
465pub use session_manager::{AuthToken, SessionManager, TokenType, UserSession, get_session_manager};
466pub use session_workspace::{
467 SessionWorkspace, WorkspaceError, WorkspaceResult, cleanup_old_sessions, get_sessions_base_dir,
468};
469pub use speech::{
470 LlmResponse, SpeechConfig, SpeechProcessor, SpeechProcessorCoreExt, TranscriptionResult,
471 get_speech_processor, is_speech_recording, update_speech_config,
472};
473pub use stream_error::{StreamError, StreamErrorCategory, StreamResult};
474pub use stream_health::{
475 StreamHealthConfig, StreamHealthEvent, StreamHealthHandle, StreamHealthMonitor,
476 StreamHealthStatus,
477};
478pub use stream_reconnect::{
479 ReconnectConfig, ReconnectEvent, ReconnectManager, ReconnectState, StreamState,
480};
481pub use streaming::{
482 CancellationToken, ShellOutputStream, ShellProcessState, StreamChunk, start_streaming,
483};
484pub use tasks::{
485 Task, TaskError, TaskList, TaskManager, TaskMemoryEvent, TaskMemoryLifecycle, TaskMemoryPhase,
486 TaskSource, TaskStatus, get_global_task_manager,
487};
488pub use telemetry::{
489 Metric, MetricType, SystemHealth, TelemetryManager, Timer, get_telemetry_manager,
490};
491pub use token_tracker::{
492 BudgetStatus, TokenTracker, UsageRecord, UsageStats, format_token_count, get_token_tracker,
493};
494pub use tool_inspection::{
495 ConfirmationRequest, ConfirmationResponse, InspectionResult, ToolInspectionManager,
496 ToolMetadata,
497};
498pub use tools::{
499 ToolDefinition, all_tools, find_tool, looks_like_capabilities_question,
500 looks_like_tools_question, render_capabilities, render_tool_detail, render_tools_overview,
501};
502pub use workflows::{Workflow, WorkflowError, WorkflowInfo, WorkflowManager};
503
504#[cfg(feature = "nats")]
506pub use nats_mq::NatsHealthMonitor;
507pub use nats_mq::{
508 Connection as NatsConnection, DispatchEvent, connect_nats, connect_with_retry, init_jetstream,
509 publish_json, spawn_nats_server, subjects, subscribe, subscribe_wildcard,
510};
511
512pub use sandbox::{SandboxConfig, SandboxManager, create_default_sandbox};
514
515pub use scripting::{
517 Script, ScriptContext, ScriptExecutionResult, ScriptLanguage, ScriptPermission, ScriptTrigger,
518 ScriptingEngine, get_scripting_engine,
519};
520
521#[cfg(feature = "security")]
523pub use security::{Encryptor, KeychainStorage, SecureConfigManager};
524pub use security::{
525 McpToken, MockSecureStorage, SecureStorage, SecureStorageError, create_secure_storage,
526};
527
528pub use tools::PermissionManager;
530pub use tools::permissions::{Permission, PermissionAuditEntry, PermissionCheck, PermissionScope};
531pub use tools::policy::{
532 ToolCallDecision, ToolConfirmationInfo, ToolPolicyEvaluation, evaluate_tool_call,
533 is_action_allowed, is_shell_command_write_operation, is_write_operation, requires_confirmation,
534};
535
536pub use agents::{
538 AgentCommand, AgentEnvelope, AgentInfo, AgentManager, AgentSpawner, AgentStatus, DelegatedTask,
539 OrchestratorToolCall, TaskResult,
540};
541
542pub use orchestrator::{AgentOrchestrator, OrchestratorAgentManager, OrchestratorObserver};
544
545#[cfg(test)]
546mod tests {
547 use super::*;
548
549 #[test]
550 #[allow(clippy::const_is_empty)]
551 fn test_version() {
552 assert!(!VERSION.is_empty());
554 }
555
556 #[test]
557 fn test_name() {
558 assert_eq!(NAME, "gestura-core");
559 }
560}