gproxy_protocol/protocol/claude/common/server_tools/
text_editor.rs1use serde::{Deserialize, Serialize};
2
3use super::super::JsonObject;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
6#[non_exhaustive]
7pub struct TextEditorCodeExecutionViewResultBlock {
8 pub content: String,
9 pub file_type: TextEditorCodeExecutionFileType,
10 #[serde(rename = "type")]
11 pub type_: TextEditorCodeExecutionViewResultBlockType,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub num_lines: Option<u64>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub start_line: Option<u64>,
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub total_lines: Option<u64>,
18 #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
19 pub extra: JsonObject,
20}
21
22#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
23#[non_exhaustive]
24pub enum TextEditorCodeExecutionFileType {
25 #[serde(rename = "text")]
26 Text,
27 #[serde(rename = "image")]
28 Image,
29 #[serde(rename = "pdf")]
30 Pdf,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
34#[non_exhaustive]
35pub enum TextEditorCodeExecutionViewResultBlockType {
36 #[serde(rename = "text_editor_code_execution_view_result")]
37 TextEditorCodeExecutionViewResult,
38}
39
40#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
41#[non_exhaustive]
42pub struct TextEditorCodeExecutionCreateResultBlock {
43 pub is_file_update: bool,
44 #[serde(rename = "type")]
45 pub type_: TextEditorCodeExecutionCreateResultBlockType,
46 #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
47 pub extra: JsonObject,
48}
49
50#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
51#[non_exhaustive]
52pub enum TextEditorCodeExecutionCreateResultBlockType {
53 #[serde(rename = "text_editor_code_execution_create_result")]
54 TextEditorCodeExecutionCreateResult,
55}
56
57#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
58#[non_exhaustive]
59pub struct TextEditorCodeExecutionStrReplaceResultBlock {
60 #[serde(rename = "type")]
61 pub type_: TextEditorCodeExecutionStrReplaceResultBlockType,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub lines: Option<Vec<String>>,
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub new_lines: Option<u64>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub new_start: Option<u64>,
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub old_lines: Option<u64>,
70 #[serde(skip_serializing_if = "Option::is_none")]
71 pub old_start: Option<u64>,
72 #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
73 pub extra: JsonObject,
74}
75
76#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
77#[non_exhaustive]
78pub enum TextEditorCodeExecutionStrReplaceResultBlockType {
79 #[serde(rename = "text_editor_code_execution_str_replace_result")]
80 TextEditorCodeExecutionStrReplaceResult,
81}