1pub mod agent_delegate;
18pub mod artifact_store;
20pub mod browser;
22pub mod browser_automation;
24pub mod calculator;
26pub mod code_analysis;
28pub mod color_converter;
30#[cfg(feature = "computer-use")]
32pub mod computer_use;
33#[cfg(feature = "computer-use")]
35pub mod computer_use_loop;
36pub mod cron_parser;
38pub mod csv_processor;
40pub mod data_validator;
42pub mod datetime_tool;
44pub mod diff_tool;
46pub mod dns_lookup;
48pub mod docker_sandbox;
50pub mod docx_loader;
52pub mod encode_decode;
54pub mod env_manager;
56pub mod epub_loader;
58pub mod excel_loader;
60pub mod file_artifact_backend;
62pub mod file_hasher;
64pub mod file_read;
66pub mod file_write;
68pub mod git;
70pub mod hash_tool;
72pub mod html_loader;
74pub mod http_fetch;
76pub mod human_approval;
78pub mod ip_tools;
80pub mod json_query;
82pub mod jwt_tool;
84pub mod knowledge_graph_skill;
86pub mod markdown_renderer;
88pub mod memory;
90pub mod metrics_collector;
92pub mod pdf_loader;
94pub mod pptx_loader;
96pub mod prompt_guard;
98pub mod regex_tool;
100pub mod rss_reader;
102pub mod sdk_generator;
104pub mod secret_scanner;
106pub mod semver_tool;
108pub mod shell;
110pub mod stdin_approval;
112pub mod summarizer;
114pub mod task_status;
116pub mod template_engine;
118pub mod test_runner;
120pub mod text_transform;
122pub mod uuid_generator;
124pub mod web_browse;
126pub mod web_scraper;
128pub mod web_search;
130pub mod xcapitsff_skills;
132pub mod yaml_processor;
134pub mod zip_reader;
136
137pub use agent_delegate::{AgentDelegateSkill, TaskInfo, TaskQueueHandle, TaskSummary};
138pub use artifact_store::{ArtifactBackend, ArtifactStoreSkill, InMemoryArtifactBackend};
139pub use browser::BrowserSkill;
140pub use browser_automation::{BrowserAction, BrowserAutomationSkill, BrowserConfig, BrowserResult};
141pub use calculator::CalculatorSkill;
142pub use code_analysis::CodeAnalysisSkill;
143pub use color_converter::ColorConverterSkill;
144pub use cron_parser::CronParserSkill;
145pub use csv_processor::CsvProcessorSkill;
146pub use data_validator::DataValidatorSkill;
147pub use datetime_tool::DateTimeSkill;
148pub use diff_tool::DiffSkill;
149pub use dns_lookup::DnsLookupSkill;
150pub use docx_loader::DocxLoaderSkill;
151pub use encode_decode::EncodeDecodeSkill;
152pub use env_manager::EnvManagerSkill;
153pub use epub_loader::EpubLoaderSkill;
154pub use excel_loader::ExcelLoaderSkill;
155pub use file_artifact_backend::FileArtifactBackend;
156pub use file_hasher::FileHasherSkill;
157pub use file_read::FileReadSkill;
158pub use file_write::FileWriteSkill;
159pub use git::GitSkill;
160pub use hash_tool::HashSkill;
161pub use html_loader::HtmlLoaderSkill;
162pub use http_fetch::HttpFetchSkill;
163pub use human_approval::{
164 ApprovalChannel, ApprovalDecision, ApprovalRequest, AutoApproveChannel,
165 CallbackApprovalChannel, HumanApprovalSkill, RiskLevel,
166};
167pub use ip_tools::IpToolsSkill;
168pub use json_query::JsonQuerySkill;
169pub use jwt_tool::JwtToolSkill;
170pub use knowledge_graph_skill::KnowledgeGraphSkill;
171pub use markdown_renderer::MarkdownRendererSkill;
172pub use memory::{MemorySearchSkill, MemoryStoreSkill};
173pub use metrics_collector::MetricsCollectorSkill;
174pub use pdf_loader::PdfLoaderSkill;
175pub use pptx_loader::PptxLoaderSkill;
176pub use prompt_guard::PromptGuardSkill;
177pub use regex_tool::RegexSkill;
178pub use rss_reader::RssReaderSkill;
179pub use sdk_generator::SdkGenerator;
180pub use secret_scanner::SecretScannerSkill;
181pub use semver_tool::SemverToolSkill;
182pub use shell::{CommandPolicy, ShellSkill};
183pub use stdin_approval::StdinApprovalChannel;
184pub use summarizer::SummarizerSkill;
185pub use task_status::TaskStatusSkill;
186pub use template_engine::TemplateEngineSkill;
187pub use test_runner::TestRunnerSkill;
188pub use text_transform::TextTransformSkill;
189pub use uuid_generator::UuidGeneratorSkill;
190#[cfg(feature = "web-browse")]
191pub use web_browse::WebExtractSkill;
192pub use web_browse::{WebBrowseSearchSkill, WebFetchSkill};
193
194#[cfg(feature = "computer-use")]
195pub use computer_use::{
196 ComputerUseConfig, ComputerUseSkill, LinuxController, MacOsController, ScreenController,
197 ScreenRegion,
198};
199#[cfg(feature = "computer-use")]
200pub use computer_use_loop::{ActionLogEntry, ComputerAction, ComputerUseAgent, ComputerUseResult};
201pub use web_scraper::WebScraperSkill;
202pub use web_search::{SearchProvider, WebSearchSkill};
203pub use xcapitsff_skills::{
204 register_xcapitsff_skills, XcapitCustomer360Skill, XcapitKbSearchSkill, XcapitLeadInfoSkill,
205 XcapitSearchSkill, XcapitTicketInfoSkill,
206};
207pub use yaml_processor::YamlProcessorSkill;
208
209pub use docker_sandbox::{DockerSandboxConfig, ExecResult};
210
211#[cfg(feature = "docker")]
212pub use docker_sandbox::{DockerSandbox, DockerShellSkill};
213
214#[cfg(feature = "browser")]
215pub use browser_automation::BrowserAutomation;
216
217use argentor_memory::{EmbeddingProvider, VectorStore};
218use argentor_skills::SkillRegistry;
219use std::sync::Arc;
220
221pub fn register_utility_skills(registry: &SkillRegistry) {
232 registry.register(Arc::new(CalculatorSkill::default()));
234 registry.register(Arc::new(TextTransformSkill::default()));
235 registry.register(Arc::new(JsonQuerySkill::default()));
236 registry.register(Arc::new(RegexSkill::default()));
237 registry.register(Arc::new(DataValidatorSkill::default()));
238 registry.register(Arc::new(DateTimeSkill::default()));
239 registry.register(Arc::new(CsvProcessorSkill::default()));
240 registry.register(Arc::new(YamlProcessorSkill::default()));
241 registry.register(Arc::new(MarkdownRendererSkill::default()));
242 registry.register(Arc::new(TemplateEngineSkill::default()));
243 registry.register(Arc::new(HashSkill::default()));
245 registry.register(Arc::new(EncodeDecodeSkill::default()));
246 registry.register(Arc::new(UuidGeneratorSkill::default()));
247 registry.register(Arc::new(JwtToolSkill::default()));
248 registry.register(Arc::new(FileHasherSkill::default()));
249 registry.register(Arc::new(SemverToolSkill::default()));
251 registry.register(Arc::new(EnvManagerSkill::default()));
252 registry.register(Arc::new(CronParserSkill::default()));
253 registry.register(Arc::new(WebFetchSkill::default()));
255 registry.register(Arc::new(WebBrowseSearchSkill::default()));
256 registry.register(Arc::new(WebSearchSkill::default()));
257 registry.register(Arc::new(WebScraperSkill::default()));
258 registry.register(Arc::new(RssReaderSkill::default()));
259 registry.register(Arc::new(DnsLookupSkill::default()));
260 registry.register(Arc::new(IpToolsSkill::default()));
261 registry.register(Arc::new(PromptGuardSkill::default()));
263 registry.register(Arc::new(SecretScannerSkill::default()));
264 registry.register(Arc::new(DiffSkill::default()));
265 registry.register(Arc::new(SummarizerSkill::default()));
266 registry.register(Arc::new(MetricsCollectorSkill::new()));
268 registry.register(Arc::new(ColorConverterSkill::default()));
269 registry.register(Arc::new(PdfLoaderSkill::default()));
271 registry.register(Arc::new(DocxLoaderSkill::default()));
272 registry.register(Arc::new(HtmlLoaderSkill::default()));
273 registry.register(Arc::new(EpubLoaderSkill::default()));
274 registry.register(Arc::new(ExcelLoaderSkill::default()));
275 registry.register(Arc::new(PptxLoaderSkill::default()));
276}
277
278pub fn register_builtins_with_memory(
281 registry: &SkillRegistry,
282 store: Arc<dyn VectorStore>,
283 embedder: Arc<dyn EmbeddingProvider>,
284) {
285 registry.register(Arc::new(ShellSkill::new()));
286 registry.register(Arc::new(FileReadSkill::new()));
287 registry.register(Arc::new(FileWriteSkill::new()));
288 registry.register(Arc::new(HttpFetchSkill::new()));
289 registry.register(Arc::new(BrowserSkill::new()));
290 registry.register(Arc::new(GitSkill::new()));
291 registry.register(Arc::new(CodeAnalysisSkill::new()));
292 registry.register(Arc::new(TestRunnerSkill::new()));
293 registry.register(Arc::new(MemoryStoreSkill::new(
294 store.clone(),
295 embedder.clone(),
296 )));
297 registry.register(Arc::new(MemorySearchSkill::new(store, embedder)));
298 registry.register(Arc::new(HumanApprovalSkill::auto_approve()));
299 register_utility_skills(registry);
300}
301
302pub fn register_builtins(registry: &SkillRegistry) {
304 registry.register(Arc::new(ShellSkill::new()));
305 registry.register(Arc::new(FileReadSkill::new()));
306 registry.register(Arc::new(FileWriteSkill::new()));
307 registry.register(Arc::new(HttpFetchSkill::new()));
308 registry.register(Arc::new(BrowserSkill::new()));
309 registry.register(Arc::new(GitSkill::new()));
310 registry.register(Arc::new(CodeAnalysisSkill::new()));
311 registry.register(Arc::new(TestRunnerSkill::new()));
312 registry.register(Arc::new(HumanApprovalSkill::auto_approve()));
313 register_utility_skills(registry);
314}
315
316pub fn register_builtins_with_approval(
318 registry: &SkillRegistry,
319 approval_channel: Arc<dyn ApprovalChannel>,
320) {
321 registry.register(Arc::new(ShellSkill::new()));
322 registry.register(Arc::new(FileReadSkill::new()));
323 registry.register(Arc::new(FileWriteSkill::new()));
324 registry.register(Arc::new(HttpFetchSkill::new()));
325 registry.register(Arc::new(BrowserSkill::new()));
326 registry.register(Arc::new(GitSkill::new()));
327 registry.register(Arc::new(CodeAnalysisSkill::new()));
328 registry.register(Arc::new(TestRunnerSkill::new()));
329 registry.register(Arc::new(HumanApprovalSkill::new(approval_channel)));
330 register_utility_skills(registry);
331}
332
333pub fn register_all(
335 registry: &SkillRegistry,
336 store: Arc<dyn VectorStore>,
337 embedder: Arc<dyn EmbeddingProvider>,
338 approval_channel: Arc<dyn ApprovalChannel>,
339) {
340 registry.register(Arc::new(ShellSkill::new()));
341 registry.register(Arc::new(FileReadSkill::new()));
342 registry.register(Arc::new(FileWriteSkill::new()));
343 registry.register(Arc::new(HttpFetchSkill::new()));
344 registry.register(Arc::new(BrowserSkill::new()));
345 registry.register(Arc::new(GitSkill::new()));
346 registry.register(Arc::new(CodeAnalysisSkill::new()));
347 registry.register(Arc::new(TestRunnerSkill::new()));
348 registry.register(Arc::new(MemoryStoreSkill::new(
349 store.clone(),
350 embedder.clone(),
351 )));
352 registry.register(Arc::new(MemorySearchSkill::new(store, embedder)));
353 registry.register(Arc::new(HumanApprovalSkill::new(approval_channel)));
354 register_utility_skills(registry);
355}
356
357pub fn register_orchestration_builtins(
360 registry: &SkillRegistry,
361 queue: Arc<dyn TaskQueueHandle>,
362 artifact_backend: Arc<dyn ArtifactBackend>,
363) {
364 registry.register(Arc::new(ArtifactStoreSkill::new(artifact_backend)));
365 registry.register(Arc::new(AgentDelegateSkill::new(queue.clone())));
366 registry.register(Arc::new(TaskStatusSkill::new(queue)));
367}
368
369pub fn register_builtins_with_browser(registry: &SkillRegistry, config: BrowserConfig) {
376 registry.register(Arc::new(ShellSkill::new()));
377 registry.register(Arc::new(FileReadSkill::new()));
378 registry.register(Arc::new(FileWriteSkill::new()));
379 registry.register(Arc::new(HttpFetchSkill::new()));
380 registry.register(Arc::new(BrowserSkill::new()));
381 registry.register(Arc::new(GitSkill::new()));
382 registry.register(Arc::new(CodeAnalysisSkill::new()));
383 registry.register(Arc::new(TestRunnerSkill::new()));
384 registry.register(Arc::new(HumanApprovalSkill::auto_approve()));
385 registry.register(Arc::new(BrowserAutomationSkill::new(config)));
386}