mma docs support

This commit is contained in:
2026-02-25 22:29:20 -05:00
parent 74dcd89ec5
commit f0c1af986d

View File

@@ -125,6 +125,7 @@ def execute_agent(role: str, prompt: str, docs: list[str]) -> str:
if doc.endswith('.py') and os.path.exists(doc):
deps = get_dependencies(doc)
for dep in deps:
# Only try to generate skeletons for files that exist in the local dir
dep_file = f"{dep}.py"
if os.path.exists(dep_file) and dep_file != doc:
try:
@@ -133,6 +134,10 @@ def execute_agent(role: str, prompt: str, docs: list[str]) -> str:
injected_context += f"\n\nDEPENDENCY SKELETON: {dep_file}\n{skeleton}\n"
except Exception as e:
print(f"Error generating skeleton for {dep_file}: {e}")
# Check for token-bloat safety: if injected_context is too large, truncate it
if len(injected_context) > 10000:
injected_context = injected_context[:10000] + "... [TRUNCATED FOR COMMAND LINE LIMITS]"
# MMA Protocol: Tier 3 and 4 are stateless and tool-less.
system_directive = f"STRICT SYSTEM DIRECTIVE: You are a stateless {role}. " \
@@ -183,14 +188,13 @@ def main():
args = parser.parse_args()
docs = get_role_documents(args.role)
# We allow the user to provide additional docs if they want?
# For now, just the default role docs.
# In practice, conductor will call this with a prompt like "Modify aggregate.py @aggregate.py"
# But wait, my execute_agent expects docs as a list.
# If the prompt contains @file, we should extract it and put it in docs.
# Actually, gemini CLI handles @file positionals.
# But my execute_agent appends them to command_text as @file.
# Extract @file references from the prompt
import re
file_refs = re.findall(r"@([\w./\\]+)", args.prompt)
for ref in file_refs:
if os.path.exists(ref) and ref not in docs:
docs.append(ref)
print(f"Executing role: {args.role} with docs: {docs}")
result = execute_agent(args.role, args.prompt, docs)