pub struct ChatPane { /* private fields */ }Expand description
The agent chat: a scrolling conversation (user, agent and tool-call rows) above a prompt box
with context chips. A tool call is one line (“Ran hist.find_cells · 2,539 cells”) that opens
to its JSON arguments and result. Agent text streams in with ChatPane::append_agent.
The prompt: Enter sends, Shift+Enter is a newline; the Send button becomes Stop while the agent
runs. The pane emits ChatEvent; the app pushes the agent’s messages in
(ChatPane::push, ChatPane::append_agent, ChatPane::set_tool_result) and says when
it is done (ChatPane::set_running). ChatPane::messages is the whole conversation.
Implementations§
Source§impl ChatPane
impl ChatPane
Sourcepub fn messages(&self) -> &[ChatMessage]
pub fn messages(&self) -> &[ChatMessage]
The conversation.
Sourcepub fn set_messages(
&mut self,
messages: Vec<ChatMessage>,
cx: &mut Context<'_, Self>,
)
pub fn set_messages( &mut self, messages: Vec<ChatMessage>, cx: &mut Context<'_, Self>, )
Replaces the conversation (a restored session).
Sourcepub fn push(
&mut self,
message: ChatMessage,
cx: &mut Context<'_, Self>,
) -> usize
pub fn push( &mut self, message: ChatMessage, cx: &mut Context<'_, Self>, ) -> usize
Adds a message; returns its index.
Sourcepub fn append_agent(&mut self, text: &str, cx: &mut Context<'_, Self>)
pub fn append_agent(&mut self, text: &str, cx: &mut Context<'_, Self>)
Appends streamed agent text: to the last message when it is the agent’s, else as a new agent message.
Sourcepub fn set_tool_result(
&mut self,
index: usize,
result: Result<(Value, String), String>,
cx: &mut Context<'_, Self>,
)
pub fn set_tool_result( &mut self, index: usize, result: Result<(Value, String), String>, cx: &mut Context<'_, Self>, )
Finishes the tool call at index: its result and summary, or why it failed.
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Whether the agent is running (the Send button shows Stop).
Sourcepub fn set_running(&mut self, running: bool, cx: &mut Context<'_, Self>)
pub fn set_running(&mut self, running: bool, cx: &mut Context<'_, Self>)
Says whether the agent is running.
Sourcepub fn set_context(&mut self, context: ChatContext, cx: &mut Context<'_, Self>)
pub fn set_context(&mut self, context: ChatContext, cx: &mut Context<'_, Self>)
The chips above the prompt.
Sourcepub fn prompt_text(&self, cx: &App) -> String
pub fn prompt_text(&self, cx: &App) -> String
The prompt’s text.
Sourcepub fn set_prompt(
&mut self,
text: &str,
window: &mut Window,
cx: &mut Context<'_, Self>,
)
pub fn set_prompt( &mut self, text: &str, window: &mut Window, cx: &mut Context<'_, Self>, )
Puts text in the prompt.
Sourcepub fn focus_prompt(&self, window: &mut Window, cx: &mut Context<'_, Self>)
pub fn focus_prompt(&self, window: &mut Window, cx: &mut Context<'_, Self>)
Focuses the prompt.
Sourcepub fn send(&mut self, window: &mut Window, cx: &mut Context<'_, Self>)
pub fn send(&mut self, window: &mut Window, cx: &mut Context<'_, Self>)
Sends the prompt (as Enter and the Send button do): adds it as a user message, clears the
box, shows the agent as running and emits ChatEvent::Send. Nothing while the agent
runs or when the prompt is blank.
Sourcepub fn stop(&mut self, cx: &mut Context<'_, Self>)
pub fn stop(&mut self, cx: &mut Context<'_, Self>)
Asks the running agent to stop (emits ChatEvent::Stop; the app says when it stopped).
Sourcepub fn toggle_tool(&mut self, index: usize, cx: &mut Context<'_, Self>)
pub fn toggle_tool(&mut self, index: usize, cx: &mut Context<'_, Self>)
Opens or closes the tool call at index.
Trait Implementations§
impl EventEmitter<ChatEvent> for ChatPane
Auto Trait Implementations§
impl !RefUnwindSafe for ChatPane
impl !Send for ChatPane
impl !Sync for ChatPane
impl !UnwindSafe for ChatPane
impl Forget for ChatPane
impl Freeze for ChatPane
impl Move for ChatPane
impl Unpin for ChatPane
impl UnsafeUnpin for ChatPane
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more