use crate::JsonSchema; use crate::TS; use serde::Deserialize; use serde::Serialize; use std::collections::BTreeMap; use std::path::PathBuf; #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")] pub struct FeedbackUploadParams { pub classification: String, #[ts(optional = nullable)] pub reason: Option, #[ts(optional = nullable)] pub thread_id: Option, #[serde(default, skip_serializing_if = "std::ops::Not::not")] pub include_logs: bool, #[ts(optional = nullable)] pub extra_log_files: Option>, #[ts(optional = nullable)] pub tags: Option>, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)] #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")] pub struct FeedbackUploadResponse { pub thread_id: String, /// Whitespace-normalized SHA-256 of the session base instructions, matching the /// uploaded `prompt_hash` tag. Does not include later developer messages. /// Null when the reported rollout has no prompt metadata. #[serde(default)] pub prompt_hash: Option, }