//! NEAR AI Agentic Worker Framework //! //! An LLM-powered autonomous agent that operates on the NEAR AI marketplace. //! //! # Architecture //! //! ```text //! ┌─────────────────────────────────────────────────────────────────────────────────┐ //! │ User Interaction Layer │ //! │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ //! │ │ CLI │ │ Slack │ │ Telegram │ │ HTTP │ │ //! │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ //! │ └─────────────┴────────────┬┴─────────────┘ │ //! └──────────────────────────────────┼──────────────────────────────────────────────┘ //! ▼ //! ┌──────────────────────────────────────────────────────────────────────────────────┐ //! │ Main Agent Loop │ //! │ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ //! │ │ Message Router │──│ LLM Reasoning │──│ Action Executor│ │ //! │ └────────────────┘ └───────┬────────┘ └───────┬────────┘ │ //! │ ▲ │ │ │ //! │ │ ┌──────────┴───────────────────┴──────────┐ │ //! │ │ ▼ ▼ │ //! │ ┌──────┴─────────────┐ ┌───────────────────────┐ │ //! │ │ Safety Layer │ │ Self-Repair │ │ //! │ │ - Input sanitizer │ │ - Stuck job detection │ │ //! │ │ - Injection defense│ │ - Tool fixer │ │ //! │ └────────────────────┘ └───────────────────────┘ │ //! └──────────────────────────────────────────────────────────────────────────────────┘ //! ``` //! //! # Features //! //! - **Multi-channel interaction** - CLI, Slack, Telegram, HTTP webhooks //! - **Parallel job execution** - Run multiple jobs with isolated contexts //! - **Pluggable tools** - MCP, 3rd party services, dynamic tools //! - **Self-repair** - Detect and fix stuck jobs and broken tools //! - **Prompt injection defense** - Sanitize all external data //! - **Continuous learning** - Improve estimates from historical data pub mod agent; pub mod channels; pub mod config; pub mod context; pub mod error; pub mod estimation; pub mod evaluation; pub mod history; pub mod llm; pub mod safety; pub mod tools; pub mod workspace; pub use config::Config; pub use error::{Error, Result}; /// Re-export commonly used types. pub mod prelude { pub use crate::channels::{Channel, IncomingMessage, MessageStream}; pub use crate::config::Config; pub use crate::context::{JobContext, JobState}; pub use crate::error::{Error, Result}; pub use crate::llm::LlmProvider; pub use crate::safety::{SanitizedOutput, Sanitizer}; pub use crate::tools::{Tool, ToolOutput, ToolRegistry}; pub use crate::workspace::{MemoryDocument, Workspace}; }