MIT-licensed, backend-agnostic AI agent orchestration loop in Python: orchestrator→worker→reviewer as a deterministic harness. Drive coding-agent backends through an MCP server + CLI.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 8 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
doctor
-
list_backends
-
orchestrate
-
orchestrate_list
-
orchestrate_result
-
orchestrate_resume
-
orchestrate_status
-
orchestrate_tail
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 1a32fb1 · analyzer v33 · 2w ago
danger signals1
- dynamic code execution __import__ sink luckeyfaraday-athena-loops-1a32fb1/tests/test_cli_agent.py :48
return __import__("subprocess").CompletedProcess(argv, 0, stdout="ok\n", stderr="")
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 30
filesystem 7
- fs luckeyfaraday-athena-loops-1a32fb1/agentloop/adapters/cli.py :18
import shutil - fs luckeyfaraday-athena-loops-1a32fb1/agentloop/cli.py :36
with open(path) as f: - fs luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :19
import shutil - fs luckeyfaraday-athena-loops-1a32fb1/agentloop/runs.py :69
with open(tmp, "w", encoding="utf-8") as f: - fs luckeyfaraday-athena-loops-1a32fb1/agentloop/worktree.py :22
import shutil - fs (weak) luckeyfaraday-athena-loops-1a32fb1/tests/test_runs.py :48
with open(events_path, encoding="utf-8") as f: - fs (weak) luckeyfaraday-athena-loops-1a32fb1/tests/test_worktree.py :19
with open(os.path.join(repo, "README.md"), "w") as f:
shell / exec 6
- shell luckeyfaraday-athena-loops-1a32fb1/agentloop/adapters/cli.py :19
import subprocess - shell luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :20
import subprocess - shell luckeyfaraday-athena-loops-1a32fb1/agentloop/verifier.py :6
import subprocess - shell luckeyfaraday-athena-loops-1a32fb1/agentloop/worktree.py :23
import subprocess - shell (weak) luckeyfaraday-athena-loops-1a32fb1/tests/test_mcp_server.py :11
import subprocess - shell (weak) luckeyfaraday-athena-loops-1a32fb1/tests/test_worktree.py :6
import subprocess
secrets 3
- secrets luckeyfaraday-athena-loops-1a32fb1/agentloop/adapters/claude.py :37
api_key=api_key or os.environ.get("ANTHROPIC_API_KEY") - secrets luckeyfaraday-athena-loops-1a32fb1/agentloop/adapters/grok.py :43
"api_key": api_key or os.environ.get("XAI_API_KEY"), - secrets luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :80
"available": bool(os.environ.get("ANTHROPIC_API_KEY")),
tool registrations 8
- orchestrate luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :765
- orchestrate_resume luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :872
- orchestrate_status luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :897
- orchestrate_tail luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :907
- orchestrate_result luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :923
- orchestrate_list luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :948
- list_backends luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :953
- doctor luckeyfaraday-athena-loops-1a32fb1/agentloop/mcp_server.py :975
declared dependencies 4
- mcp@>=1.0
- anthropic@>=0.40
- openai@>=1.66
- pytest@>=8