summaryrefslogtreecommitdiffstats
path: root/src/repl
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-03-03 15:25:21 +0800
committerGitHub <noreply@github.com>2024-03-03 15:25:21 +0800
commite443905dc1f16202b29a8cdc783069ea72c2ac81 (patch)
tree6607aad1419e9f183eee19e16c39ab85740e444b /src/repl
parent7e32787dba1c3ef31b0e434e5e6735e772a9f508 (diff)
downloadaichat-e443905dc1f16202b29a8cdc783069ea72c2ac81.tar.gz
feat: add `.clear messages` to clear session messages (#332)
Diffstat (limited to 'src/repl')
-rw-r--r--src/repl/mod.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/repl/mod.rs b/src/repl/mod.rs
index d6fa7f2..e11b495 100644
--- a/src/repl/mod.rs
+++ b/src/repl/mod.rs
@@ -25,11 +25,11 @@ use std::{env, process};
const MENU_NAME: &str = "completion_menu";
lazy_static! {
- static ref REPL_COMMANDS: [ReplCommand; 13] = [
+ static ref REPL_COMMANDS: [ReplCommand; 14] = [
ReplCommand::new(".help", "Print this help message", State::all()),
ReplCommand::new(".info", "Print system info", State::all()),
ReplCommand::new(".model", "Switch LLM model", State::all()),
- ReplCommand::new(".role", "Use a role", State::can_change_role()),
+ ReplCommand::new(".role", "Use a role", State::able_change_role()),
ReplCommand::new(".info role", "Show role info", State::in_role(),),
ReplCommand::new(".exit role", "Leave current role", State::in_role(),),
ReplCommand::new(
@@ -39,6 +39,11 @@ lazy_static! {
),
ReplCommand::new(".info session", "Show session info", State::in_session(),),
ReplCommand::new(
+ ".clear messages",
+ "Clear messages in the session",
+ State::unable_change_role()
+ ),
+ ReplCommand::new(
".exit session",
"End the current session",
State::in_session(),
@@ -225,8 +230,10 @@ impl Repl {
return Ok(true);
}
},
- // deprecated this command
".clear" => match args {
+ Some("messages") => {
+ self.config.write().clear_session_messages()?;
+ }
Some("role") => {
println!(r#"Deprecated. Use ".exit role" instead."#);
}