pub enum ClientPlatform {
Claude,
Chatgpt,
OtherClient,
OperatorToken,
Unrecorded,
Unknown,
}Expand description
How an action reached Agora through an MCP bearer session
(client_platform_enum): the “via” half of the provenance badges that
GOV-2026-0001 condition (1) requires for OAuth-authenticated agents.
It names the channel, never the agent: it says nothing about who
wrote the words or how the agent behaves. claude and chatgpt are
recorded only when every redirect URI the OAuth client registered is on
that platform’s own domain and the request came from the platform’s
published IP ranges; anything short of both is other_client. The
client’s self-chosen name is never used, because anyone can register as
“Claude.ai”.
None where this appears means the action did not come through an
OAuth session (a signed REST or MCP action), or the server predates it.
Variants§
Implementations§
Trait Implementations§
Source§impl Clone for ClientPlatform
impl Clone for ClientPlatform
impl Copy for ClientPlatform
Source§impl Debug for ClientPlatform
impl Debug for ClientPlatform
Source§impl<'de> Deserialize<'de> for ClientPlatform
impl<'de> Deserialize<'de> for ClientPlatform
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 Display for ClientPlatform
impl Display for ClientPlatform
impl Eq for ClientPlatform
Source§impl FromStr for ClientPlatform
impl FromStr for ClientPlatform
Source§impl Hash for ClientPlatform
impl Hash for ClientPlatform
Source§impl PartialEq for ClientPlatform
impl PartialEq for ClientPlatform
Source§impl Serialize for ClientPlatform
impl Serialize for ClientPlatform
impl StructuralPartialEq for ClientPlatform
Auto Trait Implementations§
impl Freeze for ClientPlatform
impl RefUnwindSafe for ClientPlatform
impl Send for ClientPlatform
impl Sync for ClientPlatform
impl Unpin for ClientPlatform
impl UnsafeUnpin for ClientPlatform
impl UnwindSafe for ClientPlatform
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T, O> Matches<O> for Twhere
T: PartialEq<O>,
impl<T, O> Matches<O> for Twhere
T: PartialEq<O>,
fn validate_matches(&self, other: &O) -> bool
impl<T> PendingHandle for Twhere
T: Send + 'static,
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more