pub mod agent_delegate;
pub mod artifact_store;
pub mod browser;
pub mod browser_automation;
pub mod calculator;
pub mod code_analysis;
pub mod color_converter;
#[cfg(feature = "computer-use")]
pub mod computer_use;
#[cfg(feature = "computer-use")]
pub mod computer_use_loop;
pub mod cron_parser;
pub mod csv_processor;
pub mod data_validator;
pub mod datetime_tool;
pub mod diff_tool;
pub mod dns_lookup;
pub mod docker_sandbox;
pub mod docx_loader;
pub mod encode_decode;
pub mod env_manager;
pub mod epub_loader;
pub mod excel_loader;
pub mod file_artifact_backend;
pub mod file_hasher;
pub mod file_read;
pub mod file_write;
pub mod git;
pub mod hash_tool;
pub mod html_loader;
pub mod http_fetch;
pub mod human_approval;
pub mod ip_tools;
pub mod json_query;
pub mod jwt_tool;
pub mod knowledge_graph_skill;
pub mod markdown_renderer;
pub mod memory;
pub mod metrics_collector;
pub mod pdf_loader;
pub mod pptx_loader;
pub mod prompt_guard;
pub mod regex_tool;
pub mod rss_reader;
pub mod sdk_generator;
pub mod secret_scanner;
pub mod semver_tool;
pub mod shell;
pub mod stdin_approval;
pub mod summarizer;
pub mod task_status;
pub mod template_engine;
pub mod test_runner;
pub mod text_transform;
pub mod uuid_generator;
pub mod web_browse;
pub mod web_scraper;
pub mod web_search;
pub mod xcapitsff_skills;
pub mod yaml_processor;
pub mod zip_reader;
pub use agent_delegate::{AgentDelegateSkill, TaskInfo, TaskQueueHandle, TaskSummary};
pub use artifact_store::{ArtifactBackend, ArtifactStoreSkill, InMemoryArtifactBackend};
pub use browser::BrowserSkill;
pub use browser_automation::{BrowserAction, BrowserAutomationSkill, BrowserConfig, BrowserResult};
pub use calculator::CalculatorSkill;
pub use code_analysis::CodeAnalysisSkill;
pub use color_converter::ColorConverterSkill;
pub use cron_parser::CronParserSkill;
pub use csv_processor::CsvProcessorSkill;
pub use data_validator::DataValidatorSkill;
pub use datetime_tool::DateTimeSkill;
pub use diff_tool::DiffSkill;
pub use dns_lookup::DnsLookupSkill;
pub use docx_loader::DocxLoaderSkill;
pub use encode_decode::EncodeDecodeSkill;
pub use env_manager::EnvManagerSkill;
pub use epub_loader::EpubLoaderSkill;
pub use excel_loader::ExcelLoaderSkill;
pub use file_artifact_backend::FileArtifactBackend;
pub use file_hasher::FileHasherSkill;
pub use file_read::FileReadSkill;
pub use file_write::FileWriteSkill;
pub use git::GitSkill;
pub use hash_tool::HashSkill;
pub use html_loader::HtmlLoaderSkill;
pub use http_fetch::HttpFetchSkill;
pub use human_approval::{
ApprovalChannel, ApprovalDecision, ApprovalRequest, AutoApproveChannel,
CallbackApprovalChannel, HumanApprovalSkill, RiskLevel,
};
pub use ip_tools::IpToolsSkill;
pub use json_query::JsonQuerySkill;
pub use jwt_tool::JwtToolSkill;
pub use knowledge_graph_skill::KnowledgeGraphSkill;
pub use markdown_renderer::MarkdownRendererSkill;
pub use memory::{MemorySearchSkill, MemoryStoreSkill};
pub use metrics_collector::MetricsCollectorSkill;
pub use pdf_loader::PdfLoaderSkill;
pub use pptx_loader::PptxLoaderSkill;
pub use prompt_guard::PromptGuardSkill;
pub use regex_tool::RegexSkill;
pub use rss_reader::RssReaderSkill;
pub use sdk_generator::SdkGenerator;
pub use secret_scanner::SecretScannerSkill;
pub use semver_tool::SemverToolSkill;
pub use shell::{CommandPolicy, ShellSkill};
pub use stdin_approval::StdinApprovalChannel;
pub use summarizer::SummarizerSkill;
pub use task_status::TaskStatusSkill;
pub use template_engine::TemplateEngineSkill;
pub use test_runner::TestRunnerSkill;
pub use text_transform::TextTransformSkill;
pub use uuid_generator::UuidGeneratorSkill;
#[cfg(feature = "web-browse")]
pub use web_browse::WebExtractSkill;
pub use web_browse::{WebBrowseSearchSkill, WebFetchSkill};
#[cfg(feature = "computer-use")]
pub use computer_use::{
ComputerUseConfig, ComputerUseSkill, LinuxController, MacOsController, ScreenController,
ScreenRegion,
};
#[cfg(feature = "computer-use")]
pub use computer_use_loop::{ActionLogEntry, ComputerAction, ComputerUseAgent, ComputerUseResult};
pub use web_scraper::WebScraperSkill;
pub use web_search::{SearchProvider, WebSearchSkill};
pub use xcapitsff_skills::{
register_xcapitsff_skills, XcapitCustomer360Skill, XcapitKbSearchSkill, XcapitLeadInfoSkill,
XcapitSearchSkill, XcapitTicketInfoSkill,
};
pub use yaml_processor::YamlProcessorSkill;
pub use docker_sandbox::{DockerSandboxConfig, ExecResult};
#[cfg(feature = "docker")]
pub use docker_sandbox::{DockerSandbox, DockerShellSkill};
#[cfg(feature = "browser")]
pub use browser_automation::BrowserAutomation;
use argentor_memory::{EmbeddingProvider, VectorStore};
use argentor_skills::SkillRegistry;
use std::sync::Arc;
pub fn register_utility_skills(registry: &SkillRegistry) {
registry.register(Arc::new(CalculatorSkill::default()));
registry.register(Arc::new(TextTransformSkill::default()));
registry.register(Arc::new(JsonQuerySkill::default()));
registry.register(Arc::new(RegexSkill::default()));
registry.register(Arc::new(DataValidatorSkill::default()));
registry.register(Arc::new(DateTimeSkill::default()));
registry.register(Arc::new(CsvProcessorSkill::default()));
registry.register(Arc::new(YamlProcessorSkill::default()));
registry.register(Arc::new(MarkdownRendererSkill::default()));
registry.register(Arc::new(TemplateEngineSkill::default()));
registry.register(Arc::new(HashSkill::default()));
registry.register(Arc::new(EncodeDecodeSkill::default()));
registry.register(Arc::new(UuidGeneratorSkill::default()));
registry.register(Arc::new(JwtToolSkill::default()));
registry.register(Arc::new(FileHasherSkill::default()));
registry.register(Arc::new(SemverToolSkill::default()));
registry.register(Arc::new(EnvManagerSkill::default()));
registry.register(Arc::new(CronParserSkill::default()));
registry.register(Arc::new(WebFetchSkill::default()));
registry.register(Arc::new(WebBrowseSearchSkill::default()));
registry.register(Arc::new(WebSearchSkill::default()));
registry.register(Arc::new(WebScraperSkill::default()));
registry.register(Arc::new(RssReaderSkill::default()));
registry.register(Arc::new(DnsLookupSkill::default()));
registry.register(Arc::new(IpToolsSkill::default()));
registry.register(Arc::new(PromptGuardSkill::default()));
registry.register(Arc::new(SecretScannerSkill::default()));
registry.register(Arc::new(DiffSkill::default()));
registry.register(Arc::new(SummarizerSkill::default()));
registry.register(Arc::new(MetricsCollectorSkill::new()));
registry.register(Arc::new(ColorConverterSkill::default()));
registry.register(Arc::new(PdfLoaderSkill::default()));
registry.register(Arc::new(DocxLoaderSkill::default()));
registry.register(Arc::new(HtmlLoaderSkill::default()));
registry.register(Arc::new(EpubLoaderSkill::default()));
registry.register(Arc::new(ExcelLoaderSkill::default()));
registry.register(Arc::new(PptxLoaderSkill::default()));
}
pub fn register_builtins_with_memory(
registry: &SkillRegistry,
store: Arc<dyn VectorStore>,
embedder: Arc<dyn EmbeddingProvider>,
) {
registry.register(Arc::new(ShellSkill::new()));
registry.register(Arc::new(FileReadSkill::new()));
registry.register(Arc::new(FileWriteSkill::new()));
registry.register(Arc::new(HttpFetchSkill::new()));
registry.register(Arc::new(BrowserSkill::new()));
registry.register(Arc::new(GitSkill::new()));
registry.register(Arc::new(CodeAnalysisSkill::new()));
registry.register(Arc::new(TestRunnerSkill::new()));
registry.register(Arc::new(MemoryStoreSkill::new(
store.clone(),
embedder.clone(),
)));
registry.register(Arc::new(MemorySearchSkill::new(store, embedder)));
registry.register(Arc::new(HumanApprovalSkill::auto_approve()));
register_utility_skills(registry);
}
pub fn register_builtins(registry: &SkillRegistry) {
registry.register(Arc::new(ShellSkill::new()));
registry.register(Arc::new(FileReadSkill::new()));
registry.register(Arc::new(FileWriteSkill::new()));
registry.register(Arc::new(HttpFetchSkill::new()));
registry.register(Arc::new(BrowserSkill::new()));
registry.register(Arc::new(GitSkill::new()));
registry.register(Arc::new(CodeAnalysisSkill::new()));
registry.register(Arc::new(TestRunnerSkill::new()));
registry.register(Arc::new(HumanApprovalSkill::auto_approve()));
register_utility_skills(registry);
}
pub fn register_builtins_with_approval(
registry: &SkillRegistry,
approval_channel: Arc<dyn ApprovalChannel>,
) {
registry.register(Arc::new(ShellSkill::new()));
registry.register(Arc::new(FileReadSkill::new()));
registry.register(Arc::new(FileWriteSkill::new()));
registry.register(Arc::new(HttpFetchSkill::new()));
registry.register(Arc::new(BrowserSkill::new()));
registry.register(Arc::new(GitSkill::new()));
registry.register(Arc::new(CodeAnalysisSkill::new()));
registry.register(Arc::new(TestRunnerSkill::new()));
registry.register(Arc::new(HumanApprovalSkill::new(approval_channel)));
register_utility_skills(registry);
}
pub fn register_all(
registry: &SkillRegistry,
store: Arc<dyn VectorStore>,
embedder: Arc<dyn EmbeddingProvider>,
approval_channel: Arc<dyn ApprovalChannel>,
) {
registry.register(Arc::new(ShellSkill::new()));
registry.register(Arc::new(FileReadSkill::new()));
registry.register(Arc::new(FileWriteSkill::new()));
registry.register(Arc::new(HttpFetchSkill::new()));
registry.register(Arc::new(BrowserSkill::new()));
registry.register(Arc::new(GitSkill::new()));
registry.register(Arc::new(CodeAnalysisSkill::new()));
registry.register(Arc::new(TestRunnerSkill::new()));
registry.register(Arc::new(MemoryStoreSkill::new(
store.clone(),
embedder.clone(),
)));
registry.register(Arc::new(MemorySearchSkill::new(store, embedder)));
registry.register(Arc::new(HumanApprovalSkill::new(approval_channel)));
register_utility_skills(registry);
}
pub fn register_orchestration_builtins(
registry: &SkillRegistry,
queue: Arc<dyn TaskQueueHandle>,
artifact_backend: Arc<dyn ArtifactBackend>,
) {
registry.register(Arc::new(ArtifactStoreSkill::new(artifact_backend)));
registry.register(Arc::new(AgentDelegateSkill::new(queue.clone())));
registry.register(Arc::new(TaskStatusSkill::new(queue)));
}
pub fn register_builtins_with_browser(registry: &SkillRegistry, config: BrowserConfig) {
registry.register(Arc::new(ShellSkill::new()));
registry.register(Arc::new(FileReadSkill::new()));
registry.register(Arc::new(FileWriteSkill::new()));
registry.register(Arc::new(HttpFetchSkill::new()));
registry.register(Arc::new(BrowserSkill::new()));
registry.register(Arc::new(GitSkill::new()));
registry.register(Arc::new(CodeAnalysisSkill::new()));
registry.register(Arc::new(TestRunnerSkill::new()));
registry.register(Arc::new(HumanApprovalSkill::auto_approve()));
registry.register(Arc::new(BrowserAutomationSkill::new(config)));
}