pub mod bootstrap;
pub mod config;
pub mod errors;
pub mod domain;
pub mod core {
pub mod agent;
pub mod capability;
pub mod capability_provider;
pub mod config;
pub mod messaging;
pub mod skill;
pub mod store;
pub mod tool;
pub mod tool_provider;
pub mod watchdog;
pub mod watchdog_agent;
}
pub mod application {
pub mod autonomous;
pub mod company_runtime;
pub mod framework;
pub mod organization;
}
pub mod infrastructure {
pub mod auth;
pub mod capability;
pub mod llm;
pub mod logger;
pub mod store;
pub mod tool;
pub mod web;
}
pub use application::framework::{CompanyBuilder, VirtualCompany};
pub use core::config::CompanyConfig;
pub use bootstrap::{quick_start, start_with_config, FrameworkLauncher};
pub use infrastructure::web::start_web_server;
pub use domain::{
Agent, AgentId, Department, Group, GroupVisibility, LLMConfig, Message, MessageTarget,
Organization, Role, TriggerCondition,
};
pub use domain::user::User;
pub use core::tool::ToolRegistry;
pub use core::tool_provider::{CompositeToolProvider, FrameworkToolProvider, RegistryToolProvider};
pub use domain::tool::{
CategoryNodeInfo, CategoryPath, JsonSchema, MatchType, ReturnType, Tool, ToolCallContext,
ToolProvider,
};
pub use infrastructure::tool::{
FrameworkToolExecutor, ToolEnvironment, ToolExecutor, ToolExecutorRegistry, ToolResult,
};
pub use core::capability::CapabilityRegistry;
pub use core::capability_provider::{
CompositeCapabilityProvider, FrameworkCapabilityProvider, RegistryCapabilityProvider,
};
pub use domain::capability::{
Capability, CapabilityAccessType, CapabilityCallContext, CapabilityPath, CapabilityProvider,
SkillCapabilityBinding,
};
pub use infrastructure::capability::{
CapabilityExecutor, CapabilityExecutorRegistry, CapabilityResult, McpClient,
McpProtocolHandler, McpServer,
};
pub use core::skill::SkillManager;
pub use domain::skill::{BindingType, Skill, SkillToolBinding, ToolAccessType};
pub use domain::skill::{
BindingType as DomainBindingType, Skill as DomainSkill,
SkillToolBinding as DomainSkillToolBinding, ToolAccessType as DomainToolAccessType,
};
pub use core::store::{MessageFilter, Store};
pub use infrastructure::store::SqliteStore;
pub use config::AppConfig;
pub use core::watchdog_agent::{ToolExecutionEvent, WatchdogAgent, WatchdogClient, WatchdogRule};
pub use core::watchdog::scheduler::{ScheduleManager, ScheduleRule, ScheduleTick, ScheduleType};
pub use core::watchdog::poller::{PollingManager, PollingRule, PollingTick};
pub use errors::{ImitatorError, Result as ImitatorResult};