systemprompt_models/api/
cli_gateway.rs

1//! CLI Gateway models for remote command execution.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct CliExecuteRequest {
7    pub args: Vec<String>,
8    #[serde(default = "default_timeout")]
9    pub timeout_secs: u64,
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub context_id: Option<String>,
12}
13
14const fn default_timeout() -> u64 {
15    300
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(tag = "type", rename_all = "snake_case")]
20pub enum CliOutputEvent {
21    Started { pid: u32 },
22    Stdout { data: String },
23    Stderr { data: String },
24    ExitCode { code: i32 },
25    Error { message: String },
26}