Skip to main content

TransportSession

Struct TransportSession 

Source
pub struct TransportSession {
    pub session_id: String,
    pub tool: CliTool,
    /* private fields */
}
Expand description

Thin dispatch router for spawning any of the 4 supported PIPE-mode CLI agents.

All four CLIs (Claude Code, Codex, Gemini, OpenCode) use the Pipe transport. PTY-mode sessions use PtySession directly — there is no PTY routing through TransportSession.

Fields§

§session_id: String

Gate4agent-assigned session ID (not the CLI-native session ID).

§tool: CliTool

The CLI tool that was spawned.

Implementations§

Source§

impl TransportSession

Source

pub async fn spawn( tool: CliTool, working_dir: &Path, prompt: &str, options: SpawnOptions, ) -> Result<Self, AgentError>

Spawn a new pipe session for the given tool and deliver the initial prompt.

All four CliTool variants use the Pipe transport. PTY mode is not dispatched here — use PtySession::spawn directly.

§Errors
  • AgentError::Spawn — the child process failed to start
Source

pub fn subscribe(&self) -> Receiver<AgentEvent>

Subscribe to all future AgentEvent values from this session.

Events emitted before this call are not replayed. Subscribe before awaiting spawn if you need the Started event.

Source

pub fn session_id(&self) -> &str

Gate4agent-assigned session ID (not the CLI-native session ID).

Source

pub async fn send_prompt(&self, prompt: &str) -> Result<(), AgentError>

Send a follow-up prompt via stdin (for CLIs that support multi-turn pipe mode).

Currently only Claude Code supports multi-turn pipe sessions. For other CLIs this will write to stdin but may have no effect.

Source

pub async fn kill(&self) -> Result<(), AgentError>

Kill the underlying process.

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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.