Skip to main content

gproxy_protocol/protocol/claude/common/server_tools/
payloads.rs

1use serde::{Deserialize, Serialize};
2
3use super::super::{DocumentBlock, JsonObject, StopReason, ToolReferenceBlock};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
6pub struct WebFetchResultBlock {
7    pub content: DocumentBlock,
8    #[serde(rename = "type")]
9    pub type_: WebFetchResultBlockType,
10    pub url: String,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub retrieved_at: Option<String>,
13    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
14    pub extra: JsonObject,
15}
16
17#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18pub enum WebFetchResultBlockType {
19    #[serde(rename = "web_fetch_result")]
20    WebFetchResult,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct AdvisorResultBlock {
25    pub text: String,
26    #[serde(rename = "type")]
27    pub type_: AdvisorResultBlockType,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub stop_reason: Option<StopReason>,
30    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
31    pub extra: JsonObject,
32}
33
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35pub enum AdvisorResultBlockType {
36    #[serde(rename = "advisor_result")]
37    AdvisorResult,
38}
39
40#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
41pub struct AdvisorRedactedResultBlock {
42    pub encrypted_content: String,
43    #[serde(rename = "type")]
44    pub type_: AdvisorRedactedResultBlockType,
45    #[serde(skip_serializing_if = "Option::is_none")]
46    pub stop_reason: Option<StopReason>,
47    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
48    pub extra: JsonObject,
49}
50
51#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
52pub enum AdvisorRedactedResultBlockType {
53    #[serde(rename = "advisor_redacted_result")]
54    AdvisorRedactedResult,
55}
56
57#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
58pub struct CodeExecutionOutputBlock {
59    pub file_id: String,
60    #[serde(rename = "type")]
61    pub type_: CodeExecutionOutputBlockType,
62    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
63    pub extra: JsonObject,
64}
65
66#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
67pub enum CodeExecutionOutputBlockType {
68    #[serde(rename = "code_execution_output")]
69    CodeExecutionOutput,
70}
71
72#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
73pub struct CodeExecutionResultBlock {
74    pub content: Vec<CodeExecutionOutputBlock>,
75    pub return_code: i64,
76    pub stderr: String,
77    pub stdout: String,
78    #[serde(rename = "type")]
79    pub type_: CodeExecutionResultBlockType,
80    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
81    pub extra: JsonObject,
82}
83
84#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
85pub enum CodeExecutionResultBlockType {
86    #[serde(rename = "code_execution_result")]
87    CodeExecutionResult,
88}
89
90#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
91pub struct EncryptedCodeExecutionResultBlock {
92    pub content: Vec<CodeExecutionOutputBlock>,
93    pub encrypted_stdout: String,
94    pub return_code: i64,
95    pub stderr: String,
96    #[serde(rename = "type")]
97    pub type_: EncryptedCodeExecutionResultBlockType,
98    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
99    pub extra: JsonObject,
100}
101
102#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
103pub enum EncryptedCodeExecutionResultBlockType {
104    #[serde(rename = "encrypted_code_execution_result")]
105    EncryptedCodeExecutionResult,
106}
107
108#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
109pub struct BashCodeExecutionOutputBlock {
110    pub file_id: String,
111    #[serde(rename = "type")]
112    pub type_: BashCodeExecutionOutputBlockType,
113    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
114    pub extra: JsonObject,
115}
116
117#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
118pub enum BashCodeExecutionOutputBlockType {
119    #[serde(rename = "bash_code_execution_output")]
120    BashCodeExecutionOutput,
121}
122
123#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
124pub struct BashCodeExecutionResultBlock {
125    pub content: Vec<BashCodeExecutionOutputBlock>,
126    pub return_code: i64,
127    pub stderr: String,
128    pub stdout: String,
129    #[serde(rename = "type")]
130    pub type_: BashCodeExecutionResultBlockType,
131    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
132    pub extra: JsonObject,
133}
134
135#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
136pub enum BashCodeExecutionResultBlockType {
137    #[serde(rename = "bash_code_execution_result")]
138    BashCodeExecutionResult,
139}
140
141#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
142pub struct ToolSearchToolSearchResultBlock {
143    pub tool_references: Vec<ToolReferenceBlock>,
144    #[serde(rename = "type")]
145    pub type_: ToolSearchToolSearchResultBlockType,
146    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
147    pub extra: JsonObject,
148}
149
150#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
151pub enum ToolSearchToolSearchResultBlockType {
152    #[serde(rename = "tool_search_tool_search_result")]
153    ToolSearchToolSearchResult,
154}