Skip to main content

NativePurpose

Enum NativePurpose 

Source
pub enum NativePurpose {
    Analysis,
    Setup,
    ContextEnrichment,
}
Expand description

The only product purposes that may opt into the native Sessions launch contract.

This enum is intentionally closed: a caller cannot use the launch artifact to select an arbitrary profile, agent, cwd, or command. The GenBI runtime chooses a purpose and vendor, then materializes the corresponding Warble profile in a server-owned scope.

Variants§

§

Analysis

§

Setup

§

ContextEnrichment

Implementations§

Source§

impl NativePurpose

Source

pub fn parse(value: &str) -> Option<Self>

Source

pub fn as_str(self) -> &'static str

Source

pub fn codex_skill(self) -> &'static str

Source

pub fn codex_description(self) -> &'static str

Source

pub fn validate_profile( self, ir: &WarbleIr, entry: &NativeEntry, ) -> Result<(), DispatchError>

The one initial interactive prompt for this closed native purpose.

This is deliberately data owned by the producer’s purpose enum, rather than a browser value or terminal write. Both vendor CLIs accept one positional prompt while staying interactive, so it is passed as a single argv element without invoking a shell. Checks the caller’s declared entry against the compiled IR.

This replaced an allowlist of profile names. The allowlist could only answer “is this the profile I was built expecting”, which says nothing about whether the thing about to be launched is safe to launch, and it tied this crate to one product’s vocabulary. The question worth asking is structural, and it is asked of every profile equally: does the declared verb name exactly one component here, and is that component something a native interactive session may materialize at all?

The caller therefore cannot widen what runs by naming a profile differently — only by naming a component that already satisfies these conditions.

Trait Implementations§

Source§

impl Clone for NativePurpose

Source§

fn clone(&self) -> NativePurpose

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for NativePurpose

Source§

impl Debug for NativePurpose

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for NativePurpose

Source§

impl PartialEq for NativePurpose

Source§

fn eq(&self, other: &NativePurpose) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for NativePurpose

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.