@@ -24,6 +24,7 @@ use mcp_types::CallToolResult;
use mcp_types ::Resource as McpResource ;
use mcp_types ::ResourceTemplate as McpResourceTemplate ;
use mcp_types ::Tool as McpTool ;
use schemars ::JsonSchema ;
use serde ::Deserialize ;
use serde ::Serialize ;
use serde_json ::Value ;
@@ -40,7 +41,7 @@ pub const ENVIRONMENT_CONTEXT_CLOSE_TAG: &str = "</environment_context>";
pub const USER_MESSAGE_BEGIN : & str = " ## My request for Codex: " ;
/// Submission Queue Entry - requests from user
#[ derive(Debug, Clone, Deserialize, Serialize) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema ) ]
pub struct Submission {
/// Unique id for this Submission to correlate with Events
pub id : String ,
@@ -49,7 +50,7 @@ pub struct Submission {
}
/// Submission operation
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema ) ]
#[ serde(tag = " type " , rename_all = " snake_case " ) ]
#[ allow(clippy::large_enum_variant) ]
#[ non_exhaustive ]
@@ -182,7 +183,20 @@ pub enum Op {
/// Determines the conditions under which the user is consulted to approve
/// running the command proposed by Codex.
#[ derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, Serialize, Deserialize, Display, TS) ]
#[ derive(
Debug,
Clone,
Copy,
Default,
PartialEq,
Eq,
Hash,
Serialize,
Deserialize,
Display,
JsonSchema,
TS,
) ]
#[ serde(rename_all = " kebab-case " ) ]
#[ strum(serialize_all = " kebab-case " ) ]
pub enum AskForApproval {
@@ -209,7 +223,7 @@ pub enum AskForApproval {
}
/// Determines execution restrictions for model shell commands.
#[ derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Display, TS) ]
#[ derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Display, JsonSchema, TS) ]
#[ strum(serialize_all = " kebab-case " ) ]
#[ serde(tag = " mode " , rename_all = " kebab-case " ) ]
pub enum SandboxPolicy {
@@ -252,7 +266,7 @@ pub enum SandboxPolicy {
/// read‑ only even when the root is writable. This is primarily used to ensure
/// top‑ level VCS metadata directories (e.g. `.git`) under a writable root are
/// not modified by the agent.
#[ derive(Debug, Clone, PartialEq, Eq) ]
#[ derive(Debug, Clone, PartialEq, Eq, JsonSchema ) ]
pub struct WritableRoot {
/// Absolute path, by construction.
pub root : PathBuf ,
@@ -391,7 +405,7 @@ impl SandboxPolicy {
/// User input
#[ non_exhaustive ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema ) ]
#[ serde(tag = " type " , rename_all = " snake_case " ) ]
pub enum InputItem {
Text {
@@ -410,7 +424,7 @@ pub enum InputItem {
}
/// Event Queue Entry - events from agent
#[ derive(Debug, Clone, Deserialize, Serialize) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema ) ]
pub struct Event {
/// Submission `id` that this event is correlated with.
pub id : String ,
@@ -420,7 +434,7 @@ pub struct Event {
/// Response event from the agent
/// NOTE: Make sure none of these values have optional types, as it will mess up the extension code-gen.
#[ derive(Debug, Clone, Deserialize, Serialize, Display, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, Display, JsonSchema, TS) ]
#[ serde(tag = " type " , rename_all = " snake_case " ) ]
#[ strum(serialize_all = " snake_case " ) ]
pub enum EventMsg {
@@ -526,29 +540,29 @@ pub enum EventMsg {
ExitedReviewMode ( ExitedReviewModeEvent ) ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ExitedReviewModeEvent {
pub review_output : Option < ReviewOutputEvent > ,
}
// Individual event payload types matching each `EventMsg` variant.
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ErrorEvent {
pub message : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct TaskCompleteEvent {
pub last_agent_message : Option < String > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct TaskStartedEvent {
pub model_context_window : Option < i64 > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, Default, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, Default, JsonSchema, TS) ]
pub struct TokenUsage {
#[ ts(type = " number " ) ]
pub input_tokens : i64 ,
@@ -562,7 +576,7 @@ pub struct TokenUsage {
pub total_tokens : i64 ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct TokenUsageInfo {
pub total_token_usage : TokenUsage ,
pub last_token_usage : TokenUsage ,
@@ -625,19 +639,19 @@ impl TokenUsageInfo {
}
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct TokenCountEvent {
pub info : Option < TokenUsageInfo > ,
pub rate_limits : Option < RateLimitSnapshot > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct RateLimitSnapshot {
pub primary : Option < RateLimitWindow > ,
pub secondary : Option < RateLimitWindow > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct RateLimitWindow {
/// Percentage (0-100) of the window that has been consumed.
pub used_percent : f64 ,
@@ -711,7 +725,7 @@ impl TokenUsage {
}
}
#[ derive(Debug, Clone, Deserialize, Serialize) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema ) ]
pub struct FinalOutput {
pub token_usage : TokenUsage ,
}
@@ -752,12 +766,12 @@ impl fmt::Display for FinalOutput {
}
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentMessageEvent {
pub message : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
#[ serde(rename_all = " snake_case " ) ]
pub enum InputMessageKind {
/// Plain user text (default)
@@ -768,7 +782,7 @@ pub enum InputMessageKind {
EnvironmentContext ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct UserMessageEvent {
pub message : String ,
#[ serde(skip_serializing_if = " Option::is_none " ) ]
@@ -820,35 +834,35 @@ fn ends_with_ignore_ascii_case(text: &str, suffix: &str) -> bool {
. all ( | ( a , b ) | a . eq_ignore_ascii_case ( b ) )
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentMessageDeltaEvent {
pub delta : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentReasoningEvent {
pub text : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentReasoningRawContentEvent {
pub text : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentReasoningRawContentDeltaEvent {
pub delta : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentReasoningSectionBreakEvent { }
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct AgentReasoningDeltaEvent {
pub delta : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct McpInvocation {
/// Name of the MCP server as defined in the config.
pub server : String ,
@@ -858,14 +872,14 @@ pub struct McpInvocation {
pub arguments : Option < serde_json ::Value > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct McpToolCallBeginEvent {
/// Identifier so this can be paired with the McpToolCallEnd event.
pub call_id : String ,
pub invocation : McpInvocation ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct McpToolCallEndEvent {
/// Identifier for the corresponding McpToolCallBegin that finished.
pub call_id : String ,
@@ -885,12 +899,12 @@ impl McpToolCallEndEvent {
}
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct WebSearchBeginEvent {
pub call_id : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct WebSearchEndEvent {
pub call_id : String ,
pub query : String ,
@@ -898,20 +912,20 @@ pub struct WebSearchEndEvent {
/// Response payload for `Op::GetHistory` containing the current session's
/// in-memory transcript.
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ConversationPathResponseEvent {
pub conversation_id : ConversationId ,
pub path : PathBuf ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ResumedHistory {
pub conversation_id : ConversationId ,
pub history : Vec < RolloutItem > ,
pub rollout_path : PathBuf ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub enum InitialHistory {
New ,
Resumed ( ResumedHistory ) ,
@@ -953,7 +967,7 @@ impl InitialHistory {
}
}
#[ derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq, Eq, TS, Default) ]
#[ derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq, Eq, JsonSchema, TS, Default) ]
#[ serde(rename_all = " lowercase " ) ]
#[ ts(rename_all = " lowercase " ) ]
pub enum SessionSource {
@@ -966,7 +980,7 @@ pub enum SessionSource {
Unknown ,
}
#[ derive(Serialize, Deserialize, Clone, Debug, TS) ]
#[ derive(Serialize, Deserialize, Clone, Debug, JsonSchema, TS) ]
pub struct SessionMeta {
pub id : ConversationId ,
pub timestamp : String ,
@@ -992,7 +1006,7 @@ impl Default for SessionMeta {
}
}
#[ derive(Serialize, Deserialize, Debug, Clone, TS) ]
#[ derive(Serialize, Deserialize, Debug, Clone, JsonSchema, TS) ]
pub struct SessionMetaLine {
#[ serde(flatten) ]
pub meta : SessionMeta ,
@@ -1000,7 +1014,7 @@ pub struct SessionMetaLine {
pub git : Option < GitInfo > ,
}
#[ derive(Serialize, Deserialize, Debug, Clone, TS) ]
#[ derive(Serialize, Deserialize, Debug, Clone, JsonSchema, TS) ]
#[ serde(tag = " type " , content = " payload " , rename_all = " snake_case " ) ]
pub enum RolloutItem {
SessionMeta ( SessionMetaLine ) ,
@@ -1010,7 +1024,7 @@ pub enum RolloutItem {
EventMsg ( EventMsg ) ,
}
#[ derive(Serialize, Deserialize, Clone, Debug, TS) ]
#[ derive(Serialize, Deserialize, Clone, Debug, JsonSchema, TS) ]
pub struct CompactedItem {
pub message : String ,
}
@@ -1027,7 +1041,7 @@ impl From<CompactedItem> for ResponseItem {
}
}
#[ derive(Serialize, Deserialize, Clone, Debug, TS) ]
#[ derive(Serialize, Deserialize, Clone, Debug, JsonSchema, TS) ]
pub struct TurnContextItem {
pub cwd : PathBuf ,
pub approval_policy : AskForApproval ,
@@ -1038,14 +1052,14 @@ pub struct TurnContextItem {
pub summary : ReasoningSummaryConfig ,
}
#[ derive(Serialize, Deserialize, Clone) ]
#[ derive(Serialize, Deserialize, Clone, JsonSchema ) ]
pub struct RolloutLine {
pub timestamp : String ,
#[ serde(flatten) ]
pub item : RolloutItem ,
}
#[ derive(Serialize, Deserialize, Clone, Debug, TS) ]
#[ derive(Serialize, Deserialize, Clone, Debug, JsonSchema, TS) ]
pub struct GitInfo {
/// Current commit hash (SHA)
#[ serde(skip_serializing_if = " Option::is_none " ) ]
@@ -1059,14 +1073,14 @@ pub struct GitInfo {
}
/// Review request sent to the review session.
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
pub struct ReviewRequest {
pub prompt : String ,
pub user_facing_hint : String ,
}
/// Structured review result produced by a child review session.
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
pub struct ReviewOutputEvent {
pub findings : Vec < ReviewFinding > ,
pub overall_correctness : String ,
@@ -1086,7 +1100,7 @@ impl Default for ReviewOutputEvent {
}
/// A single review finding describing an observed issue or recommendation.
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
pub struct ReviewFinding {
pub title : String ,
pub body : String ,
@@ -1096,20 +1110,20 @@ pub struct ReviewFinding {
}
/// Location of the code related to a review finding.
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
pub struct ReviewCodeLocation {
pub absolute_file_path : PathBuf ,
pub line_range : ReviewLineRange ,
}
/// Inclusive line range in a file associated with the finding.
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
pub struct ReviewLineRange {
pub start : u32 ,
pub end : u32 ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ExecCommandBeginEvent {
/// Identifier so this can be paired with the ExecCommandEnd event.
pub call_id : String ,
@@ -1120,7 +1134,7 @@ pub struct ExecCommandBeginEvent {
pub parsed_cmd : Vec < ParsedCommand > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ExecCommandEndEvent {
/// Identifier for the ExecCommandBegin that finished.
pub call_id : String ,
@@ -1140,7 +1154,7 @@ pub struct ExecCommandEndEvent {
pub formatted_output : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ViewImageToolCallEvent {
/// Identifier for the originating tool call.
pub call_id : String ,
@@ -1148,7 +1162,7 @@ pub struct ViewImageToolCallEvent {
pub path : PathBuf ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
#[ serde(rename_all = " snake_case " ) ]
pub enum ExecOutputStream {
Stdout ,
@@ -1156,7 +1170,7 @@ pub enum ExecOutputStream {
}
#[ serde_as ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
pub struct ExecCommandOutputDeltaEvent {
/// Identifier for the ExecCommandBegin that produced this chunk.
pub call_id : String ,
@@ -1164,11 +1178,12 @@ pub struct ExecCommandOutputDeltaEvent {
pub stream : ExecOutputStream ,
/// Raw bytes from the stream (may not be valid UTF-8).
#[ serde_as(as = " serde_with::base64::Base64 " ) ]
#[ schemars(with = " String " ) ]
#[ ts(type = " string " ) ]
pub chunk : Vec < u8 > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ExecApprovalRequestEvent {
/// Identifier for the associated exec call, if available.
pub call_id : String ,
@@ -1182,7 +1197,7 @@ pub struct ExecApprovalRequestEvent {
pub parsed_cmd : Vec < ParsedCommand > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ApplyPatchApprovalRequestEvent {
/// Responses API call id for the associated patch apply call, if available.
pub call_id : String ,
@@ -1195,22 +1210,22 @@ pub struct ApplyPatchApprovalRequestEvent {
pub grant_root : Option < PathBuf > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct BackgroundEventEvent {
pub message : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct StreamErrorEvent {
pub message : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct StreamInfoEvent {
pub message : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct PatchApplyBeginEvent {
/// Identifier so this can be paired with the PatchApplyEnd event.
pub call_id : String ,
@@ -1220,7 +1235,7 @@ pub struct PatchApplyBeginEvent {
pub changes : HashMap < PathBuf , FileChange > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct PatchApplyEndEvent {
/// Identifier for the PatchApplyBegin that finished.
pub call_id : String ,
@@ -1232,12 +1247,12 @@ pub struct PatchApplyEndEvent {
pub success : bool ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct TurnDiffEvent {
pub unified_diff : String ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct GetHistoryEntryResponseEvent {
pub offset : usize ,
pub log_id : u64 ,
@@ -1246,7 +1261,7 @@ pub struct GetHistoryEntryResponseEvent {
pub entry : Option < HistoryEntry > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct McpListToolsResponseEvent {
/// Fully qualified tool name -> tool definition.
pub tools : std ::collections ::HashMap < String , McpTool > ,
@@ -1258,7 +1273,7 @@ pub struct McpListToolsResponseEvent {
pub auth_statuses : std ::collections ::HashMap < String , McpAuthStatus > ,
}
#[ derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, TS) ]
#[ derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, JsonSchema, TS) ]
#[ serde(rename_all = " snake_case " ) ]
#[ ts(rename_all = " snake_case " ) ]
pub enum McpAuthStatus {
@@ -1281,12 +1296,12 @@ impl fmt::Display for McpAuthStatus {
}
/// Response payload for `Op::ListCustomPrompts`.
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct ListCustomPromptsResponseEvent {
pub custom_prompts : Vec < CustomPrompt > ,
}
#[ derive(Debug, Default, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Default, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct SessionConfiguredEvent {
/// Name left as session_id instead of conversation_id for backwards compatibility.
pub session_id : ConversationId ,
@@ -1313,7 +1328,9 @@ pub struct SessionConfiguredEvent {
}
/// User's decision in response to an ExecApprovalRequest.
#[ derive(Debug, Default, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Display, TS) ]
#[ derive(
Debug, Default, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Display, JsonSchema, TS,
) ]
#[ serde(rename_all = " snake_case " ) ]
pub enum ReviewDecision {
/// User has approved this command and the agent should execute it.
@@ -1334,7 +1351,7 @@ pub enum ReviewDecision {
Abort ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
#[ serde(rename_all = " snake_case " ) ]
pub enum FileChange {
Add {
@@ -1349,7 +1366,7 @@ pub enum FileChange {
} ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct Chunk {
/// 1-based line index of the first line in the original file
pub orig_index : u32 ,
@@ -1357,12 +1374,12 @@ pub struct Chunk {
pub inserted_lines : Vec < String > ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, JsonSchema, TS) ]
pub struct TurnAbortedEvent {
pub reason : TurnAbortReason ,
}
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS) ]
#[ derive(Debug, Clone, Deserialize, Serialize, PartialEq, JsonSchema, TS) ]
#[ serde(rename_all = " snake_case " ) ]
pub enum TurnAbortReason {
Interrupted ,