feat(mma): Implement track-scoped state persistence and configure sub-agents
This commit is contained in:
@@ -176,17 +176,16 @@ def execute_agent(role: str, prompt: str, docs: list[str]) -> str:
|
||||
if role in ['tier3', 'tier3-worker']:
|
||||
system_directive = "STRICT SYSTEM DIRECTIVE: You are a stateless Tier 3 Worker (Contributor). " \
|
||||
"Your goal is to implement specific code changes or tests based on the provided task. " \
|
||||
"You have access to tools for reading and writing files (e.g., read_file, write_file, replace). " \
|
||||
"CRITICAL: You CANNOT execute PowerShell scripts or run shell commands directly. " \
|
||||
"If you need to verify code or run tests, output the full PowerShell script inside a " \
|
||||
"markdown code block (e.g., ```powershell) and state that it needs to be executed. " \
|
||||
"You have access to tools for reading and writing files (e.g., read_file, write_file, replace), " \
|
||||
"codebase investigation (codebase_investigator), and web tools (google_web_search, web_fetch). " \
|
||||
"You CAN execute PowerShell scripts or run shell commands via run_shell_command for verification and testing. " \
|
||||
"Follow TDD and return success status or code changes. No pleasantries, no conversational filler."
|
||||
elif role in ['tier4', 'tier4-qa']:
|
||||
system_directive = "STRICT SYSTEM DIRECTIVE: You are a stateless Tier 4 QA Agent. " \
|
||||
"Your goal is to analyze errors, summarize logs, or verify tests. " \
|
||||
"You have access to tools for reading files and exploring the codebase. " \
|
||||
"CRITICAL: You CANNOT execute PowerShell scripts or run shell commands directly. " \
|
||||
"If you need to run diagnostics, output the PowerShell script and request execution. " \
|
||||
"You have access to tools for reading files, exploring the codebase (codebase_investigator), " \
|
||||
"and web tools (google_web_search, web_fetch). " \
|
||||
"You CAN execute PowerShell scripts or run shell commands via run_shell_command for diagnostics. " \
|
||||
"ONLY output the requested analysis. No pleasantries."
|
||||
else:
|
||||
system_directive = f"STRICT SYSTEM DIRECTIVE: You are a stateless {role}. " \
|
||||
@@ -209,7 +208,7 @@ def execute_agent(role: str, prompt: str, docs: list[str]) -> str:
|
||||
# Use subprocess with input to pipe the prompt via stdin, avoiding WinError 206.
|
||||
# We use -p 'mma_task' to ensure non-interactive (headless) mode and valid parsing.
|
||||
# Whitelist tools to ensure they are available to the model in headless mode.
|
||||
allowed_tools = "read_file,write_file,replace,list_directory,glob,grep_search,search_files,get_file_summary"
|
||||
allowed_tools = "read_file,write_file,replace,list_directory,glob,grep_search,search_files,get_file_summary,run_shell_command,activate_skill,codebase_investigator,google_web_search,web_fetch"
|
||||
ps_command = (
|
||||
f"if (Test-Path 'C:\\projects\\misc\\setup_gemini.ps1') {{ . 'C:\\projects\\misc\\setup_gemini.ps1' }}; "
|
||||
f"gemini -p 'mma_task' --allowed-tools {allowed_tools} --output-format json --model {model}"
|
||||
|
||||
Reference in New Issue
Block a user