"""
GLM Coder - Claude Code의 단순 코딩 보조 에이전트
사용법: python3 glm-coder.py "파이썬으로 파일 목록 출력하는 함수 만들어줘"
"""

import os
import sys

from dotenv import load_dotenv
from openai import OpenAI

load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env"))

client = OpenAI(api_key=os.getenv("GLM_API_KEY"), base_url="https://api.z.ai/api/paas/v4/")

SYSTEM_PROMPT = """당신은 Python 코딩 전문 보조 AI입니다.
- 코드만 간결하게 작성 (불필요한 설명 최소화)
- 함수/클래스 단위로 완성된 코드 제공
- 한국어 주석 사용
- 실행 가능한 코드만 출력"""


def ask_glm(prompt: str, system: str = SYSTEM_PROMPT) -> str:
    response = client.chat.completions.create(
        model="glm-5",
        messages=[{"role": "system", "content": system}, {"role": "user", "content": prompt}],
        max_tokens=2048,
    )
    return response.choices[0].message.content


if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("사용법: python3 glm-coder.py '코딩 요청'")
        sys.exit(1)

    prompt = " ".join(sys.argv[1:])
    print(f"[GLM-5] 요청: {prompt}\n")
    result = ask_glm(prompt)
    print(result)
