pypi Python analyzed 1.7.1

willow-ratatosk

v1.7.1
pypi

Willow platform session runtime — MCP client, capability gate, JSONL sessions, Grove bus, tier-0 sync

maintainer
Sean Campbell
licence
MIT
first seen
2026-09-07
last seen
2026-09-12
releases · 30d
22
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals pypi-sdist
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed v1.7.1 · analyzer v33 · 1h ago

danger signals1

  • dynamic code execution __import__ sink willow_ratatosk-1.7.1/tests/test_key_custody.py :23 assert "ANTHROPIC_API_KEY" not in __import__("os").environ
code evidence v1.7.1 · pypi-sdist
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 47

filesystem 17

  • fs willow_ratatosk-1.7.1/ratatosk/cassette.py :29 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/crown.py :11 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/daemon.py :31 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/history.py :8 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/hooks.py :24 import shutil
  • fs willow_ratatosk-1.7.1/ratatosk/paths.py :6 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/policy.py :19 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/session.py :9 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/sync.py :7 import shutil
  • fs willow_ratatosk-1.7.1/ratatosk/tools.py :9 from pathlib import Path
  • fs willow_ratatosk-1.7.1/ratatosk/traces.py :20 with open(trace_path, "a", encoding="utf-8") as handle:
  • fs (weak) willow_ratatosk-1.7.1/tests/test_cassette.py :9 from pathlib import Path
show 5 more
  • fs (weak) willow_ratatosk-1.7.1/tests/test_fleet_conventions.py :27 from pathlib import Path
  • fs (weak) willow_ratatosk-1.7.1/tests/test_release_wiring.py :38 from pathlib import Path
  • fs (weak) willow_ratatosk-1.7.1/tests/test_scans_fire.py :92 from pathlib import Path
  • fs (weak) willow_ratatosk-1.7.1/tests/test_seal_watcher.py :18 with open(path, "a", encoding="utf-8") as handle:
  • fs (weak) willow_ratatosk-1.7.1/tests/test_tool_results.py :5 from pathlib import Path

shell / exec 3

  • shell willow_ratatosk-1.7.1/ratatosk/hooks.py :26 import subprocess
  • shell willow_ratatosk-1.7.1/ratatosk/tools.py :7 import subprocess
  • shell (weak) willow_ratatosk-1.7.1/tests/test_tool_results.py :135 """subprocess.run(timeout=) signals only the direct child; a program that

network 2

  • net willow_ratatosk-1.7.1/ratatosk/ollama.py :15 import requests
  • net (weak) willow_ratatosk-1.7.1/tests/test_scans_fire.py :1466 target.write_text("import requests\n", encoding="utf-8")

secrets 1

  • secrets willow_ratatosk-1.7.1/ratatosk/crown.py :256 key = os.environ.get("ANTHROPIC_API_KEY", "")

database 1

  • db willow_ratatosk-1.7.1/ratatosk/history.py :6 import sqlite3

declared dependencies 6

  • mcp@>=1.0,<3
  • anthropic@>=0.40
  • requests@>=2.31
  • pytest@>=8
  • pyyaml@>=6
  • tomli@>=2; python_version<