Skip to main content

gproxy_protocol/claude/common/tools/
wire.rs

1use serde::{Deserialize, Serialize};
2
3macro_rules! single_wire_enum {
4    ($name:ident { $variant:ident => $wire:literal }) => {
5        #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6        #[non_exhaustive]
7        pub enum $name {
8            #[serde(rename = $wire)]
9            $variant,
10        }
11    };
12}
13
14single_wire_enum!(BashToolName { Bash => "bash" });
15single_wire_enum!(BashTool20241022Type { Bash20241022 => "bash_20241022" });
16single_wire_enum!(BashTool20250124Type { Bash20250124 => "bash_20250124" });
17single_wire_enum!(CodeExecutionToolName { CodeExecution => "code_execution" });
18single_wire_enum!(CodeExecutionTool20250522Type { CodeExecution20250522 => "code_execution_20250522" });
19single_wire_enum!(CodeExecutionTool20250825Type { CodeExecution20250825 => "code_execution_20250825" });
20single_wire_enum!(CodeExecutionTool20260120Type { CodeExecution20260120 => "code_execution_20260120" });
21single_wire_enum!(CodeExecutionTool20260521Type { CodeExecution20260521 => "code_execution_20260521" });
22single_wire_enum!(MemoryToolName { Memory => "memory" });
23single_wire_enum!(MemoryTool20250818Type { Memory20250818 => "memory_20250818" });
24single_wire_enum!(ToolSearchBm25ToolName { ToolSearchBm25 => "tool_search_tool_bm25" });
25single_wire_enum!(ToolSearchRegexToolName { ToolSearchRegex => "tool_search_tool_regex" });
26single_wire_enum!(StrReplaceEditorToolName { StrReplaceEditor => "str_replace_editor" });
27single_wire_enum!(StrReplaceBasedEditToolName { StrReplaceBasedEditTool => "str_replace_based_edit_tool" });
28single_wire_enum!(TextEditorTool20241022Type { TextEditor20241022 => "text_editor_20241022" });
29single_wire_enum!(TextEditorTool20250124Type { TextEditor20250124 => "text_editor_20250124" });
30single_wire_enum!(TextEditorTool20250429Type { TextEditor20250429 => "text_editor_20250429" });
31single_wire_enum!(TextEditorTool20250728Type { TextEditor20250728 => "text_editor_20250728" });
32single_wire_enum!(ComputerToolName { Computer => "computer" });
33single_wire_enum!(ComputerTool20241022Type { Computer20241022 => "computer_20241022" });
34single_wire_enum!(ComputerTool20250124Type { Computer20250124 => "computer_20250124" });
35single_wire_enum!(ComputerTool20251124Type { Computer20251124 => "computer_20251124" });
36single_wire_enum!(WebSearchToolName { WebSearch => "web_search" });
37single_wire_enum!(WebSearchTool20250305Type { WebSearch20250305 => "web_search_20250305" });
38single_wire_enum!(WebSearchTool20260209Type { WebSearch20260209 => "web_search_20260209" });
39single_wire_enum!(WebSearchTool20260318Type { WebSearch20260318 => "web_search_20260318" });
40single_wire_enum!(WebFetchToolName { WebFetch => "web_fetch" });
41single_wire_enum!(WebFetchTool20250910Type { WebFetch20250910 => "web_fetch_20250910" });
42single_wire_enum!(WebFetchTool20260209Type { WebFetch20260209 => "web_fetch_20260209" });
43single_wire_enum!(WebFetchTool20260309Type { WebFetch20260309 => "web_fetch_20260309" });
44single_wire_enum!(WebFetchTool20260318Type { WebFetch20260318 => "web_fetch_20260318" });
45single_wire_enum!(AdvisorToolName { Advisor => "advisor" });
46single_wire_enum!(AdvisorTool20260301Type { Advisor20260301 => "advisor_20260301" });
47
48#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
49#[non_exhaustive]
50pub enum ToolSearchBm25ToolType {
51    #[serde(rename = "tool_search_tool_bm25_20251119")]
52    ToolSearchBm2520251119,
53    #[serde(rename = "tool_search_tool_bm25")]
54    ToolSearchBm25,
55}
56
57#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
58#[non_exhaustive]
59pub enum ToolSearchRegexToolType {
60    #[serde(rename = "tool_search_tool_regex_20251119")]
61    ToolSearchRegex20251119,
62    #[serde(rename = "tool_search_tool_regex")]
63    ToolSearchRegex,
64}