PageSourceSearch

https://leleli-hermes.hf.space/assets/js/ko-BP1A7bUV.js

js leleli-hermes.hf.space collected 2026-10-03 17:03:58 UTC 110,739 bytes, 1 lines download raw bytes

1var e={login:{title:"Hermes Studio",description:"계속하려면 사용자 이름과 비밀번호를 입력하세요.",placeholder:"액세스 토큰",submit:"로그인",tokenRequired:"액세스 토큰을 입력해 주세요",invalidToken:"유효하지 않은 토큰입니다",connectionFailed:"서버에 연결할 수 없습니다",passwordLogin:"비밀번호",tokenLogin:"토큰",usernamePlaceholder:"사용자 이름",passwordPlaceholder:"비밀번호",defaultCredentialsHint:"기본 로그인 이름: admin, 기본 비밀번호: 123456",credentialsRequired:"사용자 이름과 비밀번호를 입력해 주세요",invalidCredentials:"사용자 이름 또는 비밀번호가 올바르지 않습니다",tooManyAttempts:"로그인 시도 횟수가 너무 많습니다. 잠시 후 다시 시도해 주세요",lockResetHint:"본인 서버라면 다음 명령으로 로그인 잠금을 해제할 수 있습니다:",defaultLoginResetHint:"기본 admin 비밀번호를 재설정하려면 다음을 실행하세요:",desktopLockResetHint:"Too many failed login attempts. Open the system tray menu and choose Reset Login to reset the password.",sessionExpired:"로그인이 만료되었습니다. 다시 로그인해 주세요.",accessDenied:"이 리소스에 접근할 권한이 없습니다.",passwordMismatch:"비밀번호가 일치하지 않습니다",passwordTooShort:"비밀번호는 6자 이상이어야 합니다",setupSuccess:"비밀번호 로그인이 설정되었습니다",passwordChanged:"비밀번호가 변경되었습니다",passwordRemoved:"비밀번호 로그인이 제거되었습니다",setupPassword:"비밀번호 로그인 설정",changePassword:"비밀번호 변경",changeUsername:"사용자 이름 변경",removePasswordLogin:"제거",username:"사용자 이름",currentPassword:"현재 비밀번호",newPassword:"새 비밀번호",confirmPassword:"비밀번호 확인",newUsername:"새 사용자 이름",usernameChanged:"사용자 이름이 변경되었습니다",usernameTooShort:"사용자 이름은 2자 이상이어야 합니다",setupDescription:"로그인에 사용할 사용자 이름과 비밀번호를 관리합니다.",removeConfirm:"사용자 계정에는 비밀번호 로그인이 필요합니다.",passwordLoginNotConfigured:"비밀번호 로그인 미설정",passwordLoginConfigured:"현재 계정: {username}",defaultCredentialTitle:"기본 계정과 비밀번호를 변경하세요",defaultCredentialMessage:"현재 로그인 계정이 아직 기본 사용자 이름 또는 기본 비밀번호를 사용하고 있습니다. 무단 접근을 방지하려면 현재 계정에서 사용자 이름과 비밀번호를 가능한 한 빨리 변경하세요.",defaultCredentialAction:"변경하기",defaultCredentialLater:"나중에 알림"},users:{title:"계정 관리",description:"사용자를 만들고 역할을 할당하며 일반 관리자가 접근할 수 있는 프로필을 제어합니다.",create:"사용자 만들기",edit:"사용자 편집",username:"사용자 이름",role:"역할",statusLabel:"상태",profiles:"접근 가능한 프로필",profilesPlaceholder:"접근 가능한 프로필 선택",allProfiles:"모든 프로필",noProfiles:"할당된 프로필 없음",lastLogin:"마지막 로그인",newPasswordOptional:"새 비밀번호 (비워두면 유지)",loadFailed:"사용자 목록을 불러오지 못했습니다",deleteConfirm:"이 사용자를 삭제하시겠습니까?",enable:"활성화",disable:"비활성화",roles:{superAdmin:"슈퍼 관리자",admin:"관리자"},status:{active:"활성",disabled:"비활성"}},common:{loading:"로딩 중...",cancel:"취소",retry:"재시도",reset:"초기화",delete:"삭제",edit:"편집",save:"저장",saved:"저장됨",update:"업데이트",create:"생성",saveFailed:"저장 실패",deleteFailed:"삭제 실패",ok:"확인",copied:"복사됨",copy:"복사",noData:"데이터 없음",fetch:"가져오기",add:"추가",enable:"활성화",disable:"비활성화",configured:"구성됨",notConfigured:"미구성",confirm:"확인",expand:"펼치기",collapse:"접기",stop:"중지",start:"시작",expired:"만료됨"},mcp:{title:"MCP 서버",loadFailed:"MCP 서버를 불러오지 못했습니다",reloadAll:"모두 다시 로드",refresh:"새로고침",total:"합계",connected:"연결됨",disconnected:"연결 끊김",tools:"도구",tool:"도구",searchPlaceholder:"서버 검색...",addServer:"+ 서버 추가",zeroTools:"0개 도구",loading:"로딩...",empty:"MCP 서버가 설정되지 않았습니다",reloaded:"{server} 다시 로드됨",reloadedAll:"모든 MCP 서버가 다시 로드되었습니다",reloadFailed:"다시 로드 실패",serverAdded:'서버 "{name}" 추가됨',addFailed:"서버 추가 실패",serverUpdated:'서버 "{name}" 업데이트됨',updateFailed:"서버 업데이트 실패",saveFailed:"저장 실패",serverRemoved:'"{name}" 제거됨',enabled:"{name} 활성화됨",disabled:"{name} 비활성화됨",connectedStatus:"연결됨",disconnectedStatus:"연결 끊김",disabledStatus:"비활성화됨",toolList:"도구 목록",count:" ",more:"개 더보기",removeFailed:"서버 제거 실패",testOk:"테스트 성공 — {count}개 도구 사용 가능",testEmpty:"테스트에서 도구가 반환되지 않았습니다",testFailed:"테스트 실패",edit:"편집",test:"테스트",reload:"다시 로드",remove:"제거",confirmRemove:'서버 "{name}"을(를) 제거하시겠습니까?',cancel:"취소",add:"추가",save:"저장",addTitle:"MCP 서버 추가",editTitle:"MCP 서버 편집",invalidJson:"JSON 형식 오류",invali
1dYaml:"YAML 형식이 올바르지 않습니다",invalidConfig:"올바르지 않은 설정",invalidServerConfig:"서버 설정이 올바르지 않습니다",missingCommandOrUrl:"command 또는 url이 필요합니다",manageTools:"도구 관리",toolsVisibilityTitle:"도구 가시성 관리",fetchTools:"도구 목록 가져오기",fetchToolsFailed:"도구 목록을 가져오지 못했습니다",toolsMode:"모드:",toolsModeAll:"전체",toolsModeInclude:"포함",toolsModeExclude:"제외",toolsListHeader:"도구 이름",toolsEmpty:"도구가 없습니다. 먼저 도구 목록을 가져오세요",toolsSummaryAll:"총 {count}개 도구, 모두 활성화",toolsSummaryInclude:"총 {total}개 도구, {count}개 선택됨",toolsSummaryExclude:"총 {total}개 도구, {count}개 제외됨",toolsVisibilitySaved:"도구 가시성이 저장되었습니다",toolsSelectAll:"모두 선택",toolsClearSelection:"선택 지우기",toolsExcludeAll:"모두 제외",toolsClearExcluded:"제외 항목 지우기"},sidebar:{chat:"채팅",backToChat:"뒤로",search:"검색",apiRelay:"API 릴레이",history:"기록",jobs:"예약 작업",models:"모델",profiles:"프로필",plugins:"플러그인",mcp:"MCP",petdex:"Pets",skills:"스킬",memory:"메모리",logs:"로그",usage:"사용량",performance:"성능 모니터링",journey:"학습 경로",skillsUsage:"스킬 사용량",channels:"채널",terminal:"터미널",singleChat:"채팅",globalAgent:"Global Agent",files:"파일",devices:"기기",groupChat:"그룹 채팅",groupConversation:"대화",groupConversationShort:"대화",groupAgent:"에이전트",groupAgentShort:"에전",groupSystem:"시스템",groupSystemShort:"시스템",groupMonitoring:"모니터링",groupMonitoringShort:"모니터",settings:"설정",connected:"연결됨",disconnected:"연결 끊김",updateTip:'터미널에서 "hermes-web-ui update"를 실행하여 업데이트하세요',updateVersion:"v{version}(으)로 업그레이드",reloadClientVersion:"v{version}(으)로 새로고침",updating:"업데이트 중...",updateSuccess:"업데이트가 완료되었습니다. 잠시 후 페이지를 새로고침하세요. 오랫동안 시작되지 않으면 수동으로 시작하세요.",updateFailed:"업데이트 실패",logout:"로그아웃",nodeVersionWarning:"Node.js v{version}이 감지되었습니다. 버전 23 이상으로 업그레이드하세요.",changelog:"변경 이력",noChangelog:"변경 이력이 없습니다",versionManagement:"버전 관리",updateAvailableLabel:"(새 버전 있음)",dockerUpdateTitle:"Docker 업데이트",dockerUpdateGuide:"Docker 환경에서 실행 중입니다. 최신 이미지를 가져와 컨테이너를 다시 생성하세요:",dockerUpdateNote:"데이터는 유지되며 컨테이너 재생성 후에도 손실되지 않습니다.",kanban:"칸반",workflow:"워크플로",groupTools:"도구",groupToolsShort:"도구",codingAgents:"코딩 에이전트",versionPreview:"버전 미리보기",groupPlatform:"플랫폼",gateways:"게이트웨이",expand:"메뉴 펼치기",collapse:"메뉴 접기"},runtimeVersions:{title:"버전 관리",runtimeTitle:"Hermes Runtime",webUiTitle:"Web UI",platform:"플랫폼",currentWebUi:"현재 Web UI",activeVersion:"활성 버전",runtimeDirectory:"Runtime 저장 디렉터리",chooseRuntimeDirectory:"디렉터리 선택",resetRuntimeDirectory:"시스템 기본값 사용",runtimeDirectoryHint:"다음 재시작 시 로컬 서비스 시작 전에 현재 Runtime과 다운로드된 Web UI 버전을 복사하고 검증합니다. 이전 저장소는 유지되며 이후 다운로드도 여기에 저장됩니다.",runtimeDirectorySaved:"Runtime 마이그레이션을 예약했습니다. Hermes Studio를 다시 시작하면 실행됩니다.",runtimeMigrationPending:"마이그레이션 예정 위치: {directory}",runtimeMigrationFailed:"저장소 마이그레이션에 실패하여 이전 저장소를 계속 사용합니다",active:"활성",installed:"설치됨",download:"다운로드",downloadGithub:"GitHub 다운로드",downloadCf:"Cloudflare 다운로드",github:"GitHub",cf:"Cloudflare",useVersion:"다음 시작 시 사용",deleteVersion:"삭제",deleteRuntimeConfirm:"Hermes Runtime {version}을 삭제할까요?",deleteWebUiConfirm:"Web UI {version}을 삭제할까요?",deleteRuntimeSuccess:"Runtime이 삭제되었습니다",deleteWebUiSuccess:"Web UI가 삭제되었습니다",refresh:"새로고침",noVersions:"사용 가능한 버전이 없습니다",remoteLoadFailed:"원격 버전을 불러오지 못했습니다",downloadTasks:"다운로드 작업",downloadStarted:"다운로드를 시작했습니다",activateSuccess:"버전 선택이 저장되었습니다. Hermes Studio를 다시 시작하면 적용됩니다.",jobStatus:{queued:"대기 중",running:"실행 중",completed:"완료",failed:"실패"},jobStageStatus:{queued:"대기 중",resolve:"확인 중",download:"다운로드 중",verify:"검증 중",extract:"압축 해제 중",install:"설치 중",completed:"완료",failed:"실패"},jobStage:{queued:"대기 중",download:"다운로드 중",resolveRuntime:"Runtime 패키지 확인 중",verifyRuntime:"Runtime 압축 파일 검증 중",extractRuntime:"Runtime 압축 파일 해제 중",installRuntime:"Runtime 설치 중",resolveWebUi:"Web UI 패키지 확인 중",verifyWebUi:"Web UI 압축 파일 검증 중",extractWebUi:"Web UI 압축 파일 해제 중",installWebUi:"Web UI 설치 중",completed:"완료",failed:"실패"}},mcuDevices:{title:"Little Box",subtitle:"View device link status",name:"Name",nameOptional:"Name is o
1ptional",deviceCode:"Device code",deviceCodePlaceholder:"Enter device code",deviceCodeRequired:"Enter device code",channel:"Channel",official:"Official",unofficial:"Unofficial",createdAt:"Added at",lanStatus:"LAN",remoteStatus:"원격",connected:"연결됨",disconnected:"연결 안 됨",remoteConnect:"원격 연결",remoteConnected:"원격 연결됨",remoteConnectFailed:"원격 연결 실패",remoteDisconnect:"연결 해제",remoteDisconnected:"원격 연결 해제됨",remoteDisconnectFailed:"원격 연결 해제 실패",actions:"Actions",add:"Add",addTitle:"Add MCU device",added:"MCU device added",addFailed:"Failed to add MCU device",purchase:"Buy",edit:"Edit",editNameTitle:"Edit name",nameUpdated:"Name updated",nameUpdateFailed:"Failed to update name",delete:"Delete",deleteTitle:"Delete MCU device",deleteConfirm:'Delete "{name}"?',deleted:"MCU device deleted",deleteFailed:"Failed to delete MCU device",loadFailed:"Failed to load MCU devices",close:"Close"},devices:{title:"기기",count:"기기 {count}개",lastScanned:"마지막 스캔: {time}",refresh:"새로고침",empty:"기기를 찾을 수 없습니다",computer:"컴퓨터",endpointLabel:"엔드포인트",statusLabel:"상태",online:"온라인",offline:"오프라인",address:"주소",os:"OS",agentVersion:"Agent",webUiVersion:"Web UI",responseMs:"지연 시간",lastSeen:"마지막 발견",open:"열기",never:"없음",unknown:"알 수 없음",loadFailed:"기기를 불러오지 못했습니다",scanFailed:"기기 스캔에 실패했습니다",updateFailed:"기기를 업데이트하지 못했습니다",duplicateRequest:"대기 중인 페어링 요청이 이미 있습니다",manualPairing:"Pair by 
1URL",copyPairingLink:"Copy pairing link",manualUrlPlaceholder:"https://device.example.com",manualUrlRequired:"Enter a device URL",manualRequestSent:"Pairing request sent",manualRequestFailed:"Failed to request remote pairing",pairingLinkCopied:"Pairing link copied",pairingLinkCopyFailed:"Failed to copy pairing link",pairingCodeTitle:"Enter pairing code",pairingCodePlaceholder:"Pairing code",pairingCodeRequired:"Enter the pairing code",submitPairingRequest:"Submit request",processed:"처리됨",unprocessed:"미처리",deleteHistory:"기록 삭제",deleteHistoryConfirm:"이 요청 기록을 삭제하고 이 기기의 연결 권한을 취소할까요?",requests:"요청 목록",requestsWithCount:"요청 목록 ({count})",noRequests:"요청 없음",requestPairing:"페어링 요청",paired:"페어링됨",approve:"승인",reject:"거절",block:"차단",unblock:"차단 해제",inboundStatus:{none:"요청 허용",pending:"대기 중",approved:"승인됨",rejected:"거절됨",blocked:"차단됨"},outboundStatus:{none:"미페어링",pending:"요청됨",approved:"페어링됨",rejected:"거절됨",blocked:"차단됨"},endpoint:{web:"Web",desktop:"데스크톱",custom:"사용자 지정"}},performance:{title:"성능 모니터링",subtitle:"시스템 리소스, Bridge Broker, Workers, 활성 세션 확인",refresh:"새로고침",autoRefreshOn:"자동 새로고침",autoRefreshOff:"수동 새로고침",loadFailed:"성능 데이터를 불러오지 못했습니다",systemCpu:"시스템 CPU",systemMemory:"시스템 메모리",activeSessions:"활성 세션",runningSessions:"실행 중 {count}",workers:"Workers",totalWorkerMemory:"Worker 총 메모리",processes:"프로세스",uptime:"실행 시간",running:"실행 중",stopped:"중지됨",workerMemory:"Worker 메모리",lastUpdated:"업데이트 시간",profile:"Profile",memory:"메모리",sessions:"세션",runningActiveSessions:"실행 중 / 활성",lastUsed:"마지막 사용",status:"상태",noWorkers:"Worker 없음",sessionsByProfile:"Profile별 세션",noActiveSessions:"활성 세션 없음"},journey:{title:"학습 경로",play:"학습 경로 재생",pause:"학습 경로 일시정지",refresh:"새로고침",categorySelection:"카테고리 선택",nodeKinds:"노드 유형",description:"설명",canvasInstructions:"화살표 키로 노드를 미리 ë³´ê³  Enter로 세부 정보를 열며 Escape로 선택을 지웁니다.",loadFailed:"학습 경로를 불러오지 못했습니다",nodes:"노드",edges:"연결",skills:"스킬",memories:"메모리",clusters:"클러스터",profile:"프로필",source:"소스",learnedSkills:"학습된 스킬",memorySkillEdges:"메모리 링크",allKinds:"모든 종류",allCategories:"모든 카테고리",searchPlaceholder:"노드 검색",noClusters:"클러스터 없음",noNodes:"학습 경로 노드 없음",noCategory:"미분류",category:"카테고리",useCount:"사용 횟수",createdBy:"생성자",timestamp:"시간",pinned:"고정됨"},drawer:{terminal:"터미널",files:"작업 공간"},subagent:{title:"백그라운드 작업",noGoal:"제목 없는 백그라운드 작업",open:"백그라운드 작업 실시간 출력 열기",close:"백그라운드 작업 출력 닫기",waiting:"실시간 출력을 기다리는 중…",tool:"도구",tools:"도구 호출 {count}회",tokens:"입력 {input} · 출력 {output}",started:"시작됨",running:"실행 중",completed:"완료됨",failed:"실패함",cancelled:"취소됨",interrupted:"중단됨"},realtimeVoice:{title:"실시간 음성",mode:"음성 모드",open:"실시간 음성 열기",back:"채팅으로 돌아가기",connected:"음성 연결 준비됨",turnMode:"실시간 미리보기 · 턴 방식",browserStt:"브라우저",browserTts:"브라우저",untitledSession:"제목 없는 대화",sessionMissing:"대화를 사용할 수 없습니다.",backendStreamRequired:"모바일과 데스크톱 실시간 음성을 사용하려면 백엔드 음성 인식 서비스를 먼저 설정해야 합니다.",networkUnavailableNoFallback:"브라우저 음성 인식이 오프라인이며 사용 가능한 대체 STT가 설정되지 않았습니다.",liveTranscript:"실시간 텍스트",transcriptPlaceholder:"음성 코어를 누르고 말해 보세요",recentTurns:"최근 대화",you:"나",mute:"출력 음소거",unmute:"음소거 해제",finishTurn:"말하기 완료",speak:"말하기 시작",end:"종료",status:{idle:"준비됨",paused:"마이크 꺼짐",listening:"듣는 중",processing:"변환 중",thinking:"{agent}가 생각 중",speaking:"{agent}가 말하는 중",error:"음성 연결이 중단됨"},hint:{idle:"중앙을 눌러 음성 턴을 시작하세요",paused:"준비되면 마이크를 다시 켜세요",listening:"자연스럽게 멈추면 전송되며 눌러서 끝낼 수도 있습니다",listeningManual:"녹음 중입니다. 중앙을 다시 눌러 중지하고 텍스트로 변환하세요",processing:"음성을 텍스트로 변환하고 있습니다",thinking:"현재 대화로 메시지를 보냈습니다",speaking:"언제든지 응답을 중단할 수 있습니다",error:"중앙을 눌러 다시 시도하세요"}},chat:{contextRemaining:"남음",contextClickToEdit:"클릭하여 컨텍스트 길이 편집",contextEditTitle:"컨텍스트 길이 편집",contextEditDesc:"현재 모델의 컨텍스트 길이 제한 설정 (토큰 수)",contextEditPlaceholder:"컨텍스트 길이 입력",contextEditHint:"일반적인 값: 256k (Hermes 기본값), 128k (GPT-4), 32k (GPT-3.5)",contextEditSave:"저장",contextEditCancel:"취소",contextEditInvalid:"유효한 컨텍스트 길이를 입력하세요",contextEditSuccess:"컨텍스트 길이가 업데이트되었습니다",contextEditFailed:"업데이트 실패",emptyState:"Hermes Agent와 대화를 시작하세요",emptyStateAgent:"{agent}와 대화를 시작하세요",viewOlderInHistory:"이전 메시지는 기록에서 보기",scrollToBottom:"맨 아래로 이동",outlineTitle:"ë
1Œ€í™” 개요",outlineEmpty:"대화 내용이 없습니다",outlineUserQuestion:"사용자 질문",inputPlaceholder:"메시지를 입력하세요... (Enter로 전송, Shift+Enter로 줄바꿈)",inputHeightResizeHint:"드래그해서 채팅 입력창 높이를 바꾸고, 더블클릭하면 자동 높이로 돌아갑니다.",slashCommandArgs:{message:"<메시지>",title:"<제목>",text:"<텍스트>"},slashCommands:{usage:"현재 세션 사용량 계산",status:"세션 상태와 대기열 표시",abort:"활성 Bridge 실행 중지",queue:"활성 실행 뒤에 메시지 대기열 추가",learn:"설명한 소스에서 재사용 가능한 스킬 학습",plan:"Markdown 구현 계획 작성",goal:"Set a standing goal that continues across turns",goalStatus:"Show the active goal status",goalPause:"Pause the active goal loop",goalResume:"Resume the paused goal loop",goalDone:"Complete and clear the active goal",goalClear:"Clear the active goal",subgoal:"Add a criterion to the active goal",clear:"현재 표시 내용 지우기",clearHistory:"이 세션의 저장된 메시지 기록 삭제",title:"이 세션 이름 변경",compress:"유휴 상태에서 컨텍스트 압축 실행",steer:"활성 Bridge 실행에 지시 텍스트 보내기",destroy:"이 세션의 Bridge Agent 해제",reloadMcp:"MCP 서버 다시 로드",reloadSkills:"스킬 명령 다시 로드"},attachFiles:"파일 첨부",reasoningEffort:{tooltip:"추론 노력",defaultLabel:"기본값",options:{default:"기본값 (config.yaml)",none:"없음",minimal:"최소",low:"낮음",medium:"중간",high:"높음",max:"Max",xhigh:"매우 높음"}},showToolCalls:"도구 호출 표시",hideToolCalls:"도구 호출 숨기기",messageQueue:"메시지 대기열",removeQueuedMessage:"대기열 메시지 제거",stop:"중지",send:"전송",contextUsed:"사용된 컨텍스트:",sessions:"세션",webUiSessions:"세션",allProfiles:"모든 프로필",profileMissingModelsTip:'이 세션의 프로필 "{profile}"에는 사용 가능한 공급자 또는 모델이 없습니다',sessionScopeHint:"채팅에는 Web UI/API Server 세션만 표시됩니다. CLI, Telegram, Discord, Cron 등 채널 세션은 기록에서 읽기 전용으로 ë³¼ 수 있습니다.",openHistory:"기록 열기",hermesHistory:"Hermes 기록",historyScopeHint:"현재 profile의 Hermes 기록 세션을 소스별로 읽기 전용으로 봅니다.",noSessions:"세션 없음",loadMoreSessions:"세션 더 불러오기",newChat:"새 채팅",agent:"Agent",approvalKicker:"터미널 권한",approvalTitle:"실행 전에 명령 확인",approvalAgree:"동의",approvalAllowOnce:"한 번만 허용",approvalAllowSession:"이 세션에서 허용",approvalAlways:"항상 허용",approvalDeny:"거부",clarifyKicker:"에이전트 확인 필요",clarifyTitle:"에이전트가 질문이 있습니다",clarifyPlaceholder:"답변 입력...",clarifySubmit:"답장",clarifyDismiss:"무시",deleteSession:"이 세션을 삭제하시겠습니까?",toggleBatchMode:"일괄 선택",selectAll:"모두 선택",confirmBatchDelete:"선택한 {count}개의 세션을 삭제하시겠습니까?",batchDeleteSuccess:"{count}개의 세션을 삭제했습니다",batchDeletePartial:"{failed}개의 세션 삭제 실패",batchDeleteFailed:"일괄 삭제 실패",importToWebUi:"Web UI로 가져오기",importSessionSuccess:"세션을 Web UI로 가져왔습니다",importSessionAlreadyExists:"세션이 이미 Web UI에 있습니다",importSessionFailed:"세션 가져오기 실패",sessionDeleted:"세션이 삭제되었습니다",rename:"이름 변경",archiveSession:"보관",unarchiveSession:"보관 해제",pin:"고정",unpin:"고정 해제",pinned:"고정됨",chatMode:"채팅",liveMode:"라이브",liveSessions:"라이브 세션",recentBadge:"최근",linkedSessions:"{count}개 연결됨",noVisibleMessages:"사람이 ë³¼ 수 있는 메시지가 없습니다.",monitorRoleUser:"사용자",monitorRoleAssistant:"어시스턴트",copySessionLink:"세션 링크 복사",openSessionInNewTab:"새 탭에서 열기",sessionLinkCopied:"Session link copied",copySessionId:"세션 ID 복사",export:"내보내기",editConfig:"구성 편집",exportFull:"전체 내보내기 (JSON)",exportCompressed:"압축 내보내기 (TXT)",exportCompressing:"컨텍스트 압축 중, 잠시 기다려주ì
1„¸ìš”...",exportSuccess:"세션을 내보냈습니다",exportFailed:"내보내기 실패",renamed:"이름이 변경되었습니다",renameFailed:"이름 변경 실패",sessionArchived:"세션을 보관했습니다",archiveSessionFailed:"세션 보관 실패",sessionUnarchived:"세션 보관을 해제했습니다",unarchiveSessionFailed:"세션 보관 해제 실패",renameSession:"세션 이름 변경",sessionNotFound:"세션을 찾을 수 없습니다",enterNewTitle:"새 제목을 입력하세요",other:"기타",runFailed:"실행 실패",error:"오류",tool:"도구",arguments:"인수",result:"ê²°ê³¼",workspaceChanges:"작업공간 변경",changedFiles:"{files}개 파일 변경됨",changesThisTurn:"이번 턴의 변경 사항",diffUnavailable:"diff를 표시할 수 없습니다",binaryFileDiffUnavailable:"바이너리 파일 diff를 표시할 수 없습니다",truncated:"... (잘림)",unchangedLines:"변경 없음 {count}줄",executionDuration:"실행 시간",thinkingLabel:"사고 과정",thinkingInProgress:"사고 중",thinkingShow:"사고 과정 펼치기",thinkingHide:"사고 과정 접기",thinkingDuration:"관측 {duration}",thinkingChars:"{count}자",copyBubble:"메시지 복사",copiedBubble:"복사됨",copyFailed:"복사 실패",referenceMessage:"메시지 인용",cancelReference:"인용 취소",playSpeech:"음성 재생",pauseSpeech:"일시정지",resumeSpeech:"재개",stopSpeech:"중지",speechNotSupported:"이 브라우저는 음성 재생을 지원하지 않습니다",searchEnterHint:"Enter로 열기 · Esc로 닫기",searchHint:"Cmd/Ctrl+K",searchScope:"검색 범위: Web UI 로컬 세션 DB만 포함하며 읽기 전용 Hermes 기록 세션은 포함하지 않습니다.",searchFailed:"세션 검색 실패",searchNoSnippet:"표시할 요약이 없습니다",searchNoResults:"일치하는 세션이 없습니다",searchRecent:"최근 세션",searchEmpty:"최근 세션",searchPlaceholder:"세션 검색...",searchSubtitle:"제목 또는 메시지 내용으로 검색",searchTitle:"세션 검색",stopGateway:"Gateway 중지",start:"시작",workspaceSetFailed:"Workspace 설정 실패",workspaceSet:"Workspace가 설정되었습니다",workspacePlaceholder:"프로젝트 경로 입력, 예: /home/user/project",folderPickerEmpty:"(비어 있음)",folderPickerNoFolders:"Worksp
1ace 폴더가 없습니다",folderPickerSelected:"선택됨:",workspaceDefault:"기본",workspaceDefaultTooltip:"이 작업 공간은 기본값으로 설정되어 새 채팅에 자동 입력됩니다",workspacePin:"기본 작업 공간으로 설정",workspaceUnpin:"기본 작업 공간 해제",workspaceRecent:"최근 사용",defaultWorkspace:"기본 작업 공간",more:"더보기",workspace:"작업 공간",setWorkspaceTitle:"세션 Workspace 설정",setWorkspace:"Workspace 설정",modelSetFailed:"모델 설정 실패",modelSet:"모델이 설정되었습니다",modelSwitching:"모델을 전환하는 중...",setModelTitle:"세션 모델 설정",standardModels:"일반 모델",moaPresets:"MoA 조합",noMoaPresets:"사용 가능한 MoA 조합이 없습니다",modelType:"모델 유형",setModel:"모델 설정",newCliChat:"새 CLI",cliEmptyState:"CLI 채팅 시작",autoPlaySpeech:"음성 자동 재생",voiceInput:{startCapture:"음성 입력 시작",stopCaptureAndInsert:"음성 입력을 중지하고 입력창에 삽입",cancelCapture:"음성 입력 취소",statusLabel:"상태: {status}",transcriptLabel:"전사: {text}",errorLabel:"오류: {error}",recentEvents:"최근 이벤트",status:{idle:"대기",capturing:"듣는 중",transcribing:"전사 중",sending:"입력창에 삽입 중",error:"오류"},browserSpeechUnsupported:"이 브라우저는 내장 음성 인식을 지원하지 않습니다.",browserSpeechFailed:"브라우저 음성 인식에 실패했습니다.",browserSpeechFailedWithReason:"브라우저 음성 인식에 실패했습니다: {error}.",microphoneUnsupported:"이 브라우저는 마이크 녹음을 지원하지 않습니다.",microphoneRecordingFailed:"마이크 녹음에 실패했습니다."}},jobs:{title:"예약 작업",createJob:"작업 생성",editJob:"작업 편집",noJobs:"예약된 작업이 없습니다. 새로 만들어 시작하세요.",sortBy:"정렬",sortByName:"이름순",sortByTime:"날짜순",sortByNameHint:"이름으로 정렬",sortByTimeHint:"날짜로 정렬",sortAsc:"오름차순",sortDesc:"내림차순",name:"이름",namePlaceholder:"작업 이름",schedule:"스케줄 (Cron 표현식)",schedulePlaceholder:"예: 0 9 * * *",quickPresets:"빠른 프리셋",selectPreset:"프리셋 선택...",presetEveryMinute:"매 분",presetEvery5Min:"매 5분",presetEveryHour:"매 시간",presetEveryDay:"매일 00:00",presetEveryDay9:"매일 09:00",presetEveryMonday:"매주 월요일 09:00",presetEveryMonth:"매월 1일 09:00",prompt:"프롬프트",promptPlaceholder:"실행할 프롬프트",skills:"스킬",skillsPlaceholder:"스킬 선택...",provider:"Provider",model:"Model",defaultProvider:"Default provider",defaultModel:"Default model",deliverTarget:"전송 대상",origin:"출처",local:"로컬",repeatCount:"반복 횟수 (선택)",modelPlaceholder:"기본 모델",repeatPlaceholder:"비워두면 무한 반복",jobCreated:"작업이 생성되었습니다",jobUpdated:"작업이 업데이트되었습니다",nameRequired:"이름을 입력해 주세요",scheduleRequired:"스케줄을 입력해 주세요",loadFailed:"작업을 불러오지 못했습니다",jobPaused:"작업이 일시 정지되었습니다",jobResumed:"작업이 재개되었습니다",jobTriggered:"작업이 실행되었습니다",modelUpdated:"모델이 업데이트되었습니다",jobDeleted:"작업이 삭제되었습니다",status:{running:"실행 중",paused:"일시 정지",disabled:"비활성화",scheduled:"예약됨"},info:{model:"모델",provider:"Provider",schedule:"일정",lastRun:"마지막 실행",nextRun:"다음 실행",deliver:"전송",repeat:"반복"},action:{pause:"일시 정지",pauseJob:"작업 일시 정지",resume:"재개",resumeJob:"작업 재개",runNow:"즉시 실행",triggerImmediately:"즉시 실행"},runHistory:{title:"실행 기록",runs:"회 실행",noRuns:"실행 기록이 없습니다."}},skills:{title:"스킬",targetFilter:"런타임",targets:{hermes:"Hermes",claude:"Claude",codex:"Codex"},searchPlaceholder:"스킬 검색...",noMatch:"검색과 일치하는 스킬이 없습니다",noSkills:"스킬을 찾을 수 없습니다",backTo:"돌아가기",attachedFiles:"첨부 파일",loadFailed:"스킬을 불러오지 못했습니다",fileLoadFailed:"파일ì
1„ 불러오지 못했습니다",modified:"사용자 수정됨",archived:"보관됨",pinned:"고정됨",pin:"스킬 고정",unpin:"고정 해제",pinFailed:"고정 상태 변경 실패",edit:"편집",saving:"저장 중...",editorLabel:"스킬 편집기",saveSuccess:"스킬 저장됨",saveFailed:"스킬 저장 실패",toggleFailed:"스킬 상태를 전환하지 못했습니다",source:{builtin:"내장",hub:"Hub",local:"로컬",external:"외부"},delete:"삭제",deleteConfirm:'스킬 "{name}"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',deleteSuccess:"스킬이 삭제되었습니다",deleteFailed:"삭제 실패",import:"가져오기",importTitle:"스킬 가져오기",importModeZip:"Zip",importModeFolder:"폴더",importHintZip:"SKILL.md를 포함한 디렉터리의 .zip 파일 업로드",importHintFolder:"로컬 스킬 폴더 선택 (SKILL.md 필요)",importTargetCategory:"대상 카테고리 (선택)",importTargetCategoryPlaceholder:"비워두면 misc에 배치",importSelectFile:".zip 파일 선택",importSelectFolder:"폴더 선택",importInvalidFile:".zip 파일만 지원됩니다",importFileCount:"개 파일",importNoSelection:"먼저 파일 또는 폴더를 선택하세요",importSuccess:"스킬이 가져와졌습니다",importFailed:"가져오기 실패",path:{local:"로컬",external:"외부"},externalDirs:{manage:"외부 디렉터리",title:"외부 디렉터리 관리",hint:"config.skills.external_dirs 를 관리합니다. ~ ê³¼ $VAR 지원. 존재하지 않는 경로는 흐리게 표시됩니다.",add:"외부 디렉터리 추가",placeholder:"/path/to/skills 또는 ~/my-skills",empty:"외부 디렉터리가 없습니다",missing:"경로를 찾을 수 없음",notDir:"디렉터리가 아님",saveSuccess:"외부 디렉터리 저장됨",saveFailed:"저장 실패",loadFailed:"외부 디렉터리 로드 실패",removeRow:"제거"},pathCopied:"경로 복사됨",pathCopyFailed:"경로 복사 실패",reloadHint:"활성 세션에서는 /reload-skills 실행. 새 세션은 자동 로드됩니다.",writeApprovalButton:"대기 {count}",writeApprovalTitle:"쓰기 승인 대기",writeApprovalDescription:"Hermes Agent가 보류한 메모리와 스킬 쓰기를 승인하거나 거부합니다.",writeApprovalRefresh:"새로고침",writeApprovalEmpty:"승인 대기 중인 쓰기가 없습니다.",writeApprovalUnsupported:"이 Hermes Agent 버전은 쓰기 승인을 지원하지 않습니다. 이 기능을 사용하려면 Hermes Agent를 업그레이드하세요.",writeApprovalMemory:"메모리",writeApprovalSkills:"스킬",writeApprovalViewDiff:"검토",writeApprovalHideDiff:"숨기기",writeApprovalNoDiff:"표시할 차이가 없습니다.",writeApprovalLoadFailed:"승인 대기 쓰기를 불러오지 못했습니다",writeApprovalDiffFailed:"쓰기 세부 정보를 불러오지 못했습니다",writeApprovalActionFailed:"승인 대기 쓰기를 처리하지 못했습니다",writeApprovalApproved:"쓰기가 승인되었습니다",writeApprovalRejected:"쓰기가 거부되었습니다",writeApprovalApprove:"승인",writeApprovalReject:"거부",writeApprovalPendingMemoryWrite:"승인 대기 메모리 쓰기",writeApprovalCurrentFile:"현재 {file}",writeApprovalProposedFile:"제안된 {file}",writeApprovalDiffSection:"차이",writeApprovalPatchOldStringMissing:"패치 old_string을 현재 {file}에서 찾지 못해 승인해도 파일은 변경되지 않습니다.",writeApprovalRequestedOldString:"요청된 old_string",writeApprovalCurrentReadFailed:"현재 {file}을 UTF-8 텍스트로 읽을 수 없습니다.",writeApprovalDeleteSkill:"이 승인은 스킬 {skill}을 삭제합니다.",writeApprovalRemoveFile:"이 승인은 스킬 {skill}에서 {file}을 제거합니다."},plugins:{title:"플러그인",refresh:"새로고침",notice:"탐색 가능한 Hermes 플러그인 manifest 인벤토리입니다. 탐색 메타데이터는 플러그인 코드를 로드하지 않고 읽습니다. standalone 사용자 플러그인은 여기에서 활성화하거나 비활성화할 수 있으며, 변경 사항은 새 Hermes 세션에서 적용됩니다.",loadFailed:"플러그인을 불러오지 못했습니다",updateFailed:"플러그인을 업데이트하지 못했습니다",enableSuccess:"{name} 활성화됨",disableSuccess:"{name}
1 비활성화됨",commandCopied:"명령을 복사했습니다",searchPlaceholder:"key, 이름, 설명, 경로 검색...",source:"소스",kind:"종류",statusTitle:"상태",configStatus:"config: {status}",notAvailable:"n/a",copyCommand:"명령 복사",managedElsewhere:"다른 곳에서 관리됨",noMatch:"현재 필터와 일치하는 플러그인이 없습니다",enabled:"활성화됨",disabled:"비활성화됨",summary:{total:"전체",active:"활성 / 자동",inactive:"비활성",disabled:"비활성화됨",providerManaged:"Provider 관리"},status:{enabled:"활성화됨","auto-active":"자동 활성",inactive:"비활성",disabled:"비활성화됨","provider-managed":"Provider 관리"},statusLabel:{enabled:"설정으로 활성화됨","auto-active":"자동 활성",inactive:"비활성",disabled:"비활성화됨","provider-managed":"Provider 관리"},configStatuses:{enabled:"활성화됨",disabled:"비활성화됨","not-enabled":"활성화되지 않음",auto:"자동","provider-managed":"Provider 관리"},table:{plugin:"플러그인",status:"상태",source:"소스",kind:"종류",capabilities:"기능",path:"경로 / entrypoint",manage:"관리"},capabilities:{tools:"{count} tools",hooks:"{count} hooks",env:"{count} env"},metadata:{agentRoot:"에이전트 루트",python:"Python",scanCwd:"cwd 스캔",projectPlugins:"프로젝트 플러그인"}},petdex:{title:"Petdex Pets",subtitle:"Browse the public petdex catalog used by Hermes desktop pets.",refresh:"Refresh",adopt:"Adopt",active:"Active",adopted:"Adopted {name}",adoptFailed:"Failed to adopt pet",loadFailed:"Failed to load petdex catalog",searchPlaceholder:"Search by name, slug, author, or kind",kindFilter:"Kind",spritesheet:"Spritesheet",submittedBy:"By {name}",empty:"No pets match the current filters.",showMore:"Show {count} more",summary:{total:"Catalog total",visible:"Matching",kinds:"Kinds",generatedAt:"Generated at"}},memory:{title:"메모리",refresh:"새로고침",loadFailed:"메모리를 불러오지 못했습니다",myNotes:"내 메모",noNotes:"메모가 없습니다.",notesPlaceholder:"메모를 작성하세요...",userProfile:"사용자 프로필",noProfile:"프로필이 없습니다.",profilePlaceholder:"프로필을 작성하세요...",soul:"소울",noSoul:"소울 설정이 없습니다.",soulPlaceholder:"소울 설정을 작성하세요..."},models:{title:"모델",addProvider:"Provider 추가",noProviderPromptTitle:"모델 Provider가 설정되지 않음",noProviderPromptMessage:'현재 Profile "{profile}"에 모델 Provider가 설정되어 있지 않습니다. 모델 설정을 여시겠습니까?',noProviderPromptLater:"나중에",noProviderPromptAction:"설정으로 이동",refreshModelCache:"모델 캐시 새로고침",refreshModelCacheLoading:"모델 캐시를 새로고침하는 중...",refreshModelCacheSuccess:"모델 캐시를 새로고침했습니다",refreshModelCacheFailed:"모델 캐시 새로고침 실패",providerType:"Provider 유형",preset:"프리셋",custom:"사용자 지정",selectProvider:"Provider 선택",chooseProvider:"Provider를 선택하세요...",name:"이름",autoGeneratedName:"Base URL에서 자동 생성",baseUrl:"Base URL",region:"지역",regionIntl:"국제판",regionCn:"중국 본토",baseUrlPlaceholder:"예: https://api.example.com/v1",apiKey:"API Key",apiKeyPlaceholder:"sk-...",defaultModel:"기본 모델",selectOrInput:"모델 선택 또는 직접 입력...",selectModel:"모델 선택...",providerAdded:"Provider가 추가되었습니다",providerDeleted:"Provider가 삭제되었습니다",providerCredentialsCleared:"Provider 자격 증명이 삭제되었습니다",clearProviderCredentials:"자격 증명 삭제",clearCredentialsConfirm:'"{name}"의 저장된 자격 증명을 삭제하시겠습니까? 이 기본 제공 Provider는 목록에 남으며, 자격 증명을 다시 설정하면 사용할 수 있습니다.',disableProvider:"Provider 비활성화",disableProviderConfirm:'기본 제공 Provider "{name}"을(를) 비활성화하시겠습니까? 이 Provider는 기본 제공 항목으로 남으며 나중에 다시 활성화할 수 있습니다.',providerDisabled:"Provider가 비활성화되었습니다",defaultProviderUpd
1ated:"기본 Provider가 업데이트되었습니다",defaultProviderUpdateFailed:"기본 Provider 업데이트에 실패했습니다",defaultModelUpdated:"기본 모델이 업데이트되었습니다",defaultModelUpdateFailed:"기본 모델 업데이트에 실패했습니다",deleteProvider:"Provider 삭제",deleteConfirm:'"{name}"을(를) 삭제하시겠습니까?',codexLoginTitle:"OpenAI Codex 로그인",codexWaiting:"인증 페이지에서 아래 코드를 입력하여 로그인하세요:",codexCopyCode:"코드가 복사되었습니다",codexOpenLink:"인증 페이지 열기",codexApproved:"로그인 성공",codexExpired:"인증이 만료되었습니다. 다시 시도해주세요.",nousLoginTitle:"Nous Portal 로그인",nousWaiting:"인증 페이지에서 이 코드를 입력하세요:",nousCopyCode:"코드 복사됨",nousOpenLink:"인증 페이지 열기",nousApproved:"로그인 성공",nousDenied:"인증이 거부되었습니다",nousExpired:"인증이 만료되었습니다",copilotLoginTitle:"GitHub Copilot 로그인",copilotWaiting:"GitHub을 열고 아래의 디바이스 코드를 입력하여 인증하세요. 승인 후 창이 자동으로 닫힙니다.",copilotCopyCode:"코드가 복사되었습니다",copilotOpenLink:"GitHub 인증 페이지 열기",copilotApproved:"로그인 성공!",copilotDenied:"인증이 거부되었습니다.",copilotExpired:"인증 링크가 만료되었습니다. 다시 시도하세요.",copilotAddDetectedTitle:"GitHub Copilot 감지됨",copilotAddDetected:"이 컴퓨터에서 GitHub Copilot OAuth 토큰이 감지되었습니다. 추가를 클릭하여 Hermes에서 Copilot을 활성화하세요.",copilotAddSourceEnv:"출처: ~/.hermes/.env (COPILOT_GITHUB_TOKEN)",copilotAddSourceGhCli:"출처: gh CLI (gh auth token)",copilotAddSourceAppsJson:"출처: VS Code Copilot 확장 (apps.json)",copilotDeleteHintEnv:"이 작업은 ~/.hermes/.env의 COPILOT_GITHUB_TOKEN을 지웁니다. 다른 도구에는 영향이 없습니다.",copilotDeleteHintGhCli:"Copilot이 Hermes에서 숨겨집니다. gh CLI 로그인에는 영향이 없으며 `gh auth status`는 여전히 로그인 상태를 표시합니다.",copilotDeleteHintAppsJson:"Copilot이 Hermes에서 숨겨집니다. VS Code Copilot 확장 로그인에는 영향이 없습니다.",customBadge:"커스텀",previewBadge:"프리뷰",disabledBadge:"사용 불가",disabledTooltip:"이 모델은 현재 계정에서 사용할 수 없습니다.",customModelPlaceholder:"목록에 없는 모델 ID",customModelHint:"제공자는 지원하지만 API가 반환하지 않는 모델용입니다. 표시 이름 변경이 아닙니다. Enter로 불러옵니다.",noProviders:"Provider가 없습니다. 사용자 지정 Provider를 추가하여 시작하세요.",clearVisibleModels:"선택 지우기",generalTitle:"일반 모델",combinationTitle:"모델 앙상블",combinationSubtitle:"MoA 프리셋을 설정합니다. 참조 모델이 먼저 관점을 제공하고, 이후 하나의 집계 모델이 최종 응답과 도구 í
1˜¸ì¶œì„ 처리합니다.",combinationPreset:"프리셋",combinationName:"이름",combinationAddModel:"모델 앙상블 추가",combinationEditModel:"모델 앙상블 편집",combinationNewPreset:"새 프리셋",combinationPresetPlaceholder:"예: review",combinationAddPreset:"프리셋 추가",combinationSetDefault:"기본값으로 설정",combinationEnabled:"참조 모델 활성화",combinationReferenceModels:"참조 모델",combinationReferenceModel:"참조 모델",combinationAddReference:"참조 모델 추가",combinationAggregator:"집계 모델",combinationReferenceTemperature:"참조 온도",combinationAggregatorTemperature:"집계 온도",combinationMaxTokens:"최대 토큰",combinationNotSet:"설정 안 됨",combinationSaved:"모델 앙상블 저장됨",combinationLoadFailed:"모델 앙상블을 불러오지 못했습니다",combinationSaveFailed:"모델 앙상블을 저장하지 못했습니다",combinationPresetExists:"프리셋이 이미 존재합니다",combinationNameRequired:"모델 앙상블 이름을 입력하세요",combinationNameInvalid:"이름에는 문자, 숫자, 밑줄, 하이픈, 점만 사용할 수 있습니다",combinationReferenceRequired:"참조 모델을 하나 이상 추가하세요",combinationAggregatorRequired:"집계 모델을 선택하세요",auxiliaryTitle:"ë³´ì¡° 모델",auxiliarySubtitle:"압축, 비전, 승인, MCP, 백그라운드 유지 관리 같은 ë³´ì¡° 작업별 모델 재정의입니다.",auxiliaryRefresh:"새로고침",auxiliaryTask:"작업",auxiliaryTimeout:"시간 제한",auxiliaryDownloadTimeout:"다운로드 시간 제한",auxiliaryActions:"작업",auxiliaryDefault:"기본값",auxiliaryCustomEndpoint:"사용자 지정 엔드포인트",auxiliaryProviderAuto:"자동",auxiliaryProviderMain:"메인 모델",auxiliaryProviderPlaceholder:"auto, main 또는 provider key",auxiliaryDownloadShort:"다운로드",auxiliaryExtraBody:"Extra body JSON",auxiliaryClear:"초기화",auxiliarySaved:"ë³´ì¡° 모델을 저장했습니다",auxiliaryLoadFailed:"ë³´ì¡° 모델을 불러오지 못했습니다",auxiliarySaveFailed:"ë³´ì¡° 모델을 저장하지 못했습니다",auxiliaryInvalidExtraBody:"Extra body는 JSON 객체여야 합니다",auxiliaryTaskCompression:"압축",auxiliaryTaskVision:"비전",auxiliaryTaskWebExtract:"웹 추출",auxiliaryTaskSkillsHub:"스킬 허브",auxiliaryTaskApproval:"승인",auxiliaryTaskMcp:"MCP",auxiliaryTaskTitleGeneration:"제목 생성",auxiliaryTaskTriageSpecifier:"트리아지 지정",auxiliaryTaskKanbanDecomposer:"Kanban 분해",auxiliaryTaskProfileDescriber:"프로필 설명",auxiliaryTaskCurator:"큐레이터",auxiliaryTaskSessionSearch:"세션 검색",auxiliaryTaskFlushMemories:"메모리 쓰기",currentDefault:"현재 기본값",defaultShort:"기본값",setDefaultProvider:"기본 Provider로 설정",setDefault:"기본값으로 설정",builtIn:"내장",customType:"사용자 지정",provider:"공급자",contextLength:"컨텍스트 길이",contextLengthPlaceholder:"예: 256000 (선택사항)",apiMode:"API 모드",local:"로컬 ({host})",selectProviderRequired:"Provider를 선택해 주세요",baseUrlRequired:"Base URL을 입력해 주세요",apiKeyRequired:"API Key를 입력해 주세요",modelRequired:"기본 모델을 선택해 주세요",enterBaseUrl:"먼저 Base URL을 입력해 주세요",unexpectedFormat:"예상치 못한 응답 형식입니다",foundModels:"{count}개의 모델을 찾았습니다",fetchFailed:"모델을 가져오지 못했습니다",xaiWaiting:"열린 xAI 페이지에서 인증을 완료하세요. 승인되면 창이 자동으로 닫힙니다.",xaiOpenLink:"xAI 인증 페이지 열기",xaiLoginTitle:"xAI Grok OAuth 로그인",xaiExpired:"인증 링크가 만료되었습니다. 다시 시도하세요.",xaiCopyLink:"인증 링크 복사",xaiApproved:"로그인 성공!",anthropicLoginTitle:"Claude OAuth 로그인",anthropicWaiting:"Claude 인증 페이지에서 인증을 완료한 뒤 반환된 코드를 여기에 붙여넣으세요.",anthropicOpenLink:"Claude 인증 페이지 열기",anthropicCopyLink:"인증 링크 복사",anthropicCodePlaceholder:"인증 코드 붙여넣기...",anthropicSubmitCode:"코드 제출",anthropicApproved:"로그인 성공!",anthropicExpired:"인증이 만료되었습니다. 다시 시도하세요.",visibilitySelectOne:"최소 하ë
1‚˜ì˜ 표시 모델을 유지하세요",visibilitySaved:"표시 모델이 저장되었습니다",visibilitySaveFailed:"표시 모델 저장 실패",visibilityHint:"Web UI의 모델 선택기와 모델 페이지 표시에만 영향을 줍니다. Hermes CLI의 provider/model 설정은 변경되지 않으며 실제 호출은 원본 모델 ID를 사용합니다.",showAllModels:"모든 모델 표시",searchPlaceholder:"모델 검색...",noResults:"ê²°ê³¼ 없음",noModels:"모델 없음",removeCustomModel:"목록에 없는 이 모델 제거",refresh:"모델 목록 새로고침 (config.yaml 다시 불러오기)",more:"개 더",models:"모델 목록",manageVisibleModelsFor:"{name} 표시 모델 관리",manageVisibleModels:"표시 모델 관리",getApiKey:"API Key 가져오기",count:"개 모델",aliasUseOriginal:"원본 ID로 복원",aliasTitleFor:"{model}의 표시 이름",aliasTitle:"모델 표시 이름",aliasSaveFailed:"표시 이름 저장 실패",aliasPlaceholder:"비워두면 원본 모델 ID 사용",aliasManageFor:"{provider}의 표시 이름",aliasManage:"표시 이름",aliasHint:"Web UI 표시 이름만 변경합니다. Hermes에는 여전히 원본 모델 ID가 전달됩니다.",aliasEdit:"이름 변경",aliasCanonical:"원본 ID: {model}"},profiles:{title:"프로필",create:"프로필 생성",import:"가져오기",export:"내보내기",rename:"이름 변경",delete:"삭제",switchTo:"Hermes Profile 전환",switchConfirm:"`hermes profile use {name}`를 실행하고 Hermes CLI active profile을 변경합니다. 계속하시겠습니까?",switchSuccess:'Hermes active profile이 "{name}"(으)로 전환되었습니다',switchFailed:"Hermes Profile 전환 실패. 게이트웨이를 수동으로 재시작해야 할 수 있습니다.",createSuccess:'프로필 "{name}"이(가) 생성되었습니다',createFailed:"프로필 생성 실패",renameSuccess:"프로필 이름이 변경되었습니다",renameFailed:"프로필 이름 변경 실패",deleteConfirm:'프로필 "{name}"을(를) 삭제하시겠습니까?',deleteSuccess:"프로필이 삭제되었습니다",deleteFailed:"프로필 삭제 실패",exportSuccess:"프로필이 내보내기되었습니다",exportFailed:"프로필 내보내기 실패",importSuccess:"프로필이 가져오기되었습니다",importFailed:"프로필 가져오기 실패",importSelectFile:"아카이브 파일 선택",importInvalidFile:"유효한 아카이브 파일을 선택해 주세요 (.tar.gz, .tgz, .gz, .zip)",name:"프로필 이름",namePlaceholder:"영문, 숫자, 하이픈만 사용 가능",nameValidation:"프로필 이름에는 소문자, 숫자, 밑줄, 하이픈만 사용할 수 있습니다",newName:"새 이름",newNamePlaceholder:"새 이름을 입력하세요",cloneFromCurrent:"현재 프로필에서 복제",cloneCleanupNotice:"복제 시 독점형 플랫폼 자격 증명(Weixin / Telegram / Slack 등)은 자동으로 건너뛰어 원본 프로필과의 충돌을 방지합니다",cloneStrippedCredentials:"독점 자격 증명 {count}개 제거됨: {list}",cloneDisabledPlatforms:"플랫폼 {count}개 비활성화됨: {list}",cloneStrippedConfigCredentials:"config.yaml에서 임베디드 자격 증명 {count}개 제거됨: {list}",archivePath:"아카이브 경로",archivePathPlaceholder:"아카이브 파일의 서버 경로",importName:"프로필 이름 (선택)",importNamePlaceholder:"비워두면 아카이브 이름을 사용합니다",active:"활성",model:"모델",gateway:"게이트웨이",alias:"별칭",provider:"공급자",path:"경로",skills:"스킬",hasEnv:".env 있음",hasSoulMd:"soul.md 있음",noProfiles:"프로필이 없습니다. 새로 만들어 시작하세요.",avatar:{title:"사용자 지정 아바타",customize:"아바타",upload:"이미지 업로드",random:"무작위 생성",reset:"기본값 복원",hint:"PNG, JPEG, WebP 지원, 최대 1MB",invalidType:"PNG, JPEG 또는 WebP 이미지를 선택하세요",tooLarge:"아바타 이미지는 1MB를 초과할 수 없습니다",saveSuccess:"아바타가 저장되었습니다",saveFailed:"아바타 저장 실패",resetSuccess:"기본 아바타로 복원되었습니다",resetFailed:"기본 아바타 복원 실패"},runtime:{activeProfile:"현재: {name}",bridgeWorker:"Bridge 상태",gateway:"게이트웨이",active:"활ì„
1±",activeTag:"현재",idle:"대기 중",checking:"확인 중",running:"실행 중",stopped:"중지됨",restartGateway:"Gateway 재시작",restartProfile:"프로필 재시작",switchProfile:"프론트엔드 프로필 전환",gatewayRestarted:"Gateway가 재시작되었습니다: {name}",gatewayRestartFailed:"Gateway 재시작 실패",profileRestarted:"프로필이 재시작되었습니다: {name}",profileRestartFailed:"프로필 재시작 실패"}},logs:{title:"로그",all:"전체",searchPlaceholder:"검색...",refresh:"새로고침",noEntries:"로그 항목 없음"},settings:{title:"설정",saved:"저장됨",saveFailed:"저장 실패",tabs:{display:"표시",account:"현재 계정",users:"계정 관리",agent:"에이전트",proxy:"프록시",memory:"메모리",compression:"압축",session:"세션",privacy:"개인정보",apiServer:"API 서버",models:"모델",voice:"음성"},display:{streaming:"스트리밍 응답",streamingHint:"AI 응답을 실시간으로 표시",compact:"컴팩트 모드",compactHint:"메시지 간격 줄이기",showReasoning:"추론 과정 표시",showReasoningHint:"모델의 생각 과정 표시",showCost:"비용 표시",showCostHint:"응답에 토큰 사용량 표시",inlineDiffs:"인라인 변경사항",inlineDiffsHint:"코드 변경사항을 인라인으로 표시",bellOnComplete:"완료 알림음",bellOnCompleteHint:"AI 응답 완료 시 알림음 재생",notifyOnComplete:"완료 알림",notifyOnCompleteHint:"AI 응답 완료 시 시스템 알림 표시",notifyOnCompleteMacHint:"macOS 에서는 시스템 설정에서 브라우저 알림을 허용해야 합니다.",notifyOnCompleteDenied:"알림 권한이 거부되었습니다",notifyOnCompleteInsecure:"브라우저 알림은 HTTPS 또는 localhost 가 필요합니다",notifyOnCompleteUnsupported:"이 브라우저는 알림을 지원하지 않습니다",notifyOnCompleteTest:"알림이 활성화되었습니다.",notifyOnCompleteTestButton:"테스트",notifyOnCompleteTesting:"테스트 알림을 보내는 중...",notifyOnCompleteTestSent:"테스트 알림을 보냈습니다",notifyOnCompleteTestFailed:"테스트 알림 전송 실패",busyInputMode:"바쁨 입력 모드",busyInputModeHint:"AI 처리 중에도 입력 허용",theme:"테마",themeHint:"라이트, 다크 또는 시스템 설정 따르기",themeLight:"라이트",themeDark:"다크",themeSystem:"시스템",chatInputHeight:"채팅 입력 높이",chatInputHeightHint:"데스크톱 채팅 입력창 기본 높이(px). 모바일은 자동 높이를 유지합니다."},agent:{maxTurns:"최대 턴 수",maxTurnsHint:"대화당 최대 상호작용 라운드 수",gatewayTimeout:"게이트웨이 시간초과",gatewayTimeoutHint:"요청 시간초과 (초)",restartDrainTimeout:"재시작 드레인 시간초과",restartDrainTimeoutHint:"재시작 전 드레인 시간초과 (초)",toolEnforcement:"도구 실행 정책",toolEnforcementHint:"도구 í
1˜¸ì¶œ 실행 모드 제어",auto:"자동",always:"항상",never:"사용 안 함"},gatewayAutoStart:{title:"Gateway 자동 시작",description:"Web UI 시작 시 자동으로 실행할 로컬 Hermes profile gateway를 제어합니다. 이 값은 profile config.yaml이 아니라 Web UI 설정에 저장됩니다.",enabled:"Gateway 자동 시작",enabledHint:"끄면 시작 시 어떤 profile gateway도 자동으로 실행하지 않습니다.",management:"통합 gateway",managementHint:"Hermes Agent 0.17.0 이상이 필요합니다. 켜면 Web UI가 multiplex_profiles를 기록해 default gateway가 모든 profiles를 처리합니다. 다른 profile은 Feishu, Weixin, QQBot 같은 메시징 진입점을 별도로 설정할 수 없습니다. 끄면 해당 설정을 제거합니다.",managementAuto:"자동",managementPerProfile:"Profile별 gateway 하나",managementUnified:"통합 default gateway",mode:"Profile 정책",modeHint:"발견된 모든 profiles를 시작하거나 명시적으로 포함한 목록만 시작합니다.",modeAll:"발견된 모든 profiles",modeInclude:"포함된 profiles만",include:"포함할 profiles",includeHint:"쉼표로 구분한 profile 이름입니다. 포함 모드에서 빈 목록은 아무것도 시작하지 않습니다.",exclude:"제외할 profiles",excludeHint:"include/all 정책 적용 후 건너뛸 profile 이름을 쉼표로 구분해 입력합니다.",profileListPlaceholder:"default, reviewer"},proxy:{title:"Gateway 프록시",description:"선택한 profile gateway의 프록시 환경 변수를 설정합니다. 변경 사항을 저장하면 gateway가 재시작되어 메시징 플랫폼이 새 네트워크 설정을 사용합니다.",httpsProxy:"HTTPS_PROXY",httpsProxyHint:"HTTPS 요청용 프록시입니다. 보통 가장 먼저 설정하는 값입니다.",httpProxy:"HTTP_PROXY",httpProxyHint:"일반 HTTP 요청용 프록시입니다.",allProxy:"ALL_PROXY",allProxyHint:"프로토콜별 프록시가 없을 때 사용하는 대체 프록시입니다.",noProxy:"NO_PROXY",noProxyHint:"프록시를 우회할 호스트 또는 도메인을 쉼표로 구분합니다.",save:"프록시 설정 저장"},memory:{enabled:"메모리 활성화",enabledHint:"AI가 대화 컨텍스트를 기억하도록 허용",userProfile:"사용자 프로필",userProfileHint:"AI가 사용자 선호를 기억하도록 허용",charLimit:"메모리 문자 제한",charLimitHint:"MEMORY.md 최대 문자 수",userCharLimit:"사용자 프로필 문자 제한",userCharLimitHint:"USER.md 최대 문자 수"},compression:{enabled:"압축 활성화",enabledHint:"긴 채팅 기록이 모델 컨텍스트를 넘기 전에 자동 압축",threshold:"압축 임계값",thresholdHint:"추정 토큰이 이 컨텍스트 비율을 넘으면 압축 시작",targetRatio:"목표 비율",targetRatioHint:"압축 후 기록 크기를 컨텍스트 비율로 지정",protectLastN:"최근 메시지 보호",protectLastNHint:"이 수만큼 최신 메시지는 압축하지 않음",protectFirstN:"처음 메시지 보호",protectFirstNHint:"이 수만큼 처음 메시지는 압축하지 않음"},session:{mode:"초기화 모드",modeHint:"세션 초기화 트리거 ì¡°ê±´",modeBoth:"유휴 + 예약",modeIdle:"유휴만",modeDaily:"예약만",modeNone:"안함 (수동만)",idleMinutes:"유휴 시간초과",idleMinutesHint:"자동 초기화 대기 시간 (분)",atHour:"예약 초기화 시간",humanOnly:"사람 세션만 표시",humanOnlyHint:"하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다",liveMonitorHumanOnly:"라이브 모니터: 사람 세션만 표시",liveMonitorHumanOnlyHint:"라이브 모니터에서 하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다",atHourHint:"매일 지정한 시간에 세션 초기화",requireAuth:"세션 승인",requireAuthHint:"세션 작업에 승인을 요구합니다",memoryWriteApproval:"메모리 쓰기 검토",memoryWriteApprovalHint:"Hermes Agent의 메모리 쓰기를 저장하기 전에 승인 대기 상태로 둡니다.",skillsWriteApproval:"스킬 쓰기 검토",skillsWriteApprovalHint:"Hermes Agent의 스킬 변경을 저장하기 전에 승인 대기 상태로 둡니다.",writeApprovalTitle:"쓰기 승인 대기",writeApprovalDescription:"Hermes Agent가 보류한 메모리와 스킬 쓰기를 승인하거나 거부합니다.",writeApprovalRefresh:"새로고침",writeApprovalEmpty:"승인 대기 중인 쓰기가 없습니다.",writeApprovalMemory:"메모리",writeApprovalSkills:"스킬",writeApprovalViewDiff:"검토",writeApprovalHideDiff:"숨기기",writeApprovalNoDiff:"표시할 차이가 없습니다.",writeApprovalLoadFailed:"승인 대기 쓰기를 불러오지 못했습니다",writeApprovalDiffFailed:"쓰기 세부 정보를 불러오지 못했습니다",writeApprovalActionFailed:"승인 대기 쓰기를 처리하지 못했습니다",writeApprovalApproved:"쓰기가 승인되었습니다",writeApprovalRejected:"쓰기가 거부되었습니다",writeApprovalApprove:"승인",writeApprovalReject:"거부",writeApprovalPendingMemoryWrite:"승인 대기 메모리 쓰기",writeApprovalCurrentFile:"현재 {file}",writeApprovalProposedFile:"제안된 {file}",writeApprovalDiffSection:"차이",writeApprovalPatchOldStringMissing:"패치 old_string을 현재 {file}에서 찾지 못해 승인해도 파일은 변경되지 않습니다.",writeApprovalRequestedOldString:"요청된 old_string",writeApprovalCurrentReadFailed:"현재 {file}을 UTF-8 텍스트로 읽을 수 없습니다.",writeApprovalDeleteSkill:"이 승인은 스킬 {skill}을 삭제합니다.",writeApprovalRemoveFile:"이 승인은 스킬 {skill}에서 {file}을 제거합니다."},privacy:{redactPii:"개인정보 마스킹",redactPiiHint:"민감 정보 자동 감지 및 숨김 (비밀번호, 키 등)"}
1,apiServer:{enable:"활성화",enableHint:"API 서버 활성화",host:"호스트",hostHint:"수신 주소",port:"포트",portHint:"수신 포트",key:"키",keyHint:"API 접근 키",cors:"CORS 출처",corsHint:"허용된 교차 출처"},voice:{activeTtsApi:"활성 TTS API",activeSttApi:"활성 STT API",ttsProvidersTitle:"TTS 제공자",ttsProvidersDescription:"어시스턴트 응답 재생과 음성 미리듣기에 사용하는 텍스트 음성 변환 연동을 관리합니다.",sttProvidersTitle:"STT 제공자",sttProvidersDescription:"마이크와 음성 입력 흐름에서 사용하는 음성 텍스트 변환 연동을 관리합니다.",noneSelected:"선택 없음",keyStored:"저장됨",keyMissing:"없음",customApi:"API",localBuiltin:"로컬 내장",ttsCardHint:"음성 합성 제공자",sttCardHint:"음성 전사 제공자",setActive:"활성화",testAction:"테스트",connect:"연결",presetEdgeTtsLabel:"Edge TTS",presetEdgeTtsDescription:"Microsoft Edge의 무료 고품질 클라우드 음성입니다.",presetOpenaiTtsLabel:"OpenAI TTS",presetMimoTtsLabel:"MiMo TTS",presetDoubaoTtsLabel:"Volcengine Doubao TTS",presetCustomTtsLabel:"사용자 지정 TTS",presetBrowserSttLabel:"브라우저 STT",presetBrowserSttDescription:"브라우저 기본 음성 인식 API입니다.",presetOpenaiWhisperLabel:"OpenAI Whisper",presetGroqSttLabel:"Groq STT",presetDoubaoSttLabel:"Volcengine Doubao STT",presetCustomSttLabel:"사용자 지정 STT",apiCompatibility:"API 호환성",openaiCompatible:"OpenAI 호환",manualCustomEndpoint:"수동 사용자 지정 엔드포인트",connectionStep:"연결",discoveryManualHint:"수동 사용자 지정 엔드포인트가 선택되었습니다. 모델 검색을 사용할 수 없으므로 모델 이름을 직접 입력하세요.",discoveryCredentialHint:"Base URL과 API key를 입력한 뒤 연결하여 사용 가능한 모델을 가져오세요.",discoveryNoAutoProbeHint:"입력 중에는 요청을 보내지 않습니다. 자격 증명이 준비되면 Connect를 사용하세요.",apiKeyConnectPlaceholder:"연결할 API key를 붙여넣으세요. 저장된 key는 표시되지 않습니다",connectFetchModels:"연결 및 모델 가져오기",modelRecommendedSuffix:"추천",modelConnectManualHint:"연결하여 자동 입력하거나 직접 입력하세요.",modelRequiredConnectManual:"모델은 필수입니다. 연결하여 자동 입력하거나 직접 입력하세요.",apiKeyRequired:"API key는 필수입니다.",apiKeyRequiredForDiscovery:"모델을 가져오려면 API key가 필요합니다.",baseUrlRequired:"Base URL은 필수입니다.",baseUrlHttpsRequired:"http:// 또는 https:// 프로토콜을 사용하세요.",baseUrlInvalid:"https://를 포함한 올바른 Base URL을 입력하세요.",discoveryFailedManualFallback:"모델을 가져올 수 없습니다. 모델 이름은 직접 입력할 수 있습니다.",completeRequiredProviderFields:"저장하기 전에 필수 provider 필드를 완료하세요.",fetchingModels:"모델 가져오는 중...",recommendedModel:"추천: {model}.",useRecommendedModel:"이 모델 사용",modelsDiscovered:"{count}개 모델을 발견했습니다. 필드가 비어 있으면 추천 모델이 선택됩니다.",remove:"제거",testSuccess:"테스트 완료",testTextRequired:"테스트하기 전에 텍스트를 입력하세요.",keyMissingForTest:"이 제공자를 테스트하기 전에 API 키를 추가하세요.",testing:"테스트 중...",transcribing:"전사 중...",browserSttTestHint:"브라우저 STT는 채팅 마이크에서 테스트합니다.",sttEmptyAudio:"녹음된 오디오가 없습니다. 다시 시도하세요.",sttTestSuccess:"전사가 완료되었습니다",sttRecordingHint:"녹음 중... 전사하려면 중지를 클릭하세요.",keepStoredKeyPlaceholder:"저장된 키를 유지하려면 비워 두세요",apiKeyPlaceholder:"API 키 입력",lastTest:"마지막 테스트",notTested:"—",recording:"녹음 중",testFailedShort:"실패",testFailedSummary:"테스트에 실패했습니다. 제공자 설정을 확인하고 다시 시도하세요.",showDetail
1s:"세부 정보 표시",hideDetails:"세부 정보 숨기기",moreActions:"더보기",moreActionsFor:"{provider} 추가 작업",addTtsApi:"TTS API 추가",addSttApi:"STT API 추가",active:"활성",builtin:"내장",connected:"연결됨",disconnected:"연결 끊김",source:"소스",model:"모델",voice:"음성",doubaoVoiceHint:"Seed TTS 2.0 음색을 선택하면 리소스 필드가 자동으로 업데이트됩니다.",apiKey:"API 키",confirmDeleteSecret:"이 음성 API의 저장된 API 키를 삭제할까요?",ttsTitle:"텍스트 음성 변환",ttsSaved:"TTS 설정이 서버에 저장되었습니다",ttsSaveFailed:"TTS 설정 저장에 실패했습니다",ttsTestSaved:"미리듣기에 성공했습니다. TTS 설정이 서버에 저장되었습니다",ttsTestSaving:"미리듣기 전에 TTS 설정을 저장하는 중...",ttsMissingBaseUrl:"테스트 전에 Base URL이 필요합니다. 제공자 엔드포인트를 입력한 뒤 다시 테스트하세요.",ttsMissingApiKey:"테스트 전에 API 키가 필요합니다. 키를 붙여넣거나 먼저 서버 저장 키를 저장하세요.",ttsCleared:"저장된 TTS 키를 삭제했습니다",ttsClearFailed:"저장된 TTS 키 삭제에 실패했습니다",storedBaseUrlsTitle:"저장된 Base URLs",storedBaseUrlsHint:"저장된 음성 provider endpoint를 여기서 관리합니다. 위 입력란은 현재 값만 지우고, 저장된 URL 삭제는 여기서 합니다.",storedBaseUrlsEmpty:"서버에 저장된 사용자 지정 음성 Base URL이 없습니다.",storedBaseUrlDelete:"URL 삭제",storedApiKeysTitle:"저장된 API keys",storedApiKeysHint:"서버에 저장된 음성 API key 목록입니다. 용도와 출처만 표시하고 전체 key는 표시하지 않습니다.",storedApiKeysEmpty:"서버에 저장된 음성 API key가 없습니다.",storedKeyKindTts:"TTS",storedKeyKindStt:"STT",storedApiKeyMasked:"[stored]",storedApiKeyDelete:"key 삭제",baseUrlPresetClear:"URL 지우기",baseUrlPresetCleared:"현재 Base URL을 지웠습니다.",baseUrlPresetDelete:"URL 삭제",baseUrlPresetDeleted:"저장 목록에서 Base URL을 제거했습니다.",baseUrlPresetDeleteFailed:"저장된 Base URL 제거에 실패했습니다.",ttsPendingSecret:"새 키가 저장됩니다",ttsStoredSecret:"서버에 저장된 키가 있습니다: {value}",ttsClearKey:"저장된 키 삭제",sttTitle:"음성 텍스트 변환",sttProvider:"STT 제공자",sttProviderHint:"음성 입력을 전사하는 방식을 선택하세요",sttProviderBrowser:"브라우저",sttProviderOpenai:"OpenAI 호환",sttProviderCustom:"사용자 지정",sttBrowserHint:"사용 가능한 경우 브라우저 내장 음성 인식을 사용합니다.",sttApiKey:"API 키",sttApiKeyHint:"인증이 필요한 STT 제공자를 위해 서버 측에 저장됩니다.",sttStoredSecret:"저장된 서버 키: {value}",sttPendingSecret:"저장된 서버 키: 저장 시 업데이트됩니다",sttClearKey:"저장된 키 삭제",sttModel:"모델",sttModelHint:"사용할 음성 텍스트 변환 모델입니다.",sttLanguage:"언어",sttLanguageHint:"en 또는 zh 같은 선택적 언어 힌트입니다.",sttPrompt:"프롬프트",sttPromptHint:"선택적 전사 프롬프트입니다.",sttAudioTranscode:"오디오 트랜스코딩",sttAudioTranscodeNone:"원본 오디오 전송",sttAudioTranscodeFfmpeg:"ffmpeg로 WAV 변환",sttBaseUrl:"Base URL",sttBaseUrlHint:"OpenAI 호환 사용자 지정 음성 텍스트 변환 엔드포인트입니다.",sttSave:"STT 설정 저장",sttSaved:"STT 설정이 서버에 저장되었습니다.",sttSaveFailed:"STT 설정 저장에 실패했습니다.",sttCleared:"저장된 STT 비밀 값이 서버에서 삭제되었습니다.",sttClearFailed:"저장된 STT 비밀 값 삭제에 실패했습니다.",sttActiveSaved:"활성 STT 제공자가 서버에 저장되었습니다.",sttSaveActive:"활성 STT 제공자 저장",sttEndpointHint:"최종 전사 엔드포인트: {endpoint}",sttTestTitle:"음성 텍스트 변환 테스트",sttTestButton:"STT API 테스트",sttTestStopButton:"중지하고 전사",sttTestBackendOnly:"STT API 테스트는 OpenAI 호환 및 사용자 지정 제공자에서 사용할 수 있습니다.",sttTestRecording:"테스트 샘플 녹음 중... 완료되면 중지하고 전사를 클릭하세요.",sttTestTranscribing:"테스트 샘플 전사 중...",sttTestEmpty:"STT 테스트용 오디오가 녹음되지 않았습니다.",sttTestSucceeded:"STT 테스트가 성공했습니다.",sttTestFailed:"STT 테스트 실패: {error} — {hint}
1",sttFailureHintMissingConfig:"테스트 전에 제공자가 Base URL/모델 및 API 키와 함께 저장되었는지 확인하세요.",sttFailureHintAuth:"API 키를 확인하세요. 키가 이미 저장되어 있었다면 현재 키를 다시 붙여넣고 저장한 뒤 테스트하세요.",sttFailureHintForbidden:"키가 제공자에 도달했지만 이 STT 모델 또는 계정에 대한 권한이 없습니다. 제공자 접근 권한/결제를 확인하세요.",sttFailureHintEndpointModel:"Base URLê³¼ 모델을 확인하세요. Groq의 경우 {endpoint}에 whisper-large-v3-turbo 또는 다른 Groq STT 모델을 사용하세요.",sttFailureHintModel:"선택한 STT 모델이 존재하며 이 계정에서 활성화되어 있는지 확인하세요.",sttFailureHintQuota:"제공자가 할당량, 결제 또는 속도 제한 문제를 보고했습니다. 계정 할당량/결제를 확인하거나 나중에 다시 시도하세요.",sttFailureHintNetworkCustom:"서버가 사용자 지정 STT 엔드포인트에 연결할 수 없습니다. {endpoint}가 Web UI 서버에서 접근 가능하고 OpenAI 호환인지 확인하세요.",sttFailureHintNetwork:"Web UI 서버가 STT 제공자에 연결할 수 없습니다. 네트워크/프록시/방화벽을 확인하고 다시 시도하세요.",sttFailureHintAudio:"녹음된 오디오가 비어 있거나 거부되었습니다. ì§§ê³  명확한 샘플을 시도하고, 마이크 접근을 허용하거나 Chrome에서 다시 시도하세요.",sttFailureHintGenericCustom:"API 키, Base URL, 모델, 최종 엔드포인트 {endpoint}를 확인하세요.",sttFailureHintGeneric:"API 키, 모델, 제공자 계정 접근 권한을 확인한 뒤 다시 시도하세요.",sttTestRecordFailed:"마이크 녹음을 시작할 수 없습니다: {error}",sttTestTranscript:"전사 ê²°ê³¼: {text}",ttsProvider:"TTS 제공자",ttsProviderHint:"메시지 재생에 사용할 텍스트 음성 변환 엔진 선택",providerWebSpeech:"WebSpeech API (브라우저)",providerOpenai:"OpenAI TTS",providerCustom:"사용자 정의 엔드포인트 (OpenAI 호환)",providerEdge:"Edge TTS (무료, API Key 불필요)",webspeechVoice:"음성",webspeechVoiceHint:"브라우저 또는 OS에서 음성 선택",webspeechVoicePlaceholder:"자동 (기본 음성)",openaiKey:"API 키",openaiKeyHint:"TTS 접근 권한이 있는 OpenAI API 키",openaiUrl:"API 기본 URL",openaiUrlHint:"예: https://api.openai.com/v1/audio/speech",openaiModel:"모델",openaiModelHint:"tts-1 (빠름) / tts-1-hd (고음질)",openaiVoice:"음색",openaiVoiceHint:"합성에 사용할 음색",customHint:"모든 OpenAI 호환 TTS API 사용 가능 — GPT-SoVITS, CosyVoice 등 지원",customUrl:"API URL",customUrlHint:"TTS 서비스의 기본 URL",customUrlPlaceholder:"로컬 어댑터에 설정된 주소 (예: http://127.0.0.1:9880)",customApiKey:"API 키 (선택사항)",customApiKeyHint:"일부 사용자 정의 엔드포인트는 인증 필요",customApiKeyPlaceholder:"필요하지 않으면 비워둠",edgeHint:"Microsoft Edge TTS 기반 (node-edge-tts).",edgeUrl:"어댑터 URL",edgeUrlHint:"Edge TTS 어댑터 주소 (예: http://127.0.0.1:9882)",edgeUrlPlaceholder:"http://127.0.0.1:9882",edgeVoice:"음색",edgeVoiceHint:"음성 합성에 사용할 음색 선택",edgeRate:"속도",edgeRateHint:"음성 속도 조절 (0.5~2.0ë°°)",edgePitch:"음높이",edgePitchHint:"음성 음높이 조절 (-20~+20 Hz)",testTitle:"음성 테스트",testText:"테스트 텍스트",testTextPlaceholder:"테스트할 텍스트 입력...",testTextDefault:"안녕하세요, 음성 테스트입니다.",testButton:"테스트",testButtonPlaying:"재생 중...",testFailed:"테스트 실패: {error}",providerMimo:"MiMo TTS",mimoHint:"샤오미 MiMo TTS — 프리셋 음성, 음성 디자인, 음성 클론 세 가지 모드 지원",mimoApiKey:"API Key",mimoApiKeyHint:"platform.xiaomimimo.com에서 발급",mimoApiKeyPlaceholder:"MiMo API Key",mimoAuthMode:"인증 모드",mimoAuthModeHint:"선택한 MiMo 엔드포인트가 요구하는 헤더 형식",mimoAuthModeBearer:"Bearer 토큰 (Authorization)",mimoAuthModeApiKey:"API key 헤더 (api-key)",mimoAuthModeBoth:"두 헤더 모두",mimoBaseUrl:"Base URL",mimoBaseUrlHint:"MiMo API 엔드포인트 URL",mimoModel:"모델",mimoModelHint:"음성 합ì
1„± 모델 선택",mimoModelPreset:"프리셋 음성",mimoModelVoiceDesign:"음성 디자인",mimoModelVoiceClone:"음성 클론",mimoVoice:"음성",mimoVoiceHint:"프리셋 음성 선택",mimoVoiceDesignPrompt:"음성 설명",mimoVoiceDesignPromptHint:"원하는 음성 특징을 설명하세요",mimoVoiceDesignPromptPlaceholder:"예: 따뜻한 젊은 여성 목소리, 약간 느린 속도, 마그네틱한 톤",mimoCloneAudio:"오디오 업로드",mimoCloneAudioHint:"음성 클론용 오디오 샘플 업로드 (mp3/wav, 최대 10MB)",mimoCloneAudioUpload:"파일 선택",mimoCloneAudioClear:"지우기",mimoStylePrompt:"스타일 프롬프트",mimoStylePromptHint:"선택사항 — 자연어로 말하기 스타일 설명",mimoStylePromptPlaceholder:"예: 밝고 경쾌한 톤, 빠른 속도"},lockedIps:{title:"잠긴 IP 관리",count:"{count}개 잠김",empty:"잠긴 IP 없음",unlock:"잠금 해제",unlockAll:"전체 해제",unlockAllConfirm:"모든 잠긴 IP를 해제하시겠습니까?",unlocked:"IP 잠금 해제됨",allUnlocked:"{count}개 IP 잠금 해제됨",type:{password:"Password",token:"API token",pairing:"Device pairing"}},userAvatar:{title:"사용자 아바타",upload:"이미지 업로드",random:"무작위 생성",reset:"기본값으로 재설정",hint:"PNG, JPEG, WebP를 최대 1MB까지 지원하며 500KB 미만으로 자동 압축됩니다.",invalidType:"PNG, JPEG 또는 WebP 이미지를 선택하세요",tooLarge:"아바타 이미지는 1MB 이하여야 합니다",saveSuccess:"아바타 저장됨",saveFailed:"아바타 저장 실패",resetSuccess:"아바타 재설정됨",resetFailed:"아바타 재설정 실패"},models:{apiKey:"API Key",apiKeyPlaceholder:"API Key 입력",noProviders:"구성된 공급자가 없습니다",save:"저장",saveFailed:"저장 실패",saved:"저장됨"}},githubPreview:{title:"버전 미리보기",description:"선택한 GitHub tag 를 Web UI 미리보기 작업 디렉터리에 클론하고, 의존성을 설치한 뒤 개발 포트로 실행합니다.",refresh:"새로고침",selectTag:"tag 선택",prepare:"코드 준비",install:"의존성 설치",start:"미리보기 시작",stop:"중지",note:"미리보기 코드는 Web UI 데이터 홈 아래에 저장됩니다. 프로덕션은 8648을 유지하고, 미리보기 개발 환경은 프론트엔드 8651, 백엔드 8650에서 실행됩니다.",path:"미리보기 경로",webuiHome:"미리보기 데이터 홈",currentTag:"현재 Tag",repoReady:"저장소 준비됨",dependencies:"의존성 설치됨",running:"실행 상태",notRunning:"실행 중 아님",open:"미리보기 열기",log:"작업 로그 경로",logOutput:"로그 출력",actionLog:"작업 로그",devLog:"개발 서버 로그",yes:"예",no:"아니요",actionFailed:"작업 실패",nodeEnvironmentMissing:"Node/npm 환경을 찾을 수 없습니다. Node.js를 설치한 뒤 다시 시도하세요.",prepareSuccess:"미리보기 코드가 준비되었습니다",installSuccess:"의존성이 설치되었습니다",startSuccess:"미리보기가 완료되었습니다",stopSuccess:"미리보기가 중지되었습니다"},codingAgents:{title:"코딩 에이전트",notice:"모든 제공업체와 모델이 호환되는 것은 아닙니다.",claudeDescription:"print mode 단발 작업과 대화형 코딩 세션을 위한 Anthropic CLI입니다.",codexDescription:"저장소 작업을 위한 OpenAI CLI 및 Hermes openai-codex 제공업체 흐름입니다.",copyCommand:"복사",commandCopied:"명령이 복사되었습니다",commandCopyFailed:"복사 실패",refresh:"새로고침",checking:"확인 중",installStatus:"설치 상태",installed:"설치됨",notInstalled:"설치되지 않음",installRequired:"{agent}이(가) 설치되어 있지 않습니다. 세션을 만들기 전에 설치하세요.",installNow:"설치",installing:"설치 중",installSuccess:"설치됨",installFailed:"설치 실패",installFailedHermesHint:"설치에 실패했습니다. Hermes에게 설치를 요청하세요.",installFailureReason:"오류 원인",nodeEnvironmentMissing:"Node/npm 환경을 찾을 수 없습니다. Node.js를 설치한 뒤 다시 시도하세요.",deleteNow:"삭제",deleting:"삭제 ì
1¤‘",deleteSuccess:"삭제됨",deleteFailed:"삭제 실패",configFiles:"설정 파일",profileScope:"프로필",providerScope:"제공업체",providerPlaceholder:"예: custom:glm",modelScope:"모델",modelPlaceholder:"모델 선택",launchModeScope:"시작 모드",launchModeGlobal:"전역 설정",launchModeScoped:"제공업체와 모델",protocolScope:"프로토콜",protocolOpenAiChat:"OpenAI Chat Completions (/v1/chat/completions)",protocolOpenAiResponses:"OpenAI Responses (/v1/responses)",protocolAnthropicMessages:"Anthropic Messages (/v1/messages)",reloadConfig:"설정 다시 읽기",configFileNotCreated:"생성되지 않음",configLoadFailed:"설정 파일을 읽지 못했습니다",loadFailed:"코딩 에이전트를 확인하지 못했습니다",launch:"시작",launchTitle:"코딩 에이전트 시작",nativeTerminal:"네이티브 터미널",builtInTerminal:"내장 터미널",launchPrepared:"시작 설정이 준비되었습니다",launchPrepareFailed:"시작 설정 준비 실패",nativeLaunchStarted:"네이티브 터미널을 열었습니다",nativeLaunchFailed:"네이티브 터미널을 열지 못했습니다",terminalTitle:"코딩 에이전트 터미널",loadProvidersFailed:"현재 프로필의 제공업체를 불러오지 못했습니다",selectProviderModel:"제공업체와 모델을 선택하세요",launchConfigDir:"시작 설정 디렉터리",launchCommand:"시작 명령",table:{tool:"도구",kind:"단계",command:"명령",note:"설명",action:"작업"},kinds:{install:"설치",auth:"인증",health:"상태",run:"실행"},notes:{claudeInstall:"Claude Code CLI를 전역으로 설치합니다.",codexInstall:"Codex CLI를 전역으로 설치합니다.",claudeAuth:"Claude Code 로그인 상태를 확인합니다. 로그인이 없으면 claude를 한 번 실행하세요.",codexAuth:"Hermes가 관리하는 OpenAI Codex OAuth 자격 증명을 추가합니다.",claudeHealth:"업데이터와 로컬 CLI 상태를 확인합니다.",codexHealth:"Codex CLI가 PATH에서 사용 가능한지 확인합니다.",claudeRun:"API 기반 단발 작업에는 print mode가 가장 깔끔한 경로입니다.",codexRun:"Codex 단발 작업은 git 저장소 안에서 실행해야 합니다."}},platform:{requireMention:"{'@'}멘션 필요",requireMentionGroup:"그룹에서 {'@'}멘션 시에만 응답",requireMentionChannel:"채널에서 {'@'}멘션 시에만 응답",requireMentionRoom:"방에서 {'@'}멘션 시에만 응답",reactions:"반응",reactionsHint:"메시지에 이모지 반응",freeResponseChats:"자유 응답 채팅",freeResponseChatsHint:"{'@'}멘션 없이 응답할 채팅 ID (쉼표로 구분)",freeResponseChannels:"자유 응답 채널",freeResponseChannelsHint:"{'@'}멘션 없이 응답할 채널 ID (쉼표로 구분)",freeResponseRooms:"자유 응답 ë°©",freeResponseRoomsHint:"{'@'}멘션 없이 응답할 ë°© ID (쉼표로 구분)",mentionPatterns:"사용자 지정 멘션 패턴",mentionPatternsHint:"추가 트리거 패턴",autoThread:"자동 스레드",autoThreadHint:"{'@'}멘션 후 자동으로 스레드 생성",autoThreadHintRoom:"방에서 자동으로 스레드 생성",dmMentionThreads:"DM 멘션 스레드",dmMentionThreadsHint:"DM에서 멘션 시 스레드로 응답",allowBots:"봇 메시지 허용",allowBotsHint:"다른 봇의 메시지에 응답",allowedChannels:"허용된 채널",allowedChannelsHint:"채널 ID 허용 목록 (쉼표로 구분)",ignoredChannels:"무시할 채널",ignoredChannelsHint:"봇이 응답하지 않는 채널 ID (쉼표로 구분)",noThreadChannels:"스레드 없는 채널",noThreadChannelsHint:"스레드 없이 응답할 채널 ID (쉼표로 구분)",exclusiveTokenWarning:"이 플랫폼은 독점 토큰 잠금을 사용합니다. 각 프로필은 다른 프로필과 충돌하지 않도록 서로 다른 ID 토큰을 사용해야 합니다.",clearCredentials:"자격 증명 삭제",clearCredentialsConfirm:"“{name}”에 저장된 자격 증명을 삭제할까요? 채널 동작과 접근 제어는 유지됩니다.",credentialsCleared:"채널 자격 증명을 삭제했습니다",clearCredentialsFailed:"채널 자격 증명을 삭제하지 못했습니다",clearCredentialsUnsaved:"자격 증명을 삭제하기 전에 저장하지 않은 채널 변경 사항을 저장하거나 취소하세요.",clearCredentialsGatewayRestartFailed:"자격 증명을 삭제했지만 게이트웨이를 자동으로 다시 시작하지 못했습니다.",clearCredentialsGatewayRestartDisabled:"자격 증명을 삭제했지만 게이트웨이 자동 재시작이 비활성화되어 있습니다. 변경 사항을 적용하려면 수동으로 다시 시작하세요.",botToken:"봇 토큰",botTokenHint:"개발자 포털에서 발급받은 봇 토큰",proxyUrl:"프록시 URL",proxyUrlHint:"선택 사항인 플랫폼 전용 프록시입니다. http://, https://, socks5:// 지원",accessToken:"액세스 토큰",accessTokenHint:"Matrix 액세스 토큰",homeserver:"홈서버 URL",homeserverHint:"Matrix 홈서버 URL",matrixUserId:"Matrix 사용자 ID",matrixUserIdHint:"비밀번호 로그인에는 필수, 액세스 토큰에는 선택 사항",matrixPassword:"Matrix 비밀번호",matrixPasswordHint:"액세스 토큰 대신 사용할 로그인 비밀번호",appId:"App ID",appIdHint:"Feishu의 App ID",appSecret:"App Secret",appSecretHint:"Feishu의 App Secret",encryptKe
1y:"암호화 키",encryptKeyHint:"Feishu 암호화 키",verificationToken:"검증 토큰",verificationTokenHint:"Feishu 검증 토큰",clientId:"Client ID",clientIdHint:"DingTalk의 Client ID",clientSecret:"Client Secret",clientSecretHint:"DingTalk의 Client Secret",cardTemplateId:"AI 카드 템플릿 ID",cardTemplateIdHint:"DingTalk AI 카드 템플릿 ID; 비워 두면 AI 카드를 사용하지 않음",botId:"Bot ID",botIdHint:"WeCom 봇 ID",wecomSecretHint:"WeCom 봇 Secret",waEnabled:"WhatsApp 활성화",waEnabledHint:"QR 코드 페어링으로 WhatsApp 활성화",weixinToken:"Weixin 토큰",weixinTokenHint:"weixin CLI QR 로그인에서 가져오기 (hermes weixin)",accountId:"계정 ID",accountIdHint:"Weixin 계정 ID",qrLogin:"QR 로그인",qrRelogin:"다시 로그인",qrFetching:"QR 코드를 가져오는 중...",qrScanHint:"WeChat으로 QR 코드를 스캔하여 로그인",qrScanedHint:"스캔됨, 휴대폰에서 확인해 주세요...",qqSandboxHint:"샌드박스 환경 활성화(테스트용)",qqSandbox:"샌드박스 모드",qqQrScanHint:"QQ로 위 QR 코드를 스캔하거나 휴대폰에서 링크를 열어 바인딩을 완료하세요",qqMarkdownHint:"Markdown 형식 메시지 활성화(일부 클라이언트는 지원하지 않을 수 있음)",qqMarkdown:"Markdown 지원",qqAppSecretHint:"QQ Open Platform Bot의 App Secret",qqAppSecret:"App Secret",qqAppIdHint:"QQ Open Platform Bot의 App ID",qqAppId:"App ID",allowedUsersHint:"사용자 ID 또는 OpenID 허용 목록, 쉼표로 구분",allowedUsers:"허용 사용자",allowAllUsersHint:"모든 사용자의 메시지를 허용합니다. 끄면 허용 목록을 사용합니다",allowAllUsers:"모든 사용자 허용"},language:{label:"언어",zh:"中文",en:"English",ko:"한국어"},terminal:{sessions:"세션",newTab:"새 터미널",closeSession:"이 세션을 닫으시겠습니까?",sessionExited:"종료됨",processExited:"프로세스가 종료되었습니다 (코드 {code})",noSessions:"터미널 세션이 없습니다",connectionFailed:"터미널에 연결하지 못했습니다",connectionError:"연결 오류",connectionClosed:"연결이 닫혔습니다"},usage:{title:"사용량 통계",refresh:"새로고침",totalTokens:"총 토큰 수",inputTokens:"입력",outputTokens:"출력",totalSessions:"총 세션 수",avgPerDay:"일평균 ~{n}",estimatedCost:"예상 비용",cacheHitRate:"캐시 적중률",modelBreakdown:"모델별 분포",agentBreakdown:"Agent별 분포",agents:{hermes:"Hermes Agent",claudeCode:"Claude Code",codex:"Codex",ekkoAgent:"Ekko Agent",unknown:"알 수 없음"},dailyTrend:"일별 사용량",date:"날짜",tokens:"토큰",cache:"캐시",cacheRead:"캐시 읽기",cacheWrite:"캐시 쓰기",sessions:"세션",cost:"비용",noData:"사용량 데이터 없음"},skillsUsage:{title:"스킬 사용량",subtitle:"Hermes 세션의 스킬 로드와 편집을 추적합니다",refresh:"새로고침",periodSelector:"스킬 사용량 기간",periodLabel:"{days}일",summary:"요약",totalActions:"작업 수",loads:"로드",edits:"편집",distinctSkills:"스킬 수",topSkills:"상위",dailyTrend:"일별",periodSummary:"최근 {days}일",skill:"스킬",share:"비중",lastUsed:"마지막",noData:"스킬 사용량 데이터가 없습니다",loadFailed:"스킬 사용량을 불러오지 못했습니다",otherSkills:"기타"},workflow:{actions:{importWorkflow:"Workflow 가져오기",exportWorkflow:"Workflow 내보내기",imported:"Workflow를 가져왔습니다",exported:"Workflow를 내보냈습니다",importFailed:"Workflow 가져오기에 실패했습니다",exportFailed:"Workflow 내보내기에 실패했습니다"},stats:{nodes:"노드",edges:"연결"},evidence:{ariaLabel:"Workflow 실행 세부 정보",title:"실행 세부 정보",count:"{count}개",intro:"이번 실행의 경로 결정, 반복 횟수, 예외 노드를 표시합니다.",empty:"실행 세부 정보 없음",loadFailed:"저장된 실행 세부 정보를 불러오지 못했습니다",summaryTitle:"실행 ê²°ê³¼",blockedAt:"{gate}에서 차단됨",actualPath:"실제 경로",noActualPath:"선택된 경로 없음",pathChecks:"경로 판단",selectedPaths:"사용된 경로",otherPaths:"기타 판단 및 이벤트",selectedCount:"{count}개 사용",otherCount:"{count}개 미사용",eventCount:"이벤트 {count}개",showOtherPaths:"기타 세부 정보 보기 ({count})",hideOtherPaths:"기타 세부 정보 숨기기",condition:"ì¡°ê±´",conditionMatched:"일치",conditionNotMatched:"불일치",sourceOutcome:"노드 ê²°ê³¼",sourceReturned:"정상 응답",sourceFailed:"실행 실패",sourceSkippedStatus:"실행 안 됨",checkedData:"검사한 데이터",entireReplyText:"전체 응답 텍스트",errorText:"오류 텍스트",jsonFieldValue:"JSON 필드 하ë
1‚˜ì˜ 값",advancedPathValue:"고급 경로 값",comparison:"비교 방법",textToFind:"찾을 텍스트",expectedFieldValue:"예상 필드 값",parsedBusinessDecision:"파싱한 비즈니스 ê²°ë¡ ",failedGateLabel:"실패 단계(failed_gate 필드 값)",failedGateValue:"실패 단계(failed_gate 필드 값): {gate}",resizeConclusion:"드래그하여 실행 ê²°ë¡  높이 조정",decisions:{blocked:"차단됨",released:"게시됨",verified:"검증됨",skipped:"조치 불필요"},node:"예외 노드",edge:"경로",loop:"루프",unknownNode:"알 수 없는 노드",pathTitle:"{source} → {target}",loopPass:"루프 {count}회차",exceptionalNode:"이 노드는 정상적으로 완료되지 않았습니다.",loopPassNamed:"{node} · {count}회차",technical:"기술 정보",recordId:"기록 ID",sequence:"순서",rawStatus:"원시 상태",rawRoute:"경로",rawReason:"사유",iterationPath:"반복 경로",expectedValue:"필요한 ê²°ê³¼",actualValue:"상위 단계 실제 ê²°ê³¼",judgmentDetails:"연결 판단",connectionResult:"이번 사용 ê²°ê³¼",appliesWhen:"사용 ì¡°ê±´",explanation:"이유",technicalStatus:{pathUsed:"이번 실행에서 이 연결을 사용했습니다",pathNotUsed:"이번 실행에서 이 연결을 사용하지 않았습니다"},technicalRoute:{success:"상위 노드가 정상 반환한 경우에만",failure:"상위 노드 실행이 실패한 경우에만",always:"상위 노드의 성공 또는 실패와 관계없이"},technicalReason:{conditionNotMatched:"상위 응답이 이 연결에 설정된 조건을 충족하지 않았습니다."},statuses:{taken:"사용됨",notTaken:"사용 안 됨",evaluationFailed:"판단 실패",timedOut:"시간 초과",blocked:"차단됨"},routes:{success:"성공 후 계속",failure:"실패 후 계속",always:"결과와 관계없이 계속"},reasons:{evaluationFailed:"경로 판단 실패",conditionNotMatched:"조건이 일치하지 않음",iterationLimitReached:"최대 반복 횟수 도달",routeNotMatched:"경로가 일치하지 않음",pathSelected:"이 경로가 선택되었습니다.",sourceSkipped:"상위 노드가 실행되지 않아 이번 실행에서 이 경로를 사용하지 않았습니다.",failureRouteAfterSuccess:"상위 노드는 정상 응답했습니다. 이 경로는 노드 실행 실패 시에만 사용됩니다.",successRouteAfterFailure:"상위 노드 실행이 실패했습니다. 이 경로는 정상 응답 시에만 사용됩니다.",businessBlocked:"“{source}” 단계가 워크플로를 중단했습니다({decision}): {reason}. 따라서 “{target}” 단계는 실행되지 않았습니다.",businessBlockedWithCondition:"“{source}” 단계가 워크플로를 중단했습니다({decision}): {reason}. 계속하려면 “{expected}”이(가) 필요했지만 상위 결과는 “{actual}”이었으므로 “{target}” 단계는 실행되지 않았습니다.",conditionMismatchDetail:"계속하려면 “{expected}”이(가) 필요했지만 상위 결과는 “{actual}”이었으므로 “{target}” 단계는 실행되지 않았습니다."},loopOutcomes:{continued:"ì¡°ê±´ 일치; 다음 회차로 계속",iterationLimitReached:"최대 횟수에서 중지",conditionNotMatched:"ì¡°ê±´ 불일치로 종료",finished:"루프 종료"}},edgeEditor:{title:"연결 편집",guideIntro:"먼저 상위 노드에 필요한 실행 결과를 선택합니다. 그런 다음 응답을 검사하지 않거나, 전체 텍스트를 문자 그대로 검사하거나, 파싱된 JSON 필드 하나의 값을 비교합니다.",connectionSummary:"{source} → {target}",selfLoopDescription:"“{node}” 노드가 자신을 다시 실행합니다.",continueAfter:"상위 ê²°ê³¼",optionalCheck:"선택적 내용 검사",runTarget:"다음",runTargetAction:"“{target}” 실행",noContentCheck:"응답 검사 안 함",sourceResultStep:"1. 상위 노드 ê²°ê³¼",replyDataStep:"2. 검사할 응답 데이터",nextStep:"3. 다음",replyDataQuestion:"응답의 어떤 데이터를 검사할까요?",requiredSourceResult:"상위 노드에 필요한 ê²°ê³¼",loopSummary:"“{target}”로 돌아감",loopScope:"루프 노드: {nodes}",historyLabel:"기록 라벨(선택)",advancedSettings:"고급 설정",historyNode:"기록에 표시할 노드",historyNodePlaceholder:"노드 이름 선택",continueWhen:"계속할 때",compareUsing:"비교 방법",expectedType:"기대값 유형",expectedValue:"기대값",routeChoices:{success:"상위 노드가 정상 응답",failure:"상위 노드 실행 실패",always:"어느 결과든"},operatorChoices:{equals:"같음",not_equals:"같지 않음",contains:"포함",not_contains:"포함하지 않음",exists:"존재함",not_exists:"존재하지 않음",greater_than:"보다 큼",greater_than_or_equal:"크거나 같음",less_than:"보다 작음",less_than_or_equal:"작거나 같음",in:"목록에 있음",not_in:"목록에 없음"},loopMissingForwardPath:"이 반환 연결에는 반복할 정방향 경로가 없습니다.",loopNotNatural:"이 루프에는 다른 진입 경로가 있어 예측 가능하게 반복할 수 없습니다.",loopDuplicateScope:"두 반환 연결이 같은 루프 노드를 정의합니다.",loopPartialOverlap:"루프는 분리되거나 완전히 중첩될 수 있지만 부분적으로 겹칠 수 없습니다.",loopDuplicateHistoryLabel:"각 루프 기록 라벨은 고유해야 합니다.",route:"경로",routes:{success:"성공 시만 (success)",failure:"실패 시만 (failure)",always:"항상 (always)"},routeHelp:"먼저 원본 노드 결과를 확인하며, 조건이 있으면 조건도 일치해야 합니다.",routeExample:"예: 정상 흐름은 success, 오류 처리는 failure, 정리는 always.",conditionPath:"이 연결에서 무엇을 확인할까요?",conditionPathPlaceholder:"고급 경로(예: output)",conditionPathOptions:{routeOnly:"응답 검사 안 함",outputRecommended:"전체 성공 응답 텍스트 (output, 권장)",output:"전체 성공 응답 텍스트 (output)",outputJson:"JSON 필드 하ë
1‚˜ì˜ 값 (outputJson.*)",errorRecommended:"전체 실패 오류 텍스트 (error, 권장)",error:"전체 실패 오류 텍스트 (error)",custom:"고급 데이터 경로"},structuredOutputPathPlaceholder:"JSON 필드 경로(예: outputJson.route_token)",structuredOutputHelp:"전체 JSON 응답 또는 fenced json 블록이 정확히 하나일 때만 파싱합니다. JSON이 없거나 잘못되었거나 여러 블록이면 outputJson을 사용할 수 없어 조건이 일치하지 않습니다.",conditionPathHelp:{success:"success에는 output을 권장합니다. 응답 내용을 검사하지 않으려면 “경로만”을 선택하세요.",failure:"failure에는 error를 권장합니다. 오류 문구를 검사하지 않으려면 “경로만”을 선택하세요.",always:"성공 응답은 output, 실패 오류는 error를 사용합니다. “경로만”은 내용을 검사하지 않습니다."},operator:"연산자",operators:{equals:"같음 (equals)",not_equals:"같지 않음 (not_equals)",contains:"포함 (contains)",not_contains:"포함하지 않음 (not_contains)",exists:"존재 (exists)",not_exists:"존재하지 않음 (not_exists)",greater_than:"초과 (greater_than)",greater_than_or_equal:"이상 (greater_than_or_equal)",less_than:"미만 (less_than)",less_than_or_equal:"이하 (less_than_or_equal)",in:"목록에 포함 (in)",not_in:"목록에 없음 (not_in)"},operatorHelp:{equals:"값과 형식이 정확히 같아야 합니다.",not_equals:"값 또는 형식이 다르면 일치합니다.",contains:"텍스트에 텍스트가 있거나 배열에 항목이 있으면 일치합니다.",not_contains:"텍스트나 배열에 항목이 없으면 일치합니다.",exists:"경로가 존재하면 일치하며 값은 필요 없습니다.",not_exists:"경로가 없으면 일치하며 값은 필요 없습니다.",greater_than:"양쪽 모두 JSON 숫자이며 실제 값이 더 커야 합니다.",greater_than_or_equal:"양쪽 모두 JSON 숫자이며 실제 값이 크거나 같아야 합니다.",less_than:"양쪽 모두 JSON 숫자이며 실제 값이 더 작아야 합니다.",less_than_or_equal:"양쪽 모두 JSON 숫자이며 실제 값이 작거나 같아야 합니다.",in:"값은 실제 값을 포함하는 JSON 배열이어야 합니다.",not_in:"값은 실제 값을 포함하지 않는 JSON 배열이어야 합니다."},value:"값",invalidConditionValue:"ì¡°ê±´ 값은 유효한 JSON이어야 합니다",conditionValuePlaceholder:'JSON: "텍스트", 42, true, ["a"]',valueType:"값 형식",valueTypes:{string:"문자열",number:"숫자",boolean:"불리언",null:"Null",array:"배열",object:"객체"},valueTypeHelp:"값을 해석하고 검증할 형식을 선택합니다. 저장된 JSON 값에서 자동 추론되며 형식 자체는 별도로 저장되지 않습니다.",conditionValuePlaceholders:{string:"텍스트, 예: APPROVED",number:"숫자, 예: 42",boolean:"true 또는 false",null:"null",array:'JSON 배열, 예: ["a", 2]',object:`JSON 객체, 예: {'{'}"status":"ready"{'}'}`},invalidValueTypes:{string:"값은 문자열이어야 합니다.",number:"값은 유효한 숫자여야 합니다.",boolean:"값은 true 또는 false여야 합니다.",null:"값은 null이어야 합니다.",array:"값은 유효한 배열이어야 합니다.",object:"값은 유효한 객체여야 합니다."},valueHelp:"선택한 형식에 맞는 값을 입력하세요. 객체와 배열은 JSON을 사용하고 문자열은 JSON 따옴표 없이 입력합니다.",expectedReplyText:"찾을 텍스트",expectedFieldValue:"예상 필드 값",rawTextValueHelp:"전체 응답 텍스트를 문자 그대로 검사합니다. “포함”에서는 텍스트가 JSON key 또는 value 어디에 있어도 일치하며 특정 JSON 필드를 조회하지 않습니다.",jsonFieldValueHelp:"지정한 outputJson 경로의 필드 이름이 아니라 값을 비교합니다. 예: outputJson.failed_gate가 quality-container-setupê³¼ 같음.",canvasLabel:{withValue:"{subject} {operator} “{value}”",withoutValue:"{subject} {operator}",join:"{route} · {condition}"},conditionSemantics:"실제 검사 규칙",rawTextComparisonHelp:"ì
1„ íƒí•œ 연산자는 {operator}입니다. 전체 응답 텍스트에 적용되며 단일 JSON 필드는 읽지 않습니다. 포함/미포함은 JSON key 또는 value의 텍스트도 일치하며, 같음/다름은 전체 응답과 설정값을 비교합니다.",jsonFieldComparisonHelp:"{path}의 값을 읽습니다. {operator}는 해당 value와 “{value}”를 비교하며 필드 이름은 비교하지 않습니다.",rawTextExistenceHelp:"전체 응답 텍스트가 있는지만 확인하며 JSON key 존재를 의미하지 않습니다.",jsonFieldExistenceHelp:"{path}의 JSON 필드가 있는지만 확인하며 값은 비교하지 않습니다.",rawTextOperatorHelp:{equals:"전체 응답 텍스트가 “{value}”와 정확히 같을 때만 일치합니다. 단일 JSON 필드의 value를 읽거나 비교하지 않습니다.",not_equals:"전체 응답 텍스트가 “{value}”와 다를 때만 일치합니다. 단일 JSON 필드의 value를 읽거나 비교하지 않습니다.",contains:"전체 응답 텍스트 어디에서든 “{value}”를 찾습니다. JSON key 또는 JSON value에 있어도 일치하며, JSON 필드 조회가 아닙니다.",not_contains:"전체 응답 텍스트 어디에도 “{value}”가 없을 때만 일치합니다. JSON key와 JSON value 모두 대상이며, JSON 필드 조회가 아닙니다.",exists:"전체 응답 텍스트가 있을 때 일치합니다. JSON key의 존재 여부는 확인하지 않습니다.",not_exists:"전체 응답 텍스트가 없을 때 일치합니다. JSON key의 누락 여부는 확인하지 않습니다."},jsonFieldOperatorHelp:{equals:"{path}의 필드 value를 읽고 ê·¸ 값이 “{value}”와 정확히 같을 때만 일치합니다. 필드 이름은 비교하지 않습니다.",not_equals:"{path}의 필드 value를 읽고 ê·¸ 값이 “{value}”와 다를 때만 일치합니다. 필드 이름은 비교하지 않습니다.",contains:"{path}의 필드 value를 읽고 ê·¸ 값에 “{value}”가 포함되는지 확인합니다. 필드 이름은 검색하지 않습니다.",not_contains:"{path}의 필드 value를 읽고 ê·¸ 값에 “{value}”가 없을 때만 일치합니다. 필드 이름은 검색하지 않습니다.",exists:"{path}의 JSON 필드가 있을 때 일치하며 필드 value는 비교하지 않습니다.",not_exists:"{path}의 JSON 필드가 없을 때 일치하며 필드 value는 비교하지 않습니다."},feedback:"피드백 루프",feedbackHelp:"이 되돌림 연결을 제한된 루프로 표시합니다. 경로와 조건이 일치하는 동안만 반복합니다.",maxIterations:"최대 반복 횟수",maxIterationsHelp:"전체 루프 실행 횟수는 1~100이며 전역 실행 예산도 적용됩니다.",invalidIterations:"최대 반복 횟수는 1~100 사이의 정수여야 합니다",loopId:"루프 식별자",loopIdPlaceholder:"자동 선택 또는 사용자 ID 입력",loopIdAutomatic:"자동 (권장) · {id}",loopIdHelp:"실행 기록에서 루프를 표시할 뿐 실행 조건은 바꾸지 않습니다. 보통 자동을 유지하세요.",invalidLoopId:"루프 ID 형식이 올바르지 않습니다"},node:{approvalRequired:"완료 후 승인",join:"합류 전략",joinAll:"모든 입력 경로",joinAny:"입력 경로 중 하나",joinAllHelp:"모든 입력 경로가 선택되어야 실행하며 하나라도 불일치하면 건너뜁니다.",joinAnyHelp:"첫 번째 입력 경로가 선택되면 한 번 실행하며 모두 불일치할 때만 건너뜁니다."},status:{pending_approval:"승인 대기",approval_rejected:"승인 거부"}},files:{previewMode:"미리보기",sourceMode:"소스",tableMode:"표",worksheet:"워크시트",htmlPreviewTitle:"격리된 HTML 미리보기",previewLoading:"미리보기 불러오는 중...",previewFailed:"미리보기를 사용할 수 없음",previewMimeMismatch:"파일 형식이 미리보기 형식과 일치하지 않습니다.",downloadInstead:"대신 다운로드",previousPage:"이전",nextPage:"다음",pageStatus:"{total}페이지 중 {page}페이지",zoom:"확대/축소",pdfPageLimit:"처음 {count}페이지만 표시합니다.",tableTruncated:"미리보기가 제한되었습니다. 모든 행과 열을 보려면 파일ì
1„ 다운로드하세요."},changelog:{new_0_6_31_1:"이번 릴리스에는 0.6.30 이후 병합된 25개 PR 전체가 포함되며 Workflow 라우팅과 재생, 생성 파일 미리보기, Provider 편집, 채팅 개선, Desktop 업데이트와 시각적 완성도를 다룹니다",new_0_6_31_2:"Workflow에 구조화된 JSON ì¡°ê±´, 더 명확한 차단 경로 근거, 전체 실행 기록 모달, 실제 과거 경로 재생이 추가되었습니다 (#2088, #2093, #2099, #2128)",new_0_6_31_3:"생성된 HTML, PDF, DOCX, PPTX, XLSX, CSV, 이미지, Markdown, 소스 파일을 Profile 파일, 세션 workspace, 관리형 그룹 workspace에서 안전하게 미리볼 수 있습니다 (#2110, #2113)",new_0_6_31_4:"관리자는 revision 검사, 자격 증명 마스킹, 초안 연결 테스트, 선호 모델, 컨텍스트 길이, 감사 기록을 통해 Provider를 안전하게 편집할 수 있습니다 (#2114)",new_0_6_31_5:"일반 채팅과 그룹 채팅에서 메시지를 참조할 수 있으며, 백그라운드 delegate task는 부모 턴 종료나 앱 재시작 후에도 하위 Agent 출력을 안정적으로 전달합니다 (#2098, #2126)",new_0_6_31_6:"기록 로딩과 페이지네이션이 안정화되고 세션 Profile 필터가 유지되며, workspace diff가 실시간 및 재로드된 채팅에서 정확한 어시스턴트 응답에 연결됩니다 (#2107, #2123, #2127)",new_0_6_31_7:"모델 전환 시 초안 workspace가 유지되고 reasoning effort를 각 모델의 지원 범위에 맞는 명확한 슬라이더로 선택할 수 있습니다 (#2095, #2097)",new_0_6_31_8:"Desktop 업데이트는 다운로드 전에 확인하며, '지금 다시 시작'은 설치 프로그램 실행 전에 트레이 종료와 같은 정상 서비스 종료 절차를 수행합니다 (#2094, #2125)",new_0_6_31_9:"그룹 채팅, Coding Agent, Desktop 카드의 어두운 화면이 통일되었고 macOS 마이크 권한, 트레이 크기, Liquid Glass 아이콘도 개선되었습니다 (#2087, #2092, #2100, #2101, #2108, #2130)",new_0_6_31_10:"예약 작업의 유효한 전달 대상 선택이 안정화되고 채널 설정에서 저장된 자격 증명을 안전하게 지우며 Gateway 재시작 결과를 확인할 수 있습니다 (#2106, #2109)",new_0_6_31_11:"Studio MCP 자동 주입은 명시적으로 허용하지 않는 한 임시 디렉터리와 linked worktree launcher를 건너뛰어 불안정한 경로가 Profile 설정에 저장되지 않게 합니다 (#2121)",new_0_6_31_12:"버전 관리에서 Runtime 저장 위치를 옮기거나 시스템 기본값으로 복원할 수 있습니다. 재시작 시 Runtimeê³¼ Web UI를 복사·검증하고 이전 저장소를 유지합니다 (#2134)",new_0_6_30_1:"이번 릴리스는 0.6.29 이후 병합된 21개 PR을 모두 포함하며 Workflow 오케스트레이션, MoA 세션, 실시간 음성, 영구 메모리, Provider 안정성, MCU 설정, Windows 개선을 다룹니다",new_0_6_30_2:"Workflow Orchestration v2에 성공, 실패, 항상 실행 ì¡°ê±´ 경로, 실제 건너뛰기, all/any 조인, 제한된 피드백 루프, 실행 증거, 기한, 이동 가능한 가져오기를 추가했습니다 (#2073)",new_0_6_30_3:"활성화된 MoA 프리셋을 Hermes 채팅 세션 생성 및 전환 시 선택할 수 있으며 이름, 기본값, 컨텍스트 ì°½, 런타임 동작이 올바르게 적용됩니다 (#2078)",new_0_6_30_4:"Markdown, Mermaid, Monaco, 비활성 언어, 선택형 오버레이를 지연 로드해 첫 화면의 JavaScript 로드량을 크게 줄였습니다 (#2068)",new_0_6_30_5:"개별 채팅에 실시간 전사, 음성 대기열 재생, 도구 활동, 중단 제어를 제공하는 전체 화면 실시간 음성 모드를 추가했습니다 (#2063)",new_0_6_30_6:"데스크톱과 모바일 실시간 음성이 더 안정적으로 동작하고, 무음 상태에서 복구하며, 어시스턴트 음성 녹음을 피하고, 활성 STT fallback을 사용하면서 승인을 계속 표시합니다 (#2064, #2067)",new_0_6_30_7:"Ekko Agent에 범위가 지정된 영구 메모리를 추가하고 활성 Provider와 모델을 런타임 컨텍스트에 포함하며 운영 메모리 DB를 더 안전하게 처리합니다 (#2057, #2060, #2071)",new_0_6_30_8:"Provider가 설정되지 않은 Profile에 Provider 설정 양식을 바로 여는 안내가 표시됩니다 (#2070)",new_0_6_30_9:"Provider 모델 카탈로그를 Hermes Agent와 맞추고 오래된 fallback 캐시가 업데이트를 가리지 않도록 실시간 탐색 결과를 우선합니다 (#2051)",new_0_6_30_10:"로드된 채íŒ
1… 전반에서 사용자 지정 Provider 별칭을 안정적으로 유지해 불필요한 클라이언트 재구성과 요청 헤더 손실을 방지합니다 (#2054)",new_0_6_30_11:"세션 모델 전환 중 차단형 진행 상태를 표시하고, 대화 전환 시 초안이나 첨부 파일을 다시 마운트하지 않고 페이드 효과를 재생합니다 (#2056, #2069)",new_0_6_30_12:"Journey 그래프 탐색에 카테고리 다중 선택, Skillê³¼ Memory 전용 모양, 미리보기, 향상된 키보드 및 터치 제어를 추가했습니다 (#2055)",new_0_6_30_13:"Markdown 다운로드가 확장자를 유지하고, 모바일 전사에 명시적인 시작 및 중지 제어를 추가하며, Scoped Codex 스트리밍에서 최종 응답이 더 이상 중복되지 않습니다 (#2058, #2066)",new_0_6_30_14:"MCU 설정과 안정성이 장치 코드 표시, 자동 마이크 선택, 연결 해제 동기화, 시간 제한 TLS 탐색으로 개선되었습니다 (#2049, #2059, #2062)",new_0_6_30_15:"Windows 채팅에서 Git 또는 일반 디렉터리의 workspace 변경을 캡처할 때 Git 콘솔 창이 더 이상 깜박이지 않습니다 (#2080)",new_0_6_29_1:"이번 릴리스는 0.6.28 이후 병합된 14개 PR을 모두 포함하며 UI 일관성, MCU 오디오와 v2 하드웨어, workspace diff, 사용량 분석, Docker 업데이트, MiMo 음성 복제를 다룹니다",new_0_6_29_2:"페이지 헤더, 다크 표면, 모서리 반경을 하나의 시각 시스템으로 통일하고 버전 미리보기는 유효한 태그를 시맨틱 버전순으로 정렬합니다 (#2014, #2015)",new_0_6_29_3:"ESP32 제품 페이지를 반응형으로 개편하고 웹사이트 버전 선택기에 Hermes Agent 0.18.2를 추가했습니다 (#2020, #2042)",new_0_6_29_4:"ESP32-C3 v1 업링크 오디오에 IMA-ADPCM을 적용해 대역폭을 약 4분의 1로 줄이고 녹음 한도를 2분으로 늘렸으며, OLED는 임시 상태 후 LAN IP로 돌아갑니다 (#2024, #2025)",new_0_6_29_5:"Workspace diff를 기본 접힘 상태로 표시하고 0줄 변경을 제거했으며 표준 다크 채팅 입력 배경을 복원했습니다 (#2032)",new_0_6_29_6:"세션 내보내기는 잘못된 퍼센트 기호가 있는 파일명을 처리하고, Docker 업데이트는 컨테이너 내부 npm 대신 이미지 pull/recreate 안내를 표시합니다 (#2026, #2033)",new_0_6_29_7:"Bridge 도구 결과는 전체 저장하되 모델 컨텍스트에서는 앞뒤를 사용한 5,500자 요약으로 제한해 반복적인 컨텍스트 증가를 막습니다 (#2036)",new_0_6_29_8:"Hermes Agent, Claude Code, Codex, Ekko Agent의 모델 호출을 통합 기록하고 Agent 분포 보기를 추가했습니다 (#2039)",new_0_6_29_9:"독립된 ESP32-C3 v2 펌웨어에 새 핀 맵을 추가해 v1ê³¼ 분리했으며, v2는 기본 80% 볼륨과 1.5ë°° PCM 게인 및 소프트 리미팅을 사용합니다 (#2044, #2045)",new_0_6_29_10:"MiMo 음성 복제에 WAV/MP3 참조 오디오 업로드를 복원하고 현재 API 요구사항에 따라 audio.voice로 전송합니다 (#2046)",new_0_6_28_1:"이번 릴리스는 0.6.27 이후 병합된 PR을 반영하며 MCU 관리, 그룹 채팅 workspace diff, Coding Agent 수정, Workflow 승인, workspace diff 필터링, scheduled job 모델 선택, desktop 새 버전 표시를 포함합니다",new_0_6_28_2:"MCU는 device management를 추가하고 global-agent event에 API token 인증을 요구하며 ESP32-C3 firmware를 갱신하고 remote relay login을 안정화했습니다",new_0_6_28_3:"그룹 채팅 workspace 변경은 workspace diff run으로 저장되어 세션 완료 후에도 room-level agent activity를 확인할 수 있습니다",new_0_6_28_4:"Coding Agent는 scoped external MCP server를 상속하고 workflow agent abort를 올바르게 라우팅하며 완료된 Codex 및 Claude Code native session을 best-effort로 export합니다",new_0_6_28_5:"Workspace file drawer를 수정하고 깨진 starred-history embed를 제거했으며 bridge session의 ended_at 및 end_reason metadata를 기록합니다",new_0_6_28_6:"Workflow no
1de는 완료 후 approval gate를 지원하고 반복 실행 시 rerun approval state도 수정했습니다",new_0_6_28_7:"Workspace diff는 SQLite WAL/SHM sidecar를 필터링하고 변경 없는 파일을 지나 계속 scan해 새로 만든 일반 파일이 보이도록 합니다",new_0_6_28_8:"Scheduled job은 provider/model을 선택해 저장할 수 있으며 현재 Hermes cron CLI가 지원하지 않는 model flag는 전달하지 않습니다",new_0_6_28_9:"Desktop 버전 관리 버튼은 업데이트가 있을 때 지역화된 새 버전 표시를 보여주며 public version manifest에 0.6.28을 추가했습니다",new_0_6_27_1:"이번 릴리스는 0.6.26 이후 병합된 모든 PR을 반영하며 데스크톱 시작 fallback, Windows runtime 수정, remote MCU relay, 그룹 채팅 workspace, 기본 workspace 개선, 빈 diff 필터링을 포함합니다",new_0_6_27_2:"데스크톱 시작은 active Web UI 디렉터리가 없거나 불완전할 때 bundled Web UI로 fallback하며 pinned runtime은 유지합니다",new_0_6_27_3:"Windows 데스크톱 runtime은 Web UI server 호출에서 취약한 .exe trampoline 대신 이동 가능한 hermes.cmd wrapper를 사용합니다",new_0_6_27_4:"Remote MCU traffic은 Socket.IO /global-agent relay를 사용하며 ESP32-C3 로그인, 검색, 음성 재생 큐, Wi-Fi 자격 증명 저장, 업데이트된 firmware가 더 안정적으로 동작합니다",new_0_6_27_5:"그룹 채팅 room은 검증된 workspace를 보유하고 group-agent run에 전달할 수 있으며, 읽기 전용 멤버에게는 workspace, invite code, 관리 컨트롤이 숨겨집니다",new_0_6_27_6:"기본 workspace 즐겨찾기는 folder picker의 선택된 path 행 안으로 이동했으며 workspace picker label의 locale coverage도 완료했습니다",new_0_6_27_7:"Workspace diff 카드는 patch나 줄 변화가 없는 0 byte change를 건너뛰어 의미 없는 +0/-0 changed-file 카드를 피합니다"}};export{e as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.