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 image_generation_tool;
24pub mod knowledge_tool;
25pub mod marketplace_tool;
26pub mod mount_tool;
27pub mod persona_tool;
28pub mod project_tool;
29pub mod resource_tool;
30pub mod security_tool;
31pub mod skill_forge_tool;
32
33pub use agent_tool::AgentTool as KernelAgentTool;
34pub use budget_tool::BudgetTool;
35pub use calendar_tool::CalendarTool;
36pub use cron_tool::CronTool;
37pub use email_tool::EmailTool;
38pub use image_generation_tool::ImageGenerationTool;
39pub use knowledge_tool::KnowledgeTool;
40pub use marketplace_tool::MarketplaceTool;
41pub use mount_tool::MountTool;
42pub use persona_tool::PersonaTool;
43pub use project_tool::ProjectTool;
44pub use resource_tool::ResourceTool;
45pub use security_tool::SecurityTool;
46pub use skill_forge_tool::SkillForgeTool;
47
48use crate::KernelHandle;
49use crate::tools::{AskUserTool, MemoryReadTool, MemorySearchTool, MemoryWriteTool};
50use crate::types::AgentId;
51use oxi_sdk::ToolRegistry;
52
53pub fn register_all_kernel_tools(registry: &ToolRegistry, kernel: &KernelHandle, _agent_id: &str) {
58 let agent_uuid = AgentId::new_v4();
59
60 registry.register(crate::tools::ExecTool::from_kernel(kernel));
62
63 registry.register(MemoryWriteTool::from_kernel(kernel));
68 registry.register(MemoryReadTool::from_kernel(kernel));
69 registry.register(MemorySearchTool::from_kernel(kernel));
70
71 registry.register(oxi_agent::SubagentTool::new());
76
77 registry.register(ProjectTool::from_kernel(kernel));
79 registry.register(MountTool::from_kernel(kernel));
80 registry.register(KernelAgentTool::from_kernel(kernel));
81 registry.register(PersonaTool::from_kernel(kernel));
82 registry.register(CronTool::from_kernel(kernel));
83 registry.register(SecurityTool::from_kernel(kernel));
84 registry.register(BudgetTool::from_kernel(kernel));
85 registry.register(ResourceTool::from_kernel(kernel));
86
87 registry.register(crate::tools::A2aDelegateTool::from_kernel(
89 kernel, agent_uuid,
90 ));
91 registry.register(crate::tools::A2aSendTool::from_kernel(kernel, agent_uuid));
92 registry.register(crate::tools::A2aQueryTool::from_kernel(kernel));
93
94 registry.register(crate::tools::McpToolWrapper::from_kernel(
96 kernel,
97 "",
98 "",
99 "MCP tools via bridge".into(),
100 serde_json::json!({"type": "object", "properties": {}}),
101 ));
102
103 registry.register(KnowledgeTool::from_kernel(kernel));
105
106 registry.register(AskUserTool::new(
108 kernel.infra.pending_ask_user(),
109 kernel.infra.event_bus_clone(),
110 ));
111
112 registry.register(MarketplaceTool::from_kernel(kernel));
114
115 registry.register(SkillForgeTool::from_kernel(kernel));
117
118 if let Some(calendar_tool) = CalendarTool::try_from_kernel(kernel) {
120 registry.register(calendar_tool);
121 }
122
123 registry.register(EmailTool::from_kernel(kernel));
127 if kernel.infra.config().image_gen.enabled {
129 registry.register(ImageGenerationTool::from_kernel(kernel));
130 }
131}