"""兄弟技能 CLI 调用模板。""" from __future__ import annotations import json import os import subprocess import sys from typing import Any, Dict, List, Optional from util.logging_config import subprocess_env_with_trace from util.runtime_paths import get_skills_root def _call_json_script(script_path: str, args: List[str]) -> Optional[Dict[str, Any]]: proc = subprocess.run( [sys.executable, script_path, *args], capture_output=True, text=True, encoding="utf-8", errors="replace", env=subprocess_env_with_trace(), ) raw = (proc.stdout or "").strip() if not raw or raw.startswith("ERROR"): return None try: data = json.loads(raw) except json.JSONDecodeError: return None return data if isinstance(data, dict) else None def get_account_manager_main_path() -> str: return os.path.join(get_skills_root(), "account-manager", "scripts", "main.py") def get_content_manager_main_path() -> str: return os.path.join(get_skills_root(), "content-manager", "scripts", "main.py")