gproxy_protocol/claude/common/
mod.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4pub mod blocks;
5pub mod cache;
6pub mod container;
7pub mod context_management;
8pub mod diagnostics;
9pub mod errors;
10pub mod fallback;
11pub mod mcp;
12pub mod output;
13pub mod server_tools;
14pub mod stop;
15pub mod thinking;
16pub mod tools;
17pub mod types;
18pub mod usage;
19
20pub use blocks::*;
21pub use cache::*;
22pub use container::*;
23pub use context_management::*;
24pub use diagnostics::*;
25pub use errors::*;
26pub use fallback::*;
27pub use mcp::*;
28pub use output::*;
29pub use server_tools::*;
30pub use stop::*;
31pub use thinking::*;
32pub use tools::*;
33pub use types::*;
34pub use usage::*;
35
36pub type JsonObject = serde_json::Map<String, Value>;
37
38#[derive(
39 Debug,
40 Clone,
41 PartialEq,
42 Eq,
43 Serialize,
44 Deserialize,
45 Default,
46 gproxy_protocol_macros::WireBuilder,
47)]
48#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
49pub struct AnthropicBetaHeaders {
50 #[serde(
51 rename = "anthropic-beta",
52 default,
53 skip_serializing_if = "Option::is_none"
54 )]
55 pub anthropic_beta: Option<Vec<AnthropicBeta>>,
56 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
57 pub rest: serde_json::Map<String, serde_json::Value>,
58}
59
60#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
61#[serde(untagged)]
62#[non_exhaustive]
63pub enum StringOrArray<T> {
64 String(String),
65 Array(Vec<T>),
66 Raw(serde_json::Value),
67}
68
69#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
70#[serde(untagged)]
71#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
72pub enum BoolOrStringArray {
73 Bool(bool),
74 Array(Vec<String>),
75}
76
77#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
78#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
79pub struct TypedObject {
80 #[serde(rename = "type")]
81 pub type_: String,
82 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
83 pub rest: serde_json::Map<String, serde_json::Value>,
84}
85
86#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
87#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
88pub struct Citation {
89 #[serde(rename = "type")]
90 pub type_: CitationType,
91 #[serde(skip_serializing_if = "Option::is_none")]
92 pub cited_text: Option<String>,
93 #[serde(skip_serializing_if = "Option::is_none")]
94 pub document_index: Option<u64>,
95 #[serde(skip_serializing_if = "Option::is_none")]
96 pub document_title: Option<String>,
97 #[serde(skip_serializing_if = "Option::is_none")]
98 pub file_id: Option<String>,
99 #[serde(skip_serializing_if = "Option::is_none")]
100 pub start_char_index: Option<u64>,
101 #[serde(skip_serializing_if = "Option::is_none")]
102 pub end_char_index: Option<u64>,
103 #[serde(skip_serializing_if = "Option::is_none")]
104 pub start_page_number: Option<u64>,
105 #[serde(skip_serializing_if = "Option::is_none")]
106 pub end_page_number: Option<u64>,
107 #[serde(skip_serializing_if = "Option::is_none")]
108 pub start_block_index: Option<u64>,
109 #[serde(skip_serializing_if = "Option::is_none")]
110 pub end_block_index: Option<u64>,
111 #[serde(skip_serializing_if = "Option::is_none")]
112 pub search_result_index: Option<u64>,
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub encrypted_index: Option<String>,
115 #[serde(skip_serializing_if = "Option::is_none")]
116 pub source: Option<String>,
117 #[serde(skip_serializing_if = "Option::is_none")]
118 pub title: Option<String>,
119 #[serde(skip_serializing_if = "Option::is_none")]
120 pub url: Option<String>,
121 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
122 pub rest: serde_json::Map<String, serde_json::Value>,
123}
124
125#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
126#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
127pub struct CitationConfig {
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub enabled: Option<bool>,
130 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
131 pub rest: serde_json::Map<String, serde_json::Value>,
132}
133
134#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
135#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
136pub struct Metadata {
137 #[serde(skip_serializing_if = "Option::is_none")]
138 pub user_id: Option<String>,
139 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
140 pub rest: serde_json::Map<String, serde_json::Value>,
141}
142
143#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
144#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
145pub struct JsonSchemaFormat {
146 #[serde(rename = "type")]
147 pub type_: JsonSchemaFormatType,
148 pub schema: JsonObject,
149 #[serde(default, flatten, skip_serializing_if = "serde_json::Map::is_empty")]
150 pub rest: serde_json::Map<String, serde_json::Value>,
151}