gestura_core_foundation/lib.rs
1//! Shared, dependency-light primitives for the Gestura workspace.
2//!
3//! `gestura-core-foundation` exists so domain crates can share core models and
4//! policies without depending on the larger `gestura-core` facade. This crate is
5//! intended to stay small, stable, and broadly reusable across the workspace.
6//!
7//! ## What belongs here
8//!
9//! - cross-cutting error and result types
10//! - execution-mode and permission primitives
11//! - shared event, telemetry, platform, and interaction models
12//! - context analysis data structures reused by higher-level crates
13//!
14//! ## What does not belong here
15//!
16//! - protocol implementations
17//! - tool implementations
18//! - pipeline orchestration
19//! - GUI or CLI presentation concerns
20//!
21//! Most application code should still import through `gestura_core::*`, while
22//! domain crates may depend on this crate directly when they need a lightweight
23//! shared foundation.
24
25pub mod context;
26pub mod error;
27pub mod events;
28pub mod execution_mode;
29pub mod interaction;
30pub mod model_display;
31pub mod outcomes;
32pub mod permissions;
33pub mod platform;
34pub mod secrets;
35pub mod stream_error;
36pub mod stream_health;
37pub mod stream_reconnect;
38pub mod telemetry;
39
40pub use context::{
41 ContextCategory, EntityType, ExtractedEntity, FileContext, RequestAnalysis, ResolvedContext,
42 ToolContext,
43};
44pub use error::{AppError, Result};
45pub use execution_mode::{
46 ExecutionMode, ModeConfig, ModeManager, ToolCategory, ToolExecutionCheck, ToolPermission,
47};
48pub use outcomes::{OutcomeSignal, OutcomeSignalKind};
49pub use permissions::PermissionLevel;