{
    "agent": {
        "swipe_to_reply": "<i>(이 에이전트에 답장하려면 메시지를 왼쪽으로 스와이프하세요)</i>"
    },
    "agents": {
        "error": "❌ 오류: {error}",
        "invalid_number": "❌ 잘못된 스레드 번호입니다.",
        "list_title": "📂 <b>최근 채팅 스레드:</b>\n\n",
        "no_recent": "ℹ️ 최근 활성 스레드가 없습니다.",
        "not_found": "❌ 스레드를 선택할 수 없습니다.",
        "switched": "✅ 스레드로 전환되었습니다: <b>{name}</b>",
        "switched_plain": "✅ 스레드로 전환되었습니다: {name}",
        "window_not_found": "에이전트 창을 찾을 수 없습니다",
        "menu_title": "📂 <b>대화 / 에이전트 선택</b>\n\n📍 <b>현재 대화:</b> <i>{activeChat}</i>\n📁 <b>현재 프로젝트:</b> <code>{activeProject}</code>\n\n<i>아래에서 최근 대화를 선택하거나 프로젝트별로 필터링하세요:</i>",
        "project_view_title": "📁 <b>프로젝트: {workspace}</b> ({count}개 대화)\n\n<i>전환할 대화를 선택하세요:</i>",
        "all_projects_btn": "⬅️ 전체 프로젝트",
        "refresh_btn": "🔄 새로고침",
        "close_btn": "❌ 닫기",
        "search_found_multi": "🔍 <b>\"{query}\" 검색 결과:</b>\n\n<i>아래에서 대화를 선택하세요:</i>",
        "search_not_found": "❌ \"{query}\"와 일치하는 대화를 찾을 수 없습니다."
    },
    "app": {
        "active_port": "활성 CDP 연결 포트: <code>{port}</code>\n\n",
        "auto_starting": "🚀 {appName} 이(가) 닫혀 있는 것 같습니다. 자동으로 시작합니다...",
        "control_panel": "🕹️ 제어 패널 ({app}):",
        "error_save": "오류: 선호 설정을 저장할 수 없습니다.",
        "new_port": "새 연결 포트: <code>{port}</code>\n\n",
        "persistent_selection": "⚡ <i>선택 항목은 .env 파일에 영구 저장되며 봇 재시작 없이 즉시 적용됩니다.</i>",
        "preferred_app": "선호 앱: <b>{appName}</b>\n",
        "redirect_info": "이제 봇은 모든 메시지와 명령을 이 앱으로 전달합니다.",
        "select_prompt": "제어할 애플리케이션을 선택하세요. 두 애플리케이션은 동시에 실행할 수 있으며 각각 독립적인 포트로 제어됩니다:\n",
        "selection_title": "🤖 <b>Antigravity 앱 선택</b>\n\n",
        "started": "✅ {appName} 이(가) 성공적으로 시작되었습니다.",
        "updated_preference": "앱 선호 설정이 '{app}'(으)로 업데이트되었습니다!",
        "updated_title": "✅ <b>앱 선호 설정이 업데이트되었습니다!</b>\n\n"
    },
    "artifacts": {
        "error": "❌ 아티팩트 읽기 오류: {error}",
        "invalid_number": "❌ 잘못된 아티팩트 번호입니다.",
        "list_title": "📎 <b>현재 스레드의 아티팩트:</b>\n\n",
        "no_active_thread": "⚠️ 활성 스레드를 찾을 수 없습니다. 먼저 IDE에서 스레드를 선택하세요.",
        "no_artifacts": "ℹ️ 현재 스레드에 아티팩트가 없습니다.",
        "sending": "📤 아티팩트 전송 중: <b>{name}</b>..."
    },
    "ask": {
        "done": "✅ 완료되었습니다!",
        "done_empty": "✅ 완료되었지만 새로 생성된 텍스트는 없습니다.",
        "empty": "질문을 입력하세요. 예: `/ask Hello`",
        "focus_success": "✅ 에이전트 <b>{title}</b>에 연결되었습니다.\n✍️ 이제 입력하는 메시지는 이 에이전트로 바로 전송됩니다.",
        "focus_toast": "대상 지정: {title}",
        "headless_error": "❌ 헤드리스 오류: {error}",
        "no_chat_input": "IDE에서 채팅 입력창을 찾을 수 없습니다. Antigravity에서 채팅 세션이 열려 있는지 확인하세요.",
        "reply_agent": "✍️ 이 에이전트에 답장",
        "send_error": "❌ 전송 오류: {error}",
        "sent": "✅ 메시지를 보냈습니다. 응답을 기다리는 중...",
        "timeout": "⚠️ 에이전트가 아직 생각 중이거나 시간이 초과되었습니다. /latest 로 확인하세요.",
        "working": "⏳ 에이전트가 현재 이 작업을 처리하고 있습니다..."
    },
    "auth": {
        "action": "작업: {type}",
        "anonymous": "익명",
        "button": "버튼: {data}",
        "message": "메시지: \"{text}\"",
        "setup_welcome": "환영합니다! 당신의 Chat ID는 {chatId}입니다.\n.env 파일에 ALLOWED_CHAT_ID로 추가한 뒤 봇을 재시작하세요.",
        "unauthorized": "❌ 권한이 없습니다.",
        "unauthorized_attempt": "⚠️ <b>권한 없는 접근 시도!</b>\n\n👤 <b>사용자:</b> {name}\n🔖 <b>사용자명:</b> {username}\n🆔 <b>ID:</b> <code>{id}</code>\n💬 <b>{details}</b>",
        "unknown": "알 수 없음"
    },
    "autoaccept": {
        "disabled": "✅ 자동 승인이 비활성화되었습니다.\n\n📊 이번 세션 총 클릭 수: {clicks}.",
        "disabling": "🔄 자동 승인 비활성화 중...",
        "enabled": "⚡ 자동 승인 활성화됨!\n\n🤖 감시기가 {injected}개 대상에 주입되었습니다.\nRun, Accept, Allow, Continue 버튼은 자동으로 클릭됩니다.",
        "enabled_none": "⚡ 자동 승인 활성화됨!\n\n⚠️ 아직 대상이 없습니다. 에이전트 패널이 열리면 자동으로 주입됩니다.",
        "enabling": "🔄 자동 승인 활성화 중...",
        "error": "❌ 오류: {error}",
        "status_active": "🤖 감시기: 활성 ({targets}개 대상)",
        "status_blocked": "🛡️ 차단된 명령어: {count}",
        "status_clicks": "🖱️ 총 클릭 수: {total} (세션: {session})",
        "status_disabled": "⏸️ 상태: 비활성화",
        "status_enabled": "⚡ 상태: 활성화",
        "status_inactive": "📴 감시기: 비활성",
        "status_last_click": "⏱️ 마지막 클릭: {text} ({sec}초 전)",
        "status_no_panel": "⚠️ 에이전트 패널이 감지되지 않았습니다. 채팅 세션을 열어주세요.",
        "status_title": "📊 <b>자동 승인 상태:</b>\n"
    },
    "bot": {
        "polling": "Antigravity Bot이 현재 폴링 중입니다!",
        "restarted": "🔄 봇이 재시작되었습니다.",
        "started": "🚀 Antigravity Remote Bot 시작!\n채팅 ID: {chatId}\n사용 가능한 모든 명령어를 보려면 /help 를 입력하세요."
    },
    "close": {
        "select_prompt": "⚠️ 닫을 앱을 지정하세요:\n\n👉 Standalone: /close_ag\n👉 IDE (Classic): /close_ide"
    },
    "cmd": {
        "empty": "실행할 명령어를 입력하세요. 예: /cmd ls -la",
        "no_output": "✅ 명령이 성공적으로 실행되었습니다. (출력 없음)",
        "output_title": "💻 명령 출력:",
        "running": "⏳ 명령 실행 중:\n`{cmdStr}`"
    },
    "error": {
        "general_error": "❌ 오류: {error}",
        "start_error": "❌ 시작 오류: {error}",
        "modal_active": "❌ 대화형 질문 패널이 현재 열려 있습니다. 옵션 중 하나를 선택하거나 /stop을 사용하여 취소하세요."
    },
    "file": {
        "dir_info": "({count}개 항목, {page}/{totalPages} 페이지)",
        "dir_read_error": "❌ 디렉터리를 읽을 수 없습니다: {error}",
        "empty_dir": "📂 이 디렉터리는 비어 있습니다.",
        "expired": "❌ 세션이 만료되었습니다. 다시 시작하려면 /file 을 입력하세요.",
        "next_page": "▶️ 다음",
        "not_found": "❌ 파일을 찾을 수 없습니다: {path}",
        "parent_dir": "⬆️ 상위 디렉터리",
        "prev_page": "◀️ 이전",
        "send_failed": "❌ 파일을 보낼 수 없습니다: {error}",
        "sending": "전송 중: {filename}",
        "too_large": "❌ 파일이 너무 큽니다 ({size}MB). Telegram 제한은 50MB입니다."
    },
    "help": {
        "title": "🤖 <b>사용 가능한 명령어:</b>",
        "messaging_title": "📝 <i>메시지 &amp; 상호작용:</i>",
        "messaging_text": "- 텍스트 입력 → 에이전트와 대화\n- 📎 이미지/파일 전송 → 에이전트에 전달\n- /stop → 실행 중인 에이전트 중지\n- /file → 파일 탐색기 열기\n- /turbo → 터보 계획 모드 전환\n- /panel → 대화형 제어판 다시 표시",
        "agent_title": "🎯 <i>에이전트 모드 &amp; 스킬:</i>",
        "agent_text": "- /goal &lt;작업&gt; → 자율 목표 실행 (완료될 때까지 작업)\n- /plan &lt;작업&gt; → 구현 계획 생성\n- /skills → 카테고리별 대화형 스킬 브라우저\n- /skill &lt;이름&gt; [프롬프트] → 특정 스킬 실행\n- /schedule_task &lt;작업&gt; → 반복 작업 예약",
        "chat_title": "💬 <i>채팅 &amp; 아티팩트:</i>",
        "chat_text": "- /new → 새 채팅 세션 열기\n- /agents → 최근 채팅 목록 확인 및 전환\n- /artifacts → 생성된 아티팩트 목록\n- /gettask | /getplan | /getwalk → 최신 작업 목록, 계획 또는 워크스루 가져오기\n- /telegraph → Telegraph 웹 아티팩트 게시 전환\n- /cleartelegraph → 게시된 Telegraph 페이지 삭제\n- /model → 사용할 AI 모델 선택\n- /autoaccept → 자동 수락 전환\n- /help → 이 도움말 가이드 표시",
        "ide_title": "🛠️ <i>시스템 &amp; 워크스페이스 제어:</i>",
        "ide_text": "- /start_ide | /start_ag → IDE / Standalone 앱 시작\n- /close → 앱 완전 종료\n- /closeall → 열려 있는 모든 파일 탭 닫기\n- /app → IDE와 Standalone 모드 전환\n- /workspace → 프로젝트 워크스페이스 전환\n- /memory → 프로젝트 메모리(AGENT.md) 확인/전환\n- /watcher → 백그라운드 태스크 감시기 전환\n- /window → 활성 창 선택\n- /fix_shortcuts → 데스크톱 바로가기 복구\n- /lang → 봇 언어 전환\n- /menu → Telegram 명령어 메뉴 새로고침\n- /cmd &lt;명령어&gt; → 터미널 명령 실행\n- /restart → Telegram 봇 재시작",
        "status_title": "👁️ <i>상태 &amp; 정보:</i>",
        "status_text": "- /latest → 최신 응답 가져오기\n- /screenshot → IDE 스크린샷 캡처\n- /status → 시스템 및 프로세스 상태 보기\n- /quota → AI 모델 할당량 확인\n- /version → 봇 버전 확인\n- /update → 봇 업데이트 확인",
        "account_title": "📱 <b>계정 관리:</b>",
        "account_text": "- /login → Google 계정으로 로그인 (OAuth)\n- /accounts → 저장된 Google 계정 목록\n- /switchacc &lt;N&gt; → 활성 계정 전환\n- /getinfo &lt;N&gt; → 계정 정보 및 할당량 확인\n- /delacc &lt;N&gt; → 저장된 계정 삭제"
    },
    "ide": {
        "already_closed": "ℹ️ IDE가 이미 닫혀 있습니다. (잠금 파일 정리됨)",
        "already_running": "✅ Antigravity IDE가 이미 실행 중입니다! 새 창을 열 필요가 없습니다.\n💡 종료하려면 /close 를 사용하세요.",
        "already_running_short": "Antigravity IDE가 이미 실행 중입니다 (PID: {pid})",
        "closed": "✅ IDE가 완전히 종료되었습니다! (모든 프로세스 및 잠금 파일 정리됨)",
        "closing": "🔄 IDE 종료 중...",
        "closing_window": "🪟 창 닫는 중...",
        "init_error": "❌ 초기화 오류: {error}",
        "not_installed": "❌ Antigravity IDE를 찾을 수 없습니다. 먼저 설치하세요.\n참고: https://antigravity.google/",
        "start_failed": "❌ IDE 시작 실패: {error}",
        "started": "✅ IDE가 성공적으로 시작되었습니다!",
        "starting": "🔄 Antigravity IDE 시작 중...",
        "window_close_failed": "❌ 창을 닫지 못했습니다. 열린 창이 있나요?",
        "window_closed": "✅ 창이 성공적으로 닫혔습니다."
    },
    "interactive_modal": {
        "answer_sent": "선택한 응답이 전송되었습니다: {answer}",
        "btn_confirm": "확인",
        "btn_reject": "거절",
        "confirm_prompt": "_('confirm' 버튼으로 승인하거나 'reject' 로 취소하세요)_",
        "default_header": "에이전트 승인 대기 / 질문:",
        "options_prompt": "_(아래 버튼 중 하나를 선택하거나 답변을 직접 입력할 수 있습니다)_"
    },
    "lang": {
        "changed": "✅ 언어가 변경되었습니다: {lang}",
        "current": "🌐 현재 언어: {lang}",
        "select_prompt": "🌐 언어를 선택하세요:"
    },
    "latest": {
        "error": "❌ 오류: {error}\n(Antigravity가 열려 있나요?)",
        "last_agent_reply": "📋 마지막 에이전트 응답:",
        "no_new": "[새 메시지 없음]",
        "not_found_active": "⚠️ 활성 채팅 창을 찾을 수 없습니다. /agents 명령으로 채팅을 선택하거나 새 메시지를 보내세요.",
        "title": "📝 최신 응답:\n\n"
    },
    "menu": {
        "agents_desc": "최근 채팅 스레드 목록 및 전환",
        "app_desc": "활성 애플리케이션 선택",
        "artifacts_desc": "현재 스레드의 아티팩트 목록",
        "ask_desc": "에이전트에게 질문 보내기",
        "autoaccept_desc": "자동 승인 켜기/끄기",
        "browser_desc": "IDE에서 브라우저 실행",
        "btn_artifacts": "📦 아티팩트",
        "btn_auto_off": "🔴 자동",
        "btn_auto_on": "⚡ 자동",
        "btn_latest": "💬 최신",
        "btn_off": "끄기",
        "btn_on": "켜기",
        "btn_screenshot": "📸 화면",
        "btn_status": "📊 상태",
        "close_ag_desc": "에이전트 닫기",
        "close_desc": "IDE 전체 종료",
        "close_ide_desc": "IDE 닫기",
        "close_window_desc": "현재 창 닫기",
        "cmd_desc": "터미널 명령 실행",
        "file_desc": "파일 탐색 및 전송",
        "fix_shortcuts_desc": "데스크톱 바로가기 수정",
        "goal_desc": "에이전트의 자율 목표 설정",
        "help_desc": "사용 가능한 모든 명령어 표시",
        "lang_desc": "언어 전환",
        "latest_desc": "최신 응답 가져오기",
        "menu_desc": "명령어 메뉴 업데이트",
        "model_desc": "모델 선택 메뉴 열기",
        "model_not_selected": "⚠️ 선택된 모델이 없습니다",
        "new_desc": "새 채팅 열기",
        "plan_desc": "구현 계획 생성",
        "quota_desc": "Antigravity 사용량 표시",
        "restart_desc": "봇 재시작",
        "schedule_task_desc": "IDE에서 작업 예약",
        "screenshot_desc": "IDE 스크린샷 촬영",
        "start_ag_desc": "에이전트 시작",
        "start_ide_desc": "IDE 시작",
        "status_desc": "시스템 상태 (IDE, CDP, PM2)",
        "stop_desc": "에이전트 중지",
        "update_desc": "업데이트 확인",
        "updated": "✅ 메뉴가 업데이트되었습니다! 왼쪽 하단의 ☰ 메뉴에서 확인할 수 있습니다.",
        "version_desc": "현재 버전 표시",
        "welcome": "👋 환영합니다! 패널이 준비되었습니다:",
        "window_desc": "IDE 창 선택",
        "workspace_desc": "프로젝트 전환",
        "login_desc": "Google로 로그인",
        "accounts_desc": "저장된 Google 계정 목록",
        "switchacc_desc": "활성 Google 계정 전환",
        "getinfo_desc": "계정 할당량 정보 보기",
        "delacc_desc": "저장된 Google 계정 삭제",
        "gettask_desc": "최신 작업 체크리스트 가져오기",
        "getplan_desc": "최신 구현 계획 가져오기",
        "getwalk_desc": "최신 워크스루 가져오기",
        "closeall_desc": "열려 있는 모든 파일 탭 닫기",
        "watcher_desc": "백그라운드 작업 모니터 전환",
        "telegraph_desc": "Telegraph 아티팩트 업로드 전환",
        "cleartelegraph_desc": "게시된 Telegraph 페이지 삭제"
    },
    "telegraph": {
        "enabled": "🌐 <b>Telegraph 게시:</b> 활성화됨\n\n아티팩트가 추측 불가능한 URL과 함께 Telegraph/graph.org에 게시됩니다.",
        "disabled": "🔒 <b>Telegraph 게시:</b> 비활성화됨\n\n아티팩트는 비공개로 유지되며 텔레그램 채팅으로 직접 전송됩니다.",
        "status": "🌐 <b>Telegraph 게시 상태:</b>\n\n• 상태: <b>{state}</b>\n• 보안: 128비트 암호화 난수 슬러그 URL\n\n<i>활성화하려면 /telegraph on, 비활성화하려면 /telegraph off를 사용하세요.</i>",
        "state_on": "🟢 활성화됨 (공개 graph.org)",
        "state_off": "🔒 비활성화됨 (비공개 직접 채팅)",
        "btn_turn_on": "🟢 켜기",
        "btn_turn_off": "🔴 끄기",
        "btn_wipe": "페이지 삭제",
        "wiping": "🗑️ 개인정보 보호 및 보안을 위해 게시된 Telegraph 페이지를 삭제하는 중...",
        "wiped": "✅ {count}개의 Telegraph 페이지를 성공적으로 삭제했습니다. 내용이 graph.org에서 삭제 안내문으로 대체되었습니다."
    },
    "model": {
        "changed": "✅ 모델이 변경되었습니다: {model}",
        "changing": "🔄 모델 변경 중: {model}",
        "error": "오류!",
        "not_found": "❌ 모델을 찾을 수 없거나 선택할 수 없습니다.",
        "select_failed": "❌ 모델을 선택할 수 없습니다. IDE에서 채팅 화면이 열려 있는지 확인하세요.",
        "select_prompt": "🤖 모델을 선택하세요:",
        "selecting": "🔄 모델 선택 중: {model}"
    },
    "native_cmd": {
        "browser_started": "🌐 IDE에서 브라우저가 실행되었습니다.",
        "error": "❌ 오류: {error}",
        "goal_empty": "🎯 사용법: /goal <description>\n에이전트를 위한 장기 실행 자율 목표를 정의합니다.",
        "goal_started": "🎯 목표 모드가 활성화되었습니다! 목표가 달성될 때까지 에이전트가 자율적으로 작업합니다.",
        "plan_empty": "📋 사용법: /plan <description>\n에이전트에게 구현 계획 생성을 요청합니다.",
        "plan_started": "📋 계획 생성이 시작되었습니다!",
        "schedule_empty": "⏰ 사용법: /schedule_task <description>\n반복 작업 또는 일회성 작업을 예약합니다.",
        "schedule_started": "⏰ 작업이 예약되었습니다!"
    },
    "new_chat": {
        "error": "❌ 오류: {error}",
        "not_found": "❌ 새 채팅 버튼을 찾을 수 없습니다.",
        "opened": "✅ 새 채팅이 열렸습니다!"
    },
    "watcher": {
        "enabled": "👁️ <b>Task Watcher:</b> 활성화됨\n\n백그라운드 에이전트 알림이 활성화되었습니다.",
        "disabled": "⏸️ <b>Task Watcher:</b> 비활성화됨\n\n백그라운드 에이전트 알림이 일시 중지되었습니다.",
        "status": "👁️ <b>Task Watcher 상태:</b>\n\n• 상태: <b>{state}</b>\n• 활성 스레드: <code>{thread}</code>\n• 모니터링: {count}개 대화",
        "state_on": "🟢 켜짐",
        "state_off": "🔴 꺼짐"
    },
    "photo": {
        "downloaded": "✅ 파일을 다운로드했고 에이전트로 전달하는 중입니다...",
        "error": "❌ 파일 처리 오류: {error}"
    },
    "quota": {
        "checking": "🔄 사용량 상태 확인 중...",
        "empty": " ⛔ 소진됨",
        "error": "❌ 오류: {error}",
        "header": "📊 계정 및 사용량 상태\n",
        "model_quota": "⏱️ 모델 사용량 상태:",
        "not_found": "❌ <b>계정 #{id}을(를) 찾을 수 없습니다</b>\n\n저장된 계정을 보려면 /accounts를 사용하세요.",
        "plan": "📋 요금제: {plan}",
        "prompt_credits": "📊 프롬프트 크레딧: {available}{monthly}",
        "remaining": " {pct}% 남음",
        "remaining_pct": " {icon} {filled}{empty} {pct}% 남음",
        "reset_time": " ⏳ {hours}시간 {mins}분",
        "info_title": "✨ <b>계정 정보</b>",
        "user": "👤 <b>{name}</b>",
        "email": "📧 <code>{email}</code>",
        "id": "🆔 계정  <b>#{id}</b>",
        "tier": "🎟️ 등급  —  <b>{tier}</b>",
        "credits": "💳 AI 크레딧  —  <b>{credits}</b>",
        "model_quota_title": "📊 <b>모델 할당량</b>",
        "model_access_title": "📊 <b>모델 액세스 권한</b>",
        "detailed_quota_title": "📊 <b>상세 할당량</b>",
        "unlimited": "<code>∞ 무제한</code>",
        "unlimited_desc": "  ↳ 모든 모델 — 할당량 제한 없음",
        "unlimited_model": "  ↳ {model}{star}",
        "reset_timestamp": "     ↻ {resetStr}",
        "no_data": "ℹ️ 할당량 정보를 아직 사용할 수 없습니다.\n     잠시 후 다시 시도하세요.",
        "fetching": "🔍 <b>할당량 조회 중…</b>",
        "fetch_failed": "❌ <b>할당량을 조회할 수 없습니다</b>\n\n<code>{error}</code>",
        "no_accounts": "📭 <b>저장된 계정이 아직 없습니다</b>\n\n/login을 사용하여 추가하세요.",
        "token_status_active": "🟢 활성  —  <b>∞ 무제한</b> (자동 갱신)",
        "token_status_unknown": "⚪ 알 수 없음 — /login을 사용하여 갱신",
        "token_status_valid": "🟢 유효  —  <b>{mins}분</b> 남음",
        "token_status_expiring": "🟡 만료 임시  —  <b>{mins}분</b> 남음",
        "token_status_expired": "🔴 만료됨  —  /login을 사용하여 갱신",
        "reset_relative": "    <i>초기화: {time}</i>",
        "usage": "ℹ️ <b>사용법</b>\n━━━━━━━━━━━━━━━━━━━━━━\n<code>/getinfo &lt;id&gt;</code>\n\n예: <code>/getinfo 1</code>\n계정 ID를 보려면 /accounts를 사용하세요."
    },
    "response_too_long": "⚠️ 응답이 너무 깁니다. 전체 내용은 /latest 로 확인하세요.",
    "restart": {
        "closing": "🔄 봇 재시작 중..."
    },
    "schedule": {
        "add_error": "❌ 생성 오류: {error}",
        "add_success": "✅ 일정이 생성되었습니다!\\n\\n📝 <b>{name}</b>\\n⏰ <code>{cron}</code>\\n📁 {workspace}\\n🤖 {model}",
        "add_usage": "➕ 새 일정 추가:\\n\\n<code>/schedule_add Name | cron_expression | workspace | prompt</code>\\n\\n예시:\\n<code>/schedule_add Daily Test | 0 9 * * * | antigravity-bot | Run all tests</code>",
        "btn_back": "◀️ 목록으로 돌아가기",
        "btn_delete": "🗑️ 삭제",
        "btn_pause": "⏸️ 일시중지",
        "btn_resume": "▶️ 재개",
        "btn_run": "▶️ 지금 실행",
        "delete_error": "❌ 삭제 오류: {error}",
        "delete_success": "✅ 일정이 삭제되었습니다.",
        "delete_usage": "🗑️ 일정 삭제:\\n\\n<code>/schedule_del <schedule_id></code>",
        "error": "❌ 오류: {error}",
        "list_empty": "ℹ️ 아직 생성된 일정이 없습니다.\\n\\n새 일정을 만들려면 /schedule_add 를 사용하세요.",
        "list_item": "{icon} <b>{name}</b>\\n   ⏰ <code>{cron}</code> → {workspace}\\n   📊 실행 {runCount}회 | 마지막 결과: {lastResult}\\n",
        "list_title": "📅 <b>일정 목록:</b>\\n\\n",
        "menu_schedule_add_desc": "새 예약 작업 추가",
        "menu_schedule_list_desc": "예약된 작업 목록",
        "menu_schedule_setup_desc": "CronCrew 연결 설정",
        "menu_schedule_status_desc": "CronCrew 상태 표시",
        "not_configured": "⚠️ CronCrew가 아직 설정되지 않았습니다.\\n\\n설정: /schedule_setup <server_url> <license_key>\\n예시: /schedule_setup https://agp.emreturkmen.com CC-XXXX-XXXX-XXXX-XXXX",
        "pause_success": "⏸️ 일정이 일시중지되었습니다: <b>{name}</b>",
        "resume_success": "▶️ 일정이 재개되었습니다: <b>{name}</b>",
        "run_error": "❌ 실행 오류: {error}",
        "run_success": "🚀 일정이 실행되었습니다!\\n\\n📁 워크스페이스: <b>{workspace}</b>\\n🤖 모델: {model}\\n📝 프롬프트를 전송했습니다.",
        "setup_error": "❌ 연결 오류: {error}",
        "setup_success": "✅ CronCrew가 연결되었습니다!\\n\\n🎫 티어: <b>{tier}</b>\\n📡 서버: <code>{url}</code>\\n\\n일정을 관리하려면 /schedule_list 를 사용하세요.",
        "setup_usage": "⚙️ 사용법: /schedule_setup <server_url> <license_key>\\n\\n예시:\\n<code>/schedule_setup https://agp.emreturkmen.com CC-XXXX-XXXX-XXXX-XXXX</code>",
        "status_changes": "🔄 기기 변경: {used}/{max}\\n",
        "status_expires": "⏰ 만료일: {date}\\n",
        "status_license": "📋 상태: <b>{status}</b>\\n",
        "status_schedules": "📅 활성 일정 수: {count}\\n",
        "status_tier": "🎫 티어: <b>{tier}</b>\\n",
        "status_title": "📊 <b>CronCrew 상태</b>\\n\\n",
        "status_usage": "📈 오늘 실행 수: {today}회\\n"
    },
    "screenshot": {
        "error": "❌ 오류: {error}\n(IDE가 열려 있나요?)",
        "taking": "📸 IDE 스크린샷 촬영 중 (CDP 사용)..."
    },
    "shortcuts": {
        "binary_not_found": "바이너리를 찾을 수 없음",
        "error": "❌ 바로가기 업데이트 중 오류가 발생했습니다:\n<code>{error}</code>",
        "not_found": "데스크톱에서 찾을 수 없거나 변경할 수 없습니다",
        "scanning": "⏳ 데스크톱 바로가기를 검사하고 업데이트하는 중입니다. 잠시만 기다려 주세요...",
        "start_error": "❌ 프로세스를 시작할 수 없습니다: {error}",
        "success": "\n✨ <b>성공!</b> 총 <b>{count}</b>개의 바로가기가 업데이트되었습니다. 이제 데스크톱에서 애플리케이션을 실행하면 봇이 자동으로 연결할 수 있습니다.",
        "unsupported_platform": "바로가기는 macOS에서만 지원됩니다.",
        "updated": "업데이트된 바로가기:\n",
        "updated_header": "업데이트된 바로가기:\n"
    },
    "standalone": {
        "already_closed": "ℹ️ Antigravity Standalone이 이미 닫혀 있습니다.",
        "already_running": "🤖 Antigravity Standalone이 이미 실행 중입니다!",
        "closed": "✅ Antigravity Standalone이 종료되었습니다.",
        "closing": "🔌 Antigravity Standalone 종료 중...",
        "not_installed": "❌ 시작 실패: Antigravity Standalone이 설치되어 있지 않은 것 같습니다.",
        "start_failed": "❌ 시작 오류: {error}",
        "started": "✅ Antigravity Standalone이 성공적으로 시작되었습니다.",
        "starting": "🚀 Antigravity Standalone 시작 중..."
    },
    "status": {
        "active_chat": "\n💬 <b>활성 채팅 상세:</b>\n",
        "agent_idle": "💤 유휴",
        "agent_status": "- 에이전트 상태: <b>{status}</b>\n",
        "agent_title": "- 에이전트 제목: <code>{name}</code>\n",
        "agent_working": "🔄 작업 중 (Busy)",
        "autoaccept_off": "❌ 꺼짐",
        "autoaccept_on": "✅ 켜짐",
        "bot_running": "🟢 Bot: 실행 중",
        "cdp_active": "⚡ <b>CDP 자동화:</b> 🟢 활성\n",
        "cdp_inactive": "⚡ <b>CDP 자동화:</b> 🔴 비활성 (CDP 연결 실패)\n",
        "ide_running": "💻 <b>Antigravity IDE (Classic):</b> {status}\n",
        "ide_stopped": "🔴 IDE: 중지됨",
        "preferred_app_status": "🎯 <b>선호 앱:</b> <code>{app}</code>\n\n",
        "project_area": "- 프로젝트 영역: <code>{workspace}</code>\n",
        "report_title": "📊 <b>Antigravity Bot 상태 보고서</b>\n\n",
        "running_status": "🟢 실행 중",
        "selected_model": "- 선택된 모델: <code>{model}</code>\n",
        "standalone_running": "🤖 <b>Antigravity Standalone:</b> {status}\n",
        "stopped_status": "🔴 닫힘",
        "telegram_bot": "🤖 <b>Telegram Bot:</b> 🟢 활성\n",
        "title": "📊 <b>시스템 상태:</b>\n"
    },
    "stop": {
        "already_stopped": "ℹ️ 에이전트가 이미 중지되었거나 중지 버튼을 찾을 수 없습니다.",
        "error": "❌ 오류: {error}",
        "stopped": "✅ 에이전트가 중지되었습니다!",
        "stopping": "🛑 에이전트 중지 중..."
    },
    "task_watcher": {
        "proactive_msg": "에이전트가 사전 알림을 보냈습니다:"
    },
    "turbo": {
        "btn_off": "🚀 터보",
        "btn_on": "🚀 터보 ✅",
        "done_issues": "🚀 <b>터보 모드 완료:</b>\n\n✅ <b>1단계:</b> 계획 (Claude)\n✅ <b>2단계:</b> 코딩 (Gemini)\n⚠️ <b>3단계:</b> 검토 (Claude)\n✅ <b>4단계:</b> 수정 (Gemini)\n\n✨ 결과를 가져오는 중...",
        "done_no_issues": "🚀 <b>터보 모드 완료:</b>\n\n✅ <b>1단계:</b> 계획 (Claude)\n✅ <b>2단계:</b> 코딩 (Gemini)\n✅ <b>3단계:</b> 검토 - 문제 없음 (Claude)\n\n✨ 결과를 가져오는 중...",
        "done_summary": "✨ 터보 모드 완료 (요약 준비됨)",
        "error_title": "❌ <b>터보 모드 오류:</b>\n\n{error}",
        "is_running": "⏳ 터보 모드가 실행 중입니다! 끝날 때까지 기다리거나 /turbo 로 취소하세요.",
        "is_running_short": "⏳ 터보 모드가 실행 중입니다. 잠시만 기다려 주세요.",
        "off": "🛑 터보 모드가 비활성화되었습니다.\n일반 어시스턴트 모드로 돌아갑니다.",
        "on_msg": "⚡ <b>터보 모드 활성</b> ⚡\n\n⚠️ <b>주의:</b> 이 모드에서는 요청이 Claude와 Gemini에 의해 순차적으로 처리됩니다 (Planning -> Coding -> Review). 모델들이 서로의 코드를 수정하고 검토하기 때문에 <b>더 많은 토큰이 소모됩니다.</b>\n\n이 모드를 끄려면 다시 <code>/turbo</code> 를 입력하거나 메뉴 버튼을 클릭하세요.",
        "on_toast": "🚀 터보 모드가 활성화되었습니다!",
        "p1_error": "Claude가 계획 단계에서 시간 초과되었습니다.",
        "p1_fallback": "🚀 <b>터보 모드 활성:</b>\\n\\n⚠️ Claude 한도 도달.\\n⏳ <b>1단계:</b> 계획을 위해 Gemini 3.5 Flash로 대체합니다...",
        "p1_planning": "🚀 <b>터보 모드 시작:</b>\n\n⏳ <b>1단계:</b> Claude가 계획을 준비 중입니다...",
        "p1_start": "🚀 <b>터보 모드 시작:</b>\n\n⏳ <b>1단계:</b> 모델 선택 중 (Claude)...",
        "p2_coding": "🚀 <b>터보 모드 활성:</b>\n\n✅ <b>1단계:</b> Claude가 계획을 완료했습니다.\n⏳ <b>2단계:</b> Gemini가 코드를 작성 중입니다...",
        "p2_error": "Gemini가 코딩 단계에서 시간 초과되었습니다.",
        "p2_switching": "🚀 <b>터보 모드 활성:</b>\n\n✅ <b>1단계:</b> Claude가 계획을 완료했습니다.\n⏳ <b>2단계:</b> 모델 전환 중 (Gemini)...",
        "p3_error": "Claude가 검토 단계에서 시간 초과되었습니다.",
        "p3_fallback": "🚀 <b>터보 모드 활성:</b>\\n\\n✅ <b>1단계:</b> 계획\\n✅ <b>2단계:</b> 코딩\\n⚠️ Claude 한도 도달.\\n⏳ <b>3단계:</b> 검토를 위해 Gemini 3.1 Pro로 대체합니다...",
        "p3_reviewing": "🚀 <b>터보 모드 활성:</b>\n\n✅ <b>1단계:</b> 계획\n✅ <b>2단계:</b> 코딩\n⏳ <b>3단계:</b> Claude가 코드를 검토 중입니다...",
        "p3_switching": "🚀 <b>터보 모드 활성:</b>\n\n✅ <b>1단계:</b> 계획\n✅ <b>2단계:</b> 코딩\n⏳ <b>3단계:</b> 모델 전환 중 (Claude) - 검토 중...",
        "p4_error": "Gemini가 수정 단계에서 시간 초과되었습니다.",
        "p4_fixing": "🚀 <b>터보 모드 활성:</b>\n\n✅ <b>1단계:</b> 계획\n✅ <b>2단계:</b> 코딩\n⚠️ <b>3단계:</b> 문제 발견!\n⏳ <b>4단계:</b> Gemini가 문제를 수정 중입니다...",
        "p4_switching": "🚀 <b>터보 모드 활성:</b>\n\n✅ <b>1단계:</b> 계획\n✅ <b>2단계:</b> 코딩\n⚠️ <b>3단계:</b> 문제 발견!\n⏳ <b>4단계:</b> 모델 전환 중 (Gemini) - 수정 중...",
        "p5_error": "요약 단계에서 시간 초과되었습니다.",
        "p5_summarizing": "⏳ 5단계: 요약 준비 중..."
    },
    "update": {
        "auto_update_failed": "❌ <b>[자동 업데이트]</b> 업데이트 실패: {error}",
        "auto_updating": "🔄 <b>[자동 업데이트]</b> 개발자 업데이트 감지됨 (v{version} - {commit}).\n변경사항을 병합하고 업데이트 중...",
        "available": "🔄 <b>업데이트 가능!</b>\n\n📢 새로운 소식은 @agts_updates, 채팅은 @agts_community 에 참여하세요!\n\n",
        "bot_updated": "🚀 Antigravity Bot이 성공적으로 업데이트되었습니다!\n\n📢 새로운 소식은 @agts_updates, 채팅은 @agts_community 에 참여하세요!",
        "changelog": "📝 <b>변경 로그:</b> <i>{message}</i>\n\n",
        "checking": "🔍 업데이트 확인 중...",
        "click_to_download": "⬇️ 다운로드하려면 클릭: /update",
        "current_version": "현재: v{version} ({commit})\n",
        "error": "❌ 업데이트 오류: {error}",
        "new_version": "🚀 새 버전: <code>{remote}</code>",
        "new_version_info": "새 버전: v{version} ({commit})\n",
        "success": "✅ 코드가 업데이트되었고 의존성이 설치되었습니다.\n지금 봇을 재시작합니다...",
        "up_to_date": "✅ 최신 버전입니다!\n\nv{version} ({commit})",
        "update_note": "<i>💡 참고: Antigravity 2.0 (Standalone App)과 Antigravity IDE 모두 완전히 지원됩니다.</i>\n\n",
        "updating": "업데이트 중..."
    },
    "window": {
        "auto": "대상: <i>자동 (첫 번째 사용 가능 창)</i>",
        "clear_btn": "🔄 자동 (설정 해제)",
        "cleared_msg": "🔄 창 선호 설정이 해제되었습니다. 봇이 활성 IDE 창을 자동으로 감지합니다.",
        "cleared_toast": "해제됨 — 자동 감지 사용",
        "current": "현재 대상: <i>{{current}}</i>",
        "error": "창 목록 오류: {{error}}",
        "expired": "창 목록이 만료되었습니다. 다시 /window 를 보내세요.",
        "found": "{{count}}개의 창을 찾았습니다. 탭하여 선택하세요:",
        "not_found": "IDE 창을 찾을 수 없습니다. 먼저 /start_ide 를 보내세요.",
        "selected_msg": "✅ 이제 대상은 <b>{{title}}</b> 입니다.\n\n모든 명령어가 이 창으로 전달됩니다.",
        "selected_toast": "선택된 창: {title}",
        "title": "<b>🔳 IDE 창</b>\n"
    },
    "workspace": {
        "cdp_warning": "\n⚠️ CDP 연결이 아직 준비되지 않았을 수 있습니다. 몇 초 기다린 뒤 다시 시도하세요.",
        "not_found_standalone": "❌ 프로젝트 '{wsName}' 을(를) Standalone 앱에서 찾을 수 없거나 열 수 없습니다.",
        "read_error": "❌ 프로젝트 디렉터리를 읽을 수 없습니다.",
        "select_prompt": "전환할 워크스페이스를 선택하세요:",
        "selected": "선택된 워크스페이스: {project}",
        "start_failed": "❌ 시작 실패: {error}",
        "started": "✅ 새 워크스페이스로 IDE가 시작되었습니다: {workspace}",
        "switching": "🔄 새 워크스페이스 IDE 창 여는 중: {workspace}",
        "trusted": "🔓 워크스페이스가 자동으로 신뢰 상태로 표시되었습니다."
    },
    "localImageFallback": "이미지",
    "localImageSent": "휴대폰으로 전송됨",
    "login": {
        "notice_title": "⚠️ <b>Google 로그인 안내</b>",
        "notice_body": "로그인 절차를 시작하면 다른 봇 명령어가 일시적으로 중단됩니다.\nAI 에이전트는 IDE의 백그라운드에서 계속 실행됩니다.\n\n계속 진행하시겠습니까?",
        "btn_continue": "👉 예, 계속 진행",
        "btn_cancel": "✖ 취소",
        "starting": "🔄 <b>안전한 로그인을 시작하는 중…</b>",
        "server_error": "❌ <b>로그인 서버 오류</b>\n\n<code>{error}</code>",
        "timeout": "🚫 <b>로그인 시간 초과 (10분).</b> /login을 사용하여 다시 시도하세요.",
        "prompt_title": "🔐 <b>Google 로그인</b>",
        "prompt_body": "아래 버튼을 눌러 Google 계정으로 로그인하고 이 봇에 연결하세요.\n\n📱 <b>모바일 환경인가요?</b>\n로그인 후 브라우저에 연결 오류가 표시되면 주소창에서 <b>전체 URL</b>을 복사하여 여기에 붙여넣으세요.\n\n⏱  <b>10분 후 만료</b>",
        "btn_signin": "🔒 Google 로그인",
        "btn_cancel_login": "❌ 로그인 취소",
        "cancelled": "🚫 <b>로그인 취소됨</b>\n\n준비가 되면 언제든지 /login을 보내 다시 시도하세요.",
        "code_received": "⏳ <b>코드 수신 완료!</b> 로그인을 완료하는 중…",
        "success_title": "✅ <b>로그인 성공!</b>",
        "success_body": "👤 <b>{name}</b>\n📧 <code>{email}</code>\n🆔 계정  <b>#{numericId}</b>  <i>({action})</i>\n\n<i>다음 단계는 무엇인가요?</i>\n• 전환  →  <code>/switchacc {numericId}</code>\n• 할당량 →  <code>/getinfo {numericId}</code>\n• 전체 계정 →  <code>/accounts</code>",
        "failed": "❌ <b>인증 실패</b>\n\n<code>{error}</code>",
        "no_active_session": "⚠️ <b>활성화된 로그인 세션 없음</b>\n\n먼저 /login으로 새 세션을 시작하세요.",
        "no_active_session_short": "⚠️ 활성화된 로그인 세션을 찾을 수 없습니다. /login을 사용하여 시작하세요.",
        "authenticating": "⏳ <b>인증 중…</b>",
        "failed_attempts": "유효한 링크/코드를 붙여넣으려는 3번의 실패 후 Google 로그인 절차가 취소되었습니다.",
        "in_progress": "⚠️ <b>Google 로그인 진행 중</b>\n━━━━━━━━━━━━━━━━━━━━━━\n다른 봇 서비스가 일시적으로 중단되었습니다.\nGoogle 로그인을 완료하거나 취소 버튼을 누르거나 /cancel을 입력하여 현재 로그인 세션을 먼저 취소해 주세요.",
        "no_accounts": "📭 <b>저장된 계정이 아직 없습니다</b>\n\n/login을 사용하여 추가하세요.",
        "code_usage": "📋 <b>로그인 코드 붙여넣기</b>\n━━━━━━━━━━━━━━━━━━━━━━\nGoogle 로그인 후 리디렉션에 실패한 경우 브라우저의 전체 URL(또는 <code>code=…</code> 값)을 복사하여 여기에 전송하세요:\n\n<code>/logincode &lt;url 또는 코드&gt;</code>",
        "invalid_code": "⚠️ <b>잘못된 Google URL 또는 코드</b>\n━━━━━━━━━━━━━━━━━━━━━━\n메시지에서 유효한 Google 인증 코드를 추출할 수 없습니다.\n전체 리디렉션 URL 또는 인증 코드를 붙여넣어 주세요.",
        "invalid_code_attempt": "\n<i>취소 전 시도 횟수: {count}/3</i>"
    },
    "switchacc": {
        "title": "🔄 <b>계정 #{id}(으)로 전환 중</b>",
        "email": "📧 {email}",
        "usage": "ℹ️ <b>사용법</b>\n━━━━━━━━━━━━━━━━━━━━━━\n<code>/switchacc &lt;id&gt;</code>\n\n예: <code>/switchacc 1</code>\n계정 ID를 보려면 /accounts를 사용하세요.",
        "not_found": "❌ <b>계정 #{id}을(를) 찾을 수 없습니다</b>\n\n저장된 계정을 보려면 /accounts를 사용하세요.",
        "step_refreshing": "🔑 토큰 갱신 중…",
        "step_refreshed": "✅ 토큰 갱신 및 저장 완료",
        "step_valid": "✅ 유효한 토큰입니다",
        "step_stopping": "🔴 Antigravity ({app}) 중지 중…",
        "step_stopped": "✅ Antigravity ({app}) 중지됨",
        "step_still_closing": "⚠️ Antigravity ({app}) 종료 중일 수 있음…",
        "step_not_running": "ℹ️ Antigravity ({app})이(가) 실행 중이 아니었습니다",
        "step_writing": "💉 자격 증명 작성 중…",
        "step_written": "✅ 자격 증명 작성 완료 → {app}",
        "step_written_keyring": "✅ 자격 증명 → 키체인 (SQLite: {error})",
        "step_write_failed": "⚠️ 작성 실패: {error}",
        "step_starting": "🟢 Antigravity ({app}) 시작 중…",
        "step_started": "✅ Antigravity ({app}) 시작됨",
        "step_start_failed": "⚠️ ({app})을(를) 시작할 수 없음: {error}",
        "step_done": "✅ <b>현재 계정: #{id}</b>",
        "step_done_email": "📧 {email}",
        "error": "❌ <b>오류</b>\n\n<code>{error}</code>"
    },
    "accounts": {
        "title": "저장된 계정",
        "btn_add": "계정 추가",
        "btn_back": "계정으로 돌아가기",
        "btn_confirm_delete": "예, 삭제",
        "btn_cancel": "취소",
        "delete_confirm_title": "계정 삭제",
        "delete_confirm_body": "이 작업은 이 봇에서 저장된 토큰을 제거합니다.",
        "delete_confirm_note": "Antigravity 자체는 영향을 받지 않습니다.",
        "btn_quota": "할당량",
        "btn_delete": "삭제"
    },
    "artifact_feedback": {
        "proceed": "✅ 계속",
        "cancel": "❌ 취소",
        "proceeded": "✅ 계속됨",
        "canceled": "❌ 취소됨",
        "processing": "처리 중...",
        "error": "오류: {message}"
    },
    "skills": {
        "menu_title": "🧠 <b>에이전트 스킬 ({count})</b>\n\n📂 <i>카테고리별 찾아보기 또는 검색:</i>\n💡 <code>/skill &lt;이름&gt; [프롬프트]</code>",
        "category_title": "{category}\n<b>{count}개 스킬</b>\n\n<i>스킬을 탭하여 상세 보기:</i>",
        "search_results": "🔍 <b>\"{query}\" 검색 결과 ({count})</b>",
        "not_found": "❌ 스킬을 찾을 수 없음: \"{name}\"",
        "no_skills": "ℹ️ 설치된 스킬이 없습니다.",
        "running": "▶️ {name} 실행 중...",
        "close_btn": "❌ 닫기",
        "back_btn": "⬅️ 모든 카테고리",
        "refresh_btn": "🔄 새로고침"
    }
}
