Skip to main content

vtcode_config/core/agent/
codex_app_server.rs

1//! Codex app-server sidecar configuration.
2
3use serde::{Deserialize, Serialize};
4
5#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6#[derive(Debug, Clone, Deserialize, Serialize)]
7pub struct AgentCodexAppServerConfig {
8    /// Executable used to launch the official Codex app-server sidecar.
9    #[serde(default = "default_codex_app_server_command")]
10    pub command: String,
11    /// Arguments passed before VT Code appends `--listen stdio://`.
12    #[serde(default = "default_codex_app_server_args")]
13    pub args: Vec<String>,
14    /// Maximum startup handshake time when launching the sidecar.
15    #[serde(default = "default_codex_app_server_startup_timeout_secs")]
16    pub startup_timeout_secs: u64,
17    /// Enable experimental Codex app-server sidecar features.
18    #[serde(default = "default_codex_app_server_experimental_features")]
19    pub experimental_features: bool,
20}
21
22impl Default for AgentCodexAppServerConfig {
23    fn default() -> Self {
24        Self {
25            command: default_codex_app_server_command(),
26            args: default_codex_app_server_args(),
27            startup_timeout_secs: default_codex_app_server_startup_timeout_secs(),
28            experimental_features: default_codex_app_server_experimental_features(),
29        }
30    }
31}
32
33#[inline]
34fn default_codex_app_server_command() -> String {
35    "codex".to_string()
36}
37
38#[inline]
39fn default_codex_app_server_args() -> Vec<String> {
40    vec!["app-server".to_string()]
41}
42
43#[inline]
44const fn default_codex_app_server_startup_timeout_secs() -> u64 {
45    10
46}
47
48#[inline]
49const fn default_codex_app_server_experimental_features() -> bool {
50    false
51}