mod channels;
mod conversation;
mod dynamic;
mod goals;
mod memory;
mod people;
mod provider;
mod tools;
mod trigger_event;
pub use channels::{Channel, ChannelCapabilities};
#[allow(unused_imports)]
pub use conversation::{
extract_primary_message_content, first_primary_message_line, infer_message_annotations,
message_content_is_structural_only, ConversationSummary, Message, MessageAnnotation, ToolCall,
};
pub use dynamic::{
CliAgentInvocation, DynamicBot, DynamicCliAgent, DynamicMcpServer, DynamicSkill,
OAuthConnection, PendingOAuthFlow, SkillDraft,
};
pub use goals::{
Goal, GoalSchedule, GoalTokenBudgetStatus, NotificationEntry, ScheduledRunHealth,
ScheduledRunState, Task, TaskActivity,
};
pub use memory::{
BehaviorPattern, Episode, ErrorSolution, Expertise, Fact, Procedure, UserProfile,
};
pub use people::{Person, PersonFact};
pub use provider::{
ChatOptions, ModelProvider, ProviderResponse, ResponseMode, TokenUsage, TokenUsageRecord,
ToolChoiceMode,
};
#[allow(unused_imports)]
pub use tools::{
AgentRole, Tool, ToolCallEffect, ToolCallMetadata, ToolCallOutcome, ToolCallSemantics,
ToolCapabilities, ToolRole, ToolTargetHint, ToolTargetHintKind, ToolVerificationMode,
};
pub use trigger_event::TriggerEvent;
mod state_store;
pub use state_store::*;
pub mod store_prelude {
#![allow(unused_imports)]
pub use super::{
ConversationSummaryStore, DynamicBotStore, DynamicCliAgentStore, DynamicMcpServerStore,
EpisodeStore, FactStore, GoalStore, HealthCheckStore, LearningStore, MessageStore,
NotificationStore, OAuthStore, PeopleStore, SessionChannelStore, SettingsStore, SkillStore,
StateStore, TokenUsageStore,
};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn tool_capabilities_default_is_conservative() {
let caps = ToolCapabilities::default();
assert!(!caps.read_only);
assert!(!caps.external_side_effect);
assert!(caps.needs_approval);
assert!(!caps.idempotent);
assert!(!caps.high_impact_write);
}
}