oxios_kernel/tools/builtin/
mod.rs1pub mod agent_tool;
19pub mod budget_tool;
20pub mod calendar_tool;
21pub mod cron_tool;
22pub mod email_tool;
23pub mod knowledge_tool;
24pub mod marketplace_tool;
25pub mod persona_tool;
26pub mod project_tool;
27pub mod resource_tool;
28pub mod security_tool;
29
30pub use agent_tool::AgentTool as KernelAgentTool;
31pub use budget_tool::BudgetTool;
32pub use calendar_tool::CalendarTool;
33pub use cron_tool::CronTool;
34pub use email_tool::EmailTool;
35pub use knowledge_tool::KnowledgeTool;
36pub use marketplace_tool::MarketplaceTool;
37pub use persona_tool::PersonaTool;
38pub use project_tool::ProjectTool;
39pub use resource_tool::ResourceTool;
40pub use security_tool::SecurityTool;
41
42use crate::KernelHandle;
43use crate::types::AgentId;
44use oxi_sdk::ToolRegistry;
45
46pub fn register_all_kernel_tools(registry: &ToolRegistry, kernel: &KernelHandle, _agent_id: &str) {
51 let agent_uuid = AgentId::new_v4();
52
53 registry.register(crate::tools::ExecTool::from_kernel(kernel));
55
56 registry.register(crate::tools::MemoryReadTool::from_kernel(kernel));
58 registry.register(crate::tools::MemorySearchTool::from_kernel(kernel));
59
60 registry.register(ProjectTool::from_kernel(kernel));
62 registry.register(KernelAgentTool::from_kernel(kernel));
63 registry.register(PersonaTool::from_kernel(kernel));
64 registry.register(CronTool::from_kernel(kernel));
65 registry.register(SecurityTool::from_kernel(kernel));
66 registry.register(BudgetTool::from_kernel(kernel));
67 registry.register(ResourceTool::from_kernel(kernel));
68
69 registry.register(crate::tools::A2aDelegateTool::from_kernel(
71 kernel, agent_uuid,
72 ));
73 registry.register(crate::tools::A2aSendTool::from_kernel(kernel, agent_uuid));
74 registry.register(crate::tools::A2aQueryTool::from_kernel(kernel));
75
76 registry.register(crate::tools::McpToolWrapper::from_kernel(
78 kernel,
79 "",
80 "",
81 "MCP tools via bridge".into(),
82 serde_json::json!({"type": "object", "properties": {}}),
83 ));
84
85 registry.register(KnowledgeTool::from_kernel(kernel));
87
88 #[cfg(feature = "native-browser")]
90 {}
91
92 registry.register(MarketplaceTool::from_kernel(kernel));
94
95 if let Some(calendar_tool) = CalendarTool::try_from_kernel(kernel) {
97 registry.register(calendar_tool);
98 }
99
100 if let Some(email_tool) = EmailTool::try_from_kernel(kernel) {
102 registry.register(email_tool);
103 }
104}