#![deny(missing_docs)]
mod agent;
mod caps;
mod channel;
mod clock;
mod id;
mod knowledge;
mod memory;
mod message;
mod prompt;
mod render;
mod secret;
mod store;
mod task;
mod webhook;
pub use agent::{
AgentBackend, AgentError, AgentProgress, AgentReply, AgentTurn, McpServer, ProgressFn, Resume,
TokenUsage,
};
pub use caps::{AgentCaps, ChannelCaps, LengthUnit, MarkdownDialect, ToolPolicy};
pub use channel::{Channel, ChannelError, CommandInfo, CommandParam, InboundSink, SinkClosed};
pub use clock::{Clock, SystemClock};
pub use id::{ChannelId, ConversationKey, IdError, MessageId, RunId, UserId, UserRef};
pub use knowledge::{
KnowledgeContext, KnowledgeError, KnowledgeProvider, Person, Requester, RunGrant, RunInfo,
};
pub use memory::{MemoryEntry, MemoryError, MemoryNote, MemoryScope, MemoryStore};
pub use message::{
Attachment, InboundEvent, OutboundMessage, RenderedMessage, ReplyTarget, SentRef,
};
pub use prompt::{
ButtonStyle, FieldStyle, Form, FormField, MAX_BUTTONS, MAX_FIELDS, Prompt, PromptAnswer,
PromptButton,
};
pub use render::Renderer;
pub use secret::{Redactor, Secret};
pub use store::{
AgentRunRecord, ConversationStore, Fire, FireState, MessageRole, NewMessage,
PAIRING_MAX_FAILURES, StoreError, StoredMessage,
};
pub use task::{
NewTask, Repeat, Task, TaskChange, TaskError, TaskKind, TaskStatus, TaskStore, format_time,
parse_time, sort_tasks,
};
pub use webhook::{WebhookHandler, WebhookRequest, WebhookResponse};
pub use tokio_util::sync::CancellationToken;
pub use async_trait::async_trait;
pub type BoxError = Box<dyn std::error::Error + Send + Sync + 'static>;