ai_agent/tools/
monitor.rs1use crate::types::*;
5
6pub const MONITOR_TOOL_NAME: &str = "Monitor";
8
9pub struct MonitorTool;
12
13impl MonitorTool {
14 pub fn new() -> Self {
15 Self
16 }
17
18 pub fn name(&self) -> &str {
19 MONITOR_TOOL_NAME
20 }
21
22 pub fn description(&self) -> &str {
23 "Monitor system resources and performance (not implemented)"
24 }
25
26 pub fn user_facing_name(&self, _input: Option<&serde_json::Value>) -> String {
27 "Monitor".to_string()
28 }
29
30 pub fn get_tool_use_summary(&self, _input: Option<&serde_json::Value>) -> Option<String> {
31 None
32 }
33
34 pub fn render_tool_result_message(
35 &self,
36 content: &serde_json::Value,
37 ) -> Option<String> {
38 content["content"].as_str().map(|s| s.to_string())
39 }
40
41 pub fn input_schema(&self) -> ToolInputSchema {
42 ToolInputSchema {
43 schema_type: "object".to_string(),
44 properties: serde_json::json!({}),
45 required: None,
46 }
47 }
48
49 pub async fn execute(
50 &self,
51 _input: serde_json::Value,
52 _context: &ToolContext,
53 ) -> Result<ToolResult, crate::error::AgentError> {
54 Err(crate::error::AgentError::ToolNotImplemented(
55 "Monitor tool is not implemented".to_string(),
56 ))
57 }
58}
59
60impl Default for MonitorTool {
61 fn default() -> Self {
62 Self::new()
63 }
64}