pub struct CodexCapabilities {
pub cache_key: CapabilityCacheKey,
pub fingerprint: Option<BinaryFingerprint>,
pub version: Option<CodexVersionInfo>,
pub features: CodexFeatureFlags,
pub probe_plan: CapabilityProbePlan,
pub collected_at: SystemTime,
}Expand description
Snapshot of Codex CLI capabilities derived from probing a specific binary.
Instances of this type are intended to be cached per binary path so callers can
gate optional flags (like --output-schema) without repeatedly spawning the CLI.
A process-wide HashMap<CapabilityCacheKey, CodexCapabilities> (behind a mutex/once)
keeps probes cheap; entries should use canonical binary paths where possible and
ship a BinaryFingerprint so we can invalidate stale snapshots when the binary
on disk changes.
Fields§
§cache_key: CapabilityCacheKeyCanonical path used as the cache key.
fingerprint: Option<BinaryFingerprint>File metadata used to detect when a cached entry is stale.
version: Option<CodexVersionInfo>Parsed output from codex --version; None when the command fails.
features: CodexFeatureFlagsKnown feature toggles; fields default to false when detection fails.
probe_plan: CapabilityProbePlanSteps attempted while interrogating the binary (version, features, help).
collected_at: SystemTimeTimestamp of when the probe finished.
Implementations§
Source§impl CodexCapabilities
impl CodexCapabilities
Sourcepub fn guard_output_schema(&self) -> CapabilityGuard
pub fn guard_output_schema(&self) -> CapabilityGuard
Guards whether --output-schema should be passed to codex exec.
Sourcepub fn guard_add_dir(&self) -> CapabilityGuard
pub fn guard_add_dir(&self) -> CapabilityGuard
Guards whether codex add-dir can be invoked safely.
Sourcepub fn guard_mcp_login(&self) -> CapabilityGuard
pub fn guard_mcp_login(&self) -> CapabilityGuard
Guards whether codex login --mcp is available.
Sourcepub fn guard_features_list(&self) -> CapabilityGuard
pub fn guard_features_list(&self) -> CapabilityGuard
Guards whether codex features list is supported by the probed binary.
Sourcepub fn guard_feature(&self, feature: CapabilityFeature) -> CapabilityGuard
pub fn guard_feature(&self, feature: CapabilityFeature) -> CapabilityGuard
Returns a guard describing if a feature/flag is supported by the probed binary.
The guard treats missing features list support as Unknown so hosts can
degrade gracefully on older binaries instead of passing unsupported flags.
Trait Implementations§
Source§impl Clone for CodexCapabilities
impl Clone for CodexCapabilities
Source§fn clone(&self) -> CodexCapabilities
fn clone(&self) -> CodexCapabilities
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CodexCapabilities
impl Debug for CodexCapabilities
Source§impl<'de> Deserialize<'de> for CodexCapabilities
impl<'de> Deserialize<'de> for CodexCapabilities
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for CodexCapabilities
impl PartialEq for CodexCapabilities
Source§impl Serialize for CodexCapabilities
impl Serialize for CodexCapabilities
impl Eq for CodexCapabilities
impl StructuralPartialEq for CodexCapabilities
Auto Trait Implementations§
impl Freeze for CodexCapabilities
impl RefUnwindSafe for CodexCapabilities
impl Send for CodexCapabilities
impl Sync for CodexCapabilities
impl Unpin for CodexCapabilities
impl UnsafeUnpin for CodexCapabilities
impl UnwindSafe for CodexCapabilities
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.