#[non_exhaustive]pub enum AgentKind {
ClaudeCode,
Generic,
McpOnly,
ClaudeDesktop,
CodexCli,
GeminiCli,
}Expand description
Detected agent kind (SRS §4.1 sessions.agent_kind).
#[non_exhaustive]: new agent kinds are added over time (this PR added
ClaudeDesktop, CodexCli, GeminiCli). Marking it non-exhaustive keeps
that additive under cargo-semver-checks --release-type minor instead of
registering as a break — a downstream match must already carry a wildcard
arm, matching CLAUDE.md’s v1.0.0 addendum (“additive changes … not
breaking”). New variants are appended at the end so existing discriminant
values (used by as isize casts) do not shift.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ClaudeCode
Claude Code (structured adapter active).
Generic
Generic agent, PTY-only capture.
McpOnly
Standalone hh mcp-proxy session (FR-2.2).
ClaudeDesktop
Claude Desktop app (structured adapter active).
CodexCli
OpenAI Codex CLI (structured adapter active).
GeminiCli
Google Gemini CLI (structured adapter active).
Trait Implementations§
impl Copy for AgentKind
Source§impl<'de> Deserialize<'de> for AgentKind
impl<'de> Deserialize<'de> for AgentKind
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>,
impl Eq for AgentKind
impl StructuralPartialEq for AgentKind
Auto Trait Implementations§
impl Freeze for AgentKind
impl RefUnwindSafe for AgentKind
impl Send for AgentKind
impl Sync for AgentKind
impl Unpin for AgentKind
impl UnsafeUnpin for AgentKind
impl UnwindSafe for AgentKind
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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§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.