Skip to main content

steer_grpc/client_api/
types.rs

1//! Stable client-facing types. Import from here, not from `steer_core` or `steer_tools`.
2
3use std::collections::HashMap;
4
5pub use steer_core::app::conversation::{
6    AssistantContent, ImageContent, ImageSource, Message, MessageData, ThoughtContent, UserContent,
7};
8
9pub use steer_core::app::domain::types::{
10    CompactionRecord, MessageId, OpId, RequestId, ToolCallId,
11};
12pub use steer_core::config::model::ModelId;
13
14#[derive(Debug, Clone, PartialEq, Eq)]
15pub enum QueuedWorkKind {
16    UserMessage,
17    DirectBash,
18    Unknown,
19}
20
21#[derive(Debug, Clone, PartialEq, Eq)]
22pub struct QueuedWorkItem {
23    pub kind: QueuedWorkKind,
24    pub content: String,
25    pub model: Option<ModelId>,
26    pub queued_at: u64,
27    pub op_id: OpId,
28    pub message_id: MessageId,
29    pub attachment_count: u32,
30}
31
32pub use steer_core::api::provider::TokenUsage;
33pub use steer_core::app::domain::delta::ToolCallDelta;
34pub use steer_core::app::domain::event::{CompactResult, CompactTrigger, ContextWindowUsage};
35
36pub use steer_core::agents::default_agent_spec_id;
37pub use steer_core::primary_agents::default_primary_agent_id;
38
39pub use steer_core::config::model::builtin;
40
41pub use steer_core::config::provider;
42
43pub use steer_tools::result::{
44    BashResult, EditResult, ExternalResult, FileContentResult, FileListResult, GlobResult,
45    GrepResult, ReplaceResult, SearchMatch, SearchResult, TodoListResult, ToolResult,
46};
47pub use steer_tools::{ToolCall, ToolError};
48
49pub use steer_core::session::state::{
50    SessionConfig, SessionPolicyOverrides, SessionToolConfig, WorkspaceConfig,
51};
52
53pub use steer_core::session::McpServerInfo;
54pub use steer_core::session::state::McpConnectionState;
55
56pub use steer_core::app::domain::action::McpServerState;
57
58pub use steer_core::tools::McpTransport;
59
60pub use steer_core::preferences::{EditingMode, NotificationTransport, Preferences};
61
62pub use steer_core::config::provider::ProviderId;
63
64pub use steer_workspace::{LlmStatus, WorkspaceStatus};
65
66#[derive(Debug, Clone)]
67pub struct CreateSessionParams {
68    pub workspace: WorkspaceConfig,
69    pub tool_config: SessionToolConfig,
70    pub metadata: HashMap<String, String>,
71    pub default_model: ModelId,
72    pub primary_agent_id: Option<String>,
73    pub policy_overrides: SessionPolicyOverrides,
74}
75
76impl From<SessionConfig> for CreateSessionParams {
77    fn from(config: SessionConfig) -> Self {
78        Self {
79            workspace: config.workspace,
80            tool_config: config.tool_config,
81            metadata: config.metadata,
82            default_model: config.default_model,
83            primary_agent_id: config.primary_agent_id,
84            policy_overrides: config.policy_overrides,
85        }
86    }
87}