Skip to main content

steer_grpc/client_api/
event.rs

1use super::types::{
2    CompactResult, CompactionRecord, McpServerState, Message, MessageId, ModelId, OpId,
3    QueuedWorkItem, RequestId, SessionConfig, ToolCall, ToolCallDelta, ToolCallId, ToolResult,
4};
5
6#[derive(Debug, Clone)]
7pub enum ClientEvent {
8    AssistantMessageAdded {
9        message: Message,
10        model: ModelId,
11    },
12    UserMessageAdded {
13        message: Message,
14    },
15    ToolMessageAdded {
16        message: Message,
17    },
18    MessageUpdated {
19        message: Message,
20    },
21    MessageDelta {
22        id: MessageId,
23        delta: String,
24    },
25    ThinkingDelta {
26        op_id: OpId,
27        message_id: MessageId,
28        delta: String,
29    },
30    ToolCallDelta {
31        op_id: OpId,
32        message_id: MessageId,
33        tool_call_id: ToolCallId,
34        delta: ToolCallDelta,
35    },
36
37    CompactResult {
38        result: CompactResult,
39    },
40
41    ConversationCompacted {
42        record: CompactionRecord,
43    },
44
45    ToolStarted {
46        id: ToolCallId,
47        name: String,
48        parameters: serde_json::Value,
49    },
50    ToolCompleted {
51        id: ToolCallId,
52        name: String,
53        result: ToolResult,
54    },
55    ToolFailed {
56        id: ToolCallId,
57        name: String,
58        error: String,
59    },
60
61    ApprovalRequested {
62        request_id: RequestId,
63        tool_call: ToolCall,
64    },
65
66    ProcessingStarted {
67        op_id: OpId,
68    },
69    ProcessingCompleted {
70        op_id: OpId,
71    },
72    OperationCancelled {
73        op_id: OpId,
74        pending_tool_calls: usize,
75        popped_queued_item: Option<QueuedWorkItem>,
76    },
77    WorkspaceChanged,
78    WorkspaceFiles {
79        files: Vec<String>,
80    },
81    Error {
82        message: String,
83    },
84    McpServerStateChanged {
85        server_name: String,
86        state: McpServerState,
87    },
88    SessionConfigUpdated {
89        config: Box<SessionConfig>,
90        primary_agent_id: String,
91    },
92
93    QueueUpdated {
94        head: Option<QueuedWorkItem>,
95        count: usize,
96    },
97}