Skip to main content

ai_agent/tools/
send_user_file.rs

1// Source: /data/home/swei/claudecode/openclaudecode/src/tools/SendUserFileTool/prompt.ts
2//! SendUserFile tool - returns null (feature not implemented)
3
4use crate::types::*;
5
6/// SendUserFile tool name (from TypeScript prompt.ts)
7pub const SEND_USER_FILE_TOOL_NAME: &str = "send_user_file";
8
9/// SendUserFile tool - placeholder for sending user files
10/// Feature-gated (KAIROS) in TypeScript
11pub struct SendUserFileTool;
12
13impl SendUserFileTool {
14    pub fn new() -> Self {
15        Self
16    }
17
18    pub fn name(&self) -> &str {
19        SEND_USER_FILE_TOOL_NAME
20    }
21
22    pub fn description(&self) -> &str {
23        "Send a file from the user to the agent (not implemented)"
24    }
25
26    pub fn user_facing_name(&self, _input: Option<&serde_json::Value>) -> String {
27        "SendUserFile".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            "SendUserFile tool is not implemented".to_string(),
56        ))
57    }
58}
59
60impl Default for SendUserFileTool {
61    fn default() -> Self {
62        Self::new()
63    }
64}