diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 1114217..6c4e456 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -47,7 +47,7 @@ pub enum McpScopeArg { .args(["sandbox", "fresh"]) .multiple(true) .conflicts_with_all([ - "model", "prompt", "role", "session", "agent", "rag", "rebuild_rag", + "model", "temp_role", "role", "session", "agent", "rag", "rebuild_rag", "macro_name", "execute", "code", "file", "no_stream", "no_memory", "init_memory", "dry_run", "info", "build_tools", "install", "install_builtins", "sync_models", "list_models", "list_roles", @@ -70,9 +70,9 @@ pub struct Cli { /// Select a LLM model #[arg(short, long, add = ArgValueCompleter::new(model_completer))] pub model: Option, - /// Use the system prompt + /// Set a temporary role (an ad-hoc system prompt) for this invocation #[arg(long)] - pub prompt: Option, + pub temp_role: Option, /// Select a role #[arg(short, long, add = ArgValueCompleter::new(role_completer))] pub role: Option, @@ -705,9 +705,9 @@ mod tests { } #[test] - fn parse_prompt_flag() { - let cli = parse(&["--prompt", "be a pirate"]); - assert_eq!(cli.prompt, Some("be a pirate".to_string())); + fn parse_temp_role_flag() { + let cli = parse(&["--temp-role", "be a pirate"]); + assert_eq!(cli.temp_role, Some("be a pirate".to_string())); } #[test] diff --git a/src/config/request_context.rs b/src/config/request_context.rs index 4a76952..2be3d37 100644 --- a/src/config/request_context.rs +++ b/src/config/request_context.rs @@ -2341,7 +2341,7 @@ impl RequestContext { Ok(()) } - pub fn use_prompt(&mut self, _app: &AppConfig, prompt: &str) -> Result<()> { + pub fn use_temp_role(&mut self, _app: &AppConfig, prompt: &str) -> Result<()> { let mut role = Role::new(TEMP_ROLE_NAME, prompt); role.set_model(self.current_model().clone()); self.use_role_obj(role) @@ -4852,10 +4852,10 @@ mod tests { } #[test] - fn use_prompt_creates_temp_role() { + fn use_temp_role_creates_temp_role() { let mut ctx = create_test_ctx(); let app = ctx.app.config.clone(); - ctx.use_prompt(&app, "you are a pirate").unwrap(); + ctx.use_temp_role(&app, "you are a pirate").unwrap(); assert!(ctx.role.is_some()); assert_eq!(ctx.role.as_ref().unwrap().name(), "temp"); assert!( diff --git a/src/main.rs b/src/main.rs index 3f98954..3e5d9b0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -380,8 +380,8 @@ async fn run( .await?; } else { let app: Arc = Arc::clone(&ctx.app.config); - if let Some(prompt) = &cli.prompt { - ctx.use_prompt(app.as_ref(), prompt)?; + if let Some(prompt) = &cli.temp_role { + ctx.use_temp_role(app.as_ref(), prompt)?; } else if let Some(name) = &cli.role { ctx.use_role(app.as_ref(), name, abort_signal.clone()) .await?; diff --git a/src/repl/mod.rs b/src/repl/mod.rs index a31b87b..f3b0d0f 100644 --- a/src/repl/mod.rs +++ b/src/repl/mod.rs @@ -819,7 +819,7 @@ pub async fn run_repl_command( ".temp-role" => match args { Some(text) => { let app = Arc::clone(&ctx.app.config); - ctx.use_prompt(app.as_ref(), text)?; + ctx.use_temp_role(app.as_ref(), text)?; } None => println!("Usage: .temp-role ..."), },