diff --git a/scripts/pkm_utils.py b/scripts/pkm_utils.py index cf525d9..b220921 100644 --- a/scripts/pkm_utils.py +++ b/scripts/pkm_utils.py @@ -94,15 +94,20 @@ def run_applescript(script_path: str, *args) -> str: def run_applescript_inline(script: str) -> str: - """인라인 AppleScript 실행""" - cmd = ["osascript", "-e", script] + """인라인 AppleScript 실행 — 임시 파일 방식 (특수문자 안전)""" + import tempfile + tmp = tempfile.NamedTemporaryFile(mode='w', suffix='.applescript', delete=False, encoding='utf-8') try: - result = subprocess.run(cmd, capture_output=True, text=True, timeout=120) + tmp.write(script) + tmp.close() + result = subprocess.run(["osascript", tmp.name], capture_output=True, text=True, timeout=120) if result.returncode != 0: raise RuntimeError(f"AppleScript 에러: {result.stderr.strip()}") return result.stdout.strip() except subprocess.TimeoutExpired: raise RuntimeError("AppleScript 타임아웃 (인라인)") + finally: + os.unlink(tmp.name) def llm_generate(prompt: str, model: str = "mlx-community/Qwen3.5-35B-A3B-4bit",