govon-runtime / src /cli /commands.py
umyunsang's picture
Upload folder using huggingface_hub
9e65b56 verified
"""Slash command parser and handler for GovOn CLI."""
COMMANDS: dict[str, str] = {
"/help": "μ‚¬μš© κ°€λŠ₯ν•œ λͺ…λ Ήκ³Ό 도움말을 ν‘œμ‹œν•©λ‹ˆλ‹€.",
"/clear": "터미널 화면을 μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.",
"/exit": "셸을 μ’…λ£Œν•©λ‹ˆλ‹€.",
}
_HELP_TEXT = """GovOn CLI μ‚¬μš©λ²•
────────────────────────────────────────
govon μΈν„°λž™ν‹°λΈŒ REPL λͺ¨λ“œ
govon "질문" λ‹¨λ°œ μ‹€ν–‰ λͺ¨λ“œ
govon --session <id> κΈ°μ‘΄ μ„Έμ…˜ 재개
govon --session <id> "질문" κΈ°μ‘΄ μ„Έμ…˜μ—μ„œ λ‹¨λ°œ μ‹€ν–‰
govon --status daemon μƒνƒœ 확인
govon --stop daemon 쀑지
μŠ¬λž˜μ‹œ λͺ…λ Ή
────────────────────────────────────────"""
for _cmd, _desc in COMMANDS.items():
_HELP_TEXT += f"\n {_cmd:<10} {_desc}"
_HELP_TEXT += "\n────────────────────────────────────────\n업무 μš”μ²­μ€ μžμ—°μ–΄λ‘œ 직접 μž…λ ₯ν•˜μ„Έμš”."
def is_command(text: str) -> bool:
"""Return True if text is a slash command."""
return text.strip().startswith("/")
def handle_command(text: str) -> str | None:
"""Execute a slash command and return a result string, or None.
Raises SystemExit for /exit.
"""
cmd = text.strip().split()[0].lower()
if cmd == "/help":
return _HELP_TEXT
if cmd == "/clear":
print("\033[2J\033[H", end="", flush=True)
return None
if cmd == "/exit":
raise SystemExit(0)
return f"μ•Œ 수 μ—†λŠ” λͺ…λ Ήμž…λ‹ˆλ‹€: {cmd}\n/helpλ₯Ό μž…λ ₯ν•˜μ„Έμš”."