extern crate self as tiny_agent_rs;
pub mod core;
pub mod error;
pub mod schemas;
pub(crate) mod services;
pub mod tools;
pub mod types;
pub use core::{
generate_planning_prompt, generate_tool_planning_prompt, get_tool_names, is_planning_response,
Agent, AgentMemory, AgentStep, RunResult, TokenUsage, ToolCall, ToolExecution, ToolOutput,
};
pub use error::{AgentError, Result};
pub use schemas::validator::Validator;
pub use schemas::{schema_type_name, CompletionSchema, SchemaHandle};
pub use tinyagent_macros::{completion_schema, tool};
pub use tools::{FunctionFactory, Tool};
pub use types::response::{deserialize_structured_response, StructuredPayload};
pub use core as agent;
pub use schemas as schema;
pub use schemas::validator;
pub use types::response;
pub use types::vacation_types;
#[cfg(feature = "cli")]
pub mod cli;