phi-drift / scripts /autonomy_demo.py
crexs's picture
sync: update scripts/autonomy_demo.py
aa3f0c0 verified
Raw
History Blame Contribute Delete
1.65 kB
#!/usr/bin/env python3
"""Demo client to submit an autonomous plan to the INFJ Companion HTTP bridge."""
import json
import sys
from typing import Any, Dict, Optional
import requests
def run_plan(host: str, port: int, token: Optional[str], plan: Dict[str, Any]):
protocol = "https" if not host.startswith("127.") and host != "localhost" else "http"
url = f"{protocol}://{host}:{port}/autonomy"
payload = {"plan": plan}
headers = {}
if token:
headers["Authorization"] = f"Bearer {token}"
r = requests.post(url, json=payload, headers=headers or None, timeout=30)
r.raise_for_status()
return r.json()
def main() -> int:
host = "127.0.0.1"
port = 8080
token = None
# allow token via env var
import os
token = os.getenv("MCP_HTTP_TOKEN", token)
# example plan: small sequence of useful tools
plan = [
{
"tool": "emotional_clarity",
"args": ["I'm exhausted and uncertain about next steps"],
},
{
"tool": "dissonance_map",
"args": ["I want to start a business but fear instability"],
},
{
"tool": "todo_add",
"args": ["Research part-time business ideas"],
"kwargs": {"priority": "normal"},
},
{"tool": "todo_list", "kwargs": {"status": "active"}},
]
try:
out = run_plan(host, port, token, plan)
print(json.dumps(out, indent=2, ensure_ascii=False))
return 0
except Exception as exc:
print("Error:", exc, file=sys.stderr)
return 1
if __name__ == "__main__":
raise SystemExit(main())