pub(crate) use codex_utils_absolute_path::test_support::PathBufExt; pub(crate) use codex_utils_absolute_path::test_support::test_path_buf; use serde::Serialize; use serde::de::DeserializeOwned; pub(crate) fn test_path_display(path: &str) -> String { test_path_buf(path).display().to_string() } pub(crate) fn session_source_cli() -> T where T: DeserializeOwned, { from_app_server_wire(codex_app_server_protocol::SessionSource::Cli) } pub(crate) fn skill_scope_user() -> T where T: DeserializeOwned, { from_app_server_wire(codex_app_server_protocol::SkillScope::User) } pub(crate) fn skill_scope_repo() -> T where T: DeserializeOwned, { from_app_server_wire(codex_app_server_protocol::SkillScope::Repo) } fn from_app_server_wire(value: impl Serialize) -> T where T: DeserializeOwned, { serde_json::to_value(value) .and_then(serde_json::from_value) .unwrap_or_else(|err| { panic!("app-server wire value should map to legacy helper type: {err}") }) }