skill_web/store/
mod.rs

1//! Yewdux state management stores
2//!
3//! Global state management using Redux-like patterns.
4//!
5//! ## Available Stores
6//!
7//! - **SkillsStore**: Installed skills, filtering, sorting, selected skill
8//! - **ExecutionsStore**: Execution history, active execution, streaming output
9//! - **SettingsStore**: User preferences, persisted to localStorage
10//! - **UiStore**: Transient UI state (sidebar, notifications, modals)
11//!
12//! ## Usage
13//!
14//! ```ignore
15//! use yewdux::prelude::*;
16//! use crate::store::{SkillsStore, SkillsAction};
17//!
18//! #[function_component(MyComponent)]
19//! fn my_component() -> Html {
20//!     let (skills, dispatch) = use_store::<SkillsStore>();
21//!
22//!     let on_search = {
23//!         let dispatch = dispatch.clone();
24//!         Callback::from(move |query: String| {
25//!             dispatch.apply(SkillsAction::SetSearchQuery(query));
26//!         })
27//!     };
28//!
29//!     html! {
30//!         // ...
31//!     }
32//! }
33//! ```
34
35pub mod executions;
36pub mod settings;
37pub mod skills;
38pub mod ui;
39
40// Re-export stores
41pub use executions::{
42    ActiveExecution, ExecutionEntry, ExecutionStatus, ExecutionsAction, ExecutionsStore,
43};
44pub use settings::{
45    ApiSettings, EmbeddingProvider, OutputFormat, SearchSettings, SettingsAction, SettingsStore,
46    Theme, VectorBackend,
47};
48pub use skills::{
49    InstanceInfo, ParameterInfo, SkillDetail, SkillRuntime, SkillSortBy, SkillStatus, SkillSummary,
50    SkillsAction, SkillsStore, ToolInfo,
51};
52pub use ui::{
53    CommandPaletteState, ModalState, ModalType, Notification, NotificationLevel, UiAction, UiStore,
54};