From 5cf9432092da40a2653c3d156ca5a4746e853827 Mon Sep 17 00:00:00 2001 From: main Date: Mon, 23 Mar 2026 16:13:37 -0400 Subject: Inject consult prompt prefix --- crates/phone-opus/src/mcp/service.rs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'crates/phone-opus/src/mcp/service.rs') diff --git a/crates/phone-opus/src/mcp/service.rs b/crates/phone-opus/src/mcp/service.rs index 378ce43..d42c0a0 100644 --- a/crates/phone-opus/src/mcp/service.rs +++ b/crates/phone-opus/src/mcp/service.rs @@ -14,7 +14,8 @@ use crate::mcp::output::{ ToolOutput, fallback_detailed_tool_output, split_presentation, tool_success, }; use crate::mcp::protocol::{ - CLAUDE_BIN_ENV, CLAUDE_EFFORT, CLAUDE_MODEL, CLAUDE_TOOLSET, EMPTY_MCP_CONFIG, + CLAUDE_BIN_ENV, CLAUDE_CONSULT_PREFIX, CLAUDE_EFFORT, CLAUDE_MODEL, CLAUDE_TOOLSET, + EMPTY_MCP_CONFIG, }; pub(crate) fn run_worker(generation: u64) -> Result<(), Box> { @@ -138,18 +139,28 @@ impl ConsultRequest { } #[derive(Debug, Clone)] -struct PromptText(String); +struct PromptText { + original: String, + rendered: String, +} impl PromptText { fn parse(raw: String) -> Result { if raw.trim().is_empty() { return Err(ConsultRequestError::EmptyPrompt); } - Ok(Self(raw)) + Ok(Self { + rendered: format!("{CLAUDE_CONSULT_PREFIX}\n\n{raw}"), + original: raw, + }) } fn as_str(&self) -> &str { - self.0.as_str() + self.original.as_str() + } + + fn rendered(&self) -> &str { + self.rendered.as_str() } } @@ -364,7 +375,7 @@ fn invoke_claude(request: &ConsultRequest) -> Result