oxios_kernel/tools/kernel/
mod.rs1pub mod agent_tool;
18pub mod budget_tool;
19pub mod cron_tool;
20pub mod knowledge_tool;
21pub mod persona_tool;
22pub mod resource_tool;
23pub mod security_tool;
24pub mod space_tool;
25
26pub use agent_tool::AgentTool as KernelAgentTool;
27pub use budget_tool::BudgetTool;
28pub use cron_tool::CronTool;
29pub use knowledge_tool::KnowledgeTool;
30pub use persona_tool::PersonaTool;
31pub use resource_tool::ResourceTool;
32pub use security_tool::SecurityTool;
33pub use space_tool::SpaceTool;
34
35use crate::types::AgentId;
36use crate::KernelHandle;
37use oxi_sdk::ToolRegistry;
38
39pub fn register_all_kernel_tools(registry: &ToolRegistry, kernel: &KernelHandle, _agent_id: &str) {
44 let agent_uuid = AgentId::new_v4();
45
46 registry.register(crate::tools::ExecTool::from_kernel(kernel));
48
49 registry.register(crate::tools::MemoryReadTool::from_kernel(kernel));
51 registry.register(crate::tools::MemorySearchTool::from_kernel(kernel));
52 registry.register(crate::tools::MemoryWriteTool::from_kernel(kernel));
53
54 registry.register(SpaceTool::from_kernel(kernel));
56 registry.register(KernelAgentTool::from_kernel(kernel));
57 registry.register(PersonaTool::from_kernel(kernel));
58 registry.register(CronTool::from_kernel(kernel));
59 registry.register(SecurityTool::from_kernel(kernel));
60 registry.register(BudgetTool::from_kernel(kernel));
61 registry.register(ResourceTool::from_kernel(kernel));
62
63 registry.register(crate::tools::A2aDelegateTool::from_kernel(
65 kernel, agent_uuid,
66 ));
67 registry.register(crate::tools::A2aSendTool::from_kernel(kernel, agent_uuid));
68 registry.register(crate::tools::A2aQueryTool::from_kernel(kernel));
69
70 registry.register(crate::tools::McpToolWrapper::from_kernel(
72 kernel,
73 "",
74 "",
75 "MCP tools via bridge".into(),
76 serde_json::json!({"type": "object", "properties": {}}),
77 ));
78
79 registry.register(crate::tools::ProgramTool::from_kernel(kernel));
81
82 registry.register(KnowledgeTool::from_kernel(kernel));
84
85 #[cfg(feature = "browser")]
87 {
88 registry.register(crate::tools::BrowserTool::from_kernel(kernel));
89 }
90}