diff --git a/crates/g3-cli/src/agent_mode.rs b/crates/g3-cli/src/agent_mode.rs index 593d239..0532795 100644 --- a/crates/g3-cli/src/agent_mode.rs +++ b/crates/g3-cli/src/agent_mode.rs @@ -7,7 +7,7 @@ use tracing::debug; use g3_core::ui_writer::UiWriter; use g3_core::Agent; -use crate::project_files::{combine_project_content, read_agents_config, read_project_memory, read_project_readme}; +use crate::project_files::{combine_project_content, read_agents_config, read_include_prompt, read_project_memory, read_project_readme}; use crate::language_prompts::{get_language_prompts_for_workspace, get_agent_language_prompts_for_workspace_with_langs}; use crate::simple_output::SimpleOutput; use crate::embedded_agents::load_agent_prompt; @@ -25,6 +25,7 @@ pub async fn run_agent_mode( chrome_headless: bool, safari: bool, chat: bool, + include_prompt_path: Option, ) -> Result<()> { use g3_core::find_incomplete_agent_session; use g3_core::get_agent_system_prompt; @@ -186,12 +187,16 @@ pub async fn run_agent_mode( system_prompt }; + // Read include prompt if specified + let include_prompt = read_include_prompt(include_prompt_path.as_deref()); + // Combine all content for the agent's context let combined_content = combine_project_content( agents_content_opt, readme_content_opt, memory_content_opt, language_content, + include_prompt, &workspace_dir, ); diff --git a/crates/g3-cli/src/lib.rs b/crates/g3-cli/src/lib.rs index 7768fa9..9bf9df5 100644 --- a/crates/g3-cli/src/lib.rs +++ b/crates/g3-cli/src/lib.rs @@ -33,7 +33,7 @@ use accumulative::run_accumulative_mode; use agent_mode::run_agent_mode; use autonomous::run_autonomous; use interactive::run_interactive; -use project_files::{combine_project_content, read_agents_config, read_project_memory, read_project_readme}; +use project_files::{combine_project_content, read_agents_config, read_include_prompt, read_project_memory, read_project_readme}; use simple_output::SimpleOutput; use ui_writer_impl::ConsoleUiWriter; use utils::{initialize_logging, load_config_with_cli_overrides, setup_workspace_directory}; @@ -89,6 +89,7 @@ pub async fn run() -> Result<()> { cli.chrome_headless, cli.safari, cli.chat, + cli.include_prompt.clone(), ) .await; } @@ -101,6 +102,7 @@ pub async fn run() -> Result<()> { let readme_content = read_project_readme(&workspace_dir); let memory_content = read_project_memory(&workspace_dir); let language_content = language_prompts::get_language_prompts_for_workspace(&workspace_dir); + let include_prompt = read_include_prompt(cli.include_prompt.as_deref()); // Create project model let project = create_project(&cli, &workspace_dir)?; @@ -113,7 +115,7 @@ pub async fn run() -> Result<()> { let config = load_config_with_cli_overrides(&cli)?; // Combine AGENTS.md, README, and memory content - let combined_content = combine_project_content(agents_content, readme_content, memory_content, language_content, &workspace_dir); + let combined_content = combine_project_content(agents_content, readme_content, memory_content, language_content, include_prompt, &workspace_dir); run_console_mode(cli, config, project, combined_content, workspace_dir).await }