feat(ai): Implement configurable base system prompt and expose in UI

This commit is contained in:
2026-05-02 14:49:47 -04:00
parent b654c7c733
commit 4f1bcea381
3 changed files with 41 additions and 14 deletions
+13 -5
View File
@@ -143,7 +143,8 @@ _SYSTEM_PROMPT: str = (
)
_custom_system_prompt: str = ""
_global_tool_instructions: str = ""
_base_system_prompt_override: str = ""
_use_default_base_system_prompt: bool = True
_project_context_marker: str = ""
def set_custom_system_prompt(prompt: str) -> None:
@@ -151,9 +152,13 @@ def set_custom_system_prompt(prompt: str) -> None:
global _custom_system_prompt
_custom_system_prompt = prompt
def set_global_tool_instructions(instructions: str) -> None:
global _global_tool_instructions
_global_tool_instructions = instructions
def set_base_system_prompt(prompt: str) -> None:
global _base_system_prompt_override
_base_system_prompt_override = prompt
def set_use_default_base_prompt(use_default: bool) -> None:
global _use_default_base_system_prompt
_use_default_base_system_prompt = use_default
def set_project_context_marker(marker: str) -> None:
global _project_context_marker
@@ -165,7 +170,10 @@ def _get_context_marker() -> str:
def _get_combined_system_prompt(preset: Optional[ToolPreset] = None, bias: Optional[BiasProfile] = None) -> str:
if preset is None: preset = _active_tool_preset
if bias is None: bias = _active_bias_profile
base = _global_tool_instructions if _global_tool_instructions.strip() else _SYSTEM_PROMPT
if _use_default_base_system_prompt:
base = _SYSTEM_PROMPT
else:
base = _base_system_prompt_override
if _custom_system_prompt.strip():
base = f"{base}\n\n[USER SYSTEM PROMPT]\n{_custom_system_prompt}"
if preset and bias: